diff options
Diffstat (limited to 'src/main/java/gregtech/api')
25 files changed, 2735 insertions, 510 deletions
diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index 92e0ef36dd..51bf250659 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -35,10 +35,8 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; import com.google.common.collect.SetMultimap; -import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.SoundResource; @@ -231,8 +229,7 @@ public class GregTech_API { /** * The Configuration Objects */ - public static GT_Config sMachineFile = null, sWorldgenFile = null, sMaterialProperties = null, sUnification = null, - sSpecialFile = null, sClientDataFile, sOPStuff = null; + public static GT_Config NEIClientFIle; public static int TICKS_FOR_LAG_AVERAGING = 25, MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING = 100; /** @@ -258,11 +255,10 @@ public class GregTech_API { * Getting assigned by the Config */ public static boolean sTimber = true, sDrinksAlwaysDrinkable = false, sMultiThreadedSounds = false, - sDoShowAllItemsInCreative = false, sColoredGUI = true, sMachineMetalGUI = false, sConstantEnergy = true, - sMachineExplosions = true, sMachineFlammable = true, sMachineNonWrenchExplosions = true, - sMachineRainExplosions = true, sMachineThunderExplosions = true, sMachineFireExplosions = true, - sMachineWireFire = true, mOutputRF = false, mInputRF = false, meIOLoaded = false, mRFExplosions = false, - mServerStarted = false; + sDoShowAllItemsInCreative = false, sColoredGUI = true, sMachineMetalGUI = false, sMachineExplosions = true, + sMachineFlammable = true, sMachineNonWrenchExplosions = true, sMachineRainExplosions = true, + sMachineThunderExplosions = true, sMachineFireExplosions = true, sMachineWireFire = true, mOutputRF = false, + mInputRF = false, mRFExplosions = false, mServerStarted = false; public static int mEUtoRF = 360, mRFtoEU = 20; @@ -775,14 +771,7 @@ public class GregTech_API { } public static Comparator<ItemStack> getConfigurationCircuitsComparator() { - return Comparator.comparingInt((ItemStack is) -> { - // By default, the Programmed Circuit should be the earliest configuration circuit to which the - // player is exposed - if (GT_Mod.gregtechproxy.mCircuitsOrder.isEmpty()) - return is.getItem() instanceof GT_IntegratedCircuit_Item ? 0 : 1; - return GT_Mod.gregtechproxy.mCircuitsOrder - .getOrDefault(String.valueOf(GameRegistry.findUniqueIdentifierFor(is.getItem())), Integer.MAX_VALUE); - }) + return Comparator.comparingInt((ItemStack is) -> is.getItem() instanceof GT_IntegratedCircuit_Item ? 0 : 1) .thenComparing(ItemStack::getUnlocalizedName) .thenComparing(ItemStack::getItemDamage); } diff --git a/src/main/java/gregtech/api/enums/ConfigCategories.java b/src/main/java/gregtech/api/enums/ConfigCategories.java index 83deec4f58..0e70e54651 100644 --- a/src/main/java/gregtech/api/enums/ConfigCategories.java +++ b/src/main/java/gregtech/api/enums/ConfigCategories.java @@ -1,5 +1,6 @@ package gregtech.api.enums; +@Deprecated public enum ConfigCategories { news, diff --git a/src/main/java/gregtech/api/enums/Dimensions.java b/src/main/java/gregtech/api/enums/Dimensions.java new file mode 100644 index 0000000000..21dee59977 --- /dev/null +++ b/src/main/java/gregtech/api/enums/Dimensions.java @@ -0,0 +1,33 @@ +package gregtech.api.enums; + +public enum Dimensions { + + Overworld("0"), + Moon("Moon"), + Mercury("Mercury"), + Venus("Venus"), + Mars("Mars"), + Io("Io"), + Europa("Europa"), + Callisto("Callisto"), + Titan("Titan"), + Miranda("Miranda"), + Oberon("oberon"), + Triton("Triton"), + Proteus("Proteus"), + Pluto("Pluto"), + Makemake("Makemake"), + AlphaCentauriBb("aCentauriBb"), + BarnardaC("BarnardaC"), + BarnardaE("BarnardaE"), + BarnardaF("BarnardaF"), + TCetiE("TCetiE"), + Ross128b("Ross128b"), + Ross128ba("Ross128ba"),; + + public final String id; + + private Dimensions(String id) { + this.id = id; + } +} diff --git a/src/main/java/gregtech/api/enums/GTStones.java b/src/main/java/gregtech/api/enums/GTStones.java new file mode 100644 index 0000000000..82d7cb90ce --- /dev/null +++ b/src/main/java/gregtech/api/enums/GTStones.java @@ -0,0 +1,398 @@ +package gregtech.api.enums; + +import gregtech.api.GregTech_API; +import gregtech.common.GT_Worldgen_Stone; +import gregtech.common.StoneBuilder; + +public enum GTStones { + + NetherBlackgraniteTiny(new StoneBuilder().name("nether.stone.blackgranite.tiny") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(-1) + .size(50) + .probability(45) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherBlackgraniteSmall(new StoneBuilder().name("nether.stone.blackgranite.small") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(-1) + .size(100) + .probability(60) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherBlackgraniteMedium(new StoneBuilder().name("nether.stone.blackgranite.medium") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(-1) + .size(200) + .probability(80) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherBlackgraniteLarge(new StoneBuilder().name("nether.stone.blackgranite.large") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(-1) + .size(300) + .probability(70) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherBlackgraniteHuge(new StoneBuilder().name("nether.stone.blackgranite.huge") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(-1) + .size(400) + .probability(150) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherRedgraniteTiny(new StoneBuilder().name("nether.stone.redgranite.tiny") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(-1) + .size(50) + .probability(45) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherRedgraniteSmall(new StoneBuilder().name("nether.stone.redgranite.small") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(-1) + .size(100) + .probability(60) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherRedgraniteMedium(new StoneBuilder().name("nether.stone.redgranite.medium") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(-1) + .size(200) + .probability(80) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherRedgraniteLarge(new StoneBuilder().name("nether.stone.redgranite.large") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(-1) + .size(300) + .probability(70) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherRedgraniteHuge(new StoneBuilder().name("nether.stone.redgranite.huge") + .disabledByDefault() + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(-1) + .size(400) + .probability(150) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherMarbleTiny(new StoneBuilder().name("nether.stone.marble.tiny") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(-1) + .size(50) + .probability(45) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherMarbleSmall(new StoneBuilder().name("nether.stone.marble.small") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(-1) + .size(100) + .probability(60) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherMarbleMedium(new StoneBuilder().name("nether.stone.marble.medium") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(-1) + .size(200) + .probability(80) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherMarbleLarge(new StoneBuilder().name("nether.stone.marble.large") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(-1) + .size(300) + .probability(70) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherMarbleHuge(new StoneBuilder().name("nether.stone.marble.huge") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(-1) + .size(400) + .probability(150) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherBasaltTiny(new StoneBuilder().name("nether.stone.basalt.tiny") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(-1) + .size(50) + .probability(45) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherBasaltSmall(new StoneBuilder().name("nether.stone.basalt.small") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(-1) + .size(100) + .probability(60) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherBasaltMedium(new StoneBuilder().name("nether.stone.basalt.medium") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(-1) + .size(200) + .probability(80) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherBasaltLarge(new StoneBuilder().name("nether.stone.basalt.large") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(-1) + .size(300) + .probability(70) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + NetherBasaltHuge(new StoneBuilder().name("nether.stone.basalt.huge") + .disabledByDefault() + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(-1) + .size(400) + .probability(150) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + OverworldBlackgraniteTiny(new StoneBuilder().name("overworld.stone.blackgranite.tiny") + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(0) + .size(75) + .probability(5) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldBlackgraniteSmall(new StoneBuilder().name("overworld.stone.blackgranite.small") + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(0) + .size(100) + .probability(10) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldBlackgraniteMedium(new StoneBuilder().name("overworld.stone.blackgranite.medium") + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(0) + .size(200) + .probability(10) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldBlackgraniteLarge(new StoneBuilder().name("overworld.stone.blackgranite.large") + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(0) + .size(300) + .probability(70) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + OverworldBlackgraniteHuge(new StoneBuilder().name("overworld.stone.blackgranite.huge") + .block(GregTech_API.sBlockGranites) + .blockMeta(0) + .dimension(0) + .size(400) + .probability(150) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + OverworldRedgraniteTiny(new StoneBuilder().name("overworld.stone.redgranite.tiny") + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(0) + .size(75) + .probability(5) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldRedgraniteSmall(new StoneBuilder().name("overworld.stone.redgranite.small") + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(0) + .size(100) + .probability(10) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldRedgraniteMedium(new StoneBuilder().name("overworld.stone.redgranite.medium") + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(0) + .size(200) + .probability(10) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldRedgraniteLarge(new StoneBuilder().name("overworld.stone.redgranite.large") + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(0) + .size(300) + .probability(70) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + OverworldRedgraniteHuge(new StoneBuilder().name("overworld.stone.redgranite.huge") + .block(GregTech_API.sBlockGranites) + .blockMeta(8) + .dimension(0) + .size(400) + .probability(150) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + OverworldMarbleTiny(new StoneBuilder().name("overworld.stone.marble.tiny") + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(0) + .size(75) + .probability(5) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldMarbleSmall(new StoneBuilder().name("overworld.stone.marble.small") + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(0) + .size(100) + .probability(10) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldMarbleMedium(new StoneBuilder().name("overworld.stone.marble.medium") + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(0) + .size(200) + .probability(10) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldMarbleLarge(new StoneBuilder().name("overworld.stone.marble.large") + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(0) + .size(300) + .probability(70) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + OverworldMarbleHuge(new StoneBuilder().name("overworld.stone.marble.huge") + .block(GregTech_API.sBlockStones) + .blockMeta(0) + .dimension(0) + .size(400) + .probability(150) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + OverworldBasaltTiny(new StoneBuilder().name("overworld.stone.basalt.tiny") + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(0) + .size(75) + .probability(5) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldBasaltSmall(new StoneBuilder().name("overworld.stone.basalt.small") + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(0) + .size(100) + .probability(10) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldBasaltMedium(new StoneBuilder().name("overworld.stone.basalt.medium") + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(0) + .size(200) + .probability(10) + .heightRange(0, 180) + .generationInVoidEnabled(false)), + + OverworldBasaltLarge(new StoneBuilder().name("overworld.stone.basalt.large") + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(0) + .size(300) + .probability(70) + .heightRange(0, 120) + .generationInVoidEnabled(false)), + + OverworldBasaltHuge(new StoneBuilder().name("overworld.stone.basalt.huge") + .block(GregTech_API.sBlockStones) + .blockMeta(8) + .dimension(0) + .size(400) + .probability(150) + .heightRange(0, 120) + .generationInVoidEnabled(false)),; + + public final StoneBuilder stone; + + private GTStones(StoneBuilder stone) { + this.stone = stone; + } + + public GT_Worldgen_Stone addGTStone() { + return new GT_Worldgen_Stone(this.stone); + } + +} diff --git a/src/main/java/gregtech/api/enums/ManualOreDictTweaks.java b/src/main/java/gregtech/api/enums/ManualOreDictTweaks.java new file mode 100644 index 0000000000..2392fcb591 --- /dev/null +++ b/src/main/java/gregtech/api/enums/ManualOreDictTweaks.java @@ -0,0 +1,70 @@ +package gregtech.api.enums; + +import static gregtech.api.enums.Mods.Avaritia; +import static gregtech.api.enums.Mods.Botania; +import static gregtech.api.enums.Mods.DraconicEvolution; +import static gregtech.api.enums.Mods.EnderIO; +import static gregtech.api.enums.Mods.GregTech; +import static gregtech.api.enums.Mods.HardcoreEnderExpansion; +import static gregtech.api.enums.Mods.ProjectRedCore; +import static gregtech.api.enums.Mods.RandomThings; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.enums.Mods.Translocator; + +import java.util.HashMap; +import java.util.Map; + +public class ManualOreDictTweaks { + + private static final Map<String, Map<String, Boolean>> oredictLookupTable = new HashMap<>(); + + private static final String[] gregtech = new String[] { "dustAlumina', 'dustNikolite" }; + private static final String[] enderio = new String[] { "ingotDarkSteel" }; + private static final String[] draconicevolution = new String[] { "dustDraconium" }; + private static final String[] thaumcraft = new String[] { + "ingotThaumium', 'ingotVoid', 'nuggetThaumium', 'nuggetVoid" }; + private static final String[] projred_core = new String[] { "dustElectrotine" }; + private static final String[] translocator = new String[] { "nuggetDiamond" }; + private static final String[] hardcoreenderexpansion = new String[] { "ingotHeeEndium" }; + private static final String[] avaritia = new String[] { "ingotCosmicNeutronium', 'ingotInfinity" }; + private static final String[] randomthings = new String[] { "stickObsidian" }; + private static final String[] botania = new String[] { + "ingotElvenElementium', 'ingotManasteel', 'ingotTerrasteel', 'nuggetElvenElementium', 'nuggetManasteel', 'nuggetTerrasteel" }; + + private static final String[] modNames = { GregTech.ID, EnderIO.ID, DraconicEvolution.ID, Thaumcraft.ID, + ProjectRedCore.ID, Translocator.ID, HardcoreEnderExpansion.ID, Avaritia.ID, RandomThings.ID, Botania.ID }; + private static final String[][] array = new String[][] { gregtech, enderio, draconicevolution, thaumcraft, + projred_core, translocator, hardcoreenderexpansion, avaritia, randomthings, botania }; + + static { + initTweakedValues(); + } + + private static void initTweakedValues() { + for (int i = 0; i < array.length; i++) { + HashMap<String, Boolean> modTableLookup = new HashMap<>(); + String name = modNames[i]; + for (String oredict : array[i]) { + modTableLookup.put(oredict, true); + } + oredictLookupTable.put(name, modTableLookup); + } + } + + public static boolean shouldOredictBeOverwritten(String modID, String oredict) { + Map<String, Boolean> modLookupTable = oredictLookupTable.get(modID); + if (modLookupTable == null) { + modLookupTable = new HashMap<>(); + modLookupTable.put(oredict, false); + oredictLookupTable.put(modID, modLookupTable); + return false; + } + Boolean result = modLookupTable.get(oredict); + if (result == null) { + modLookupTable.put(oredict, false); + result = false; + } + return result; + } + +} diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index 16553e2d42..e5f9991236 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -13,7 +13,6 @@ import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -34,6 +33,7 @@ import gregtech.api.interfaces.ISubTagContainer; import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import gregtech.common.config.gregtech.ConfigHarvestLevel; import gregtech.common.render.items.CosmicNeutroniumRenderer; import gregtech.common.render.items.GT_GeneratedMaterial_Renderer; import gregtech.common.render.items.GaiaSpiritRenderer; @@ -2574,59 +2574,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { } } - private static void addFuelValues(Materials aMaterial, String aConfigPath) { - aMaterial.mFuelPower = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelPower", aMaterial.mFuelPower); - aMaterial.mFuelType = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelType", aMaterial.mFuelType); - } - - private static void addTemperatureValues(Materials aMaterial, String aConfigPath) { - aMaterial.mMeltingPoint = GregTech_API.sMaterialProperties - .get(aConfigPath, "MeltingPoint", aMaterial.mMeltingPoint); - aMaterial.mBlastFurnaceRequired = GregTech_API.sMaterialProperties - .get(aConfigPath, "BlastFurnaceRequired", aMaterial.mBlastFurnaceRequired); - aMaterial.mBlastFurnaceTemp = (short) GregTech_API.sMaterialProperties - .get(aConfigPath, "BlastFurnaceTemp", aMaterial.mBlastFurnaceTemp); - aMaterial.mGasTemp = GregTech_API.sMaterialProperties.get(aConfigPath, "GasTemp", aMaterial.mGasTemp); - aMaterial.setHeatDamage( - (float) GregTech_API.sMaterialProperties.get(aConfigPath, "HeatDamage", aMaterial.mHeatDamage)); - } - - private static void addDensityValues(Materials aMaterial, String aConfigPath) { - aMaterial.mDensityMultiplier = GregTech_API.sMaterialProperties - .get(aConfigPath, "DensityMultiplier", aMaterial.mDensityMultiplier); - aMaterial.mDensityDivider = GregTech_API.sMaterialProperties - .get(aConfigPath, "DensityDivider", aMaterial.mDensityDivider); - aMaterial.mDensity = (long) GregTech_API.sMaterialProperties.get( - aConfigPath, - "Density", - ((double) M * aMaterial.mDensityMultiplier) - / (aMaterial.mDensityDivider != 0 ? aMaterial.mDensityDivider : 1)); - } - - private static void addColorValues(Materials aMaterial, String aConfigPath) { - aMaterial.mTransparent = GregTech_API.sMaterialProperties - .get(aConfigPath, "Transparent", aMaterial.mTransparent); - String aColor = GregTech_API.sMaterialProperties - .get(aConfigPath, "DyeColor", aMaterial.mColor == Dyes._NULL ? "None" : aMaterial.mColor.toString()); - aMaterial.mColor = aColor.equals("None") ? Dyes._NULL : Dyes.get(aColor); - String[] aRGBA = GregTech_API.sMaterialProperties.get( - aConfigPath, - "MatRGBA", - aMaterial.mRGBa[0] + "," + aMaterial.mRGBa[1] + "," + aMaterial.mRGBa[2] + "," + aMaterial.mRGBa[3] + ",") - .split(","); - aMaterial.mRGBa[0] = Short.parseShort(aRGBA[0]); - aMaterial.mRGBa[1] = Short.parseShort(aRGBA[1]); - aMaterial.mRGBa[2] = Short.parseShort(aRGBA[2]); - aMaterial.mRGBa[3] = Short.parseShort(aRGBA[3]); - } - - private static void addToolValues(Materials aMaterial, String aConfigPath) { - aMaterial.mDurability = GregTech_API.sMaterialProperties - .get(aConfigPath, "ToolDurability", aMaterial.mDurability); - aMaterial.mToolSpeed = (float) GregTech_API.sMaterialProperties - .get(aConfigPath, "ToolSpeed", aMaterial.mToolSpeed); - aMaterial.mToolQuality = (byte) GregTech_API.sMaterialProperties - .get(aConfigPath, "ToolQuality", aMaterial.mToolQuality); + private static void addToolValues(Materials aMaterial) { // Moved from GT_Proxy? (Not sure) aMaterial.mHandleMaterial = (aMaterial == Desh ? aMaterial.mHandleMaterial : aMaterial == Diamond || aMaterial == Thaumium ? Wood @@ -2653,79 +2601,26 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { } } - private static void addEnchantmentValues(Materials aMaterial, String aConfigPath) { - aMaterial.mEnchantmentToolsLevel = (byte) GregTech_API.sMaterialProperties - .get(aConfigPath, "EnchantmentLevel", aMaterial.mEnchantmentToolsLevel); - String aEnchantmentName = GregTech_API.sMaterialProperties.get( - aConfigPath, - "Enchantment", - aMaterial.mEnchantmentTools != null ? aMaterial.mEnchantmentTools.getName() : ""); + private static void addEnchantmentValues(Materials aMaterial) { + String aEnchantmentName = aMaterial.mEnchantmentTools != null ? aMaterial.mEnchantmentTools.getName() : ""; if (aMaterial.mEnchantmentTools != null && !aEnchantmentName.equals(aMaterial.mEnchantmentTools.getName())) IntStream.range(0, Enchantment.enchantmentsList.length) .filter(i -> aEnchantmentName.equals(Enchantment.enchantmentsList[i].getName())) .forEach(i -> aMaterial.mEnchantmentTools = Enchantment.enchantmentsList[i]); } - private static void addProcessingIntoValues(Materials aMaterial, String aConfigPath) { - aMaterial.mSmeltInto = MATERIALS_MAP - .get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialSmeltInto", aMaterial.mSmeltInto.mName)); - aMaterial.mMacerateInto = MATERIALS_MAP.get( - GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialMacerateInto", aMaterial.mMacerateInto.mName)); - aMaterial.mArcSmeltInto = MATERIALS_MAP.get( - GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialArcSmeltInto", aMaterial.mArcSmeltInto.mName)); - aMaterial.mDirectSmelting = MATERIALS_MAP.get( - GregTech_API.sMaterialProperties - .get(aConfigPath, "MaterialDirectSmeltInto", aMaterial.mDirectSmelting.mName)); - aMaterial.mAutoGenerateBlastFurnaceRecipes = GregTech_API.sMaterialProperties - .get(aConfigPath, "AutoGenerateBlastFurnaceRecipes", aMaterial.mAutoGenerateBlastFurnaceRecipes); - } - - private static void addMultiplierValues(Materials aMaterial, String aConfigPath) { - aMaterial.mOreValue = GregTech_API.sMaterialProperties.get(aConfigPath, "OreValue", aMaterial.mOreValue); - aMaterial.setOreMultiplier( - GregTech_API.sMaterialProperties.get(aConfigPath, "OreMultiplier", aMaterial.mOreMultiplier)); - aMaterial.setSmeltingMultiplier( - GregTech_API.sMaterialProperties.get(aConfigPath, "OreSmeltingMultiplier", aMaterial.mSmeltingMultiplier)); - aMaterial.setByProductMultiplier( - GregTech_API.sMaterialProperties - .get(aConfigPath, "OreByProductMultiplier", aMaterial.mByProductMultiplier)); - } - - private static void addHasGasFluid(Materials aMaterial, String aConfigPath) { - - if (!aMaterial.mIconSet.is_custom) { - aMaterial.mHasPlasma = GregTech_API.sMaterialProperties.get(aConfigPath, "AddPlasma", aMaterial.mHasPlasma); - if (aMaterial.mHasPlasma) { - GT_Mod.gregtechproxy.addAutogeneratedPlasmaFluid(aMaterial); - } - aMaterial.mHasGas = GregTech_API.sMaterialProperties.get(aConfigPath, "AddGas", aMaterial.mHasGas); - if (aMaterial.mHasGas) { - GT_FluidFactory - .of(aMaterial.mName.toLowerCase(), aMaterial.mDefaultLocalName, aMaterial, GAS, aMaterial.mGasTemp); - } + private static void addHasGasFluid(Materials aMaterial) { + if (aMaterial.mIconSet.is_custom) { + return; } - } - private static void addInternalStuff(Materials aMaterial, String aConfigPath) { - aMaterial.mMetaItemSubID = GregTech_API.sMaterialProperties - .get(aConfigPath, "MaterialID", aMaterial.mCustomOre ? -1 : aMaterial.mMetaItemSubID); - aMaterial.mTypes = GregTech_API.sMaterialProperties.get( - aConfigPath, - "MaterialTypes", - aMaterial.mCustomOre ? 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 : aMaterial.mTypes); - aMaterial.mUnificatable = GregTech_API.sMaterialProperties - .get(aConfigPath, "Unificatable", aMaterial.mUnificatable); - aMaterial.mHasParentMod = GregTech_API.sMaterialProperties - .get(aConfigPath, "HasParentMod", aMaterial.mHasParentMod); - } - - private static void addLocalisation(Materials aMaterial, String aConfigPath) { - aMaterial.mDefaultLocalName = GregTech_API.sMaterialProperties.get( - aConfigPath, - "MaterialName", - aMaterial.mCustomOre ? "CustomOre" + aMaterial.mCustomID : aMaterial.mDefaultLocalName); - aMaterial.mChemicalFormula = GregTech_API.sMaterialProperties - .get(aConfigPath, "ChemicalFormula", aMaterial.mChemicalFormula); + if (aMaterial.mHasPlasma) { + GT_Mod.gregtechproxy.addAutogeneratedPlasmaFluid(aMaterial); + } + if (aMaterial.mHasGas) { + GT_FluidFactory + .of(aMaterial.mName.toLowerCase(), aMaterial.mDefaultLocalName, aMaterial, GAS, aMaterial.mGasTemp); + } } private static String getConfigPath(Materials aMaterial) { @@ -2733,135 +2628,32 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { return "materials." + aMaterial.mConfigSection + "." + cOre; } - private static void addHarvestLevelNerfs(Materials aMaterial, String aConfigPath) { + private static void addHarvestLevelNerfs(Materials aMaterial) { /* Moved the harvest level changes from GT_Mod to have fewer things iterating over MATERIALS_ARRAY */ if (GT_Mod.gregtechproxy.mChangeHarvestLevels && aMaterial.mToolQuality > 0 && aMaterial.mMetaItemSubID < GT_Mod.gregtechproxy.mHarvestLevel.length && aMaterial.mMetaItemSubID >= 0) { - GT_Mod.gregtechproxy.mHarvestLevel[aMaterial.mMetaItemSubID] = GregTech_API.sMaterialProperties - .get(aConfigPath, "HarvestLevel", aMaterial.mToolQuality); + GT_Mod.gregtechproxy.mHarvestLevel[aMaterial.mMetaItemSubID] = aMaterial.mToolQuality; } } private static void addHarvestLevels() { - GT_Mod.gregtechproxy.mChangeHarvestLevels = GregTech_API.sMaterialProperties - .get("harvestlevel", "ActivateHarvestLevelChange", false); - GT_Mod.gregtechproxy.mMaxHarvestLevel = Math - .min(15, GregTech_API.sMaterialProperties.get("harvestlevel", "MaxHarvestLevel", 7)); - GT_Mod.gregtechproxy.mGraniteHavestLevel = GregTech_API.sMaterialProperties - .get("harvestlevel", "GraniteHarvestLevel", 3); + GT_Mod.gregtechproxy.mChangeHarvestLevels = ConfigHarvestLevel.activateHarvestLevelChange; + GT_Mod.gregtechproxy.mMaxHarvestLevel = Math.min(15, ConfigHarvestLevel.maxHarvestLevel); + GT_Mod.gregtechproxy.mGraniteHavestLevel = ConfigHarvestLevel.graniteHarvestLevel; } public static void initMaterialProperties() { addHarvestLevels(); for (Materials aMaterial : MATERIALS_MAP.values()) { - if (aMaterial != null && aMaterial != Materials._NULL && aMaterial != Materials.Empty) { - - String aConfigPath = getConfigPath(aMaterial); - - addFuelValues(aMaterial, aConfigPath); - addTemperatureValues(aMaterial, aConfigPath); - addDensityValues(aMaterial, aConfigPath); - addColorValues(aMaterial, aConfigPath); - addToolValues(aMaterial, aConfigPath); - addEnchantmentValues(aMaterial, aConfigPath); - addProcessingIntoValues(aMaterial, aConfigPath); - addMultiplierValues(aMaterial, aConfigPath); - addHasGasFluid(aMaterial, aConfigPath); - addInternalStuff(aMaterial, aConfigPath); - addLocalisation(aMaterial, aConfigPath); - SubTagCalculation(aMaterial, aConfigPath); - OreByProductsCalculation(aMaterial, aConfigPath); - OreReRegistrationsCalculation(aMaterial, aConfigPath); - aspectCalculation(aMaterial, aConfigPath); - addHarvestLevelNerfs(aMaterial, aConfigPath); - } - } - } - - private static void aspectCalculation(Materials aMaterial, String aConfigPath) { - - String aDefaultAspectString = aMaterial.mAspects.stream() - .map(aAspectStack -> aAspectStack.mAspect.toString()) - .collect(Collectors.joining(",", ",", "")); - String aDefaultAspectAmountString = aMaterial.mAspects.stream() - .map(aAspectStack -> String.valueOf(aAspectStack.mAmount)) - .collect(Collectors.joining(",", ",", "")); - - String aConfigAspectString = GregTech_API.sMaterialProperties - .get(aConfigPath, "ListTCAspects", aDefaultAspectString); - String aConfigAspectAmountString = GregTech_API.sMaterialProperties - .get(aConfigPath, "ListTCAspectAmounts", aDefaultAspectAmountString); - - if (!aConfigAspectString.equals(aDefaultAspectString) - || !aConfigAspectAmountString.equals(aDefaultAspectAmountString)) { - aMaterial.mAspects.clear(); - if (aConfigAspectString.length() > 0) { - String[] aAspects = aConfigAspectString.split(","); - String[] aAspectAmounts = aConfigAspectAmountString.split(","); - for (int i = 0; i < aAspects.length; i++) { - String aAspectString = aAspects[i]; - long aAspectAmount = Long.parseLong(aAspectAmounts[i]); - TC_AspectStack aAspectStack = new TC_AspectStack(TC_Aspects.valueOf(aAspectString), aAspectAmount); - aMaterial.mAspects.add(aAspectStack); - } - } - } - } - - private static void OreReRegistrationsCalculation(Materials aMaterial, String aConfigPath) { - String aDefaultMatReRegString = aMaterial.mOreReRegistrations.stream() - .map(aTag -> aTag.mName) - .collect(Collectors.joining(",", ",", "")); - String aConfigMatMatReRegString = GregTech_API.sMaterialProperties - .get(aConfigPath, "ListMaterialReRegistrations", aDefaultMatReRegString); - if (!aConfigMatMatReRegString.equals(aDefaultMatReRegString)) { - aMaterial.mOreReRegistrations.clear(); - if (aConfigMatMatReRegString.length() > 0) { - Arrays.stream(aConfigMatMatReRegString.split(",")) - .map(MATERIALS_MAP::get) - .filter(Objects::nonNull) - .forEach(aMat -> aMaterial.mOreReRegistrations.add(aMat)); - } - } - } - - private static void OreByProductsCalculation(Materials aMaterial, String aConfigPath) { - String aDefaultMatByProString = aMaterial.mOreByProducts.stream() - .map(aTag -> aTag.mName) - .collect(Collectors.joining(",", ",", "")); - String aConfigMatByProString = GregTech_API.sMaterialProperties - .get(aConfigPath, "ListMaterialByProducts", aDefaultMatByProString); - if (!aConfigMatByProString.equals(aDefaultMatByProString)) { - aMaterial.mOreByProducts.clear(); - if (aConfigMatByProString.length() > 0) { - Arrays.stream(aConfigMatByProString.split(",")) - .map(MATERIALS_MAP::get) - .filter(Objects::nonNull) - .forEach(aMat -> aMaterial.mOreByProducts.add(aMat)); + if (aMaterial == null || aMaterial == Materials._NULL || aMaterial == Materials.Empty) { + continue; } - } - } - /** - * Converts the pre-defined list of SubTags from a material into a list of SubTag names for setting/getting to/from - * the config. It is then converted to a String[] and finally to a singular String for insertion into the config If - * the config string is different from the default, we then want to clear the Materials SubTags and insert new ones - * from the config string. - */ - private static void SubTagCalculation(Materials aMaterial, String aConfigPath) { - String aDefaultTagString = aMaterial.mSubTags.stream() - .map(aTag -> aTag.mName) - .collect(Collectors.joining(",", ",", "")); - String aConfigTagString = GregTech_API.sMaterialProperties.get(aConfigPath, "ListSubTags", aDefaultTagString); - if (!aConfigTagString.equals(aDefaultTagString)) { - aMaterial.mSubTags.clear(); - if (aConfigTagString.length() > 0) { - Arrays.stream(aConfigTagString.split(",")) - .map(SubTag.sSubTags::get) - .filter(Objects::nonNull) - .forEach(aTag -> aMaterial.mSubTags.add(aTag)); - } + addToolValues(aMaterial); + addEnchantmentValues(aMaterial); + addHasGasFluid(aMaterial); + addHarvestLevelNerfs(aMaterial); } } diff --git a/src/main/java/gregtech/api/enums/Mods.java b/src/main/java/gregtech/api/enums/Mods.java index 28ed17d299..856817d972 100644 --- a/src/main/java/gregtech/api/enums/Mods.java +++ b/src/main/java/gregtech/api/enums/Mods.java @@ -179,14 +179,8 @@ public enum Mods { ZTones(Names.Z_TONES), // Do we keep compat of those? - ArsMagica2(Names.ARS_MAGICA2), - GanysSurface(Names.GANYS_SURFACE), - IndustrialCraft2Classic(Names.INDUSTRIAL_CRAFT2_CLASSIC), - MagicalCrops(Names.MAGICAL_CROPS), Metallurgy(Names.METALLURGY), RotaryCraft(Names.ROTARY_CRAFT), - ThermalExpansion(Names.THERMAL_EXPANSION), - ThermalFondation(Names.THERMAL_FONDATION), UndergroundBiomes(Names.UNDERGROUND_BIOMES), ; @@ -364,14 +358,8 @@ public enum Mods { public static final String Z_TONES = "Ztones"; // Do we keep compat of those mods? - public static final String ARS_MAGICA2 = "arsmagica2"; - public static final String GANYS_SURFACE = "ganyssurface"; - public static final String INDUSTRIAL_CRAFT2_CLASSIC = "IC2-Classic-Spmod"; - public static final String MAGICAL_CROPS = "magicalcrops"; public static final String METALLURGY = "Metallurgy"; public static final String ROTARY_CRAFT = "RotaryCraft"; - public static final String THERMAL_EXPANSION = "ThermalExpansion"; - public static final String THERMAL_FONDATION = "ThermalFoundation"; public static final String UNDERGROUND_BIOMES = "UndergroundBiomes"; } diff --git a/src/main/java/gregtech/api/enums/OreMixes.java b/src/main/java/gregtech/api/enums/OreMixes.java new file mode 100644 index 0000000000..c5c306baab --- /dev/null +++ b/src/main/java/gregtech/api/enums/OreMixes.java @@ -0,0 +1,982 @@ +package gregtech.api.enums; + +import static bloodasp.galacticgreg.api.enums.DimensionDef.*; +import static gregtech.common.OreMixBuilder.NETHER; +import static gregtech.common.OreMixBuilder.OW; +import static gregtech.common.OreMixBuilder.THE_END; +import static gregtech.common.OreMixBuilder.TWILIGHT_FOREST; + +import bloodasp.galacticgreg.GT_Worldgen_GT_Ore_Layer_Space; +import bloodasp.galacticgreg.api.enums.DimensionDef; +import gregtech.common.GT_Worldgen_GT_Ore_Layer; +import gregtech.common.OreMixBuilder; + +public enum OreMixes { + + // spotless : off + Naquadah(new OreMixBuilder().name("ore.mix.naquadah") + .heightRange(10, 90) + .weight(30) + .density(4) + .size(32) + .enableInDim( + EndAsteroids, + Maahes, + Asteroids, + BarnardE, + BarnardF, + Haumea, + KuiperBelt, + Mercury, + Oberon, + Pluto, + Titan, + VegaB, + Venus) + .primary(Materials.Naquadah) + .secondary(Materials.Naquadah) + .inBetween(Materials.Naquadah) + .sporadic(Materials.NaquadahEnriched)), + + LigniteCoal(new OreMixBuilder().name("ore.mix.lignite") + .heightRange(80, 210) + .weight(160) + .density(7) + .size(32) + .enableInDim(OW) + .enableInDim(BarnardC) + .primary(Materials.Lignite) + .secondary(Materials.Lignite) + .inBetween(Materials.Lignite) + .sporadic(Materials.Coal)), + + Coal(new OreMixBuilder().name("ore.mix.coal") + .heightRange(30, 80) + .weight(80) + .density(5) + .size(32) + .enableInDim(OW, TWILIGHT_FOREST) + .primary(Materials.Coal) + .secondary(Materials.Coal) + .inBetween(Materials.Coal) + .sporadic(Materials.Lignite)), + + Magnetite(new OreMixBuilder().name("ore.mix.magnetite") + .heightRange(60, 180) + .weight(160) + .density(2) + .size(32) + .enableInDim(OW, TWILIGHT_FOREST) + .enableInDim(Seth, BarnardE, Ceres, Deimos, Io, MakeMake, TcetiE) + .primary(Materials.Magnetite) + .secondary(Materials.Magnetite) + .inBetween(Materials.Iron) + .sporadic(Materials.VanadiumMagnetite)), + + Gold(new OreMixBuilder().name("ore.mix.gold") + .heightRange(30, 60) + .weight(160) + .density(2) + .size(32) + .enableInDim(OW, THE_END, TWILIGHT_FOREST) + .enableInDim(EndAsteroids, Seth, Asteroids, Mars, BarnardF, Callisto, Phobos, Pluto, TcetiE, Triton, VegaB) + .primary(Materials.Magnetite) + .secondary(Materials.Magnetite) + .inBetween(Materials.VanadiumMagnetite) + .sporadic(Materials.Gold)), + + Iron(new OreMixBuilder().name("ore.mix.iron") + .heightRange(10, 40) + .weight(120) + .density(3) + .size(24) + .enableInDim(OW, NETHER, TWILIGHT_FOREST) + .enableInDim(Mars, Callisto, Ceres, Ganymede, Mercury, Oberon, Pluto) + .primary(Materials.BrownLimonite) + .secondary(Materials.YellowLimonite) + .inBetween(Materials.BandedIron) + .sporadic(Materials.Malachite)), + + Cassiterite(new OreMixBuilder().name("ore.mix.cassiterite") + .heightRange(60, 220) + .weight(50) + .density(4) + .size(24) + .enableInDim(EndAsteroids, MehenBelt, Seth, Moon, Io, Miranda, TcetiE, Venus) + .enableInDim(OW, THE_END, TWILIGHT_FOREST) + .primary(Materials.Tin) + .secondary(Materials.Tin) + .inBetween(Materials.Cassiterite) + .sporadic(Materials.Tin)), + + Tetrahedrite(new OreMixBuilder().name("ore.mix.tetrahedrite") + .heightRange(80, 120) + .weight(70) + .density(3) + .size(24) + .enableInDim(NETHER, THE_END) + .enableInDim(EndAsteroids, Asteroids, Mars, CentauriAlpha, Deimos, Ganymede, KuiperBelt, Miranda, VegaB, Venus) + .primary(Materials.Tetrahedrite) + .secondary(Materials.Tetrahedrite) + .inBetween(Materials.Copper) + .sporadic(Materials.Stibnite)), + + NetherQuartz(new OreMixBuilder().name("ore.mix.netherquartz") + .heightRange(40, 80) + .weight(80) + .density(4) + .size(24) + .enableInDim(NETHER) + .enableInDim(Neper, CentauriAlpha) + .primary(Materials.NetherQuartz) + .secondary(Materials.NetherQuartz) + .inBetween(Materials.NetherQuartz) + .sporadic(Materials.Quartzite)), + + Sulfur(new OreMixBuilder().name("ore.mix.sulfur") + .heightRange(5, 20) + .weight(100) + .density(4) + .size(24) + .enableInDim(NETHER) + .enableInDim(Anubis, Mars, CentauriAlpha, Deimos, Io, Phobos, Venus) + .primary(Materials.Sulfur) + .secondary(Materials.Sulfur) + .inBetween(Materials.Pyrite) + .sporadic(Materials.Sphalerite)), + + Copper(new OreMixBuilder().name("ore.mix.copper") + .heightRange(5, 60) + .weight(80) + .density(3) + .size(24) + .enableInDim(EndAsteroids, Moon, BarnardE, BarnardF, Callisto, Ceres, Enceladus, Proteus) + .enableInDim(OW, NETHER, THE_END) + .primary(Materials.Chalcopyrite) + .secondary(Materials.Iron) + .inBetween(Materials.Pyrite) + .sporadic(Materials.Copper)), + + Bauxite(new OreMixBuilder().name("ore.mix.bauxite") + .heightRange(10, 80) + .weight(80) + .density(3) + .size(24) + .enableInDim( + Seth, + Moon, + Asteroids, + Ganymede, + Haumea, + KuiperBelt, + MakeMake, + Mercury, + Phobos, + Pluto, + Proteus, + TcetiE, + Titan) + .primary(Materials.Bauxite) + .secondary(Materials.Ilmenite) + .inBetween(Materials.Aluminium) + .sporadic(Materials.Ilmenite)), + + Salts(new OreMixBuilder().name("ore.mix.salts") + .heightRange(50, 70) + .weight(50) + .density(2) + .size(24) + .enableInDim(OW, TWILIGHT_FOREST) + .enableInDim(Mars, BarnardC, TcetiE) + .primary(Materials.RockSalt) + .secondary(Materials.Salt) + .inBetween(Materials.Lepidolite) + .sporadic(Materials.Spodumene)), + + Redstone(new OreMixBuilder().name("ore.mix.redstone") + .heightRange(5, 40) + .weight(60) + .density(2) + .size(24) + .enableInDim(OW, NETHER) + .enableInDim(Mars, BarnardF, CentauriAlpha, Ganymede, Mercury, Miranda, VegaB, Venus) + .primary(Materials.Redstone) + .secondary(Materials.Redstone) + .inBetween(Materials.Ruby) + .sporadic(Materials.Cinnabar)), + + Soapstone(new OreMixBuilder().name("ore.mix.soapstone") + .heightRange(20, 50) + .weight(40) + .density(2) + .size(16) + .enableInDim(OW, TWILIGHT_FOREST) + .enableInDim(Anubis, Maahes, Ceres) + .primary(Materials.Soapstone) + .secondary(Materials.Talc) + .inBetween(Materials.Glauconite) + .sporadic(Materials.Pentlandite)), + + Nickel(new OreMixBuilder().name("ore.mix.nickel") + .heightRange(10, 40) + .weight(40) + .density(2) + .size(16) + .enableInDim(THE_END, TWILIGHT_FOREST) + .enableInDim(EndAsteroids, MehenBelt, Mars, Deimos, KuiperBelt, Phobos, Titan, Triton, Venus) + .primary(Materials.Garnierite) + .secondary(Materials.Nickel) + .inBetween(Materials.Cobaltite) + .sporadic(Materials.Pentlandite)), + + Platinum(new OreMixBuilder().name("ore.mix.platinum") + .heightRange(40, 50) + .weight(5) + .density(2) + .size(16) + .enableInDim(EndAsteroids, Maahes, MehenBelt) + .primary(Materials.Cooperite) + .secondary(Materials.Palladium) + .inBetween(Materials.Platinum) + .sporadic(Materials.Iridium)), + + Pitchblende(new OreMixBuilder().name("ore.mix.pitchblende") + .heightRange(60, 60) + .weight(40) + .density(2) + .size(16) + .enableInDim(Mars, BarnardF, CentauriAlpha, Haumea, Io, KuiperBelt, MakeMake, Oberon, Phobos, VegaB, Venus) + .primary(Materials.Pitchblende) + .secondary(Materials.Pitchblende) + .inBetween(Materials.Uraninite) + .sporadic(Materials.Uraninite)), + + Monazite(new OreMixBuilder().name("ore.mix.monazite") + .heightRange(20, 40) + .weight(30) + .density(2) + .size(16) + .enableInDim(Seth, Moon, BarnardF, Callisto, Deimos, Enceladus, Haumea, Io, MakeMake, Titan, Triton, Venus) + .primary(Materials.Bastnasite) + .secondary(Materials.Bastnasite) + .inBetween(Materials.Monazite) + .sporadic(Materials.Neodymium)), + + Molybdenum(new OreMixBuilder().name("ore.mix.molybdenum") + .heightRange(20, 50) + .weight(5) + .density(2) + .size(16) + .enableInDim(NETHER, THE_END, TWILIGHT_FOREST) + .enableInDim(EndAsteroids, Moon, BarnardE, Ceres, Mercury, Phobos, Pluto, Proteus, Titan) + .primary(Materials.Wulfenite) + .secondary(Materials.Molybdenite) + .inBetween(Materials.Molybdenum) + .sporadic(Materials.Powellite)), + + Tungstate(new OreMixBuilder().name("ore.mix.tungstate") + .heightRange(20, 60) + .weight(10) + .density(2) + .size(16) + .enableInDim( + EndAsteroids, + Asteroids, + Mars, + Callisto, + Deimos, + Enceladus, + Ganymede, + Haumea, + KuiperBelt, + MakeMake, + Oberon, + Pluto, + Triton, + VegaB) + .primary(Materials.Scheelite) + .secondary(Materials.Scheelite) + .inBetween(Materials.Tungstate) + .sporadic(Materials.Lithium)), + + Sapphire(new OreMixBuilder().name("ore.mix.sapphire") + .heightRange(10, 40) + .weight(60) + .density(2) + .size(16) + .enableInDim(TWILIGHT_FOREST) + .enableInDim(Horus) + .primary(Materials.Almandine) + .secondary(Materials.Pyrope) + .inBetween(Materials.Sapphire) + .sporadic(Materials.GreenSapphire)), + + Manganese(new OreMixBuilder().name("ore.mix.manganese") + .heightRange(20, 30) + .weight(20) + .density(2) + .size(16) + .enableInDim(OW, NETHER) + .enableInDim(EndAsteroids, BarnardE, BarnardF, CentauriAlpha, Ceres, Io, Oberon, Titan, Triton) + .primary(Materials.Grossular) + .secondary(Materials.Spessartine) + .inBetween(Materials.Pyrolusite) + .sporadic(Materials.Tantalite)), + + Quartz(new OreMixBuilder().name("ore.mix.quartz") + .heightRange(80, 120) + .weight(20) + .density(2) + .size(16) + .enableInDim(NETHER) + .enableInDim(Neper) + .primary(Materials.Quartzite) + .secondary(Materials.Barite) + .inBetween(Materials.CertusQuartz) + .sporadic(Materials.CertusQuartz)), + + Diamond(new OreMixBuilder().name("ore.mix.diamond") + .heightRange(5, 20) + .weight(40) + .density(1) + .size(16) + .enableInDim(BarnardF, Ganymede, KuiperBelt, Mercury, Miranda, Phobos, Pluto, Proteus, Titan) + .enableInDim(OW, TWILIGHT_FOREST) + .primary(Materials.Graphite) + .secondary(Materials.Graphite) + .inBetween(Materials.Diamond) + .sporadic(Materials.Coal)), + + Olivine(new OreMixBuilder().name("ore.mix.olivine") + .heightRange(10, 40) + .weight(60) + .density(2) + .size(16) + .enableInDim(TWILIGHT_FOREST) + .enableInDim(EndAsteroids, Anubis, MehenBelt, BarnardE, Ceres, Haumea, MakeMake) + .primary(Materials.Bentonite) + .secondary(Materials.Magnesite) + .inBetween(Materials.Olivine) + .sporadic(Materials.Glauconite)), + + Apatite(new OreMixBuilder().name("ore.mix.apatite") + .heightRange(40, 60) + .weight(60) + .density(2) + .size(16) + .enableInDim(TcetiE.modDimensionDef.getDimensionName(), OW, OreMixBuilder.TWILIGHT_FOREST) + .primary(Materials.Apatite) + .secondary(Materials.Apatite) + .inBetween(Materials.TricalciumPhosphate) + .sporadic(Materials.Pyrochlore)), + + Galena(new OreMixBuilder().name("ore.mix.galena") + .heightRange(5, 45) + .weight(40) + .density(4) + .size(16) + .enableInDim(Moon, Mars, Ganymede, Oberon, Triton, VegaB, Venus) + .primary(Materials.Galena) + .secondary(Materials.Galena) + .inBetween(Materials.Silver) + .sporadic(Materials.Lead)), + + Lapis(new OreMixBuilder().name("ore.mix.lapis") + .heightRange(20, 50) + .weight(40) + .density(4) + .size(16) + .enableInDim(OW, TWILIGHT_FOREST) + .enableInDim(EndAsteroids, MehenBelt, Ceres, Deimos, Enceladus, VegaB) + .primary(Materials.Lazurite) + .secondary(Materials.Sodalite) + .inBetween(Materials.Lapis) + .sporadic(Materials.Calcite)), + + Beryllium(new OreMixBuilder().name("ore.mix.beryllium") + .heightRange(5, 30) + .weight(30) + .density(2) + .size(16) + .enableInDim(OreMixBuilder.NETHER, OreMixBuilder.THE_END) + .enableInDim(EndAsteroids, Mars, BarnardF, CentauriAlpha, Ceres, Haumea, MakeMake, Pluto, Titan, Venus) + .primary(Materials.Beryllium) + .secondary(Materials.Beryllium) + .inBetween(Materials.Emerald) + .sporadic(Materials.Thorium)), + + Uranium(new OreMixBuilder().name("ore.mix.uranium") + .heightRange(20, 30) + .weight(20) + .density(2) + .size(16) + .enableInDim( + MehenBelt, + BarnardE, + Ceres, + Deimos, + Enceladus, + Ganymede, + Haumea, + KuiperBelt, + MakeMake, + Phobos, + Proteus) + .primary(Materials.Uraninite) + .secondary(Materials.Uraninite) + .inBetween(Materials.Uranium) + .sporadic(Materials.Uranium)), + OilSand(new OreMixBuilder().name("ore.mix.oilsand") + .heightRange(50, 80) + .weight(40) + .density(5) + .size(16) + .enableInDim(OW) + .enableInDim(BarnardC, TcetiE) + .primary(Materials.Oilsands) + .secondary(Materials.Oilsands) + .inBetween(Materials.Oilsands) + .sporadic(Materials.Oilsands)), + + Neutronium(new OreMixBuilder().name("ore.mix.neutronium") + .heightRange(5, 30) + .weight(10) + .density(2) + .size(16) + .enableInDim(Maahes, MehenBelt, BarnardE, BarnardF, Haumea, KuiperBelt, MakeMake, Pluto, Proteus, Triton, VegaB) + .primary(Materials.Neutronium) + .secondary(Materials.Adamantium) + .inBetween(Materials.Naquadah) + .sporadic(Materials.Titanium)), + + AquaIgnis(new OreMixBuilder().name("ore.mix.aquaignis") + .heightRange(5, 35) + .weight(16) + .density(2) + .size(16) + .enableInDim(Neper.modDimensionDef.getDimensionName(), OreMixBuilder.TWILIGHT_FOREST) + .primary(Materials.InfusedWater) + .secondary(Materials.InfusedFire) + .inBetween(Materials.Amber) + .sporadic(Materials.Cinnabar)), + + TerraAer(new OreMixBuilder().name("ore.mix.terraaer") + .heightRange(5, 35) + .weight(16) + .density(2) + .size(16) + .enableInDim(Neper) + .enableInDim(TWILIGHT_FOREST) + .primary(Materials.InfusedEarth) + .secondary(Materials.InfusedAir) + .inBetween(Materials.Amber) + .sporadic(Materials.Cinnabar)), + + PerditioOrdo(new OreMixBuilder().name("ore.mix.perditioordo") + .heightRange(5, 35) + .weight(16) + .density(2) + .size(16) + .enableInDim(TWILIGHT_FOREST) + .enableInDim(Neper) + .primary(Materials.InfusedEntropy) + .secondary(Materials.InfusedOrder) + .inBetween(Materials.Amber) + .sporadic(Materials.Cinnabar)), + + CopperTin(new OreMixBuilder().name("ore.mix.coppertin") + .heightRange(80, 200) + .weight(80) + .density(3) + .size(24) + .enableInDim(OW) + .primary(Materials.Chalcopyrite) + .secondary(Materials.Vermiculite) + .inBetween(Materials.Cassiterite) + .sporadic(Materials.Alunite)), + + TitaniumChrome(new OreMixBuilder().name("ore.mix.titaniumchrome") + .heightRange(10, 70) + .weight(16) + .density(2) + .size(16) + .enableInDim(MehenBelt, Moon, Asteroids, Callisto, Ganymede, Mercury, Miranda, Pluto, Proteus, TcetiE, Titan) + .primary(Materials.Ilmenite) + .secondary(Materials.Chromite) + .inBetween(Materials.Uvarovite) + .sporadic(Materials.Perlite)), + + MineralSand(new OreMixBuilder().name("ore.mix.mineralsand") + .heightRange(50, 60) + .weight(80) + .density(3) + .size(24) + .enableInDim(OW) + .enableInDim(Anubis, Maahes, BarnardC, DimensionDef.Europa) + .primary(Materials.BasalticMineralSand) + .secondary(Materials.GraniticMineralSand) + .inBetween(Materials.FullersEarth) + .sporadic(Materials.Gypsum)), + + GarnetTin(new OreMixBuilder().name("ore.mix.garnettin") + .heightRange(50, 60) + .weight(80) + .density(3) + .size(24) + .enableInDim(OW) + .enableInDim(CentauriAlpha, DimensionDef.Europa) + .primary(Materials.CassiteriteSand) + .secondary(Materials.GarnetSand) + .inBetween(Materials.Asbestos) + .sporadic(Materials.Diatomite)), + + KaoliniteZeolite(new OreMixBuilder().name("ore.mix.kaolinitezeolite") + .heightRange(50, 70) + .weight(60) + .density(4) + .size(16) + .enableInDim(OW) + .enableInDim(Neper, TcetiE) + .primary(Materials.Kaolinite) + .secondary(Materials.Zeolite) + .inBetween(Materials.FullersEarth) + .sporadic(Materials.GlauconiteSand)), + + Mica(new OreMixBuilder().name("ore.mix.mica") + .heightRange(20, 40) + .weight(20) + .density(2) + .size(16) + .enableInDim(Anubis, Neper, BarnardC) + .enableInDim(OW) + .primary(Materials.Kyanite) + .secondary(Materials.Mica) + .inBetween(Materials.Cassiterite) + .sporadic(Materials.Pollucite)), + + Dolomite(new OreMixBuilder().name("ore.mix.dolomite") + .heightRange(150, 200) + .weight(40) + .density(4) + .size(24) + .enableInDim(OW) + .enableInDim(Anubis, Neper) + .primary(Materials.Dolomite) + .secondary(Materials.Wollastonite) + .inBetween(Materials.Trona) + .sporadic(Materials.Andradite)), + + PlatinumChrome(new OreMixBuilder().name("ore.mix.platinumchrome") + .heightRange(5, 30) + .weight(10) + .density(2) + .size(16) + .enableInDim(MehenBelt, Seth, Callisto, Ceres, Ganymede, Io, KuiperBelt, Mercury, Oberon, Pluto) + .primary(Materials.Platinum) + .secondary(Materials.Chrome) + .inBetween(Materials.Cooperite) + .sporadic(Materials.Palladium)), + + IridiumMytryl(new OreMixBuilder().name("ore.mix.iridiummytryl") + .heightRange(15, 40) + .weight(10) + .density(2) + .size(16) + .enableInDim(MehenBelt, Seth, Enceladus, Io, KuiperBelt, Mercury, Miranda, Titan, Triton, Venus) + .primary(Materials.Nickel) + .secondary(Materials.Iridium) + .inBetween(Materials.Palladium) + .sporadic(Materials.Mithril)), + + Osmium(new OreMixBuilder().name("ore.mix.osmium") + .heightRange(5, 30) + .weight(10) + .density(2) + .size(16) + .enableInDim(MehenBelt, Seth, BarnardC, Enceladus, KuiperBelt, Miranda, Oberon, Pluto, Proteus, Titan) + .primary(Materials.Nickel) + .secondary(Materials.Osmium) + .inBetween(Materials.Iridium) + .sporadic(Materials.Nickel)), + + SaltPeterElectrotine(new OreMixBuilder().name("ore.mix.saltpeterelectrotine") + .heightRange(5, 45) + .weight(40) + .density(3) + .size(16) + .enableInDim(NETHER) + .enableInDim(CentauriAlpha, Ceres) + .primary(Materials.Saltpeter) + .secondary(Materials.Diatomite) + .inBetween(Materials.Electrotine) + .sporadic(Materials.Alunite)), + + Desh(new OreMixBuilder().name("ore.mix.desh") + .heightRange(5, 40) + .weight(30) + .density(2) + .size(16) + .enableInDim(Anubis, Mars, Miranda) + .primary(Materials.Desh) + .secondary(Materials.Desh) + .inBetween(Materials.Scheelite) + .sporadic(Materials.Tungstate)), + + Draconium(new OreMixBuilder().name("ore.mix.draconium") + .heightRange(20, 40) + .weight(40) + .density(1) + .size(16) + .enableInDim(Horus, Seth, Deimos, Mercury, Miranda, Phobos) + .primary(Materials.Draconium) + .secondary(Materials.Electrotine) + .inBetween(Materials.Jade) + .sporadic(Materials.Vinteum)), + + Quantium(new OreMixBuilder().name("ore.mix.quantium") + .heightRange(5, 25) + .weight(30) + .density(3) + .size(24) + .enableInDim(Horus, Maahes, Venus) + .primary(Materials.Quantium) + .secondary(Materials.Amethyst) + .inBetween(Materials.Rutile) + .sporadic(Materials.Ardite)), + + CallistoIce(new OreMixBuilder().name("ore.mix.callistoice") + .heightRange(40, 60) + .weight(40) + .density(2) + .size(16) + .enableInDim(Anubis, Maahes, Callisto) + .primary(Materials.CallistoIce) + .secondary(Materials.Topaz) + .inBetween(Materials.BlueTopaz) + .sporadic(Materials.Alduorite)), + + Mytryl(new OreMixBuilder().name("ore.mix.mytryl") + .heightRange(10, 30) + .weight(40) + .density(2) + .size(16) + .enableInDim(Anubis, Horus, Io) + .primary(Materials.Mytryl) + .secondary(Materials.Jasper) + .inBetween(Materials.Ceruclase) + .sporadic(Materials.Vulcanite)), + + Ledox(new OreMixBuilder().name("ore.mix.ledox") + .heightRange(55, 65) + .weight(30) + .density(2) + .size(24) + .enableInDim(Horus, Enceladus, DimensionDef.Europa) + .primary(Materials.Ledox) + .secondary(Materials.Opal) + .inBetween(Materials.Orichalcum) + .sporadic(Materials.Rubracium)), + + Oriharukon(new OreMixBuilder().name("ore.mix.oriharukon") + .heightRange(30, 60) + .weight(40) + .density(2) + .size(16) + .enableInDim(Horus, Deimos, Phobos) + .primary(Materials.Oriharukon) + .secondary(Materials.Tanzanite) + .inBetween(Materials.Vyroxeres) + .sporadic(Materials.Mirabilite)), + + BlackPlutonium(new OreMixBuilder().name("ore.mix.blackplutonium") + .heightRange(5, 25) + .weight(40) + .density(2) + .size(24) + .enableInDim(Horus, BarnardC, CentauriAlpha, MakeMake, Pluto, TcetiE) + .primary(Materials.BlackPlutonium) + .secondary(Materials.GarnetRed) + .inBetween(Materials.GarnetYellow) + .sporadic(Materials.Borax)), + + InfusedGold(new OreMixBuilder().name("ore.mix.infusedgold") + .heightRange(15, 40) + .weight(30) + .density(2) + .size(16) + .enableInDim(BarnardE, Haumea, Io, Proteus, Titan, VegaB) + .primary(Materials.Gold) + .secondary(Materials.Gold) + .inBetween(Materials.InfusedGold) + .sporadic(Materials.Platinum)), + + Niobium(new OreMixBuilder().name("ore.mix.niobium") + .heightRange(5, 30) + .weight(60) + .density(2) + .size(24) + .enableInDim(BarnardF, MakeMake, Triton, VegaB) + .primary(Materials.Niobium) + .secondary(Materials.Yttrium) + .inBetween(Materials.Gallium) + .sporadic(Materials.Gallium)), + + TungstenIrons(new OreMixBuilder().name("ore.mix.tungstenirons") + .heightRange(5, 25) + .weight(16) + .density(2) + .size(30) + .enableInDim(Neper, BarnardC, BarnardE, BarnardF, Oberon, Pluto, Proteus, Triton) + .primary(Materials.Tungsten) + .secondary(Materials.Silicon) + .inBetween(Materials.DeepIron) + .sporadic(Materials.ShadowIron)), + + UraniumGTNH(new OreMixBuilder().name("ore.mix.uraniumgtnh") + .heightRange(10, 30) + .weight(60) + .density(2) + .size(24) + .enableInDim(BarnardE, BarnardF, Haumea, Pluto, Triton, VegaB) + .primary(Materials.Thorium) + .secondary(Materials.Uranium) + .inBetween(Materials.Plutonium241) + .sporadic(Materials.Uranium235)), + + VanadiumGold(new OreMixBuilder().name("ore.mix.vanadiumgold") + .heightRange(10, 50) + .weight(60) + .density(2) + .size(24) + .enableInDim(Maahes, BarnardF, Enceladus, MakeMake, Proteus, VegaB) + .primary(Materials.Vanadium) + .secondary(Materials.Magnetite) + .inBetween(Materials.Gold) + .sporadic(Materials.Chrome)), + + NetherStar(new OreMixBuilder().name("ore.mix.netherstar") + .heightRange(20, 60) + .weight(60) + .density(2) + .size(24) + .enableInDim(Horus, BarnardE, Haumea, TcetiE, VegaB) + .primary(Materials.GarnetSand) + .secondary(Materials.NetherStar) + .inBetween(Materials.GarnetRed) + .sporadic(Materials.GarnetYellow)), + + Garnet(new OreMixBuilder().name("ore.mix.garnet") + .heightRange(10, 30) + .weight(40) + .density(2) + .size(16) + .enableInDim(Horus, BarnardF, MakeMake, VegaB) + .primary(Materials.GarnetRed) + .secondary(Materials.GarnetYellow) + .inBetween(Materials.Chrysotile) + .sporadic(Materials.Realgar)), + + RareEarth(new OreMixBuilder().name("ore.mix.rareearth") + .heightRange(30, 60) + .weight(40) + .density(2) + .size(24) + .enableInDim(BarnardE, BarnardF, CentauriAlpha, VegaB) + .primary(Materials.Cadmium) + .secondary(Materials.Caesium) + .inBetween(Materials.Lanthanum) + .sporadic(Materials.Cerium)), + + RichNuclear(new OreMixBuilder().name("ore.mix.richnuclear") + .heightRange(55, 120) + .weight(5) + .density(2) + .size(8) + .enableInDim(Callisto, Ceres, Ganymede, Io) + .primary(Materials.Uranium) + .secondary(Materials.Plutonium) + .inBetween(Materials.Thorium) + .sporadic(Materials.Thorium)), + + HeavyPentele(new OreMixBuilder().name("ore.mix.heavypentele") + .heightRange(40, 60) + .weight(60) + .density(5) + .size(32) + .enableInDim(Neper, Mars, BarnardC, Mercury, Phobos, Titan, VegaB) + .primary(Materials.Arsenic) + .secondary(Materials.Bismuth) + .inBetween(Materials.Antimony) + .sporadic(Materials.Antimony)), + + Europa(new OreMixBuilder().name("ore.mix.europa") + .heightRange(55, 65) + .weight(110) + .density(4) + .size(24) + .enableInDim(Horus, DimensionDef.Europa, TcetiE) + .primary(Materials.Magnesite) + .secondary(Materials.BandedIron) + .inBetween(Materials.Sulfur) + .sporadic(Materials.Opal)), + + EuropaCore(new OreMixBuilder().name("ore.mix.europacore") + .heightRange(5, 15) + .weight(5) + .density(2) + .size(16) + .enableInDim(Maahes, DimensionDef.Europa, TcetiE) + .primary(Materials.Chrome) + .secondary(Materials.Tungstate) + .inBetween(Materials.Molybdenum) + .sporadic(Materials.Manganese)), + + SecondLanthanid(new OreMixBuilder().name("ore.mix.secondlanthanid") + .heightRange(10, 40) + .weight(10) + .density(3) + .size(24) + .enableInDim(Seth, BarnardC, CentauriAlpha) + .primary(Materials.Samarium) + .secondary(Materials.Neodymium) + .inBetween(Materials.Tartarite) + .sporadic(Materials.Tartarite)), + + QuartzSpace(new OreMixBuilder().name("ore.mix.quartzspace") + .heightRange(40, 80) + .weight(20) + .density(3) + .size(16) + .enableInDim(Horus, Moon, Mars, CentauriAlpha, Io, Phobos, Proteus, TcetiE, Venus) + .primary(Materials.Quartzite) + .secondary(Materials.Barite) + .inBetween(Materials.CertusQuartz) + .sporadic(Materials.CertusQuartz)), + + Rutile(new OreMixBuilder().name("ore.mix.rutile") + .heightRange(5, 20) + .weight(8) + .density(4) + .size(12) + .enableInDim(Anubis, Titan, Venus) + .primary(Materials.Rutile) + .secondary(Materials.Titanium) + .inBetween(Materials.Bauxite) + .sporadic(Materials.MeteoricIron)), + + TFGalena(new OreMixBuilder().name("ore.mix.tfgalena") + .heightRange(5, 35) + .weight(40) + .density(4) + .size(16) + .enableInDim(TWILIGHT_FOREST) + .enableInDim(Anubis, Maahes) + .primary(Materials.Galena) + .secondary(Materials.Silver) + .inBetween(Materials.Lead) + .sporadic(Materials.Cryolite)), + + LuVTantalite(new OreMixBuilder().name("ore.mix.luvtantalite") + .heightRange(20, 30) + .weight(10) + .density(4) + .size(16) + .enableInDim(Io, Miranda) + .primary(Materials.Pyrolusite) + .secondary(Materials.Apatite) + .inBetween(Materials.Tantalite) + .sporadic(Materials.Pyrochlore)), + + CertusQuartz(new OreMixBuilder().name("ore.mix.certusquartz") + .heightRange(40, 80) + .weight(60) + .density(5) + .size(32) + .enableInDim(Horus, Neper) + .primary(Materials.CertusQuartz) + .secondary(Materials.CertusQuartz) + .inBetween(Materials.CertusQuartzCharged) + .sporadic(Materials.QuartzSand)), + + InfinityCatalyst(new OreMixBuilder().name("ore.mix.infinitycatalyst") + .heightRange(5, 20) + .weight(15) + .density(2) + .size(16) + .enableInDim(Anubis) + .primary(Materials.Neutronium) + .secondary(Materials.Adamantium) + .inBetween(Materials.InfinityCatalyst) + .sporadic(Materials.Bedrockium)), + + CosmicNeutronium(new OreMixBuilder().name("ore.mix.cosmicneutronium") + .heightRange(5, 20) + .weight(15) + .density(2) + .size(16) + .enableInDim(Horus) + .primary(Materials.Neutronium) + .secondary(Materials.CosmicNeutronium) + .inBetween(Materials.BlackPlutonium) + .sporadic(Materials.Bedrockium)), + + Dilithium(new OreMixBuilder().name("ore.mix.dilithium") + .heightRange(30, 100) + .weight(30) + .density(3) + .size(24) + .enableInDim(Neper) + .primary(Materials.Dilithium) + .secondary(Materials.Dilithium) + .inBetween(Materials.MysteriousCrystal) + .sporadic(Materials.Vinteum)), + + Naquadria(new OreMixBuilder().name("ore.mix.naquadria") + .heightRange(10, 90) + .weight(40) + .density(4) + .size(24) + .enableInDim(Maahes) + .primary(Materials.Naquadah) + .secondary(Materials.NaquadahEnriched) + .inBetween(Materials.Naquadria) + .sporadic(Materials.Trinium)), + + AwakenedDraconium(new OreMixBuilder().name("ore.mix.awakeneddraconium") + .heightRange(20, 40) + .weight(20) + .density(3) + .size(16) + .enableInDim(MehenBelt) + .primary(Materials.Draconium) + .secondary(Materials.Draconium) + .inBetween(Materials.DraconiumAwakened) + .sporadic(Materials.NetherStar)), + + Tengam(new OreMixBuilder().name("ore.mix.tengam") + .heightRange(30, 180) + .weight(80) + .density(2) + .size(32) + .enableInDim(MehenBelt) + .primary(Materials.TengamRaw) + .secondary(Materials.TengamRaw) + .inBetween(Materials.Electrotine) + .sporadic(Materials.Samarium)); + + // spotless : on + + public final OreMixBuilder oreMixBuilder; + + private OreMixes(OreMixBuilder oreMixBuilder) { + this.oreMixBuilder = oreMixBuilder; + } + + public GT_Worldgen_GT_Ore_Layer addGTOreLayer() { + return new GT_Worldgen_GT_Ore_Layer(this.oreMixBuilder); + } + + public GT_Worldgen_GT_Ore_Layer_Space addGaGregOreLayer() { + return new GT_Worldgen_GT_Ore_Layer_Space(this.oreMixBuilder); + } +} diff --git a/src/main/java/gregtech/api/enums/SmallOres.java b/src/main/java/gregtech/api/enums/SmallOres.java new file mode 100644 index 0000000000..6de67bc3b9 --- /dev/null +++ b/src/main/java/gregtech/api/enums/SmallOres.java @@ -0,0 +1,555 @@ +package gregtech.api.enums; + +import static bloodasp.galacticgreg.api.enums.DimensionDef.Anubis; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Asteroids; +import static bloodasp.galacticgreg.api.enums.DimensionDef.BarnardE; +import static bloodasp.galacticgreg.api.enums.DimensionDef.BarnardF; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Callisto; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Ceres; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Deimos; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Enceladus; +import static bloodasp.galacticgreg.api.enums.DimensionDef.EndAsteroids; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Ganymede; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Haumea; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Horus; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Io; +import static bloodasp.galacticgreg.api.enums.DimensionDef.KuiperBelt; +import static bloodasp.galacticgreg.api.enums.DimensionDef.MakeMake; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Mars; +import static bloodasp.galacticgreg.api.enums.DimensionDef.MehenBelt; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Mercury; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Miranda; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Moon; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Oberon; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Phobos; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Pluto; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Proteus; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Seth; +import static bloodasp.galacticgreg.api.enums.DimensionDef.TcetiE; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Titan; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Triton; +import static bloodasp.galacticgreg.api.enums.DimensionDef.VegaB; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Venus; +import static gregtech.common.SmallOreBuilder.NETHER; +import static gregtech.common.SmallOreBuilder.OW; +import static gregtech.common.SmallOreBuilder.THE_END; +import static gregtech.common.SmallOreBuilder.TWILIGHT_FOREST; + +import bloodasp.galacticgreg.GT_Worldgen_GT_Ore_SmallPieces_Space; +import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces; +import gregtech.common.SmallOreBuilder; + +public enum SmallOres { + + // spotless : off + Copper(new SmallOreBuilder().name("ore.small.copper") + .heightRange(60, 180) + .amount(32) + .ore(Materials.Copper) + .enableInDim(Mars, Phobos, Proteus, Triton) + .enableInDim(NETHER, OW, THE_END)), + + Tin(new SmallOreBuilder().name("ore.small.tin") + .heightRange(80, 220) + .amount(32) + .ore(Materials.Tin) + .enableInDim(MehenBelt, Mars, Deimos, Ganymede, Proteus, Titan, EndAsteroids) + .enableInDim(NETHER, OW, THE_END)), + + Bismuth(new SmallOreBuilder().name("ore.small.bismuth") + .heightRange(80, 120) + .amount(8) + .ore(Materials.Bismuth) + .enableInDim(Mars, Callisto, Ceres, Io, MakeMake, Mercury, Proteus, VegaB) + .enableInDim(NETHER)), + + Coal(new SmallOreBuilder().name("ore.small.coal") + .heightRange(120, 250) + .amount(24) + .ore(Materials.Coal) + .enableInDim(OW)), + + Iron(new SmallOreBuilder().name("ore.small.iron") + .heightRange(40, 100) + .amount(16) + .ore(Materials.Iron) + .enableInDim( + Asteroids, + Mars, + BarnardE, + BarnardF, + Callisto, + Enceladus, + Ganymede, + Haumea, + Io, + KuiperBelt, + Miranda, + Phobos, + Titan, + Triton) + .enableInDim(NETHER, OW, THE_END)), + + Lead(new SmallOreBuilder().name("ore.small.lead") + .heightRange(40, 180) + .amount(16) + .ore(Materials.Lead) + .enableInDim( + Asteroids, + Mars, + Ceres, + Deimos, + Ganymede, + KuiperBelt, + MakeMake, + Mercury, + Oberon, + Pluto, + Triton, + VegaB, + Venus, + EndAsteroids) + .enableInDim(NETHER, THE_END, TWILIGHT_FOREST)), + + Zinc(new SmallOreBuilder().name("ore.small.zinc") + .heightRange(80, 210) + .amount(24) + .ore(Materials.Zinc) + .enableInDim(Mars, BarnardE, Enceladus, Ganymede, Haumea, Io, Mercury, Proteus, Titan, EndAsteroids) + .enableInDim(NETHER, OW, THE_END)), + + Gold(new SmallOreBuilder().name("ore.small.gold") + .heightRange(20, 60) + .amount(8) + .ore(Materials.Gold) + .enableInDim( + Asteroids, + Mars, + BarnardF, + Callisto, + Ceres, + KuiperBelt, + Miranda, + Phobos, + Pluto, + Venus, + EndAsteroids) + .enableInDim(OW, THE_END)), + + Silver(new SmallOreBuilder().name("ore.small.silver") + .heightRange(20, 60) + .amount(20) + .ore(Materials.Silver) + .enableInDim(Enceladus, Io, Oberon, Pluto, Proteus, Titan, Triton, VegaB, EndAsteroids) + .enableInDim(NETHER, OW, THE_END)), + + Nickel(new SmallOreBuilder().name("ore.small.nickel") + .heightRange(80, 150) + .amount(8) + .ore(Materials.Nickel) + .enableInDim( + MehenBelt, + Asteroids, + Mars, + BarnardE, + BarnardF, + Ceres, + Deimos, + KuiperBelt, + MakeMake, + Mercury, + Pluto, + Venus, + EndAsteroids) + .enableInDim(OW, THE_END)), + + Lapis(new SmallOreBuilder().name("ore.small.lapis") + .heightRange(10, 50) + .amount(4) + .ore(Materials.Lapis) + .enableInDim(MehenBelt, Enceladus, Ganymede, Io, Oberon, Phobos, TcetiE) + .enableInDim(OW)), + + Diamond(new SmallOreBuilder().name("ore.small.diamond") + .heightRange(5, 15) + .amount(2) + .ore(Materials.Diamond) + .enableInDim(Asteroids, Callisto, Ceres, Deimos, KuiperBelt, Oberon, Titan, Triton, VegaB, Venus) + .enableInDim(OW)), + + Emerald(new SmallOreBuilder().name("ore.small.emerald") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Emerald) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Ruby(new SmallOreBuilder().name("ore.small.ruby") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Ruby) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Sapphire(new SmallOreBuilder().name("ore.small.sapphire") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Sapphire) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Greensapphire(new SmallOreBuilder().name("ore.small.greensapphire") + .heightRange(5, 35) + .amount(2) + .ore(Materials.GreenSapphire) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Olivine(new SmallOreBuilder().name("ore.small.olivine") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Olivine) + .enableInDim(Horus, MehenBelt) + .enableInDim(TWILIGHT_FOREST)), + + Topaz(new SmallOreBuilder().name("ore.small.topaz") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Topaz) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Tanzanite(new SmallOreBuilder().name("ore.small.tanzanite") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Tanzanite) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Amethyst(new SmallOreBuilder().name("ore.small.amethyst") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Amethyst) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Opal(new SmallOreBuilder().name("ore.small.opal") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Opal) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Jasper(new SmallOreBuilder().name("ore.small.jasper") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Jasper) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Bluetopaz(new SmallOreBuilder().name("ore.small.bluetopaz") + .heightRange(5, 35) + .amount(2) + .ore(Materials.BlueTopaz) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Amber(new SmallOreBuilder().name("ore.small.amber") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Amber) + .enableInDim(TWILIGHT_FOREST)), + + Foolsruby(new SmallOreBuilder().name("ore.small.foolsruby") + .heightRange(5, 35) + .amount(2) + .ore(Materials.FoolsRuby) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Garnetred(new SmallOreBuilder().name("ore.small.garnetred") + .heightRange(5, 35) + .amount(2) + .ore(Materials.GarnetRed) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Garnetyellow(new SmallOreBuilder().name("ore.small.garnetyellow") + .heightRange(5, 35) + .amount(2) + .ore(Materials.GarnetYellow) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Redstone(new SmallOreBuilder().name("ore.small.redstone") + .heightRange(5, 25) + .amount(8) + .ore(Materials.Redstone) + .enableInDim(Mars, Ganymede, Io, Mercury, Proteus, Titan) + .enableInDim(NETHER, OW)), + + Netherquartz(new SmallOreBuilder().name("ore.small.netherquartz") + .heightRange(30, 120) + .amount(64) + .ore(Materials.NetherQuartz) + .enableInDim(NETHER)), + + Saltpeter(new SmallOreBuilder().name("ore.small.saltpeter") + .heightRange(10, 60) + .amount(8) + .ore(Materials.Saltpeter) + .enableInDim(Mars, Deimos, Enceladus, Ganymede, Io, Proteus, Venus) + .enableInDim(NETHER, TWILIGHT_FOREST)), + + Sulfur(new SmallOreBuilder().name("ore.small.sulfur") + .heightRange(5, 60) + .amount(40) + .ore(Materials.Sulfur) + .enableInDim(NETHER)), + + Titanium(new SmallOreBuilder().name("ore.small.titanium") + .heightRange(10, 180) + .amount(32) + .ore(Materials.Titanium) + .enableInDim( + MehenBelt, + Asteroids, + Mars, + BarnardE, + BarnardF, + Callisto, + Ceres, + Deimos, + Enceladus, + Ganymede, + Haumea, + Io, + KuiperBelt, + MakeMake, + Mercury, + Miranda, + Oberon, + Phobos, + Pluto, + Proteus, + Titan, + Triton, + Venus) + + ), + + Tungsten(new SmallOreBuilder().name("ore.small.tungsten") + .heightRange(10, 120) + .amount(16) + .ore(Materials.Tungsten) + .enableInDim(Io, Venus)), + + Meteoriciron(new SmallOreBuilder().name("ore.small.meteoriciron") + .heightRange(50, 70) + .amount(8) + .ore(Materials.MeteoricIron) + .enableInDim(Moon, Mars, Deimos, Io, Phobos, Pluto, Venus)), + + Firestone(new SmallOreBuilder().name("ore.small.firestone") + .heightRange(5, 15) + .amount(2) + .ore(Materials.Firestone) + .enableInDim(Io, Venus)), + + Neutronium(new SmallOreBuilder().name("ore.small.neutronium") + .heightRange(5, 15) + .amount(8) + .ore(Materials.Neutronium) + .enableInDim( + MehenBelt, + BarnardE, + BarnardF, + Enceladus, + Haumea, + KuiperBelt, + MakeMake, + Oberon, + Pluto, + Proteus, + TcetiE, + Titan, + Triton, + VegaB)), + + Chromite(new SmallOreBuilder().name("ore.small.chromite") + .heightRange(20, 40) + .amount(8) + .ore(Materials.Chromite) + .enableInDim( + MehenBelt, + Asteroids, + Mars, + Callisto, + Ceres, + Deimos, + Enceladus, + Ganymede, + Haumea, + Io, + KuiperBelt, + MakeMake, + Mercury, + Oberon, + Phobos, + Pluto, + Proteus, + Titan, + Triton, + VegaB, + Venus)), + + Tungstate(new SmallOreBuilder().name("ore.small.tungstate") + .heightRange(20, 40) + .amount(8) + .ore(Materials.Tungstate) + .enableInDim( + Asteroids, + Mars, + Callisto, + Ceres, + Deimos, + Enceladus, + Ganymede, + Io, + KuiperBelt, + Mercury, + Miranda, + Oberon, + Phobos, + Pluto, + Proteus, + Titan, + Triton, + Venus)), + + Naquadah(new SmallOreBuilder().name("ore.small.naquadah") + .heightRange(5, 25) + .amount(8) + .ore(Materials.Naquadah) + .enableInDim(BarnardE, BarnardF, Ceres, Enceladus, Io, KuiperBelt, Mercury, Pluto, Proteus, Venus)), + + Quantium(new SmallOreBuilder().name("ore.small.quantium") + .heightRange(5, 25) + .amount(6) + .ore(Materials.Quantium) + .enableInDim(Ceres, Haumea, Io, MakeMake, Pluto, Titan)), + + Mythril(new SmallOreBuilder().name("ore.small.mythril") + .heightRange(5, 25) + .amount(6) + .ore(Materials.Mytryl) + .enableInDim(Horus, Callisto, MakeMake, Miranda, Proteus, Venus)), + + Ledox(new SmallOreBuilder().name("ore.small.ledox") + .heightRange(40, 60) + .amount(4) + .ore(Materials.Ledox) + .enableInDim(Callisto, Enceladus, Haumea, Mercury, Oberon, Pluto)), + + Oriharukon(new SmallOreBuilder().name("ore.small.oriharukon") + .heightRange(20, 40) + .amount(6) + .ore(Materials.Oriharukon) + .enableInDim(Mars, Ceres, Haumea, MakeMake, Mercury, Titan, Triton)), + + Draconium(new SmallOreBuilder().name("ore.small.draconium") + .heightRange(5, 15) + .amount(4) + .ore(Materials.Draconium) + .enableInDim(Seth, Deimos, Ganymede, Haumea, MakeMake, Oberon, Phobos, Pluto, Venus)), + + Awdraconium(new SmallOreBuilder().name("ore.small.awdraconium") + .heightRange(5, 15) + .amount(2) + .ore(Materials.DraconiumAwakened) + .enableInDim(Seth, BarnardE, BarnardF, TcetiE, VegaB)), + + Desh(new SmallOreBuilder().name("ore.small.desh") + .heightRange(10, 30) + .amount(6) + .ore(Materials.Desh) + .enableInDim(Callisto, Deimos, Haumea, MakeMake, Mercury, Miranda, Phobos, Proteus, Triton)), + + Blackplutonium(new SmallOreBuilder().name("ore.small.blackplutonium") + .heightRange(25, 45) + .amount(6) + .ore(Materials.BlackPlutonium) + .enableInDim(BarnardE, BarnardF, Haumea, MakeMake, Pluto, Triton, VegaB)), + + Infinitycatalyst(new SmallOreBuilder().name("ore.small.infinitycatalyst") + .heightRange(40, 80) + .amount(6) + .ore(Materials.InfinityCatalyst) + .enableInDim(Anubis, VegaB)), + + Infinity(new SmallOreBuilder().name("ore.small.infinity") + .heightRange(2, 40) + .amount(2) + .ore(Materials.Infinity) + .disabledByDefault()), + + Bedrockium(new SmallOreBuilder().name("ore.small.bedrockium") + .heightRange(5, 25) + .amount(6) + .ore(Materials.Bedrockium) + .enableInDim(BarnardF)), + + Realgar(new SmallOreBuilder().name("ore.small.realgar") + .heightRange(15, 85) + .amount(32) + .ore(Materials.Realgar) + .enableInDim(BarnardF) + .enableInDim(NETHER)), + + Certusquartz(new SmallOreBuilder().name("ore.small.certusquartz") + .heightRange(5, 115) + .amount(16) + .ore(Materials.CertusQuartz) + .enableInDim(Horus) + .enableInDim(NETHER)), + + Jade(new SmallOreBuilder().name("ore.small.jade") + .heightRange(5, 35) + .amount(2) + .ore(Materials.Jade) + .enableInDim(Horus) + .enableInDim(TWILIGHT_FOREST)), + + Deepiron(new SmallOreBuilder().name("ore.small.deepiron") + .heightRange(5, 40) + .amount(8) + .ore(Materials.DeepIron) + .enableInDim(Mercury)), + + Redgarnet(new SmallOreBuilder().name("ore.small.redgarnet") + .heightRange(5, 35) + .amount(2) + .ore(Materials.GarnetRed) + .enableInDim(Horus)), + + Chargedcertus(new SmallOreBuilder().name("ore.small.chargedcertus") + .heightRange(5, 115) + .amount(4) + .ore(Materials.CertusQuartzCharged) + .enableInDim(Horus)),; + // spotless : on + + public final SmallOreBuilder smallOreBuilder; + + private SmallOres(gregtech.common.SmallOreBuilder smallOreBuilder) { + this.smallOreBuilder = smallOreBuilder; + } + + public GT_Worldgen_GT_Ore_SmallPieces addGTSmallOre() { + return new GT_Worldgen_GT_Ore_SmallPieces(this.smallOreBuilder); + } + + public GT_Worldgen_GT_Ore_SmallPieces_Space addGaGregSmallOre() { + return new GT_Worldgen_GT_Ore_SmallPieces_Space(this.smallOreBuilder); + } +} diff --git a/src/main/java/gregtech/api/enums/UndergroundFluidNames.java b/src/main/java/gregtech/api/enums/UndergroundFluidNames.java new file mode 100644 index 0000000000..5e96544bd2 --- /dev/null +++ b/src/main/java/gregtech/api/enums/UndergroundFluidNames.java @@ -0,0 +1,43 @@ +package gregtech.api.enums; + +public enum UndergroundFluidNames { + + carbonDioxide("carbondioxide"), + carbonMonoxide("carbonmonoxide"), + chlorobenzene("chlorobenzene"), + deuterium("deuterium"), + distilledWater("ic2distilledwater"), + ethane("ethane"), + ethylene("ethylene"), + fluorine("fluorine"), + heavyOil("liquid_heavy_oil"), + helium3("helium-3"), + hydrofluoricAcid("hydrofluoricacid_gt5u"), + hydrogen("hydrogen"), + hydrogenSulfide("liquid_hydricsulfur"), + lava("lava"), + lightOil("liquid_light_oil"), + liquidAir("liquidair"), + mediumOil("liquid_medium_oil"), + methane("methane"), + moltenCopper("molten.copper"), + moltenIron("molten.iron"), + moltenLead("molten.lead"), + moltenTin("molten.tin"), + naturalGas("gas_natural_gas"), + nitrogen("nitrogen"), + oil("oil"), + oxygen("oxygen"), + saltWater("saltwater"), + sulfuricAcid("sulfuricacid"), + unknownWater("unknowwater"), + veryHeavyOil("liquid_extra_heavy_oil"), + + ; + + public final String name; + + private UndergroundFluidNames(String name) { + this.name = name; + } +} diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java index 946caaa172..4959f8b060 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java @@ -35,7 +35,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.interfaces.tileentity.IGregtechWailaProvider; import gregtech.api.interfaces.tileentity.IMachineBlockUpdateable; import gregtech.api.objects.GT_ItemStack; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_Util; /** @@ -122,7 +121,7 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand * Called to set Configuration values for this MetaTileEntity. Use aConfig.get(ConfigCategories.machineconfig, * "MetaTileEntityName.Ability", DEFAULT_VALUE); to set the Values. */ - void onConfigLoad(GT_Config aConfig); + void onConfigLoad(); /** * If a Cover of that Type can be placed on this Side. Also Called when the Facing of the Block Changes and a Cover diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java index a4c5df4efe..8971db2d92 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java @@ -41,7 +41,6 @@ import gregtech.api.interfaces.tileentity.IColoredTileEntity; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_ItemStack; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_CoverBehaviorBase; import gregtech.api.util.GT_LanguageManager; @@ -239,7 +238,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public void onConfigLoad(GT_Config aConfig) { + public void onConfigLoad() { /* Do nothing */ } diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java index 604c1dfb3b..d4f8aa6ba4 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java @@ -52,7 +52,6 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable; import gregtech.api.objects.GT_ItemStack; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; @@ -204,7 +203,7 @@ public abstract class MetaTileEntity implements IMetaTileEntity, ICleanroomRecei } @Override - public void onConfigLoad(GT_Config aConfig) { + public void onConfigLoad() { /* Do nothing */ } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index f5ab88fb45..e44860963f 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -76,9 +76,6 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile public int mTransferredAmperage = 0; - public int mOverheat; - public static short mMaxOverheat = (short) (GT_Mod.gregtechproxy.mWireHeatingTicks * 100); - public GT_MetaPipeEntity_Cable(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) { super(aID, aName, aNameRegional, 0); @@ -471,13 +468,6 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile final long maxVoltageOut = (mVoltage - mCableLossPerMeter) * mAmperage; return new String[] { - "Heat: " + EnumChatFormatting.RED - + GT_Utility.formatNumbers(mOverheat) - + EnumChatFormatting.RESET - + " / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(mMaxOverheat) - + EnumChatFormatting.RESET, "Amperage: " + EnumChatFormatting.GREEN + GT_Utility.formatNumbers(currAmp) + EnumChatFormatting.RESET diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index d94a7c0ac2..cafd1c9cb7 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -40,8 +40,6 @@ import org.apache.commons.lang3.tuple.MutableTriple; import cpw.mods.fml.common.Optional; import gregtech.GT_Mod; -import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Dyes; import gregtech.api.enums.Materials; import gregtech.api.enums.Mods; @@ -66,6 +64,7 @@ import gregtech.api.util.GT_Utility; import gregtech.api.util.ISerializableObject; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; import gregtech.common.GT_Client; +import gregtech.common.config.other.ConfigGeneral; import gregtech.common.covers.CoverInfo; import gregtech.common.covers.GT_Cover_Drain; import gregtech.common.covers.GT_Cover_FluidRegulator; @@ -512,7 +511,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { boolean wasActionPerformed = false; - int limit = GregTech_API.sSpecialFile.get(ConfigCategories.general, "PipeWrenchingChainRange", 64); + int limit = ConfigGeneral.pipeWrenchingChainRange; for (int connected = 0; connected < limit; connected++) { TileEntity nextPipeBaseTile = currentPipeBase.getTileEntityAtSide(tSide); diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 4ffe82b1c2..fb77abd8b2 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -58,8 +58,6 @@ import com.gtnewhorizons.modularui.common.widget.TextWidget; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.GT_Mod; -import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.SoundResource; import gregtech.api.enums.VoidingMode; import gregtech.api.gui.modularui.GT_UIInfos; @@ -94,6 +92,7 @@ import gregtech.api.util.shutdown.ShutDownReason; import gregtech.api.util.shutdown.ShutDownReasonRegistry; import gregtech.client.GT_SoundLoop; import gregtech.common.GT_Pollution; +import gregtech.common.config.machinestats.ConfigMachines; import gregtech.common.gui.modularui.widget.CheckRecipeResultSyncer; import gregtech.common.gui.modularui.widget.ShutDownReasonSyncer; import gregtech.common.items.GT_MetaGenerated_Tool_01; @@ -169,12 +168,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity public GT_MetaTileEntity_MultiBlockBase(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional, 2); this.processingLogic = null; - GT_MetaTileEntity_MultiBlockBase.disableMaintenance = GregTech_API.sMachineFile - .get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); - this.damageFactorLow = GregTech_API.sMachineFile - .get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorLow", 5); - this.damageFactorHigh = (float) GregTech_API.sMachineFile - .get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorHigh", 0.6f); + GT_MetaTileEntity_MultiBlockBase.disableMaintenance = ConfigMachines.disableMaintenanceChecks; + this.damageFactorLow = ConfigMachines.damageFactorLow; + this.damageFactorHigh = ConfigMachines.damageFactorHigh; this.mNEI = ""; if (!shouldCheckMaintenance()) fixAllIssues(); } @@ -182,12 +178,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity public GT_MetaTileEntity_MultiBlockBase(String aName) { super(aName, 2); this.processingLogic = createProcessingLogic(); - GT_MetaTileEntity_MultiBlockBase.disableMaintenance = GregTech_API.sMachineFile - .get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); - this.damageFactorLow = GregTech_API.sMachineFile - .get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorLow", 5); - this.damageFactorHigh = (float) GregTech_API.sMachineFile - .get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorHigh", 0.6f); + GT_MetaTileEntity_MultiBlockBase.disableMaintenance = ConfigMachines.disableMaintenanceChecks; + this.damageFactorLow = ConfigMachines.damageFactorLow; + this.damageFactorHigh = ConfigMachines.damageFactorHigh; if (!shouldCheckMaintenance()) fixAllIssues(); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java index a8c26957f8..de7019b292 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java @@ -1,6 +1,7 @@ package gregtech.api.metatileentity.implementations; import static gregtech.api.enums.GT_Values.V; +import static gregtech.api.enums.Mods.EnderIO; import static mcp.mobius.waila.api.SpecialChars.BLUE; import static mcp.mobius.waila.api.SpecialChars.GOLD; import static mcp.mobius.waila.api.SpecialChars.GREEN; @@ -194,7 +195,7 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi .extractEnergy(GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU), false); tEU = tEU * GregTech_API.mRFtoEU / 100; aBaseMetaTileEntity.injectEnergyUnits(ForgeDirection.UNKNOWN, Math.min(tEU, maxEUInput()), 1); - } else if (GregTech_API.meIOLoaded && tTileEntity instanceof IPowerContainer powerContainer + } else if (EnderIO.isModLoaded() && tTileEntity instanceof IPowerContainer powerContainer && powerContainer.getEnergyStored() > 0) { final int storedRF = powerContainer.getEnergyStored(); final int extractRF = GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU); diff --git a/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java b/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java index 95d4246cb6..f057614ccf 100644 --- a/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java +++ b/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java @@ -1,5 +1,58 @@ package gregtech.api.objects; +import static gregtech.api.enums.Dimensions.AlphaCentauriBb; +import static gregtech.api.enums.Dimensions.BarnardaC; +import static gregtech.api.enums.Dimensions.BarnardaE; +import static gregtech.api.enums.Dimensions.BarnardaF; +import static gregtech.api.enums.Dimensions.Callisto; +import static gregtech.api.enums.Dimensions.Europa; +import static gregtech.api.enums.Dimensions.Io; +import static gregtech.api.enums.Dimensions.Makemake; +import static gregtech.api.enums.Dimensions.Mars; +import static gregtech.api.enums.Dimensions.Mercury; +import static gregtech.api.enums.Dimensions.Miranda; +import static gregtech.api.enums.Dimensions.Moon; +import static gregtech.api.enums.Dimensions.Oberon; +import static gregtech.api.enums.Dimensions.Overworld; +import static gregtech.api.enums.Dimensions.Pluto; +import static gregtech.api.enums.Dimensions.Proteus; +import static gregtech.api.enums.Dimensions.Ross128b; +import static gregtech.api.enums.Dimensions.Ross128ba; +import static gregtech.api.enums.Dimensions.TCetiE; +import static gregtech.api.enums.Dimensions.Titan; +import static gregtech.api.enums.Dimensions.Triton; +import static gregtech.api.enums.Dimensions.Venus; +import static gregtech.api.enums.UndergroundFluidNames.carbonDioxide; +import static gregtech.api.enums.UndergroundFluidNames.carbonMonoxide; +import static gregtech.api.enums.UndergroundFluidNames.chlorobenzene; +import static gregtech.api.enums.UndergroundFluidNames.deuterium; +import static gregtech.api.enums.UndergroundFluidNames.distilledWater; +import static gregtech.api.enums.UndergroundFluidNames.ethane; +import static gregtech.api.enums.UndergroundFluidNames.ethylene; +import static gregtech.api.enums.UndergroundFluidNames.fluorine; +import static gregtech.api.enums.UndergroundFluidNames.heavyOil; +import static gregtech.api.enums.UndergroundFluidNames.helium3; +import static gregtech.api.enums.UndergroundFluidNames.hydrofluoricAcid; +import static gregtech.api.enums.UndergroundFluidNames.hydrogen; +import static gregtech.api.enums.UndergroundFluidNames.hydrogenSulfide; +import static gregtech.api.enums.UndergroundFluidNames.lava; +import static gregtech.api.enums.UndergroundFluidNames.lightOil; +import static gregtech.api.enums.UndergroundFluidNames.liquidAir; +import static gregtech.api.enums.UndergroundFluidNames.mediumOil; +import static gregtech.api.enums.UndergroundFluidNames.methane; +import static gregtech.api.enums.UndergroundFluidNames.moltenCopper; +import static gregtech.api.enums.UndergroundFluidNames.moltenIron; +import static gregtech.api.enums.UndergroundFluidNames.moltenLead; +import static gregtech.api.enums.UndergroundFluidNames.moltenTin; +import static gregtech.api.enums.UndergroundFluidNames.naturalGas; +import static gregtech.api.enums.UndergroundFluidNames.nitrogen; +import static gregtech.api.enums.UndergroundFluidNames.oil; +import static gregtech.api.enums.UndergroundFluidNames.oxygen; +import static gregtech.api.enums.UndergroundFluidNames.saltWater; +import static gregtech.api.enums.UndergroundFluidNames.sulfuricAcid; +import static gregtech.api.enums.UndergroundFluidNames.unknownWater; +import static gregtech.api.enums.UndergroundFluidNames.veryHeavyOil; + import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Configuration; @@ -7,6 +60,9 @@ import net.minecraftforge.common.config.Configuration; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; +import gregtech.api.enums.Dimensions; +import gregtech.api.enums.UndergroundFluidNames; + public class GT_UO_DimensionList { private Configuration fConfig; @@ -19,6 +75,10 @@ public class GT_UO_DimensionList { fDimensionList = HashBiMap.create(); } + public void save() { + fConfig.save(); + } + public GT_UO_Dimension GetDimension(int aDimension) { if (CheckBlackList(aDimension)) return null; if (fDimensionList.containsKey(Integer.toString(aDimension))) @@ -59,26 +119,463 @@ public class GT_UO_DimensionList { // IT IS IN BUCKETS!!! } - public void SetDafultValues() { - SetConfigValues("Overworld", "0", "gas_natural_gas", "gas_natural_gas", 0, 700, 20, 7); - SetConfigValues("Overworld", "0", "liquid_light_oil", "liquid_light_oil", 0, 650, 20, 6); - SetConfigValues("Overworld", "0", "liquid_medium_oil", "liquid_medium_oil", 0, 600, 20, 5); - SetConfigValues("Overworld", "0", "liquid_heavy_oil", "liquid_heavy_oil", 0, 550, 20, 4); - SetConfigValues("Overworld", "0", "oil", "oil", 0, 600, 20, 5); - SetConfigValues("Moon", "Moon", "helium-3", "helium-3", 24, 128, 100, 1); + private void setOverworldValues() { + new ConfigSetter().dimension(Overworld) + .fluid(naturalGas) + .chance(20) + .decreaseAmount(5) + .maxAmount(350) + .minAmount(10) + .writeToConfig(); + + new ConfigSetter().dimension(Overworld) + .fluid(lightOil) + .chance(20) + .decreaseAmount(5) + .maxAmount(350) + .minAmount(10) + .writeToConfig(); + + new ConfigSetter().dimension(Overworld) + .fluid(mediumOil) + .chance(20) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Overworld) + .fluid(heavyOil) + .chance(20) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Overworld) + .fluid(oil) + .chance(20) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + } + + private void setMoonValues() { + new ConfigSetter().dimension(Moon) + .fluid(helium3) + .chance(100) + .decreaseAmount(5) + .maxAmount(425) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Moon) + .fluid(saltWater) + .chance(20) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + } + + private void setMercuryValues() { + new ConfigSetter().dimension(Mercury) + .fluid(helium3) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Mercury) + .fluid(moltenIron) + .chance(30) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + } + + private void setVenusValues() { + new ConfigSetter().dimension(Venus) + .fluid(moltenLead) + .chance(100) + .decreaseAmount(5) + .maxAmount(1600) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Venus) + .fluid(sulfuricAcid) + .chance(100) + .decreaseAmount(5) + .maxAmount(250) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Venus) + .fluid(carbonDioxide) + .chance(100) + .decreaseAmount(5) + .maxAmount(1500) + .minAmount(0) + .writeToConfig(); + } + + private void setMarsValues() { + new ConfigSetter().dimension(Mars) + .fluid(saltWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Mars) + .fluid(chlorobenzene) + .chance(100) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + } + + private void setIoValues() { + new ConfigSetter().dimension(Io) + .fluid(moltenLead) + .chance(20) + .decreaseAmount(5) + .maxAmount(650) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Io) + .fluid(sulfuricAcid) + .chance(80) + .decreaseAmount(5) + .maxAmount(350) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Io) + .fluid(carbonDioxide) + .chance(80) + .decreaseAmount(5) + .maxAmount(750) + .minAmount(0) + .writeToConfig(); + } + + private void setEuropaValues() { + new ConfigSetter().dimension(Europa) + .fluid(saltWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Europa) + .fluid(veryHeavyOil) + .chance(20) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Europa) + .fluid(distilledWater) + .chance(80) + .decreaseAmount(5) + .maxAmount(3500) + .minAmount(0) + .writeToConfig(); + } + + private void setCallistoValues() { + new ConfigSetter().dimension(Callisto) + .fluid(oxygen) + .chance(100) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Callisto) + .fluid(liquidAir) + .chance(100) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + } + + private void setTitanValues() { + new ConfigSetter().dimension(Titan) + .fluid(methane) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Titan) + .fluid(ethane) + .chance(100) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + } + + private void setMirandaValues() { + new ConfigSetter().dimension(Miranda) + .fluid(hydrogenSulfide) + .chance(100) + .decreaseAmount(5) + .maxAmount(900) + .minAmount(0) + .writeToConfig(); + } + + private void setOberonValues() { + new ConfigSetter().dimension(Oberon) + .fluid(carbonMonoxide) + .chance(100) + .decreaseAmount(5) + .maxAmount(2000) + .minAmount(0) + .writeToConfig(); + } + + private void setTritonValues() { + new ConfigSetter().dimension(Triton) + .fluid(nitrogen) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Triton) + .fluid(ethylene) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + } + + private void setProteusValues() { + new ConfigSetter().dimension(Proteus) + .fluid(deuterium) + .chance(100) + .decreaseAmount(5) + .maxAmount(700) + .minAmount(0) + .writeToConfig(); + } + + private void setPlutoValues() { + new ConfigSetter().dimension(Pluto) + .fluid(nitrogen) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Pluto) + .fluid(oxygen) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Pluto) + .fluid(liquidAir) + .chance(40) + .decreaseAmount(5) + .maxAmount(300) + .minAmount(4) + .writeToConfig(); + + new ConfigSetter().dimension(Pluto) + .fluid(fluorine) + .chance(80) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(4) + .writeToConfig(); + } + + private void setMakeMakeValues() { + new ConfigSetter().dimension(Makemake) + .fluid(hydrofluoricAcid) + .chance(80) + .decreaseAmount(5) + .maxAmount(300) + .minAmount(0) + .writeToConfig(); + } + + private void setAlphaCentauriBBValues() { + new ConfigSetter().dimension(AlphaCentauriBb) + .fluid(moltenCopper) + .chance(10) + .decreaseAmount(5) + .maxAmount(300) + .minAmount(0) + .writeToConfig(); + } + + private void setBarnardaCValues() { + new ConfigSetter().dimension(BarnardaC) + .fluid(veryHeavyOil) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(BarnardaC) + .fluid(unknownWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(300) + .minAmount(0) + .writeToConfig(); + } + + private void setBarnardaEValues() { + new ConfigSetter().dimension(BarnardaE) + .fluid(liquidAir) + .chance(20) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + } + + private void setBarnardaFValues() { + new ConfigSetter().dimension(BarnardaF) + .fluid(moltenTin) + .chance(15) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + } + + private void setTcetiEValues() { + new ConfigSetter().dimension(TCetiE) + .fluid(veryHeavyOil) + .chance(100) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(TCetiE) + .fluid(hydrogen) + .chance(50) + .decreaseAmount(5) + .maxAmount(700) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(TCetiE) + .fluid(distilledWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(10_000) + .minAmount(0) + .writeToConfig(); + } + + private void setRoss128bValues() { + new ConfigSetter().dimension(Ross128b) + .fluid(veryHeavyOil) + .chance(40) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Ross128b) + .fluid(lava) + .chance(5) + .decreaseAmount(5) + .maxAmount(820) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Ross128b) + .fluid(naturalGas) + .chance(65) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Ross128b) + .fluid(distilledWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(5000) + .minAmount(0) + .writeToConfig(); + } + + private void setRoss128baValues() { + new ConfigSetter().dimension(Ross128ba) + .fluid(saltWater) + .chance(40) + .decreaseAmount(5) + .maxAmount(1250) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Ross128ba) + .fluid(helium3) + .chance(60) + .decreaseAmount(5) + .maxAmount(1250) + .minAmount(0) + .writeToConfig(); + } + + public void setDefaultValues() { + setOverworldValues(); + setMoonValues(); + setMercuryValues(); + setVenusValues(); + setMarsValues(); + setIoValues(); + setEuropaValues(); + setCallistoValues(); + setTitanValues(); + setMirandaValues(); + setOberonValues(); + setTritonValues(); + setProteusValues(); + setPlutoValues(); + setMakeMakeValues(); + setAlphaCentauriBBValues(); + setBarnardaCValues(); + setBarnardaEValues(); + setBarnardaFValues(); + setTcetiEValues(); + setRoss128bValues(); + setRoss128baValues(); } public void getConfig(Configuration aConfig, String aCategory) { fCategory = aCategory; fConfig = aConfig; - if (!fConfig.hasCategory(fCategory)) SetDafultValues(); - - fConfig.setCategoryComment(fCategory, "Config Underground Fluids (Delete this Category for regenerate)"); - fConfig.setCategoryComment( - fCategory + ".Default", - "Set Default Generating (Use this Category for Default settings)"); - fConfig.setCategoryComment(fCategory + ".Overworld", "Set Overworld Generating"); - fConfig.setCategoryComment(fCategory + ".Moon", "Set Moon Generating"); + if (!fConfig.hasCategory(fCategory)) setDefaultValues(); blackList = new int[] { -1, 1 }; blackList = aConfig.get(fCategory, "DimBlackList", blackList, "Dimension IDs Black List") @@ -94,5 +591,58 @@ public class GT_UO_DimensionList { .toArray()[i]); fDimensionList.put(Dimension.Dimension, Dimension); } + save(); + } + + public class ConfigSetter { + + private int chance; + private int decreaseAmount; + private int maxAmount; + private int minAmount; + private UndergroundFluidNames fluid; + private Dimensions dim; + + public ConfigSetter chance(int chance) { + this.chance = chance; + return this; + } + + public ConfigSetter decreaseAmount(int decreaseAmount) { + this.decreaseAmount = decreaseAmount; + return this; + } + + public ConfigSetter maxAmount(int maxAmount) { + this.maxAmount = maxAmount; + return this; + } + + public ConfigSetter minAmount(int minAmount) { + this.minAmount = minAmount; + return this; + } + + public ConfigSetter fluid(UndergroundFluidNames fluid) { + this.fluid = fluid; + return this; + } + + public ConfigSetter dimension(Dimensions dim) { + this.dim = dim; + return this; + } + + public void writeToConfig() { + SetConfigValues( + dim.toString(), + dim.id, + fluid.toString(), + fluid.name, + minAmount, + maxAmount, + chance, + decreaseAmount); + } } } diff --git a/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelBackend.java b/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelBackend.java index 53152312f4..b38b66e41b 100644 --- a/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelBackend.java +++ b/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelBackend.java @@ -9,8 +9,6 @@ import javax.annotation.ParametersAreNonnullByDefault; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.GT_Values; import gregtech.api.recipe.RecipeMapBackend; import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; @@ -25,12 +23,8 @@ public class LargeBoilerFuelBackend extends RecipeMapBackend { private static boolean addedGeneralDesc = false; - private static final List<String> ALLOWED_SOLID_FUELS = Arrays.asList( - GregTech_API.sMachineFile.mConfig.getStringList( - "LargeBoiler.allowedFuels", - ConfigCategories.machineconfig.toString(), - new String[] { "gregtech:gt.blockreinforced:6", "gregtech:gt.blockreinforced:7" }, - "Allowed fuels for the Large Titanium Boiler and Large Tungstensteel Boiler")); + private static final List<String> ALLOWED_SOLID_FUELS = Arrays + .asList("gregtech:gt.blockreinforced:6", "gregtech:gt.blockreinforced:7"); public LargeBoilerFuelBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { super(propertiesBuilder); diff --git a/src/main/java/gregtech/api/util/GT_ClientPreference.java b/src/main/java/gregtech/api/util/GT_ClientPreference.java index 8df4ef8b05..3ea2730a0c 100644 --- a/src/main/java/gregtech/api/util/GT_ClientPreference.java +++ b/src/main/java/gregtech/api/util/GT_ClientPreference.java @@ -1,5 +1,8 @@ package gregtech.api.util; +import gregtech.common.config.client.ConfigPreference; +import gregtech.common.config.client.ConfigWaila; + public class GT_ClientPreference { private final boolean mSingleBlockInitialFilter; @@ -15,12 +18,11 @@ public class GT_ClientPreference { this.wailaAverageNS = wailaAverageNS; } - public GT_ClientPreference(GT_Config aClientDataFile) { - this.mSingleBlockInitialFilter = aClientDataFile.get("preference", "mSingleBlockInitialFilter", false); - this.mSingleBlockInitialMultiStack = aClientDataFile - .get("preference", "mSingleBlockInitialAllowMultiStack", false); - this.mInputBusInitialFilter = aClientDataFile.get("preference", "mInputBusInitialFilter", true); - this.wailaAverageNS = aClientDataFile.get("waila", "WailaAverageNS", false); + public GT_ClientPreference() { + this.mSingleBlockInitialFilter = ConfigPreference.singleBlockInitialFilter; + this.mSingleBlockInitialMultiStack = ConfigPreference.singleBlockInitialAllowMultiStack; + this.mInputBusInitialFilter = ConfigPreference.inputBusInitialFilter; + this.wailaAverageNS = ConfigWaila.wailaAverageNS; } public boolean isSingleBlockInitialFilterEnabled() { diff --git a/src/main/java/gregtech/api/util/GT_Config.java b/src/main/java/gregtech/api/util/GT_Config.java index dc56def68f..e1157febb4 100644 --- a/src/main/java/gregtech/api/util/GT_Config.java +++ b/src/main/java/gregtech/api/util/GT_Config.java @@ -14,6 +14,8 @@ public class GT_Config implements Runnable { public static boolean troll = false; public static Configuration sConfigFileIDs; + public static Configuration cleanroomFile; + public static Configuration undergroundFluidsFile; public final Configuration mConfig; public GT_Config(Configuration aConfig) { @@ -38,7 +40,7 @@ public class GT_Config implements Runnable { aName.replaceAll("\\|", "."), aDefault); int rResult = tProperty.getInt(aDefault); - if (!tProperty.wasRead() && shouldSave()) sConfigFileIDs.save(); + sConfigFileIDs.save(); return rResult; } diff --git a/src/main/java/gregtech/api/world/GT_Worldgen.java b/src/main/java/gregtech/api/world/GT_Worldgen.java index bd85813e2b..1ce0c85523 100644 --- a/src/main/java/gregtech/api/world/GT_Worldgen.java +++ b/src/main/java/gregtech/api/world/GT_Worldgen.java @@ -1,6 +1,5 @@ package gregtech.api.world; -import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Random; @@ -10,7 +9,8 @@ import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import net.minecraftforge.common.DimensionManager; -import gregtech.api.GregTech_API; +import gregtech.common.GT_Worldgen_GT_Ore_Layer; +import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces; public abstract class GT_Worldgen { @@ -21,7 +21,7 @@ public abstract class GT_Worldgen { @SuppressWarnings({ "unchecked", "rawtypes" }) // The adding of "this" needs a List<this> which does not exist public GT_Worldgen(String aName, List aList, boolean aDefault) { mWorldGenName = aName; - mEnabled = GregTech_API.sWorldgenFile.get("worldgen", mWorldGenName, aDefault); + mEnabled = aDefault; if (mEnabled) aList.add(this); } @@ -45,32 +45,6 @@ public abstract class GT_Worldgen { } /** - * @param aWorld The World Object - * @param aRandom The Random Generator to use - * @param aBiome The Name of the Biome (always != null) - * @param aDimensionType The Type of Worldgeneration to add. -1 = Nether, 0 = Overworld, +1 = End - * @param aChunkX xCoord of the Chunk - * @param aChunkZ zCoord of the Chunk - * @return if the Worldgeneration has been successfully completed - */ - public boolean executeCavegen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, - int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { - return false; - } - - /** - * - * @param aWorld The World Object - * @param aDimensionType The Type of Worldgeneration to add. -1 = Nether, 0 = Overworld, +1 = End - * @param aAllowedDimensionType The Type of allowed Worldgeneration - * @return if generation for this world is allowed for MoronTech (tm) OreGen (ATM (2.0.3.1Dev) only End, Nether, - * Overworld, Twilight Forest and Deep Dark) - */ - public boolean isGenerationAllowed(World aWorld, int aDimensionType, int aAllowedDimensionType) { - return isGenerationAllowed(aWorld.provider.getDimensionName(), aDimensionType, aAllowedDimensionType); - } - - /** * * @param aDimName The Dimension Name * @param aDimensionType The Type of Worldgeneration to add. -1 = Nether, 0 = Overworld, +1 = End @@ -79,17 +53,17 @@ public abstract class GT_Worldgen { * Overworld, Twilight Forest and Deep Dark) */ public boolean isGenerationAllowed(String aDimName, int aDimensionType, int aAllowedDimensionType) { + if (aDimName.equalsIgnoreCase("Underdark")) { + return false; + } if (!(aDimName.equalsIgnoreCase("Overworld") || aDimName.equalsIgnoreCase("Nether") || aDimName.equalsIgnoreCase("The End") - || aDimName.equalsIgnoreCase("Twilight Forest") - || aDimName.equalsIgnoreCase("Underdark"))) return false; + || aDimName.equalsIgnoreCase("Twilight Forest"))) return false; Boolean tAllowed = mDimensionMap.get(aDimName); if (tAllowed == null) { - boolean tValue = GregTech_API.sWorldgenFile - .get("worldgen." + mWorldGenName, aDimName, aDimensionType == aAllowedDimensionType); - mDimensionMap.put(aDimName, tValue); - return tValue; + mDimensionMap.put(aDimName, aDimensionType == aAllowedDimensionType); + return aDimensionType == aAllowedDimensionType; } return tAllowed; } @@ -112,20 +86,32 @@ public abstract class GT_Worldgen { */ public boolean isGenerationAllowed(World aWorld, Class... aAllowedDimensionTypes) { String aDimName = aWorld.provider.getDimensionName(); + if (aDimName.equalsIgnoreCase("Underdark")) { + return false; + } if (!(aDimName.equalsIgnoreCase("Overworld") || aDimName.equalsIgnoreCase("Nether") || aDimName.equalsIgnoreCase("The End") - || aDimName.equalsIgnoreCase("Twilight Forest") - || aDimName.equalsIgnoreCase("Underdark"))) return false; + || aDimName.equalsIgnoreCase("Twilight Forest"))) return false; Boolean tAllowed = mDimensionMap.get(aDimName); if (tAllowed == null) { - boolean tValue = GregTech_API.sWorldgenFile.get( - "worldgen." + mWorldGenName, - aDimName, - Arrays.stream(aAllowedDimensionTypes) - .anyMatch(worldProvider -> worldProvider.isInstance(aWorld.provider))); - mDimensionMap.put(aDimName, tValue); - return tValue; + boolean value = false; + for (int i = 0; i < aAllowedDimensionTypes.length; i++) { + if (aAllowedDimensionTypes[i].isInstance(aWorld.provider)) { + value = true; + } + } + + // ugly, but idk how to do it better without hard depping on tf provider in ore constructors + if (this instanceof GT_Worldgen_GT_Ore_SmallPieces) { + value = ((GT_Worldgen_GT_Ore_SmallPieces) this).twilightForest && aWorld.provider.dimensionId == 7; + } + if (this instanceof GT_Worldgen_GT_Ore_Layer) { + value = ((GT_Worldgen_GT_Ore_Layer) this).twilightForest && aWorld.provider.dimensionId == 7; + } + + mDimensionMap.put(aDimName, value); + return value; } return tAllowed; } diff --git a/src/main/java/gregtech/api/world/GT_Worldgen_Ore.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore.java deleted file mode 100644 index 958adfad54..0000000000 --- a/src/main/java/gregtech/api/world/GT_Worldgen_Ore.java +++ /dev/null @@ -1,34 +0,0 @@ -package gregtech.api.world; - -import java.util.ArrayList; -import java.util.Collection; - -import net.minecraft.block.Block; - -import gregtech.api.GregTech_API; - -public abstract class GT_Worldgen_Ore extends GT_Worldgen { - - public final int mBlockMeta, mAmount, mSize, mMinY, mMaxY, mProbability, mDimensionType; - public final Block mBlock; - public final Collection<String> mBiomeList; - public final boolean mAllowToGenerateinVoid; - private final String aTextWorldgen = "worldgen."; - - public GT_Worldgen_Ore(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, - int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection<String> aBiomeList, - boolean aAllowToGenerateinVoid) { - super(aName, GregTech_API.sWorldgenList, aDefault); - mDimensionType = aDimensionType; - mBlock = aBlock; - mBlockMeta = Math.min(Math.max(aBlockMeta, 0), 15); - mProbability = GregTech_API.sWorldgenFile.get(aTextWorldgen + mWorldGenName, "Probability", aProbability); - mAmount = GregTech_API.sWorldgenFile.get(aTextWorldgen + mWorldGenName, "Amount", aAmount); - mSize = GregTech_API.sWorldgenFile.get(aTextWorldgen + mWorldGenName, "Size", aSize); - mMinY = GregTech_API.sWorldgenFile.get(aTextWorldgen + mWorldGenName, "MinHeight", aMinY); - mMaxY = GregTech_API.sWorldgenFile.get(aTextWorldgen + mWorldGenName, "MaxHeight", aMaxY); - if (aBiomeList == null) mBiomeList = new ArrayList<>(); - else mBiomeList = aBiomeList; - mAllowToGenerateinVoid = aAllowToGenerateinVoid; - } -} diff --git a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java deleted file mode 100644 index f89d3ad8f8..0000000000 --- a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java +++ /dev/null @@ -1,52 +0,0 @@ -package gregtech.api.world; - -import java.util.Collection; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; - -public class GT_Worldgen_Ore_SingleBlock extends GT_Worldgen_Ore { - - public GT_Worldgen_Ore_SingleBlock(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, - int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection<String> aBiomeList, - boolean aAllowToGenerateinVoid) { - super( - aName, - aDefault, - aBlock, - aBlockMeta, - aDimensionType, - aAmount, - aSize, - aProbability, - aMinY, - aMaxY, - aBiomeList, - aAllowToGenerateinVoid); - } - - @Override - public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, - int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { - if (isGenerationAllowed(aWorld, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) - && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { - for (int i = 0; i < mAmount; i++) { - int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), - tZ = aChunkZ + aRandom.nextInt(16); - Block tBlock = aWorld.getBlock(tX, tY, tZ); - if (((mAllowToGenerateinVoid && aWorld.getBlock(tX, tY, tZ) - .isAir(aWorld, tX, tY, tZ)) - || (tBlock != null && (tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.stone) - || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.end_stone) - || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.netherrack))))) { - aWorld.setBlock(tX, tY, tZ, mBlock, mBlockMeta, 0); - } - } - return true; - } - return false; - } -} diff --git a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java deleted file mode 100644 index 3993c65f2a..0000000000 --- a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java +++ /dev/null @@ -1,54 +0,0 @@ -package gregtech.api.world; - -import java.util.Collection; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; - -public class GT_Worldgen_Ore_SingleBlock_UnderLava extends GT_Worldgen_Ore { - - public GT_Worldgen_Ore_SingleBlock_UnderLava(String aName, boolean aDefault, Block aBlock, int aBlockMeta, - int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, - Collection<String> aBiomeList, boolean aAllowToGenerateinVoid) { - super( - aName, - aDefault, - aBlock, - aBlockMeta, - aDimensionType, - aAmount, - aSize, - aProbability, - aMinY, - aMaxY, - aBiomeList, - aAllowToGenerateinVoid); - } - - @Override - public boolean executeCavegen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, - int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { - if (isGenerationAllowed(aWorld, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) - && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { - for (int i = 0; i < mAmount; i++) { - int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), - tZ = aChunkZ + aRandom.nextInt(16); - Block tBlock = aWorld.getBlock(tX, tY, tZ); - if (((mAllowToGenerateinVoid && aWorld.getBlock(tX, tY, tZ) - .isAir(aWorld, tX, tY, tZ)) - || (tBlock != null && (tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.stone) - || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.end_stone) - || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.netherrack))))) { - if (aWorld.getBlock(tX, tY + 1, tZ) == Blocks.lava - || aWorld.getBlock(tX, tY, tZ) == Blocks.flowing_lava) - aWorld.setBlock(tX, tY, tZ, mBlock, mBlockMeta, 0); - } - } - return true; - } - return false; - } -} |