aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/GT_Client.java23
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java237
-rw-r--r--src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java71
-rw-r--r--src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java64
-rw-r--r--src/main/java/gregtech/common/GT_Worldgen_Stone.java38
-rw-r--r--src/main/java/gregtech/common/GT_Worldgenerator.java34
-rw-r--r--src/main/java/gregtech/common/OreMixBuilder.java86
-rw-r--r--src/main/java/gregtech/common/SmallOreBuilder.java60
-rw-r--r--src/main/java/gregtech/common/StoneBuilder.java66
-rw-r--r--src/main/java/gregtech/common/config/client/ConfigColorModulation.java25
-rw-r--r--src/main/java/gregtech/common/config/client/ConfigInterface.java29
-rw-r--r--src/main/java/gregtech/common/config/client/ConfigPreference.java21
-rw-r--r--src/main/java/gregtech/common/config/client/ConfigRender.java46
-rw-r--r--src/main/java/gregtech/common/config/client/ConfigWaila.java21
-rw-r--r--src/main/java/gregtech/common/config/gregtech/ConfigDebug.java79
-rw-r--r--src/main/java/gregtech/common/config/gregtech/ConfigFeatures.java34
-rw-r--r--src/main/java/gregtech/common/config/gregtech/ConfigGeneral.java254
-rw-r--r--src/main/java/gregtech/common/config/gregtech/ConfigHarvestLevel.java28
-rw-r--r--src/main/java/gregtech/common/config/gregtech/ConfigMachines.java147
-rw-r--r--src/main/java/gregtech/common/config/gregtech/ConfigOreDropBehavior.java24
-rw-r--r--src/main/java/gregtech/common/config/gregtech/ConfigPollution.java129
-rw-r--r--src/main/java/gregtech/common/config/machinestats/ConfigBronzeSolarBoiler.java32
-rw-r--r--src/main/java/gregtech/common/config/machinestats/ConfigMachines.java34
-rw-r--r--src/main/java/gregtech/common/config/machinestats/ConfigMassFabricator.java33
-rw-r--r--src/main/java/gregtech/common/config/machinestats/ConfigMicrowaveEnergyTransmitter.java28
-rw-r--r--src/main/java/gregtech/common/config/machinestats/ConfigSteelSolarBoiler.java32
-rw-r--r--src/main/java/gregtech/common/config/machinestats/ConfigTeleporter.java28
-rw-r--r--src/main/java/gregtech/common/config/opstuff/ConfigGeneral.java48
-rw-r--r--src/main/java/gregtech/common/config/other/ConfigGeneral.java24
-rw-r--r--src/main/java/gregtech/common/config/worldgen/ConfigEndAsteroids.java33
-rw-r--r--src/main/java/gregtech/common/config/worldgen/ConfigGeneral.java48
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java4
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java66
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java10
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java117
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar_Steel.java26
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java7
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java9
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java7
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java46
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java13
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java15
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java13
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java16
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MicrowaveEnergyTransmitter.java15
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java13
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java1
47 files changed, 1608 insertions, 626 deletions
diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java
index b93060ba59..cdd21a13d4 100644
--- a/src/main/java/gregtech/common/GT_Client.java
+++ b/src/main/java/gregtech/common/GT_Client.java
@@ -619,7 +619,7 @@ public class GT_Client extends GT_Proxy implements Runnable {
mPollutionRenderer.preLoad();
- mPreference = new GT_ClientPreference(GregTech_API.sClientDataFile);
+ mPreference = new GT_ClientPreference();
Materials.initClient();
}
@@ -650,24 +650,6 @@ public class GT_Client extends GT_Proxy implements Runnable {
public void onPostLoad() {
super.onPostLoad();
- if (GregTech_API.sClientDataFile.get("debug", "PrintMetaIDs", false)) {
- try {
- for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) {
- try {
- if (GregTech_API.METATILEENTITIES[i] != null) {
- GregTech_API.METATILEENTITIES[i].getStackForm(1L)
- .getTooltip(null, true);
- GT_Log.out.println("META " + i + " " + GregTech_API.METATILEENTITIES[i].getMetaName());
- }
- } catch (Throwable e) {
- e.printStackTrace(GT_Log.err);
- }
- }
- } catch (Throwable e) {
- e.printStackTrace(GT_Log.err);
- }
- }
-
// reobf doesn't work with lambda, so this must be a class
// noinspection Convert2Lambda
((IReloadableResourceManager) Minecraft.getMinecraft()
@@ -825,9 +807,8 @@ public class GT_Client extends GT_Proxy implements Runnable {
@SubscribeEvent
public void onConfigChange(ConfigChangedEvent.OnConfigChangedEvent e) {
if (GregTech.ID.equals(e.modID) && "client".equals(e.configID)) {
- GregTech_API.sClientDataFile.mConfig.save();
// refresh client preference and send to server, since it's the only config we allow changing at runtime.
- mPreference = new GT_ClientPreference(GregTech_API.sClientDataFile);
+ mPreference = new GT_ClientPreference();
GT_PreLoad.loadClientConfig();
if (e.isWorldRunning) GT_Values.NW.sendToServer(new GT_Packet_ClientPreference(mPreference));
}
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index b6eb9ec3ad..85978e4c20 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -18,17 +18,16 @@ import static gregtech.api.enums.Mods.Forestry;
import static gregtech.api.enums.Mods.GTPlusPlus;
import static gregtech.api.enums.Mods.GalacticraftCore;
import static gregtech.api.enums.Mods.GalaxySpace;
-import static gregtech.api.enums.Mods.GanysSurface;
import static gregtech.api.enums.Mods.GraviSuite;
import static gregtech.api.enums.Mods.GregTech;
import static gregtech.api.enums.Mods.IguanaTweaksTinkerConstruct;
-import static gregtech.api.enums.Mods.MagicalCrops;
import static gregtech.api.enums.Mods.Names;
import static gregtech.api.enums.Mods.Railcraft;
import static gregtech.api.enums.Mods.TaintedMagic;
import static gregtech.api.enums.Mods.Thaumcraft;
import static gregtech.api.enums.Mods.ThaumicBoots;
import static gregtech.api.enums.Mods.ThaumicTinkerer;
+import static gregtech.api.enums.Mods.TinkerConstruct;
import static gregtech.api.enums.Mods.TwilightForest;
import static gregtech.api.enums.Mods.WitchingGadgets;
import static gregtech.api.recipe.RecipeMaps.crackingRecipes;
@@ -120,11 +119,11 @@ import cpw.mods.fml.common.network.FMLNetworkEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.Dyes;
import gregtech.api.enums.FluidState;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
+import gregtech.api.enums.ManualOreDictTweaks;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OreDictNames;
import gregtech.api.enums.OrePrefixes;
@@ -166,6 +165,7 @@ import gregtech.api.util.GT_Shaped_Recipe;
import gregtech.api.util.GT_Shapeless_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.WorldSpawnedEventBuilder;
+import gregtech.common.config.opstuff.ConfigGeneral;
import gregtech.common.items.GT_MetaGenerated_Item_98;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
import gregtech.common.items.ID_MetaTool_01;
@@ -543,7 +543,6 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
public final GT_BlockMap<Boolean> mCTMBlockCache = new GT_BlockMap<>();
public boolean mDisableVanillaOres = true;
public boolean mAllowSmallBoilerAutomation = false;
- public boolean mSortToTheEnd = true;
public boolean mCraftingUnification = true;
public boolean mInventoryUnification = true;
public boolean mIncreaseDungeonLoot = true;
@@ -551,7 +550,6 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
public boolean mSurvivalIntoAdventure = false;
public boolean mNerfedWoodPlank = true;
public boolean mNerfedVanillaTools = true;
- public boolean mHardRock = false;
public boolean mHungerEffect = true;
public boolean mIgnoreTcon = true;
public boolean mAchievements = true;
@@ -563,8 +561,6 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
public boolean mHideUnusedOres = true;
public boolean mPollution = true;
public boolean mExplosionItemDrop = false;
- public boolean mUseGreatlyShrukenReplacementList = true;
- public int mSkeletonsShootGTArrows = 16;
public int mMaxEqualEntitiesAtOneSpot = 3;
public int mFlintChance = 30;
public int mItemDespawnTime = 6000;
@@ -572,7 +568,6 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
public int[] mHarvestLevel = new int[1000];
public int mGraniteHavestLevel = 3;
public int mMaxHarvestLevel = 7;
- public int mWireHeatingTicks = 4;
public double replicatorExponent = 1.2D;
public int mPollutionSmogLimit = 550000;
public int mPollutionPoisonLimit = 750000;
@@ -608,11 +603,9 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
public boolean mEnableAllMaterials = false;
public boolean mEnableCleanroom = true;
public boolean mLowGravProcessing = false;
- public boolean mAprilFool = false;
public boolean mCropNeedBlock = true;
public boolean mAMHInteraction = true;
public boolean mForceFreeFace = true;
- public boolean mBrickedBlastFurnace = true;
public boolean mMixedOreOnlyYieldsTwoThirdsOfPureOre = false;
public boolean mRichOreYieldMultiplier = true;
public boolean mNetherOreYieldMultiplier = true;
@@ -735,10 +728,8 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
public boolean mWailaTransformerVoltageTier = true;
/**
- * What is the order of the circuits when they are selected?
+ * This enables showing the cpu load in nanoseconds via waila.
*/
- public Map<String, Integer> mCircuitsOrder = new HashMap<>();
-
public boolean wailaAverageNS = false;
public static final int GUI_ID_COVER_SIDE_BASE = 10; // Takes GUI ID 10 - 15
@@ -834,9 +825,8 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
GT_Log.ore.println("GT_Mod: Preload-Phase started!");
GregTech_API.sPreloadStarted = true;
- this.mIgnoreTcon = GregTech_API.sOPStuff.get(ConfigCategories.general, "ignoreTConstruct", true);
- this.mWireHeatingTicks = GregTech_API.sOPStuff.get(ConfigCategories.general, "WireHeatingTicks", 4);
- this.replicatorExponent = GregTech_API.sOPStuff.get("Replicator", "Nerf Exponent", 1.2D);
+ this.mIgnoreTcon = ConfigGeneral.ignoreTinkerConstruct;
+ this.replicatorExponent = ConfigGeneral.replicatorExponent;
for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry
.getRegisteredFluidContainerData()) {
if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) {
@@ -1070,19 +1060,6 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
public void onLoad() {
GT_Log.out.println("GT_Mod: Beginning Load-Phase.");
GT_Log.ore.println("GT_Mod: Beginning Load-Phase.");
- if (MagicalCrops.isModLoaded()) {
- GT_OreDictUnificator.registerOre(
- "cropChilipepper",
- GT_ModHandler.getModItem(MagicalCrops.ID, "magicalcrops_CropProduce", 1L, 2));
- GT_OreDictUnificator.registerOre(
- "cropTomato",
- GT_ModHandler.getModItem(MagicalCrops.ID, "magicalcrops_CropProduce", 1L, 8));
- GT_OreDictUnificator
- .registerOre("cropGrape", GT_ModHandler.getModItem(MagicalCrops.ID, "magicalcrops_CropProduce", 1L, 4));
- }
- if (GanysSurface.isModLoaded()) {
- GT_OreDictUnificator.registerOre("cropTea", GT_ModHandler.getModItem(GanysSurface.ID, "teaLeaves", 1L, 0));
- }
// Clay buckets, which don't get registered until Iguana Tweaks pre-init
if (IguanaTweaksTinkerConstruct.isModLoaded()) {
@@ -1283,7 +1260,7 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) {
for (; i < GregTech_API.METATILEENTITIES.length; i++) {
if (GregTech_API.METATILEENTITIES[i] != null) {
- GregTech_API.METATILEENTITIES[i].onConfigLoad(GregTech_API.sMachineFile);
+ GregTech_API.METATILEENTITIES[i].onConfigLoad();
}
}
}
@@ -1719,17 +1696,10 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
}
try {
aEvent.Ore.stackSize = 1;
- if (this.mIgnoreTcon || aEvent.Ore.getUnlocalizedName()
- .startsWith("item.oreberry")) {
- if ((aOriginalMod.toLowerCase(Locale.ENGLISH)
- .contains("xycraft"))
- || (aOriginalMod.toLowerCase(Locale.ENGLISH)
- .contains("tconstruct"))) {
- if (GT_Values.D1) {
- GT_Log.ore.println(aMod + " -> " + aEvent.Name + " is getting ignored, because of racism. :P");
- }
- return;
- }
+
+ // skipping TinkerConstruct ore registration
+ if (this.mIgnoreTcon && aOriginalMod.equals(TinkerConstruct.ID)) {
+ return;
}
String tModToName = aMod + " -> " + aEvent.Name;
if (this.mOreDictActivated || GregTech_API.sPostloadStarted || GregTech_API.sLoadFinished) {
@@ -2743,8 +2713,6 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
}
public void registerUnificationEntries() {
- GregTech_API.sUnification.mConfig.save();
- GregTech_API.sUnification.mConfig.load();
GT_OreDictUnificator.resetUnificationEntries();
for (OreDictEventContainer tOre : this.mEvents) {
if ((!(tOre.mEvent.Ore.getItem() instanceof GT_MetaGenerated_Item)) && (tOre.mPrefix != null)
@@ -2753,166 +2721,17 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
boolean checkModID = tOre.mModID != null;
if (checkModID) {
- switch (tOre.mModID) {
- case Names.ENDER_I_O -> {
- if (tOre.mPrefix == OrePrefixes.ingot && tOre.mMaterial == Materials.DarkSteel) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- }
- }
- case Names.THERMAL_FONDATION -> {
- if (tOre.mPrefix == OrePrefixes.dust && tOre.mMaterial == Materials.Blizz) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- } else if (tOre.mPrefix == OrePrefixes.dust && tOre.mMaterial == Materials.Pyrotheum) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- }
- }
- case Names.ARS_MAGICA2 -> {
- if (tOre.mPrefix == OrePrefixes.dust && tOre.mMaterial == Materials.Vinteum) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- } else if (tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.BlueTopaz) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- } else if (tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.Chimerite) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- } else if (tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.Moonstone) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- } else if (tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.Sunstone) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- }
- }
- case Names.ROTARY_CRAFT -> {
- if (tOre.mPrefix == OrePrefixes.ingot && tOre.mMaterial == Materials.HSLA) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- }
- }
- case Names.APPLIED_ENERGISTICS2 -> {
- if (tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.CertusQuartz) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- } else if (tOre.mPrefix == OrePrefixes.dust && tOre.mMaterial == Materials.CertusQuartz) {
- GT_OreDictUnificator
- .addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
- GT_OreDictUnificator.set(
- tOre.mPrefix,
- tOre.mMaterial,
- tOre.mEvent.Ore,
- (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- true)),
- true);
- continue;
- }
+ if (tOre.mModID.equals(Names.ENDER_I_O)) {
+ if (tOre.mPrefix == OrePrefixes.ingot && tOre.mMaterial == Materials.DarkSteel) {
+ GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
+ GT_OreDictUnificator.set(
+ tOre.mPrefix,
+ tOre.mMaterial,
+ tOre.mEvent.Ore,
+ ManualOreDictTweaks.shouldOredictBeOverwritten(tOre.mModID, tOre.mEvent.Name),
+ true);
+ continue;
}
- default -> {}
}
}
if (GT_OreDictUnificator.isBlacklisted(tOre.mEvent.Ore)) {
@@ -2923,10 +2742,7 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
tOre.mPrefix,
tOre.mMaterial,
tOre.mEvent.Ore,
- (checkModID) && (GregTech_API.sUnification.get(
- ConfigCategories.specialunificationtargets + "." + tOre.mModID,
- tOre.mEvent.Name,
- false)),
+ checkModID && ManualOreDictTweaks.shouldOredictBeOverwritten(tOre.mModID, tOre.mEvent.Name),
true);
}
}
@@ -2944,18 +2760,13 @@ public abstract class GT_Proxy implements IGT_Mod, IFuelHandler {
tOre.mPrefix,
tOre.mMaterial,
tOre.mEvent.Ore,
- (tOre.mModID != null) && (GregTech_API.sUnification.get(
- new StringBuilder().append(ConfigCategories.specialunificationtargets)
- .append(".")
- .append(tOre.mModID),
- tOre.mEvent.Name,
- false)),
+ (tOre.mModID != null)
+ && ManualOreDictTweaks.shouldOredictBeOverwritten(tOre.mModID, tOre.mEvent.Name),
true);
}
}
}
GregTech_API.sUnificationEntriesRegistered = true;
- GregTech_API.sUnification.mConfig.save();
GT_Recipe.reInit();
}
diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java
index 23bf149b9c..718b682916 100644
--- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java
+++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java
@@ -17,8 +17,8 @@ import net.minecraft.world.WorldProviderHell;
import net.minecraft.world.WorldProviderSurface;
import net.minecraft.world.chunk.IChunkProvider;
+import bloodasp.galacticgreg.api.enums.DimensionDef;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.Materials;
import gregtech.api.util.GT_Log;
import gregtech.api.world.GT_Worldgen;
import gregtech.common.blocks.GT_TileEntity_Ores;
@@ -36,76 +36,45 @@ public class GT_Worldgen_GT_Ore_Layer extends GT_Worldgen {
public final short mSecondaryMeta;
public final short mBetweenMeta;
public final short mSporadicMeta;
- // public final String mBiome;
public final String mRestrictBiome;
public final boolean mOverworld;
public final boolean mNether;
public final boolean mEnd;
public final boolean mEndAsteroid;
+ public final boolean twilightForest;
public static final int WRONG_BIOME = 0;
public static final int WRONG_DIMENSION = 1;
public static final int NO_ORE_IN_BOTTOM_LAYER = 2;
public static final int NO_OVERLAP = 3;
public static final int ORE_PLACED = 4;
public static final int NO_OVERLAP_AIR_BLOCK = 5;
-
- public final boolean mMoon = false, mMars = false, mAsteroid = false;
public final String aTextWorldgen = "worldgen.";
public Class[] mAllowedProviders;
- @Deprecated
- public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity,
- int aSize, boolean aOverworld, boolean aNether, boolean aEnd, boolean GC_UNUSED1, boolean GC_UNUSED2,
- boolean GC_UNUSED3, Materials aPrimary, Materials aSecondary, Materials aBetween, Materials aSporadic) {
- this(
- aName,
- aDefault,
- aMinY,
- aMaxY,
- aWeight,
- aDensity,
- aSize,
- aOverworld,
- aNether,
- aEnd,
- aPrimary,
- aSecondary,
- aBetween,
- aSporadic);
- }
-
- public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity,
- int aSize, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary, Materials aSecondary,
- Materials aBetween, Materials aSporadic) {
- super(aName, sList, aDefault);
- this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
- this.mNether = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Nether", aNether);
- this.mEnd = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "TheEnd", aEnd);
- this.mEndAsteroid = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "EndAsteroid", aEnd);
- this.mMinY = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MinHeight", aMinY));
- short mMaxY = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MaxHeight", aMaxY));
+ public GT_Worldgen_GT_Ore_Layer(OreMixBuilder mix) {
+ super(mix.oreMixName, sList, mix.enabledByDefault);
+ this.mOverworld = mix.dimsEnabled.getOrDefault(OreMixBuilder.OW, false);
+ this.mNether = mix.dimsEnabled.getOrDefault(OreMixBuilder.NETHER, false);
+ this.mEnd = mix.dimsEnabled.getOrDefault(OreMixBuilder.THE_END, false);
+ this.mEndAsteroid = mix.dimsEnabled
+ .getOrDefault(DimensionDef.EndAsteroids.modDimensionDef.getDimensionName(), false);
+ this.twilightForest = mix.dimsEnabled.getOrDefault(OreMixBuilder.TWILIGHT_FOREST, false);
+ this.mMinY = ((short) mix.minY);
+ short mMaxY = ((short) mix.maxY);
if (mMaxY < (this.mMinY + 9)) {
GT_Log.out.println("Oremix " + this.mWorldGenName + " has invalid Min/Max heights!");
mMaxY = (short) (this.mMinY + 9);
}
this.mMaxY = mMaxY;
- this.mWeight = ((short) GregTech_API.sWorldgenFile
- .get(aTextWorldgen + this.mWorldGenName, "RandomWeight", aWeight));
- this.mDensity = ((short) GregTech_API.sWorldgenFile
- .get(aTextWorldgen + this.mWorldGenName, "Density", aDensity));
- this.mSize = ((short) Math
- .max(1, GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Size", aSize)));
- this.mPrimaryMeta = ((short) GregTech_API.sWorldgenFile
- .get(aTextWorldgen + this.mWorldGenName, "OrePrimaryLayer", aPrimary.mMetaItemSubID));
- this.mSecondaryMeta = ((short) GregTech_API.sWorldgenFile
- .get(aTextWorldgen + this.mWorldGenName, "OreSecondaryLayer", aSecondary.mMetaItemSubID));
- this.mBetweenMeta = ((short) GregTech_API.sWorldgenFile
- .get(aTextWorldgen + this.mWorldGenName, "OreSporadiclyInbetween", aBetween.mMetaItemSubID));
- this.mSporadicMeta = ((short) GregTech_API.sWorldgenFile
- .get(aTextWorldgen + this.mWorldGenName, "OreSporaticlyAround", aSporadic.mMetaItemSubID));
- this.mRestrictBiome = GregTech_API.sWorldgenFile
- .get(aTextWorldgen + this.mWorldGenName, "RestrictToBiomeName", "None");
+ this.mWeight = (short) mix.weight;
+ this.mDensity = (short) mix.density;
+ this.mSize = (short) Math.max(1, mix.size);
+ this.mPrimaryMeta = (short) mix.primary.mMetaItemSubID;
+ this.mSecondaryMeta = (short) mix.secondary.mMetaItemSubID;
+ this.mBetweenMeta = (short) mix.between.mMetaItemSubID;
+ this.mSporadicMeta = (short) mix.sporadic.mMetaItemSubID;
+ this.mRestrictBiome = "None";
if (this.mEnabled) {
sWeight += this.mWeight;
diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java
index f1e0c92703..ef01c2ea0f 100644
--- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java
+++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java
@@ -13,7 +13,6 @@ import net.minecraft.world.WorldProviderSurface;
import net.minecraft.world.chunk.IChunkProvider;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.Materials;
import gregtech.api.util.GT_Log;
import gregtech.api.world.GT_Worldgen;
import gregtech.common.blocks.GT_TileEntity_Ores;
@@ -27,63 +26,26 @@ public class GT_Worldgen_GT_Ore_SmallPieces extends GT_Worldgen {
public final boolean mOverworld;
public final boolean mNether;
public final boolean mEnd;
- public final boolean mMoon = false, mMars = false, mAsteroid = false;
+ public final boolean twilightForest;
public final String mBiome;
- public final String aTextWorldgen = "worldgen.";
public static ArrayList<GT_Worldgen_GT_Ore_SmallPieces> sList = new ArrayList<>();
public Class[] mAllowedProviders;
- // TODO CHECK IF INSTANTIATION IS CORRECT
- public GT_Worldgen_GT_Ore_SmallPieces(String aName, boolean aDefault, int aMinY, int aMaxY, int aAmount,
- boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary) {
- super(aName, GregTech_API.sWorldgenList, aDefault);
- this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
- this.mNether = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Nether", aNether);
- this.mEnd = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "TheEnd", aEnd);
- this.mMinY = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MinHeight", aMinY));
- this.mMaxY = ((short) Math.max(
- this.mMinY + 1,
- GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MaxHeight", aMaxY)));
- this.mAmount = ((short) Math
- .max(1, GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Amount", aAmount)));
- this.mMeta = ((short) GregTech_API.sWorldgenFile
- .get(aTextWorldgen + this.mWorldGenName, "Ore", aPrimary.mMetaItemSubID));
- this.mBiome = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "BiomeName", "None");
- sList.add(this);
+ public GT_Worldgen_GT_Ore_SmallPieces(SmallOreBuilder ore) {
+ super(ore.smallOreName, GregTech_API.sWorldgenList, ore.enabledByDefault);
+ this.mOverworld = ore.dimsEnabled.getOrDefault(SmallOreBuilder.OW, false);
+ this.mNether = ore.dimsEnabled.getOrDefault(SmallOreBuilder.NETHER, false);
+ this.mEnd = ore.dimsEnabled.getOrDefault(SmallOreBuilder.THE_END, false);
+ this.twilightForest = ore.dimsEnabled.getOrDefault(SmallOreBuilder.TWILIGHT_FOREST, false);
- List<Class> allowedProviders = new ArrayList<>();
- if (this.mNether) {
- allowedProviders.add(WorldProviderHell.class);
- }
-
- if (this.mOverworld) {
- allowedProviders.add(WorldProviderSurface.class);
- }
-
- if (this.mEnd) {
- allowedProviders.add(WorldProviderEnd.class);
- }
- mAllowedProviders = allowedProviders.toArray(new Class[allowedProviders.size()]);
- }
+ this.mMinY = (short) ore.minY;
+ this.mMaxY = (short) Math.max(this.mMinY + 1, ore.maxY);
+ this.mAmount = (short) Math.max(1, ore.amount);
+ this.mMeta = (short) ore.ore.mMetaItemSubID;
+ this.mBiome = "None";
- public GT_Worldgen_GT_Ore_SmallPieces(String aName, boolean aDefault, int aMinY, int aMaxY, int aAmount,
- boolean aOverworld, boolean aNether, boolean aEnd, boolean GC_UNUSED1, boolean GC_UNUSED2, boolean GC_UNUSED3,
- Materials aPrimary) {
- super(aName, GregTech_API.sWorldgenList, aDefault);
- this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
- this.mNether = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Nether", aNether);
- this.mEnd = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "TheEnd", aEnd);
- this.mMinY = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MinHeight", aMinY));
- this.mMaxY = ((short) Math.max(
- this.mMinY + 1,
- GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MaxHeight", aMaxY)));
- this.mAmount = ((short) Math
- .max(1, GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Amount", aAmount)));
- this.mMeta = ((short) GregTech_API.sWorldgenFile
- .get(aTextWorldgen + this.mWorldGenName, "Ore", aPrimary.mMetaItemSubID));
- this.mBiome = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "BiomeName", "None");
- sList.add(this);
+ if (this.mEnabled) sList.add(this);
List<Class> allowedProviders = new ArrayList<>();
if (this.mNether) {
diff --git a/src/main/java/gregtech/common/GT_Worldgen_Stone.java b/src/main/java/gregtech/common/GT_Worldgen_Stone.java
index a9001d3f26..97621865bc 100644
--- a/src/main/java/gregtech/common/GT_Worldgen_Stone.java
+++ b/src/main/java/gregtech/common/GT_Worldgen_Stone.java
@@ -16,11 +16,11 @@ import net.minecraft.world.chunk.IChunkProvider;
import gregtech.api.GregTech_API;
import gregtech.api.objects.XSTR;
import gregtech.api.util.GT_Log;
-import gregtech.api.world.GT_Worldgen_Ore;
+import gregtech.api.world.GT_Worldgen;
import gregtech.common.blocks.GT_Block_Ores_Abstract;
import gregtech.common.blocks.GT_TileEntity_Ores;
-public class GT_Worldgen_Stone extends GT_Worldgen_Ore {
+public class GT_Worldgen_Stone extends GT_Worldgen {
static final double[] sizeConversion = { 1, 1, 1.333333, 1.333333, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 }; // Bias
// the
@@ -36,6 +36,12 @@ public class GT_Worldgen_Stone extends GT_Worldgen_Ore {
// or
// sills.
+ 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 Hashtable<Long, StoneSeeds> validStoneSeeds = new Hashtable<>(1024);
static class StoneSeeds {
@@ -58,22 +64,18 @@ public class GT_Worldgen_Stone extends GT_Worldgen_Ore {
}
}
- public GT_Worldgen_Stone(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);
+ public GT_Worldgen_Stone(StoneBuilder stone) {
+ super(stone.stoneName, GregTech_API.sWorldgenList, stone.enabledByDefault);
+ mDimensionType = stone.dimension;
+ mBlock = stone.block;
+ mBlockMeta = Math.min(Math.max(stone.blockMeta, 0), 15);
+ mProbability = stone.probability;
+ mAmount = stone.amount;
+ mSize = stone.size;
+ mMinY = stone.minY;
+ mMaxY = stone.maxY;
+ mBiomeList = new ArrayList<>();
+ mAllowToGenerateinVoid = stone.allowToGenerateInVoid;
}
@Override
diff --git a/src/main/java/gregtech/common/GT_Worldgenerator.java b/src/main/java/gregtech/common/GT_Worldgenerator.java
index 7357f42446..68ce3e4d82 100644
--- a/src/main/java/gregtech/common/GT_Worldgenerator.java
+++ b/src/main/java/gregtech/common/GT_Worldgenerator.java
@@ -34,6 +34,7 @@ import gregtech.api.objects.XSTR;
import gregtech.api.util.GT_Log;
import gregtech.api.world.GT_Worldgen;
import gregtech.common.blocks.GT_TileEntity_Ores;
+import gregtech.common.config.worldgen.ConfigEndAsteroids;
public class GT_Worldgenerator implements IWorldGenerator {
@@ -47,30 +48,27 @@ public class GT_Worldgenerator implements IWorldGenerator {
// This is probably not going to work. Trying to create a fake orevein to put into hashtable when there will be no
// ores in a vein.
public static GT_Worldgen_GT_Ore_Layer noOresInVein = new GT_Worldgen_GT_Ore_Layer(
- "NoOresInVein",
- false,
- 0,
- 255,
- 0,
- 255,
- 16,
- false,
- false,
- false,
- Materials.Aluminium,
- Materials.Aluminium,
- Materials.Aluminium,
- Materials.Aluminium);
+ new OreMixBuilder().name("NoOresInVein")
+ .disabledByDefault()
+ .heightRange(0, 255)
+ .weight(0)
+ .density(255)
+ .size(16)
+ .primary(Materials.Aluminium)
+ .secondary(Materials.Aluminium)
+ .inBetween(Materials.Aluminium)
+ .sporadic(Materials.Aluminium));
+
public static Hashtable<Long, GT_Worldgen_GT_Ore_Layer> validOreveins = new Hashtable<>(1024);
public boolean mIsGenerating = false;
public static final Object listLock = new Object();
public static OregenPattern oregenPattern = OregenPattern.AXISSYMMETRICAL;
public GT_Worldgenerator() {
- endAsteroids = GregTech_API.sWorldgenFile.get("endasteroids", "GenerateAsteroids", true);
- endMinSize = GregTech_API.sWorldgenFile.get("endasteroids", "AsteroidMinSize", 50);
- endMaxSize = GregTech_API.sWorldgenFile.get("endasteroids", "AsteroidMaxSize", 200);
- mEndAsteroidProbability = GregTech_API.sWorldgenFile.get("endasteroids", "AsteroidProbability", 300);
+ endAsteroids = ConfigEndAsteroids.generateEndAsteroids;
+ endMinSize = ConfigEndAsteroids.EndAsteroidMinSize;
+ endMaxSize = ConfigEndAsteroids.EndAsteroidMaxSize;
+ mEndAsteroidProbability = ConfigEndAsteroids.EndAsteroidProbability;
GameRegistry.registerWorldGenerator(this, 1073741823);
if (debugWorldGen) {
GT_Log.out.println("GT_Worldgenerator created");
diff --git a/src/main/java/gregtech/common/OreMixBuilder.java b/src/main/java/gregtech/common/OreMixBuilder.java
new file mode 100644
index 0000000000..2a78f516a0
--- /dev/null
+++ b/src/main/java/gregtech/common/OreMixBuilder.java
@@ -0,0 +1,86 @@
+package gregtech.common;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import bloodasp.galacticgreg.api.enums.DimensionDef;
+import gregtech.api.enums.Materials;
+
+public class OreMixBuilder {
+
+ public static final String OW = "Overworld";
+ public static final String NETHER = "Nether";
+ public static final String THE_END = "TheEnd";
+ public static final String TWILIGHT_FOREST = "Twilight Forest";
+ public String oreMixName;
+ public boolean enabledByDefault = true;
+ public Map<String, Boolean> dimsEnabled = new HashMap<>();
+ public int minY, maxY, weight, density, size;
+ public Materials primary, secondary, between, sporadic;
+
+ public OreMixBuilder name(String name) {
+ this.oreMixName = name;
+ return this;
+ }
+
+ public OreMixBuilder disabledByDefault() {
+ this.enabledByDefault = false;
+ return this;
+ }
+
+ public OreMixBuilder enableInDim(DimensionDef... dims) {
+ for (DimensionDef dim : dims) {
+ this.dimsEnabled.put(dim.modDimensionDef.getDimensionName(), true);
+ }
+ return this;
+ }
+
+ public OreMixBuilder enableInDim(String... dims) {
+ for (String dim : dims) {
+ this.dimsEnabled.put(dim, true);
+ }
+ return this;
+ }
+
+ public OreMixBuilder heightRange(int minY, int maxY) {
+ this.minY = minY;
+ this.maxY = maxY;
+ return this;
+ }
+
+ public OreMixBuilder density(int density) {
+ this.density = density;
+ return this;
+ }
+
+ public OreMixBuilder weight(int weight) {
+ this.weight = weight;
+ return this;
+ }
+
+ public OreMixBuilder size(int size) {
+ this.size = size;
+ return this;
+ }
+
+ public OreMixBuilder primary(Materials primary) {
+ this.primary = primary;
+ return this;
+ }
+
+ public OreMixBuilder secondary(Materials secondary) {
+ this.secondary = secondary;
+ return this;
+ }
+
+ public OreMixBuilder inBetween(Materials between) {
+ this.between = between;
+ return this;
+ }
+
+ public OreMixBuilder sporadic(Materials sporadic) {
+ this.sporadic = sporadic;
+ return this;
+ }
+
+}
diff --git a/src/main/java/gregtech/common/SmallOreBuilder.java b/src/main/java/gregtech/common/SmallOreBuilder.java
new file mode 100644
index 0000000000..e9a68e7caf
--- /dev/null
+++ b/src/main/java/gregtech/common/SmallOreBuilder.java
@@ -0,0 +1,60 @@
+package gregtech.common;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import bloodasp.galacticgreg.api.enums.DimensionDef;
+import gregtech.api.enums.Materials;
+
+public class SmallOreBuilder {
+
+ public static final String OW = "Overworld";
+ public static final String NETHER = "Nether";
+ public static final String THE_END = "TheEnd";
+ public static final String TWILIGHT_FOREST = "Twilight Forest";
+ public String smallOreName;
+ public boolean enabledByDefault = true;
+ public Map<String, Boolean> dimsEnabled = new HashMap<>();
+ public int minY, maxY, amount;
+ public Materials ore;
+
+ public SmallOreBuilder name(String name) {
+ this.smallOreName = name;
+ return this;
+ }
+
+ public SmallOreBuilder disabledByDefault() {
+ this.enabledByDefault = false;
+ return this;
+ }
+
+ public SmallOreBuilder enableInDim(DimensionDef... dims) {
+ for (DimensionDef dim : dims) {
+ this.dimsEnabled.put(dim.modDimensionDef.getDimensionName(), true);
+ }
+ return this;
+ }
+
+ public SmallOreBuilder enableInDim(String... dims) {
+ for (String dim : dims) {
+ this.dimsEnabled.put(dim, true);
+ }
+ return this;
+ }
+
+ public SmallOreBuilder heightRange(int minY, int maxY) {
+ this.minY = minY;
+ this.maxY = maxY;
+ return this;
+ }
+
+ public SmallOreBuilder amount(int amount) {
+ this.amount = amount;
+ return this;
+ }
+
+ public SmallOreBuilder ore(Materials ore) {
+ this.ore = ore;
+ return this;
+ }
+}
diff --git a/src/main/java/gregtech/common/StoneBuilder.java b/src/main/java/gregtech/common/StoneBuilder.java
new file mode 100644
index 0000000000..3ab32937a6
--- /dev/null
+++ b/src/main/java/gregtech/common/StoneBuilder.java
@@ -0,0 +1,66 @@
+package gregtech.common;
+
+import net.minecraft.block.Block;
+
+public class StoneBuilder {
+
+ public String stoneName;
+ public Block block;
+ public int blockMeta;
+ public int dimension;
+ public int minY, maxY;
+ public int amount, size, probability;
+ public boolean enabledByDefault = true;
+ public boolean allowToGenerateInVoid;
+
+ public StoneBuilder name(String name) {
+ this.stoneName = name;
+ return this;
+ }
+
+ public StoneBuilder block(Block block) {
+ this.block = block;
+ return this;
+ }
+
+ public StoneBuilder blockMeta(int blockMeta) {
+ this.blockMeta = blockMeta;
+ return this;
+ }
+
+ public StoneBuilder disabledByDefault() {
+ this.enabledByDefault = false;
+ return this;
+ }
+
+ public StoneBuilder generationInVoidEnabled(boolean allowToGenerateInVoid) {
+ this.allowToGenerateInVoid = allowToGenerateInVoid;
+ return this;
+ }
+
+ public StoneBuilder heightRange(int minY, int maxY) {
+ this.minY = minY;
+ this.maxY = maxY;
+ return this;
+ }
+
+ public StoneBuilder amount(int amount) {
+ this.amount = amount;
+ return this;
+ }
+
+ public StoneBuilder size(int size) {
+ this.size = size;
+ return this;
+ }
+
+ public StoneBuilder probability(int probability) {
+ this.probability = probability;
+ return this;
+ }
+
+ public StoneBuilder dimension(int dimension) {
+ this.dimension = dimension;
+ return this;
+ }
+}
diff --git a/src/main/java/gregtech/common/config/client/ConfigColorModulation.java b/src/main/java/gregtech/common/config/client/ConfigColorModulation.java
new file mode 100644
index 0000000000..f5b189136e
--- /dev/null
+++ b/src/main/java/gregtech/common/config/client/ConfigColorModulation.java
@@ -0,0 +1,25 @@
+package gregtech.common.config.client;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "color_modulation",
+ configSubDirectory = "GregTech",
+ filename = "Client")
+public class ConfigColorModulation {
+
+ @Config.Comment("hex value for the cable insulation color modulation.")
+ @Config.DefaultString("#404040")
+ public static String cableInsulation;
+
+ @Config.Comment("hex value for the construction foam color modulation.")
+ @Config.DefaultString("#404040")
+ public static String constructionFoam;
+
+ @Config.Comment("hex value for the machine metal color modulation.")
+ @Config.DefaultString("#D2DCFF")
+ public static String machineMetal;
+}
diff --git a/src/main/java/gregtech/common/config/client/ConfigInterface.java b/src/main/java/gregtech/common/config/client/ConfigInterface.java
new file mode 100644
index 0000000000..261be6f51c
--- /dev/null
+++ b/src/main/java/gregtech/common/config/client/ConfigInterface.java
@@ -0,0 +1,29 @@
+package gregtech.common.config.client;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "interface", configSubDirectory = "GregTech", filename = "Client")
+public class ConfigInterface {
+
+ @Config.Comment("if true, makes cover tabs visible on GregTech machines.")
+ @Config.DefaultBoolean(true)
+ public static boolean coverTabsVisible;
+
+ @Config.Comment("if true, puts the cover tabs display on the right of the UI instead of the left.")
+ @Config.DefaultBoolean(false)
+ public static boolean coverTabsFlipped;
+
+ @Config.Comment("How verbose should tooltips be? 0: disabled, 1: one-line, 2: normal, 3+: extended.")
+ @Config.DefaultInt(2)
+ public static int tooltipVerbosity;
+
+ @Config.Comment("How verbose should tooltips be when LSHIFT is held? 0: disabled, 1: one-line, 2: normal, 3+: extended.")
+ @Config.DefaultInt(3)
+ public static int tooltipShiftVerbosity;
+
+ @Config.Comment("Which style to use for title tab on machine GUI? 0: text tab split-dark, 1: text tab unified, 2: item icon tab.")
+ @Config.DefaultInt(0)
+ public static int titleTabStyle;
+}
diff --git a/src/main/java/gregtech/common/config/client/ConfigPreference.java b/src/main/java/gregtech/common/config/client/ConfigPreference.java
new file mode 100644
index 0000000000..f69ee8b890
--- /dev/null
+++ b/src/main/java/gregtech/common/config/client/ConfigPreference.java
@@ -0,0 +1,21 @@
+package gregtech.common.config.client;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "preference", configSubDirectory = "GregTech", filename = "Client")
+public class ConfigPreference {
+
+ @Config.Comment("if true, input filter will initially be on when input buses are placed in the world.")
+ @Config.DefaultBoolean(false)
+ public static boolean inputBusInitialFilter;
+
+ @Config.Comment("if true, allow multistacks on single blocks by default when they are first placed in the world.")
+ @Config.DefaultBoolean(false)
+ public static boolean singleBlockInitialAllowMultiStack;
+
+ @Config.Comment("if true, input filter will initially be on when machines are placed in the world.")
+ @Config.DefaultBoolean(false)
+ public static boolean singleBlockInitialFilter;
+}
diff --git a/src/main/java/gregtech/common/config/client/ConfigRender.java b/src/main/java/gregtech/common/config/client/ConfigRender.java
new file mode 100644
index 0000000000..27860a13cb
--- /dev/null
+++ b/src/main/java/gregtech/common/config/client/ConfigRender.java
@@ -0,0 +1,46 @@
+package gregtech.common.config.client;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "render", configSubDirectory = "GregTech", filename = "Client")
+public class ConfigRender {
+
+ @Config.Comment("if true, enables ambient-occlusion smooth lighting on tiles.")
+ @Config.DefaultBoolean(true)
+ public static boolean renderTileAmbientOcclusion;
+
+ @Config.Comment("if true, enables glowing of the machine controllers.")
+ @Config.DefaultBoolean(true)
+ public static boolean renderGlowTextures;
+
+ @Config.Comment("if true, render flipped machine with flipped textures.")
+ @Config.DefaultBoolean(true)
+ public static boolean renderFlippedMachinesFlipped;
+
+ @Config.Comment("if true, render indicators on hatches.")
+ @Config.DefaultBoolean(true)
+ public static boolean renderIndicatorsOnHatch;
+
+ @Config.Comment("if true, enables dirt particles when pollution reaches the threshold.")
+ @Config.DefaultBoolean(true)
+ public static boolean renderDirtParticles;
+
+ @Config.Comment("if true, enables pollution fog when pollution reaches the threshold.")
+ @Config.DefaultBoolean(true)
+ public static boolean renderPollutionFog;
+
+ @Config.Comment("if true, enables the green -> red durability for an item's damage value.")
+ @Config.DefaultBoolean(true)
+ public static boolean renderItemDurabilityBar;
+
+ @Config.Comment("if true, enables the blue charge bar for an electric item's charge.")
+ @Config.DefaultBoolean(true)
+ public static boolean renderItemChargeBar;
+
+ @Config.Comment("enables BaseMetaTileEntity block updates handled by BlockUpdateHandler.")
+ @Config.DefaultBoolean(false)
+ public static boolean useBlockUpdateHandler;
+
+}
diff --git a/src/main/java/gregtech/common/config/client/ConfigWaila.java b/src/main/java/gregtech/common/config/client/ConfigWaila.java
new file mode 100644
index 0000000000..9d6f732941
--- /dev/null
+++ b/src/main/java/gregtech/common/config/client/ConfigWaila.java
@@ -0,0 +1,21 @@
+package gregtech.common.config.client;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "waila", configSubDirectory = "GregTech", filename = "Client")
+
+public class ConfigWaila {
+
+ /**
+ * This enables showing voltage tier of transformer for Waila, instead of raw voltage number
+ */
+ @Config.Comment("if true, enables showing voltage tier of transformer for Waila, instead of raw voltage number.")
+ @Config.DefaultBoolean(true)
+ public static boolean wailaTransformerVoltageTier;
+
+ @Config.Comment("if true, enables showing voltage tier of transformer for Waila, instead of raw voltage number.")
+ @Config.DefaultBoolean(false)
+ public static boolean wailaAverageNS;
+}
diff --git a/src/main/java/gregtech/common/config/gregtech/ConfigDebug.java b/src/main/java/gregtech/common/config/gregtech/ConfigDebug.java
new file mode 100644
index 0000000000..fe5fc52b13
--- /dev/null
+++ b/src/main/java/gregtech/common/config/gregtech/ConfigDebug.java
@@ -0,0 +1,79 @@
+package gregtech.common.config.gregtech;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "debug", configSubDirectory = "GregTech", filename = "GregTech")
+public class ConfigDebug {
+
+ @Config.Comment("enable D1 flag (a set of debug logs)")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean D1;
+
+ @Config.Comment("enable D2 flag (another set of debug logs)")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean D2;
+
+ @Config.Comment("This will prevent NEI from crashing but spams the Log.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean allowBrokenRecipeMap;
+
+ @Config.Comment("Debug parameters for cleanroom testing.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugCleanroom;
+
+ @Config.Comment("Debug parameter for driller testing.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugDriller;
+
+ @Config.Comment("Debug parameter for world generation. Tracks chunks added/removed from run queue.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugWorldgen;
+
+ @Config.Comment("Debug parameter for orevein generation.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugOrevein;
+
+ @Config.Comment("Debug parameter for small ore generation.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugSmallOres;
+
+ @Config.Comment("Debug parameter for stones generation.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugStones;
+
+ @Config.Comment("Debug parameter for single block miner.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugBlockMiner;
+
+ @Config.Comment("Debug parameter for single block pump.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugBlockPump;
+
+ @Config.Comment("Debug parameter for entity cramming reduction.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugEntityCramming;
+
+ @Config.Comment("Debug parameter for gregtech.api.util.GT_ChunkAssociatedData")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugWorldData;
+
+ @Config.Comment("Debug parameter for chunk loaders.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean debugChunkloaders;
+}
diff --git a/src/main/java/gregtech/common/config/gregtech/ConfigFeatures.java b/src/main/java/gregtech/common/config/gregtech/ConfigFeatures.java
new file mode 100644
index 0000000000..82a86f9186
--- /dev/null
+++ b/src/main/java/gregtech/common/config/gregtech/ConfigFeatures.java
@@ -0,0 +1,34 @@
+package gregtech.common.config.gregtech;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "features", configSubDirectory = "GregTech", filename = "GregTech")
+public class ConfigFeatures {
+
+ @Config.Comment("Controls the stacksize of tree related blocks.")
+ @Config.DefaultInt(64)
+ @Config.RequiresMcRestart
+ public static int maxLogStackSize;
+
+ @Config.Comment("Controls the stacksize of every oredicted prefix based items used for blocks (if that even makes sense)")
+ @Config.DefaultInt(64)
+ @Config.RequiresMcRestart
+ public static int maxOtherBlocksStackSize;
+
+ @Config.Comment("Controls the stacksize of oredicted planks.")
+ @Config.DefaultInt(64)
+ @Config.RequiresMcRestart
+ public static int maxPlankStackSize;
+
+ @Config.Comment("Controls the stacksize of oredicted items used in ore treatment.")
+ @Config.DefaultInt(64)
+ @Config.RequiresMcRestart
+ public static int maxOreStackSize;
+
+ @Config.Comment("Controls the stacksize of IC2 overclocker upgrades.")
+ @Config.DefaultInt(4)
+ @Config.RequiresMcRestart
+ public static int upgradeStackSize;
+}
diff --git a/src/main/java/gregtech/common/config/gregtech/ConfigGeneral.java b/src/main/java/gregtech/common/config/gregtech/ConfigGeneral.java
new file mode 100644
index 0000000000..e2ac011d39
--- /dev/null
+++ b/src/main/java/gregtech/common/config/gregtech/ConfigGeneral.java
@@ -0,0 +1,254 @@
+package gregtech.common.config.gregtech;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "general", configSubDirectory = "GregTech", filename = "GregTech")
+public class ConfigGeneral {
+
+ @Config.Comment("Control percentage of filled 3x3 chunks. Lower number means less oreveins spawn.")
+ @Config.DefaultInt(100)
+ @Config.RequiresMcRestart
+ public static int oreveinPercentage;
+
+ @Config.Comment("Control number of attempts to find a valid orevein. Generally this maximum limit isn't hit, selecting a vein is cheap")
+ @Config.DefaultInt(64)
+ @Config.RequiresMcRestart
+ public static int oreveinAttempts;
+
+ @Config.Comment("Control number of attempts to place a valid ore vein. If a vein wasn't placed due to height restrictions, completely in the water, etc, another attempt is tried.")
+ @Config.DefaultInt(8)
+ @Config.RequiresMcRestart
+ public static int oreveinMaxPlacementAttempts;
+
+ @Config.Comment("Whether to place small ores as placer ores for an orevein.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean oreveinPlacerOres;
+
+ @Config.Comment("Multiplier to control how many placer ores get generated.")
+ @Config.DefaultInt(2)
+ @Config.RequiresMcRestart
+ public static int oreveinPlacerOresMultiplier;
+
+ @Config.Comment("If true, enables the timber axe (cuts down whole tree in a single hit).")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean timber;
+
+ @Config.Comment("If true, all the GT5U potions are always drinkable.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean drinksAlwaysDrinkable;
+
+ @Config.Comment("if true, shows all the metaitems in creative and in NEI.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean doShowAllItemsInCreative;
+
+ @Config.Comment("if true, makes the GT5U sounds multi-threaded.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean multiThreadedSounds;
+
+ @Config.Comment("Max entity amount in the same block for entity craming.")
+ @Config.DefaultInt(6)
+ @Config.RequiresMcRestart
+ public static int maxEqualEntitiesAtOneSpot;
+
+ @Config.Comment("The chance of success to start a fire from the flint and steel.")
+ @Config.DefaultInt(30)
+ @Config.RequiresMcRestart
+ public static int flintChance;
+
+ @Config.Comment("Entity despawn time.")
+ @Config.DefaultInt(6000)
+ @Config.RequiresMcRestart
+ public static int itemDespawnTime;
+
+ @Config.Comment("If true, allows small boiler automation.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean allowSmallBoilerAutomation;
+
+ @Config.Comment("If true, increases dungeon loots in vanilla structures.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean increaseDungeonLoot;
+
+ @Config.Comment("If true, spawns an axe at the start in adventure mode. Does nothing if the advanture mode isn't forced.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean axeWhenAdventure;
+
+ @Config.Comment("If true, forces the survival map into adventure mode.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean survivalIntoAdventure;
+
+ @Config.Comment("If true, hungers the players based on his amount of stuff in the inventory every 6s, regardless of player movement.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean hungerEffect;
+
+ @Config.Comment("If true, enables the item oredification of the items in the inventory.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean inventoryUnification;
+
+ @Config.Comment("if true, enables GT5U and GT++ bees.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean GTBees;
+
+ @Config.Comment("if true, enables crafting unification.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean craftingUnification;
+
+ @Config.Comment("If true, nerfs planks recipes.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean nerfedWoodPlank;
+
+ @Config.Comment("if true, reduces the durability of the vanilla tools.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean nerfedVanillaTools;
+
+ @Config.Comment("if true, enables GT5U achievements.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean achievements;
+
+ @Config.Comment("if true, hides unused ores.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean hideUnusedOres;
+
+ @Config.Comment("if true, enables all the materials in GT5U.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean enableAllMaterials;
+
+ @Config.Comment("Controls the amount of tick over the lag averaging is done with the scanner.")
+ @Config.DefaultInt(25)
+ @Config.RequiresMcRestart
+ public static int ticksForLagAveraging;
+
+ @Config.Comment("Controls the threshold (in ms) above which a lag warning is issued in log for a specific tile entity.")
+ @Config.DefaultInt(100)
+ @Config.RequiresMcRestart
+ public static int millisecondThesholdUntilLagWarning;
+
+ @Config.Comment("if true, drops the content of the machine inventory before exploding.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean explosionItemDrop;
+
+ @Config.Comment("if true, enables the cleanroom multi.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean enableCleanroom;
+
+ @Config.Comment("if true, enables low gravity requirement in some crafts. Is forced to false if GalactiCraft is not present.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean lowGravProcessing;
+
+ @Config.Comment("if true, crops need a block below to fully grow.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean cropNeedBlock;
+
+ @Config.Comment("if yes, allows the automatic interactions with the maintenance hatches.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean autoMaintenaceHatchesInteraction;
+
+ @Config.Comment("if true, mixed ores only yields the equivalent of 2/3 of the pure ores.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean mixedOreOnlyYieldsTwoThirdsOfPureOre;
+
+ @Config.Comment("if true, rich ores yield twice as much as normal ores.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean richOreYieldMultiplier;
+
+ @Config.Comment("if true, nether ores yield twice as much as normal ores.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean netherOreYieldMultiplier;
+
+ @Config.Comment("if true, end ores yield twice as much as normal ores.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean endOreYieldMultiplier;
+
+ @Config.Comment("if true, enables GT6 styled pipe connections.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean gt6Pipe;
+
+ @Config.Comment("if true, enables GT6 styled wire connections.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean gt6Cable;
+
+ @Config.Comment("if true, allows GT5U cables to be IC2 power sources.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean ic2EnergySourceCompat;
+
+ @Config.Comment("if true, wires will require soldering material to be connected.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean costlyCableConnection;
+
+ @Config.Comment("if true, crashes on null recipe input.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean crashOnNullRecipeInput;
+
+ @Config.Comment("if true, enable placeholder for material names in lang file.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean i18nPlaceholder;
+
+ @Config.Comment("if true, sets the hardness of the mobspawers to 500 and their blast resistance to 6 000 000.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean harderMobSpawner;
+
+ @Config.Comment("Controls the minimum distance allowed for the long distance pipelines to form.")
+ @Config.DefaultInt(64)
+ @Config.RequiresMcRestart
+ public static int minimalDistancePoints;
+
+ @Config.Comment("This will set the blacklist of blocks for CTM blocks.")
+ @Config.DefaultStringList({ "team.chisel.block.BlockRoadLine" })
+ @Config.RequiresMcRestart
+ public static String[] CTMBlacklist;
+
+ @Config.Comment("This will set the whitelist of blocks for CTM blocks.")
+ @Config.DefaultStringList({ "team.chisel.block.BlockCarvable", "team.chisel.block.BlockCarvableGlass" })
+ @Config.RequiresMcRestart
+ public static String[] CTMWhitelist;
+
+ @Config.Comment("if true, logs all the oredict in logs/OreDict.log.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean loggingOreDict;
+
+ @Config.Comment("if true, logs all the oredict in logs/Explosion.log.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean loggingExplosions;
+
+ @Config.Comment("if true, log all the oredict in logs/PlayerActivity.log.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean loggingPlayerActicity;
+}
diff --git a/src/main/java/gregtech/common/config/gregtech/ConfigHarvestLevel.java b/src/main/java/gregtech/common/config/gregtech/ConfigHarvestLevel.java
new file mode 100644
index 0000000000..f924ceda8d
--- /dev/null
+++ b/src/main/java/gregtech/common/config/gregtech/ConfigHarvestLevel.java
@@ -0,0 +1,28 @@
+package gregtech.common.config.gregtech;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "harvest_level",
+ configSubDirectory = "GregTech",
+ filename = "GregTech")
+public class ConfigHarvestLevel {
+
+ @Config.Comment("Activate Harvest Level Change")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean activateHarvestLevelChange;
+
+ @Config.Comment("Maximum harvest level")
+ @Config.DefaultInt(7)
+ @Config.RequiresMcRestart
+ public static int maxHarvestLevel;
+
+ @Config.Comment("GraniteHarvestLevel harvest level")
+ @Config.DefaultInt(3)
+ @Config.RequiresMcRestart
+ public static int graniteHarvestLevel;
+}
diff --git a/src/main/java/gregtech/common/config/gregtech/ConfigMachines.java b/src/main/java/gregtech/common/config/gregtech/ConfigMachines.java
new file mode 100644
index 0000000000..06f6c0c18f
--- /dev/null
+++ b/src/main/java/gregtech/common/config/gregtech/ConfigMachines.java
@@ -0,0 +1,147 @@
+package gregtech.common.config.gregtech;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "machines", configSubDirectory = "GregTech", filename = "GregTech")
+public class ConfigMachines {
+
+ @Config.Comment("Number of ticks between sending sound packets to clients for electric machines. Default is 1.5 seconds. Trying to mitigate lag and FPS drops.")
+ @Config.DefaultInt(30)
+ @Config.RequiresMcRestart
+ public static int ticksBetweenSounds;
+
+ @Config.Comment("This will set the blacklist for the world accelerator in TE mode.")
+ @Config.DefaultStringList({ "com.rwtema.extrautils.tileentity.enderquarry.TileEntityEnderQuarry",
+ "advsolar.common.tiles.TileEntityUltimateSolarPanel", "advsolar.common.tiles.TileEntitySolarPanel",
+ "advsolar.common.tiles.TileEntityQuantumSolarPanel", "advsolar.common.tiles.TileEntityHybridSolarPanel",
+ "advsolar.common.tiles.TileEntityAdvancedSolarPanel", "com.supsolpans.tiles.TileAdminSolarPanel",
+ "com.supsolpans.tiles.TilePhotonicSolarPanel", "com.supsolpans.tiles.TileSingularSolarPanel",
+ "com.supsolpans.tiles.TileSpectralSolarPanel", "emt.tile.solar.air.TileEntityAirSolar",
+ "emt.tile.solar.air.TileEntityDoubleAirSolar", "emt.tile.solar.air.TileEntityTripleAirSolar",
+ "emt.tile.solar.air.TileEntityQuadrupleAirSolar", "emt.tile.solar.air.TileEntityQuintupleAirSolar",
+ "emt.tile.solar.air.TileEntitySextupleAirSolar", "emt.tile.solar.air.TileEntitySeptupleAirSolar",
+ "emt.tile.solar.air.TileEntityOctupleAirSolar", "emt.tile.solar.compressed.TileEntityCompressedSolar",
+ "emt.tile.solar.compressed.TileEntityDoubleCompressedSolar",
+ "emt.tile.solar.compressed.TileEntityTripleCompressedSolar",
+ "emt.tile.solar.compressed.TileEntityQuadrupleAirSolar",
+ "emt.tile.solar.compressed.TileEntityQuintupleAirSolar", "emt.tile.solar.compressed.TileEntitySextupleAirSolar",
+ "emt.tile.solar.compressed.TileEntitySeptupleAirSolar", "emt.tile.solar.compressed.TileEntityOctupleAirSolar",
+ "emt.tile.solar.dark.TileEntityDarkSolar", "emt.tile.solar.dark.TileEntityDoubleDarkSolar",
+ "emt.tile.solar.dark.TileEntityTripleDarkSolar", "emt.tile.solar.dark.TileEntityQuadrupleAirSolar",
+ "emt.tile.solar.dark.TileEntityQuintupleAirSolar", "emt.tile.solar.dark.TileEntitySextupleAirSolar",
+ "emt.tile.solar.dark.TileEntitySeptupleAirSolar", "emt.tile.solar.dark.TileEntityOctupleAirSolar",
+ "emt.tile.solar.earth.TileEntityDoubleEarthSolar", "emt.tile.solar.earth.TileEntityEarthSolar",
+ "emt.tile.solar.earth.TileEntityTripleEarthSolar", "emt.tile.solar.earth.TileEntityQuadrupleAirSolar",
+ "emt.tile.solar.earth.TileEntityQuintupleAirSolar", "emt.tile.solar.earth.TileEntitySextupleAirSolar",
+ "emt.tile.solar.earth.TileEntitySeptupleAirSolar", "emt.tile.solar.earth.TileEntityOctupleAirSolar",
+ "emt.tile.solar.fire.TileEntityDoubleFireSolar", "emt.tile.solar.fire.TileEntityFireSolar",
+ "emt.tile.solar.fire.TileEntityTripleFireSolar", "emt.tile.solar.fire.TileEntityQuadrupleAirSolar",
+ "emt.tile.solar.fire.TileEntityQuintupleAirSolar", "emt.tile.solar.fire.TileEntitySextupleAirSolar",
+ "emt.tile.solar.fire.TileEntitySeptupleAirSolar", "emt.tile.solar.fire.TileEntityOctupleAirSolar",
+ "emt.tile.solar.order.TileEntityDoubleOrderSolar", "emt.tile.solar.order.TileEntityOrderSolar",
+ "emt.tile.solar.order.TileEntityTripleOrderSolar", "emt.tile.solar.order.TileEntityQuadrupleAirSolar",
+ "emt.tile.solar.order.TileEntityQuintupleAirSolar", "emt.tile.solar.order.TileEntitySextupleAirSolar",
+ "emt.tile.solar.order.TileEntitySeptupleAirSolar", "emt.tile.solar.order.TileEntityOctupleAirSolar",
+ "emt.tile.solar.water.TileEntityDoubleWaterSolar", "emt.tile.solar.water.TileEntityTripleWaterSolar",
+ "emt.tile.solar.water.TileEntityWaterSolar", "emt.tile.solar.water.TileEntityQuadrupleAirSolar",
+ "emt.tile.solar.water.TileEntityQuintupleAirSolar", "emt.tile.solar.water.TileEntitySextupleAirSolar",
+ "emt.tile.solar.water.TileEntitySeptupleAirSolar", "emt.tile.solar.water.TileEntityOctupleAirSolar",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkgE",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkgH",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkgL",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkgM",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkwaE",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkwaH",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkwaL",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkwaM",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkwmE",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkwmH",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkwmL",
+ "com.lulan.compactkineticgenerators.tileentity.TileCkwmM", "com.supsolpans.tiles.TileSpectralSolarPanel",
+ "com.supsolpans.tiles.TileSingularSolarPanel", "com.supsolpans.tiles.TileAdminSolarPanel",
+ "com.supsolpans.tiles.TilePhotonicSolarPanel", "gtPlusPlus.core.tileentities.general.TileEntityFishTrap",
+ "gtPlusPlus.core.tileentities.general.TileEntityDecayablesChest",
+ "net.bdew.gendustry.machines.apiary.TileApiary", "goodgenerator.blocks.tileEntity.EssentiaHatch",
+ "magicbees.tileentity.TileEntityApimancersDrainerCommon",
+ "magicbees.tileentity.TileEntityApimancersDrainerGT" })
+ @Config.RequiresMcRestart
+ public static String[] blacklistedTileEntiyClassNamesForWA;
+
+ @Config.Comment("This will set the percentage how much ReinforcedGlass is Allowed in Cleanroom Walls.")
+ @Config.DefaultFloat(5.0f)
+ @Config.RequiresMcRestart
+ public static float cleanroomGlass;
+
+ @Config.Comment("This will let machines such as drills and pumps chunkload their work area.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean enableChunkloaders;
+
+ @Config.Comment("This will make all chunkloading machines act as World Anchors (true) or Passive Anchors (false).")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean alwaysReloadChunkloaders;
+
+ @Config.Comment("If true, then digital chest with AE2 storage bus will be accessible only through AE2")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean disableDigitalChestsExternalAccess;
+
+ @Config.Comment("If true, machines can explode.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean machineExplosions;
+
+ @Config.Comment("If true, machine can take fire.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean machineFlammable;
+
+ @Config.Comment("If true, explodes if the machine is dismantled without a wrench.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean machineNonWrenchExplosions;
+
+ @Config.Comment("If true, burn the wires on explosion. (by sending IV amps into the cables)")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean machineWireFire;
+
+ @Config.Comment("If true, machine will randomly explode if there is fire on adjacent blocks.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean machineFireExplosions;
+
+ @Config.Comment("If true, will randomly explode if it is raining.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean machineRainExplosions;
+
+ @Config.Comment("If true, will randomly explode during thunderstorm if the machine can be exposed to rain.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean machineThunderExplosions;
+
+ @Config.Comment("If true, enable the guis of the machines to get a tint and it will be of the color of the dye applied to the machine.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean coloredGUI;
+
+ @Config.Comment("If true and if the machine tint is activated, the guis will have a uniform metallic tint no matter what color is applied to the machines.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean machineMetalGUI;
+
+ // Implementation for this is actually handled in NewHorizonsCoreMod in MainRegistry.java!
+ @Config.Comment("If true, use the definition of the metallic tint in GT5U, otherwise NHCore will set it to white.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean useMachineMetal;
+
+ @Config.Comment("if true, enables MuTEs(multitile entities) to be added to the game. MuTEs are in the start of development and its not recommended to enable them unless you know what you are doing. (always activated in dev env)")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean enableMultiTileEntities;
+}
diff --git a/src/main/java/gregtech/common/config/gregtech/ConfigOreDropBehavior.java b/src/main/java/gregtech/common/config/gregtech/ConfigOreDropBehavior.java
new file mode 100644
index 0000000000..dd6e1420e2
--- /dev/null
+++ b/src/main/java/gregtech/common/config/gregtech/ConfigOreDropBehavior.java
@@ -0,0 +1,24 @@
+package gregtech.common.config.gregtech;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "ore_drop_behavior",
+ configSubDirectory = "GregTech",
+ filename = "GregTech")
+public class ConfigOreDropBehavior {
+
+ @Config.Comment({ "Settings:",
+ " - 'PerDimBlock': Sets the drop to the block variant of the ore block based on dimension, defaults to stone type",
+ " - 'UnifiedBlock': Sets the drop to the stone variant of the ore block",
+ " - 'Block': Sets the drop to the ore mined",
+ " - 'FortuneItem': Sets the drop to the new ore item and makes it affected by fortune"
+ + " - 'Item': Sets the drop to the new ore item" })
+
+ @Config.DefaultString("FortuneItem")
+ @Config.RequiresMcRestart
+ public static String setting;
+}
diff --git a/src/main/java/gregtech/common/config/gregtech/ConfigPollution.java b/src/main/java/gregtech/common/config/gregtech/ConfigPollution.java
new file mode 100644
index 0000000000..a78fff8f8c
--- /dev/null
+++ b/src/main/java/gregtech/common/config/gregtech/ConfigPollution.java
@@ -0,0 +1,129 @@
+package gregtech.common.config.gregtech;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "pollution", configSubDirectory = "GregTech", filename = "GregTech")
+public class ConfigPollution {
+
+ @Config.Comment("if true, enables pollution in the game.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean pollution;
+
+ @Config.Comment("Controls the threshold starting from which you can see fog.")
+ @Config.DefaultInt(550_000)
+ @Config.RequiresMcRestart
+ public static int pollutionSmogLimit;
+ @Config.Comment("Controls the threshold starting from which players get poison effect.")
+ @Config.DefaultInt(750_000)
+ @Config.RequiresMcRestart
+ public static int pollutionPoisonLimit;
+ @Config.Comment("Controls the threshold starting from which vegetation starts to be killed.")
+ @Config.DefaultInt(1_000_000)
+ @Config.RequiresMcRestart
+ public static int pollutionVegetationLimit;
+ @Config.Comment("Controls the threshold starting from which if it rains, will turn cobblestone into gravel and gravel into sand.")
+ @Config.DefaultInt(2_000_000)
+ @Config.RequiresMcRestart
+ public static int pollutionSourRainLimit;
+ @Config.Comment("Controls the pollution released by an explosion.")
+ @Config.DefaultInt(100_000)
+ @Config.RequiresMcRestart
+ public static int pollutionOnExplosion;
+ @Config.Comment("Controls the pollution released per second by the bricked blast furnace.")
+ @Config.DefaultInt(200)
+ @Config.RequiresMcRestart
+ public static int pollutionPrimitveBlastFurnacePerSecond;
+ @Config.Comment("Controls the pollution released per second by the charcoal pile igniter.")
+ @Config.DefaultInt(100)
+ @Config.RequiresMcRestart
+ public static int pollutionCharcoalPitPerSecond;
+ @Config.Comment("Controls the pollution released per second by the EBF.")
+ @Config.DefaultInt(400)
+ @Config.RequiresMcRestart
+ public static int pollutionEBFPerSecond;
+ @Config.Comment("Controls the pollution released per second by the large combustion engine.")
+ @Config.DefaultInt(480)
+ @Config.RequiresMcRestart
+ public static int pollutionLargeCombustionEnginePerSecond;
+ @Config.Comment("Controls the pollution released per second by the extreme combustion engine.")
+ @Config.DefaultInt(3_840)
+ @Config.RequiresMcRestart
+ public static int pollutionExtremeCombustionEnginePerSecond;
+ @Config.Comment("Controls the pollution released per second by the implosion compressor.")
+ @Config.DefaultInt(10_000)
+ @Config.RequiresMcRestart
+ public static int pollutionImplosionCompressorPerSecond;
+ @Config.Comment("Controls the pollution released per second by the large bronze boiler.")
+ @Config.DefaultInt(1_000)
+ @Config.RequiresMcRestart
+ public static int pollutionLargeBronzeBoilerPerSecond;
+ @Config.Comment("Controls the pollution released per second by the large steel boiler.")
+ @Config.DefaultInt(2_000)
+ @Config.RequiresMcRestart
+ public static int pollutionLargeSteelBoilerPerSecond;
+ @Config.Comment("Controls the pollution released per second by the large titanium boiler.")
+ @Config.DefaultInt(3_000)
+ @Config.RequiresMcRestart
+ public static int pollutionLargeTitaniumBoilerPerSecond;
+ @Config.Comment("Controls the pollution released per second by the large tungstensteel boiler.")
+ @Config.DefaultInt(4_000)
+ @Config.RequiresMcRestart
+ public static int pollutionLargeTungstenSteelBoilerPerSecond;
+ @Config.Comment("Controls the pollution reduction obtained with each increment of the circuit when throttling large boilers.")
+ @Config.DefaultFloat(1.0f / 24.0f) // divided by 24 because there are 24 circuit configs.
+ @Config.RequiresMcRestart
+ public static float pollutionReleasedByThrottle;
+ @Config.Comment("Controls the pollution released per second by the large gas turbine.")
+ @Config.DefaultInt(300)
+ @Config.RequiresMcRestart
+ public static int pollutionLargeGasTurbinePerSecond;
+ @Config.Comment("Controls the pollution released per second by the multi smelter.")
+ @Config.DefaultInt(400)
+ @Config.RequiresMcRestart
+ public static int pollutionMultiSmelterPerSecond;
+ @Config.Comment("Controls the pollution released per second by the pyrolyse oven.")
+ @Config.DefaultInt(300)
+ @Config.RequiresMcRestart
+ public static int pollutionPyrolyseOvenPerSecond;
+ @Config.Comment("Controls the pollution released per second by the small coil boiler.")
+ @Config.DefaultInt(20)
+ @Config.RequiresMcRestart
+ public static int pollutionSmallCoalBoilerPerSecond;
+ @Config.Comment("Controls the pollution released per second by the high pressure lava boiler.")
+ @Config.DefaultInt(20)
+ @Config.RequiresMcRestart
+ public static int pollutionHighPressureLavaBoilerPerSecond;
+ @Config.Comment("Controls the pollution released per second by the high pressure coil boiler.")
+ @Config.DefaultInt(30)
+ @Config.RequiresMcRestart
+ public static int pollutionHighPressureCoalBoilerPerSecond;
+
+ @Config.Comment("Controls the pollution released per second by the base diesel generator.")
+ @Config.DefaultInt(40)
+ @Config.RequiresMcRestart
+ public static int pollutionBaseDieselGeneratorPerSecond;
+
+ // reading double as strings, not perfect, but better than nothing
+ @Config.Comment({
+ "Pollution released by tier, with the following formula: PollutionBaseDieselGeneratorPerSecond * PollutionDieselGeneratorReleasedByTier[Tier]",
+ "The first entry has meaning as it is here to since machine tier with array index: LV is 1, etc." })
+ @Config.DefaultDoubleList({ 0.1, 1.0, 0.9, 0.8 })
+ @Config.RequiresMcRestart
+ public static double[] pollutionDieselGeneratorReleasedByTier;
+
+ @Config.Comment("Controls the pollution released per second by the base gas turbine.")
+ @Config.DefaultInt(40)
+ @Config.RequiresMcRestart
+ public static int pollutionBaseGasTurbinePerSecond;
+
+ // reading double as strings, not perfect, but better than nothing
+ @Config.Comment({
+ "Pollution released by tier, with the following formula: PollutionBaseGasTurbinePerSecond * PollutionGasTurbineReleasedByTier[Tier]",
+ "The first entry has meaning as it is here to since machine tier with array index: LV is 1, etc." })
+ @Config.DefaultDoubleList({ 0.1, 1.0, 0.9, 0.8, 0.7, 0.6 })
+ @Config.RequiresMcRestart
+ public static double[] pollutionGasTurbineReleasedByTier;
+}
diff --git a/src/main/java/gregtech/common/config/machinestats/ConfigBronzeSolarBoiler.java b/src/main/java/gregtech/common/config/machinestats/ConfigBronzeSolarBoiler.java
new file mode 100644
index 0000000000..59042b7e41
--- /dev/null
+++ b/src/main/java/gregtech/common/config/machinestats/ConfigBronzeSolarBoiler.java
@@ -0,0 +1,32 @@
+package gregtech.common.config.machinestats;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "bronze_solar_boiler",
+ configSubDirectory = "GregTech",
+ filename = "MachineStats")
+public class ConfigBronzeSolarBoiler {
+
+ @Config.Comment({ "Number of run-time ticks before boiler starts calcification.",
+ "100% calcification and minimal output will be reached at 2 times this." })
+ @Config.DefaultInt(1_080_000)
+ @Config.RequiresMcRestart
+ public static int calcificationTicks;
+
+ @Config.Comment("Number of ticks it takes to lose 1°C.")
+ @Config.DefaultInt(45)
+ @Config.RequiresMcRestart
+ public static int cooldownTicks;
+
+ @Config.DefaultInt(120)
+ @Config.RequiresMcRestart
+ public static int maxOutputPerSecond;
+
+ @Config.DefaultInt(40)
+ @Config.RequiresMcRestart
+ public static int minOutputPerSecond;
+}
diff --git a/src/main/java/gregtech/common/config/machinestats/ConfigMachines.java b/src/main/java/gregtech/common/config/machinestats/ConfigMachines.java
new file mode 100644
index 0000000000..ed93f31629
--- /dev/null
+++ b/src/main/java/gregtech/common/config/machinestats/ConfigMachines.java
@@ -0,0 +1,34 @@
+package gregtech.common.config.machinestats;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "machines", configSubDirectory = "GregTech", filename = "MachineStats")
+public class ConfigMachines {
+
+ @Config.Comment("Controls the damageFactorLow variable in the maintenance damage equation.")
+ @Config.DefaultInt(5)
+ @Config.RequiresMcRestart
+ public static int damageFactorLow;
+
+ @Config.Comment("Controls the damageFactorHigh variable in the maintenance damage equation.")
+ @Config.DefaultFloat(0.6f)
+ @Config.RequiresMcRestart
+ public static float damageFactorHigh;
+
+ @Config.Comment("if true, disable maintenance checks.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean disableMaintenanceChecks;
+
+ @Config.Comment("If true, allows for multiple eggs on the magical energy absorber.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean allowMultipleEggs;
+
+ @Config.Comment("If true, requires at least a free face to open a machine gui.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean forceFreeFace;
+}
diff --git a/src/main/java/gregtech/common/config/machinestats/ConfigMassFabricator.java b/src/main/java/gregtech/common/config/machinestats/ConfigMassFabricator.java
new file mode 100644
index 0000000000..13cf89470b
--- /dev/null
+++ b/src/main/java/gregtech/common/config/machinestats/ConfigMassFabricator.java
@@ -0,0 +1,33 @@
+package gregtech.common.config.machinestats;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "mass_fabricator",
+ configSubDirectory = "GregTech",
+ filename = "MachineStats")
+public class ConfigMassFabricator {
+
+ @Config.Comment("if true, requires UUA to run the mass fab.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean requiresUUA;
+
+ @Config.Comment("Duration multiplier.")
+ @Config.DefaultInt(3215)
+ @Config.RequiresMcRestart
+ public static int durationMultiplier;
+
+ @Config.Comment("mb of UUA per UUM.")
+ @Config.DefaultInt(1)
+ @Config.RequiresMcRestart
+ public static int UUAPerUUM;
+
+ @Config.Comment("Speed bonus delivered by the UUA.")
+ @Config.DefaultInt(40)
+ @Config.RequiresMcRestart
+ public static int UUASpeedBonus;
+}
diff --git a/src/main/java/gregtech/common/config/machinestats/ConfigMicrowaveEnergyTransmitter.java b/src/main/java/gregtech/common/config/machinestats/ConfigMicrowaveEnergyTransmitter.java
new file mode 100644
index 0000000000..6efec5ca12
--- /dev/null
+++ b/src/main/java/gregtech/common/config/machinestats/ConfigMicrowaveEnergyTransmitter.java
@@ -0,0 +1,28 @@
+package gregtech.common.config.machinestats;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "microwave_energy_transmitter",
+ configSubDirectory = "GregTech",
+ filename = "MachineStats")
+public class ConfigMicrowaveEnergyTransmitter {
+
+ @Config.Comment("if true, it has a passive energy loss.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean passiveEnergyUse;
+
+ @Config.Comment("max loss.")
+ @Config.DefaultInt(50)
+ @Config.RequiresMcRestart
+ public static int maxLoss;
+
+ @Config.Comment("max loss distance.")
+ @Config.DefaultInt(10_000)
+ @Config.RequiresMcRestart
+ public static int maxLossDistance;
+}
diff --git a/src/main/java/gregtech/common/config/machinestats/ConfigSteelSolarBoiler.java b/src/main/java/gregtech/common/config/machinestats/ConfigSteelSolarBoiler.java
new file mode 100644
index 0000000000..c6f6ea9f2a
--- /dev/null
+++ b/src/main/java/gregtech/common/config/machinestats/ConfigSteelSolarBoiler.java
@@ -0,0 +1,32 @@
+package gregtech.common.config.machinestats;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "steel_solar_boiler",
+ configSubDirectory = "GregTech",
+ filename = "MachineStats")
+public class ConfigSteelSolarBoiler {
+
+ @Config.Comment({ "Number of run-time ticks before boiler starts calcification.",
+ "100% calcification and minimal output will be reached at 2 times this." })
+ @Config.DefaultInt(1_080_000)
+ @Config.RequiresMcRestart
+ public static int calcificationTicks;
+
+ @Config.Comment("Number of ticks it takes to lose 1°C.")
+ @Config.DefaultInt(75)
+ @Config.RequiresMcRestart
+ public static int cooldownTicks;
+
+ @Config.DefaultInt(360)
+ @Config.RequiresMcRestart
+ public static int maxOutputPerSecond;
+
+ @Config.DefaultInt(120)
+ @Config.RequiresMcRestart
+ public static int minOutputPerSecond;
+}
diff --git a/src/main/java/gregtech/common/config/machinestats/ConfigTeleporter.java b/src/main/java/gregtech/common/config/machinestats/ConfigTeleporter.java
new file mode 100644
index 0000000000..26f1f8fb4d
--- /dev/null
+++ b/src/main/java/gregtech/common/config/machinestats/ConfigTeleporter.java
@@ -0,0 +1,28 @@
+package gregtech.common.config.machinestats;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "teleporter",
+ configSubDirectory = "GregTech",
+ filename = "MachineStats")
+public class ConfigTeleporter {
+
+ @Config.Comment("if true, allows interdim tp")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean interDimensionalTPAllowed;
+
+ @Config.Comment("passive energy loss.")
+ @Config.DefaultInt(2048)
+ @Config.RequiresMcRestart
+ public static int passiveEnergyDrain;
+
+ @Config.Comment("power multiplier.")
+ @Config.DefaultInt(100)
+ @Config.RequiresMcRestart
+ public static int powerMultiplier;
+}
diff --git a/src/main/java/gregtech/common/config/opstuff/ConfigGeneral.java b/src/main/java/gregtech/common/config/opstuff/ConfigGeneral.java
new file mode 100644
index 0000000000..63cd2bc231
--- /dev/null
+++ b/src/main/java/gregtech/common/config/opstuff/ConfigGeneral.java
@@ -0,0 +1,48 @@
+package gregtech.common.config.opstuff;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "general",
+ configSubDirectory = "GregTech",
+ filename = "OverpoweredStuff")
+public class ConfigGeneral {
+
+ @Config.Comment("How much RF you get with 100 EU in input.")
+ @Config.DefaultInt(360)
+ @Config.RequiresMcRestart
+ public static int howMuchRFWith100EUInInput;
+
+ @Config.Comment("How much EU you get with 100 RF in input.")
+ @Config.DefaultInt(100)
+ @Config.RequiresMcRestart
+ public static int howMuchEUWith100RFInInput;
+
+ @Config.Comment("if true, enables RF -> EU conversion.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean inputRF;
+
+ @Config.Comment("if true, enables EU -> RF conversion.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean outputRF;
+
+ @Config.Comment("If true, machines will explode if RFs injected to a GT machine are above 600 * the max energy they can store.")
+ @Config.DefaultBoolean(false)
+ @Config.RequiresMcRestart
+ public static boolean RFExplosions;
+
+ @Config.Comment("if true, ignores TinkerConstruct in ore registration.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean ignoreTinkerConstruct;
+
+ @Config.Comment("Controls the exposant used in the computation of the UUM required to replicate an element (uum = mass^replicatorExponent)")
+ @Config.DefaultFloat(1.2f)
+ @Config.RequiresMcRestart
+ public static float replicatorExponent;
+}
diff --git a/src/main/java/gregtech/common/config/other/ConfigGeneral.java b/src/main/java/gregtech/common/config/other/ConfigGeneral.java
new file mode 100644
index 0000000000..495ef190c4
--- /dev/null
+++ b/src/main/java/gregtech/common/config/other/ConfigGeneral.java
@@ -0,0 +1,24 @@
+package gregtech.common.config.other;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(modid = Mods.Names.GREG_TECH, category = "general", configSubDirectory = "GregTech", filename = "Other")
+public class ConfigGeneral {
+
+ @Config.Comment("How much pipes you can chain wrench to disable their input.")
+ @Config.DefaultInt(64)
+ @Config.RequiresMcRestart
+ public static int pipeWrenchingChainRange;
+
+ @Config.Comment("How much blocks you can chain paint with GT spray cans.")
+ @Config.DefaultInt(64)
+ @Config.RequiresMcRestart
+ public static int sprayCanChainRange;
+
+ @Config.Comment("How much blocks you can paint with GT spray cans.")
+ @Config.DefaultInt(512)
+ @Config.RequiresMcRestart
+ public static int sprayCanUses;
+}
diff --git a/src/main/java/gregtech/common/config/worldgen/ConfigEndAsteroids.java b/src/main/java/gregtech/common/config/worldgen/ConfigEndAsteroids.java
new file mode 100644
index 0000000000..c1ec0125b5
--- /dev/null
+++ b/src/main/java/gregtech/common/config/worldgen/ConfigEndAsteroids.java
@@ -0,0 +1,33 @@
+package gregtech.common.config.worldgen;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "end_asteroids",
+ configSubDirectory = "GregTech",
+ filename = "WorldGeneration")
+public class ConfigEndAsteroids {
+
+ @Config.Comment("The maximum size for the end asteroids.")
+ @Config.DefaultInt(200)
+ @Config.RequiresMcRestart
+ public static int EndAsteroidMaxSize;
+
+ @Config.Comment("The minimum size for the end asteroids.")
+ @Config.DefaultInt(200)
+ @Config.RequiresMcRestart
+ public static int EndAsteroidMinSize;
+
+ @Config.Comment("The probability weight to generate end asteroids.")
+ @Config.DefaultInt(300)
+ @Config.RequiresMcRestart
+ public static int EndAsteroidProbability;
+
+ @Config.Comment("if true, enables end asteroids.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean generateEndAsteroids;
+}
diff --git a/src/main/java/gregtech/common/config/worldgen/ConfigGeneral.java b/src/main/java/gregtech/common/config/worldgen/ConfigGeneral.java
new file mode 100644
index 0000000000..c978f35365
--- /dev/null
+++ b/src/main/java/gregtech/common/config/worldgen/ConfigGeneral.java
@@ -0,0 +1,48 @@
+package gregtech.common.config.worldgen;
+
+import com.gtnewhorizon.gtnhlib.config.Config;
+
+import gregtech.api.enums.Mods;
+
+@Config(
+ modid = Mods.Names.GREG_TECH,
+ category = "general",
+ configSubDirectory = "GregTech",
+ filename = "WorldGeneration")
+public class ConfigGeneral {
+
+ @Config.Comment("if true, enables basalt ore gen.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean generateBasaltOres;
+
+ @Config.Comment("if true, enables black granite ore gen.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean generateBlackGraniteOres;
+
+ @Config.Comment("if true, enables marble ore gen.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean generateMarbleOres;
+
+ @Config.Comment("if true, enables red granite ore gen.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean generateRedGraniteOres;
+
+ @Config.Comment("If true, disables vanilla oregen.")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean disableVanillaOres;
+
+ @Config.Comment("if true, enables underground dirt gen. Does nothing if the vanilla oregen is enabled!")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean generateUndergroundDirtGen;
+
+ @Config.Comment("if true, enables underground gravel gen. Does nothing if the vanilla oregen is enabled!")
+ @Config.DefaultBoolean(true)
+ @Config.RequiresMcRestart
+ public static boolean generateUndergroundGravelGen;
+}
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java
index 88a7e1f69e..17d0c13f03 100644
--- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java
@@ -67,7 +67,6 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.Dyes;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
@@ -91,6 +90,7 @@ import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
+import gregtech.common.config.other.ConfigGeneral;
import gregtech.common.covers.GT_Cover_Arm;
import gregtech.common.covers.GT_Cover_Chest;
import gregtech.common.covers.GT_Cover_ControlsWork;
@@ -4068,7 +4068,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 {
ItemList.Spray_Empty.get(1L),
ItemList.SPRAY_CAN_DYES_USED[i].get(1L),
ItemList.SPRAY_CAN_DYES[i].get(1L),
- GregTech_API.sSpecialFile.get(ConfigCategories.general, "SprayCanUses", 512),
+ ConfigGeneral.sprayCanUses,
i);
addItemBehavior(32000 + Spray_Colors[i], behaviourSprayColor);
addItemBehavior(32000 + Spray_Colors_Used[i], behaviourSprayColor);
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
index 33cf67cfd5..f8777dcf58 100644
--- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
@@ -59,7 +59,6 @@ import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.TC_Aspects;
@@ -618,10 +617,6 @@ public class GT_MetaGenerated_Tool_01 extends GT_MetaGenerated_Tool {
}
private void initCraftingShapelessRecipes() {
- if (GregTech_API.sSpecialFile.get(ConfigCategories.general, "DisableFlintTools", false)) {
- return;
- }
-
GT_ModHandler.addShapelessCraftingRecipe(
GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L),
GT_ModHandler.RecipeBits.NOT_REMOVABLE,
@@ -718,37 +713,34 @@ public class GT_MetaGenerated_Tool_01 extends GT_MetaGenerated_Tool {
new Object[] { " S", " I ", "S f", 'I', OrePrefixes.ingot.get(Materials.IronWood), 'S',
OrePrefixes.stick.get(Materials.IronWood) });
- if (!GregTech_API.sSpecialFile.get(ConfigCategories.general, "DisableFlintTools", false)) {
- GT_ModHandler.addCraftingRecipe(
- INSTANCE.getToolWithStats(SWORD.ID, 1, Materials.Flint, Materials.Wood, null),
- GT_ModHandler.RecipeBits.NOT_REMOVABLE,
- new Object[] { "F", "F", "S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
- new ItemStack(Items.flint, 1) });
- GT_ModHandler.addCraftingRecipe(
- INSTANCE.getToolWithStats(PICKAXE.ID, 1, Materials.Flint, Materials.Wood, null),
- GT_ModHandler.RecipeBits.NOT_REMOVABLE,
- new Object[] { "FFF", " S ", " S ", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
- new ItemStack(Items.flint, 1) });
- GT_ModHandler.addCraftingRecipe(
- INSTANCE.getToolWithStats(SHOVEL.ID, 1, Materials.Flint, Materials.Wood, null),
- GT_ModHandler.RecipeBits.NOT_REMOVABLE,
- new Object[] { "F", "S", "S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
- new ItemStack(Items.flint, 1) });
- GT_ModHandler.addCraftingRecipe(
- INSTANCE.getToolWithStats(AXE.ID, 1, Materials.Flint, Materials.Wood, null),
- GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
- new Object[] { "FF", "FS", " S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
- new ItemStack(Items.flint, 1) });
- GT_ModHandler.addCraftingRecipe(
- INSTANCE.getToolWithStats(HOE.ID, 1, Materials.Flint, Materials.Wood, null),
- GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
- new Object[] { "FF", " S", " S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
- new ItemStack(Items.flint, 1) });
- GT_ModHandler.addCraftingRecipe(
- INSTANCE.getToolWithStats(KNIFE.ID, 1, Materials.Flint, Materials.Wood, null),
- GT_ModHandler.RecipeBits.NOT_REMOVABLE,
- new Object[] { "F", "S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
- new ItemStack(Items.flint, 1) });
- }
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(SWORD.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "F", "F", "S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(PICKAXE.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "FFF", " S ", " S ", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(SHOVEL.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "F", "S", "S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(AXE.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "FF", "FS", " S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(HOE.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "FF", " S", " S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(KNIFE.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "F", "S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F', new ItemStack(Items.flint, 1) });
}
}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java
index cbc698d474..216eb4d745 100644
--- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java
@@ -19,14 +19,13 @@ import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.implementations.tiles.IColorableTile;
import appeng.api.util.AEColor;
import appeng.block.networking.BlockCableBus;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.Dyes;
import gregtech.api.enums.SoundResource;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.items.GT_MetaBase_Item;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Utility;
+import gregtech.common.config.other.ConfigGeneral;
public class Behaviour_Spray_Color extends Behaviour_None {
@@ -96,7 +95,7 @@ public class Behaviour_Spray_Color extends Behaviour_None {
tUses = this.mUses;
}
int painted = 0;
- int maxPainted = GregTech_API.sSpecialFile.get(ConfigCategories.general, "SprayCanChainRange", 256);
+ int maxPainted = ConfigGeneral.sprayCanChainRange;
ForgeDirection lookSide;
Vec3 look = aPlayer.getLookVec();
double absX = Math.abs(look.xCoord);
@@ -208,10 +207,7 @@ public class Behaviour_Spray_Color extends Behaviour_None {
public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
aList.add(this.mTooltip);
aList.add(this.mTooltipChain);
- aList.add(
- String.format(
- this.mTooltipChainAmount,
- GregTech_API.sSpecialFile.get(ConfigCategories.general, "SprayCanChainRange", 256)));
+ aList.add(String.format(this.mTooltipChainAmount, ConfigGeneral.sprayCanChainRange));
NBTTagCompound tNBT = aStack.getTagCompound();
long tRemainingPaint = tNBT == null ? this.mUses
: GT_Utility.areStacksEqual(aStack, this.mFull, true) ? this.mUses : tNBT.getLong("GT.RemainingPaint");
diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java
index 4c7eb3ce38..b10b44228d 100644
--- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java
+++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java
@@ -1,7 +1,5 @@
package gregtech.common.tileentities.boilers;
-import static gregtech.api.GregTech_API.sMachineFile;
-import static gregtech.api.enums.ConfigCategories.machineconfig;
import static mcp.mobius.waila.api.SpecialChars.GOLD;
import static mcp.mobius.waila.api.SpecialChars.RESET;
@@ -28,6 +26,7 @@ import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
+import gregtech.common.config.machinestats.ConfigBronzeSolarBoiler;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
@@ -39,37 +38,28 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler {
"Steam Power by the Sun%n" + "Produces %sL of Steam per second%n"
+ "Calcifies over time, reducing Steam output to %sL/s%n"
+ "Break and replace to descale");
- protected final Config mConfig;
+ protected int calcificationTicks = ConfigBronzeSolarBoiler.calcificationTicks;
+ protected int cooldownTicks = ConfigBronzeSolarBoiler.cooldownTicks;
+ protected int maxOutputPerSecond = ConfigBronzeSolarBoiler.maxOutputPerSecond;
+ protected int minOutputPerSecond = ConfigBronzeSolarBoiler.minOutputPerSecond;
+
protected final int basicTemperatureMod = 5; // Base Celsius gain or loss
private int mRunTimeTicks = 0;
public GT_MetaTileEntity_Boiler_Solar(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional, new String[0]);
- mConfig = createConfig();
}
public GT_MetaTileEntity_Boiler_Solar(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
super(aName, aTier, aDescription, aTextures);
- mConfig = createConfig();
}
public GT_MetaTileEntity_Boiler_Solar(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
super(aName, aTier, aDescription, aTextures);
- mConfig = createConfig();
- }
-
- protected GT_MetaTileEntity_Boiler_Solar(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures,
- Config aConfig) {
- super(aName, aTier, aDescription, aTextures);
- mConfig = aConfig;
- }
-
- protected Config createConfig() {
- return new Config(machineconfig + ".boiler.solar.bronze", 1080000, 40, 120, 45);
}
public int getMaxOutputPerSecond() {
- return mConfig.getMaxOutputPerSecond();
+ return maxOutputPerSecond;
}
@Override
@@ -83,7 +73,7 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler {
}
public int getMinOutputPerSecond() {
- return mConfig.getMinOutputPerSecond();
+ return minOutputPerSecond;
}
@Override
@@ -159,21 +149,34 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler {
if (mTemperature < 100) {
return 0;
}
- if (mRunTimeTicks > mConfig.getMaxRuntimeTicks()) {
- return mConfig.getMinOutputPerSecond();
- } else if (mRunTimeTicks > mConfig.getCalcificationTicks()) {
+ if (mRunTimeTicks > getMaxRuntimeTicks()) {
+ return getMinOutputPerSecond();
+ } else if (mRunTimeTicks > getCalcificationTicks()) {
/*
* When reaching calcification ticks; discount the proportion of run-time spent on calcification from the
* maximum output per second, and return this or the minimum output per second
*/
- return mConfig.getMaxOutputPerSecond()
- - mConfig.getMaxOutputPerSecond() * (mRunTimeTicks - mConfig.getCalcificationTicks())
- / mConfig.getCalcificationTicks();
+ return getMaxOutputPerSecond()
+ - getMaxOutputPerSecond() * (mRunTimeTicks - getCalcificationTicks()) / getCalcificationTicks();
} else {
- return mConfig.getMaxOutputPerSecond();
+ return getMaxOutputPerSecond();
}
}
+ protected int getCalcificationTicks() {
+ return calcificationTicks;
+ }
+
+ protected int getCooldownTicks() {
+ return cooldownTicks;
+ }
+
+ protected int getMaxRuntimeTicks() {
+ // After which min output is reached.
+ return (getMaxOutputPerSecond() - getMinOutputPerSecond()) * getCalcificationTicks() / getMaxOutputPerSecond()
+ + getCalcificationTicks();
+ }
+
@Override
protected int getMaxTemperature() {
return 500;
@@ -186,7 +189,7 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler {
@Override
protected int getCooldownInterval() {
- return mConfig.getCoolDownTicks() / basicTemperatureMod;
+ return getCooldownTicks() / basicTemperatureMod;
}
@Override
@@ -272,7 +275,7 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler {
@Override
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_Boiler_Solar(mName, mTier, mDescriptionArray, mTextures, mConfig);
+ return new GT_MetaTileEntity_Boiler_Solar(mName, mTier, mDescriptionArray, mTextures);
}
@Override
@@ -305,64 +308,4 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler {
tag.setInteger("calcificationOutput", (getProductionPerSecond()));
tag.setInteger("maxCalcificationOutput", (getMaxOutputPerSecond()));
}
-
- protected static class Config {
-
- private final int calcificationTicks;
- private final int minOutputPerSecond;
- private final int maxOutputPerSecond;
- private final int coolDownTicks;
- private final int maxRuntimeTicks;
-
- public Config(String aCategory, int aDefaultCalcificationTicks, int aDefaultMinOutputPerSecond,
- int aDefaultMaxOutputPerSecond, int aDefaultCoolDownTicks) {
- calcificationTicks = get(
- aCategory,
- "CalcificationTicks",
- aDefaultCalcificationTicks,
- "Number of run-time ticks before boiler starts calcification.",
- "100% calcification and minimal output will be reached at 2 times this.");
- minOutputPerSecond = get(aCategory, "MinOutputPerSecond", aDefaultMinOutputPerSecond);
- maxOutputPerSecond = get(aCategory, "MaxOutputPerSecond", aDefaultMaxOutputPerSecond);
- coolDownTicks = get(
- aCategory,
- "CoolDownTicks",
- aDefaultCoolDownTicks,
- "Number of ticks it takes to lose 1°C.");
- // After which min output is reached.
- maxRuntimeTicks = (getMaxOutputPerSecond() - getMinOutputPerSecond()) * getCalcificationTicks()
- / getMaxOutputPerSecond() + getCalcificationTicks();
- }
-
- protected int get(final String aCategory, final String aKey, final int aDefaultValue,
- final String... aComments) {
- final StringBuilder tCommentBuilder = new StringBuilder();
- for (String tComment : aComments) tCommentBuilder.append(tComment)
- .append('\n');
- tCommentBuilder.append("Default: ")
- .append(aDefaultValue);
- return sMachineFile.mConfig.get(aCategory, aKey, aDefaultValue, tCommentBuilder.toString())
- .getInt();
- }
-
- public int getCalcificationTicks() {
- return calcificationTicks;
- }
-
- public int getMinOutputPerSecond() {
- return minOutputPerSecond;
- }
-
- public int getMaxOutputPerSecond() {
- return maxOutputPerSecond;
- }
-
- public int getCoolDownTicks() {
- return coolDownTicks;
- }
-
- public int getMaxRuntimeTicks() {
- return maxRuntimeTicks;
- }
- }
}
diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar_Steel.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar_Steel.java
index c20ea4018a..c537e388d1 100644
--- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar_Steel.java
+++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar_Steel.java
@@ -1,7 +1,5 @@
package gregtech.common.tileentities.boilers;
-import static gregtech.api.enums.ConfigCategories.machineconfig;
-
import gregtech.api.enums.Dyes;
import gregtech.api.enums.SteamVariant;
import gregtech.api.enums.Textures.BlockIcons;
@@ -9,31 +7,32 @@ import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.render.TextureFactory;
+import gregtech.common.config.machinestats.ConfigSteelSolarBoiler;
public class GT_MetaTileEntity_Boiler_Solar_Steel extends GT_MetaTileEntity_Boiler_Solar {
public GT_MetaTileEntity_Boiler_Solar_Steel(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
+ initBoilerStats();
}
public GT_MetaTileEntity_Boiler_Solar_Steel(String aName, int aTier, String aDescription,
ITexture[][][] aTextures) {
super(aName, aTier, aDescription, aTextures);
+ initBoilerStats();
}
public GT_MetaTileEntity_Boiler_Solar_Steel(String aName, int aTier, String[] aDescription,
ITexture[][][] aTextures) {
super(aName, aTier, aDescription, aTextures);
+ initBoilerStats();
}
- public GT_MetaTileEntity_Boiler_Solar_Steel(String aName, int aTier, String[] aDescription,
- ITexture[][][] aTextures, Config aConfig) {
- super(aName, aTier, aDescription, aTextures, aConfig);
- }
-
- @Override
- protected Config createConfig() {
- return new Config(machineconfig + ".boiler.solar.steel", 1080000, 120, 360, 75);
+ protected void initBoilerStats() {
+ calcificationTicks = ConfigSteelSolarBoiler.calcificationTicks;
+ cooldownTicks = ConfigSteelSolarBoiler.cooldownTicks;
+ maxOutputPerSecond = ConfigSteelSolarBoiler.maxOutputPerSecond;
+ minOutputPerSecond = ConfigSteelSolarBoiler.minOutputPerSecond;
}
@Override
@@ -67,11 +66,6 @@ public class GT_MetaTileEntity_Boiler_Solar_Steel extends GT_MetaTileEntity_Boil
@Override
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_Boiler_Solar_Steel(
- this.mName,
- this.mTier,
- this.mDescriptionArray,
- this.mTextures,
- this.mConfig);
+ return new GT_MetaTileEntity_Boiler_Solar_Steel(this.mName, this.mTier, this.mDescriptionArray, this.mTextures);
}
}
diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java
index 5047cb7624..10138bdfc2 100644
--- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java
+++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java
@@ -31,8 +31,6 @@ 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.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.ParticleFX;
import gregtech.api.interfaces.ITexture;
@@ -95,10 +93,7 @@ public class GT_MetaTileEntity_DieselGenerator extends GT_MetaTileEntity_BasicGe
}
public void onConfigLoad() {
- this.mEfficiency = GregTech_API.sMachineFile.get(
- ConfigCategories.machineconfig,
- "DieselGenerator.efficiency.tier." + this.mTier,
- (100 - this.mTier * 5));
+ this.mEfficiency = (100 - this.mTier * 5);
}
@Override
diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java
index e18bc00b51..ca0a5d6958 100644
--- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java
+++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java
@@ -25,8 +25,6 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAYS_ENERGY_OUT;
import net.minecraftforge.common.util.ForgeDirection;
import gregtech.GT_Mod;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
@@ -51,14 +49,12 @@ public class GT_MetaTileEntity_GasTurbine extends GT_MetaTileEntity_BasicGenerat
* GT_Mod.gregtechproxy.mPollutionGasTurbineReleasedByTier[aTier])
+ " Pollution per second" });
this.mEfficiency = mEfficiency;
- onConfigLoad();
}
public GT_MetaTileEntity_GasTurbine(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures,
int mEfficiency) {
super(aName, aTier, aDescription, aTextures);
this.mEfficiency = mEfficiency;
- onConfigLoad();
}
@Override
@@ -86,11 +82,6 @@ public class GT_MetaTileEntity_GasTurbine extends GT_MetaTileEntity_BasicGenerat
return 16000;
}
- public void onConfigLoad() {
- this.mEfficiency = GregTech_API.sMachineFile
- .get(ConfigCategories.machineconfig, "GasTurbine.efficiency.tier." + this.mTier, this.mEfficiency);
- }
-
@Override
public int getEfficiency() {
return this.mEfficiency;
diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java
index 7317180b5d..647aa504e5 100644
--- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java
+++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java
@@ -12,8 +12,6 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAYS_ENERGY_OUT;
import net.minecraftforge.common.util.ForgeDirection;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
@@ -68,10 +66,7 @@ public class GT_MetaTileEntity_MagicEnergyConverter extends GT_MetaTileEntity_Ba
}
public void onConfigLoad() {
- this.mEfficiency = GregTech_API.sMachineFile.get(
- ConfigCategories.machineconfig,
- "MagicEnergyConverter.efficiency.tier." + this.mTier,
- 100 - this.mTier * 5);
+ this.mEfficiency = 100 - this.mTier * 5;
}
@Override
diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java
index 8dc3417a84..3245607ac2 100644
--- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java
+++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java
@@ -1,6 +1,5 @@
package gregtech.common.tileentities.generators;
-import static gregtech.api.enums.ConfigCategories.machineconfig;
import static gregtech.api.enums.GT_Values.V;
import static gregtech.api.enums.Mods.Thaumcraft;
import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASING_DRAGONEGG;
@@ -52,7 +51,6 @@ import com.google.common.base.Enums;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-import gregtech.api.GregTech_API;
import gregtech.api.enums.ParticleFX;
import gregtech.api.enums.TC_Aspects;
import gregtech.api.interfaces.ITexture;
@@ -62,11 +60,11 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenera
import gregtech.api.recipe.RecipeMap;
import gregtech.api.recipe.RecipeMaps;
import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Config;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder;
+import gregtech.common.config.machinestats.ConfigMachines;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.AspectList;
import thaumcraft.api.aspects.AspectSourceHelper;
@@ -81,10 +79,9 @@ interface MagicalEnergyBBListener {
public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_BasicGenerator
implements MagicalEnergyBBListener {
- private static final boolean THAUMCRAFT_LOADED = Thaumcraft.isModLoaded();
private static final ConcurrentHashMap<UUID, GT_MetaTileEntity_MagicalEnergyAbsorber> sSubscribedCrystals = new ConcurrentHashMap<>(
4);
- private static final List<Aspect> sPrimalAspects = (THAUMCRAFT_LOADED) ? Aspect.getPrimalAspects()
+ private static final List<Aspect> sPrimalAspects = (Thaumcraft.isModLoaded()) ? Aspect.getPrimalAspects()
: new ArrayList<>();
private static final Map<Aspect, Integer> sAspectsEnergy = new HashMap<>();
private static boolean sAllowMultipleEggs = false;
@@ -103,28 +100,21 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
public GT_MetaTileEntity_MagicalEnergyAbsorber(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, "Feasts on magic close to it:");
- onConfigLoad(GregTech_API.sMachineFile);
+ onConfigLoad();
}
private GT_MetaTileEntity_MagicalEnergyAbsorber(String aName, int aTier, String[] aDescription,
ITexture[][][] aTextures) {
super(aName, aTier, aDescription, aTextures);
- onConfigLoad(GregTech_API.sMachineFile);
+ onConfigLoad();
}
/**
* Populates static variables dependant on config settings
- *
- * @param aConfig GT_Config
*/
- private static void sharedConfigLoad(GT_Config aConfig) {
- sAllowMultipleEggs = aConfig.get(machineconfig, "MagicEnergyAbsorber.AllowMultipleEggs", false);
- sDragonEggEnergyPerTick = aConfig.get(machineconfig, "MagicEnergyAbsorber.EnergyPerTick.DragonEgg", 2048);
- sCreeperEggEnergyPerTick = aConfig.get(machineconfig, "MagicEnergyAbsorber.EnergyPerTick.CreeperEgg", 512);
- sEnergyPerEndercrystal = aConfig.get(machineconfig, "MagicEnergyAbsorber.EnergyPerTick.EnderCrystal", 512);
- if (THAUMCRAFT_LOADED) {
- sEnergyFromVis = aConfig.get(machineconfig, "MagicEnergyAbsorber.EnergyPerVis", 20);
- sEnergyPerEssentia = aConfig.get(machineconfig, "MagicEnergyAbsorber.EnergyPerEssentia", 320);
+ private static void sharedConfigLoad() {
+ sAllowMultipleEggs = ConfigMachines.allowMultipleEggs;
+ if (Thaumcraft.isModLoaded()) {
for (Aspect tAspect : Aspect.aspects.values()) {
// noinspection UnstableApiUsage
sAspectsEnergy.put(
@@ -142,13 +132,11 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
sActiveSiphon = aSiphon;
}
- @Override
- public void onConfigLoad(GT_Config aConfig) {
- sharedConfigLoad(aConfig);
- mEfficiency = aConfig.get(machineconfig, "MagicEnergyAbsorber.efficiency.tier." + mTier, 100 - mTier * 10);
- mMaxVisPerDrain = (int) Math.round(
- Math.sqrt((double) (V[mTier] * 10000) / (sEnergyFromVis * (getEfficiency() != 0 ? getEfficiency() : 100))));
- if (Math.pow(mMaxVisPerDrain, 2) * sEnergyFromVis * (getEfficiency() != 0 ? getEfficiency() : 100) < V[mTier]) {
+ public void onConfigLoad() {
+ sharedConfigLoad();
+ mEfficiency = 100 - mTier * 10;
+ mMaxVisPerDrain = (int) Math.round(Math.sqrt((double) (V[mTier] * 10000) / (sEnergyFromVis * getEfficiency())));
+ if (Math.pow(mMaxVisPerDrain, 2) * sEnergyFromVis * getEfficiency() < V[mTier]) {
mMaxVisPerDrain += 1;
}
}
@@ -229,7 +217,7 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
if (sEnergyPerEndercrystal > 0) {
description.add(LI + sEnergyPerEndercrystal + EU_PER + LIGHT_PURPLE + "Ender Crystal" + GRAY + " in range");
}
- if (THAUMCRAFT_LOADED) {
+ if (Thaumcraft.isModLoaded()) {
description.add(LI + mMaxVisPerDrain + "%%%CV/t from an " + LIGHT_PURPLE + "Energised Node" + GRAY);
description.add(
LI + (sEnergyPerEssentia * getEfficiency()) / 100
@@ -561,7 +549,7 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
}
private long absorbFromVisNet() {
- if (!THAUMCRAFT_LOADED) return 0;
+ if (!Thaumcraft.isModLoaded()) return 0;
long tEU;
IGregTechTileEntity tBaseMetaTileEntity = getBaseMetaTileEntity();
@@ -584,7 +572,7 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
}
private long absorbFromEssentiaContainers() {
- if (!THAUMCRAFT_LOADED) return 0;
+ if (!Thaumcraft.isModLoaded()) return 0;
long tEU = 0;
@@ -666,7 +654,7 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
mMaxTier = Math.max(Math.max(aMaxTier, 0), Math.max(aDefaultTier, 0));
mDefaultTier = Math.min(aDefaultTier, mMaxTier);
mTier = mDefaultTier;
- if (THAUMCRAFT_LOADED) mAvailableAspects = new ArrayList<>(Aspect.aspects.size());
+ if (Thaumcraft.isModLoaded()) mAvailableAspects = new ArrayList<>(Aspect.aspects.size());
}
int getTier() {
@@ -734,7 +722,7 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
}
private void scanAvailableAspects() {
- if (!THAUMCRAFT_LOADED) return;
+ if (!Thaumcraft.isModLoaded()) return;
IGregTechTileEntity tBaseMetaTileEntity = mAbsorber.getBaseMetaTileEntity();
if (tBaseMetaTileEntity.isInvalidTileEntity()) return;
int tRange = getRange();
diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java
index ba5aaf4c64..1dd378e746 100644
--- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java
+++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java
@@ -23,8 +23,6 @@ import static gregtech.api.enums.Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_TOP_
import net.minecraftforge.common.util.ForgeDirection;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
@@ -43,7 +41,7 @@ public class GT_MetaTileEntity_NaquadahReactor extends GT_MetaTileEntity_BasicGe
if (aTier > 8 || aTier < 4) {
new Exception("Tier without Recipe Map!").printStackTrace();
}
- onConfigLoad();
+ mEfficiency = getBaseEff();
}
public GT_MetaTileEntity_NaquadahReactor(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
@@ -51,7 +49,7 @@ public class GT_MetaTileEntity_NaquadahReactor extends GT_MetaTileEntity_BasicGe
if (aTier > 8 || aTier < 4) {
new Exception("Tier without Recipe Map!").printStackTrace();
}
- onConfigLoad();
+ mEfficiency = getBaseEff();
}
@Override
@@ -89,18 +87,13 @@ public class GT_MetaTileEntity_NaquadahReactor extends GT_MetaTileEntity_BasicGe
@Override
public int getEfficiency() {
- return mEfficiency == 0 ? onConfigLoad() : mEfficiency;
+ return mEfficiency;
}
private int getBaseEff() {
return mTier == 4 ? 80 : 100 + (50 * (mTier - 5));
}
- public int onConfigLoad() {
- return mEfficiency = GregTech_API.sMachineFile
- .get(ConfigCategories.machineconfig, "SolidNaquadah.efficiency.tier." + mTier, getBaseEff());
- }
-
@Override
public ITexture[] getFront(byte aColor) {
return new ITexture[] { super.getFront(aColor)[0],
diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java
index 603c1439ba..fa980ce480 100644
--- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java
+++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java
@@ -7,8 +7,6 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAYS_ENERGY_OUT;
import net.minecraftforge.common.util.ForgeDirection;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
@@ -23,17 +21,17 @@ public class GT_MetaTileEntity_PlasmaGenerator extends GT_MetaTileEntity_BasicGe
public GT_MetaTileEntity_PlasmaGenerator(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, "Plasma into energy");
- onConfigLoad();
+ setEfficiency();
}
public GT_MetaTileEntity_PlasmaGenerator(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
super(aName, aTier, aDescription, aTextures);
- onConfigLoad();
+ setEfficiency();
}
public GT_MetaTileEntity_PlasmaGenerator(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
super(aName, aTier, aDescription, aTextures);
- onConfigLoad();
+ setEfficiency();
}
@Override
@@ -133,11 +131,8 @@ public class GT_MetaTileEntity_PlasmaGenerator extends GT_MetaTileEntity_BasicGe
return new GT_MetaTileEntity_PlasmaGenerator(this.mName, this.mTier, this.mDescriptionArray, this.mTextures);
}
- public void onConfigLoad() {
- this.mEfficiency = GregTech_API.sMachineFile.get(
- ConfigCategories.machineconfig,
- "PlasmaGenerator.efficiency.tier." + this.mTier,
- Math.max(10, 10 + Math.min(90, this.mTier * 10)));
+ public void setEfficiency() {
+ this.mEfficiency = Math.max(10, 10 + Math.min(90, this.mTier * 10));
}
@Override
diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java
index 3c9a89815a..9c1b8db562 100644
--- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java
+++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java
@@ -25,8 +25,6 @@ import static gregtech.api.enums.Textures.BlockIcons.STEAM_TURBINE_TOP_GLOW;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
@@ -46,17 +44,17 @@ public class GT_MetaTileEntity_SteamTurbine extends GT_MetaTileEntity_BasicGener
aNameRegional,
aTier,
new String[] { "Converts Steam into EU", "Base rate: 2L of Steam -> 1 EU" });
- onConfigLoad();
+ this.mEfficiency = 6 + this.mTier;
}
public GT_MetaTileEntity_SteamTurbine(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
super(aName, aTier, aDescription, aTextures);
- onConfigLoad();
+ this.mEfficiency = 6 + this.mTier;
}
public GT_MetaTileEntity_SteamTurbine(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
super(aName, aTier, aDescription, aTextures);
- onConfigLoad();
+ this.mEfficiency = 6 + this.mTier;
}
@Override
@@ -90,11 +88,6 @@ public class GT_MetaTileEntity_SteamTurbine extends GT_MetaTileEntity_BasicGener
return 24000 * this.mTier;
}
- public void onConfigLoad() {
- this.mEfficiency = GregTech_API.sMachineFile
- .get(ConfigCategories.machineconfig, "SteamTurbine.efficiency.tier." + this.mTier, 6 + this.mTier);
- }
-
@Override
public int getEfficiency() {
return this.mEfficiency;
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java
index ef0914f6a4..7eaa8122c1 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java
@@ -26,7 +26,6 @@ import net.minecraftforge.fluids.FluidStack;
import com.google.common.primitives.Ints;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.MachineType;
import gregtech.api.enums.Materials;
@@ -39,11 +38,11 @@ import gregtech.api.objects.overclockdescriber.OverclockDescriber;
import gregtech.api.recipe.RecipeMap;
import gregtech.api.recipe.RecipeMaps;
import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Config;
import gregtech.api.util.GT_OverclockCalculator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.config.machinestats.ConfigMassFabricator;
public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMachine {
@@ -135,13 +134,12 @@ public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMac
}
@Override
- public void onConfigLoad(GT_Config aConfig) {
- super.onConfigLoad(aConfig);
- sDurationMultiplier = aConfig
- .get(ConfigCategories.machineconfig, "Massfabricator.UUM_Duration_Multiplier", sDurationMultiplier);
- sUUAperUUM = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUA_per_UUM", sUUAperUUM);
- sUUASpeedBonus = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUA_Speed_Bonus", sUUASpeedBonus);
- sRequiresUUA = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUA_Requirement", sRequiresUUA);
+ public void onConfigLoad() {
+ super.onConfigLoad();
+ sDurationMultiplier = ConfigMassFabricator.durationMultiplier;
+ sUUAperUUM = ConfigMassFabricator.UUAPerUUM;
+ sUUASpeedBonus = ConfigMassFabricator.UUASpeedBonus;
+ sRequiresUUA = ConfigMassFabricator.requiresUUA;
Materials.UUAmplifier.mChemicalFormula = ("Mass Fabricator Eff/Speed Bonus: x" + sUUASpeedBonus);
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MicrowaveEnergyTransmitter.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MicrowaveEnergyTransmitter.java
index aa8616e03d..575e98c5c6 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MicrowaveEnergyTransmitter.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MicrowaveEnergyTransmitter.java
@@ -28,7 +28,6 @@ import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
import com.gtnewhorizons.modularui.common.widget.TextWidget;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.Materials;
import gregtech.api.gui.modularui.GT_UIInfos;
import gregtech.api.gui.modularui.GT_UITextures;
@@ -42,8 +41,9 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank;
import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Config;
import gregtech.api.util.GT_Utility;
+import gregtech.common.config.machinestats.ConfigMicrowaveEnergyTransmitter;
+import gregtech.common.config.machinestats.ConfigTeleporter;
public class GT_MetaTileEntity_MicrowaveEnergyTransmitter extends GT_MetaTileEntity_BasicTank
implements IAddGregtechLogo, IAddUIWidgets {
@@ -154,12 +154,11 @@ public class GT_MetaTileEntity_MicrowaveEnergyTransmitter extends GT_MetaTileEnt
}
@Override
- public void onConfigLoad(GT_Config aConfig) {
- sInterDimensionalTeleportAllowed = aConfig
- .get(ConfigCategories.machineconfig, "Teleporter.Interdimensional", true);
- mMaxLoss = Math.max(aConfig.get(ConfigCategories.machineconfig, "MicrowaveTransmitter.MaxLoss", 50), 11);
- mMaxLossDistance = aConfig.get(ConfigCategories.machineconfig, "MicrowaveTransmitter.MaxLossDistance", 10000);
- mPassiveEnergyUse = aConfig.get(ConfigCategories.machineconfig, "MicrowaveTransmitter.PassiveEnergy", true);
+ public void onConfigLoad() {
+ sInterDimensionalTeleportAllowed = ConfigTeleporter.interDimensionalTPAllowed;
+ mMaxLoss = Math.max(ConfigMicrowaveEnergyTransmitter.maxLoss, 11);
+ mMaxLossDistance = ConfigMicrowaveEnergyTransmitter.maxLossDistance;
+ mPassiveEnergyUse = ConfigMicrowaveEnergyTransmitter.passiveEnergyUse;
}
@Override
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java
index 1c95ee563d..9de00b4a0e 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java
@@ -50,7 +50,6 @@ import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
import com.gtnewhorizons.modularui.common.widget.TextWidget;
-import gregtech.api.enums.ConfigCategories;
import gregtech.api.gui.modularui.GT_UIInfos;
import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.gui.modularui.GUITextureSet;
@@ -61,8 +60,8 @@ import gregtech.api.interfaces.modularui.IAddUIWidgets;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank;
import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Config;
import gregtech.api.util.GT_Utility;
+import gregtech.common.config.machinestats.ConfigTeleporter;
public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_BasicTank
implements IAddGregtechLogo, IAddUIWidgets {
@@ -246,12 +245,10 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_BasicTank
}
@Override
- public void onConfigLoad(GT_Config aConfig) {
- sInterDimensionalTeleportAllowed = aConfig
- .get(ConfigCategories.machineconfig, "Teleporter.Interdimensional", true);
- sPassiveEnergyDrain = aConfig
- .get(ConfigCategories.machineconfig, "Teleporter.PassiveDrain", sPassiveEnergyDrain);
- sPowerMultiplyer = aConfig.get(ConfigCategories.machineconfig, "Teleporter.PowerMultipler", sPowerMultiplyer);
+ public void onConfigLoad() {
+ sInterDimensionalTeleportAllowed = ConfigTeleporter.interDimensionalTPAllowed;
+ sPassiveEnergyDrain = ConfigTeleporter.passiveEnergyDrain;
+ sPowerMultiplyer = ConfigTeleporter.powerMultiplier;
sFPowerMultiplyer = sPowerMultiplyer / 100.0;
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java
index cd31b9cc1e..b0b9cdd078 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java
@@ -470,6 +470,7 @@ public class GT_MetaTileEntity_Cleanroom extends GT_MetaTileEntity_TooltipMultiB
cfg.get("cleanroom_allowed_blocks.warded_glass", "Name", "tile.blockCosmeticOpaque");
cfg.get("cleanroom_allowed_blocks.warded_glass", "Meta", 2);
cfg.get("cleanroom_allowed_blocks.warded_glass", "Percentage", 50);
+ cfg.save();
}
public static void loadConfig(Configuration cfg) {