From f8d769b67d61ecd16da9e0b8a0ca5b6a472348bc Mon Sep 17 00:00:00 2001 From: Martin Robertz Date: Sun, 7 Jan 2018 10:10:12 +0100 Subject: patch a render issue (#77) --- src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api') 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 5f506bca7b..0a2176010c 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java @@ -32,10 +32,15 @@ public class GT_GUIContainer_BasicMachine extends GT_GUIContainerMetaTile_Machin mNEI = aNEI; } + @Override + public void drawScreen(int par1, int par2, float par3) { + super.drawScreen(par1, par2, par3); + drawTooltip(par1, par2); + } + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { fontRendererObj.drawString(mName, 8, 4, 4210752); - drawTooltip(par1, par2); } private void drawTooltip(int x2, int y2) { @@ -53,7 +58,7 @@ public class GT_GUIContainer_BasicMachine extends GT_GUIContainerMetaTile_Machin } } if (!list.isEmpty()) - drawHoveringText(list, x, y, fontRendererObj); + drawHoveringText(list, x2, y2, fontRendererObj); } @Override -- cgit From b0ea7ae740877ff6aa9f4d57ca83f38d288a0fc6 Mon Sep 17 00:00:00 2001 From: Martin Robertz Date: Sun, 7 Jan 2018 10:10:58 +0100 Subject: NEI page access of Primitive Blast Furnace (#78) * NEI page access of Primitive Blast Furnace cherry pick Commit: e0be4bdc4504717968494503ea03b8184af96891 [e0be4bd] * Fix #1039 * Fix #1039 --- .../gregtech/api/util/GT_OreDictUnificator.java | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java index 7552f5ea85..33149eb801 100644 --- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java +++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java @@ -15,6 +15,7 @@ import net.minecraftforge.oredict.OreDictionary; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -32,6 +33,7 @@ import static gregtech.api.enums.GT_Values.*; public class GT_OreDictUnificator { private static final /*ConcurrentHash*/Map sName2StackMap = new /*ConcurrentHash*/HashMap(); private static final /*ConcurrentHash*/Map sItemStack2DataMap = new /*ConcurrentHash*/HashMap(); + private static final /*ConcurrentHash*/Map> sUnificationTable = new /*ConcurrentHash*/HashMap>(); private static final GT_HashSet sNoUnificationList = new GT_HashSet(); public static volatile int VERSION = 509; private static int isRegisteringOre = 0, isAddingOre = 0; @@ -39,6 +41,7 @@ public class GT_OreDictUnificator { static { GregTech_API.sItemStackMappings.add(sItemStack2DataMap); + GregTech_API.sItemStackMappings.add(sUnificationTable); } /** @@ -153,6 +156,40 @@ public class GT_OreDictUnificator { return GT_Utility.copyAmount(aStack.stackSize, rStack); } + public static List getNonUnifiedStacks(Object obj) { + synchronized (sUnificationTable) { + if (sUnificationTable.isEmpty() && !sItemStack2DataMap.isEmpty()) { + for (GT_ItemStack tGTStack0 : sItemStack2DataMap.keySet()) { + ItemStack tStack0 = tGTStack0.toStack(); + ItemStack tStack1 = get(false, tStack0); + if (!GT_Utility.areStacksEqual(tStack0, tStack1)) { + GT_ItemStack tGTStack1 = new GT_ItemStack(tStack1); + List list = sUnificationTable.get(tGTStack1); + if (list == null) sUnificationTable.put(tGTStack1, list = new ArrayList()); + if (!list.contains(tStack0)) list.add(tStack0); + } + } + } + } + ItemStack[] aStacks = {}; + if (obj instanceof ItemStack) aStacks = new ItemStack[]{(ItemStack) obj}; + else if (obj instanceof ItemStack[]) aStacks = (ItemStack[]) obj; + else if (obj instanceof List) aStacks = (ItemStack[]) ((List)obj).toArray(new ItemStack[0]); + List rList = new ArrayList(); + for (ItemStack aStack : aStacks) { + rList.add(aStack); + List tList = sUnificationTable.get(new GT_ItemStack(aStack)); + if (tList != null) { + for (ItemStack tStack : tList) { + ItemStack tStack1 = GT_Utility.copyAmount(aStack.stackSize, tStack); + tStack1.setTagCompound(aStack.getTagCompound()); + rList.add(tStack1); + } + } + } + return rList; + } + public static void addItemData(ItemStack aStack, ItemData aData) { if (GT_Utility.isStackValid(aStack) && getItemData(aStack) == null && aData != null) setItemData(aStack, aData); } -- cgit From c679603ab78c35d893deb41762bf9f031ae23c62 Mon Sep 17 00:00:00 2001 From: Martin Robertz Date: Sun, 7 Jan 2018 10:11:59 +0100 Subject: Fix that the main facing of basic machines can be set to top/bottom (#80) --- .../implementations/GT_MetaTileEntity_BasicMachine.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/main/java/gregtech/api') 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 ade5d98528..1c5b90f7db 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 @@ -109,11 +109,16 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mGUIName = aGUIName; mNEIName = aNEIName; } + + protected boolean isValidMainFacing(byte aSide) { + return aSide > 1; + } - public boolean setMainFacing(byte aDirection){ - mMainFacing = aDirection; + public boolean setMainFacing(byte aSide){ + if (!isValidMainFacing(aSide)) return false; + mMainFacing = aSide; if(getBaseMetaTileEntity().getFrontFacing() == mMainFacing){ - getBaseMetaTileEntity().setFrontFacing(GT_Utility.getOppositeSide(aDirection)); + getBaseMetaTileEntity().setFrontFacing(GT_Utility.getOppositeSide(aSide)); } onFacingChange(); onMachineBlockUpdate(); -- cgit From fcb663754350649e9ce01769f54f850a2c6d262e Mon Sep 17 00:00:00 2001 From: Technus Date: Sun, 7 Jan 2018 11:11:43 +0100 Subject: Fix behaviour of disconnected fluid pipes --- .../api/metatileentity/MetaPipeEntity.java | 2 +- .../implementations/GT_MetaPipeEntity_Fluid.java | 25 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java index 5f1d7cbd44..1df2929071 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java @@ -739,7 +739,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { mConnections |= (1 << aSide); byte tSide = GT_Utility.getOppositeSide(aSide); IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSide(aSide); - IMetaTileEntity tPipe = tTileEntity instanceof IGregTechTileEntity ? ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() : null; + IMetaTileEntity tPipe = tTileEntity != null ? tTileEntity.getMetaTileEntity() : null; if (this.getClass().isInstance(tPipe) && !((MetaPipeEntity) tPipe).isConnectedAtSide(tSide)) ((MetaPipeEntity) tPipe).connect(tSide); return 1; 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 eb403aa5f0..9100daa8d2 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 @@ -649,4 +649,29 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { if (inputAABB.intersectsWith(aabb)) outputAABB.add(aabb); } } + + @Override + public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { + if(isConnectedAtSide(aSide.ordinal()) || aSide==ForgeDirection.UNKNOWN) + return super.drain(aSide, maxDrain, doDrain); + return null; + } + + @Override + public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { + if(isConnectedAtSide(aSide.ordinal()) || aSide==ForgeDirection.UNKNOWN) + return super.drain(aSide, aFluid, doDrain); + return null; + } + + //Stub method? + //@Override + //public int fill(FluidStack resource, boolean doFill) {} + + @Override + public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { + if(isConnectedAtSide(aSide.ordinal()) || aSide==ForgeDirection.UNKNOWN) + return super.fill(aSide, aFluid, doFill); + return 0; + } } -- cgit From bbaa3dd99996a9fa121dd06386051adb4d10b54a Mon Sep 17 00:00:00 2001 From: Antifluxfield Date: Sun, 7 Jan 2018 18:16:31 +0800 Subject: Fix #81 (#83) --- .../api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api') 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 9100daa8d2..ad71f1c099 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 @@ -594,12 +594,12 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { @Override public boolean isLiquidInput(byte aSide) { - return !isInputDisabledAtSide(aSide); + return isConnectedAtSide(aSide) && !isInputDisabledAtSide(aSide); } @Override public boolean isLiquidOutput(byte aSide) { - return true; + return isConnectedAtSide(aSide); } public boolean isInputDisabledAtSide(int aSide) { -- cgit From f50e0bd7cfdc552dc8636677cdb2860e11c523e2 Mon Sep 17 00:00:00 2001 From: Technus Date: Sun, 7 Jan 2018 11:18:42 +0100 Subject: Revert "Fix behaviour of disconnected fluid pipes" This reverts commit fcb663754350649e9ce01769f54f850a2c6d262e. --- .../api/metatileentity/MetaPipeEntity.java | 2 +- .../implementations/GT_MetaPipeEntity_Fluid.java | 25 ---------------------- 2 files changed, 1 insertion(+), 26 deletions(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java index 1df2929071..5f1d7cbd44 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java @@ -739,7 +739,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { mConnections |= (1 << aSide); byte tSide = GT_Utility.getOppositeSide(aSide); IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSide(aSide); - IMetaTileEntity tPipe = tTileEntity != null ? tTileEntity.getMetaTileEntity() : null; + IMetaTileEntity tPipe = tTileEntity instanceof IGregTechTileEntity ? ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() : null; if (this.getClass().isInstance(tPipe) && !((MetaPipeEntity) tPipe).isConnectedAtSide(tSide)) ((MetaPipeEntity) tPipe).connect(tSide); return 1; 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 ad71f1c099..d601ceb8b6 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 @@ -649,29 +649,4 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { if (inputAABB.intersectsWith(aabb)) outputAABB.add(aabb); } } - - @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { - if(isConnectedAtSide(aSide.ordinal()) || aSide==ForgeDirection.UNKNOWN) - return super.drain(aSide, maxDrain, doDrain); - return null; - } - - @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { - if(isConnectedAtSide(aSide.ordinal()) || aSide==ForgeDirection.UNKNOWN) - return super.drain(aSide, aFluid, doDrain); - return null; - } - - //Stub method? - //@Override - //public int fill(FluidStack resource, boolean doFill) {} - - @Override - public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { - if(isConnectedAtSide(aSide.ordinal()) || aSide==ForgeDirection.UNKNOWN) - return super.fill(aSide, aFluid, doFill); - return 0; - } } -- cgit