diff options
author | GlodBlock <60341015+GlodBlock@users.noreply.github.com> | 2021-12-03 20:53:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-03 20:53:22 +0800 |
commit | 3c7b1b789fffcc866dc21768bc731ed338884682 (patch) | |
tree | d76dc9c1b6d94eeec08c26f7b517933e70e33b3e /src/main/java/GoodGenerator | |
parent | 938884d89ca45e1ad851fa817fc4d2432b3f0f00 (diff) | |
parent | 06cac63657f40c489477abe923ea3f144fe6749c (diff) | |
download | GT5-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')
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; } }; |