
All old configs must be deleted for this to work properly. Since the rest of the update is filled with world breaking changes, this should be fine.
115 lines
6.4 KiB
Java
115 lines
6.4 KiB
Java
package WayofTime.bloodmagic;
|
|
|
|
import WayofTime.bloodmagic.meteor.MeteorConfigHandler;
|
|
import net.minecraftforge.common.config.Config;
|
|
import net.minecraftforge.common.config.ConfigManager;
|
|
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
|
|
import net.minecraftforge.fml.common.Mod;
|
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
|
|
|
@Config(modid = BloodMagic.MODID, name = BloodMagic.MODID + "/" + BloodMagic.MODID, category = "")
|
|
@Mod.EventBusSubscriber
|
|
public class ConfigHandler {
|
|
|
|
@Config.Comment({ "Blacklist options for various features" })
|
|
public static ConfigBlacklist blacklist = new ConfigBlacklist();
|
|
@Config.Comment({ "Value modifiers for various features" })
|
|
public static ConfigValues values = new ConfigValues();
|
|
@Config.Comment({ "Toggles for all rituals" })
|
|
public static ConfigRituals rituals = new ConfigRituals();
|
|
@Config.Comment({ "Settings that only pertain to the client" })
|
|
public static ConfigClient client = new ConfigClient();
|
|
@Config.Comment({ "Compatibility settings" })
|
|
public static ConfigCompat compat = new ConfigCompat();
|
|
|
|
public static class ConfigBlacklist {
|
|
@Config.Comment({ "Stops listed blocks and entities from being teleposed.", "Use the registry name of the block or entity. Vanilla objects do not require the modid.", "If a block is specified, you can list the variants to only blacklist a given state." })
|
|
public String[] teleposer = { "bedrock", "mob_spawner" };
|
|
@Config.Comment({ "Stops listed blocks from being transposed.", "Use the registry name of the block. Vanilla blocks do not require the modid." })
|
|
public String[] transposer = { "bedrock", "mob_spawner" };
|
|
@Config.Comment({ "Stops the listed entities from being used in the Well of Suffering.", "Use the registry name of the entity. Vanilla entities do not require the modid." })
|
|
public String[] wellOfSuffering = { };
|
|
}
|
|
|
|
public static class ConfigValues {
|
|
@Config.Comment({ "Declares the amount of LP gained per HP sacrificed for the given entity.", "Setting the value to 0 will blacklist it.", "Use the registry name of the entity followed by a ';' and then the value you want.", "Vanilla entities do not require the modid." })
|
|
public String[] sacrificialValues = { "villager;100", "slime;15", "enderman;10", "cow;100", "chicken;100", "horse;100", "sheep;100", "wolf;100", "ocelot;100", "pig;100", "rabbit;100" };
|
|
@Config.Comment({ "Amount of LP the Coat of Arms should provide for each damage dealt." })
|
|
@Config.RangeInt(min = 0, max = 100)
|
|
public int coatOfArmsConversion = 20;
|
|
@Config.Comment({ "Amount of LP the Sacrificial Dagger should provide for each damage dealt." })
|
|
@Config.RangeInt(min = 0, max = 10000)
|
|
public int sacrificialDaggerConversion = 100;
|
|
@Config.Comment({ "Will rewrite any default meteor types with new versions.", "Disable this if you want any of your changes to stay, or do not want default meteor types regenerated." })
|
|
public boolean shouldResyncMeteors = true;
|
|
}
|
|
|
|
public static class ConfigRituals {
|
|
public boolean ritualAnimalGrowth = true;
|
|
public boolean ritualContainment = true;
|
|
public boolean ritualCrushing = true;
|
|
public boolean ritualExpulsion = true;
|
|
public boolean ritualFeatheredKnife = true;
|
|
public boolean ritualFullStomach = true;
|
|
public boolean ritualGreenGrove = true;
|
|
public boolean ritualHarvest = true;
|
|
public boolean ritualInterdiction = true;
|
|
public boolean ritualJumping = true;
|
|
public boolean ritualLava = true;
|
|
public boolean ritualMagnetic = true;
|
|
public boolean ritualRegeneration = true;
|
|
public boolean ritualSpeed = true;
|
|
public boolean ritualSuppression = true;
|
|
public boolean ritualWater = true;
|
|
public boolean ritualWellOfSuffering = true;
|
|
public boolean ritualZephyr = true;
|
|
public boolean ritualUpgradeRemove = true;
|
|
public boolean ritualArmourEvolve = true;
|
|
public boolean ritualForsakenSoul = true;
|
|
public boolean ritualCrystalHarvest = true;
|
|
public boolean ritualPlacer = true;
|
|
public boolean ritualFelling = true;
|
|
public boolean ritualPump = true;
|
|
public boolean ritualAltarBuilder = true;
|
|
public boolean ritualPortal = true;
|
|
public boolean ritualMeteor = true;
|
|
public boolean ritualDowngrade = true;
|
|
public ConfigImperfectRituals imperfect = new ConfigImperfectRituals();
|
|
}
|
|
|
|
public static class ConfigImperfectRituals {
|
|
public boolean imperfectRitualNight = true;
|
|
public boolean imperfectRitualRain = true;
|
|
public boolean imperfectRitualResistance = true;
|
|
public boolean imperfectRitualZombie = true;
|
|
}
|
|
|
|
public static class ConfigClient {
|
|
@Config.Comment({ "Always render the beams between routing nodes.", "If disabled, the beams will only render while the Node Router is held." })
|
|
public boolean alwaysRenderRoutingLines = false;
|
|
@Config.Comment({ "Completely hide spectral blocks from view.", "If disabled, a transparent block will be displayed." })
|
|
public boolean invisibleSpectralBlocks = true;
|
|
@Config.Comment({ "When cycling through slots, the Sigil of Holding will skip over empty slots and move to the next occupied one.", "If disabled, it will behave identically to the default hotbar." })
|
|
public boolean sigilHoldingSkipsEmptySlots = false;
|
|
}
|
|
|
|
public static class ConfigCompat {
|
|
@Config.Comment({ "The display mode to use when looking at a Blood Altar.", "ALWAYS - Always display information.", "SIGIL_HELD - Only display information when a Divination or Seers sigil is held in either hand.", "SIGIL_CONTAINED - Only display information when a Divination or Seers sigil is somewhere in the inventory." })
|
|
public AltarDisplayMode wailaAltarDisplayMode = AltarDisplayMode.SIGIL_HELD;
|
|
|
|
public enum AltarDisplayMode {
|
|
ALWAYS,
|
|
SIGIL_HELD,
|
|
SIGIL_CONTAINED,
|
|
;
|
|
}
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public static void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) {
|
|
if (event.getModID().equals(BloodMagic.MODID)) {
|
|
ConfigManager.sync(event.getModID(), Config.Type.INSTANCE); // Sync config values
|
|
MeteorConfigHandler.handleMeteors(false); // Reload meteors
|
|
}
|
|
}
|
|
}
|