From aa079e3a7186c0b731d03ba735bc7a02e053ef09 Mon Sep 17 00:00:00 2001 From: UhoMazino <32494642+UhoMazino@users.noreply.github.com> Date: Sun, 9 Dec 2018 18:43:20 +0300 Subject: Fix maintenance cover (#1496) * New public variable init Initiated new public variable which is calculate how much damage get turbine rotor per time, its needed to compare with actual rotor durability. * Fix cover logic Rewrited due a bug maintenance cover logic which is check turbine rotor needed maintenance or not. * Added&rewrited some features for need maintenance. Added new high accuracy mod for need maintenance cover which check rotor state. Fixed old version low accuracy mod. * redo older changes removed variable * fix some shit forgot brakets * Cleanup & reformat code thanks Dimach for help with that --- .../common/covers/GT_Cover_NeedMaintainance.java | 110 +++++++++++++-------- 1 file changed, 69 insertions(+), 41 deletions(-) (limited to 'src/main/java/gregtech/common/covers') diff --git a/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java b/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java index e61324ff44..3316b204dc 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java @@ -7,13 +7,16 @@ import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; -import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; public class GT_Cover_NeedMaintainance extends GT_CoverBehavior { + private boolean isRotor(ItemStack aRotor) { + return !(aRotor == null || !(aRotor.getItem() instanceof GT_MetaGenerated_Tool) || aRotor.getItemDamage() < 170 || aRotor.getItemDamage() > 176); + } + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { boolean needsRepair = false; if (aTileEntity instanceof IGregTechTileEntity) { @@ -23,31 +26,24 @@ public class GT_Cover_NeedMaintainance extends GT_CoverBehavior { GT_MetaTileEntity_MultiBlockBase multi = (GT_MetaTileEntity_MultiBlockBase) mTileEntity; int ideal = multi.getIdealStatus(); int real = multi.getRepairStatus(); - if ((aCoverVariable == 0 || aCoverVariable == 1) && (ideal - real > 0)) { - needsRepair = true; - } - if ((aCoverVariable == 2 || aCoverVariable == 3) && (ideal - real > 1)) { - needsRepair = true; - } - if ((aCoverVariable == 4 || aCoverVariable == 5) && (ideal - real > 2)) { - needsRepair = true; - } - if ((aCoverVariable == 6 || aCoverVariable == 7) && (ideal - real > 3)) { - needsRepair = true; - } - if ((aCoverVariable == 8 || aCoverVariable == 9) && (ideal - real > 4)) { - needsRepair = true; - } - if(aCoverVariable == 10 || aCoverVariable == 11){ - if(multi.getRealInventory()[1]==null || multi.getRealInventory()[1].getItem()!=GT_MetaGenerated_Tool_01.INSTANCE && multi.getRealInventory()[1].getItemDamage()<170){needsRepair = true;} - else{ - ItemStack tTurbine = multi.getRealInventory()[1]; - long tMax = GT_MetaGenerated_Tool.getToolMaxDamage(tTurbine); - long tCur = GT_MetaGenerated_Tool.getToolDamage(tTurbine); - if(tCur < tMax*2/10) - needsRepair = true; - } - + ItemStack tRotor = multi.getRealInventory()[1]; + int coverVar = aCoverVariable >>> 1; + if (coverVar < 5) { + if (ideal - real > coverVar) + needsRepair = true; + } else if (coverVar == 5 || coverVar == 6) { + if (isRotor(tRotor)) { + long tMax = GT_MetaGenerated_Tool.getToolMaxDamage(tRotor); + long tCur = GT_MetaGenerated_Tool.getToolDamage(tRotor); + if (coverVar == 5) { + needsRepair = (tCur >= tMax * 8 / 10); + } else { + long mExpectedDamage = Math.round(Math.min(multi.mEUt / multi.damageFactorLow, Math.pow(multi.mEUt, multi.damageFactorHigh))); + needsRepair = tCur + mExpectedDamage * 2 >= tMax; + } + } else { + needsRepair = true; + } } } } @@ -61,21 +57,53 @@ public class GT_Cover_NeedMaintainance extends GT_CoverBehavior { } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 12; - if(aCoverVariable <0){aCoverVariable = 11;} - switch(aCoverVariable) { - case 0: GT_Utility.sendChatToPlayer(aPlayer, trans("056", "Emit if 1 Maintenance Needed")); break; - case 1: GT_Utility.sendChatToPlayer(aPlayer, trans("057", "Emit if 1 Maintenance Needed(inverted)")); break; - case 2: GT_Utility.sendChatToPlayer(aPlayer, trans("058", "Emit if 2 Maintenance Needed")); break; - case 3: GT_Utility.sendChatToPlayer(aPlayer, trans("059", "Emit if 2 Maintenance Needed(inverted)")); break; - case 4: GT_Utility.sendChatToPlayer(aPlayer, trans("060", "Emit if 3 Maintenance Needed")); break; - case 5: GT_Utility.sendChatToPlayer(aPlayer, trans("061", "Emit if 3 Maintenance Needed(inverted)")); break; - case 6: GT_Utility.sendChatToPlayer(aPlayer, trans("062", "Emit if 4 Maintenance Needed")); break; - case 7: GT_Utility.sendChatToPlayer(aPlayer, trans("063", "Emit if 4 Maintenance Needed(inverted)")); break; - case 8: GT_Utility.sendChatToPlayer(aPlayer, trans("064", "Emit if 5 Maintenance Needed")); break; - case 9: GT_Utility.sendChatToPlayer(aPlayer, trans("065", "Emit if 5 Maintenance Needed(inverted)")); break; - case 10: GT_Utility.sendChatToPlayer(aPlayer, trans("066", "Emit if rotor needs maintenance")); break; - case 11: GT_Utility.sendChatToPlayer(aPlayer, trans("067", "Emit if rotor needs maintenance(inverted)")); break; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking() ? -1 : 1)) % 14; + if (aCoverVariable < 0) { + aCoverVariable = 13; + } + switch (aCoverVariable) { + case 0: + GT_Utility.sendChatToPlayer(aPlayer, trans("056", "Emit if 1 Maintenance Needed")); + break; + case 1: + GT_Utility.sendChatToPlayer(aPlayer, trans("057", "Emit if 1 Maintenance Needed(inverted)")); + break; + case 2: + GT_Utility.sendChatToPlayer(aPlayer, trans("058", "Emit if 2 Maintenance Needed")); + break; + case 3: + GT_Utility.sendChatToPlayer(aPlayer, trans("059", "Emit if 2 Maintenance Needed(inverted)")); + break; + case 4: + GT_Utility.sendChatToPlayer(aPlayer, trans("060", "Emit if 3 Maintenance Needed")); + break; + case 5: + GT_Utility.sendChatToPlayer(aPlayer, trans("061", "Emit if 3 Maintenance Needed(inverted)")); + break; + case 6: + GT_Utility.sendChatToPlayer(aPlayer, trans("062", "Emit if 4 Maintenance Needed")); + break; + case 7: + GT_Utility.sendChatToPlayer(aPlayer, trans("063", "Emit if 4 Maintenance Needed(inverted)")); + break; + case 8: + GT_Utility.sendChatToPlayer(aPlayer, trans("064", "Emit if 5 Maintenance Needed")); + break; + case 9: + GT_Utility.sendChatToPlayer(aPlayer, trans("065", "Emit if 5 Maintenance Needed(inverted)")); + break; + case 10: + GT_Utility.sendChatToPlayer(aPlayer, trans("066", "Emit if rotor needs maintenance low accuracy mod")); + break; + case 11: + GT_Utility.sendChatToPlayer(aPlayer, trans("067", "Emit if rotor needs maintenance low accuracy mod(inverted)")); + break; + case 12: + GT_Utility.sendChatToPlayer(aPlayer, trans("068", "Emit if rotor needs maintenance high accuracy mod")); + break; + case 13: + GT_Utility.sendChatToPlayer(aPlayer, trans("069", "Emit if rotor needs maintenance high accuracy mod(inverted)")); + break; } return aCoverVariable; } -- cgit From 0dcfec64c4976a0a6ac0c2242d11c71afe90e44c Mon Sep 17 00:00:00 2001 From: Jason Mitchell Date: Sat, 22 Jun 2019 14:41:43 -0700 Subject: Populate getDescription() for WAILA --- .../common/covers/GT_Cover_Fluidfilter.java | 39 ++++++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) (limited to 'src/main/java/gregtech/common/covers') diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java index f9f3c64b7d..5fd1608e4c 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java @@ -20,11 +20,34 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { private final int ANY_INPUT_FILTER_OUTPUT = 6; private final int ANY_INPUT_INVERT_OUTPUT = 7; - + public String getDescription(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + int aFilterMode = aCoverVariable & 7; + int aFilterFluid = aCoverVariable >>> 3; + + final FluidStack sFluid = new FluidStack(FluidRegistry.getFluid(aFilterFluid), 1000); + return(String.format("Filtering Fluid: %s Mode: %s", sFluid.getLocalizedName(), getFilterMode(aFilterMode))); + } + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { return aCoverVariable; } + public String getFilterMode(int aFilterMode) { + switch(aFilterMode) { + case FILTER_INPUT_DENY_OUTPUT: return(trans("043", "Filter input, Deny output")); + case INVERT_INPUT_DENY_OUTPUT: return(trans("044", "Invert input, Deny output")); + case FILTER_INPUT_ANY_OUTPUT: return(trans("045", "Filter input, Permit any output")); + case INVERT_INPUT_ANY_OUTPUT: return(trans("046", "Invert input, Permit any output")); + case DENY_INPUT_FILTER_OUTPUT: return(trans("219", "Deny input, Filter output")); + case DENY_INPUT_INVERT_OUTPUT: return(trans("220", "Deny input, Invert output")); + case ANY_INPUT_FILTER_OUTPUT: return(trans("221", "Permit any input, Filter output")); + case ANY_INPUT_INVERT_OUTPUT: return(trans("222", "Permit any input, Invert output")); + default: return("UNKNOWN"); + } + + } + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { int aFilterMode = aCoverVariable & 7; aCoverVariable ^= aFilterMode; @@ -32,17 +55,11 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { if (aFilterMode < 0) { aFilterMode = 7; } - switch(aFilterMode) { - case FILTER_INPUT_DENY_OUTPUT: GT_Utility.sendChatToPlayer(aPlayer, trans("043", "Filter input, Deny output")); break; - case INVERT_INPUT_DENY_OUTPUT: GT_Utility.sendChatToPlayer(aPlayer, trans("044", "Invert input, Deny output")); break; - case FILTER_INPUT_ANY_OUTPUT: GT_Utility.sendChatToPlayer(aPlayer, trans("045", "Filter input, Permit any output")); break; - case INVERT_INPUT_ANY_OUTPUT: GT_Utility.sendChatToPlayer(aPlayer, trans("046", "Invert input, Permit any output")); break; - case DENY_INPUT_FILTER_OUTPUT: GT_Utility.sendChatToPlayer(aPlayer, trans("219", "Deny input, Filter output")); break; - case DENY_INPUT_INVERT_OUTPUT: GT_Utility.sendChatToPlayer(aPlayer, trans("220", "Deny input, Invert output")); break; - case ANY_INPUT_FILTER_OUTPUT: GT_Utility.sendChatToPlayer(aPlayer, trans("221", "Permit any input, Filter output")); break; - case ANY_INPUT_INVERT_OUTPUT: GT_Utility.sendChatToPlayer(aPlayer, trans("222", "Permit any input, Invert output")); break; - } + + GT_Utility.sendChatToPlayer(aPlayer, getFilterMode(aFilterMode)); + aCoverVariable|=aFilterMode; + return aCoverVariable; } -- cgit From 0b369af082599145c893245a1a4003a5dad10d7b Mon Sep 17 00:00:00 2001 From: Jason Mitchell Date: Sat, 22 Jun 2019 15:25:58 -0700 Subject: null checks --- src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/main/java/gregtech/common/covers') diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java index 5fd1608e4c..a398f7d17f 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java @@ -6,7 +6,7 @@ import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.*; - +import static gregtech.api.enums.GT_Values.E; public class GT_Cover_Fluidfilter extends GT_CoverBehavior { @@ -23,8 +23,10 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { public String getDescription(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { int aFilterMode = aCoverVariable & 7; int aFilterFluid = aCoverVariable >>> 3; - - final FluidStack sFluid = new FluidStack(FluidRegistry.getFluid(aFilterFluid), 1000); + final Fluid fluid = FluidRegistry.getFluid(aFilterFluid); + if(fluid == null) return E; + + final FluidStack sFluid = new FluidStack(fluid, 1000); return(String.format("Filtering Fluid: %s Mode: %s", sFluid.getLocalizedName(), getFilterMode(aFilterMode))); } -- cgit From bd10bd57d3db003f63a7abd59422a27894358355 Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Fri, 10 Apr 2020 18:03:14 +0200 Subject: Void miner adjustments (#262) * Added all Ores to Voidminer in DeepDark + removed Infinity Ore Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> * renormalize line endings Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> --- .../gregtech/common/covers/GT_Cover_ItemMeter.java | 158 ++++++++++----------- 1 file changed, 79 insertions(+), 79 deletions(-) (limited to 'src/main/java/gregtech/common/covers') diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java index 83bac2a9ad..40706721c9 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -1,79 +1,79 @@ -package gregtech.common.covers; - -import gregtech.api.interfaces.tileentity.ICoverable; -import gregtech.api.util.GT_CoverBehavior; -import gregtech.api.util.GT_Utility; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; - -public class GT_Cover_ItemMeter - extends GT_CoverBehavior { - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { - int[] tSlots; - if (aCoverVariable < 2) { - tSlots = aTileEntity.getAccessibleSlotsFromSide(aSide); - } else { - tSlots = new int[]{aCoverVariable - 2}; - } - int tMax = 0; - int tUsed = 0; - for (int i : tSlots) { - if (i >= 0 && i < aTileEntity.getSizeInventory()) { - tMax+=64; - ItemStack tStack = aTileEntity.getStackInSlot(i); - if (tStack != null) - tUsed += (tStack.stackSize<<6)/tStack.getMaxStackSize(); - } - } - if(tUsed==0)//nothing - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable == 1 ? 15 : 0)); - else if(tUsed >= tMax)//full - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable == 1 ? 0 : 15)); - else//1-14 range - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable == 1 ? 14-((14*tUsed)/tMax) : 1+((14*tUsed)/tMax)) ); - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % (2 + aTileEntity.getSizeInventory()); - switch(aCoverVariable) { - case 0: GT_Utility.sendChatToPlayer(aPlayer, trans("051", "Normal")); break; - case 1: GT_Utility.sendChatToPlayer(aPlayer, trans("052", "Inverted")); break; - default: GT_Utility.sendChatToPlayer(aPlayer, trans("053", "Slot: ") + (aCoverVariable - 2)); break; - } - return aCoverVariable; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return 5; - } -} +package gregtech.common.covers; + +import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.util.GT_CoverBehavior; +import gregtech.api.util.GT_Utility; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; + +public class GT_Cover_ItemMeter + extends GT_CoverBehavior { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + int[] tSlots; + if (aCoverVariable < 2) { + tSlots = aTileEntity.getAccessibleSlotsFromSide(aSide); + } else { + tSlots = new int[]{aCoverVariable - 2}; + } + int tMax = 0; + int tUsed = 0; + for (int i : tSlots) { + if (i >= 0 && i < aTileEntity.getSizeInventory()) { + tMax+=64; + ItemStack tStack = aTileEntity.getStackInSlot(i); + if (tStack != null) + tUsed += (tStack.stackSize<<6)/tStack.getMaxStackSize(); + } + } + if(tUsed==0)//nothing + aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable == 1 ? 15 : 0)); + else if(tUsed >= tMax)//full + aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable == 1 ? 0 : 15)); + else//1-14 range + aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable == 1 ? 14-((14*tUsed)/tMax) : 1+((14*tUsed)/tMax)) ); + return aCoverVariable; + } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % (2 + aTileEntity.getSizeInventory()); + switch(aCoverVariable) { + case 0: GT_Utility.sendChatToPlayer(aPlayer, trans("051", "Normal")); break; + case 1: GT_Utility.sendChatToPlayer(aPlayer, trans("052", "Inverted")); break; + default: GT_Utility.sendChatToPlayer(aPlayer, trans("053", "Slot: ") + (aCoverVariable - 2)); break; + } + return aCoverVariable; + } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 5; + } +} -- cgit From 0d59868a668a62d0d05c3ea6efbbeb3e9fc80c59 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 3 May 2020 16:51:59 +0200 Subject: Update GT_Cover_SolarPanel.java --- src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/common/covers') diff --git a/src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java b/src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java index b8946199d3..f7c7a95ca3 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java @@ -43,7 +43,7 @@ public class GT_Cover_SolarPanel } } } - if (coverState == 1 || (coverState == 2 && aTimer % 8L == 0L)) { + if (coverState == 1 /*|| (coverState == 2 && aTimer % 8L == 0L)*/) { aTileEntity.injectEnergyUnits((byte) 6, ((100L-(long)coverNum)*((long)this.mVoltage))/100L, 1L); } @@ -81,4 +81,4 @@ public class GT_Cover_SolarPanel public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return 1; } -} \ No newline at end of file +} -- cgit From b1f29c6c04170c322cc2f7631147a4c8f86160cd Mon Sep 17 00:00:00 2001 From: moller21 <42100910+moller21@users.noreply.github.com> Date: Sun, 3 May 2020 23:55:23 +0200 Subject: Added cover guis for pump/filter --- .../common/covers/GT_Cover_Fluidfilter.java | 173 ++++++++++++++++++--- .../java/gregtech/common/covers/GT_Cover_Pump.java | 170 +++++++++++++++++--- 2 files changed, 298 insertions(+), 45 deletions(-) (limited to 'src/main/java/gregtech/common/covers') diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java index a398f7d17f..51db541650 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java @@ -1,24 +1,32 @@ package gregtech.common.covers; +import gregtech.api.enums.GT_Values; +import gregtech.api.gui.GT_GUICover; +import gregtech.api.gui.widgets.GT_GuiFakeItemButton; +import gregtech.api.gui.widgets.GT_GuiIcon; +import gregtech.api.gui.widgets.GT_GuiIconButton; import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.net.GT_Packet_TileEntityCover; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; +import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.*; + import static gregtech.api.enums.GT_Values.E; public class GT_Cover_Fluidfilter extends GT_CoverBehavior { // Uses the lower 3 bits of the cover variable, so we have 8 options to work with (0-7) - private final int FILTER_INPUT_DENY_OUTPUT = 0; - private final int INVERT_INPUT_DENY_OUTPUT = 1; - private final int FILTER_INPUT_ANY_OUTPUT = 2; - private final int INVERT_INPUT_ANY_OUTPUT = 3; - private final int DENY_INPUT_FILTER_OUTPUT = 4; - private final int DENY_INPUT_INVERT_OUTPUT = 5; - private final int ANY_INPUT_FILTER_OUTPUT = 6; - private final int ANY_INPUT_INVERT_OUTPUT = 7; + private final int FILTER_INPUT_DENY_OUTPUT = 0; // 000 + private final int INVERT_INPUT_DENY_OUTPUT = 1; // 001 + private final int FILTER_INPUT_ANY_OUTPUT = 2; // 010 + private final int INVERT_INPUT_ANY_OUTPUT = 3; // 011 + private final int DENY_INPUT_FILTER_OUTPUT = 4; // 100 + private final int DENY_INPUT_INVERT_OUTPUT = 5; // 101 + private final int ANY_INPUT_FILTER_OUTPUT = 6; // 110 + private final int ANY_INPUT_INVERT_OUTPUT = 7; // 111 public String getDescription(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { int aFilterMode = aCoverVariable & 7; @@ -50,21 +58,6 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { } - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - int aFilterMode = aCoverVariable & 7; - aCoverVariable ^= aFilterMode; - aFilterMode = (aFilterMode + (aPlayer.isSneaking()? -1 : 1)) % 8; - if (aFilterMode < 0) { - aFilterMode = 7; - } - - GT_Utility.sendChatToPlayer(aPlayer, getFilterMode(aFilterMode)); - - aCoverVariable|=aFilterMode; - - return aCoverVariable; - } - public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { //GT_FML_LOGGER.info("rightclick"); if ( @@ -142,4 +135,138 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return 0; } + /** + * GUI Stuff + */ + + @Override + public boolean hasCoverGUI() { + return true; + } + + @Override + public Object getClientGUI(byte aSide, int aCoverID, int coverData, ICoverable aTileEntity) { + return new GT_FluidFilterGUICover(aSide, aCoverID, coverData, aTileEntity); + } + + private class GT_FluidFilterGUICover extends GT_GUICover { + private final byte side; + private final int coverID; + private int coverVariable; + private final ICoverable tile; + private GT_GuiFakeItemButton fakeItemButton; + protected String header, filterString; + + private final static int startX = 10; + private final static int startY = 25; + private final static int spaceX = 18; + private final static int spaceY = 18; + + public GT_FluidFilterGUICover(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) + { + this.side = aSide; + this.coverID = aCoverID; + this.coverVariable = aCoverVariable; + this.tile = aTileEntity; + + ItemStack item = GT_Utility.intToStack(aCoverID); + this.header = (item != null) ? item.getDisplayName() : ""; + + GT_GuiIconButton b; + b = new GT_GuiIconButton(this, 0, startX + spaceX*0, startY+spaceY*0, GT_GuiIcon.EXPORT).setTooltipText(trans("043","Filter Input")); + b = new GT_GuiIconButton(this, 1, startX + spaceX*1, startY+spaceY*0, GT_GuiIcon.IMPORT).setTooltipText(trans("044","Filter Output")); + b = new GT_GuiIconButton(this, 2, startX + spaceX*0, startY+spaceY*2, GT_GuiIcon.BLOCK_INPUT).setTooltipText(trans("219", "Block Output")); + b = new GT_GuiIconButton(this, 3, startX + spaceX*1, startY+spaceY*2, GT_GuiIcon.ALLOW_INPUT).setTooltipText(trans("220", "Allow Output")); + b = new GT_GuiIconButton(this, 4, startX + spaceX*0, startY+spaceY*1, GT_GuiIcon.WHITELIST).setTooltipText(trans("045","Whitelist Fluid")); + b = new GT_GuiIconButton(this, 5, startX + spaceX*1, startY+spaceY*1, GT_GuiIcon.BLACKLIST).setTooltipText(trans("046","Blacklist Fluid")); + + new GT_GuiFakeItemButton(this, 5, 5, null).setItem(item); + fakeItemButton = new GT_GuiFakeItemButton(this, startX, startY+spaceY*3+2, GT_GuiIcon.SLOT_DARKGRAY); + } + + private int getNewCoverVariable(int id) { + switch (id) { + case 0: + return (coverVariable & ~0x7) | (coverVariable & 0x3); + case 1: + return (coverVariable & ~0x7) | (coverVariable | 0x4); + case 2: + return (coverVariable & ~0x7) | (coverVariable & 0x5); + case 3: + return (coverVariable & ~0x7) | (coverVariable | 0x2); + case 4: + return (coverVariable & ~0x7) | (coverVariable & 0x6); + case 5: + return (coverVariable & ~0x7) | (coverVariable | 0x1); + } + return coverVariable; + } + + private boolean getClickable(int id) { + switch (id) { + case 0: case 1: + return (coverVariable>>2 & 0x1) != (id & 0x1); + case 2: case 3: + return (coverVariable>>1 & 0x1) != (id & 0x1); + case 4: case 5: + return (coverVariable & 0x1) != (id & 0x1); + } + return false; + } + + + @Override + public void drawExtras(int mouseX, int mouseY, float parTicks) { + this.fontRendererObj.drawString(header, 25, 9, 0xFF222222); + this.fontRendererObj.drawString(trans("016","Filter Direction" ), startX + spaceX*2, 3+startY+spaceY*0, 0xFF555555); + this.fontRendererObj.drawString(trans("223", "Filter Type"), startX + spaceX*2, 3+startY+spaceY*1, 0xFF555555); + this.fontRendererObj.drawString(trans("017","Block Flow"), startX + spaceX*2, 3+startY+spaceY*2, 0xFF555555); + this.fontRendererObj.drawSplitString(filterString, startX + spaceX+3, 4+startY+spaceY*3, gui_width-40 , 0xFF222222); + } + + @Override + protected void onInitGui(int guiLeft, int guiTop, int gui_width, int gui_height) { + updateButtons(); + } + + public void buttonClicked(GuiButton btn){ + if (getClickable(btn.id)){ + coverVariable = getNewCoverVariable(btn.id); + GT_Values.NW.sendToServer(new GT_Packet_TileEntityCover(side, coverID, coverVariable, tile)); + } + updateButtons(); + } + + private void updateButtons(){ + GT_GuiIconButton b; + for (Object o : buttonList) { + if (o instanceof GT_GuiIconButton) { + b = (GT_GuiIconButton) o; + b.enabled = getClickable(b.id); + if (getClickable(1)) { //filtering input + if (b.id == 2) + b.setTooltipText(trans("219", "Block Output")); + else if (b.id == 3) + b.setTooltipText(trans("220", "Allow Output")); + } else { + if (b.id == 2) + b.setTooltipText(trans("221", "Block Input")); + else if (b.id == 3) + b.setTooltipText(trans("222", "Allow Input")); + } + } + } + Fluid f = FluidRegistry.getFluid(coverVariable >>> 3); + if (f != null) { + ItemStack item = GT_Utility.getFluidDisplayStack(f); + if (item != null) { + fakeItemButton.setItem(item); + filterString = item.getDisplayName(); + return; + } + } + fakeItemButton.setItem(null); + filterString = trans("224", "Filter Empty"); + } + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java index 466f6566c0..aeca33783b 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java @@ -1,19 +1,39 @@ package gregtech.common.covers; +import gregtech.api.enums.GT_Values; +import gregtech.api.gui.GT_GUICover; +import gregtech.api.gui.widgets.GT_GuiFakeItemButton; +import gregtech.api.gui.widgets.GT_GuiIconButton; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IMachineProgress; +import gregtech.api.net.GT_Packet_TileEntityCover; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; -import net.minecraft.entity.player.EntityPlayer; +import gregtech.api.gui.widgets.GT_GuiIcon; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; public class GT_Cover_Pump - extends GT_CoverBehavior { + extends GT_CoverBehavior{ public final int mTransferRate; + // {"006", "Export"}, + // {"007", "Import"}, + // {"008", "Export (conditional)"}, + // {"009", "Import (conditional)"}, + // {"010", "Export (invert cond)"}, + // {"011", "Import (invert cond)"}, + // {"012", "Export allow Input"}, + // {"013", "Import allow Output"}, + // {"014", "Export allow Input (conditional)"}, + // {"015", "Import allow Output (conditional)"}, + // {"016", "Export allow Input (invert cond)"}, + // {"017", "Import allow Output (invert cond)"}, + public GT_Cover_Pump(int aTransferRate) { this.mTransferRate = aTransferRate; } @@ -67,26 +87,6 @@ public class GT_Cover_Pump return aCoverVariable; } - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 12; - if(aCoverVariable <0){aCoverVariable = 11;} - switch(aCoverVariable) { - case 0: GT_Utility.sendChatToPlayer(aPlayer, trans("006", "Export")); break; - case 1: GT_Utility.sendChatToPlayer(aPlayer, trans("007", "Import")); break; - case 2: GT_Utility.sendChatToPlayer(aPlayer, trans("008", "Export (conditional)")); break; - case 3: GT_Utility.sendChatToPlayer(aPlayer, trans("009", "Import (conditional)")); break; - case 4: GT_Utility.sendChatToPlayer(aPlayer, trans("010", "Export (invert cond)")); break; - case 5: GT_Utility.sendChatToPlayer(aPlayer, trans("011", "Import (invert cond)")); break; - case 6: GT_Utility.sendChatToPlayer(aPlayer, trans("012", "Export allow Input")); break; - case 7: GT_Utility.sendChatToPlayer(aPlayer, trans("013", "Import allow Output")); break; - case 8: GT_Utility.sendChatToPlayer(aPlayer, trans("014", "Export allow Input (conditional)")); break; - case 9: GT_Utility.sendChatToPlayer(aPlayer, trans("015", "Import allow Output (conditional)")); break; - case 10: GT_Utility.sendChatToPlayer(aPlayer, trans("016", "Export allow Input (invert cond)")); break; - case 11: GT_Utility.sendChatToPlayer(aPlayer, trans("017", "Import allow Output (invert cond)")); break; - } - return aCoverVariable; - } - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return true; } @@ -136,4 +136,130 @@ public class GT_Cover_Pump public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return 1; } + + /** + * GUI Stuff + */ + + @Override + public boolean hasCoverGUI() { + return true; + } + + @Override + public Object getClientGUI(byte aSide, int aCoverID, int coverData, ICoverable aTileEntity) { + return new GT_PumpGUICover(aSide, aCoverID, coverData, aTileEntity); + } + + private class GT_PumpGUICover extends GT_GUICover { + private final byte side; + private final int coverID; + private int coverVariable; + private final ICoverable tile; + protected String header; + + private final static int startX = 10; + private final static int startY = 25; + private final static int spaceX = 18; + private final static int spaceY = 18; + + public GT_PumpGUICover(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + this.side = aSide; + this.coverID = aCoverID; + this.coverVariable = aCoverVariable; + this.tile = aTileEntity; + + ItemStack item = GT_Utility.intToStack(aCoverID); + this.header = (item != null) ? item.getDisplayName() : ""; + new GT_GuiFakeItemButton(this, 5, 5, null).setItem(item); + + GT_GuiIconButton b; + b = new GT_GuiIconButton(this, 0, startX + spaceX*0, startY+spaceY*0, GT_GuiIcon.EXPORT).setTooltipText(trans("006","Export")); + b = new GT_GuiIconButton(this, 1, startX + spaceX*1, startY+spaceY*0, GT_GuiIcon.IMPORT).setTooltipText(trans("007","Import")); + b = new GT_GuiIconButton(this, 2, startX + spaceX*0, startY+spaceY*1, GT_GuiIcon.CHECKMARK).setTooltipText(trans("008","Ignore")); + b = new GT_GuiIconButton(this, 3, startX + spaceX*1, startY+spaceY*1, GT_GuiIcon.REDSTONE_ON).setTooltipText(trans("009","Conditional")); + b = new GT_GuiIconButton(this, 4, startX + spaceX*2, startY+spaceY*1, GT_GuiIcon.REDSTONE_OFF).setTooltipText(trans("010","Invert Condition")); + b = new GT_GuiIconButton(this, 5, startX + spaceX*0, startY+spaceY*2, GT_GuiIcon.ALLOW_INPUT).setTooltipText(trans("011","Allow Input")); + b = new GT_GuiIconButton(this, 6, startX + spaceX*1, startY+spaceY*2, GT_GuiIcon.BLOCK_INPUT).setTooltipText(trans("012","Block Input")); + } + + @Override + public void drawExtras(int mouseX, int mouseY, float parTicks) { + this.fontRendererObj.drawString(header, 25, 9, 0xFF222222); + this.fontRendererObj.drawString(trans("013","Import/Export" ), startX + spaceX*3, 3+startY+spaceY*0, 0xFF555555); + this.fontRendererObj.drawString(trans("014","Conditional"), startX + spaceX*3, 3+startY+spaceY*1, 0xFF555555); + this.fontRendererObj.drawString(trans("015", "Enable Input"), startX + spaceX*3, 3+startY+spaceY*2, 0xFF555555); + } + + @Override + protected void onInitGui(int guiLeft, int guiTop, int gui_width, int gui_height) { + updateButtons(); + } + + public void buttonClicked(GuiButton btn){ + if (getClickable(btn.id)){ + coverVariable = getNewCoverVariable(btn.id); + GT_Values.NW.sendToServer(new GT_Packet_TileEntityCover(side, coverID, coverVariable, tile)); + } + updateButtons(); + } + + private void updateButtons(){ + GuiButton b; + for (Object o : buttonList) { + b = (GuiButton) o; + b.enabled = getClickable(b.id); + } + } + + private int getNewCoverVariable(int id) { + switch (id) { + case 0: + return coverVariable & ~0x1; + case 1: + return coverVariable | 0x1; + case 2: + if (coverVariable > 5) + return 0x6 | (coverVariable & ~0xE); + return (coverVariable & ~0xE); + case 3: + if (coverVariable > 5) + return 0x8 | (coverVariable & ~0xE); + return 0x2 | (coverVariable & ~0xE); + case 4: + if (coverVariable > 5) + return 0xA | (coverVariable & ~0xE); + return (0x4 | (coverVariable & ~0xE)); + case 5: + if (coverVariable <= 5) + return coverVariable + 6; + break; + case 6: + if (coverVariable > 5) + return coverVariable - 6; + } + return coverVariable; + } + + private boolean getClickable(int id) { + if (coverVariable < 0 | 11 < coverVariable) + return false; + + switch (id) { + case 0: case 1: + return (0x1 & coverVariable) != id; + case 2: + return (coverVariable % 6) >= 2; + case 3: + return (coverVariable % 6) < 2 | 4 <= (coverVariable % 6); + case 4: + return (coverVariable % 6) < 4; + case 5: + return coverVariable < 6; + case 6: + return coverVariable >= 6; + } + return false; + } + } } -- cgit From 4dec88757f64c0bdf4a87eff8f3d5c7ba65b7217 Mon Sep 17 00:00:00 2001 From: moller21 <42100910+moller21@users.noreply.github.com> Date: Wed, 6 May 2020 22:25:10 +0200 Subject: Cover gui: Right click to open instead take.2 --- .../common/covers/GT_Cover_Fluidfilter.java | 58 ++++++++++++--------- .../java/gregtech/common/covers/GT_Cover_Pump.java | 60 +++++++++++----------- 2 files changed, 66 insertions(+), 52 deletions(-) (limited to 'src/main/java/gregtech/common/covers') diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java index 51db541650..1fcdf9fccf 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java @@ -58,6 +58,21 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { } + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + int aFilterMode = aCoverVariable & 7; + aCoverVariable ^= aFilterMode; + aFilterMode = (aFilterMode + (aPlayer.isSneaking()? -1 : 1)) % 8; + if (aFilterMode < 0) { + aFilterMode = 7; + } + + GT_Utility.sendChatToPlayer(aPlayer, getFilterMode(aFilterMode)); + + aCoverVariable|=aFilterMode; + + return aCoverVariable; + } + public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { //GT_FML_LOGGER.info("rightclick"); if ( @@ -154,8 +169,8 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { private final int coverID; private int coverVariable; private final ICoverable tile; - private GT_GuiFakeItemButton fakeItemButton; - protected String header, filterString; + private GT_GuiFakeItemButton fluidFilterButton; + protected String fluidFilterName; private final static int startX = 10; private final static int startY = 25; @@ -164,24 +179,21 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { public GT_FluidFilterGUICover(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + super(176, 107, GT_Utility.intToStack(aCoverID)); this.side = aSide; this.coverID = aCoverID; this.coverVariable = aCoverVariable; this.tile = aTileEntity; - ItemStack item = GT_Utility.intToStack(aCoverID); - this.header = (item != null) ? item.getDisplayName() : ""; - GT_GuiIconButton b; - b = new GT_GuiIconButton(this, 0, startX + spaceX*0, startY+spaceY*0, GT_GuiIcon.EXPORT).setTooltipText(trans("043","Filter Input")); - b = new GT_GuiIconButton(this, 1, startX + spaceX*1, startY+spaceY*0, GT_GuiIcon.IMPORT).setTooltipText(trans("044","Filter Output")); - b = new GT_GuiIconButton(this, 2, startX + spaceX*0, startY+spaceY*2, GT_GuiIcon.BLOCK_INPUT).setTooltipText(trans("219", "Block Output")); - b = new GT_GuiIconButton(this, 3, startX + spaceX*1, startY+spaceY*2, GT_GuiIcon.ALLOW_INPUT).setTooltipText(trans("220", "Allow Output")); - b = new GT_GuiIconButton(this, 4, startX + spaceX*0, startY+spaceY*1, GT_GuiIcon.WHITELIST).setTooltipText(trans("045","Whitelist Fluid")); - b = new GT_GuiIconButton(this, 5, startX + spaceX*1, startY+spaceY*1, GT_GuiIcon.BLACKLIST).setTooltipText(trans("046","Blacklist Fluid")); - - new GT_GuiFakeItemButton(this, 5, 5, null).setItem(item); - fakeItemButton = new GT_GuiFakeItemButton(this, startX, startY+spaceY*3+2, GT_GuiIcon.SLOT_DARKGRAY); + b = new GT_GuiIconButton(this, 0, startX + spaceX*0, startY+spaceY*0, GT_GuiIcon.EXPORT).setTooltipText(trans("232","Filter Input")); + b = new GT_GuiIconButton(this, 1, startX + spaceX*1, startY+spaceY*0, GT_GuiIcon.IMPORT).setTooltipText(trans("233","Filter Output")); + b = new GT_GuiIconButton(this, 2, startX + spaceX*0, startY+spaceY*2, GT_GuiIcon.BLOCK_INPUT).setTooltipText(trans("234", "Block Output")); + b = new GT_GuiIconButton(this, 3, startX + spaceX*1, startY+spaceY*2, GT_GuiIcon.ALLOW_INPUT).setTooltipText(trans("235", "Allow Output")); + b = new GT_GuiIconButton(this, 4, startX + spaceX*0, startY+spaceY*1, GT_GuiIcon.WHITELIST).setTooltipText(trans("236","Whitelist Fluid")); + b = new GT_GuiIconButton(this, 5, startX + spaceX*1, startY+spaceY*1, GT_GuiIcon.BLACKLIST).setTooltipText(trans("237","Blacklist Fluid")); + + fluidFilterButton = new GT_GuiFakeItemButton(this, startX, startY+spaceY*3+2, GT_GuiIcon.SLOT_DARKGRAY); } private int getNewCoverVariable(int id) { @@ -217,11 +229,11 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { @Override public void drawExtras(int mouseX, int mouseY, float parTicks) { - this.fontRendererObj.drawString(header, 25, 9, 0xFF222222); - this.fontRendererObj.drawString(trans("016","Filter Direction" ), startX + spaceX*2, 3+startY+spaceY*0, 0xFF555555); - this.fontRendererObj.drawString(trans("223", "Filter Type"), startX + spaceX*2, 3+startY+spaceY*1, 0xFF555555); - this.fontRendererObj.drawString(trans("017","Block Flow"), startX + spaceX*2, 3+startY+spaceY*2, 0xFF555555); - this.fontRendererObj.drawSplitString(filterString, startX + spaceX+3, 4+startY+spaceY*3, gui_width-40 , 0xFF222222); + super.drawExtras(mouseX, mouseY, parTicks); + this.fontRendererObj.drawString(trans("238","Filter Direction" ), startX + spaceX*2, 3+startY+spaceY*0, 0xFF555555); + this.fontRendererObj.drawString(trans("239", "Filter Type"), startX + spaceX*2, 3+startY+spaceY*1, 0xFF555555); + this.fontRendererObj.drawString(trans("240","Block Flow"), startX + spaceX*2, 3+startY+spaceY*2, 0xFF555555); + this.fontRendererObj.drawSplitString(fluidFilterName, startX + spaceX+3, 4+startY+spaceY*3, gui_width-40 , 0xFF222222); } @Override @@ -260,13 +272,13 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { if (f != null) { ItemStack item = GT_Utility.getFluidDisplayStack(f); if (item != null) { - fakeItemButton.setItem(item); - filterString = item.getDisplayName(); + fluidFilterButton.setItem(item); + fluidFilterName = item.getDisplayName(); return; } } - fakeItemButton.setItem(null); - filterString = trans("224", "Filter Empty"); + fluidFilterButton.setItem(null); + fluidFilterName = trans("224", "Filter Empty"); } } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java index aeca33783b..7b98b18a31 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java @@ -2,7 +2,6 @@ package gregtech.common.covers; import gregtech.api.enums.GT_Values; import gregtech.api.gui.GT_GUICover; -import gregtech.api.gui.widgets.GT_GuiFakeItemButton; import gregtech.api.gui.widgets.GT_GuiIconButton; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IMachineProgress; @@ -11,7 +10,7 @@ import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; import gregtech.api.gui.widgets.GT_GuiIcon; import net.minecraft.client.gui.GuiButton; -import net.minecraft.item.ItemStack; +import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; @@ -21,19 +20,6 @@ public class GT_Cover_Pump extends GT_CoverBehavior{ public final int mTransferRate; - // {"006", "Export"}, - // {"007", "Import"}, - // {"008", "Export (conditional)"}, - // {"009", "Import (conditional)"}, - // {"010", "Export (invert cond)"}, - // {"011", "Import (invert cond)"}, - // {"012", "Export allow Input"}, - // {"013", "Import allow Output"}, - // {"014", "Export allow Input (conditional)"}, - // {"015", "Import allow Output (conditional)"}, - // {"016", "Export allow Input (invert cond)"}, - // {"017", "Import allow Output (invert cond)"}, - public GT_Cover_Pump(int aTransferRate) { this.mTransferRate = aTransferRate; } @@ -87,6 +73,26 @@ public class GT_Cover_Pump return aCoverVariable; } + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 12; + if(aCoverVariable <0){aCoverVariable = 11;} + switch(aCoverVariable) { + case 0: GT_Utility.sendChatToPlayer(aPlayer, trans("006", "Export")); break; + case 1: GT_Utility.sendChatToPlayer(aPlayer, trans("007", "Import")); break; + case 2: GT_Utility.sendChatToPlayer(aPlayer, trans("008", "Export (conditional)")); break; + case 3: GT_Utility.sendChatToPlayer(aPlayer, trans("009", "Import (conditional)")); break; + case 4: GT_Utility.sendChatToPlayer(aPlayer, trans("010", "Export (invert cond)")); break; + case 5: GT_Utility.sendChatToPlayer(aPlayer, trans("011", "Import (invert cond)")); break; + case 6: GT_Utility.sendChatToPlayer(aPlayer, trans("012", "Export allow Input")); break; + case 7: GT_Utility.sendChatToPlayer(aPlayer, trans("013", "Import allow Output")); break; + case 8: GT_Utility.sendChatToPlayer(aPlayer, trans("014", "Export allow Input (conditional)")); break; + case 9: GT_Utility.sendChatToPlayer(aPlayer, trans("015", "Import allow Output (conditional)")); break; + case 10: GT_Utility.sendChatToPlayer(aPlayer, trans("016", "Export allow Input (invert cond)")); break; + case 11: GT_Utility.sendChatToPlayer(aPlayer, trans("017", "Import allow Output (invert cond)")); break; + } + return aCoverVariable; + } + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return true; } @@ -156,7 +162,6 @@ public class GT_Cover_Pump private final int coverID; private int coverVariable; private final ICoverable tile; - protected String header; private final static int startX = 10; private final static int startY = 25; @@ -164,31 +169,28 @@ public class GT_Cover_Pump private final static int spaceY = 18; public GT_PumpGUICover(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + super(176, 107, GT_Utility.intToStack(aCoverID)); this.side = aSide; this.coverID = aCoverID; this.coverVariable = aCoverVariable; this.tile = aTileEntity; - ItemStack item = GT_Utility.intToStack(aCoverID); - this.header = (item != null) ? item.getDisplayName() : ""; - new GT_GuiFakeItemButton(this, 5, 5, null).setItem(item); - GT_GuiIconButton b; b = new GT_GuiIconButton(this, 0, startX + spaceX*0, startY+spaceY*0, GT_GuiIcon.EXPORT).setTooltipText(trans("006","Export")); b = new GT_GuiIconButton(this, 1, startX + spaceX*1, startY+spaceY*0, GT_GuiIcon.IMPORT).setTooltipText(trans("007","Import")); - b = new GT_GuiIconButton(this, 2, startX + spaceX*0, startY+spaceY*1, GT_GuiIcon.CHECKMARK).setTooltipText(trans("008","Ignore")); - b = new GT_GuiIconButton(this, 3, startX + spaceX*1, startY+spaceY*1, GT_GuiIcon.REDSTONE_ON).setTooltipText(trans("009","Conditional")); - b = new GT_GuiIconButton(this, 4, startX + spaceX*2, startY+spaceY*1, GT_GuiIcon.REDSTONE_OFF).setTooltipText(trans("010","Invert Condition")); - b = new GT_GuiIconButton(this, 5, startX + spaceX*0, startY+spaceY*2, GT_GuiIcon.ALLOW_INPUT).setTooltipText(trans("011","Allow Input")); - b = new GT_GuiIconButton(this, 6, startX + spaceX*1, startY+spaceY*2, GT_GuiIcon.BLOCK_INPUT).setTooltipText(trans("012","Block Input")); + b = new GT_GuiIconButton(this, 2, startX + spaceX*0, startY+spaceY*1, GT_GuiIcon.CHECKMARK).setTooltipText(trans("224","Ignore")); + b = new GT_GuiIconButton(this, 3, startX + spaceX*1, startY+spaceY*1, GT_GuiIcon.REDSTONE_ON).setTooltipText(trans("225","Conditional")); + b = new GT_GuiIconButton(this, 4, startX + spaceX*2, startY+spaceY*1, GT_GuiIcon.REDSTONE_OFF).setTooltipText(trans("226","Invert Condition")); + b = new GT_GuiIconButton(this, 5, startX + spaceX*0, startY+spaceY*2, GT_GuiIcon.ALLOW_INPUT).setTooltipText(trans("227","Allow Input")); + b = new GT_GuiIconButton(this, 6, startX + spaceX*1, startY+spaceY*2, GT_GuiIcon.BLOCK_INPUT).setTooltipText(trans("228","Block Input")); } @Override public void drawExtras(int mouseX, int mouseY, float parTicks) { - this.fontRendererObj.drawString(header, 25, 9, 0xFF222222); - this.fontRendererObj.drawString(trans("013","Import/Export" ), startX + spaceX*3, 3+startY+spaceY*0, 0xFF555555); - this.fontRendererObj.drawString(trans("014","Conditional"), startX + spaceX*3, 3+startY+spaceY*1, 0xFF555555); - this.fontRendererObj.drawString(trans("015", "Enable Input"), startX + spaceX*3, 3+startY+spaceY*2, 0xFF555555); + super.drawExtras(mouseX, mouseY, parTicks); + this.fontRendererObj.drawString(trans("229","Import/Export" ), startX + spaceX*3, 3+startY+spaceY*0, 0xFF555555); + this.fontRendererObj.drawString(trans("230","Conditional"), startX + spaceX*3, 3+startY+spaceY*1, 0xFF555555); + this.fontRendererObj.drawString(trans("231", "Enable Input"), startX + spaceX*3, 3+startY+spaceY*2, 0xFF555555); } @Override -- cgit From ea1bf1b9b362f64b3c6d82c269ce9f66c82ee559 Mon Sep 17 00:00:00 2001 From: moller21 <42100910+moller21@users.noreply.github.com> Date: Sun, 10 May 2020 15:18:48 +0200 Subject: Cover GUI: added fluid regulator, finished open on shiftrightclick. --- .../common/covers/GT_Cover_FluidRegulator.java | 164 +++++++++++++++++++++ .../common/covers/GT_Cover_Fluidfilter.java | 6 +- .../java/gregtech/common/covers/GT_Cover_Pump.java | 4 +- 3 files changed, 167 insertions(+), 7 deletions(-) (limited to 'src/main/java/gregtech/common/covers') diff --git a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java index 3587829177..39c87669f1 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java @@ -1,8 +1,15 @@ package gregtech.common.covers; +import gregtech.api.enums.GT_Values; +import gregtech.api.gui.GT_GUICover; +import gregtech.api.gui.widgets.GT_GuiIcon; +import gregtech.api.gui.widgets.GT_GuiIconButton; +import gregtech.api.gui.widgets.GT_GuiIntegerTextBox; import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.net.GT_Packet_TileEntityCover; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; +import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; @@ -134,4 +141,161 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehavior { public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return 1; } + + /** + * GUI Stuff + */ + + @Override + public boolean hasCoverGUI() { + return true; + } + + @Override + public Object getClientGUI(byte aSide, int aCoverID, int coverData, ICoverable aTileEntity) { + return new GT_Cover_FluidRegulator.GUI(aSide, aCoverID, coverData, aTileEntity); + } + + private class GUI extends GT_GUICover { + private final byte side; + private final int coverID; + private GT_GuiIntegerTextBox tBox, lBox; + private int coverVariable; + + private final static int startX = 10; + private final static int startY = 25; + private final static int spaceX = 18; + private final static int spaceY = 18; + + private int speed; + private boolean export; + + public GUI(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + super(aTileEntity, 176, 107, GT_Utility.intToStack(aCoverID)); + this.side = aSide; + this.coverID = aCoverID; + this.coverVariable = aCoverVariable; + + this.speed = Math.abs(coverVariable); + this.export = coverVariable >= 0; + new GT_GuiIconButton(this, 0,startX + spaceX*0,startY+spaceY*0, GT_GuiIcon.EXPORT).setTooltipText(trans("006","Export")); + new GT_GuiIconButton(this, 1,startX + spaceX*1,startY+spaceY*0, GT_GuiIcon.IMPORT).setTooltipText(trans("007","Import")); + + tBox = new GT_GuiIntegerTextBox(this, 2,startX + spaceX*0,startY+spaceY*1 + 2, spaceX*4-3,12); + tBox.setText(String.valueOf(speed)); + tBox.setMaxStringLength(10); + + lBox = new GT_GuiIntegerTextBox(this, 3,startX + spaceX*0,startY+spaceY*2 + 2, spaceX*4-3,12); + lBox.setText(String.valueOf(speed*20L)); + lBox.setMaxStringLength(10); + } + + @Override + public void drawExtras(int mouseX, int mouseY, float parTicks) { + super.drawExtras(mouseX, mouseY, parTicks); + this.getFontRenderer().drawString(trans("229","Import/Export" ), startX + spaceX*4, 4+startY+spaceY*0, 0xFF555555); + this.getFontRenderer().drawString(trans("049", "L/tick "), startX + spaceX*4, 4+startY+spaceY*1, 0xFF555555); + this.getFontRenderer().drawString(trans("050", "L/sec"), startX + spaceX*4, 4+startY+spaceY*2, 0xFF555555); + } + + @Override + protected void onInitGui(int guiLeft, int guiTop, int gui_width, int gui_height) { + updateButtons(); + tBox.setFocused(true); + } + + public void buttonClicked(GuiButton btn){ + if (getClickable(btn.id)){ + coverVariable = getNewCoverVariable(btn.id); + GT_Values.NW.sendToServer(new GT_Packet_TileEntityCover(side, coverID, coverVariable, tile)); + } + updateButtons(); + } + + @Override + public void onMouseWheel(int x, int y, int delta) { + for (GT_GuiIntegerTextBox box : textBoxes){ + if (box.isFocused()) { + int step = Math.max(1, Math.abs(delta / 120)); + step = (isShiftKeyDown() ? 50 : isCtrlKeyDown() ? 5 : 1) * (delta > 0 ? step : -step); + long i; + try { + i = Long.parseLong(box.getText()); + } catch (NumberFormatException e) { + return; + } + if (i > (Long.MAX_VALUE-1000)) + break; + + i = i + step; + if (i <= 0) + i = 0; + box.setText(String.valueOf(i)); + break; + } + } + } + + @Override + public void applyTextBox(GT_GuiIntegerTextBox box) { + long i; + String s = box.getText().trim(); + try { + i = Long.parseLong(s); + } catch (NumberFormatException e) { + resetTextBox(box); + return; + } + + if (box.id == 3) + i = i / 20; + + if (i > mTransferRate) + i = mTransferRate; + else if (i <= 0) + i = 0; + + speed = (int) i; + + tBox.setText(String.valueOf(speed)); + lBox.setText(String.valueOf(speed*20)); + + coverVariable = getNewCoverVariable(2); + GT_Values.NW.sendToServer(new GT_Packet_TileEntityCover(side, coverID, coverVariable, tile)); + } + + @Override + public void resetTextBox(GT_GuiIntegerTextBox box) { + box.setText(String.valueOf(speed)); + } + + private void updateButtons(){ + GuiButton b; + for (Object o : buttonList) { + b = (GuiButton) o; + b.enabled = getClickable(b.id); + } + } + + private int getNewCoverVariable(int id) { + switch (id) { + case 0: + export = true; + return speed; + case 1: + export = false; + return -speed; + case 2: + if (export) + return speed; + else + return -speed; + } + return coverVariable; + } + + private boolean getClickable(int id) { + return (id == 0) ^ (export); + } + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java index 1fcdf9fccf..0a213bb844 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java @@ -168,8 +168,7 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { private final byte side; private final int coverID; private int coverVariable; - private final ICoverable tile; - private GT_GuiFakeItemButton fluidFilterButton; + private final GT_GuiFakeItemButton fluidFilterButton; protected String fluidFilterName; private final static int startX = 10; @@ -179,11 +178,10 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehavior { public GT_FluidFilterGUICover(byte aSide, int aCoverID, int aCo