aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/GoodGenerator
diff options
context:
space:
mode:
authorGlodBlock <60341015+GlodBlock@users.noreply.github.com>2021-12-03 20:53:22 +0800
committerGitHub <noreply@github.com>2021-12-03 20:53:22 +0800
commit3c7b1b789fffcc866dc21768bc731ed338884682 (patch)
treed76dc9c1b6d94eeec08c26f7b517933e70e33b3e /src/main/java/GoodGenerator
parent938884d89ca45e1ad851fa817fc4d2432b3f0f00 (diff)
parent06cac63657f40c489477abe923ea3f144fe6749c (diff)
downloadGT5-Unofficial-3c7b1b789fffcc866dc21768bc731ed338884682.tar.gz
GT5-Unofficial-3c7b1b789fffcc866dc21768bc731ed338884682.tar.bz2
GT5-Unofficial-3c7b1b789fffcc866dc21768bc731ed338884682.zip
Merge pull request #10 from GTNewHorizons/LEG-rework
rework LEG
Diffstat (limited to 'src/main/java/GoodGenerator')
-rw-r--r--src/main/java/GoodGenerator/Blocks/RegularBlock/TEBlock.java15
-rw-r--r--src/main/java/GoodGenerator/Blocks/TEs/EssentiaHatch.java15
-rw-r--r--src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java2
-rw-r--r--src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java303
-rw-r--r--src/main/java/GoodGenerator/CrossMod/NEI/IMCForNEI.java1
-rw-r--r--src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java5
-rw-r--r--src/main/java/GoodGenerator/CrossMod/Thaumcraft/LargeEssentiaEnergyData.java124
-rw-r--r--src/main/java/GoodGenerator/CrossMod/Thaumcraft/Research.java481
-rw-r--r--src/main/java/GoodGenerator/Items/MyItemBlocks.java9
-rw-r--r--src/main/java/GoodGenerator/Loader/Loaders.java15
-rw-r--r--src/main/java/GoodGenerator/Loader/NeutronActivatorLoader.java4
-rw-r--r--src/main/java/GoodGenerator/Main/GG_Config_Loader.java4
-rw-r--r--src/main/java/GoodGenerator/util/CharExchanger.java16
-rw-r--r--src/main/java/GoodGenerator/util/ItemRefer.java26
-rw-r--r--src/main/java/GoodGenerator/util/StructureHelper.java3
15 files changed, 926 insertions, 97 deletions
diff --git a/src/main/java/GoodGenerator/Blocks/RegularBlock/TEBlock.java b/src/main/java/GoodGenerator/Blocks/RegularBlock/TEBlock.java
index ffea651383..d549a82a4c 100644
--- a/src/main/java/GoodGenerator/Blocks/RegularBlock/TEBlock.java
+++ b/src/main/java/GoodGenerator/Blocks/RegularBlock/TEBlock.java
@@ -5,6 +5,7 @@ import GoodGenerator.Main.GoodGenerator;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTech_API;
+import gregtech.api.util.GT_Utility;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
@@ -17,8 +18,10 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.IEssentiaContainerItem;
import java.util.List;
@@ -151,10 +154,16 @@ public class TEBlock extends BlockContainer {
ItemStack tItemStack = player.getHeldItem();
if (tItemStack != null) {
Item tItem = tItemStack.getItem();
- if (tItem instanceof IEssentiaContainerItem)
- ((EssentiaHatch) tile).setLockedAspect(((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()).getAspects()[0]);
+ if (tItem instanceof IEssentiaContainerItem && ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()) != null && ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()).size() > 0) {
+ Aspect tLocked = ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()).getAspects()[0];
+ ((EssentiaHatch) tile).setLockedAspect(tLocked);
+ GT_Utility.sendChatToPlayer(player, String.format(StatCollector.translateToLocal("essentiahatch.chat.0"), tLocked.getLocalizedDescription()));
+ }
+ }
+ else {
+ ((EssentiaHatch) tile).setLockedAspect(null);
+ GT_Utility.sendChatToPlayer(player, StatCollector.translateToLocal("essentiahatch.chat.1"));
}
- else ((EssentiaHatch) tile).setLockedAspect(null);
world.markBlockForUpdate(x, y, z);
return true;
}
diff --git a/src/main/java/GoodGenerator/Blocks/TEs/EssentiaHatch.java b/src/main/java/GoodGenerator/Blocks/TEs/EssentiaHatch.java
index 13843ecb77..c173cb7982 100644
--- a/src/main/java/GoodGenerator/Blocks/TEs/EssentiaHatch.java
+++ b/src/main/java/GoodGenerator/Blocks/TEs/EssentiaHatch.java
@@ -1,5 +1,7 @@
package GoodGenerator.Blocks.TEs;
+import GoodGenerator.CrossMod.Thaumcraft.LargeEssentiaEnergyData;
+import gregtech.api.util.GT_Log;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.NetworkManager;
@@ -18,8 +20,8 @@ import java.util.ArrayList;
public class EssentiaHatch extends TileEntity implements IAspectContainer, IEssentiaTransport {
private Aspect mLocked;
-
private AspectList current = new AspectList();
+ public int mState = 0;
public void setLockedAspect(Aspect aAspect) {
this.mLocked = aAspect;
@@ -30,7 +32,7 @@ public class EssentiaHatch extends TileEntity implements IAspectContainer, IEsse
super.readFromNBT(tagCompound);
this.mLocked = Aspect.getAspect(tagCompound.getString("mLocked"));
-
+ this.mState = tagCompound.getInteger("mState");
current = new AspectList();
NBTTagList tlist = tagCompound.getTagList("Aspects", 10);
for (int j = 0; j < tlist.tagCount(); ++j) {
@@ -46,7 +48,7 @@ public class EssentiaHatch extends TileEntity implements IAspectContainer, IEsse
super.writeToNBT(tagCompound);
tagCompound.setString("mLocked", this.mLocked == null ? "" : this.mLocked.getTag());
-
+ tagCompound.setInteger("mState", mState);
NBTTagList tlist = new NBTTagList();
Aspect[] aspectA = current.getAspects();
for (Aspect aspect : aspectA) {
@@ -85,6 +87,8 @@ public class EssentiaHatch extends TileEntity implements IAspectContainer, IEsse
}
public void fillfrompipe() {
+ if (getEssentiaAmount(null) > 1000)
+ return;
TileEntity[] te = new TileEntity[ForgeDirection.VALID_DIRECTIONS.length];
for (int i = 0; i < ForgeDirection.VALID_DIRECTIONS.length; i++) {
te[i] = ThaumcraftApiHelper.getConnectableTile(this.worldObj, this.xCoord, this.yCoord, this.zCoord, ForgeDirection.VALID_DIRECTIONS[i]);
@@ -94,7 +98,10 @@ public class EssentiaHatch extends TileEntity implements IAspectContainer, IEsse
return;
}
if ((pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i].getOpposite()) != null) && (pipe.getSuctionAmount(ForgeDirection.VALID_DIRECTIONS[i]) < getSuctionAmount(ForgeDirection.VALID_DIRECTIONS[i]))) {
- if (mLocked != null && pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i].getOpposite()) == mLocked) {
+ Aspect readyInput = pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i].getOpposite());
+ int type = LargeEssentiaEnergyData.getAspectTypeIndex(readyInput);
+ if (type != -1 && (mState & (1 << type)) == 0) continue;
+ if (readyInput.equals(mLocked)) {
addToContainer(mLocked, pipe.takeEssentia(mLocked, 1, ForgeDirection.VALID_DIRECTIONS[i]));
}
if (mLocked == null)
diff --git a/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java b/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java
index a4f448af35..69d6990153 100644
--- a/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java
+++ b/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java
@@ -69,7 +69,7 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple
@Override
public void construct(ItemStack itemStack, boolean hintsOnly) {
- structureBuild_EM(mName, 7,12,1, hintsOnly, itemStack);
+ structureBuild_EM(mName, 7, 12, 1, hintsOnly, itemStack);
}
@Override
diff --git a/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java b/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java
index 084d56b32a..c887496e6b 100644
--- a/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java
+++ b/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java
@@ -1,7 +1,11 @@
package GoodGenerator.Blocks.TEs;
+import GoodGenerator.CrossMod.Thaumcraft.LargeEssentiaEnergyData;
+import GoodGenerator.Items.MyMaterial;
import GoodGenerator.Loader.Loaders;
import GoodGenerator.util.DescTextLocalization;
+import GoodGenerator.util.ItemRefer;
+import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
@@ -10,20 +14,24 @@ import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEnt
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
-import gregtech.api.enums.TC_Aspects;
+import gregtech.api.enums.Materials;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.*;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.objects.XSTR;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import net.minecraftforge.fluids.FluidRegistry;
import org.lwjgl.input.Keyboard;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.AspectList;
@@ -36,12 +44,14 @@ import static GoodGenerator.util.DescTextLocalization.BLUE_PRINT_INFO;
import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
import static gregtech.api.util.GT_StructureUtility.ofHatchAdder;
-public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable {
+public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable {
private IStructureDefinition<LargeEssentiaGenerator> multiDefinition = null;
- protected final int ENERGY_PER_ESSENTIA_DEFAULT = 8192;
protected int mStableValue = 0;
+ protected int mTierLimit = -1;
protected long mLeftEnergy;
+ private int mUpgrade = 1;
+ final XSTR R = new XSTR();
protected ArrayList<EssentiaHatch> mEssentiaHatch = new ArrayList<>();
public LargeEssentiaGenerator(String name){
@@ -53,21 +63,6 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
}
@Override
- public List<GT_MetaTileEntity_Hatch_Energy> getVanillaEnergyHatches() {
- return this.mEnergyHatches;
- }
-
- @Override
- public List<GT_MetaTileEntity_Hatch_EnergyTunnel> getTecTechEnergyTunnels() {
- return new ArrayList<>();
- }
-
- @Override
- public List<GT_MetaTileEntity_Hatch_EnergyMulti> getTecTechEnergyMultis() {
- return new ArrayList<>();
- }
-
- @Override
public void construct(ItemStack itemStack, boolean b) {
structureBuild_EM(mName, 4, 0, 4, b, itemStack);
}
@@ -75,7 +70,22 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
@Override
public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
mStableValue = 0;
- return structureCheck_EM(mName, 4, 0, 4) && (mDynamoHatches.size() + eDynamoMulti.size()) == 1;
+ mEssentiaHatch.clear();
+ return structureCheck_EM(mName, 4, 0, 4) && (mDynamoHatches.size() + eDynamoMulti.size()) == 1
+ && checkHatchTier() && updateEssentiaHatchState();
+ }
+
+ public boolean checkHatchTier() {
+ for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) {
+ if (tHatch.mTier > mTierLimit) return false;
+ }
+ for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) {
+ if (tHatch.mTier > mTierLimit) return false;
+ }
+ for (GT_MetaTileEntity_Hatch_DynamoMulti tHatch : eDynamoMulti) {
+ if (tHatch.mTier > mTierLimit) return false;
+ }
+ return true;
}
@Override
@@ -83,6 +93,7 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
super.loadNBTData(aNBT);
this.mStableValue = aNBT.getInteger("mStableValue");
this.mLeftEnergy = aNBT.getLong("mLeftEnergy");
+ this.mUpgrade = aNBT.getInteger("mUpgrade");
}
@Override
@@ -90,26 +101,14 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
super.saveNBTData(aNBT);
aNBT.setInteger("mStableValue", this.mStableValue);
aNBT.setLong("mLeftEnergy", this.mLeftEnergy);
+ aNBT.setInteger("mUpgrade", this.mUpgrade);
}
- public void getEssentiaHatch() {
- IGregTechTileEntity aTileEntity = getBaseMetaTileEntity();
- if (aTileEntity == null) return;
- mEssentiaHatch.clear();
- TileEntity hatch = aTileEntity.getTileEntityOffset(4,-2, 0);
- addEssentiaHatch(hatch);
- hatch = aTileEntity.getTileEntityOffset(-4,-2, 0);
- addEssentiaHatch(hatch);
- hatch = aTileEntity.getTileEntityOffset(0,-2, 4);
- addEssentiaHatch(hatch);
- hatch = aTileEntity.getTileEntityOffset(0,-2, -4);
- addEssentiaHatch(hatch);
- }
-
- public void addEssentiaHatch(TileEntity aHatch) {
- if (aHatch instanceof EssentiaHatch) {
- mEssentiaHatch.add((EssentiaHatch) aHatch);
+ public boolean updateEssentiaHatchState() {
+ for (EssentiaHatch hatch : mEssentiaHatch) {
+ hatch.mState = mUpgrade;
}
+ return true;
}
@Override
@@ -123,6 +122,25 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
}
@Override
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ if (this.getBaseMetaTileEntity().isServerSide()) {
+ ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem();
+ if (tCurrentItem != null && tCurrentItem.getItem().equals(ItemRefer.Essentia_Upgrade_Empty.get(1).getItem())) {
+ int tMeta = tCurrentItem.getItemDamage();
+ if ((mUpgrade & (1 << tMeta)) == 0 && tMeta != 0) {
+ tCurrentItem.stackSize --;
+ mUpgrade = mUpgrade | (1 << tMeta);
+ GT_Utility.sendChatToPlayer(aPlayer, tCurrentItem.getDisplayName() + StatCollector.translateToLocal("largeessentiagenerator.chat"));
+ }
+ updateEssentiaHatchState();
+ return true;
+ }
+ }
+ super.onRightclick(aBaseMetaTileEntity, aPlayer);
+ return true;
+ }
+
+ @Override
public IStructureDefinition<LargeEssentiaGenerator> getStructure_EM() {
if(multiDefinition == null) {
multiDefinition = StructureDefinition
@@ -152,22 +170,28 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
'E',
ofChain(
onElementPass(
- x -> ++x.mStableValue,
+ x -> {++x.mStableValue; x.mTierLimit = Math.max(x.mTierLimit, 3);},
ofBlock(
Loaders.essentiaCell, 0
)
),
onElementPass(
- x -> x.mStableValue += 2,
+ x -> {x.mStableValue += 2; x.mTierLimit = Math.max(x.mTierLimit, 4);},
ofBlock(
Loaders.essentiaCell, 1
)
),
onElementPass(
- x -> x.mStableValue += 5,
+ x -> {x.mStableValue += 5; x.mTierLimit = Math.max(x.mTierLimit, 5);},
ofBlock(
Loaders.essentiaCell, 2
)
+ ),
+ onElementPass(
+ x -> {x.mStableValue += 10; x.mTierLimit = Math.max(x.mTierLimit, 6);},
+ ofBlock(
+ Loaders.essentiaCell, 3
+ )
)
)
).addElement(
@@ -180,8 +204,8 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
ofBlock(
Loaders.magicCasing, 0
),
- ofBlock(
- Loaders.essentiaHatch, 0
+ ofTileAdder(
+ LargeEssentiaGenerator::addEssentiaHatch, Loaders.magicCasing, 0
)
)
)
@@ -190,6 +214,13 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
return multiDefinition;
}
+ public final boolean addEssentiaHatch(TileEntity aTileEntity) {
+ if (aTileEntity instanceof EssentiaHatch) {
+ return this.mEssentiaHatch.add((EssentiaHatch) aTileEntity);
+ }
+ return false;
+ }
+
public final boolean addLargeEssentiaGeneratorList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
if (aTileEntity == null) {
return false;
@@ -216,7 +247,6 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
public boolean checkRecipe_EM(ItemStack aStack) {
this.mEfficiency = 10000;
this.mMaxProgresstime = 1;
- getEssentiaHatch();
setEssentiaToEUVoltageAndAmp(getVoltageLimit(), getAmpLimit());
return true;
}
@@ -246,18 +276,175 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
}
public long getPerAspectEnergy(Aspect aspect) {
- if (aspect.equals(Aspect.ENERGY)) return 45000 * mStableValue / 25;
- if (aspect.equals(Aspect.FIRE)) return 30000 * mStableValue / 25;
- if (aspect.equals(Aspect.GREED)) return 130000 * mStableValue / 25;
- if (aspect.equals(Aspect.AURA)) return 120000 * mStableValue / 25;
- if (aspect.equals(Aspect.TREE)) return 25000 * mStableValue / 25;
- if (aspect.equals(Aspect.AIR)) return 13000 * mStableValue / 25;
- if (aspect.equals(Aspect.MAGIC)) return 92000 * mStableValue / 25;
- if (aspect.equals(Aspect.MECHANISM)) return 40000 * mStableValue / 25;
- if (aspect.equals(TC_Aspects.ELECTRUM.mAspect)) return 131072 * mStableValue / 25;
- if (aspect.equals(TC_Aspects.RADIO.mAspect)) return 524288 * mStableValue / 25;
+ int type = LargeEssentiaEnergyData.getAspectTypeIndex(aspect);
+ if (!isValidEssentia(aspect)) return 0;
+ switch (type) {
+ case 0: return normalEssentia(aspect);
+ case 1: return airEssentia(aspect);
+ case 2: return thermalEssentia(aspect);
+ case 3: return unstableEssentia(aspect);
+ case 4: return victusEssentia(aspect);
+ case 5: return taintedEssentia(aspect);
+ case 6: return mechanicEssentia(aspect);
+ case 7: return spiritEssentia(aspect);
+ case 8: return radiationEssentia(aspect);
+ case 9: return electricEssentia(aspect);
+ default: return 0;
+ }
+ }
- return ENERGY_PER_ESSENTIA_DEFAULT * mStableValue / 25;
+ public long normalEssentia(Aspect aspect) {
+ return LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ }
+
+ public long airEssentia(Aspect aspect) {
+ long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ double ceoOutput = 0;
+ int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 8;
+ if (depleteInput(Materials.LiquidAir.getFluid(ceoInput))) {
+ ceoOutput = 1.5D;
+ }
+ else if (depleteInput(Materials.Air.getGas(ceoInput))){
+ ceoOutput = 1.0D;
+ }
+ return (long) (baseValue * ceoOutput);
+ }
+
+ public long thermalEssentia(Aspect aspect) {
+ long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ double ceoOutput = 0;
+ int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 2;
+ if (depleteInput(FluidRegistry.getFluidStack("cryotheum", ceoInput))) {
+ ceoOutput = 9.0D;
+ }
+ else if (depleteInput(Materials.SuperCoolant.getFluid(ceoInput))) {
+ ceoOutput = 5.0D;
+ }
+ else if (depleteInput(FluidRegistry.getFluidStack("ic2coolant", ceoInput))) {
+ ceoOutput = 1.5D;
+ }
+ else if (depleteInput(Materials.Ice.getSolid(ceoInput))) {
+ ceoOutput = 1.2D;
+ }
+ else if (depleteInput(FluidRegistry.getFluidStack("ic2distilledwater", ceoInput))){
+ ceoOutput = 1.0D;
+ }
+ else if (depleteInput(Materials.Water.getFluid(ceoInput))) {
+ ceoOutput = 0.5D;
+ }
+
+ return (long) (baseValue * ceoOutput);
+ }
+
+ public long unstableEssentia(Aspect aspect) {
+ long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ double ceoOutput = 0;
+ int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 4;
+ if (depleteInput(WerkstoffLoader.Xenon.getFluidOrGas(ceoInput))){
+ ceoOutput = 4.0D;
+ }
+ else if (depleteInput(WerkstoffLoader.Krypton.getFluidOrGas(ceoInput))){
+ ceoOutput = 3.0D;
+ }
+ else if (depleteInput(Materials.Argon.getFluid(ceoInput))){
+ ceoOutput = 2.5D;
+ }
+ else if (depleteInput(WerkstoffLoader.Neon.getFluidOrGas(ceoInput))){
+ ceoOutput = 2.2D;
+ }
+ else if (depleteInput(Materials.Helium.getFluid(ceoInput))){
+ ceoOutput = 2.0D;
+ }
+ else if (depleteInput(Materials.Nitrogen.getFluid(ceoInput))){
+ ceoOutput = 1.0D;
+ }
+ return (long) (baseValue * ceoOutput);
+ }
+
+ public long victusEssentia(Aspect aspect) {
+ long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ double ceoOutput = 1.0D;
+ int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 18;
+ if (depleteInput(FluidRegistry.getFluidStack("xpjuice", ceoInput))) {
+ ceoOutput = 2.0D;
+ }
+ else if (depleteInput(FluidRegistry.getFluidStack("lifeessence", ceoInput))){
+ ceoOutput = 6.0D;
+ }
+ return (long) (baseValue * ceoOutput);
+ }
+
+ public long taintedEssentia(Aspect aspect) {
+ long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ double ceoOutput = 1.0D;
+ int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 3;
+ int chance = 2000;
+ if (depleteInput(FluidRegistry.getFluidStack("fluidpure", ceoInput))) {
+ ceoOutput = 60.0D;
+ chance = 0;
+ }
+ else if (depleteInput(FluidRegistry.getFluidStack("fluiddeath", ceoInput))){
+ ceoOutput = Math.pow(25000D / baseValue, 4);
+ chance = 4000;
+ }
+
+ if (R.nextInt(10000) < chance) {
+ World world = getBaseMetaTileEntity().getWorld();
+ int tX = R.nextInt(4);
+ int tZ = R.nextInt(4);
+ if (world.isAirBlock(tX, 0, tZ))
+ world.setBlock(tX, 0, tZ, ConfigBlocks.blockFluxGas, R.nextInt(8), 3);
+ }
+
+ return (long) (baseValue * ceoOutput);
+ }
+
+ public long mechanicEssentia(Aspect aspect) {
+ long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ double ceoOutput = 0;
+ int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 20;
+ if (depleteInput(Materials.Lubricant.getFluid(ceoInput))) {
+ ceoOutput = 1.0D;
+ }
+ return (long) (baseValue * ceoOutput);
+ }
+
+ public long spiritEssentia(Aspect aspect) {
+ long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ double ceoOutput = 1.0D;
+ int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 2;
+ if (depleteInput(FluidRegistry.getFluidStack("witchery:fluidspirit", ceoInput))) {
+ ceoOutput = 10D * (1 + mStableValue / 100D);
+ }
+ else if (depleteInput(FluidRegistry.getFluidStack("witchery:hollowtears", ceoInput))) {
+ ceoOutput = 15D * (1 + 100D / mStableValue);
+ }
+ return (long) (baseValue * ceoOutput);
+ }
+
+ public long radiationEssentia(Aspect aspect) {
+ long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ double ceoOutput = 1.0D;
+ int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 6;
+ if (depleteInput(Materials.Caesium.getMolten(ceoInput))) {
+ ceoOutput = 2.0D;
+ }
+ else if (depleteInput(Materials.Uranium235.getMolten(ceoInput))) {
+ ceoOutput = 3.0D;
+ }
+ else if (depleteInput(Materials.Naquadah.getMolten(ceoInput))) {
+ ceoOutput = 4.0D;
+ }
+ else if (depleteInput(MyMaterial.atomicSeparationCatalyst.getMolten(ceoInput))) {
+ ceoOutput = 16.0D;
+ }
+ return (long) (baseValue * ceoOutput);
+ }
+
+ public long electricEssentia(Aspect aspect) {
+ long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect);
+ double ceoOutput = Math.pow(3.0, GT_Utility.getTier(getVoltageLimit()));
+ return (long) (baseValue * ceoOutput);
}
public void setEssentiaToEUVoltageAndAmp(long voltageLimit, long ampLimit) {
@@ -267,6 +454,7 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
for (EssentiaHatch hatch: this.mEssentiaHatch){
AspectList aspects = hatch.getAspects();
for (Aspect aspect: aspects.aspects.keySet()) {
+ if (!isValidEssentia(aspect) || getPerAspectEnergy(aspect) == 0) continue;
while (EUt <= (voltageLimit * ampLimit) && aspects.getAmount(aspect) > 0) {
EUt += getPerAspectEnergy(aspect);
aspects.reduce(aspect, 1);
@@ -275,6 +463,7 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
}
}
if (EUt == 0 && aspects.size() != 0) {
+ if (!isValidEssentia(aspects.getAspects()[0]) || getPerAspectEnergy(aspects.getAspects()[0]) == 0) continue;
EUt += getPerAspectEnergy(aspects.getAspects()[0]);
aspects.reduce(aspects.getAspects()[0], 1);
if (aspects.getAmount(aspects.getAspects()[0]) == 0)
@@ -320,6 +509,7 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
.addInfo("Controller block for the Large Essentia Generator")
.addInfo("Maybe some thaumaturages are upset by it. . .")
.addInfo("Transform essentia into energy!")
+ .addInfo("The the Diffusion Cell determines the highest hatch tier that LEG can accept.")
.addInfo("You can find more information about this generator in Thaumonomicon.")
.addInfo("The structure is too complex!")
.addInfo(BLUE_PRINT_INFO)
@@ -345,4 +535,9 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM
}
return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(1536)};
}
+
+ public boolean isValidEssentia(Aspect aspect) {
+ int type = LargeEssentiaEnergyData.getAspectTypeIndex(aspect);
+ return type != -1 && (mUpgrade & (1 << type)) != 0;
+ }
}
diff --git a/src/main/java/GoodGenerator/CrossMod/NEI/IMCForNEI.java b/src/main/java/GoodGenerator/CrossMod/NEI/IMCForNEI.java
index 81f0249a7e..e4514df282 100644
--- a/src/main/java/GoodGenerator/CrossMod/NEI/IMCForNEI.java
+++ b/src/main/java/GoodGenerator/CrossMod/NEI/IMCForNEI.java
@@ -19,5 +19,6 @@ public class IMCForNEI {
aNBT.setInteger("handlerHeight", 135);
aNBT.setInteger("handlerWidth", 166);
aNBT.setInteger("maxRecipesPerPage", 1);
+ aNBT.setInteger("yShift", 6);
}
}
diff --git a/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java b/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java
index 1a57824b89..aebfe6102c 100644
--- a/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java
+++ b/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java
@@ -5,6 +5,7 @@ import GoodGenerator.util.MyRecipeAdder;
import codechicken.nei.api.API;
import codechicken.nei.api.IConfigureNEI;
import net.minecraft.block.Block;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class NEI_Config implements IConfigureNEI {
@@ -21,6 +22,10 @@ public class NEI_Config implements IConfigureNEI {
API.hideItem(new ItemStack(aBlock, 1));
}
+ public static void hide(Item aItem) {
+ API.hideItem(new ItemStack(aItem, 1));
+ }
+
@Override
public String getName() {
return "Good Generator NEI Plugin";
diff --git a/src/main/java/GoodGenerator/CrossMod/Thaumcraft/LargeEssentiaEnergyData.java b/src/main/java/GoodGenerator/CrossMod/Thaumcraft/LargeEssentiaEnergyData.java
new file mode 100644
index 0000000000..60ef46e8ba
--- /dev/null
+++ b/src/main/java/GoodGenerator/CrossMod/Thaumcraft/LargeEssentiaEnergyData.java
@@ -0,0 +1,124 @@
+package GoodGenerator.CrossMod.Thaumcraft;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import thaumcraft.api.aspects.Aspect;
+
+import java.io.*;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+
+public class LargeEssentiaEnergyData {
+
+ public static final HashMap<Aspect, FuelData> ASPECT_FUEL_DATA = new HashMap<>();
+
+ public static String readJsonFile() {
+ try {
+ URL url = Thread.currentThread().getContextClassLoader().getResource("assets/goodgenerator/data/essentia.json");
+ assert url != null;
+ BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));
+ String s;
+ StringBuilder sb = new StringBuilder();
+ while ((s = in.readLine()) != null) {
+ sb.append(s);
+ }
+ in.close();
+ return sb.toString();
+ } catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public static void processEssentiaData() {
+ String data = readJsonFile();
+ if (data == null) {
+ return;
+ }
+ JsonParser jsonParser = new JsonParser();
+ JsonObject jsonObject = (JsonObject)jsonParser.parse(data);
+ JsonArray jsonArray = jsonObject.get("Essentia").getAsJsonArray();
+ for (JsonElement elm : jsonArray) {
+ JsonObject essData = elm.getAsJsonObject();
+ String aspectName = essData.get("name").getAsString();
+ Aspect aspect = Aspect.getAspect(aspectName.toLowerCase());
+ if (aspect != null) {
+ int fuel = essData.get("fuelValue").getAsInt();
+ String cate = essData.get("category").getAsString();
+ float ceo = essData.get("consumeCeo").getAsFloat();
+ ASPECT_FUEL_DATA.put(aspect, new FuelData(fuel, cate, ceo));
+ }
+ }
+ }
+
+ public static int getAspectTypeIndex(Aspect aspect) {
+ if (ASPECT_FUEL_DATA.containsKey(aspect)) {
+ return ASPECT_FUEL_DATA.get(aspect).getCategoryIndex();
+ }
+ else return -1;
+ }
+
+ public static String getAspectType(Aspect aspect) {
+ if (ASPECT_FUEL_DATA.containsKey(aspect)) {
+ return ASPECT_FUEL_DATA.get(aspect).getCategory();
+ }
+ else return null;
+ }
+
+ public static int getAspectFuelValue(Aspect aspect) {
+ if (ASPECT_FUEL_DATA.containsKey(aspect)) {
+ return ASPECT_FUEL_DATA.get(aspect).getFuelValue();
+ }
+ else return 0;
+ }
+
+ public static float getAspectCeo(Aspect aspect) {
+ if (ASPECT_FUEL_DATA.containsKey(aspect)) {
+ return ASPECT_FUEL_DATA.get(aspect).getConsumeSpeed();
+ }
+ else return 0;
+ }
+}
+
+class FuelData {
+ private final int fuelValue;
+ private final String category;
+ private final float consumeSpeed;
+
+ FuelData(int basicValue, String cate, float ceo) {
+ fuelValue = basicValue;
+ category = cate;
+ consumeSpeed = ceo;
+ }
+
+ public int getFuelValue() {
+ return fuelValue;
+ }
+
+ public float getConsumeSpeed() {
+ return consumeSpeed;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public int getCategoryIndex() {
+ switch (category) {
+ case "NORMAL": return 0;
+ case "AIR": return 1;
+ case "THERMAL": return 2;
+ case "UNSTABLE": return 3;
+ case "VICTUS": return 4;
+ case "TAINTED": return 5;
+ case "MECHANICS": return 6;
+ case "SPRITE": return 7;
+ case "RADIATION": return 8;
+ case "ELECTRIC": return 9;
+ default: return -1;
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/GoodGenerator/CrossMod/Thaumcraft/Research.java b/src/main/java/GoodGenerator/CrossMod/Thaumcraft/Research.java
index 12fcefe4e0..08aa1e4409 100644
--- a/src/main/java/GoodGenerator/CrossMod/Thaumcraft/Research.java
+++ b/src/main/java/GoodGenerator/CrossMod/Thaumcraft/Research.java
@@ -1,15 +1,22 @@
package GoodGenerator.CrossMod.Thaumcraft;
+import GoodGenerator.Items.MyMaterial;
import GoodGenerator.util.DescTextLocalization;
import GoodGenerator.util.ItemRefer;
+import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry;
import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
+import cpw.mods.fml.common.Loader;
import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.TC_Aspects;
+import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import ic2.core.Ic2Items;
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemCoal;
import net.minecraft.item.ItemStack;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.AspectList;
@@ -17,14 +24,25 @@ import thaumcraft.common.config.ConfigBlocks;
import thaumcraft.common.config.ConfigItems;
import java.util.Arrays;
+import java.util.Collections;
import static thaumcraft.api.ThaumcraftApi.addArcaneCraftingRecipe;
public class Research{
public static void addResearch() {
- DescTextLocalization.addText("research.ESSENTIA_GENERATOR.page",3);
+ DescTextLocalization.addText("research.ESSENTIA_GENERATOR.page",4);
DescTextLocalization.addText("research.ESSENTIA_CELL.page",1);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_BLANK.page",1);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_AIR.page",2);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_THERMAL.page",3);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_UNSTABLE.page",3);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_VICTUS.page",3);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_TAINTED.page",4);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_MECHANICS.page",3);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_SPRITE.page",3);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_RADIATION.page",3);
+ DescTextLocalization.addText("research.ESSENTIA_UPGRADE_ELECTRIC.page",2);
GregTech_API.sThaumcraftCompat.addResearch(
"ESSENTIA_GENERATOR",
"Combustion Engine in Magic World",
@@ -87,8 +105,10 @@ public class Research{
"ESSENTIA_GENERATOR",
GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Thaumium, 1),
new ItemStack[]{
- GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Steel, 1),
- ItemList.Electric_Pump_MV.get(1L),
+ GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectricalSteel, 1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectricalSteel, 1),
+ ItemList.Electric_Pump_HV.get(1L),
new ItemStack(ConfigBlocks.blockTube, 1, 4),
new ItemStack(ConfigBlocks.blockCosmeticOpaque, 1, 2),
},
@@ -111,7 +131,8 @@ public class Research{
'A', Ic2Items.advancedMachine
),
"research.ESSENTIA_GENERATOR.page.1",
- "research.ESSENTIA_GENERATOR.page.2"
+ "research.ESSENTIA_GENERATOR.page.2",
+ "research.ESSENTIA_GENERATOR.page.3"
}
);
GregTech_API.sThaumcraftCompat.addResearch(
@@ -134,17 +155,17 @@ public class Research{
"research.ESSENTIA_CELL.page.0",
GregTech_API.sThaumcraftCompat.addInfusionRecipe(
"ESSENTIA_CELL",
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Thaumium, 1),
+ ItemRefer.Essentia_Cell_T1.get(1),
new ItemStack[]{
- GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Enderium, 1),
- ItemList.Electric_Pump_HV.get(1L),
- ItemList.QuantumEye.get(1L),
- new ItemStack(ConfigBlocks.blockCosmeticOpaque, 1, 2),
- GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Platinum, 1),
- WerkstoffLoader.Salt.get(OrePrefixes.gemExquisite, 1)
+ GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 1),
+ ItemList.FluidRegulator_EV.get(1L),
+ ItemList.QuantumStar.get(1L),
+ new ItemStack(ConfigBlocks.blockJar, 1, 0),
+ GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Platinum, 1),
+ GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Desh, 1)
},
ItemRefer.Essentia_Cell_T2.get(1),
- 5,
+ 6,
Arrays.asList(
new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 64),
new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64),
@@ -153,25 +174,447 @@ public class Research{
),
GregTech_API.sThaumcraftCompat.addInfusionRecipe(
"ESSENTIA_CELL",
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Void, 1),
+ ItemRefer.Essentia_Cell_T2.get(1),
new ItemStack[]{
- GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Titanium, 1),
- ItemList.Electric_Pump_EV.get(1L),
- ItemList.QuantumStar.get(1L),
- new ItemStack(ConfigBlocks.blockCosmeticOpaque, 1, 2),
+ GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NiobiumTitanium, 1),
+ ItemList.Field_Generator_IV.get(1L),
+ ItemList.Reactor_Coolant_Sp_3.get(1L),
new ItemStack(ConfigItems.itemResource,1,14),
- Ic2Items.iridiumPlate,
Ic2Items.fluidregulator,
new ItemStack(ConfigBlocks.blockCrystal, 1, 6),
+ GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Plutonium241, 1),
+ GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Void, 1),
+ GT_OreDictUnificator.get(OrePrefixes.lens, Materials.EnderEye, 1),
+ new ItemStack(ConfigBlocks.blockMetalDevice, 1, 3)
},
ItemRefer.Essentia_Cell_T3.get(1),
- 6,
+ 8,
Arrays.asList(
new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 128),
new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128),
new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 64)
)
),
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_CELL",
+ ItemRefer.Essentia_Cell_T3.get(1),
+ new ItemStack[]{
+ GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Europium, 1),
+ ItemList.Emitter_LuV.get(1L),
+ ItemList.FluidRegulator_LuV.get(1L),
+ new ItemStack(ConfigItems.itemEldritchObject,1,3),
+ new ItemStack(ItemRegistry.bw_realglas, 1, 3),
+ GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Indium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Ichorium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Quantium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Sunnarium, 1),
+ MyMaterial.orundum.get(OrePrefixes.gemExquisite, 1)
+ },
+ ItemRefer.Essentia_Cell_T4.get(1),
+ 10,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 256),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 256),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 128)
+ )
+ )
+ }
+ );
+ ItemStack broad = new ItemStack(ConfigBlocks.blockCosmeticSolid, 1, 6);
+ if (Loader.isModLoaded("dreamcraft")) broad = GT_ModHandler.getModItem("dreamcraft", "item.ArcaneSlate", 1);
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_BLANK",
+ "Upgrade your generator",
+ "Let's try some more dangerous essentia.",
+ new String[]{"ESSENTIA_GENERATOR"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ 2, 0, -9, 4,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_BLANK.page.0",
+ addArcaneCraftingRecipe(
+ "ESSENTIA_UPGRADE_BLANK",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new AspectList().add(Aspect.AIR, 80).add(Aspect.ENTROPY, 50).add(Aspect.ORDER, 50).add(Aspect.WATER, 80),
+ "AMB","CZD","EIF",
+ 'A', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedAir, 1),
+ 'B', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedEarth, 1),
+ 'C', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedFire, 1),
+ 'D', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedWater, 1),
+ 'E', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedOrder, 1),
+ 'F', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedEntropy, 1),
+ 'M', new ItemStack(ConfigItems.itemResource, 1, 10),
+ 'Z', broad,
+ 'I', GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.PulsatingIron, 1)
+ ),
+ }
+ );
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_AIR",
+ "Essentia: AIR",
+ "I can feel it on the wind.",
+ new String[]{"ESSENTIA_UPGRADE_BLANK"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Air.get(1),
+ 1, 0, -9, 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AER, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_AIR.page.0",
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_UPGRADE_AIR",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new ItemStack[] {
+ GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidAir, 1),
+ GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1),
+ GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Argon, 1),
+ WerkstoffLoader.Neon.get(OrePrefixes.cell, 1),
+ WerkstoffLoader.Krypton.get(OrePrefixes.cell, 1),
+ },
+ ItemRefer.Essentia_Upgrade_Air.get(1),
+ 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AER, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 128)
+ )
+ ),
+ "research.ESSENTIA_UPGRADE_AIR.page.1"
+ }
+ );
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_THERMAL",
+ "Essentia: THERMAL",
+ "Melting down.",
+ new String[]{"ESSENTIA_UPGRADE_BLANK"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Thermal.get(1),
+ 1, 0, -10, 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_THERMAL.page.0",
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_UPGRADE_THERMAL",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new ItemStack[] {
+ GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Firestone, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1),
+ Ic2Items.reactorPlatingHeat,
+ ItemList.Casing_Coil_Nichrome.get(1),
+ new ItemStack(ConfigItems.itemResource, 1, 1),
+ new ItemStack(ConfigItems.itemResource, 1, 0),
+ },
+ ItemRefer.Essentia_Upgrade_Thermal.get(1),
+ 5,
+ Collections.singletonList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1024)
+ )
+ ),
+ "research.ESSENTIA_UPGRADE_THERMAL.page.1",
+ "research.ESSENTIA_UPGRADE_THERMAL.page.2"
+ }
+ );
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_UNSTABLE",
+ "Essentia: UNSTABLE",
+ "Heart of chaos.",
+ new String[]{"ESSENTIA_UPGRADE_BLANK"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Unstable.get(1),
+ 1, 0, -11, 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_UNSTABLE.page.0",
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_UPGRADE_UNSTABLE",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new ItemStack[] {
+ GT_OreDictUnificator.get(OrePrefixes.cell, Materials.GasolinePremium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Unstable, 1),
+ GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Void, 1),
+ GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1),
+ Ic2Items.industrialTnt,
+ new ItemStack(ItemRegistry.DESTRUCTOPACK)
+ },
+ ItemRefer.Essentia_Upgrade_Unstable.get(1),
+ 6,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 128)
+ )
+ ),
+ "research.ESSENTIA_UPGRADE_UNSTABLE.page.1",
+ "research.ESSENTIA_UPGRADE_UNSTABLE.page.2"
+ }
+ );
+ ItemStack meatDust = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1);
+ if (Loader.isModLoaded("dreamcraft")) meatDust = GT_ModHandler.getModItem("dreamcraft", "GTNHBioItems", 1, 2);
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_VICTUS",
+ "Essentia: VICTUS",
+ "Will it bleed?",
+ new String[]{"ESSENTIA_UPGRADE_BLANK"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Victus.get(1),
+ 1, 0, -12, 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VICTUS, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_VICTUS.page.0",
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_UPGRADE_VICTUS",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new ItemStack[] {
+ meatDust,
+ ItemList.Food_Dough_Sugar.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Calcium, 1),
+ new ItemStack(Item.getItemById(367), 1),
+ new ItemStack(ConfigItems.itemResource, 1, 4),
+ new ItemStack(ConfigBlocks.blockMetalDevice, 1, 8),
+ },
+ ItemRefer.Essentia_Upgrade_Victus.get(1),
+ 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VICTUS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SPIRITUS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HUMANUS, 128)
+ )
+ ),
+ "research.ESSENTIA_UPGRADE_VICTUS.page.1",
+ "research.ESSENTIA_UPGRADE_VICTUS.page.2"
+ }
+ );
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_TAINTED",
+ "Essentia: TAINTED",
+ "Dirty Deeds Done Dirt Cheap",
+ new String[]{"ESSENTIA_UPGRADE_BLANK"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Tainted.get(1),
+ 1, 0, -13, 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_TAINTED.page.0",
+ "research.ESSENTIA_UPGRADE_TAINTED.page.1",
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_UPGRADE_TAINTED",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new ItemStack[] {
+ new ItemStack(ConfigBlocks.blockTaintFibres, 1, 0),
+ new ItemStack(ConfigBlocks.blockTaintFibres, 1, 2),
+ new ItemStack(ConfigItems.itemResource, 1, 11),
+ GT_OreDictUnificator.get(OrePrefixes.spring, Materials.NaquadahEnriched, 1),
+ GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.EndSteel, 1),
+ new ItemStack(Block.getBlockById(138), 1),
+ },
+ ItemRefer.Essentia_Upgrade_Tainted.get(1),
+ 7,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.EXANIMIS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITIUM, 128)
+ )
+ ),
+ "research.ESSENTIA_UPGRADE_TAINTED.page.2",
+ "research.ESSENTIA_UPGRADE_TAINTED.page.3"
+ }
+ );
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_MECHANICS",
+ "Essentia: MECHANICS",
+ "Driven by Ether.",
+ new String[]{"ESSENTIA_UPGRADE_BLANK"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Mechanics.get(1),
+ 1, 0, -14, 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_MECHANICS.page.0",
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_UPGRADE_MECHANICS",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new ItemStack[] {
+ new ItemStack(ConfigBlocks.blockTube, 1, 4),
+ new ItemStack(ConfigBlocks.blockTube, 1, 2),
+ GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.VividAlloy, 1),
+ GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Polybenzimidazole, 1),
+ ItemList.Electric_Motor_IV.get(1),
+ ItemList.Electric_Pump_IV.get(1),
+ },
+ ItemRefer.Essentia_Upgrade_Mechanics.get(1),
+ 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128)
+ )
+ ),
+ "research.ESSENTIA_UPGRADE_MECHANICS.page.1",
+ "research.ESSENTIA_UPGRADE_MECHANICS.page.2"
+ }
+ );
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_SPRITE",
+ "Essentia: SPRITE",
+ "Brain in a Machine.",
+ new String[]{"ESSENTIA_UPGRADE_BLANK"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Spirit.get(1),
+ 1, 0, -15, 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_SPRITE.page.0",
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_UPGRADE_SPRITE",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new ItemStack[] {
+ new ItemStack(ConfigBlocks.blockJar, 1, 1),
+ GT_OreDictUnificator.get(OrePrefixes.food, Materials.Cheese, 1),
+ GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Shadow, 1),
+ GT_OreDictUnificator.get(OrePrefixes.spring, Materials.FierySteel, 1),
+ GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Milk, 1),
+ ItemList.Machine_EV_Scanner.get(1)
+ },
+ ItemRefer.Essentia_Upgrade_Spirit.get(1),
+ 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 128),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 128)
+ )
+ ),
+ "research.ESSENTIA_UPGRADE_SPRITE.page.1",
+ "research.ESSENTIA_UPGRADE_SPRITE.page.2"
+ }
+ );
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_RADIATION",
+ "Essentia: RADIATION",
+ "Atomic Heart",
+ new String[]{"ESSENTIA_UPGRADE_BLANK"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Radiation.get(1),
+ 1, 0, -16, 5,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_RADIATION.page.0",
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_UPGRADE_RADIATION",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new ItemStack[] {
+ ItemRefer.High_Density_Plutonium.get(1),
+ ItemRefer.High_Density_Uranium.get(1),
+ ItemRefer.High_Density_Thorium.get(1),
+ Ic2Items.UranFuel,
+ Ic2Items.MOXFuel,
+ WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1)
+ },
+ ItemRefer.Essentia_Upgrade_Radiation.get(1),
+ 8,
+ Collections.singletonList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 1024)
+ )
+ ),
+ "research.ESSENTIA_UPGRADE_RADIATION.page.1",
+ "research.ESSENTIA_UPGRADE_RADIATION.page.2"
+ }
+ );
+ GregTech_API.sThaumcraftCompat.addResearch(
+ "ESSENTIA_UPGRADE_ELECTRIC",
+ "Essentia: ELECTRIC",
+ "Get electricity from... electricity?",
+ new String[]{"ESSENTIA_UPGRADE_AIR", "ESSENTIA_UPGRADE_THERMAL", "ESSENTIA_UPGRADE_UNSTABLE", "ESSENTIA_UPGRADE_VICTUS", "ESSENTIA_UPGRADE_TAINTED", "ESSENTIA_UPGRADE_MECHANICS", "ESSENTIA_UPGRADE_SPRITE", "ESSENTIA_UPGRADE_RADIATION"},
+ "ARTIFICE",
+ ItemRefer.Essentia_Upgrade_Electric.get(1),
+ 1, 0, -12, 7,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)
+ ),
+ null,
+ new Object[] {
+ "research.ESSENTIA_UPGRADE_ELECTRIC.page.0",
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(
+ "ESSENTIA_UPGRADE_RADIATION",
+ ItemRefer.Essentia_Upgrade_Empty.get(1),
+ new ItemStack[] {
+ GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorMV, 1),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorHV, 1),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorEV, 1),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorIV, 1),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 1),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorZPM, 1)
+ },
+ ItemRefer.Essentia_Upgrade_Electric.get(1),
+ 10,
+ Collections.singletonList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32768)
+ )
+ ),
+ "research.ESSENTIA_UPGRADE_ELECTRIC.page.1"
}
);
}
diff --git a/src/main/java/GoodGenerator/Items/MyItemBlocks.java b/src/main/java/GoodGenerator/Items/MyItemBlocks.java
index c4a71f6834..151401708a 100644
--- a/src/main/java/GoodGenerator/Items/MyItemBlocks.java
+++ b/src/main/java/GoodGenerator/Items/MyItemBlocks.java
@@ -12,12 +12,15 @@ import net.minecraft.item.ItemBlock;
import GoodGenerator.Main.GoodGenerator;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import static GoodGenerator.Loader.Loaders.essentiaCell;
import static GoodGenerator.Loader.Loaders.yottaFluidTankCell;
+import static GoodGenerator.util.CharExchanger.tierName;
public class MyItemBlocks extends ItemBlock {
private final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block");
@@ -77,7 +80,11 @@ public class MyItemBlocks extends ItemBlock {
cap.append(" 1000000");
for (int i = 0; i < p_77624_1_.getItemDamage(); i++) cap.append("00");
cap.append(" L");
- p_77624_3_.add(DescTextLocalization.addText("YOTTankCell.tooltip", 1)[0] + CharExchanger.formatNumber(cap.toString()));
+ p_77624_3_.add(StatCollector.translateToLocal("YOTTankCell.tooltip.0") + CharExchanger.formatNumber(cap.toString()));
+ }
+
+ if (Block.getBlockFromItem(p_77624_1_.getItem()).equals(essentiaCell)) {
+ p_77624_3_.add(StatCollector.translateToLocal("hatchTier.tooltip.0") + " " + tierName[p_77624_1_.getItemDamage() + 3]);
}
}
}
diff --git a/src/main/java/GoodGenerator/Loader/Loaders.java b/src/main/java/GoodGenerator/Loader/Loaders.java
index 49025433c0..b25846117b 100644
--- a/src/main/java/GoodGenerator/Loader/Loaders.java
+++ b/src/main/java/GoodGenerator/Loader/Loaders.java
@@ -9,6 +9,8 @@ import GoodGenerator.Blocks.TEs.*;
import GoodGenerator.Blocks.TEs.MetaTE.NeutronAccelerator;
import GoodGenerator.Blocks.TEs.MetaTE.NeutronSensor;
import GoodGenerator.CrossMod.NEI.IMCForNEI;
+import GoodGenerator.CrossMod.NEI.NEI_Config;
+import GoodGenerator.CrossMod.Thaumcraft.LargeEssentiaEnergyData;
import GoodGenerator.Items.MyItemBlocks;
import GoodGenerator.Items.MyItems;
import GoodGenerator.Items.RadioactiveItem;
@@ -31,6 +33,8 @@ public class Loaders {
public static final int IDOffset = 32001;
public static final byte GoodGeneratorTexturePage = 12;
+ public static final Item _null_ = new MyItems("_null_", null);
+
public static final Item radiationProtectionPlate = new MyItems("radiationProtectionPlate", GoodGenerator.GG);
public static final Item wrappedUraniumIngot = new MyItems("wrappedUraniumIngot", GoodGenerator.GG);
public static final Item highDensityUraniumNugget = new RadioactiveItem("highDensityUraniumNugget", GoodGenerator.GG, 200);
@@ -58,6 +62,7 @@ public class Loaders {
public static final Item naquadriaMass = new MyItems("naquadriaMass", addText("naquadriaMass.tooltip", 1), GoodGenerator.GG);
public static final Item advancedFuelRod = new MyItems("advancedFuelRod", GoodGenerator.GG);
public static final Item fluidCore = new MyItems("fluidCore", GoodGenerator.GG, new String[]{GoodGenerator.MOD_ID+":fluidCore/1", GoodGenerator.MOD_ID+":fluidCore/2", GoodGenerator.MOD_ID+":fluidCore/3", GoodGenerator.MOD_ID+":fluidCore/4", GoodGenerator.MOD_ID+":fluidCore/5", GoodGenerator.MOD_ID+":fluidCore/6"});
+ public static final Item upgradeEssentia = new MyItems("upgradeEssentia", GoodGenerator.GG, new String[]{GoodGenerator.MOD_ID+":upgradeEssentia/null", GoodGenerator.MOD_ID+":upgradeEssentia/air", GoodGenerator.MOD_ID+":upgradeEssentia/thermal", GoodGenerator.MOD_ID+":upgradeEssentia/unstable", GoodGenerator.MOD_ID+":upgradeEssentia/victus", GoodGenerator.MOD_ID+":upgradeEssentia/tainted", GoodGenerator.MOD_ID+":upgradeEssentia/mechanics", GoodGenerator.MOD_ID+":upgradeEssentia/spirit", GoodGenerator.MOD_ID+":upgradeEssentia/radiation", GoodGenerator.MOD_ID+":upgradeEssentia/electric"});
public static final Block MAR_Casing = new Casing("MAR_Casing", new String[]{GoodGenerator.MOD_ID+":MAR_Casing"});
public static final Block FRF_Casings = new Casing("FRF_Casing", new String[]{"gregtech:iconsets/MACHINE_CASING_MINING_BLACKPLUTONIUM"});
@@ -69,7 +74,7 @@ public class Loaders {
public static final Block rawCylinder = new Casing("rawCylinder", new String[]{GoodGenerator.MOD_ID+":rawCylinder"});
public static final Block titaniumPlatedCylinder = new Casing("titaniumPlatedCylinder", new String[]{GoodGenerator.MOD_ID+":titaniumPlatedCylinder"});
public static final Block magicCasing = new Casing("magicCasing", new String[]{GoodGenerator.MOD_ID+":MagicCasing"});
- public static final Block essentiaCell = new Casing("essentiaCell", new String[]{GoodGenerator.MOD_ID+":essentiaCell/1",GoodGenerator.MOD_ID+":essentiaCell/2",GoodGenerator.MOD_ID+":essentiaCell/3"});
+ public static final Block essentiaCell = new Casing("essentiaCell", new String[]{GoodGenerator.MOD_ID+":essentiaCell/1",GoodGenerator.MOD_ID+":essentiaCell/2",GoodGenerator.MOD_ID+":essentiaCell/3",GoodGenerator.MOD_ID+":essentiaCell/4"});
public static final Block speedingPipe = new ComplexTextureCasing("speedingPipe", new String[]{GoodGenerator.MOD_ID+":speedingPipe_SIDE"}, new String[]{GoodGenerator.MOD_ID+":speedingPipe_TOP"});
public static final Block yottaFluidTankCell = new Casing("yottaFluidTankCell", new String[]{GoodGenerator.MOD_ID+":yottaFluidTankCell/1", GoodGenerator.MOD_ID+":yottaFluidTankCell/2", GoodGenerator.MOD_ID+":yottaFluidTankCell/3", GoodGenerator.MOD_ID+":yottaFluidTankCell/4", GoodGenerator.MOD_ID+":yottaFluidTankCell/5",
GoodGenerator.MOD_ID+":yottaFluidTankCell/6", GoodGenerator.MOD_ID+":yottaFluidTankCell/7", GoodGenerator.MOD_ID+":yottaFluidTankCell/8", GoodGenerator.MOD_ID+":yottaFluidTankCell/9", GoodGenerator.MOD_ID+":yottaFluidTankCell/10",});
@@ -99,7 +104,11 @@ public class Loaders {
Loaders.YFT = new YottaFluidTank(IDOffset + 13, "YottaFluidTank", "YOTTank").getStackForm(1L);
}
- public static void Register(){
+ public static void Register() {
+
+ GameRegistry.registerItem(_null_, "_null_", GoodGenerator.MOD_ID);
+ NEI_Config.hide(_null_);
+
GameRegistry.registerBlock(MAR_Casing, MyItemBlocks.class, "MAR_Casing");
GameRegistry.registerBlock(radiationProtectionSteelFrame, MyItemBlocks.class, "radiationProtectionSteelFrame");
GameRegistry.registerBlock(fieldRestrictingGlass, MyItemBlocks.class, "fieldRestrictingGlass");
@@ -143,6 +152,8 @@ public class Loaders {
public static void compactMod() {
if (Loader.isModLoaded("Thaumcraft")) {
+ LargeEssentiaEnergyData.processEssentiaData();
+ GameRegistry.registerItem(upgradeEssentia, "upgradeEssentia", GoodGenerator.MOD_ID);
GameRegistry.registerTileEntity(EssentiaHatch.class, "EssentiaHatch");
Loaders.LEG = new LargeEssentiaGenerator(IDOffset + 1, "LargeEssentiaGenerator", "Large Essentia Generator").getStackForm(1L);
essentiaHatch = new TEBlock("essentiaHatch", new String[]{GoodGenerator.MOD_ID + ":essentiaHatch"}, 1);
diff --git a/src/main/java/GoodGenerator/Loader/NeutronActivatorLoader.java b/src/main/java/GoodGenerator/Loader/NeutronActivatorLoader.java
index cda6c79edb..97477963c7 100644
--- a/src/main/java/GoodGenerator/Loader/NeutronActivatorLoader.java
+++ b/src/main/java/GoodGenerator/Loader/NeutronActivatorLoader.java
@@ -12,14 +12,14 @@ public class NeutronActivatorLoader {
public static void NARecipeLoad() {
MyRecipeAdder.instance.addNeutronActivatorRecipe(
new FluidStack[]{
- thoriumBasedLiquidFuel.getFluidOrGas(200)
+ thoriumBasedLiquidFuelExcited.getFluidOrGas(200)
},
null,
new FluidStack[]{
thoriumBasedLiquidFuelDepleted.getFluidOrGas(200)
},
null,
- 40,
+ 20000,
700,
500
);
diff --git a/src/main/java/GoodGenerator/Main/GG_Config_Loader.java b/src/main/java/GoodGenerator/Main/GG_Config_Loader.java
index f3bf69752c..1fbab02516 100644
--- a/src/main/java/GoodGenerator/Main/GG_Config_Loader.java
+++ b/src/main/java/GoodGenerator/Main/GG_Config_Loader.java
@@ -11,11 +11,11 @@ public class GG_Config_Loader {
public static int LiquidAirConsumptionPerSecond = 2400;
public static int[] NaquadahFuelVoltage = new int[]{
- 12960, 9800, 32400, 220000,
+ 12960, 2200, 32400, 220000,
380000, 9511000, 88540000, 399576000
};
public static int[] NaquadahFuelTime = new int[]{
- 100, 200, 150, 20, 20, 80, 100, 160
+ 100, 500, 150, 20, 20, 80, 100, 160
};
public static int[] CoolantEfficiency = new int[]{
275, 150, 105
diff --git a/src/main/java/GoodGenerator/util/CharExchanger.java b/src/main/java/GoodGenerator/util/CharExchanger.java
index f7f0927243..7c77dcae6c 100644
--- a/src/main/java/GoodGenerator/util/CharExchanger.java
+++ b/src/main/java/GoodGenerator/util/CharExchanger.java
@@ -1,7 +1,23 @@
package GoodGenerator.util;
+import net.minecraft.util.EnumChatFormatting;
+
public class CharExchanger {
+ public static final String[] tierName = new String[] {
+ EnumChatFormatting.RED + "ULV" + EnumChatFormatting.RESET,
+ EnumChatFormatting.GRAY + "LV" + EnumChatFormatting.RESET,
+ EnumChatFormatting.AQUA + "MV" + EnumChatFormatting.RESET,
+ EnumChatFormatting.GOLD + "HV" + EnumChatFormatting.RESET,
+ EnumChatFormatting.DARK_PURPLE + "EV" + EnumChatFormatting.RESET,
+ EnumChatFormatting.DARK_BLUE + "IV" + EnumChatFormatting.RESET,
+ EnumChatFormatting.LIGHT_PURPLE + "LuV" + EnumChatFormatting.RESET,
+ EnumChatFormatting.WHITE + "ZPM" + EnumChatFormatting.RESET,
+ EnumChatFormatting.DARK_AQUA + "UV" + EnumChatFormatting.RESET,
+ EnumChatFormatting.DARK_RED + "UHV" + EnumChatFormatting.RESET,
+ EnumChatFormatting.GREEN + "UEV" + EnumChatFormatting.RESET,
+ };
+
public static char shifter(int unicode){
return (char)unicode;
}
diff --git a/src/main/java/GoodGenerator/util/ItemRefer.java b/src/main/java/GoodGenerator/util/ItemRefer.java
index a5bb66ecfb..500cd128f2 100644
--- a/src/main/java/GoodGenerator/util/ItemRefer.java
+++ b/src/main/java/GoodGenerator/util/ItemRefer.java
@@ -1,17 +1,17 @@
package GoodGenerator.util;
import gregtech.api.util.GT_Utility;
-import ic2.api.reactor.IReactorComponent;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
import static GoodGenerator.Loader.FuelRodLoader.*;
import static GoodGenerator.Loader.Loaders.*;
public final class ItemRefer {
+ public static ItemRefer NULL = getItemStack(_null_);
+
public static ItemRefer Radiation_Protection_Plate = getItemStack(radiationProtectionPlate);
public static ItemRefer Wrapped_Uranium_Ingot = getItemStack(wrappedUraniumIngot);
public static ItemRefer High_Density_Uranium_Nugget = getItemStack(highDensityUraniumNugget);
@@ -56,7 +56,16 @@ public final class ItemRefer {
public static ItemRefer Fluid_Storage_Core_T4 = getItemStack(fluidCore, 3);
public static ItemRefer Fluid_Storage_Core_T5 = getItemStack(fluidCore, 4);
public static ItemRefer Fluid_Storage_Core_T6 = getItemStack(fluidCore, 5);
-
+ public static ItemRefer Essentia_Upgrade_Empty = getItemStack(upgradeEssentia, 0);
+ public static ItemRefer Essentia_Upgrade_Air = getItemStack(upgradeEssentia, 1);
+ public static ItemRefer Essentia_Upgrade_Thermal = getItemStack(upgradeEssentia, 2);
+ public static ItemRefer Essentia_Upgrade_Unstable = getItemStack(upgradeEssentia, 3);
+ public static ItemRefer Essentia_Upgrade_Victus = getItemStack(upgradeEssentia, 4);
+ public static ItemRefer Essentia_Upgrade_Tainted = getItemStack(upgradeEssentia, 5);
+ public static ItemRefer Essentia_Upgrade_Mechanics = getItemStack(upgradeEssentia, 6);
+ public static ItemRefer Essentia_Upgrade_Spirit = getItemStack(upgradeEssentia, 7);
+ public static ItemRefer Essentia_Upgrade_Radiation = getItemStack(upgradeEssentia, 8);
+ public static ItemRefer Essentia_Upgrade_Electric = getItemStack(upgradeEssentia, 9);
public static ItemRefer Field_Restriction_Casing = getItemStack(MAR_Casing);
public static ItemRefer Naquadah_Fuel_Refinery_Casing = getItemStack(FRF_Casings);
@@ -72,6 +81,7 @@ public final class ItemRefer {
public static ItemRefer Essentia_Cell_T1 = getItemStack(essentiaCell, 0);
public static ItemRefer Essentia_Cell_T2 = getItemStack(essentiaCell, 1);
public static ItemRefer Essentia_Cell_T3 = getItemStack(essentiaCell, 2);
+ public static ItemRefer Essentia_Cell_T4 = getItemStack(essentiaCell, 3);
public static ItemRefer Essentia_Hatch = getItemStack(essentiaHatch);
public static ItemRefer YOTTank_Casing = getItemStack(yottaFluidTankCasing);
public static ItemRefer YOTTank_Cell_T1 = getItemStack(yottaFluidTankCell, 0);
@@ -97,7 +107,7 @@ public final class ItemRefer {
private int mMeta = 0;
private static ItemRefer getItemStack(ItemStack itemStack) {
- if (itemStack == null) return null;
+ if (itemStack == null) return NULL;
return new ItemRefer(itemStack);
}
@@ -106,7 +116,7 @@ public final class ItemRefer {
}
private static ItemRefer getItemStack(Item item, int meta) {
- if (item == null) return null;
+ if (item == null) return NULL;
return new ItemRefer(item, meta);
}
@@ -115,7 +125,7 @@ public final class ItemRefer {
}
private static ItemRefer getItemStack(Block block, int meta) {
- if (block == null) return null;
+ if (block == null) return NULL;
return new ItemRefer(block, meta);
}
@@ -134,9 +144,9 @@ public final class ItemRefer {
}
public ItemStack get(int amount){
- if (mItem != null) return new ItemStack(mItem, amount, mMeta);
+ if (mItem != null ) return new ItemStack(mItem, amount, mMeta);
if (mBlock != null) return new ItemStack(mBlock, amount, mMeta);
if (mItemStack != null) return GT_Utility.copyAmount(amount, mItemStack);
- return null;
+ return new ItemStack(_null_, amount, 0);
}
}
diff --git a/src/main/java/GoodGenerator/util/StructureHelper.java b/src/main/java/GoodGenerator/util/StructureHelper.java
index 4dcbc3f679..bce7402035 100644
--- a/src/main/java/GoodGenerator/util/StructureHelper.java
+++ b/src/main/java/GoodGenerator/util/StructureHelper.java
@@ -80,6 +80,7 @@ public class StructureHelper {
if (aBlock == tBlock) {
Integer currentMeta = aGetTheFuckingMeta.apply(t);
int newMeta = tBlock.getDamageValue(world, x, y, z) + 1;
+ if (newMeta > maxMeta) return false;
if (currentMeta == 0) {
return aSetTheFuckingMeta.test(t, newMeta);
} else {
@@ -103,7 +104,7 @@ public class StructureHelper {
private int getMeta(ItemStack trigger) {
int meta = trigger.stackSize;
if (meta <= 0) meta = 0;
- if (meta > maxMeta) meta = maxMeta;
+ if (meta >= maxMeta) meta = maxMeta - 1;
return meta;
}
};