diff options
Diffstat (limited to 'src/main')
63 files changed, 1010 insertions, 444 deletions
diff --git a/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java b/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java index 26b94a00e4..7c7e6ec38a 100644 --- a/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java +++ b/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java @@ -3,7 +3,7 @@ package gregtech.api.gui; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; @@ -206,7 +206,8 @@ public class GT_ContainerMetaTile_Machine extends GT_Container { return mTileEntity.isUseableByPlayer(player); } + @Deprecated public String trans(String aKey, String aEnglish) { - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_" + aKey, aEnglish, false); + return GT_Utility.trans(aKey, aEnglish); } } diff --git a/src/main/java/gregtech/api/gui/GT_Container_SpecialFilter.java b/src/main/java/gregtech/api/gui/GT_Container_SpecialFilter.java index 31d257c887..fef857a7ae 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_SpecialFilter.java +++ b/src/main/java/gregtech/api/gui/GT_Container_SpecialFilter.java @@ -54,45 +54,45 @@ public class GT_Container_SpecialFilter extends GT_ContainerMetaTile_Machine { if (aSlotIndex == 10) { ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bOutput); if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, trans("116","Emit Energy to Outputside")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("116","Emit Energy to Outputside")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("117","Don't emit Energy")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("117","Don't emit Energy")); } return null; } if (aSlotIndex == 11) { ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer(aPlayer, trans("122","Emit Redstone if slots contain something")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("122","Emit Redstone if slots contain something")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("123","Don't emit Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("123","Don't emit Redstone")); } return null; } if (aSlotIndex == 12) { ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvert); if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, trans("120","Invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("120","Invert Redstone")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("121","Don't invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("121","Don't invert Redstone")); } return null; } if (aSlotIndex == 13) { ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvertFilter = (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvertFilter); if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvertFilter) { - GT_Utility.sendChatToPlayer(aPlayer, trans("124","Invert Filter")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("124","Invert Filter")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("125","Don't invert Filter")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("125","Don't invert Filter")); } return null; } if (aSlotIndex == 14) { ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bNBTAllowed = (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bNBTAllowed); if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bNBTAllowed) { - GT_Utility.sendChatToPlayer(aPlayer, trans("126","Ignore NBT")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("126","Ignore NBT")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("127","NBT has to match")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("127","NBT has to match")); } return null; } diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java index 85c94cd723..92121df0ea 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java @@ -10,8 +10,10 @@ import gregtech.api.gui.widgets.GT_GuiSlotTooltip; import gregtech.api.gui.widgets.GT_GuiSmartTooltip; import gregtech.api.gui.widgets.GT_GuiSmartTooltip.TooltipVisibilityProvider; import gregtech.api.net.GT_Packet_SetConfigurationCircuit; +import gregtech.common.power.Power; import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.nei.NEI_TransferRectHost; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; @@ -28,7 +30,7 @@ import static gregtech.api.enums.GT_Values.RES_PATH_GUI; * As the NEI-RecipeTransferRect Handler can't handle one GUI-Class for all GUIs I needed to produce some dummy-classes * which extend this class */ -public class GT_GUIContainer_BasicMachine extends GT_GUIContainerMetaTile_Machine { +public class GT_GUIContainer_BasicMachine extends GT_GUIContainerMetaTile_Machine implements NEI_TransferRectHost { private static final int NEEDS_STEAM_VENTING = 64; private final static GT_GuiTabIconSet TAB_ICONSET_BRONZE = new GT_GuiTabIconSet( GT_GuiIcon.TAB_NORMAL_BRONZE, @@ -256,4 +258,29 @@ public class GT_GUIContainer_BasicMachine extends GT_GUIContainerMetaTile_Machin private GT_Container_BasicMachine getContainer() { return (GT_Container_BasicMachine) mContainer; } + + @Override + public String getNeiTransferRectString() { + return mNEI; + } + + @Override + public String getNeiTransferRectTooltip() { + Power powerInfo = getMachine().getPower(); + if (getMachine().isSteampowered()) { + return powerInfo.getTierString() + " Steam recipes"; + } else { + return "Recipes available in " + powerInfo.getTierString(); + } + } + + @Override + public Object[] getNeiTransferRectArgs() { + return new Object[]{getMachine().getPower()}; + } + + @Override + public Rectangle getNeiTransferRect() { + return new Rectangle(65, 13, 36, 18); + } } diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java index 0620701311..a477789d06 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java @@ -1,7 +1,6 @@ package gregtech.api.gui; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gregtech.common.items.GT_MetaGenerated_Tool_01; @@ -35,45 +34,46 @@ public class GT_GUIContainer_MultiMachine extends GT_GUIContainerMetaTile_Machin if (mContainer != null) {//(mWrench ? 0 : 1) | (mScrewdriver ? 0 : 2) | (mSoftHammer ? 0 : 4) | (mHardHammer ? 0 : 8) | (mSolderingTool ? 0 : 16) | (mCrowbar ? 0 : 32) | (mMachine ? 0 : 64)); if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 1) != 0) - fontRendererObj.drawString(trans("132", "Pipe is loose."), 10, 16, 16448255); + fontRendererObj.drawString(GT_Utility.trans("132", "Pipe is loose."), 10, 16, 16448255); if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 2) != 0) - fontRendererObj.drawString(trans("133", "Screws are loose."), 10, 24, 16448255); + fontRendererObj.drawString(GT_Utility.trans("133", "Screws are loose."), 10, 24, 16448255); if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 4) != 0) - fontRendererObj.drawString(trans("134", "Something is stuck."), 10, 32, 16448255); + fontRendererObj.drawString(GT_Utility.trans("134", "Something is stuck."), 10, 32, 16448255); if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 8) != 0) - fontRendererObj.drawString(trans("135", "Platings are dented."), 10, 40, 16448255); + fontRendererObj.drawString(GT_Utility.trans("135", "Platings are dented."), 10, 40, 16448255); if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 16) != 0) - fontRendererObj.drawString(trans("136", "Circuitry burned out."), 10, 48, 16448255); + fontRendererObj.drawString(GT_Utility.trans("136", "Circuitry burned out."), 10, 48, 16448255); if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 32) != 0) - fontRendererObj.drawString(trans("137", "That doesn't belong there."), 10, 56, 16448255); + fontRendererObj.drawString(GT_Utility.trans("137", "That doesn't belong there."), 10, 56, 16448255); if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 64) != 0) - fontRendererObj.drawString(trans("138", "Incomplete Structure."), 10, 64, 16448255); + fontRendererObj.drawString(GT_Utility.trans("138", "Incomplete Structure."), 10, 64, 16448255); if (((GT_Container_MultiMachine) mContainer).mDisplayErrorCode == 0) { if (((GT_Container_MultiMachine) mContainer).mActive == 0) { - fontRendererObj.drawString(trans("139", "Hit with Soft Mallet"), 10, 16, 16448255); - fontRendererObj.drawString(trans("140", "to (re-)start the Machine"), 10, 24, 16448255); - fontRendererObj.drawString(trans("141", "if it doesn't start."), 10, 32, 16448255); + fontRendererObj.drawString(GT_Utility.trans("139", "Hit with Soft Mallet"), 10, 16, 16448255); + fontRendererObj.drawString(GT_Utility.trans("140", "to (re-)start the Machine"), 10, 24, 16448255); + fontRendererObj.drawString(GT_Utility.trans("141", "if it doesn't start."), 10, 32, 16448255); } else { - fontRendererObj.drawString(trans("142", "Running perfectly."), 10, 16, 16448255); + fontRendererObj.drawString(GT_Utility.trans("142", "Running perfectly."), 10, 16, 16448255); } if (mContainer.mTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_DrillerBase) { ItemStack tItem = mContainer.mTileEntity.getMetaTileEntity().getStackInSlot(1); if (tItem == null || !GT_Utility.areStacksEqual(tItem, GT_ModHandler.getIC2Item("miningPipe", 1L))) { - fontRendererObj.drawString(trans("143", "Missing Mining Pipe"), 10, ((GT_Container_MultiMachine) mContainer).mActive == 0 ? 40 : 24, 16448255); + fontRendererObj.drawString(GT_Utility.trans("143", "Missing Mining Pipe"), 10, ((GT_Container_MultiMachine) mContainer).mActive == 0 ? 40 : 24, 16448255); } } else if (mContainer.mTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_LargeTurbine) { ItemStack tItem = mContainer.mTileEntity.getMetaTileEntity().getStackInSlot(1); if (tItem == null || !(tItem.getItem() == GT_MetaGenerated_Tool_01.INSTANCE && tItem.getItemDamage() >= 170 && tItem.getItemDamage() <= 177)) { - fontRendererObj.drawString(trans("144", "Missing Turbine Rotor"), 10, ((GT_Container_MultiMachine) mContainer).mActive == 0 ? 40 : 24, 16448255); + fontRendererObj.drawString(GT_Utility.trans("144", "Missing Turbine Rotor"), 10, ((GT_Container_MultiMachine) mContainer).mActive == 0 ? 40 : 24, 16448255); } } } } } + @Deprecated public String trans(String aKey, String aEnglish) { - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_" + aKey, aEnglish, false); + return GT_Utility.trans(aKey, aEnglish); } @Override diff --git a/src/main/java/gregtech/api/gui/widgets/GT_GuiTooltip.java b/src/main/java/gregtech/api/gui/widgets/GT_GuiTooltip.java index b18811af05..21648b74fe 100644 --- a/src/main/java/gregtech/api/gui/widgets/GT_GuiTooltip.java +++ b/src/main/java/gregtech/api/gui/widgets/GT_GuiTooltip.java @@ -75,6 +75,7 @@ public class GT_GuiTooltip { */ public void setToolTipText(String... text) { this.data = formatTooltip(text); + this.displayedText = data.text; } /** diff --git a/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java b/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java index 142737a528..4463e44e54 100644 --- a/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java +++ b/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java @@ -1,6 +1,7 @@ package gregtech.api.items; import gregtech.api.GregTech_API; +import gregtech.api.util.GT_Utility; import ic2.core.util.StackUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -66,7 +67,7 @@ public class GT_CoolantCell_Item case 8: color = EnumChatFormatting.RED; break; default: color = EnumChatFormatting.DARK_RED; break; } - aList.add(EnumChatFormatting.WHITE + String.format(trans("000", "Stored Heat: %s"), "" + color + getHeatOfStack(aStack))); + aList.add(EnumChatFormatting.WHITE + String.format(GT_Utility.trans("000", "Stored Heat: %s"), "" + color + getHeatOfStack(aStack))); switch (getControlTagOfStack(aStack)) { case 1: aList.add(StatCollector.translateToLocal("ic2.reactoritem.heatwarning.line1")); diff --git a/src/main/java/gregtech/api/items/GT_Generic_Item.java b/src/main/java/gregtech/api/items/GT_Generic_Item.java index f25eb73e87..382bb1e3af 100644 --- a/src/main/java/gregtech/api/items/GT_Generic_Item.java +++ b/src/main/java/gregtech/api/items/GT_Generic_Item.java @@ -143,7 +143,8 @@ public class GT_Generic_Item extends Item implements IProjectileItem { public boolean hasContainerItem(ItemStack aStack) { return getContainerItem(aStack) != null; } - + + @Deprecated public String trans(String aKey, String aEnglish){ return GT_LanguageManager.addStringLocalization("Item_DESCRIPTION_Index_"+aKey, aEnglish, false); } diff --git a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java index 2f6685553e..b325f469df 100644 --- a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java +++ b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java @@ -39,7 +39,6 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci * Creates the Item using these Parameters. * * @param aUnlocalized The Unlocalized Name of this Item. - * @param aGeneratedPrefixList The OreDict Prefixes you want to have generated. */ public GT_MetaBase_Item(String aUnlocalized) { super(aUnlocalized, "Generated Item", null, false); @@ -195,13 +194,13 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci tStats = getElectricStats(aStack); if (tStats != null) { if (tStats[3] > 0) { - aList.add(EnumChatFormatting.AQUA + String.format(trans("009", "Contains %s EU Tier: %s"), GT_Utility.formatNumbers(tStats[3]), "" + (tStats[2] >= 0 ? tStats[2] : 0)) + EnumChatFormatting.GRAY); + aList.add(EnumChatFormatting.AQUA + String.format(GT_Utility.trans("009", "Contains %s EU Tier: %s"), GT_Utility.formatNumbers(tStats[3]), "" + (tStats[2] >= 0 ? tStats[2] : 0)) + EnumChatFormatting.GRAY); } else { long tCharge = getRealCharge(aStack); if (tStats[3] == -2 && tCharge <= 0) { - aList.add(EnumChatFormatting.AQUA + trans("010", "Empty. You should recycle it properly.") + EnumChatFormatting.GRAY); + aList.add(EnumChatFormatting.AQUA + GT_Utility.trans("010", "Empty. You should recycle it properly.") + EnumChatFormatting.GRAY); } else { - aList.add(String.valueOf(EnumChatFormatting.AQUA) + String.format(trans("011", "%s / %s EU - Voltage: %s"), GT_Utility.formatNumbers(tCharge), GT_Utility.formatNumbers(Math.abs(tStats[0])), "" + V[(int) (tStats[2] >= 0 ? tStats[2] < V.length ? tStats[2] : V.length - 1 : 1)]) + EnumChatFormatting.GRAY); + aList.add(String.valueOf(EnumChatFormatting.AQUA) + String.format(GT_Utility.trans("011", "%s / %s EU - Voltage: %s"), GT_Utility.formatNumbers(tCharge), GT_Utility.formatNumbers(Math.abs(tStats[0])), "" + V[(int) (tStats[2] >= 0 ? tStats[2] < V.length ? tStats[2] : V.length - 1 : 1)]) + EnumChatFormatting.GRAY); } } } @@ -209,8 +208,8 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci tStats = getFluidContainerStats(aStack); if (tStats != null && tStats[0] > 0) { FluidStack tFluid = getFluidContent(aStack); - aList.add(EnumChatFormatting.BLUE + ((tFluid == null ? trans("012", "No Fluids Contained") : GT_Utility.getFluidName(tFluid, true))) + EnumChatFormatting.GRAY); - aList.add(EnumChatFormatting.BLUE + String.format(trans("013", "%sL / %sL"), "" + (tFluid == null ? 0 : tFluid.amount), "" + tStats[0]) + EnumChatFormatting.GRAY); + aList.add(EnumChatFormatting.BLUE + ((tFluid == null ? GT_Utility.trans("012", "No Fluids Contained") : GT_Utility.getFluidName(tFluid, true))) + EnumChatFormatting.GRAY); + aList.add(EnumChatFormatting.BLUE + String.format(GT_Utility.trans("013", "%sL / %sL"), "" + (tFluid == null ? 0 : tFluid.amount), "" + tStats[0]) + EnumChatFormatting.GRAY); } ArrayList<IItemBehaviour<GT_MetaBase_Item>> tList = mItemBehaviors.get((short) getDamage(aStack)); diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index e157337148..bd34fe25b4 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -351,10 +351,10 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements if (tStats != null) { if (tStats instanceof GT_Tool_Turbine) { int aOptFlow=GT_Utility.safeInt((long)Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool) aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool) aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed * 50)); - aList.add(tOffset + 0, EnumChatFormatting.WHITE + String.format(trans("001", "Durability: %s/%s"), "" + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " ", " " + tMaxDamage) + EnumChatFormatting.GRAY); - aList.add(tOffset + 1, EnumChatFormatting.WHITE + String.format(trans("002", "%s lvl %s"), tMaterial.mLocalizedName + EnumChatFormatting.YELLOW, "" + getHarvestLevel(aStack, "")) + EnumChatFormatting.GRAY); - aList.add(tOffset + 2, EnumChatFormatting.WHITE + String.format(trans("005", "Turbine Efficiency: %s"), "" + EnumChatFormatting.BLUE + (50.0F + (10.0F * getToolCombatDamage(aStack)))) + EnumChatFormatting.GRAY); - aList.add(tOffset + 3, EnumChatFormatting.WHITE + String.format(trans("006", "Optimal Steam flow: %sL/sec"), "" + EnumChatFormatting.GOLD + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 1000) + EnumChatFormatting.GRAY)); + aList.add(tOffset + 0, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("001", "Durability: %s/%s"), "" + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " ", " " + tMaxDamage) + EnumChatFormatting.GRAY); + aList.add(tOffset + 1, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("002", "%s lvl %s"), tMaterial.mLocalizedName + EnumChatFormatting.YELLOW, "" + getHarvestLevel(aStack, "")) + EnumChatFormatting.GRAY); + aList.add(tOffset + 2, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("005", "Turbine Efficiency: %s"), "" + EnumChatFormatting.BLUE + (50.0F + (10.0F * getToolCombatDamage(aStack)))) + EnumChatFormatting.GRAY); + aList.add(tOffset + 3, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("006", "Optimal Steam flow: %sL/sec"), "" + EnumChatFormatting.GOLD + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 1000) + EnumChatFormatting.GRAY)); { int aBaseEff=(int)(5+getToolCombatDamage(aStack))*1000; int aOptFlowLoose=aOptFlow*4; @@ -367,17 +367,17 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements }else{ aBaseEff*=0.75f; } - aList.add(tOffset + 4, EnumChatFormatting.GRAY + String.format(trans("500", "Turbine Efficiency (Loose): %s"), "" + EnumChatFormatting.BLUE + aBaseEff/100f) + EnumChatFormatting.DARK_GRAY); - aList.add(tOffset + 5, EnumChatFormatting.GRAY + String.format(trans("501", "Optimal Steam flow (Loose): %s L/t"), "" + EnumChatFormatting.GOLD + aOptFlowLoose + EnumChatFormatting.DARK_GRAY)); + aList.add(tOffset + 4, EnumChatFormatting.GRAY + String.format(GT_Utility.trans("500", "Turbine Efficiency (Loose): %s"), "" + EnumChatFormatting.BLUE + aBaseEff/100f) + EnumChatFormatting.DARK_GRAY); + aList.add(tOffset + 5, EnumChatFormatting.GRAY + String.format(GT_Utility.trans("501", "Optimal Steam flow (Loose): %s L/t"), "" + EnumChatFormatting.GOLD + aOptFlowLoose + EnumChatFormatting.DARK_GRAY)); } - aList.add(tOffset + 6, EnumChatFormatting.WHITE + String.format(trans("007", "Optimal Gas flow(EU burnvalue per tick): %sEU/t"), "" + EnumChatFormatting.GOLD + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 50) + EnumChatFormatting.GRAY)); - aList.add(tOffset + 7, EnumChatFormatting.WHITE + String.format(trans("008", "Optimal Plasma flow(Plasma energyvalue per tick): %sEU/t"), "" + EnumChatFormatting.GOLD + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 2000) + EnumChatFormatting.GRAY)); + aList.add(tOffset + 6, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("007", "Optimal Gas flow(EU burnvalue per tick): %sEU/t"), "" + EnumChatFormatting.GOLD + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 50) + EnumChatFormatting.GRAY)); + aList.add(tOffset + 7, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("008", "Optimal Plasma flow(Plasma energyvalue per tick): %sEU/t"), "" + EnumChatFormatting.GOLD + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 2000) + EnumChatFormatting.GRAY)); } else { - aList.add(tOffset + 0, EnumChatFormatting.WHITE + String.format(trans("001", "Durability: %s/%s"), "" + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " ", " " + tMaxDamage) + EnumChatFormatting.GRAY); - aList.add(tOffset + 1, EnumChatFormatting.WHITE + String.format(trans("002", "%s lvl %s"), tMaterial.mLocalizedName + EnumChatFormatting.YELLOW, "" + getHarvestLevel(aStack, "")) + EnumChatFormatting.GRAY); - aList.add(tOffset + 2, EnumChatFormatting.WHITE + String.format(trans("003", "Attack Damage: %s"), "" + EnumChatFormatting.BLUE + getToolCombatDamage(aStack)) + EnumChatFormatting.GRAY); - aList.add(tOffset + 3, EnumChatFormatting.WHITE + String.format(trans("004", "Mining Speed: %s"), "" + EnumChatFormatting.GOLD + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed)) + EnumChatFormatting.GRAY); + aList.add(tOffset + 0, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("001", "Durability: %s/%s"), "" + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " ", " " + tMaxDamage) + EnumChatFormatting.GRAY); + aList.add(tOffset + 1, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("002", "%s lvl %s"), tMaterial.mLocalizedName + EnumChatFormatting.YELLOW, "" + getHarvestLevel(aStack, "")) + EnumChatFormatting.GRAY); + aList.add(tOffset + 2, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("003", "Attack Damage: %s"), "" + EnumChatFormatting.BLUE + getToolCombatDamage(aStack)) + EnumChatFormatting.GRAY); + aList.add(tOffset + 3, EnumChatFormatting.WHITE + String.format(GT_Utility.trans("004", "Mining Speed: %s"), "" + EnumChatFormatting.GOLD + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed)) + EnumChatFormatting.GRAY); NBTTagCompound aNBT = aStack.getTagCompound(); if (aNBT != null) { aNBT = aNBT.getCompoundTag("GT.ToolStats"); diff --git a/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java index 3bdaf22f37..aad079beb5 100644 --- a/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java +++ b/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java @@ -1,5 +1,6 @@ package gregtech.api.items; +import gregtech.api.util.GT_Utility; import gregtech.common.items.GT_DepletetCell_Item; import ic2.api.item.IBoxable; import ic2.core.util.StackUtil; @@ -154,7 +155,7 @@ public class GT_RadioactiveCell_Item default: color2 = EnumChatFormatting.DARK_GRAY; break; } EnumChatFormatting color1 = this instanceof GT_DepletetCell_Item ? color2 = EnumChatFormatting.DARK_GRAY : EnumChatFormatting.WHITE; - aList.add(color1 + String.format(trans("001", "Durability: %s/%s"), "" + color2 + (this.maxDmg - getDurabilityOfStack(aStack)) + color1, "" + this.maxDmg)); + aList.add(color1 + String.format(GT_Utility.trans("001", "Durability: %s/%s"), "" + color2 + (this.maxDmg - getDurabilityOfStack(aStack)) + color1, "" + this.maxDmg)); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java index e0125ae50a..338724cf20 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java @@ -807,7 +807,7 @@ public class BaseMetaPipeEntity extends CoverableGregTechTileEntity implements I if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { if (mWorks) disableWorking(); else enableWorking(); - GT_Utility.sendChatToPlayer(aPlayer, trans("090","Machine Processing: ") + (isAllowedToWork() ? trans("088","Enabled") : trans("087","Disabled"))); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("090","Machine Processing: ") + (isAllowedToWork() ? GT_Utility.trans("088","Enabled") : GT_Utility.trans("087","Disabled"))); GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(101), 1.0F, -1, xCoord, yCoord, zCoord); } return true; @@ -828,7 +828,7 @@ public class BaseMetaPipeEntity extends CoverableGregTechTileEntity implements I GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 1.0F, -1, xCoord, yCoord, zCoord); } else if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { mStrongRedstone ^= (1 << tSide); - GT_Utility.sendChatToPlayer(aPlayer, trans("091","Redstone Output at Side ") + tSide + trans("092"," set to: ") + ((mStrongRedstone & (1 << tSide)) != 0 ? trans("093","Strong") : trans("094","Weak"))); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("091","Redstone Output at Side ") + tSide + GT_Utility.trans("092"," set to: ") + ((mStrongRedstone & (1 << tSide)) != 0 ? GT_Utility.trans("093","Strong") : GT_Utility.trans("094","Weak"))); GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 3.0F, -1, xCoord, yCoord, zCoord); issueBlockUpdate(); } diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index 562a566b2b..222fe6a8fb 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -1354,7 +1354,7 @@ public class BaseMetaTileEntity extends CoverableGregTechTileEntity implements I if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { mInputDisabled = !mInputDisabled; if (mInputDisabled) mOutputDisabled = !mOutputDisabled; - GT_Utility.sendChatToPlayer(aPlayer, trans("086","Auto-Input: ") + (mInputDisabled ? trans("087","Disabled") : trans("088","Enabled") + trans("089"," Auto-Output: ") + (mOutputDisabled ? trans("087","Disabled") : trans("088","Enabled")))); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("086","Auto-Input: ") + (mInputDisabled ? GT_Utility.trans("087","Disabled") : GT_Utility.trans("088","Enabled") + GT_Utility.trans("089"," Auto-Output: ") + (mOutputDisabled ? GT_Utility.trans("087","Disabled") : GT_Utility.trans("088","Enabled")))); GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(1), 1.0F, -1, xCoord, yCoord, zCoord); } return true; @@ -1365,7 +1365,7 @@ public class BaseMetaTileEntity extends CoverableGregTechTileEntity implements I if (mWorks) disableWorking(); else enableWorking(); { - String tChat = trans("090", "Machine Processing: ") + (isAllowedToWork() ? trans("088", "Enabled") : trans("087", "Disabled")); + String tChat = GT_Utility.trans("090", "Machine Processing: ") + (isAllowedToWork() ? GT_Utility.trans("088", "Enabled") : GT_Utility.trans("087", "Disabled")); if (getMetaTileEntity() != null && getMetaTileEntity().hasAlternativeModeText()) tChat = getMetaTileEntity().getAlternativeModeText(); GT_Utility.sendChatToPlayer(aPlayer, tChat); @@ -1382,7 +1382,7 @@ public class BaseMetaTileEntity extends CoverableGregTechTileEntity implements I GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 1.0F, -1, xCoord, yCoord, zCoord); } else if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { mStrongRedstone ^= (1 << tSide); - GT_Utility.sendChatToPlayer(aPlayer, trans("091","Redstone Output at Side ") + tSide + trans("092"," set to: ") + ((mStrongRedstone & (1 << tSide)) != 0 ? trans("093","Strong") : trans("094","Weak"))); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("091","Redstone Output at Side ") + tSide + GT_Utility.trans("092"," set to: ") + ((mStrongRedstone & (1 << tSide)) != 0 ? GT_Utility.trans("093","Strong") : GT_Utility.trans("094","Weak"))); GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 3.0F, -1, xCoord, yCoord, zCoord); issueBlockUpdate(); } diff --git a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java index dcaa98f120..7b05b582ae 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java @@ -468,9 +468,10 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje @Override public void markDirty() {/* Do not do the super Function */} - + + @Deprecated public String trans(String aKey, String aEnglish){ - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_"+aKey, aEnglish, false); + return GT_Utility.trans(aKey, aEnglish); } /* diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java index a04a53f8ca..7d4fd38b8b 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java @@ -757,8 +757,9 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { return ""; } + @Deprecated public String trans(String aKey, String aEnglish){ - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_"+aKey, aEnglish, false); + return GT_Utility.trans(aKey, aEnglish); } private boolean connectableColor(TileEntity tTileEntity) { diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java index 068c02297e..31b008095c 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java @@ -946,9 +946,10 @@ public abstract class MetaTileEntity implements IMetaTileEntity { public boolean allowGeneralRedstoneOutput(){ return false; } - + + @Deprecated public String trans(String aKey, String aEnglish){ - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_"+aKey, aEnglish, false); + return GT_Utility.trans(aKey, aEnglish); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index 8666f609b6..788753f0cc 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -218,10 +218,10 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile if (GT_Mod.gregtechproxy.gt6Cable && GT_ModHandler.damageOrDechargeItem(aPlayer.inventory.getCurrentItem(), 1, 500, aPlayer)) { if(isConnectedAtSide(aWrenchingSide)) { disconnect(aWrenchingSide); - GT_Utility.sendChatToPlayer(aPlayer, trans("215", "Disconnected")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); }else if(!GT_Mod.gregtechproxy.costlyCableConnection){ if (connect(aWrenchingSide) > 0) - GT_Utility.sendChatToPlayer(aPlayer, trans("214", "Connected")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); } return true; } @@ -233,10 +233,10 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile if (GT_Mod.gregtechproxy.gt6Cable && GT_ModHandler.damageOrDechargeItem(aPlayer.inventory.getCurrentItem(), 1, 500, aPlayer)) { if (isConnectedAtSide(aWrenchingSide)) { disconnect(aWrenchingSide); - GT_Utility.sendChatToPlayer(aPlayer, trans("215", "Disconnected")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); } else if (!GT_Mod.gregtechproxy.costlyCableConnection || GT_ModHandler.consumeSolderingMaterial(aPlayer)) { if (connect(aWrenchingSide) > 0) - GT_Utility.sendChatToPlayer(aPlayer, trans("214", "Connected")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); } return true; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index 8cce529050..bf87c03d79 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -392,20 +392,20 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { if (aPlayer.isSneaking()) { if (isInputDisabledAtSide(tSide)) { mDisableInput &= ~tMask; - GT_Utility.sendChatToPlayer(aPlayer, trans("212", "Input enabled")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("212", "Input enabled")); if (!isConnectedAtSide(tSide)) connect(tSide); } else { mDisableInput |= tMask; - GT_Utility.sendChatToPlayer(aPlayer, trans("213", "Input disabled")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("213", "Input disabled")); } } else { if (!isConnectedAtSide(tSide)) { if (connect(tSide) > 0) - GT_Utility.sendChatToPlayer(aPlayer, trans("214", "Connected")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); } else { disconnect(tSide); - GT_Utility.sendChatToPlayer(aPlayer, trans("215", "Disconnected")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); } } return true; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java index e316a44c80..db4f5b7603 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java @@ -197,10 +197,10 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); if (isConnectedAtSide(tSide)) { disconnect(tSide); - GT_Utility.sendChatToPlayer(aPlayer, trans("215", "Disconnected")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); } else { if (connect(tSide) > 0) - GT_Utility.sendChatToPlayer(aPlayer, trans("214", "Connected")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); } return true; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index 6cdbe77526..ef492950a1 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -11,8 +11,10 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_CoverBehaviorBase; +import gregtech.common.power.BasicMachineEUPower; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_OreDictUnificator; +import gregtech.common.power.Power; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; @@ -67,6 +69,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B public int mMainFacing = -1, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0; public FluidStack mOutputFluid; public String mGUIName, mNEIName; + private final Power mPower; @Deprecated @@ -101,7 +104,9 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mAmperage = aAmperage; mGUIName = aGUIName; mNEIName = aNEIName; + mPower = buildPower(); } + public GT_MetaTileEntity_BasicMachine(int aID, String aName, String aNameRegional, int aTier, int aAmperage, String[] aDescription, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName, ITexture... aOverlays) { super(aID, aName, aNameRegional, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aOverlays); mInputSlotCount = Math.max(0, aInputSlotCount); @@ -109,6 +114,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mAmperage = aAmperage; mGUIName = aGUIName; mNEIName = aNEIName; + mPower = buildPower(); } public GT_MetaTileEntity_BasicMachine(String aName, int aTier, int aAmperage, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) { super(aName, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aTextures); @@ -117,6 +123,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mAmperage = aAmperage; mGUIName = aGUIName; mNEIName = aNEIName; + mPower = buildPower(); } public GT_MetaTileEntity_BasicMachine(String aName, int aTier, int aAmperage, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) { @@ -126,6 +133,14 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mAmperage = aAmperage; mGUIName = aGUIName; mNEIName = aNEIName; + mPower = buildPower(); + } + + /** + * To be called by the constructor to initialize this instance's Power + */ + protected Power buildPower() { + return new BasicMachineEUPower(mTier, mAmperage); } protected boolean isValidMainFacing(byte aSide) { @@ -546,7 +561,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B if (doesAutoOutput() && !isOutputEmpty() && aBaseMetaTileEntity.getFrontFacing() != mMainFacing && (tSucceeded || mOutputBlocked % 300 == 1 || aBaseMetaTileEntity.hasInventoryBeenModified() || aTick % 600 == 0)) { TileEntity tTileEntity2 = aBaseMetaTileEntity.getTileEntityAtSide(aBaseMetaTileEntity.getFrontFacing()); long tStoredEnergy = aBaseMetaTileEntity.getUniversalEnergyStored(); - int tMaxStacks = (int)(tStoredEnergy/64l); + int tMaxStacks = (int)(tStoredEnergy/64L); if (tMaxStacks > mOutputItems.length) tMaxStacks = mOutputItems.length; @@ -641,42 +656,9 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B * @param aDuration - recipe Duration */ protected void calculateOverclockedNess(int aEUt, int aDuration) { - if(mTier==0){ - //Long time calculation - long xMaxProgresstime = ((long)aDuration)<<1; - if(xMaxProgresstime>Integer.MAX_VALUE-1){ - //make impossible if too long - mEUt=Integer.MAX_VALUE-1; - mMaxProgresstime=Integer.MAX_VALUE-1; - }else{ - mEUt=aEUt>>2; - mMaxProgresstime=(int)xMaxProgresstime; - } - }else{ - //Long EUt calculation - long xEUt=aEUt; - //Isnt too low EUt check? - long tempEUt = Math.max(xEUt, V[1]); - - mMaxProgresstime = aDuration; - - while (tempEUt <= V[mTier -1] * (long)mAmperage) { - tempEUt<<=2;//this actually controls overclocking - //xEUt *= 4;//this is effect of everclocking - mMaxProgresstime>>=1;//this is effect of overclocking - xEUt = mMaxProgresstime==0 ? xEUt>>1 : xEUt<<2;//U know, if the time is less than 1 tick make the machine use 2x less power - } - if(xEUt>Integer.MAX_VALUE-1){ - mEUt = Integer.MAX_VALUE-1; - mMaxProgresstime = Integer.MAX_VALUE-1; - }else{ - mEUt = (int)xEUt; - if(mEUt==0) - mEUt = 1; - if(mMaxProgresstime==0) - mMaxProgresstime = 1;//set time to 1 tick - } - } + mPower.computePowerUsageAndDuration(aEUt, aDuration); + mEUt = mPower.getEuPerTick(); + mMaxProgresstime = mPower.getDurationTicks(); } protected ItemStack getSpecialSlot() { @@ -843,7 +825,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableFilter." + mDisableFilter)); } else { mAllowInputFromOutputSide = !mAllowInputFromOutputSide; - GT_Utility.sendChatToPlayer(aPlayer, mAllowInputFromOutputSide ? trans("095", "Input from Output Side allowed") : trans("096", "Input from Output Side forbidden")); + GT_Utility.sendChatToPlayer(aPlayer, mAllowInputFromOutputSide ? GT_Utility.trans("095", "Input from Output Side allowed") : GT_Utility.trans("096", "Input from Output Side forbidden")); } } } @@ -1059,7 +1041,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B @Override public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { final NBTTagCompound tag = accessor.getNBTData(); - + currenttip.add(String.format("Progress: %d s / %d s", tag.getInteger("progressSingleBlock"), tag.getInteger("maxProgressSingleBlock"))); super.getWailaBody(itemStack, currenttip, accessor, config); } @@ -1071,4 +1053,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B tag.setInteger("progressSingleBlock", mProgresstime / 20); tag.setInteger("maxProgressSingleBlock", mMaxProgresstime / 20); } + + public Power getPower() { + return mPower; + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java index 204156f3ab..02e94a7ea9 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java @@ -7,6 +7,9 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Log; +import gregtech.common.power.Power; +import gregtech.api.util.GT_Recipe; +import gregtech.common.power.SteamPower; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder; import net.minecraft.entity.EntityLivingBase; @@ -33,25 +36,28 @@ import static gregtech.api.objects.XSTR.XSTR_INSTANCE; * Extend this class to make a simple Machine */ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileEntity_BasicMachine { - /* - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BasicMachine_Bronze(mTier, mDescription, mTextures); - } - */ private static final int NEEDS_STEAM_VENTING = 64; public boolean mNeedsSteamVenting = false; - public GT_MetaTileEntity_BasicMachine_Bronze(int aID, String aName, String aNameRegional, String aDescription, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aID, aName, aNameRegional, aBricked ? 1 : 0, 0, aDescription, aInputSlotCount, aOutputSlotCount, "", ""); + public GT_MetaTileEntity_BasicMachine_Bronze(int aID, String aName, String aNameRegional, String aDescription, int aInputSlotCount, int aOutputSlotCount, boolean aHighPressure) { + super(aID, aName, aNameRegional, aHighPressure ? 2 : 1, 0, aDescription, aInputSlotCount, aOutputSlotCount, "", ""); } - public GT_MetaTileEntity_BasicMachine_Bronze(String aName, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aName, aBricked ? 1 : 0, 0, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, "", ""); + public GT_MetaTileEntity_BasicMachine_Bronze(String aName, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aHighPressure) { + super(aName, aHighPressure ? 2 : 1, 0, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, "", ""); } - public GT_MetaTileEntity_BasicMachine_Bronze(String aName, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aName, aBricked ? 1 : 0, 0, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, "", ""); + public GT_MetaTileEntity_BasicMachine_Bronze(String aName, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aHighPressure) { + super(aName, aHighPressure ? 2 : 1, 0, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, "", ""); + } + + protected boolean isBricked() { + return false; + } + + @Override + public Power buildPower() { + return new SteamPower(mTier, 1, 2); } @Override @@ -153,6 +159,17 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE } @Override + public int checkRecipe() { + GT_Recipe tRecipe = getRecipeList().findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[mTier], null, getAllInputs()); + if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { + this.mOutputItems[0] = tRecipe.getOutput(0); + calculateOverclockedNess(tRecipe); + return 2; + } + return 0; + } + + @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); // Super already zeroed out setErrorDisplayID, add additional error codes here. @@ -199,76 +216,76 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE } public float getSteamDamage() { - return 6.0F; + return 6.0F * mTier; } @Override public ITexture[] getSideFacingActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getSideFacingInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getFrontFacingActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getFrontFacingInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getTopFacingActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_TOP : MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_TOP : MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getTopFacingInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_TOP : MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_TOP : MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getBottomFacingActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_BOTTOM : MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_BOTTOM : MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getBottomFacingInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_BOTTOM : MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_BOTTOM : MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getBottomFacingPipeActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_BOTTOM : MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_BOTTOM : MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getBottomFacingPipeInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_BOTTOM : MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_BOTTOM : MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getTopFacingPipeActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_TOP : MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_TOP : MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getTopFacingPipeInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_TOP : MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_TOP : MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getSideFacingPipeActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getSideFacingPipeInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_BRONZEBRICKS_SIDE : MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java index 20a3758324..a58cf6345d 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java @@ -3,6 +3,8 @@ package gregtech.api.metatileentity.implementations; import gregtech.api.enums.Dyes; import gregtech.api.interfaces.ITexture; import gregtech.api.render.TextureFactory; +import gregtech.common.power.Power; +import gregtech.common.power.SteamPower; import static gregtech.api.enums.Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM; import static gregtech.api.enums.Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE; @@ -20,90 +22,90 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_PIPE_OUT; * Extend this class to make a simple Machine */ public abstract class GT_MetaTileEntity_BasicMachine_Steel extends GT_MetaTileEntity_BasicMachine_Bronze { - public GT_MetaTileEntity_BasicMachine_Steel(int aID, String aName, String aNameRegional, String aDescription, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aID, aName, aNameRegional, aDescription, aInputSlotCount, aOutputSlotCount, aBricked); + public GT_MetaTileEntity_BasicMachine_Steel(int aID, String aName, String aNameRegional, String aDescription, int aInputSlotCount, int aOutputSlotCount, boolean aHighPressure) { + super(aID, aName, aNameRegional, aDescription, aInputSlotCount, aOutputSlotCount, aHighPressure); } - public GT_MetaTileEntity_BasicMachine_Steel(String aName, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aName, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, aBricked); + public GT_MetaTileEntity_BasicMachine_Steel(String aName, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aHighPressure) { + super(aName, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, aHighPressure); } - public GT_MetaTileEntity_BasicMachine_Steel(String aName, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aName, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, aBricked); + public GT_MetaTileEntity_BasicMachine_Steel(String aName, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aHighPressure) { + super(aName, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, aHighPressure); } @Override - public float getSteamDamage() { - return 12.0F; + public Power buildPower() { + return new SteamPower(mTier, 2, 1); } @Override public ITexture[] getSideFacingActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getSideFacingInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getFrontFacingActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getFrontFacingInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getTopFacingActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_TOP : MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_TOP : MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getTopFacingInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_TOP : MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_TOP : MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getBottomFacingActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_BOTTOM : MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_BOTTOM : MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getBottomFacingInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_BOTTOM : MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_BOTTOM : MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; } @Override public ITexture[] getBottomFacingPipeActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_BOTTOM : MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_BOTTOM : MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getBottomFacingPipeInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_BOTTOM : MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_BOTTOM : MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getTopFacingPipeActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_TOP : MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_TOP : MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getTopFacingPipeInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_TOP : MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_TOP : MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getSideFacingPipeActive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } @Override public ITexture[] getSideFacingPipeInactive(byte aColor) { - return new ITexture[]{TextureFactory.of(mTier == 1 ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; + return new ITexture[]{TextureFactory.of(isBricked() ? MACHINE_STEELBRICKS_SIDE : MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), TextureFactory.of(OVERLAY_PIPE_OUT)}; } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java index 1df2dac0f0..a3662b78f3 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java @@ -254,9 +254,9 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM mTargetStackSize = (byte) ((mTargetStackSize + (aPlayer.isSneaking()? -1 : 1)) % 65); if(mTargetStackSize <0){mTargetStackSize = mMaxStackSize;} if (mTargetStackSize == 0) { - GT_Utility.sendChatToPlayer(aPlayer, trans("098","Do not regulate Item Stack Size")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("098","Do not regulate Item Stack Size")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("099","Regulate Item Stack Size to: ") + mTargetStackSize); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("099","Regulate Item Stack Size to: ") + mTargetStackSize); } } } @@ -360,7 +360,7 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM if (aPlayer.isSneaking()) { // I was so proud of all this but I literally just copied code from OutputBus bSortStacks = !bSortStacks; - GT_Utility.sendChatToPlayer(aPlayer, trans("200", "Sort mode: " + (bSortStacks ? "Enabled" : "Disabled"))); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("200", "Sort mode: " + (bSortStacks ? "Enabled" : "Disabled"))); return true; } return super.onSolderingToolRightClick(aSide,aWrenchingSide,aPlayer,aX,aY,aZ); diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java index 2b7e50519d..3b8ed18e94 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java @@ -207,11 +207,6 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch { } @Override - public String trans(String aKey, String aEnglish) { - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_" + aKey, aEnglish, false); - } - - @Override public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { return aSide == getBaseMetaTileEntity().getFrontFacing(); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java index 02db2aec47..893ae970a6 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java @@ -5,7 +5,6 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; import gregtech.common.gui.GT_Container_OutputHatch; import gregtech.common.gui.GT_GUIContainer_OutputHatch; @@ -214,58 +213,58 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch { String inBrackets; switch (mMode) { case 0: - GT_Utility.sendChatToPlayer(aPlayer, trans("108","Outputs misc. Fluids, Steam and Items")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("108","Outputs misc. Fluids, Steam and Items")); this.setLockedFluidName(null); break; case 1: - GT_Utility.sendChatToPlayer(aPlayer, trans("109","Outputs Steam and Items")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("109","Outputs Steam and Items")); this.setLockedFluidName(null); break; case 2: - GT_Utility.sendChatToPlayer(aPlayer, trans("110","Outputs Steam and misc. Fluids")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("110","Outputs Steam and misc. Fluids")); this.setLockedFluidName(null); break; case 3: - GT_Utility.sendChatToPlayer(aPlayer, trans("111","Outputs Steam")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("111","Outputs Steam")); this.setLockedFluidName(null); break; case 4: - GT_Utility.sendChatToPlayer(aPlayer, trans("112","Outputs misc. Fluids and Items")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("112","Outputs misc. Fluids and Items")); this.setLockedFluidName(null); break; case 5: - GT_Utility.sendChatToPlayer(aPlayer, trans("113","Outputs only Items")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("113","Outputs only Items")); this.setLockedFluidName(null); break; case 6: - GT_Utility.sendChatToPlayer(aPlayer, trans("114","Outputs only misc. Fluids")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("114","Outputs only misc. Fluids")); this.setLockedFluidName(null); break; case 7: - GT_Utility.sendChatToPlayer(aPlayer, trans("115","Outputs nothing")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("115","Outputs nothing")); this.setLockedFluidName(null); break; case 8: playerThatLockedfluid = aPlayer; if (mFluid == null) { this.setLockedFluidName(null); - inBrackets = trans("115.3","currently none, will be locked to the next that is put in (or use fluid cell to lock)"); + inBrackets = GT_Utility.trans("115.3","currently none, will be locked to the next that is put in (or use fluid cell to lock)"); } else { this.setLockedFluidName(this.getDrainableStack().getFluid().getName()); inBrackets = this.getDrainableStack().getLocalizedName(); } - GT_Utility.sendChatToPlayer(aPlayer, String.format("%s (%s)", trans("151.1", "Outputs items and 1 specific Fluid"), inBrackets)); + GT_Utility.sendChatToPlayer(aPlayer, String.format("%s (%s)", GT_Utility.trans("151.1", "Outputs items and 1 specific Fluid"), inBrackets)); break; case 9: playerThatLockedfluid = aPlayer; if (mFluid == null) { this.setLockedFluidName(null); - inBrackets = trans("115.3","currently none, will be locked to the next that is put in (or use fluid cell to lock)"); + inBrackets = GT_Utility.trans("115.3","currently none, will be locked to the next that is put in (or use fluid cell to lock)"); } else { this.setLockedFluidName(this.getDrainableStack().getFluid().getName()); inBrackets = this.getDrainableStack().getLocalizedName(); } - GT_Utility.sendChatToPlayer(aPlayer, String.format("%s (%s)", trans("151.2", "Outputs 1 specific Fluid"), inBrackets)); + GT_Utility.sendChatToPlayer(aPlayer, String.format("%s (%s)", GT_Utility.trans("151.2", "Outputs 1 specific Fluid"), inBrackets)); break; } } @@ -283,16 +282,16 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch { tFluid = ((IFluidContainerItem)tCurrentItem.getItem()).getFluid(tCurrentItem); if (tFluid != null) { if (getLockedFluidName() != null && !getLockedFluidName().equals(tFluid.getFluid().getName())) { - GT_Utility.sendChatToPlayer(aPlayer, String.format("%s %s", trans("151.3", + GT_Utility.sendChatToPlayer(aPlayer, String.format("%s %s", GT_Utility.trans("151.3", "Hatch is locked to a different fluid. To change the locking, empty it and made it locked to the next fluid with a screwdriver. Currently locked to") , StatCollector.translateToLocal(tFluid.getUnlocalizedName()))); } else { setLockedFluidName(tFluid.getFluid().getName()); if (mMode == 8) - GT_Utility.sendChatToPlayer(aPlayer, String.format("%s (%s)", trans("151.1", "Outputs items and 1 specific Fluid"), tFluid.getLocalizedName())); + GT_Utility.sendChatToPlayer(aPlayer, String.format("%s (%s)", GT_Utility.trans("151.1", "Outputs items and 1 specific Fluid"), tFluid.getLocalizedName())); else - GT_Utility.sendChatToPlayer(aPlayer, String.format("%s (%s)", trans("151.2", "Outputs 1 specific Fluid"), tFluid.getLocalizedName())); + GT_Utility.sendChatToPlayer(aPlayer, String.format("%s (%s)", GT_Utility.trans("151.2", "Outputs 1 specific Fluid"), tFluid.getLocalizedName())); } return true; } @@ -310,11 +309,6 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch { return super.onRightclick(aBaseMetaTileEntity, aPlayer, aSide, aX, aY, aZ); } - @Override - public String trans(String aKey, String aEnglish){ - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_"+aKey, aEnglish, false); - } - public boolean outputsSteam() { return mMode < 4; } @@ -348,7 +342,7 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch { protected void onEmptyingContainerWhenEmpty() { if (this.lockedFluidName == null && this.mFluid != null) { this.setLockedFluidName(this.mFluid.getFluid().getName()); - GT_Utility.sendChatToPlayer(playerThatLockedfluid, String.format(trans("151.4","Sucessfully locked Fluid to %s"), mFluid.getLocalizedName())); + GT_Utility.sendChatToPlayer(playerThatLockedfluid, String.format(GT_Utility.trans("151.4","Sucessfully locked Fluid to %s"), mFluid.getLocalizedName())); } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 4b6ff53acf..73b37d57fb 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -107,9 +107,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { if (supportsSingleRecipeLocking()) { mLockedToSingleRecipe = !mLockedToSingleRecipe; if (mLockedToSingleRecipe) { - GT_Utility.sendChatToPlayer(aPlayer, trans("219","Single recipe locking enabled. Will lock to next recipe.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("219","Single recipe locking enabled. Will lock to next recipe.")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("220","Single recipe locking disabled.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("220","Single recipe locking disabled.")); mSingleRecipeCheck = null; } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java index 1d52e3c41d..9989378d84 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java @@ -217,15 +217,15 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi @Override public String getAlternativeModeText(){ return - (getBaseMetaTileEntity().isAllowedToWork() ? trans("145","Step Down, In: ") : trans("146","Step Up, In: ")) + + (getBaseMetaTileEntity().isAllowedToWork() ? GT_Utility.trans("145","Step Down, In: ") : GT_Utility.trans("146","Step Up, In: ")) + maxEUInput() + - trans("148","V ") + + GT_Utility.trans("148","V ") + maxAmperesIn() + - trans("147","A, Out: ") + + GT_Utility.trans("147","A, Out: ") + maxEUOutput() + - trans("148","V ") + + GT_Utility.trans("148","V ") + maxAmperesOut() + - trans("149","A"); + GT_Utility.trans("149","A"); } @Override diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 742ae656cf..48c1ecc360 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -2297,7 +2297,7 @@ public class GT_Utility { } public static String trans(String aKey, String aEnglish){ - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_"+aKey, aEnglish, false); + return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_" + aKey, aEnglish, false); } /** diff --git a/src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java b/src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java index 64731c652f..827a7d2d10 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java +++ b/src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java @@ -41,36 +41,36 @@ public class GT_Container_ChestBuffer extends GT_ContainerMetaTile_Machine { if (aSlotIndex == 27) { ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput); if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, trans("116","Emit Energy to Outputside")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("116","Emit Energy to Outputside")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("117","Don't emit Energy")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("117","Don't emit Energy")); } return null; } if (aSlotIndex == 28) { ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer(aPlayer, trans("118","Emit Redstone if no Slot is free")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("118","Emit Redstone if no Slot is free")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("119","Don't emit Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("119","Don't emit Redstone")); } return null; } if (aSlotIndex == 29) { ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert); if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, trans("120","Invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("120","Invert Redstone")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("121","Don't invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("121","Don't invert Redstone")); } return null; } if (aSlotIndex == 30) { ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bStockingMode = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bStockingMode); if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bStockingMode) { - GT_Utility.sendChatToPlayer(aPlayer, trans("217","Stocking mode. Keeps this many items in destination input slots. This mode can be server unfriendly.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("217","Stocking mode. Keeps this many items in destination input slots. This mode can be server unfriendly.")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("218", "Transfer size mode. Add exactly this many items in destination input slots as long as there is room.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("218", "Transfer size mode. Add exactly this many items in destination input slots as long as there is room.")); } return null; } diff --git a/src/main/java/gregtech/common/gui/GT_Container_Filter.java b/src/main/java/gregtech/common/gui/GT_Container_Filter.java index cc3efaefb7..7ca72b8e3a 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_Filter.java +++ b/src/main/java/gregtech/common/gui/GT_Container_Filter.java @@ -72,45 +72,45 @@ public class GT_Container_Filter extends GT_ContainerMetaTile_Machine { if (aSlotIndex == 18) { ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bOutput); if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, trans("116","Emit Energy to Outputside")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("116","Emit Energy to Outputside")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("117","Don't emit Energy")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("117","Don't emit Energy")); } return null; } if (aSlotIndex == 19) { ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer(aPlayer, trans("122","Emit Redstone if slots contain something")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("122","Emit Redstone if slots contain something")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("123","Don't emit Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("123","Don't emit Redstone")); } return null; } if (aSlotIndex == 20) { ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvert); if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, trans("120","Invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("120","Invert Redstone")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("121","Don't invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("121","Don't invert Redstone")); } return null; } if (aSlotIndex == 21) { ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvertFilter = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvertFilter); if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvertFilter) { - GT_Utility.sendChatToPlayer(aPlayer, trans("124","Invert Filter")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("124","Invert Filter")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("125","Don't invert Filter")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("125","Don't invert Filter")); } return null; } if (aSlotIndex == 22) { ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bIgnoreNBT = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bIgnoreNBT); if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bIgnoreNBT) { - GT_Utility.sendChatToPlayer(aPlayer, trans("126","Ignore NBT")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("126","Ignore NBT")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("127","NBT has to match")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("127","NBT has to match")); } return null; } diff --git a/src/main/java/gregtech/common/gui/GT_Container_ItemDistributor.java b/src/main/java/gregtech/common/gui/GT_Container_ItemDistributor.java index 0ee3cc1d44..6f3c8fe85c 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_ItemDistributor.java +++ b/src/main/java/gregtech/common/gui/GT_Container_ItemDistributor.java @@ -40,27 +40,27 @@ public class GT_Container_ItemDistributor extends GT_ContainerMetaTile_Machine { if (aSlotIndex == 27) { ((GT_MetaTileEntity_ItemDistributor) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_ItemDistributor) this.mTileEntity.getMetaTileEntity()).bOutput); if (((GT_MetaTileEntity_ItemDistributor) this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, trans("116","Emit Energy to Outputside")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("116","Emit Energy to Outputside")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("117","Don't emit Energy")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("117","Don't emit Energy")); } return null; } if (aSlotIndex == 28) { ((GT_MetaTileEntity_ItemDistributor) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_ItemDistributor) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); if (((GT_MetaTileEntity_ItemDistributor) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer(aPlayer, trans("118","Emit Redstone if no Slot is free")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("118","Emit Redstone if no Slot is free")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("119","Don't emit Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("119","Don't emit Redstone")); } return null; } if (aSlotIndex == 29) { ((GT_MetaTileEntity_ItemDistributor) this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_ItemDistributor) this.mTileEntity.getMetaTileEntity()).bInvert); if (((GT_MetaTileEntity_ItemDistributor) this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, trans("120","Invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("120","Invert Redstone")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("121","Don't invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("121","Don't invert Redstone")); } return null; } diff --git a/src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java b/src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java index 6651d7875a..25179d718e 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java +++ b/src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java @@ -35,12 +35,12 @@ public class GT_Container_OutputHatch extends GT_Container_BasicTank { // If player click the locker slot with empty or the same fluid cell, clear the lock fluid if (tReadyLockFluid == null || (tMode >= 8 && tReadyLockFluid.getFluid().getName().equals(tHatch.getLockedFluidName()))) { tHatch.setLockedFluidName(null); - GT_Utility.sendChatToPlayer(aPlayer, trans("300", "Fluid Lock Cleared.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("300", "Fluid Lock Cleared.")); tHatch.mMode = 0; } else { tHatch.setLockedFluidName(tReadyLockFluid.getFluid().getName()); - GT_Utility.sendChatToPlayer(aPlayer, String.format(trans("151.4", "Sucessfully locked Fluid to %s"), tReadyLockFluid.getLocalizedName())); + GT_Utility.sendChatToPlayer(aPlayer, String.format(GT_Utility.trans("151.4", "Sucessfully locked Fluid to %s"), tReadyLockFluid.getLocalizedName())); tHatch.mMode = 9; } } diff --git a/src/main/java/gregtech/common/gui/GT_Container_Regulator.java b/src/main/java/gregtech/common/gui/GT_Container_Regulator.java index f50ac2dae3..909e1a04a5 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_Regulator.java +++ b/src/main/java/gregtech/common/gui/GT_Container_Regulator.java @@ -72,9 +72,9 @@ public class GT_Container_Regulator extends GT_ContainerMetaTile_Machine { if (aSlotIndex == 28) { ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).bOutput); if (((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, trans("116", "Emit Energy to Outputside")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("116", "Emit Energy to Outputside")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("117", "Don't emit Energy")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("117", "Don't emit Energy")); } return null; } diff --git a/src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java b/src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java index 0b61a0910d..58df63e16a 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java +++ b/src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java @@ -36,36 +36,36 @@ public class GT_Container_SuperBuffer extends GT_ContainerMetaTile_Machine { if (aSlotIndex == 0) { ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput); if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, trans("116","Emit Energy to Outputside")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("116","Emit Energy to Outputside")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("117","Don't emit Energy")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("117","Don't emit Energy")); } return null; } if (aSlotIndex == 1) { ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer(aPlayer, trans("118","Emit Redstone if no Slot is free")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("118","Emit Redstone if no Slot is free")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("119","Don't emit Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("119","Don't emit Redstone")); } return null; } if (aSlotIndex == 2) { ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert); if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, trans("120","Invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("120","Invert Redstone")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("121","Don't invert Redstone")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("121","Don't invert Redstone")); } return null; } if (aSlotIndex == 3) { ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bStockingMode = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bStockingMode); if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bStockingMode) { - GT_Utility.sendChatToPlayer(aPlayer, trans("217","Stocking mode. Keeps this many items in destination input slots. This mode can be server unfriendly.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("217","Stocking mode. Keeps this many items in destination input slots. This mode can be server unfriendly.")); } else { - GT_Utility.sendChatToPlayer(aPlayer, trans("218", "Transfer size mode. Add exactly this many items in destination input slots as long as there is room.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("218", "Transfer size mode. Add exactly this many items in destination input slots as long as there is room.")); } return null; } diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java index c1efb6ab58..9d597c7f30 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java @@ -4,11 +4,14 @@ import gregtech.api.gui.GT_Container_MultiMachine; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; +import gregtech.nei.NEI_TransferRectHost; import net.minecraft.entity.player.InventoryPlayer; +import java.awt.Rectangle; + import static gregtech.api.enums.GT_Values.RES_PATH_GUI; -public class GT_GUIContainer_FusionReactor extends GT_GUIContainerMetaTile_Machine { +public class GT_GUIContainer_FusionReactor extends GT_GUIContainerMetaTile_Machine implements NEI_TransferRectHost { public String mNEI; String mName = ""; @@ -56,4 +59,24 @@ public class GT_GUIContainer_FusionReactor extends GT_GUIContainerMetaTile_Machi drawTexturedModalRect(x + 5, y + 156, 0, 251, Math.min(147, (int) (tScale * 148)), 5); } } + + @Override + public String getNeiTransferRectString() { + return mNEI; + } + + @Override + public String getNeiTransferRectTooltip() { + return "Recipes"; + } + + @Override + public Object[] getNeiTransferRectArgs() { + return new Object[0]; + } + + @Override + public Rectangle getNeiTransferRect() { + return new Rectangle(149, -7, 18, 18); + } } diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_PrimitiveBlastFurnace.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_PrimitiveBlastFurnace.java index d804b3858e..08ee0d125c 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_PrimitiveBlastFurnace.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_PrimitiveBlastFurnace.java @@ -4,9 +4,14 @@ import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.gui.widgets.GT_GuiIcon; import gregtech.api.gui.widgets.GT_GuiTabLine.GT_GuiTabIconSet; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.nei.NEI_TransferRectHost; import net.minecraft.entity.player.InventoryPlayer; -public class GT_GUIContainer_PrimitiveBlastFurnace extends GT_GUIContainerMetaTile_Machine { private String name; +import java.awt.*; + +public class GT_GUIContainer_PrimitiveBlastFurnace extends GT_GUIContainerMetaTile_Machine + implements NEI_TransferRectHost { + private String name; public String mNEI; private final static GT_GuiTabIconSet TAB_ICONSET = new GT_GuiTabIconSet( GT_GuiIcon.TAB_NORMAL_BRICK, @@ -43,4 +48,24 @@ public class GT_GUIContainer_PrimitiveBlastFurnace extends GT_GUIContainerMetaTi protected GT_GuiTabIconSet getTabBackground() { return TAB_ICONSET; } + + @Override + public String getNeiTransferRectString() { + return mNEI; + } + + @Override + public String getNeiTransferRectTooltip() { + return "Recipes"; + } + + @Override + public Object[] getNeiTransferRectArgs() { + return new Object[0]; + } + + @Override + public Rectangle getNeiTransferRect() { + return new Rectangle(51, 10, 24, 24); + } } diff --git a/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java index 43186b9621..fb566cbeb7 100644 --- a/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java +++ b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java @@ -52,10 +52,10 @@ public class GT_FluidDisplayItem extends GT_Generic_Item { if (aNBT != null) { long tToolTipAmount = aNBT.getLong("mFluidDisplayAmount"); if (tToolTipAmount > 0L) { - aList.add(EnumChatFormatting.BLUE + String.format(trans("016", "Amount: %s L"), "" + tToolTipAmount) + EnumChatFormatting.GRAY); + aList.add(EnumChatFormatting.BLUE + String.format(GT_Utility.trans("016", "Amount: %s L"), "" + tToolTipAmount) + EnumChatFormatting.GRAY); } - aList.add(EnumChatFormatting.RED + String.format(trans("017", "Temperature: %s K"), "" + aNBT.getLong("mFluidDisplayHeat")) + EnumChatFormatting.GRAY); - aList.add(EnumChatFormatting.GREEN + String.format(trans("018", "State: %s"), aNBT.getBoolean("mFluidState") ? "Gas" : "Liquid") + EnumChatFormatting.GRAY); + aList.add(EnumChatFormatting.RED + String.format(GT_Utility.trans("017", "Temperature: %s K"), "" + aNBT.getLong("mFluidDisplayHeat")) + EnumChatFormatting.GRAY); + aList.add(EnumChatFormatting.GREEN + String.format(GT_Utility.trans("018", "State: %s"), aNBT.getBoolean("mFluidState") ? "Gas" : "Liquid") + EnumChatFormatting.GRAY); } } diff --git a/src/main/java/gregtech/common/items/GT_SensorCard_Item.java b/src/main/java/gregtech/common/items/GT_SensorCard_Item.java index 852babb52a..d7de747ea7 100644 --- a/src/main/java/gregtech/common/items/GT_SensorCard_Item.java +++ b/src/main/java/gregtech/common/items/GT_SensorCard_Item.java @@ -5,6 +5,7 @@ import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.tileentity.IGregTechDeviceInformation; import gregtech.api.items.GT_Generic_Item; import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_Utility; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -36,9 +37,9 @@ public class GT_SensorCard_Item extends GT_Generic_Item implements IRemoteSensor if (aStack != null) { NBTTagCompound tNBT = aStack.getTagCompound(); if (tNBT == null) { - aList.add(trans("014", "Missing Coodinates!")); + aList.add(GT_Utility.trans("014", "Missing Coodinates!")); } else { - aList.add(trans("015", "Device at:")); + aList.add(GT_Utility.trans("015", "Device at:")); aList.add(String.format("x: %d, y: %d, z: %d", tNBT.getInteger("x"), tNBT.getInteger("y"), tNBT.getInteger("z"))); } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java index ad037ed13c..def807e0ba 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java @@ -3,7 +3,7 @@ package gregtech.common.items.behaviors; import gregtech.api.enums.SubTag; import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.items.GT_MetaBase_Item; -import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_Utility; import net.minecraft.block.BlockDispenser; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; import net.minecraft.dispenser.IBlockSource; @@ -81,8 +81,9 @@ public class Behaviour_None implements IItemBehaviour<GT_MetaBase_Item> { public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) { return null; } - + + @Deprecated public String trans(String aKey, String aEnglish){ - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_"+aKey, aEnglish, false); + return GT_Utility.trans(aKey, aEnglish); } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java index e56bd198b7..3b6474edb9 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java @@ -49,7 +49,7 @@ public class Behaviour_Prospecting extends Behaviour_None { ItemData tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(aBlock, 1, aMeta)); if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))){ - GT_Utility.sendChatToPlayer(aPlayer, trans("100","This is ") + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + trans("101"," Ore.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("100","This is ") + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + GT_Utility.trans("101"," Ore.")); GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(1), 1.0F, -1.0F, aX, aY, aZ); return true; } @@ -76,19 +76,19 @@ public class Behaviour_Prospecting extends Behaviour_None { tBlock = aWorld.getBlock(tX, tY, tZ); if (tBlock == Blocks.lava || tBlock == Blocks.flowing_lava) { - GT_Utility.sendChatToPlayer(aPlayer, trans("102","There is Lava behind this Rock.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("102","There is Lava behind this Rock.")); break; } if (tBlock instanceof BlockLiquid || tBlock instanceof IFluidBlock) { - GT_Utility.sendChatToPlayer(aPlayer, trans("103","There is a Liquid behind this Rock.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("103","There is a Liquid behind this Rock.")); break; } if (tBlock == Blocks.monster_egg || !GT_Utility.hasBlockHitBox(aWorld, tX, tY, tZ)) { - GT_Utility.sendChatToPlayer(aPlayer, trans("104","There is an Air Pocket behind this Rock.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("104","There is an Air Pocket behind this Rock.")); break; } if (tBlock != aBlock) { - if (i < 4) GT_Utility.sendChatToPlayer(aPlayer, trans("105","Material is changing behind this Rock.")); + if (i < 4) GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("105","Material is changing behind this Rock.")); break; } } @@ -104,7 +104,7 @@ public class Behaviour_Prospecting extends Behaviour_None { if ((tTileEntity instanceof GT_TileEntity_Ores)) { Materials tMaterial = GregTech_API.sGeneratedMaterials[(((GT_TileEntity_Ores) tTileEntity).mMetaData % 1000)]; if ((tMaterial != null) && (tMaterial != Materials._NULL)) { - GT_Utility.sendChatToPlayer(aPlayer, trans("106","Found traces of ") + tMaterial.mDefaultLocalName + trans("101"," Ore.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("106","Found traces of ") + tMaterial.mDefaultLocalName + GT_Utility.trans("101"," Ore.")); return true; } } @@ -112,12 +112,12 @@ public class Behaviour_Prospecting extends Behaviour_None { tMetaID = aWorld.getBlockMetadata(tX, tY, tZ); tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID)); if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) { - GT_Utility.sendChatToPlayer(aPlayer, trans("106","Found traces of ") + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + trans("101"," Ore.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("106","Found traces of ") + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + GT_Utility.trans("101"," Ore.")); return true; } } } - GT_Utility.sendChatToPlayer(aPlayer, trans("107","No Ores found.")); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("107","No Ores found.")); return true; } } diff --git a/src/main/java/gregtech/common/power/BasicMachineEUPower.java b/src/main/java/gregtech/common/power/BasicMachineEUPower.java new file mode 100644 index 0000000000..12691ac6d9 --- /dev/null +++ b/src/main/java/gregtech/common/power/BasicMachineEUPower.java @@ -0,0 +1,72 @@ +package gregtech.common.power; + +import gregtech.api.util.GT_Utility; + +import static gregtech.api.enums.GT_Values.V; + +public class BasicMachineEUPower extends EUPower{ + private static final String OC = " (OC)"; + private boolean wasOverclocked; + + public BasicMachineEUPower(byte tier, int amperage) { + super(tier, amperage); + } + + @Override + public void computePowerUsageAndDuration(int euPerTick, int duration) { + super.computePowerUsageAndDuration(euPerTick, duration); + if (tier == 0) { + //Long time calculation + long xMaxProgresstime = ((long) duration) << 1; + if (xMaxProgresstime > Integer.MAX_VALUE - 1) { + //make impossible if too long + recipeEuPerTick = Integer.MAX_VALUE - 1; + recipeDuration = Integer.MAX_VALUE - 1; + } else { + recipeEuPerTick = euPerTick >> 2; + recipeDuration = (int) xMaxProgresstime; + } + } else { + //Long EUt calculation + long xEUt = euPerTick; + //Isnt too low EUt check? + long tempEUt = Math.max(xEUt, V[1]); + + recipeDuration = duration; + + while (tempEUt <= V[tier - 1] * (long) amperage) { + tempEUt <<= 2;//this actually controls overclocking + //xEUt *= 4;//this is effect of everclocking + recipeDuration >>= 1;//this is effect of overclocking + xEUt = recipeDuration == 0 ? xEUt >> 1 : xEUt << 2;//U know, if the time is less than 1 tick make the machine use 2x less power + } + if (xEUt > Integer.MAX_VALUE - 1) { + recipeEuPerTick = Integer.MAX_VALUE - 1; + recipeDuration = Integer.MAX_VALUE - 1; + } else { + recipeEuPerTick = (int) xEUt; + if (recipeEuPerTick == 0) + recipeEuPerTick = 1; + if (recipeDuration == 0) + recipeDuration = 1;//set time to 1 tick + } + } + wasOverclocked = checkIfOverclocked(); + } + + @Override + public String getPowerUsageString() { + return decorateWithOverclockLabel(super.getPowerUsageString()); + } + + private String decorateWithOverclockLabel(String s) { + if (wasOverclocked) { + s += OC; + } + return s; + } + + private boolean checkIfOverclocked() { + return originalVoltage != computeVoltageForEuRate(recipeEuPerTick); + } +} diff --git a/src/main/java/gregtech/common/power/EUPower.java b/src/main/java/gregtech/common/power/EUPower.java new file mode 100644 index 0000000000..41ebca3fda --- /dev/null +++ b/src/main/java/gregtech/common/power/EUPower.java @@ -0,0 +1,57 @@ +package gregtech.common.power; + +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_Utility; +import net.minecraft.util.EnumChatFormatting; + +public class EUPower extends Power { + protected final int amperage; + protected int originalVoltage; + + public EUPower(byte tier, int amperage) { + super(tier); + this.amperage = amperage; + } + + @Override + // This generic EU Power class has no overclock defined and does no special calculations. + public void computePowerUsageAndDuration(int euPerTick, int duration) { + originalVoltage = computeVoltageForEuRate(euPerTick); + recipeEuPerTick = euPerTick; + recipeDuration = duration; + } + + @Override + public String getTierString() { + return GT_Values.TIER_COLORS[tier] + GT_Values.VN[tier] + EnumChatFormatting.RESET; + } + + @Override + public String getTotalPowerString() { + return GT_Utility.formatNumbers((long) recipeDuration * recipeEuPerTick) + " EU"; + } + + @Override + public String getPowerUsageString() { + return GT_Utility.formatNumbers(recipeEuPerTick) + " EU/t"; + } + + @Override + public String getVoltageString() { + String voltageDescription = GT_Utility.formatNumbers(originalVoltage) + " EU"; + byte recipeTier = GT_Utility.getTier(originalVoltage); + if (recipeTier >= 0 && recipeTier < 16) { + voltageDescription += " (" + GT_Values.VN[recipeTier] + ")"; + } + return voltageDescription; + } + + @Override + public String getAmperageString() { + return GT_Utility.formatNumbers(amperage); + } + + protected int computeVoltageForEuRate(int euPerTick) { + return euPerTick / amperage; + } +} diff --git a/src/main/java/gregtech/common/power/Power.java b/src/main/java/gregtech/common/power/Power.java new file mode 100644 index 0000000000..e0526c14aa --- /dev/null +++ b/src/main/java/gregtech/common/power/Power.java @@ -0,0 +1,48 @@ +package gregtech.common.power; + +import gregtech.api.util.GT_Utility; + +public abstract class Power { + protected final byte tier; + protected int recipeEuPerTick; + protected int recipeDuration; + + public Power(byte tier) { + this.tier = tier; + } + + public byte getTier() { + return tier; + } + + public abstract String getTierString(); + + /** + * This method should be called prior to usage of any value except the power tier. + */ + public abstract void computePowerUsageAndDuration(int euPerTick, int duration); + + public int getEuPerTick() { + return recipeEuPerTick; + } + + public int getDurationTicks() { + return recipeDuration; + } + + public double getDurationSeconds() { + return 0.05d * getDurationTicks(); + } + + public String getDurationString() { + return GT_Utility.formatNumbers(getDurationSeconds()) + GT_Utility.trans("161", " secs"); + } + + public abstract String getTotalPowerString(); + + public abstract String getPowerUsageString(); + + public abstract String getVoltageString(); + + public abstract String getAmperageString(); +} diff --git a/src/main/java/gregtech/common/power/SteamPower.java b/src/main/java/gregtech/common/power/SteamPower.java new file mode 100644 index 0000000000..3e394e10c5 --- /dev/null +++ b/src/main/java/gregtech/common/power/SteamPower.java @@ -0,0 +1,46 @@ +package gregtech.common.power; + +import gregtech.api.util.GT_Utility; + +public class SteamPower extends Power { + private final double euPerTickOverride; + private final double durationOverride; + private final String[] STEAM_TIER_NAMES = {"Bronze", "Steel"}; + + public SteamPower(byte tier, double euPerTickMultiplier, double durationMultiplier) { + super(tier); + this.euPerTickOverride = euPerTickMultiplier; + this.durationOverride = durationMultiplier; + } + + @Override + public String getTierString() { + return STEAM_TIER_NAMES[tier - 1]; + } + + @Override + public void computePowerUsageAndDuration(int euPerTick, int duration) { + recipeEuPerTick = (int) (euPerTick * euPerTickOverride); + recipeDuration = (int) (duration * durationOverride); + } + + @Override + public String getTotalPowerString() { + return GT_Utility.formatNumbers((long) recipeDuration * recipeEuPerTick) + " Steam"; + } + + @Override + public String getPowerUsageString() { + return GT_Utility.formatNumbers(20L * recipeEuPerTick) + " L/s Steam"; + } + + @Override + public String getVoltageString() { + return null; + } + + @Override + public String getAmperageString() { + return null; + } +} diff --git a/src/main/java/gregtech/common/power/UnspecifiedEUPower.java b/src/main/java/gregtech/common/power/UnspecifiedEUPower.java new file mode 100644 index 0000000000..91158e3605 --- /dev/null +++ b/src/main/java/gregtech/common/power/UnspecifiedEUPower.java @@ -0,0 +1,22 @@ +package gregtech.common.power; + +import gregtech.api.util.GT_Utility; + +public class UnspecifiedEUPower extends EUPower { + private final String VOLTAGE = GT_Utility.trans("156", "unspecified"); + private final String AMPERAGE = GT_Utility.trans("157", "unspecified"); + + public UnspecifiedEUPower(byte tier, int amperage) { + super(tier, amperage); + } + + @Override + public String getVoltageString() { + return VOLTAGE; + } + + @Override + public String getAmperageString() { + return AMPERAGE; + } +} diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java index a796ce9661..d27d8db04d 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java @@ -151,7 +151,7 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer //Adjust items per side by 1 or -1, constrained to the cyclic interval [0, 127] itemsPerSide[aSide] += aPlayer.isSneaking() ? -1 : 1; itemsPerSide[aSide] = (byte) ((itemsPerSide[aSide] + 128) % 128); - GT_Utility.sendChatToPlayer(aPlayer, trans("211", "Items per side: ") + itemsPerSide[aSide]); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("211", "Items per side: ") + itemsPerSide[aSide]); } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java index 408b2441fc..ec04b8c9d4 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java @@ -157,7 +157,7 @@ public abstract class GT_MetaTileEntity_DrillerBase extends GT_MetaTileEntity_En public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { if (aSide == getBaseMetaTileEntity().getFrontFacing()) { mChunkLoadingEnabled = !mChunkLoadingEnabled; - GT_Utility.sendChatToPlayer(aPlayer, mChunkLoadingEnabled ? trans("502", "Mining chunk loading enabled") : trans("503", "Mining chunk loading disabled")); + GT_Utility.sendChatToPlayer(aPlayer, mChunkLoadingEnabled ? GT_Utility.trans("502", "Mining chunk loading enabled") : GT_Utility.trans("503", "Mining chunk loading disabled")); return true; } return super.onSolderingToolRightClick(aSide, aWrenchingSide, aPlayer, aX, aY, aZ); diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java index c434c2e886..69e5a784a0 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java @@ -141,7 +141,7 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { if (aSide == getBaseMetaTileEntity().getFrontFacing()) { looseFit ^= true; - GT_Utility.sendChatToPlayer(aPlayer, looseFit ? trans("500", "Fitting: Loose - More Flow") : trans("501", "Fitting: Tight - More Efficiency")); + GT_Utility.sendChatToPlayer(aPlayer, looseFit ? GT_Utility.trans("500", "Fitting: Loose - More Flow") : GT_Utility.trans("501", "Fitting: Tight - More Efficiency")); } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java index 9513b6f5dc..4d11bdaef5 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java @@ -148,7 +148,7 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { if (aSide == getBaseMetaTileEntity().getFrontFacing()) { looseFit ^= true; - GT_Utility.sendChatToPlayer(aPlayer, looseFit ? trans("500", "Fitting: Loose - More Flow") : trans("501", "Fitting: Tight - More Efficiency")); + GT_Utility.sendChatToPlayer(aPlayer, looseFit ? GT_Utility.trans("500", "Fitting: Loose - More Flow") : GT_Utility.trans("501", "Fitting: Tight - More Efficiency")); } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java index 533917661b..41b3e853fe 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java @@ -15,15 +15,20 @@ import static gregtech.api.enums.Textures.BlockIcons.*; public class GT_MetaTileEntity_AlloySmelter_Bronze extends GT_MetaTileEntity_BasicMachine_Bronze { public GT_MetaTileEntity_AlloySmelter_Bronze(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, "Combination Smelter", 2, 1, true); + super(aID, aName, aNameRegional, "Combination Smelter", 2, 1, false); } public GT_MetaTileEntity_AlloySmelter_Bronze(String aName, String aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 2, 1, true); + super(aName, aDescription, aTextures, 2, 1, false); } public GT_MetaTileEntity_AlloySmelter_Bronze(String aName, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 2, 1, true); + super(aName, aDescription, aTextures, 2, 1, false); + } + + @Override + protected boolean isBricked() { + return true; } @Override @@ -37,15 +42,8 @@ public class GT_MetaTileEntity_AlloySmelter_Bronze extends GT_MetaTileEntity_Bas } @Override - public int checkRecipe() { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[1], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { - mOutputItems[0] = tRecipe.getOutput(0); - mEUt = tRecipe.mEUt; - mMaxProgresstime = (tRecipe.mDuration * 2); - return 2; - } - return 0; + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java index 2291ae1aba..90015771cc 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java @@ -27,6 +27,11 @@ public class GT_MetaTileEntity_AlloySmelter_Steel extends GT_MetaTileEntity_Basi } @Override + protected boolean isBricked() { + return true; + } + + @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_AlloySmelter_Steel(mName, mDescriptionArray, mTextures); } @@ -37,15 +42,8 @@ public class GT_MetaTileEntity_AlloySmelter_Steel extends GT_MetaTileEntity_Basi } @Override - public int checkRecipe() { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[2], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { - mOutputItems[0] = tRecipe.getOutput(0); - mEUt = (tRecipe.mEUt * 2); - mMaxProgresstime = tRecipe.mDuration; - return 2; - } - return 0; + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java index ddfe476d15..405a5dc9ee 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java @@ -37,15 +37,8 @@ public class GT_MetaTileEntity_Compressor_Bronze extends GT_MetaTileEntity_Basic } @Override - public int checkRecipe() { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sCompressorRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[1], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { - this.mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = (tRecipe.mDuration * 2); - return 2; - } - return 0; + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sCompressorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java index 153f84f74b..4d4917f71d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java @@ -15,15 +15,15 @@ import static gregtech.api.enums.Textures.BlockIcons.*; public class GT_MetaTileEntity_Compressor_Steel extends GT_MetaTileEntity_BasicMachine_Steel { public GT_MetaTileEntity_Compressor_Steel(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, "Compressing Items", 1, 1, false); + super(aID, aName, aNameRegional, "Compressing Items", 1, 1, true); } public GT_MetaTileEntity_Compressor_Steel(String aName, String aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, false); + super(aName, aDescription, aTextures, 1, 1, true); } public GT_MetaTileEntity_Compressor_Steel(String aName, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, false); + super(aName, aDescription, aTextures, 1, 1, true); } @Override @@ -37,15 +37,8 @@ public class GT_MetaTileEntity_Compressor_Steel extends GT_MetaTileEntity_BasicM } @Override - public int checkRecipe() { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sCompressorRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[2], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { - this.mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = (tRecipe.mEUt * 2); - this.mMaxProgresstime = tRecipe.mDuration; - return 2; - } - return 0; + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sCompressorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java index 5c60d071bc..ca47bcbfe5 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java @@ -37,15 +37,8 @@ public class GT_MetaTileEntity_Extractor_Bronze extends GT_MetaTileEntity_BasicM } @Override - public int checkRecipe() { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sExtractorRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[1], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { - this.mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = (tRecipe.mDuration * 2); - return 2; - } - return 0; + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sExtractorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java index da4753b78e..586481be13 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java @@ -15,15 +15,15 @@ import static gregtech.api.enums.Textures.BlockIcons.*; public class GT_MetaTileEntity_Extractor_Steel extends GT_MetaTileEntity_BasicMachine_Steel { public GT_MetaTileEntity_Extractor_Steel(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, "Extracting your first Rubber", 1, 1, false); + super(aID, aName, aNameRegional, "Extracting your first Rubber", 1, 1, true); } public GT_MetaTileEntity_Extractor_Steel(String aName, String aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, false); + super(aName, aDescription, aTextures, 1, 1, true); } public GT_MetaTileEntity_Extractor_Steel(String aName, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, false); + super(aName, aDescription, aTextures, 1, 1, true); } @Override @@ -37,15 +37,8 @@ public class GT_MetaTileEntity_Extractor_Steel extends GT_MetaTileEntity_BasicMa } @Override - public int checkRecipe() { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sExtractorRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[2], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { - this.mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = (tRecipe.mEUt * 2); - this.mMaxProgresstime = tRecipe.mDuration; - return 2; - } - return 0; + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sExtractorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java index e46a5a74a8..a20d43ca24 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java @@ -37,15 +37,8 @@ public class GT_MetaTileEntity_ForgeHammer_Bronze extends GT_MetaTileEntity_Basi } @Override - public int checkRecipe() { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[1], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { - this.mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = (tRecipe.mDuration * 2); - return 2; - } - return 0; + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sHammerRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java index 4508c39fda..f1e3573c89 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java @@ -15,15 +15,15 @@ import static gregtech.api.enums.Textures.BlockIcons.*; public class GT_MetaTileEntity_ForgeHammer_Steel extends GT_MetaTileEntity_BasicMachine_Steel { public GT_MetaTileEntity_ForgeHammer_Steel(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, "Forge Hammer", 1, 1, false); + super(aID, aName, aNameRegional, "Forge Hammer", 1, 1, true); } public GT_MetaTileEntity_ForgeHammer_Steel(String aName, String aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, false); + super(aName, aDescription, aTextures, 1, 1, true); } public GT_MetaTileEntity_ForgeHammer_Steel(String aName, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, false); + super(aName, aDescription, aTextures, 1, 1, true); } @Override @@ -37,15 +37,8 @@ public class GT_MetaTileEntity_ForgeHammer_Steel extends GT_MetaTileEntity_Basic } @Override - public int checkRecipe() { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[2], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { - this.mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = (tRecipe.mEUt * 2); - this.mMaxProgresstime = tRecipe.mDuration; - return 2; - } - return 0; + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sHammerRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java index 4e704fac12..21910854d0 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java @@ -16,15 +16,20 @@ import static gregtech.api.enums.Textures.BlockIcons.*; public class GT_MetaTileEntity_Furnace_Bronze extends GT_MetaTileEntity_BasicMachine_Bronze { public GT_MetaTileEntity_Furnace_Bronze(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, "Smelting things with compressed Steam", 1, 1, true); + super(aID, aName, aNameRegional, "Smelting things with compressed Steam", 1, 1, false); } public GT_MetaTileEntity_Furnace_Bronze(String aName, String aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, true); + super(aName, aDescription, aTextures, 1, 1, false); } public GT_MetaTileEntity_Furnace_Bronze(String aName, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, true); + super(aName, aDescription, aTextures, 1, 1, false); + } + + @Override + protected boolean isBricked() { + return true; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java index eab07f2173..8cc086fe18 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java @@ -28,6 +28,11 @@ public class GT_MetaTileEntity_Furnace_Steel extends GT_MetaTileEntity_BasicMach } @Override + protected boolean isBricked() { + return true; + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelFurnace.png", "smelting"); } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java index 918d40443c..e75765dced 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java @@ -62,9 +62,13 @@ public class GT_MetaTileEntity_Macerator_Bronze extends GT_MetaTileEntity_BasicM } @Override + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; + } + + @Override public int checkRecipe() { - GT_Recipe_Map tMap = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; - GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[1], null, null, getAllInputs()); + GT_Recipe tRecipe = getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[mTier], null, null, getAllInputs()); if (tRecipe == null) return DID_NOT_FIND_RECIPE; if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; if (!canOutput(tRecipe)) { @@ -75,8 +79,7 @@ public class GT_MetaTileEntity_Macerator_Bronze extends GT_MetaTileEntity_BasicM if (!tRecipe.isRecipeInputEqual(true, new FluidStack[]{getFillableStack()}, getAllInputs())) return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; if (tRecipe.getOutput(0) != null) mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = (tRecipe.mDuration * 2); + calculateOverclockedNess(tRecipe); return FOUND_AND_SUCCESSFULLY_USED_RECIPE; } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java index a857919cbc..e522eb46f6 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java @@ -22,15 +22,15 @@ import static gregtech.api.enums.Textures.BlockIcons.*; public class GT_MetaTileEntity_Macerator_Steel extends GT_MetaTileEntity_BasicMachine_Steel { public GT_MetaTileEntity_Macerator_Steel(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, "Macerating your Ores", 1, 1, false); + super(aID, aName, aNameRegional, "Macerating your Ores", 1, 1, true); } public GT_MetaTileEntity_Macerator_Steel(String aName, String aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, false); + super(aName, aDescription, aTextures, 1, 1, true); } public GT_MetaTileEntity_Macerator_Steel(String aName, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aDescription, aTextures, 1, 1, false); + super(aName, aDescription, aTextures, 1, 1, true); } @Override @@ -62,9 +62,13 @@ public class GT_MetaTileEntity_Macerator_Steel extends GT_MetaTileEntity_BasicMa } @Override + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; + } + + @Override public int checkRecipe() { - GT_Recipe_Map tMap = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; - GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[1], null, null, getAllInputs()); + GT_Recipe tRecipe = getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[mTier], null, null, getAllInputs()); if (tRecipe == null) return DID_NOT_FIND_RECIPE; if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; if (!canOutput(tRecipe)) { @@ -75,8 +79,7 @@ public class GT_MetaTileEntity_Macerator_Steel extends GT_MetaTileEntity_BasicMa if (!tRecipe.isRecipeInputEqual(true, new FluidStack[]{getFillableStack()}, getAllInputs())) return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; if (tRecipe.getOutput(0) != null) mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = (2 * tRecipe.mEUt); - this.mMaxProgresstime = tRecipe.mDuration; + calculateOverclockedNess(tRecipe); return FOUND_AND_SUCCESSFULLY_USED_RECIPE; } diff --git a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java index d6f339ec7f..93fb0bd3d2 100644 --- a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java +++ b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java @@ -8,24 +8,36 @@ import codechicken.nei.guihook.IContainerTooltipHandler; import codechicken.nei.recipe.GuiCraftingRecipe; import codechicken.nei.recipe.GuiRecipe; import codechicken.nei.recipe.GuiUsageRecipe; +import codechicken.nei.recipe.ICraftingHandler; +import codechicken.nei.recipe.IUsageHandler; +import codechicken.nei.recipe.RecipeCatalysts; import codechicken.nei.recipe.TemplateRecipeHandler; import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; import gregtech.api.enums.OrePrefixes; +import gregtech.api.gui.GT_GUIContainer; import gregtech.api.gui.GT_GUIContainer_BasicMachine; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; import gregtech.api.objects.ItemData; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import gregtech.common.power.EUPower; +import gregtech.common.power.Power; +import gregtech.common.power.UnspecifiedEUPower; +import gregtech.common.blocks.GT_Item_Machines; import gregtech.common.gui.GT_GUIContainer_FusionReactor; import gregtech.common.gui.GT_GUIContainer_PrimitiveBlastFurnace; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import org.apache.commons.lang3.Range; import org.lwjgl.opengl.GL11; import javax.annotation.Nonnull; @@ -34,16 +46,24 @@ import java.awt.*; import java.lang.ref.SoftReference; import java.util.ArrayList; import java.util.Collections; +import java.util.Iterator; import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.stream.Collectors; +import static codechicken.nei.recipe.RecipeInfo.getGuiOffset; + public class GT_NEI_DefaultHandler extends RecipeMapHandler { public static final int sOffsetX = 5; public static final int sOffsetY = 11; private static final ConcurrentMap<GT_Recipe.GT_Recipe_Map, SortedRecipeListCache> CACHE = new ConcurrentHashMap<>(); + private Power mPower; + private String mRecipeName; // Name of the handler displayed on top + private NEIHandlerAbsoluteTooltip mRecipeNameTooltip; + private static final int RECIPE_NAME_WIDTH = 140; + static { GuiContainerManager.addInputHandler(new GT_RectHandler()); GuiContainerManager.addTooltipHandler(new GT_RectHandler()); @@ -51,7 +71,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { public GT_NEI_DefaultHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) { super(aRecipeMap); - this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(new Rectangle(65, 13, 36, 18), getOverlayIdentifier())); + this.transferRects.add(new RecipeTransferRect(new Rectangle(65, 13, 36, 18), getOverlayIdentifier())); } @Deprecated @@ -61,8 +81,12 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { return result; } + private SortedRecipeListCache getCacheHolder() { + return CACHE.computeIfAbsent(mRecipeMap, m -> new SortedRecipeListCache()); + } + public List<CachedDefaultRecipe> getCache() { - SortedRecipeListCache cacheHolder = CACHE.computeIfAbsent(mRecipeMap, m -> new SortedRecipeListCache()); + SortedRecipeListCache cacheHolder = getCacheHolder(); List<CachedDefaultRecipe> cache; if (cacheHolder.getCachedRecipesVersion() != GT_Mod.gregtechproxy.getReloadCount() || (cache = cacheHolder.getCachedRecipes()) == null) { cache = mRecipeMap.mRecipeList.stream() // do not use parallel stream. This is already parallelized by NEI @@ -91,7 +115,12 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { @Override public void loadCraftingRecipes(String outputId, Object... results) { if (outputId.equals(getOverlayIdentifier())) { - arecipes.addAll(getCache()); + if (results.length > 0 && results[0] instanceof Power) { + mPower = (Power) results[0]; + loadTieredCraftingRecipesUpTo(mPower.getTier()); + } else { + arecipes.addAll(getCache()); + } } else { super.loadCraftingRecipes(outputId, results); } @@ -109,26 +138,41 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { tResults.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L)); } } - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aResult, true); + addFluidStacks(aResult, tResults); + for (CachedDefaultRecipe recipe : getCache()) { + if (tResults.stream().anyMatch(stack -> recipe.contains(recipe.mOutputs, stack))) + arecipes.add(recipe); + } + } + + private void addFluidStacks(ItemStack aStack, ArrayList<ItemStack> tResults) { + FluidStack tFluid = GT_Utility.getFluidForFilledItem(aStack, true); FluidStack tFluidStack; if (tFluid != null) { tFluidStack = tFluid; tResults.add(GT_Utility.getFluidDisplayStack(tFluid, false)); - } - else tFluidStack = GT_Utility.getFluidFromDisplayStack(aResult); + } else tFluidStack = GT_Utility.getFluidFromDisplayStack(aStack); if (tFluidStack != null) { tResults.addAll(GT_Utility.getContainersFromFluid(tFluidStack)); } - for (CachedDefaultRecipe recipe : getCache()) { - if (tResults.stream().anyMatch(stack -> recipe.contains(recipe.mOutputs, stack))) - arecipes.add(recipe); + } + + private void loadTieredCraftingRecipesUpTo(byte upperTier) { + arecipes.addAll(getTieredRecipes((byte) 0, upperTier)); + } + + private List<CachedDefaultRecipe> getTieredRecipes(byte lowerTier, byte upperTier) { + List<CachedDefaultRecipe> recipes = getCache(); + if ( recipes.size() > 0 ) { + Range<Integer> indexRange = getCacheHolder().getIndexRangeForTiers(lowerTier, upperTier); + recipes = recipes.subList(indexRange.getMinimum(), indexRange.getMaximum() + 1); } + return recipes; } @Override public void loadUsageRecipes(ItemStack aInput) { ItemData tPrefixMaterial = GT_OreDictUnificator.getAssociation(aInput); - ArrayList<ItemStack> tInputs = new ArrayList<>(); tInputs.add(aInput); tInputs.add(GT_OreDictUnificator.get(false, aInput)); @@ -137,16 +181,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { tInputs.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L)); } } - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInput, true); - FluidStack tFluidStack; - if (tFluid != null) { - tFluidStack = tFluid; - tInputs.add(GT_Utility.getFluidDisplayStack(tFluid, false)); - } - else tFluidStack = GT_Utility.getFluidFromDisplayStack(aInput); - if (tFluidStack != null) { - tInputs.addAll(GT_Utility.getContainersFromFluid(tFluidStack)); - } + addFluidStacks(aInput, tInputs); for (CachedDefaultRecipe recipe : getCache()) { if (tInputs.stream().anyMatch(stack -> recipe.contains(recipe.mInputs, stack))) arecipes.add(recipe); @@ -154,6 +189,32 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { } @Override + public IUsageHandler getUsageAndCatalystHandler(String inputId, Object... ingredients) { + if (inputId.equals("item")) { + ItemStack candidate = (ItemStack) ingredients[0]; + GT_NEI_DefaultHandler handler = (GT_NEI_DefaultHandler) newInstance(); + if (RecipeCatalysts.containsCatalyst(handler, candidate)) { + IMetaTileEntity gtTileEntity = GT_Item_Machines.getMetaTileEntity(candidate); + if (gtTileEntity instanceof GT_MetaTileEntity_BasicMachine) { + Power power = ((GT_MetaTileEntity_BasicMachine) gtTileEntity).getPower(); + handler.loadCraftingRecipes(getOverlayIdentifier(), power); + return handler; + } + } + } + return this.getUsageHandler(inputId, ingredients); + } + + @Override + public ICraftingHandler getRecipeHandler(String outputId, Object... results) { + GT_NEI_DefaultHandler handler = (GT_NEI_DefaultHandler) super.getRecipeHandler(outputId, results); + if (results.length > 0 && results[0] instanceof Power) { + handler.mPower = (Power) results[0]; + } + return handler; + } + + @Override public String getOverlayIdentifier() { return this.mRecipeMap.mNEIName; } @@ -172,18 +233,57 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { @Override public String getRecipeName() { + if (mRecipeName == null) { + mRecipeName = computeRecipeName(); + } + return mRecipeName; + } + + private String computeRecipeName() { + String recipeName = GT_LanguageManager.getTranslation(this.mRecipeMap.mUnlocalizedName); + if (mPower != null) { + recipeName = addSuffixToRecipeName(recipeName, " (", mPower.getTierString() + ")"); + } + return recipeName; + } + + private String addSuffixToRecipeName(String recipeName, String separator, String suffix) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + int recipeNameWidth = fontRenderer.getStringWidth(recipeName); + int targetWidth = RECIPE_NAME_WIDTH - fontRenderer.getStringWidth(suffix); + if (recipeNameWidth + fontRenderer.getStringWidth(separator) > targetWidth) { + setupRecipeNameTooltip(recipeName + separator + suffix); + separator = "...("; + recipeName = shrinkRecipeName(recipeName, targetWidth - fontRenderer.getStringWidth(separator)); + } + return recipeName + separator + suffix; + } + + private String shrinkRecipeName(String recipeName, int targetWidth) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + do { + recipeName = recipeName.substring(0, recipeName.length() - 2); + } while (fontRenderer.getStringWidth(recipeName) > targetWidth); + return recipeName; + } + + private void setupRecipeNameTooltip(String tooltip) { + mRecipeNameTooltip = new NEIHandlerAbsoluteTooltip(tooltip, new Rectangle(13, -34, RECIPE_NAME_WIDTH - 1, 11)); + } + + @Override + public String getRecipeTabName() { return GT_LanguageManager.getTranslation(this.mRecipeMap.mUnlocalizedName); } @Override public String getGuiTexture() { -// return "gregtech:textures/gui/" + this.mRecipeMap.mUnlocalizedName + ".png"; return this.mRecipeMap.mNEIGUIPath; } @Override public List<String> handleItemTooltip(GuiRecipe gui, ItemStack aStack, List<String> currenttip, int aRecipeIndex) { - TemplateRecipeHandler.CachedRecipe tObject = (TemplateRecipeHandler.CachedRecipe) this.arecipes.get(aRecipeIndex); + CachedRecipe tObject = this.arecipes.get(aRecipeIndex); if ((tObject instanceof CachedDefaultRecipe)) { CachedDefaultRecipe tRecipe = (CachedDefaultRecipe) tObject; for (PositionedStack tStack : tRecipe.mOutputs) { @@ -191,7 +291,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { if ((!(tStack instanceof FixedPositionedStack)) || (((FixedPositionedStack) tStack).mChance <= 0) || (((FixedPositionedStack) tStack).mChance == 10000)) { break; } - currenttip.add(trans("150","Chance: ") + ((FixedPositionedStack) tStack).mChance / 100 + "." + (((FixedPositionedStack) tStack).mChance % 100 < 10 ? "0" + ((FixedPositionedStack) tStack).mChance % 100 : Integer.valueOf(((FixedPositionedStack) tStack).mChance % 100)) + "%"); + currenttip.add(GT_Utility.trans("150", "Chance: ") + ((FixedPositionedStack) tStack).mChance / 100 + "." + (((FixedPositionedStack) tStack).mChance % 100 < 10 ? "0" + ((FixedPositionedStack) tStack).mChance % 100 : Integer.valueOf(((FixedPositionedStack) tStack).mChance % 100)) + "%"); break; } } @@ -201,79 +301,149 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { (tStack.item.stackSize != 0)) { break; } - currenttip.add(trans("151","Does not get consumed in the process")); + currenttip.add(GT_Utility.trans("151", "Does not get consumed in the process")); break; } } } + + if (mRecipeNameTooltip != null) { + mRecipeNameTooltip.handleTooltip(currenttip, aRecipeIndex); + } return currenttip; } + private Power getPowerFromRecipeMap() { + // By default, assume generic EU LV power with no overclocks + Power power; + if (this.mRecipeMap.mShowVoltageAmperageInNEI) { + power = new EUPower((byte) 1, this.mRecipeMap.mAmperage); + } else { + power = new UnspecifiedEUPower((byte) 1, this.mRecipeMap.mAmperage); + } + return power; + } + @Override public void drawExtras(int aRecipeIndex) { - int tEUt = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mEUt; - int tDuration = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mDuration; - String[] recipeDesc = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.getNeiDesc(); + GT_Recipe recipe = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe; + String[] recipeDesc = recipe.getNeiDesc(); if (recipeDesc == null) { - if (tEUt != 0) { - drawText(10, 73, trans("152","Total: ") + GT_Utility.formatNumbers((long) tDuration * tEUt) + " EU", 0xFF000000); - drawText(10, 83, trans("153","Usage: ") + GT_Utility.formatNumbers(tEUt) + " EU/t", 0xFF000000); - if (this.mRecipeMap.mShowVoltageAmperageInNEI) { - int voltage = tEUt / this.mRecipeMap.mAmperage; - byte tier = GT_Utility.getTier(voltage); - if (tier < 0 || tier >= 16) { - drawText(10, 93, trans("154","Voltage: ") + GT_Utility.formatNumbers(voltage) + " EU", 0xFFFF0000); -//add here gt logger - } else { - drawText(10, 93, trans("154","Voltage: ") + GT_Utility.formatNumbers(voltage) + " EU (" + GT_Values.VN[tier] + ")", 0xFF000000); - } - drawText(10, 103, trans("155","Amperage: ") + GT_Utility.formatNumbers(this.mRecipeMap.mAmperage), 0xFF000000); - } else { - drawText(10, 93, trans("156","Voltage: unspecified"), 0xFF000000); - drawText(10, 103, trans("157","Amperage: unspecified"), 0xFF000000); - } - } - if (tDuration > 0) { - drawText(10, 113, trans("158","Time: ") + GT_Utility.formatNumbers(0.05d * tDuration) + trans("161"," secs"), 0xFF000000); - } - int tSpecial = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue; - if (tSpecial == -100 && GT_Mod.gregtechproxy.mLowGravProcessing) { - drawText(10, 123, trans("159","Needs Low Gravity"), 0xFF000000); - } else if (tSpecial == -200 && GT_Mod.gregtechproxy.mEnableCleanroom) { - drawText(10, 123, trans("160","Needs Cleanroom"), 0xFF000000); - } else if (tSpecial == -201) { - drawText(10, 123, trans("206","Scan for Assembly Line"), 0xFF000000); - } else if (tSpecial == -300 && GT_Mod.gregtechproxy.mEnableCleanroom) { - drawText(10, 123, trans("160","Needs Cleanroom & LowGrav"), 0xFF000000); - } else if (tSpecial == -400) { - drawText(10, 123, trans("216","Deprecated Recipe"), 0xFF000000); - } else if ((GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePre)) || (GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePost))) { - drawText(10, 123, this.mRecipeMap.mNEISpecialValuePre + GT_Utility.formatNumbers(tSpecial * this.mRecipeMap.mNEISpecialValueMultiplier) + this.mRecipeMap.mNEISpecialValuePost, 0xFF000000); - } + drawDescription(recipe); } else { - int i = 0; - for (String descLine : recipeDesc) { - drawText(10, 73 + 10 * i, descLine, 0xFF000000); - i++; + drawOverrideDescription(recipeDesc); + } + } + + private void drawDescription(GT_Recipe recipe) { + if (mPower == null) { + mPower = getPowerFromRecipeMap(); + } + mPower.computePowerUsageAndDuration(recipe.mEUt, recipe.mDuration); + if (mPower.getEuPerTick() > 0) { + drawPowerUsageLines(); + } + if (mPower.getDurationTicks() > 0) { + drawLine(4, GT_Utility.trans("158", "Time: ") + mPower.getDurationString()); + } + drawOptionalLine(5, getSpecialInfo(recipe.mSpecialValue)); + } + + private void drawPowerUsageLines() { + drawLine(0, GT_Utility.trans("152", "Total: ") + mPower.getTotalPowerString()); + drawLine(1, GT_Utility.trans("153", "Usage: ") + mPower.getPowerUsageString()); + drawOptionalLine(2, mPower.getVoltageString(), GT_Utility.trans("154", "Voltage: ")); + drawOptionalLine(3, mPower.getAmperageString(), GT_Utility.trans("155", "Amperage: ")); + } + + private void drawOverrideDescription(String[] recipeDesc) { + for (int i = 0; i < recipeDesc.length; i++) { + if (recipeDesc[i] != null) { + drawLine(i, recipeDesc[i]); } } } + private String getSpecialInfo(int specialValue) { + String specialInfo = null; + if (specialValue == -100 && GT_Mod.gregtechproxy.mLowGravProcessing) { + specialInfo = GT_Utility.trans("159", "Needs Low Gravity"); + } else if (specialValue == -200 && GT_Mod.gregtechproxy.mEnableCleanroom) { + specialInfo = GT_Utility.trans("160", "Needs Cleanroom"); + } else if (specialValue == -201) { + specialInfo = GT_Utility.trans("206", "Scan for Assembly Line"); + } else if (specialValue == -300 && GT_Mod.gregtechproxy.mEnableCleanroom) { + specialInfo = GT_Utility.trans("160", "Needs Cleanroom & LowGrav"); + } else if (specialValue == -400) { + specialInfo = GT_Utility.trans("216", "Deprecated Recipe"); + } else if (hasSpecialValueFormat()) { + specialInfo = formatSpecialValue(specialValue); + } + return specialInfo; + } + + private boolean hasSpecialValueFormat() { + return (GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePre)) + || (GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePost)); + } + + private String formatSpecialValue(int SpecialValue) { + return this.mRecipeMap.mNEISpecialValuePre + GT_Utility.formatNumbers( + (long) SpecialValue * this.mRecipeMap.mNEISpecialValueMultiplier) + + this.mRecipeMap.mNEISpecialValuePost; + } + + private void drawOptionalLine(int lineNumber, String line, String prefix) { + if (line != null) { + drawLine(lineNumber, prefix + line); + } + } + + private void drawOptionalLine(int lineNumber, String line) { + if (line != null) { + drawLine(lineNumber, line); + } + } + + private void drawLine(int lineNumber, String line) { + drawText(10, 73 + lineNumber * 10, line, 0xFF000000); + } + public static class GT_RectHandler implements IContainerInputHandler, IContainerTooltipHandler { @Override public boolean mouseClicked(GuiContainer gui, int mousex, int mousey, int button) { if (canHandle(gui)) { - if (button == 0) { - return transferRect(gui, false); - } - if (button == 1) { - return transferRect(gui, true); + NEI_TransferRectHost host = (NEI_TransferRectHost) gui; + if (hostRectContainsMouse(host, getMousePos(gui, mousex, mousey))) { + if (button == 0) { + return handleTransferRectMouseClick(host, false); + } + if (button == 1) { + return handleTransferRectMouseClick(host, true); + } } } return false; } + private Point getMousePos(GuiContainer gui, int mousex, int mousey) { + Point point = new Point( + mousex - ((GT_GUIContainer) gui).getLeft() - getGuiOffset(gui)[0], + mousey - ((GT_GUIContainer) gui).getTop() - getGuiOffset(gui)[1]); + return point; + } + + private boolean hostRectContainsMouse(NEI_TransferRectHost host, Point mousePos) { + return host.getNeiTransferRect().contains(mousePos); + } + + private boolean handleTransferRectMouseClick(NEI_TransferRectHost gui, boolean usage) { + String mNEI = gui.getNeiTransferRectString(); + Object[] args = gui.getNeiTransferRectArgs(); + return usage ? GuiUsageRecipe.openRecipeGui(mNEI) : GuiCraftingRecipe.openRecipeGui(mNEI, args); + } + @Override public boolean lastKeyTyped(GuiContainer gui, char keyChar, int keyCode) { return false; @@ -288,29 +458,14 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { @Override public List<String> handleTooltip(GuiContainer gui, int mousex, int mousey, List<String> currenttip) { if ((canHandle(gui)) && (currenttip.isEmpty())) { - if (gui instanceof GT_GUIContainer_BasicMachine && new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) { - currenttip.add("Recipes"); - } else if (gui instanceof GT_GUIContainer_FusionReactor && new Rectangle(145, 0, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_FusionReactor) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_FusionReactor) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) { - currenttip.add("Recipes"); - } else if (gui instanceof GT_GUIContainer_PrimitiveBlastFurnace && new Rectangle(51, 10, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_PrimitiveBlastFurnace) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_PrimitiveBlastFurnace) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) { - currenttip.add("Recipes"); + NEI_TransferRectHost host = (NEI_TransferRectHost) gui; + if (hostRectContainsMouse(host, getMousePos(gui, mousex, mousey))) { + currenttip.add(host.getNeiTransferRectTooltip()); } - } return currenttip; } - private boolean transferRect(GuiContainer gui, boolean usage) { - if (gui instanceof GT_GUIContainer_BasicMachine) { - return (canHandle(gui)) && (new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine) gui).mNEI) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine) gui).mNEI)); - } else if (gui instanceof GT_GUIContainer_FusionReactor) { - return (canHandle(gui)) && (new Rectangle(145, 0, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_FusionReactor) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_FusionReactor) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_FusionReactor) gui).mNEI) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_FusionReactor) gui).mNEI)); - } else if (gui instanceof GT_GUIContainer_PrimitiveBlastFurnace) { - return (canHandle(gui)) && (new Rectangle(51, 10, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_PrimitiveBlastFurnace) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_PrimitiveBlastFurnace) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_PrimitiveBlastFurnace) gui).mNEI) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_PrimitiveBlastFurnace) gui).mNEI)); - } - return false; - } - @Override public List<String> handleItemDisplayName(GuiContainer gui, ItemStack itemstack, List<String> currenttip) { return currenttip; @@ -412,7 +567,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { try { maybeIn = aRecipe.getInputPositionedStacks(); - } catch(NullPointerException npe) { + } catch (NullPointerException npe) { maybeIn = null; GT_Log.err.println("CachedDefaultRecipe - Invalid InputPositionedStacks " + aRecipe); npe.printStackTrace(GT_Log.err); @@ -425,7 +580,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { npe.printStackTrace(GT_Log.err); } - if ( maybeIn != null && maybeOut != null) { + if (maybeIn != null && maybeOut != null) { mInputs = maybeIn; mOutputs = maybeOut; return; @@ -884,14 +1039,17 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { } } - public String trans(String aKey, String aEnglish){ - return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_"+aKey, aEnglish, false); + @Deprecated + public String trans(String aKey, String aEnglish) { + return GT_Utility.trans(aKey, aEnglish); } private static class SortedRecipeListCache { private int mCachedRecipesVersion = -1; @Nullable private SoftReference<List<CachedDefaultRecipe>> mCachedRecipes; + private Range<Integer>[] mTierIndexes; + private Range<Byte> mTierRange; public int getCachedRecipesVersion() { return mCachedRecipesVersion; @@ -909,5 +1067,58 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { public void setCachedRecipes(@Nonnull List<CachedDefaultRecipe> aCachedRecipes) { this.mCachedRecipes = new SoftReference<>(aCachedRecipes); } + + public Range<Integer> getIndexRangeForTiers(byte lowerTier, byte upperTier) { + if (mTierIndexes == null) { + computeTierIndexes(); + } + return Range.between(getLowIndexForTier(lowerTier), getHighIndexForTier(upperTier)); + } + + private void computeTierIndexes() { + mTierIndexes = new Range[GT_Values.V.length]; + Iterator<CachedDefaultRecipe> iterator = mCachedRecipes.get().iterator(); + + int index = 0; + int minIndex = 0; + int maxIndex = -1; + byte previousTier = -1; + byte lowestTier = 0; + while(iterator.hasNext()) { + CachedDefaultRecipe recipe = iterator.next(); + byte recipeTier = GT_Utility.getTier(recipe.mRecipe.mEUt); + if (recipeTier != previousTier) { + if ( maxIndex != -1) { + mTierIndexes[previousTier] = Range.between(minIndex, maxIndex); + } else { + lowestTier = recipeTier; + } + minIndex = index; + previousTier = recipeTier; + } + maxIndex = index; + index++; + if (!iterator.hasNext()) { + mTierIndexes[recipeTier] = Range.between(minIndex, maxIndex); + mTierRange = Range.between(lowestTier, recipeTier); + } + } + } + + private int getLowIndexForTier(byte lowerTier) { + byte lowTier = (byte) Math.max(mTierRange.getMinimum(), lowerTier); + while (mTierIndexes[lowTier] == null) { + lowTier++; + } + return mTierIndexes[lowTier].getMinimum(); + } + + private int getHighIndexForTier(byte upperTier) { + byte highTier = (byte) Math.min(mTierRange.getMaximum(), upperTier); + while (mTierIndexes[highTier] == null) { + highTier--; + } + return mTierIndexes[highTier].getMaximum(); + } } } diff --git a/src/main/java/gregtech/nei/NEIHandlerAbsoluteTooltip.java b/src/main/java/gregtech/nei/NEIHandlerAbsoluteTooltip.java new file mode 100644 index 0000000000..fae3b68882 --- /dev/null +++ b/src/main/java/gregtech/nei/NEIHandlerAbsoluteTooltip.java @@ -0,0 +1,52 @@ +package gregtech.nei; + +import codechicken.lib.gui.GuiDraw; + +import java.awt.*; +import java.util.List; + +public class NEIHandlerAbsoluteTooltip { + private final Rectangle area; + private final String tooltip; + private Dimension displaySize; + + public NEIHandlerAbsoluteTooltip(String tooltip, Rectangle area) { + this.tooltip = tooltip; + this.area = area; + } + + public void handleTooltip(List<String> currenttip, int recipeIndex) { + displaySize = GuiDraw.displaySize(); + if (shouldAddTooltip(recipeIndex)) { + currenttip.add(tooltip); + } + } + + private boolean shouldAddTooltip(int recipeIndex) { + return isPageFirstRecipe(recipeIndex) && mouseInArea(); + } + + private boolean mouseInArea() { + Point mousePos = getRelMouse(); + return area.contains(mousePos); + } + + + private Point getRelMouse() { + int ySize = Math.min(Math.max(displaySize.height - 68, 166), 370); + int guiLeft = (displaySize.width - 176) / 2; + int guiTop = (displaySize.height - ySize) / 2 + 10; + Point mousePos = GuiDraw.getMousePosition(); + return new Point(mousePos.x - guiLeft - 5, mousePos.y - guiTop - 38); + } + + private boolean isPageFirstRecipe(int recipe) { + int actualRecipesPerPage = getActualRecipesPerPage(); + return actualRecipesPerPage < 2 || recipe % 2 == 0; + } + + private int getActualRecipesPerPage() { + int ySize = Math.min(Math.max(displaySize.height - 68, 166), 370); + return (ySize - (12*3)) / 135; + } +} diff --git a/src/main/java/gregtech/nei/NEI_TransferRectHost.java b/src/main/java/gregtech/nei/NEI_TransferRectHost.java new file mode 100644 index 0000000000..e04740cf99 --- /dev/null +++ b/src/main/java/gregtech/nei/NEI_TransferRectHost.java @@ -0,0 +1,10 @@ +package gregtech.nei; + +import java.awt.*; + +public interface NEI_TransferRectHost { + String getNeiTransferRectString(); + String getNeiTransferRectTooltip(); + Object[] getNeiTransferRectArgs(); + Rectangle getNeiTransferRect(); +} |