Skip to content

Commit e993bc7

Browse files
committed
Added configuration
1 parent b6722d1 commit e993bc7

File tree

5 files changed

+117
-37
lines changed

5 files changed

+117
-37
lines changed

build.gradle

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,12 @@ repositories {
6969
maven {
7070
url = "https://thedarkcolour.github.io/KotlinForForge/"
7171
}
72-
72+
maven {
73+
url "https://cursemaven.com"
74+
content {
75+
includeGroup "curse.maven"
76+
}
77+
}
7378
}
7479

7580
version = mod_version
@@ -121,12 +126,15 @@ dependencies {
121126
implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}")
122127
implementation fg.deobf("dev.latvian.mods:kubejs-forge:${kubejs_version}")
123128
implementation fg.deobf("dev.latvian.mods:rhino-forge:${rhino_version}")
124-
runtimeOnly fg.deobf("dev.toma.configuration:configuration-forge-${minecraft_version}:${configuration_version}")
129+
implementation fg.deobf("dev.toma.configuration:configuration-forge-${minecraft_version}:${configuration_version}")
125130
runtimeOnly fg.deobf("dev.architectury:architectury-forge:${architectury_version}")
126131

132+
127133
// lombok
128134
compileOnly 'org.projectlombok:lombok:1.18.24'
129135
annotationProcessor 'org.projectlombok:lombok:1.18.24'
136+
137+
// implementation fg.deobf("curse.maven:configuration-444699:5840405")
130138
}
131139

