Skip to content

Commit

Permalink
feat: move dimensional miner config to startup config
Browse files Browse the repository at this point in the history
This helps avoid issues if mods influence load order / data load time vs config load time.
  • Loading branch information
klikli-dev committed Sep 14, 2024
1 parent 9c7928f commit dcecfb1
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 63 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ public class OccultismServerConfig {
public final SpiritJobSettings spiritJobs;

public final RitualSettings rituals;
public final DimensionalMineshaftSettings dimensionalMineshaft;
public final ItemSettings itemSettings;
public final ModConfigSpec spec;

Expand All @@ -40,7 +39,6 @@ public OccultismServerConfig() {
this.storage = new StorageSettings(builder);
this.spiritJobs = new SpiritJobSettings(builder);
this.rituals = new RitualSettings(builder);
this.dimensionalMineshaft = new DimensionalMineshaftSettings(builder);
this.itemSettings = new ItemSettings(builder);
this.spec = builder.build();
}
Expand Down Expand Up @@ -137,55 +135,6 @@ public SpiritJobSettings(ModConfigSpec.Builder builder) {
}
}

public static class DimensionalMineshaftSettings {
public final MinerSpiritSettings minerFoliotUnspecialized;
public final MinerSpiritSettings minerDjinniOres;
public final MinerSpiritSettings minerAfritDeeps;
public final MinerSpiritSettings minerMaridMaster;

public DimensionalMineshaftSettings(ModConfigSpec.Builder builder) {
builder.comment("Dimensional Mineshaft Settings").push("dimensional_mineshaft");

this.minerFoliotUnspecialized =
new MinerSpiritSettings("miner_foliot_unspecialized", builder, 400, 1, 1000);

this.minerDjinniOres =
new MinerSpiritSettings("miner_djinni_ores", builder, 300, 1, 400);

this.minerAfritDeeps =
new MinerSpiritSettings("miner_afrit_deeps", builder, 200, 1, 800);

this.minerMaridMaster =
new MinerSpiritSettings("miner_marid_master", builder, 100, 1, 1600);

builder.pop();
}

public static class MinerSpiritSettings {
public final IntValue maxMiningTime;
public final IntValue rollsPerOperation;
public final IntValue durability;

public MinerSpiritSettings(String oreName, ModConfigSpec.Builder builder,
int maxMiningTime, int rollsPerOperation, int durability) {
builder.comment("Miner Spirit Settings").push(oreName);

this.maxMiningTime =
builder.comment("The amount of time it takes the spirit to perform one mining operation.")
.defineInRange("maxMiningTime", maxMiningTime, 0, Integer.MAX_VALUE);
this.rollsPerOperation =
builder.comment("The amount of blocks the spirit will obtain per mining operation")
.defineInRange("rollsPerOperation", rollsPerOperation, 0, Integer.MAX_VALUE);
this.durability =
builder.comment("The amount of mining operations the spirit can perform before breaking.")
.defineInRange("durability", durability, 0, Integer.MAX_VALUE);

builder.pop();
}
}

}

