NaturesAura/src/main/java/de/ellpeck/naturesaura/ModConfig.java

110 lines
5.9 KiB
Java
Raw Normal View History

2018-10-22 20:18:54 +02:00
package de.ellpeck.naturesaura;
import de.ellpeck.naturesaura.api.NaturesAuraAPI;
import de.ellpeck.naturesaura.api.aura.type.BasicAuraType;
import de.ellpeck.naturesaura.api.aura.type.IAuraType;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.DimensionType;
2018-10-22 20:18:54 +02:00
import net.minecraftforge.common.config.Config;
import net.minecraftforge.common.config.Config.Comment;
import net.minecraftforge.common.config.Config.RangeDouble;
@Config(modid = NaturesAura.MOD_ID, category = "")
public final class ModConfig {
public static General general = new General();
public static Features enabledFeatures = new Features();
2018-10-22 20:18:54 +02:00
public static Client client = new Client();
public static class General {
@Comment("Additional conversion recipes for the Botanist's Pickaxe right click function. Each entry needs to be formatted as modid:input_block[prop1=value1,...]->modid:output_block[prop1=value1,...] where block state properties are optional")
public String[] additionalBotanistPickaxeConversions = new String[0];
2018-11-20 19:59:18 +01:00
@Comment("Additional blocks that several mechanics identify as flowers. Each entry needs to be formatted as modid:block[prop1=value1,...] where block state properties are optional")
public String[] additionalFlowers = new String[0];
2018-11-13 00:36:47 +01:00
@Comment("Additional dimensions that map to Aura types that should be present in them. This is useful if you have a modpack with custom dimensions that should have Aura act similarly to an existing dimension in them. Each entry needs to be formatted as dimension_name->aura_type, where aura_type can be any of naturesaura:overworld, naturesaura:nether and naturesaura:end.")
public String[] auraTypeOverrides = new String[0];
2018-11-13 00:36:47 +01:00
@Comment("The amount of blocks that can be between two Aura Field Creators for them to be connectable and work together")
public int fieldCreatorRange = 10;
2019-01-26 00:34:05 +01:00
@Comment("The Aura to RF ratio used by the RF converter, read as aura*ratio = rf")
public float auraToRFRatio = 0.05F;
2018-10-22 20:18:54 +02:00
}
public static class Features {
@Comment("If using Dragon's Breath in a Brewing Stand should not cause a glass bottle to appear")
public boolean removeDragonBreathContainerItem = true;
2019-01-26 00:34:05 +01:00
@Comment("If the RF converter block should be enabled")
public boolean rfConverter = true;
@Comment("If the Aura Imbalance effect of grass and trees dying in the area if the Aura levels are too low should occur")
public boolean grassDieEffect = true;
@Comment("If the Aura Imbalance effect of plant growth being boosted if the Aura levels are high enough should occur")
public boolean plantBoostEffect = true;
@Comment("If the Aura Imbalance effect of aura containers in players' inventories being filled if the Aura levels are high enough should occur")
public boolean cacheRechargeEffect = true;
2018-11-21 17:45:06 +01:00
@Comment("If the Aura Imbalance effect of explosions happening randomly if Aura levels are too low should occur")
public boolean explosionEffect = true;
2018-11-29 17:58:47 +01:00
@Comment("If the Aura Imbalance effect of breathlessness if Aura levels are too low should occur")
public boolean breathlessEffect = true;
2018-12-20 00:12:59 +01:00
@Comment("If the Aura Imbalance effect of farm animals being affected in positive ways if Aura levels are too high should occur")
public boolean animalEffect = true;
}
2018-10-22 20:18:54 +02:00
public static class Client {
2018-10-28 16:21:43 +01:00
@Comment("The percentage of particles that should be displayed, where 1 is 100% and 0 is 0%")
2018-10-22 20:18:54 +02:00
@RangeDouble(min = 0, max = 1)
public double particleAmount = 1;
@Comment("If particle spawning should respect the particle setting in Minecraft's video settings screen")
public boolean respectVanillaParticleSettings = true;
2019-01-27 19:12:48 +01:00
@Comment("The percentage of particles that should spawn when there is an excess amount of Aura in the environment, where 1 is 100% and 0 is 0%")
public double excessParticleAmount = 1;
@Comment("The location of the aura bar, where 0 is top left, 1 is top right, 2 is bottom left and 3 is bottom right")
@Config.RangeInt(min = 0, max = 3)
public int auraBarLocation = 0;
@Comment("If debug information about Aura around the player should be displayed in the F3 debug menu if the player is in creative mode")
public boolean debugText = true;
@Comment("If, when the F3 debug menu is open and the player is in creative mode, every Aura spot should be highlighted in the world for debug purposes")
public boolean debugWorld = false;
2018-10-22 20:18:54 +02:00
}
2018-11-20 19:59:18 +01:00
public static void initOrReload(boolean reload) {
if (!reload) {
try {
for (String s : general.additionalBotanistPickaxeConversions) {
String[] split = s.split("->");
NaturesAuraAPI.BOTANIST_PICKAXE_CONVERSIONS.put(
Helper.getStateFromString(split[0]),
Helper.getStateFromString(split[1]));
}
} catch (Exception e) {
NaturesAura.LOGGER.warn("Error parsing additionalBotanistPickaxeConversions", e);
}
2018-11-20 19:59:18 +01:00
try {
for (String s : general.additionalFlowers)
NaturesAuraAPI.FLOWERS.add(Helper.getStateFromString(s));
} catch (Exception e) {
NaturesAura.LOGGER.warn("Error parsing additionalFlowers", e);
}
try {
for (String s : general.auraTypeOverrides) {
String[] split = s.split("->");
IAuraType type = NaturesAuraAPI.AURA_TYPES.get(new ResourceLocation(split[1]));
if (type instanceof BasicAuraType)
((BasicAuraType) type).addDimensionType(DimensionType.byName(split[0]));
}
} catch (Exception e) {
NaturesAura.LOGGER.warn("Error parsing auraTypeOverrides", e);
}
}
}
2018-10-22 20:18:54 +02:00
}