132140
tasks.named('processResources', ProcessResources).configure {

src/main/java/net/neganote/gtutilities/GregTechModernUtilities.java

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.gregtechceu.gtceu.api.recipe.GTRecipeType;
99
import com.gregtechceu.gtceu.api.registry.registrate.GTRegistrate;
1010
import com.gregtechceu.gtceu.common.data.GTCreativeModeTabs;
11+
import com.gregtechceu.gtceu.common.data.GTItems;
1112

1213
import net.minecraft.client.Minecraft;
1314
import net.minecraft.resources.ResourceLocation;
@@ -21,6 +22,7 @@
2122
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
2223
import net.neganote.gtutilities.common.item.UtilItems;
2324
import net.neganote.gtutilities.common.machine.UtilMachines;
25+
import net.neganote.gtutilities.config.UtilConfig;
2426
import net.neganote.gtutilities.data.UtilDatagen;
2527

2628
import com.tterrag.registrate.util.entry.RegistryEntry;
@@ -34,16 +36,7 @@ public class GregTechModernUtilities {
3436
public static final Logger LOGGER = LogManager.getLogger();
3537
public static GTRegistrate REGISTRATE = GTRegistrate.create(GregTechModernUtilities.MOD_ID);
3638

37-
public static RegistryEntry<CreativeModeTab> UTIL_CREATIVE_TAB = REGISTRATE
38-
.defaultCreativeTab(GregTechModernUtilities.MOD_ID,
39-
builder -> builder
40-
.displayItems(new GTCreativeModeTabs.RegistrateDisplayItemsGenerator(
41-
GregTechModernUtilities.MOD_ID, REGISTRATE))
42-
.title(REGISTRATE.addLang("itemGroup", GregTechModernUtilities.id("creative_tab"),
43-
"GregTech Modern Utilities"))
44-
.icon(UtilItems.OMNITOOL::asStack)
45-
.build())
46-
.register();
39+
public static RegistryEntry<CreativeModeTab> UTIL_CREATIVE_TAB = null;
4740

4841
public GregTechModernUtilities() {
4942
GregTechModernUtilities.init();
@@ -64,6 +57,31 @@ public GregTechModernUtilities() {
6457
}
6558

6659
public static void init() {
60+
UtilConfig.init();
61+
if (UtilConfig.INSTANCE.features.omnitoolEnabled) {
62+
UTIL_CREATIVE_TAB = REGISTRATE
63+
.defaultCreativeTab(GregTechModernUtilities.MOD_ID,
64+
builder -> builder
65+
.displayItems(new GTCreativeModeTabs.RegistrateDisplayItemsGenerator(
66+
GregTechModernUtilities.MOD_ID, REGISTRATE))
67+
.title(REGISTRATE.addLang("itemGroup", GregTechModernUtilities.id("creative_tab"),
68+
"GregTech Modern Utilities"))
69+
.icon(UtilItems.OMNITOOL::asStack)
70+
.build())
71+
.register();
72+
} else {
73+
UTIL_CREATIVE_TAB = REGISTRATE
74+
.defaultCreativeTab(GregTechModernUtilities.MOD_ID,
75+
builder -> builder
76+
.displayItems(new GTCreativeModeTabs.RegistrateDisplayItemsGenerator(
77+
GregTechModernUtilities.MOD_ID, REGISTRATE))
78+
.title(REGISTRATE.addLang("itemGroup", GregTechModernUtilities.id("creative_tab"),
79+
"GregTech Modern Utilities"))
80+
.icon(GTItems.INTEGRATED_CIRCUIT_HV::asStack)
81+
// same as above, but using a GTm item for the icon instead
82+
.build())
83+
.register();
84+
}
6785
UtilItems.init();
6886
REGISTRATE.registerRegistrate();
6987
UtilDatagen.init();

src/main/java/net/neganote/gtutilities/common/item/UtilItems.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.gregtechceu.gtceu.api.item.component.IItemComponent;
77

88
import net.neganote.gtutilities.GregTechModernUtilities;
9+
import net.neganote.gtutilities.config.UtilConfig;
910

1011
import com.tterrag.registrate.util.entry.ItemEntry;
1112
import com.tterrag.registrate.util.nullness.NonNullConsumer;
@@ -19,14 +20,20 @@ public class UtilItems {
1920
}
2021

2122
@SuppressWarnings("unused")
22-
public static ItemEntry<OmniToolItem> OMNITOOL = REGISTRATE
23-
.item("omnitool", (p) -> OmniToolItem.create(p, GTValues.IV))
24-
.lang("Omnitool")
25-
.defaultModel()
26-
.properties(p -> p.stacksTo(1).durability(0))
27-
.onRegister(attach(ElectricStats.createElectricItem(25_600_000L, GTValues.IV),
28-
new PrecisionBreakBehavior(GTValues.IV)))
29-
.register();
23+
public static ItemEntry<OmniToolItem> OMNITOOL = null;
24+
25+
static {
26+
if (UtilConfig.INSTANCE.features.omnitoolEnabled) {
27+
OMNITOOL = REGISTRATE
28+
.item("omnitool", (p) -> OmniToolItem.create(p, GTValues.IV))
29+
.lang("Omnitool")
30+
.defaultModel()
31+
.properties(p -> p.stacksTo(1).durability(0))
32+
.onRegister(attach(ElectricStats.createElectricItem(25_600_000L, GTValues.IV),
33+
new PrecisionBreakBehavior(GTValues.IV)))
34+
.register();
35+
}
36+
}
3037

3138
public static void init() {}
3239

src/main/java/net/neganote/gtutilities/common/machine/UtilMachines.java

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import net.minecraft.network.chat.Component;
1818
import net.neganote.gtutilities.GregTechModernUtilities;
1919
import net.neganote.gtutilities.client.renderer.machine.UtilConverterRenderer;
20+
import net.neganote.gtutilities.config.UtilConfig;
2021

2122
import java.util.Locale;
2223
import java.util.function.BiFunction;
@@ -33,22 +34,28 @@ public class UtilMachines {
3334
}
3435

3536
// Edited slightly from GTMachines
36-
public static final MachineDefinition STERILE_CLEANING_MAINTENANCE_HATCH = REGISTRATE
37-
.machine("sterile_cleaning_maintenance_hatch",
38-
holder -> new CleaningMaintenanceHatchPartMachine(holder, CleanroomType.STERILE_CLEANROOM))
39-
.langValue("Sterile Cleaning Maintenance Hatch")
40-
.rotationState(RotationState.ALL)
41-
.abilities(PartAbility.MAINTENANCE)
42-
.tooltips(Component.translatable("gtceu.universal.disabled"),
43-
Component.translatable("gtceu.machine.maintenance_hatch_cleanroom_auto.tooltip.0"),
44-
Component.translatable("gtceu.machine.maintenance_hatch_cleanroom_auto.tooltip.1"))
45-
.tooltipBuilder((stack, tooltips) -> tooltips.add(Component.literal(" ").append(Component
46-
.translatable(CleanroomType.STERILE_CLEANROOM.getTranslationKey())
47-
.withStyle(ChatFormatting.GREEN))))
48-
.renderer(() -> new MaintenanceHatchPartRenderer(GTValues.UHV,
49-
GregTechModernUtilities.id("block/machine/part/maintenance.sterile_cleaning")))
50-
// Tier can always be changed later
51-
.register();
37+
public static MachineDefinition STERILE_CLEANING_MAINTENANCE_HATCH = null;
38+
39+
static {
40+
if (UtilConfig.INSTANCE.features.sterileHatchEnabled) {
41+
STERILE_CLEANING_MAINTENANCE_HATCH = REGISTRATE
42+
.machine("sterile_cleaning_maintenance_hatch",
43+
holder -> new CleaningMaintenanceHatchPartMachine(holder, CleanroomType.STERILE_CLEANROOM))
44+
.langValue("Sterile Cleaning Maintenance Hatch")
45+
.rotationState(RotationState.ALL)
46+
.abilities(PartAbility.MAINTENANCE)
47+
.tooltips(Component.translatable("gtceu.universal.disabled"),
48+
Component.translatable("gtceu.machine.maintenance_hatch_cleanroom_auto.tooltip.0"),
49+
Component.translatable("gtceu.machine.maintenance_hatch_cleanroom_auto.tooltip.1"))
50+
.tooltipBuilder((stack, tooltips) -> tooltips.add(Component.literal(" ").append(Component
51+
.translatable(CleanroomType.STERILE_CLEANROOM.getTranslationKey())
52+
.withStyle(ChatFormatting.GREEN))))
53+
.renderer(() -> new MaintenanceHatchPartRenderer(GTValues.UHV,
54+
GregTechModernUtilities.id("block/machine/part/maintenance.sterile_cleaning")))
55+
// Tier can always be changed later
56+
.register();
57+
}
58+
}
5259

5360
// Copied from GTMachineUtils
5461
public static MachineDefinition[] registerConverter(int amperage) {
@@ -89,7 +96,13 @@ public static MachineDefinition[] registerTieredMachines(String name,
8996
return definitions;
9097
}
9198

92-
public static final MachineDefinition[] ENERGY_CONVERTER_64A = registerConverter(64);
99+
public static MachineDefinition[] ENERGY_CONVERTER_64A = null;
100+
101+
static {
102+
if (UtilConfig.INSTANCE.features.converters64aEnabled) {
103+
ENERGY_CONVERTER_64A = registerConverter(64);
104+
}
105+
}
93106

94107
public static void init() {}
95108
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package net.neganote.gtutilities.config;
2+
3+
import net.neganote.gtutilities.GregTechModernUtilities;
4+
5+
import dev.toma.configuration.Configuration;
6+
import dev.toma.configuration.config.Config;
7+
import dev.toma.configuration.config.Configurable;
8+
import dev.toma.configuration.config.format.ConfigFormats;
9+
10+
@Config(id = GregTechModernUtilities.MOD_ID)
11+
public class UtilConfig {
12+
13+
public static UtilConfig INSTANCE;
14+
15+
public static void init() {
16+
INSTANCE = Configuration.registerConfig(UtilConfig.class, ConfigFormats.yaml()).getConfigInstance();
17+
}
18+
19+
@Configurable
20+
public FeatureConfigs features = new FeatureConfigs();
21+
22+
public static class FeatureConfigs {
23+
24+
@Configurable
25+
@Configurable.Comment({ "Whether the Sterile Cleaning Maintenance Hatch is enabled." })
26+
public boolean sterileHatchEnabled = true;
27+
@Configurable
28+
@Configurable.Comment({ "Whether the 64A energy converters are enabled." })
29+
public boolean converters64aEnabled = true;
30+
@Configurable
31+
@Configurable.Comment({ "Whether the Omnitool is enabled." })
32+
public boolean omnitoolEnabled = true;
33+
}
34+
}

0 commit comments

Comments
 (0)