public static class RitualSettings {
public final BooleanValue enableClearWeatherRitual;
public final BooleanValue enableRainWeatherRitual;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,13 @@

public class OccultismStartupConfig {

public final DimensionalMineshaftSettings dimensionalMineshaft;
public final RitualSettings rituals;

public final ModConfigSpec spec;
public OccultismStartupConfig() {
ModConfigSpec.Builder builder = new ModConfigSpec.Builder();
this.dimensionalMineshaft = new DimensionalMineshaftSettings(builder);
this.rituals = new RitualSettings(builder);
this.spec = builder.build();
}
Expand Down Expand Up @@ -65,4 +67,53 @@ public RitualSettings(ModConfigSpec.Builder builder) {
builder.pop();
}
}

public static class DimensionalMineshaftSettings {
public final MinerSpiritSettings minerFoliotUnspecialized;
public final MinerSpiritSettings minerDjinniOres;
public final MinerSpiritSettings minerAfritDeeps;
public final MinerSpiritSettings minerMaridMaster;

public DimensionalMineshaftSettings(ModConfigSpec.Builder builder) {
builder.comment("Dimensional Mineshaft Settings").push("dimensional_mineshaft");

this.minerFoliotUnspecialized =
new MinerSpiritSettings("miner_foliot_unspecialized", builder, 400, 1, 1000);

this.minerDjinniOres =
new MinerSpiritSettings("miner_djinni_ores", builder, 300, 1, 400);

this.minerAfritDeeps =
new MinerSpiritSettings("miner_afrit_deeps", builder, 200, 1, 800);

this.minerMaridMaster =
new MinerSpiritSettings("miner_marid_master", builder, 100, 1, 1600);

builder.pop();
}

public static class MinerSpiritSettings {
public final ModConfigSpec.IntValue maxMiningTime;
public final ModConfigSpec.IntValue rollsPerOperation;
public final ModConfigSpec.IntValue durability;

public MinerSpiritSettings(String oreName, ModConfigSpec.Builder builder,
int maxMiningTime, int rollsPerOperation, int durability) {
builder.comment("Miner Spirit Settings").push(oreName);

this.maxMiningTime =
builder.comment("The amount of time it takes the spirit to perform one mining operation.")
.defineInRange("maxMiningTime", maxMiningTime, 0, Integer.MAX_VALUE);
this.rollsPerOperation =
builder.comment("The amount of blocks the spirit will obtain per mining operation")
.defineInRange("rollsPerOperation", rollsPerOperation, 0, Integer.MAX_VALUE);
this.durability =
builder.comment("The amount of mining operations the spirit can perform before breaking.")
.defineInRange("durability", durability, 0, Integer.MAX_VALUE);

builder.pop();
}
}

}
}
24 changes: 12 additions & 12 deletions src/main/java/com/klikli_dev/occultism/registry/OccultismItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -348,27 +348,27 @@ public class OccultismItems {
() -> new MinerSpiritItem(defaultProperties()
.component(OccultismDataComponents.SPIRIT_NAME, TextUtil.SPIRIT_NAME_NOT_YET_KNOWN)
.durability(1000),
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerFoliotUnspecialized.maxMiningTime,
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerFoliotUnspecialized.rollsPerOperation,
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerFoliotUnspecialized.durability));
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerFoliotUnspecialized.maxMiningTime,
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerFoliotUnspecialized.rollsPerOperation,
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerFoliotUnspecialized.durability));
public static final DeferredItem<MinerSpiritItem> MINER_DJINNI_ORES = ITEMS.register("miner_djinni_ores",
() -> new MinerSpiritItem(defaultProperties().durability(400)
.component(OccultismDataComponents.SPIRIT_NAME, TextUtil.SPIRIT_NAME_NOT_YET_KNOWN),
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerDjinniOres.maxMiningTime,
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerDjinniOres.rollsPerOperation,
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerDjinniOres.durability));
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerDjinniOres.maxMiningTime,
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerDjinniOres.rollsPerOperation,
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerDjinniOres.durability));
public static final DeferredItem<MinerSpiritItem> MINER_AFRIT_DEEPS = ITEMS.register("miner_afrit_deeps",
() -> new MinerSpiritItem(defaultProperties().durability(800)
.component(OccultismDataComponents.SPIRIT_NAME, TextUtil.SPIRIT_NAME_NOT_YET_KNOWN),
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerAfritDeeps.maxMiningTime,
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerAfritDeeps.rollsPerOperation,
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerAfritDeeps.durability));
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerAfritDeeps.maxMiningTime,
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerAfritDeeps.rollsPerOperation,
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerAfritDeeps.durability));
public static final DeferredItem<MinerSpiritItem> MINER_MARID_MASTER = ITEMS.register("miner_marid_master",
() -> new MinerSpiritItem(defaultProperties().durability(1600)
.component(OccultismDataComponents.SPIRIT_NAME, TextUtil.SPIRIT_NAME_NOT_YET_KNOWN),
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerMaridMaster.maxMiningTime,
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerMaridMaster.rollsPerOperation,
Occultism.SERVER_CONFIG.dimensionalMineshaft.minerMaridMaster.durability));
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerMaridMaster.maxMiningTime,
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerMaridMaster.rollsPerOperation,
Occultism.STARTUP_CONFIG.dimensionalMineshaft.minerMaridMaster.durability));

//JEI Dummy Items
public static final DeferredItem<DummyTooltipItem> JEI_DUMMY_NONE = ITEMS.register(
Expand Down

0 comments on commit dcecfb1

Please sign in to comment.