From 55c596b008807a7cb4b58422efd07636425be1e2 Mon Sep 17 00:00:00 2001 From: Blood-Asp Date: Mon, 22 Jun 2015 22:59:03 +0200 Subject: version 5.08.20 moar bugfixes --- main/java/gregtech/api/GregTech_API.java | 1 + main/java/gregtech/api/enums/Materials.java | 2 +- main/java/gregtech/api/enums/OrePrefixes.java | 1 + .../api/items/GT_RadioactiveCellIC_Item.java | 3 ++- .../implementations/GT_MetaPipeEntity_Cable.java | 9 +++++++ .../GT_MetaTileEntity_Transformer.java | 29 +++++++++++++++++++++- 6 files changed, 42 insertions(+), 3 deletions(-) (limited to 'main/java/gregtech/api') diff --git a/main/java/gregtech/api/GregTech_API.java b/main/java/gregtech/api/GregTech_API.java index efae1af6a9..15140242d8 100644 --- a/main/java/gregtech/api/GregTech_API.java +++ b/main/java/gregtech/api/GregTech_API.java @@ -118,6 +118,7 @@ public class GregTech_API { public static boolean sTimber = F, sDrinksAlwaysDrinkable = F, sMultiThreadedSounds = F, sDoShowAllItemsInCreative = F, sColoredGUI = T, sConstantEnergy = T, sMachineExplosions = T, sMachineFlammable = T, sMachineNonWrenchExplosions = T, sMachineRainExplosions = T, sMachineThunderExplosions = T, sMachineFireExplosions = T, sMachineWireFire = true; public static boolean mOutputRF =false; public static boolean mInputRF =false; + public static boolean meIOLoaded =false; public static int mEUtoRF = 360; public static int mRFtoEU = 20; public static boolean mRFExplosions = true; diff --git a/main/java/gregtech/api/enums/Materials.java b/main/java/gregtech/api/enums/Materials.java index c69392ca61..e45ce625d3 100644 --- a/main/java/gregtech/api/enums/Materials.java +++ b/main/java/gregtech/api/enums/Materials.java @@ -546,7 +546,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { WoodSealed ( 889, TextureSet.SET_WOOD , 3.0F, 24, 0, 1|2 |64|128 , 80, 40, 0, 0, "Sealed Wood" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Wood, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.FABRICO, 1))), LiveRoot ( 832, TextureSet.SET_WOOD , 1.0F, 0, 1, 1 , 220, 200, 0, 0, "Liveroot" , 5, 16, -1, 0, F, F, 2, 4, 3, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Wood, 3), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.VICTUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), IronWood ( 338, TextureSet.SET_WOOD , 6.0F, 384, 2, 1|2 |64|128 , 150, 140, 110, 0, "Ironwood" , 5, 8, -1, 0, F, F, 2, 19, 18, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 9), new MaterialStack(LiveRoot, 9), new MaterialStack(Gold, 1))), - Glass ( 890, TextureSet.SET_GLASS , 1.0F, 4, 0, 1 |4 , 250, 250, 250, 220, "Glass" , 0, 0, 800, 0, F, T, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Glass ( 890, TextureSet.SET_GLASS , 1.0F, 4, 0, 1 |4 , 250, 250, 250, 220, "Glass" , 0, 0, 1500, 0, F, T, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))), Perlite ( 925, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 30, 20, 30, 0, "Perlite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1))), Borax ( 941, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Borax" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 7))), Lignite ( 538, TextureSet.SET_LIGNITE , 1.0F, 0, 0, 1 |4|8 , 100, 70, 70, 0, "Lignite Coal" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1))), diff --git a/main/java/gregtech/api/enums/OrePrefixes.java b/main/java/gregtech/api/enums/OrePrefixes.java index 06e1ae97b7..fb7510dd45 100644 --- a/main/java/gregtech/api/enums/OrePrefixes.java +++ b/main/java/gregtech/api/enums/OrePrefixes.java @@ -219,6 +219,7 @@ public enum OrePrefixes { batterySingleuse ("Single Use Batteries" , "" , "" ,F,T,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), battery ("Reusable Batteries" , "" , "" ,F,T,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Introduced by Calclavia circuit ("Circuits" , "" , "" ,T,T,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Introduced by Calclavia + chipset ("Chipsets" , "" , "" ,T,T,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Introduced by Buildcraft computer ("Computers" , "" , "" ,T,T,F,F,T,F,F,F,F,F, 0 , -1, 64, -1), // A whole Computer. "computerMaster" = ComputerCube // random known prefixes without special abilities. diff --git a/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java b/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java index cee5bb5689..e556f4b53c 100644 --- a/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java +++ b/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java @@ -76,9 +76,10 @@ import net.minecraft.world.World; checkHeatAcceptor(reactor, x + 1, y, heatAcceptors); checkHeatAcceptor(reactor, x, y - 1, heatAcceptors); checkHeatAcceptor(reactor, x, y + 1, heatAcceptors); + heat = (int) (heat * sEnergy); while ((heatAcceptors.size() > 0) && (heat > 0)) { - heat *=sEnergy; + int dheat = heat / heatAcceptors.size(); heat -= dheat; dheat = ((IReactorComponent)((ItemStackCoord)heatAcceptors.get(0)).stack.getItem()).alterHeat(reactor, ((ItemStackCoord)heatAcceptors.get(0)).stack, ((ItemStackCoord)heatAcceptors.get(0)).x, ((ItemStackCoord)heatAcceptors.get(0)).y, dheat); diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index c859f5345f..85104f4584 100644 --- a/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -39,6 +39,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile public final Materials mMaterial; public final long mCableLossPerMeter, mAmperage, mVoltage; public final boolean mInsulated, mCanShock; + public long mRestRF; public GT_MetaPipeEntity_Cable(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) { super(aID, aName, aNameRegional, 0); @@ -143,6 +144,14 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100); if(((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, true)==rfOut){ ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, false); rUsedAmperes++; + }else if(((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, true)>0){ + if(mRestRF==0){ + int RFtrans = ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, (int) rfOut, false);rUsedAmperes++; + mRestRF = rfOut - RFtrans; + }else{ + int RFtrans = ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, (int) mRestRF, false); + mRestRF = mRestRF - RFtrans; + } } if(GregTech_API.mRFExplosions && ((IEnergyReceiver)tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600){ if(rfOut > 32 * GregTech_API.mEUtoRF / 100) this.doExplosion(rfOut); diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java index 7a6b32d7e6..f3049a4ea7 100644 --- a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java +++ b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java @@ -2,6 +2,10 @@ package gregtech.api.metatileentity.implementations; import static gregtech.api.enums.GT_Values.V; import cofh.api.energy.IEnergyProvider; +import cofh.api.energy.IEnergyStorage; +import crazypants.enderio.machine.capbank.TileCapBank; +import crazypants.enderio.machine.capbank.network.ICapBankNetwork; +import crazypants.enderio.power.IPowerContainer; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -82,7 +86,6 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi for (byte i = 0; i < 6 && aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity(); i++) if (aBaseMetaTileEntity.inputEnergyFrom(i)) { TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i); if (tTileEntity instanceof IEnergySource && ((IEnergySource)tTileEntity).emitsEnergyTo((TileEntity)aBaseMetaTileEntity, ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)))) { -// long tEU = (long)((IEnergySource)tTileEntity).getOfferedEnergy(); long tEU = Math.min(maxEUInput(), (long)((IEnergySource)tTileEntity).getOfferedEnergy()); ((IEnergySource)tTileEntity).drawEnergy(tEU); aBaseMetaTileEntity.injectEnergyUnits((byte)6, tEU, 1); @@ -90,6 +93,30 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi long tEU = Math.min(maxEUInput(), (long)((IEnergyProvider)tTileEntity).extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)),(int) maxEUInput()* 100 / GregTech_API.mRFtoEU ,false)); tEU = tEU * GregTech_API.mRFtoEU / 100; aBaseMetaTileEntity.injectEnergyUnits((byte)6, tEU, 1); + }else if (GregTech_API.mInputRF && tTileEntity instanceof IEnergyStorage&& ((IEnergyStorage)tTileEntity).extractEnergy(1,true)==1) { + long tEU = Math.min(maxEUInput(), (long)((IEnergyStorage)tTileEntity).extractEnergy((int) maxEUInput()* 100 / GregTech_API.mRFtoEU ,false)); + tEU = tEU * GregTech_API.mRFtoEU / 100; + aBaseMetaTileEntity.injectEnergyUnits((byte)6, tEU, 1); + }else if (GregTech_API.mInputRF && GregTech_API.meIOLoaded && tTileEntity instanceof IPowerContainer && ((IPowerContainer)tTileEntity).getEnergyStored()>0) { + int storedRF = ((IPowerContainer)tTileEntity).getEnergyStored(); + int extractRF = (int) maxEUInput()* 100 / GregTech_API.mRFtoEU; + long tEU =0; + if(tTileEntity instanceof TileCapBank){ + ICapBankNetwork network = ((TileCapBank)tTileEntity).getNetwork(); + if(network!=null&&network.getEnergyStoredL()>0){ + tEU = Math.min((Math.min(Math.min(network.getEnergyStoredL(), storedRF-extractRF),network.getMaxOutput())) * GregTech_API.mRFtoEU / 100,maxEUInput()); + network.addEnergy((int) -(tEU * 100 / GregTech_API.mRFtoEU)); + } + }else{ + if(storedRF>extractRF){ + ((IPowerContainer)tTileEntity).setEnergyStored(storedRF-extractRF); + tEU = maxEUInput(); + }else{ + ((IPowerContainer)tTileEntity).setEnergyStored(0); + tEU = storedRF * GregTech_API.mRFtoEU / 100 ; + } + } + aBaseMetaTileEntity.injectEnergyUnits((byte)6, tEU, 1); } } } -- cgit