11package org .infernalstudios .celesteconfig ;
22
3+ import me .shedaniel .clothconfig2 .api .ConfigBuilder ;
4+ import me .shedaniel .clothconfig2 .api .ConfigCategory ;
5+ import me .shedaniel .clothconfig2 .api .ConfigEntryBuilder ;
6+ import net .minecraft .client .gui .screens .Screen ;
7+ import net .minecraft .network .chat .Component ;
8+ import net .minecraftforge .client .ConfigScreenHandler ;
9+ import net .minecraftforge .fml .ModLoadingContext ;
310import net .minecraftforge .fml .common .Mod ;
4- import net .minecraftforge .fml .event .config .ModConfigEvent ;
5- import net .minecraftforge .fml .javafmlmod .FMLJavaModLoadingContext ;
611import org .infernalstudios .celesteconfig .config .CelestialConfigOptions ;
712
813@ Mod (Constants .MOD_ID )
914public class CelestialConfigration {
1015
1116 public CelestialConfigration () {
1217 CelestialConfigOptions .init ();
13- FMLJavaModLoadingContext .get ().getModEventBus ().addListener (this ::onConfigLoad );
1418 CommonClass .init (CelestialConfigOptions .getMoonWidthScalar (), CelestialConfigOptions .getMoonHeightScalar (), CelestialConfigOptions .getSunWidthScalar (), CelestialConfigOptions .getSunHeightScalar ());
19+
20+ ModLoadingContext .get ().registerExtensionPoint (ConfigScreenHandler .ConfigScreenFactory .class , () ->
21+ new ConfigScreenHandler .ConfigScreenFactory ((client , parent ) -> buildConfigScreen (parent )));
1522 }
1623
17- public void onConfigLoad (ModConfigEvent event ) {
18- CommonClass .init (CelestialConfigOptions .getMoonWidthScalar (), CelestialConfigOptions .getMoonHeightScalar (), CelestialConfigOptions .getSunWidthScalar (), CelestialConfigOptions .getSunHeightScalar ());
24+ public Screen buildConfigScreen (Screen parent ) {
25+ ConfigBuilder builder = ConfigBuilder .create ()
26+ .setParentScreen (parent )
27+ .setTitle (Component .translatable ("text.autoconfig.celesteconfig.title" ));
28+
29+ ConfigCategory general = builder .getOrCreateCategory (Component .translatable ("text.autoconfig.celesteconfig.title" ));
30+ ConfigEntryBuilder entryBuilder = builder .entryBuilder ();
31+
32+ general .addEntry (entryBuilder .startDoubleField (Component .translatable ("text.autoconfig.celesteconfig.option.moonWidth" ), CelestialConfigOptions .getMoonWidthScalar ())
33+ .setDefaultValue (1.0D )
34+ .setSaveConsumer (CelestialConfigOptions ::setMoonWidthScalar )
35+ .build ());
36+
37+ general .addEntry (entryBuilder .startDoubleField (Component .translatable ("text.autoconfig.celesteconfig.option.moonHeight" ), CelestialConfigOptions .getMoonHeightScalar ())
38+ .setDefaultValue (1.0D )
39+ .setSaveConsumer (CelestialConfigOptions ::setMoonHeightScalar )
40+ .build ());
41+
42+ general .addEntry (entryBuilder .startDoubleField (Component .translatable ("text.autoconfig.celesteconfig.option.sunWidth" ), CelestialConfigOptions .getSunWidthScalar ())
43+ .setDefaultValue (1.0D )
44+ .setSaveConsumer (CelestialConfigOptions ::setSunWidthScalar )
45+ .build ());
46+
47+ general .addEntry (entryBuilder .startDoubleField (Component .translatable ("text.autoconfig.celesteconfig.option.sunHeight" ), CelestialConfigOptions .getSunHeightScalar ())
48+ .setDefaultValue (1.0D )
49+ .setSaveConsumer (CelestialConfigOptions ::setSunHeightScalar )
50+ .build ());
51+
52+ builder .setSavingRunnable (() -> CommonClass .init (CelestialConfigOptions .getMoonWidthScalar (), CelestialConfigOptions .getMoonHeightScalar (), CelestialConfigOptions .getSunWidthScalar (), CelestialConfigOptions .getSunHeightScalar ()));
53+
54+ return builder .build ();
1955 }
2056}
0 commit comments