diff options
Diffstat (limited to 'src')
6 files changed, 78 insertions, 45 deletions
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java index 984a2c2a67..f41c55e98b 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java @@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; +import static com.github.technus.tectech.elementalMatter.commonValues.multiCheckAt; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.GregTech_API.mEUtoRF; @@ -49,11 +50,6 @@ public class GT_MetaTileEntity_EM_infuser extends GT_MetaTileEntity_MultiblockBa } @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachineEM(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "EMDisplayPower.png"); - } - - @Override public boolean checkMachine(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { int xDir = ForgeDirection.getOrientation(iGregTechTileEntity.getBackFacing()).offsetX; int yDir = ForgeDirection.getOrientation(iGregTechTileEntity.getBackFacing()).offsetY; @@ -81,23 +77,51 @@ public class GT_MetaTileEntity_EM_infuser extends GT_MetaTileEntity_MultiblockBa @Override public boolean EM_checkRecipe(ItemStack itemStack) { - if (getBaseMetaTileEntity().isAllowedToWork() && itemStack!=null && itemStack.stackSize==1) { + if (itemStack!=null && itemStack.stackSize==1) { Item ofThis=itemStack.getItem(); - if(itemStack.getItem() instanceof IElectricItem){ - doChargeItemStack((IElectricItem) ofThis,itemStack); - }else if(TecTech.hasCOFH && itemStack.getItem() instanceof IEnergyContainerItem){ - doChargeItemStackRF((IEnergyContainerItem) ofThis,itemStack); + if(ofThis instanceof IElectricItem){ + mEfficiencyIncrease = 10000; + mMaxProgresstime = 20; + eDismatleBoom=true; + return true; + }else if(TecTech.hasCOFH && ofThis instanceof IEnergyContainerItem){ + mEfficiencyIncrease = 10000; + mMaxProgresstime = 20; + eDismatleBoom=true; + return true; } - mEfficiencyIncrease = 10000; - mMaxProgresstime = 20; - eDismatleBoom=true; - } else { - mEfficiencyIncrease = 0; - mMaxProgresstime = 0; - eDismatleBoom=false; } + mEfficiencyIncrease = 0; + mMaxProgresstime = 0; + eDismatleBoom=false; eAmpereFlow = 0; - return ePowerPass; + mEUt = 0; + return false; + } + + @Override + public void EM_outputFunction() { + ItemStack itemStack=mInventory[1]; + if (itemStack!=null && itemStack.stackSize==1) { + Item ofThis=itemStack.getItem(); + if(ofThis instanceof IElectricItem){ + if(doChargeItemStack((IElectricItem) ofThis,itemStack)==0) + this.getBaseMetaTileEntity().disableWorking(); + return; + }else if(TecTech.hasCOFH && ofThis instanceof IEnergyContainerItem){ + if(doChargeItemStackRF((IEnergyContainerItem) ofThis,itemStack)==0) + this.getBaseMetaTileEntity().disableWorking(); + return; + } + } + this.getBaseMetaTileEntity().disableWorking(); + } + + @Override + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if ((aTick & 31) == 31) { + eSafeVoid=false; + } } @Override @@ -111,33 +135,39 @@ public class GT_MetaTileEntity_EM_infuser extends GT_MetaTileEntity_MultiblockBa }; } - private void doChargeItemStack(IElectricItem item, ItemStack stack ) + private long doChargeItemStack(IElectricItem item, ItemStack stack) { try { double euDiff=item.getMaxCharge(stack) - ElectricItem.manager.getCharge(stack); if(euDiff>0)this.setEUVar(this.getEUVar()-this.getEUVar()>>5); - this.setEUVar( - this.getEUVar()-(long)Math.ceil( - ElectricItem.manager.charge(stack, - Math.min(euDiff,this.getEUVar()) - ,item.getTier(stack),true,false) - )); + long remove=(long)Math.ceil( + ElectricItem.manager.charge(stack, + Math.min(euDiff,this.getEUVar()) + ,item.getTier(stack),true,false)); + this.setEUVar(this.getEUVar()-remove); + if(this.getEUVar()<0)this.setEUVar(0); + return remove; } catch( Exception e ) { if(TecTech.ModConfig.DEBUG_MODE) e.printStackTrace(); } + return 0; } - private void doChargeItemStackRF(IEnergyContainerItem item, ItemStack stack ) + private long doChargeItemStackRF(IEnergyContainerItem item, ItemStack stack ) { try { long RF=Math.min(item.getMaxEnergyStored(stack)-item.getEnergyStored(stack),this.getEUVar()*mEUtoRF/100L); //if(RF>0)this.setEUVar(this.getEUVar()-this.getEUVar()>>10); RF=item.receiveEnergy(stack,RF>Integer.MAX_VALUE?Integer.MAX_VALUE:(int)RF,false); - this.setEUVar(this.getEUVar()-(RF*100L/mEUtoRF)); + RF=RF*100L/mEUtoRF; + this.setEUVar(this.getEUVar()-RF); + if(this.getEUVar()<0)this.setEUVar(0); + return RF; } catch( Exception e ) { if (TecTech.ModConfig.DEBUG_MODE) e.printStackTrace(); } + return 0; } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java index 8c06ceb7e6..5cc48e65dc 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java @@ -41,11 +41,6 @@ public class GT_MetaTileEntity_EM_transformer extends GT_MetaTileEntity_Multiblo } @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachineEM(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "EMDisplayPower.png"); - } - - @Override public boolean checkMachine(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { int xDir = ForgeDirection.getOrientation(iGregTechTileEntity.getBackFacing()).offsetX; int yDir = ForgeDirection.getOrientation(iGregTechTileEntity.getBackFacing()).offsetY; @@ -97,14 +92,9 @@ public class GT_MetaTileEntity_EM_transformer extends GT_MetaTileEntity_Multiblo @Override public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if ((aTick % 20) == multiCheckAt) { - if (eSafeVoid) { - eSafeVoid = false; - if (aBaseMetaTileEntity.isAllowedToWork()) - aBaseMetaTileEntity.disableWorking(); - else aBaseMetaTileEntity.enableWorking(); - } + if ((aTick & 31) == 31) { ePowerPass = aBaseMetaTileEntity.isAllowedToWork(); + eSafeVoid=false; } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/gui/GT_Container_MultiMachineEM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/gui/GT_Container_MultiMachineEM.java index 25ad29c33c..dc0ba2850d 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/gui/GT_Container_MultiMachineEM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/gui/GT_Container_MultiMachineEM.java @@ -14,7 +14,7 @@ public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine { public byte[] eParamsInStatus = new byte[20];//unused 0,G ok 1, B too low 2, R too high 3, Y blink dangerous 4,5 public byte[] eParamsOutStatus = new byte[20]; public byte eCertainMode = 5, eCertainStatus = 127; - public boolean ePowerPass = false, eSafeVoid = false; + public boolean ePowerPass = false, eSafeVoid = false, allowedToWork = false; public GT_Container_MultiMachineEM(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { super(aInventoryPlayer, aTileEntity); @@ -27,8 +27,9 @@ public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine { @Override public void addSlots(InventoryPlayer aInventoryPlayer) { addSlotToContainer(new Slot(mTileEntity, 1, 152, -21)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 152, 0, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 152, 21, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 152, -2, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 152, 15, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 152, 32, false, false, 1)); } @Override @@ -45,6 +46,13 @@ public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine { case 2: base.eSafeVoid ^= true; break; + case 3: + if(base.getBaseMetaTileEntity().isAllowedToWork()) { + base.getBaseMetaTileEntity().disableWorking(); + }else{ + base.getBaseMetaTileEntity().enableWorking(); + } + break; } } return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); @@ -61,6 +69,7 @@ public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine { this.eCertainStatus = ((GT_MetaTileEntity_MultiblockBase_EM) this.mTileEntity.getMetaTileEntity()).eCertainStatus; this.ePowerPass = ((GT_MetaTileEntity_MultiblockBase_EM) this.mTileEntity.getMetaTileEntity()).ePowerPass; this.eSafeVoid = ((GT_MetaTileEntity_MultiblockBase_EM) this.mTileEntity.getMetaTileEntity()).eSafeVoid; + this.allowedToWork = this.mTileEntity.isAllowedToWork(); for (Object crafter : this.crafters) { ICrafting var1 = (ICrafting) crafter; @@ -68,7 +77,7 @@ public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine { for (int j = 0; j < eParamsInStatus.length; j++) var1.sendProgressBarUpdate(this, i++, eParamsInStatus[j] | (eParamsOutStatus[j] << 8)); var1.sendProgressBarUpdate(this, 120, eCertainMode | (eCertainStatus << 8)); - var1.sendProgressBarUpdate(this, 121, (ePowerPass ? 1 : 0) + (eSafeVoid ? 2 : 0)); + var1.sendProgressBarUpdate(this, 121, (ePowerPass ? 1 : 0) + (eSafeVoid ? 2 : 0) + (allowedToWork ? 4 : 0)); } } @@ -85,6 +94,7 @@ public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine { } else if (par1 == 121) { this.ePowerPass = (par2 & 1) == 1; this.eSafeVoid = (par2 & 2) == 2; + this.allowedToWork = (par2 & 4) == 4; } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/gui/GT_GUIContainer_MultiMachineEM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/gui/GT_GUIContainer_MultiMachineEM.java index 2e2377e8e9..595d280c18 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/gui/GT_GUIContainer_MultiMachineEM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/gui/GT_GUIContainer_MultiMachineEM.java @@ -68,10 +68,13 @@ public class GT_GUIContainer_MultiMachineEM extends GT_GUIContainerMetaTile_Mach GL11.glColor4f(1f, 1f, 1f, 1f); if (((GT_Container_MultiMachineEM) mContainer).ePowerPass) - drawTexturedModalRect(x + 151, y + 25, 183, 25, 18, 18); + drawTexturedModalRect(x + 151, y + 23, 183, 23, 18, 18); if (((GT_Container_MultiMachineEM) mContainer).eSafeVoid) - drawTexturedModalRect(x + 151, y + 46, 183, 46, 18, 18); + drawTexturedModalRect(x + 151, y + 41, 183, 41, 18, 18); + + if (((GT_Container_MultiMachineEM) mContainer).allowedToWork) + drawTexturedModalRect(x + 151, y + 57, 183, 57, 18, 18); x += 11; y += 96; diff --git a/src/main/resources/assets/gregtech/textures/gui/multimachines/EMDisplay.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/EMDisplay.png Binary files differindex b3a8ec6b41..d613b0eee9 100644 --- a/src/main/resources/assets/gregtech/textures/gui/multimachines/EMDisplay.png +++ b/src/main/resources/assets/gregtech/textures/gui/multimachines/EMDisplay.png diff --git a/src/main/resources/assets/gregtech/textures/gui/multimachines/EMDisplayPower.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/EMDisplayPower.png Binary files differdeleted file mode 100644 index a11ebc600e..0000000000 --- a/src/main/resources/assets/gregtech/textures/gui/multimachines/EMDisplayPower.png +++ /dev/null |