/*
* AgriCraft Configuration File
*
* This might not be *strictly* cleaner, but it is nicer.
*
*/
package com.infinityraider.agricraft.reference;
import com.agricraft.agricore.config.AgriConfigCategory;
import com.agricraft.agricore.config.AgriConfigurable;
import com.agricraft.agricore.core.AgriCore;
import net.minecraft.util.text.TextFormatting;
/**
* AgriCraft Configuration File.
*
*
*/
public class AgriCraftConfig {
// Core
@AgriConfigurable(category = AgriConfigCategory.CORE, key = "Crops per Craft", min = "1", max = "4", comment = "The number of crops you get per crafting operation.")
public static int cropsPerCraft = 4;
@AgriConfigurable(category = AgriConfigCategory.CORE, key = "Crop Stat Cap", min = "1", max = "10", comment = "The maximum attainable value of the stats on a crop.")
public static int cropStatCap = 10;
@AgriConfigurable(category = AgriConfigCategory.CORE, key = "Use boring alpha warning messages", comment = "Uses a boring one-line alpha warning message instead of the more interesting default ones.")
public static boolean disableLinks = false;
// Debug
@AgriConfigurable(category = AgriConfigCategory.DEBUG, key = "debug", comment = "Set to true to enable debug mode.")
public static boolean debug = false;
@AgriConfigurable(category = AgriConfigCategory.DEBUG, key = "Display OreDict Tooltips", comment = "Set to true to add OreDict info to itemstack tooltips.")
public static boolean enableOreDictTooltips = false;
@AgriConfigurable(category = AgriConfigCategory.DEBUG, key = "Display NBT Tooltips", comment = "Set to true to add NBT info to itemstack tooltips.")
public static boolean enableNBTTooltips = false;
// Irrigation
@AgriConfigurable(category = AgriConfigCategory.IRRIGATION, key = "Enable Irrigation", comment = "Set to true if you want to enable irrigation systems.")
public static boolean enableIrrigation = true;
@AgriConfigurable(category = AgriConfigCategory.IRRIGATION, key = "Spawn water after breaking tank", comment = "Set to false to disable placing a source block when breaking non-empty tanks.")
public static boolean placeWater = false;
@AgriConfigurable(category = AgriConfigCategory.IRRIGATION, key = "Fill tank from flowing water", comment = "Set to true to let tanks fill up when water flows above them.")
public static boolean fillFromFlowingWater = false;
@AgriConfigurable(category = AgriConfigCategory.IRRIGATION, key = "Channel Capacity", min = "100", max = "2000", comment = "The amount of water in mB that an irrigation channel can hold.")
public static int channelCapacity = 500;
// Sprinkler
@AgriConfigurable(category = AgriConfigCategory.IRRIGATION, key = "Sprinkler growth interval", min = "1", max = "300", comment = "Every x seconds each plant in sprinkler range has y chance to growth tick.")
public static int sprinklerGrowthInterval = 5;
@AgriConfigurable(category = AgriConfigCategory.IRRIGATION, key = "Sprinkler growth chance", min = "0", max = "100", comment = "Every x seconds each plant in sprinkler range has this chance to growth tick")
public static int sprinklerGrowthChance = 20;
@AgriConfigurable(category = AgriConfigCategory.IRRIGATION, key = "Sprinkler water usage", min = "0", max = "10000", comment = "Water usage of the sprinkler in mB per second")
public static int sprinklerRatePerSecond = 10;
public static int sprinklerRatePerHalfSecond = 5;
public static float sprinklerGrowthChancePercent = 0.1f;
public static int sprinklerGrowthIntervalTicks = 100;
// Farming
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Fertilizer Mutations", comment = "Set to false if you wish to disable using fertilizers on a cross crop to force a mutation.")
public static boolean fertilizerMutation = false;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Disable Vanilla Farming", comment = "Set to true to disable vanilla farming, meaning you can only grow plants on crops.")
public static boolean disableVanillaFarming = false;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Show Disabled Vanilla Farming Warning", comment = "Set to true to warn that vanilla farming is disabled when trying to plant vanilla plant.")
public static boolean showDisabledVanillaFarmingWarning = true;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Hardcore stats", comment = "Set to true to enable hardcore mode for stat increasing: 1 parent: 3/4 decrement, 1/4 nothing.\n 2 parents: 2/4 decrement, 1/4 nothing, 1/4 increment.\n 3 parents: 1/4 decrement, 1/2 nothing, 1/4 increment.\n 4 parents: 1/4 decrement, 1/4 nothing, 1/2 increment.")
public static boolean hardCoreStats = false;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Growth rate multiplier", min = "0", max = "2", comment = "This is a global growth rate multiplier.")
public static float growthMultiplier = 1.0f;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Crop Stat Divisor", min = "1", max = "3", comment = "On a mutation the stats on the crop will be divided by this number.")
public static int cropStatDivisor = 2;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Only mature crops drop seeds", comment = "Set this to true to make only mature crops drop seeds (to encourage trowel usage).")
public static boolean onlyMatureDropSeeds = false;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Non parent crops affect stats negatively", comment = "True means any crop that is not considered a valid parent will affect stat gain negatively.")
public static boolean otherCropsAffectStatsNegatively = true;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Mutation Chance", min = "0", max = "1", comment = "Define mutation chance (0.0 means no mutations, only spreading and 1.0 means only mutations no spreading.")
public static float mutationChance = Constants.DEFAULT_MUTATION_CHANCE;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Valid parents", min = "1", max = "3", comment = "What are considered valid parents for stat increasing: 1 = Any. 2 = Mutation parents and identical crops. 3 = Only identical crops.")
public static int validParents = 2;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Single spread stat increase", comment = "Set to true to allow crops that spread from one single crop to increase stats.")
public static boolean singleSpreadsIncrement = false;
@AgriConfigurable(key = "Wipe Grass Drops", category = AgriConfigCategory.FARMING, comment = "Determines if AgriCraft should completeley override grass drops with those confiured in the JSON files.")
public static boolean wipeGrassDrops = false;
// Weeds
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Weeds destroy crop sticks", comment = "Set this to true to have weeds destroy the crop sticks when they are broken with weeds (to encourage rake usage).")
public static boolean weedsDestroyCropSticks = false;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Crossover Chance", min = "0.05", max = "0.95", comment = "The base chance for a crossover to occur during any given tick. Setting this 95% is of questionable morality.")
public static float crossOverChance = 0.15f;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Weed Growth Rate", min = "10", max = "50", comment = "The average number of growth ticks for the weed to grow.")
public static int defaultGrowthChance = 50;
@AgriConfigurable(category = AgriConfigCategory.FARMING, key = "Raking weeds drops items", comment = "Set to false if you wish to disable drops from raking weeds.")
public static boolean rakingDrops = true;
// World Generation
@AgriConfigurable(category = AgriConfigCategory.WORLD, key = "Disable World Gen", comment = "Set to true to disable world gen, no greenhouses will spawn in villages.")
public static boolean disableWorldGen = false;
@AgriConfigurable(category = AgriConfigCategory.WORLD, key = "Greenhouse weight", min = "0", max = "100", comment = "The weight for a greenhouse to be generated in a village.")
public static int greenhouseWeight = 10;
@AgriConfigurable(category = AgriConfigCategory.WORLD, key = "Greenhouse limit", min = "0", max = "2", comment = "The maximum number of greenhouses per village.")
public static int greenhouseLimit = 1;
@AgriConfigurable(category = AgriConfigCategory.WORLD, key = "Irrigated greenhouse weight", min = "0", max = "100", comment = "The weight for an irrigated greenhouse to be generated in a village.")
public static int greenhouseIrrigatedWeight = 2;
@AgriConfigurable(category = AgriConfigCategory.WORLD, key = "Irrigated greenhouse limit", min = "0", max = "2", comment = "The maximum number of irrigated greenhouses per village.")
public static int greenhouseIrrigatedLimit = 1;
@AgriConfigurable(category = AgriConfigCategory.WORLD, key = "Enable villagers", comment = "Set to false if you wish to disable villagers spawning in the AgriCraft greenhouses.")
public static boolean villagerEnabled = true;
@AgriConfigurable(category = AgriConfigCategory.WORLD, key = "Maximum crop tier", min = "1", max = "5", comment = "The maximum tier of plants that will spawn in greenhouses.")
public static int greenHouseMaxTier = 3;
// Client
//@AgriConfigurable(category = AgriConfigCategory.CLIENT, key = "Condense custom wood blocks in NEI", comment = "Set to true to condense all entries for custom wood blocks into one entry in NEI.")
//public static boolean condenseCustomWoodInNei = true;
@AgriConfigurable(category = AgriConfigCategory.CLIENT, key = "Stat Display", comment = "This defines how to display the stats of plants.")
public static String STAT_FORMAT = TextFormatting.GREEN + "- {0}: [{1}/{2}]";
// TODO: Instead follow the reduce particles setting from minecraft.
@AgriConfigurable(category = AgriConfigCategory.CLIENT, key = "Disable particles", comment = "Set to true to disable particles for the sprinklers.")
public static boolean disableParticles = false;
@AgriConfigurable(category = AgriConfigCategory.CLIENT, key = "Disable sounds", comment = "Set to true to disable sounds.")
public static boolean disableSounds = false;
//seed storage
@AgriConfigurable(category = AgriConfigCategory.STORAGE, key = "Disable seed storage system", comment = "Set to true to disable the seed storage systems.")
public static boolean disableSeedStorage = false;
@AgriConfigurable(category = AgriConfigCategory.STORAGE, key = "Disable seed storage warehouses", comment = "Set to true to disable the seed storage warehouse blocks.")
public static boolean disableSeedWarehouse = false;
// Decoration
@AgriConfigurable(category = AgriConfigCategory.DECORATION, key = "Enable Grates", comment = "Set to false to disable the decorative custom wood grates.")
public static boolean enableGrates = true;
// Add to Configurator
static {
AgriCore.getConfig().addConfigurable(AgriCraftConfig.class);
}
}