From 26e10439a576e08bc3261a6d7c6c00c6cad7b761 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 10 Oct 2016 16:35:28 +1000 Subject: + Added some Geothermal Generators. + Added recipes and fuels for all Geothermals. (Normal Lava and Pahoehoe Lava) $ Fixed workbench not saving crafting table contents when closed. % Changed internal loading of Workbenches, Tanks and Geothermals. % Disabled old workbench buttons, now using Gregtech Holo slots. --- .../core/container/Container_Workbench.java | 167 ++++++++++++++++----- 1 file changed, 133 insertions(+), 34 deletions(-) (limited to 'src/Java/gtPlusPlus/core/container') diff --git a/src/Java/gtPlusPlus/core/container/Container_Workbench.java b/src/Java/gtPlusPlus/core/container/Container_Workbench.java index 3c12e860bc..d63133a01e 100644 --- a/src/Java/gtPlusPlus/core/container/Container_Workbench.java +++ b/src/Java/gtPlusPlus/core/container/Container_Workbench.java @@ -1,9 +1,14 @@ package gtPlusPlus.core.container; +import gregtech.api.gui.GT_Slot_Holo; +import gregtech.api.gui.GT_Slot_Output; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.inventories.InventoryWorkbenchChest; +import gtPlusPlus.core.inventories.InventoryWorkbenchHoloCrafting; +import gtPlusPlus.core.inventories.InventoryWorkbenchHoloSlots; import gtPlusPlus.core.inventories.InventoryWorkbenchTools; import gtPlusPlus.core.slots.SlotGtTool; +import gtPlusPlus.core.slots.SlotNoInput; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -12,7 +17,6 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCraftResult; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.Slot; -import net.minecraft.inventory.SlotCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.world.World; @@ -23,23 +27,31 @@ public class Container_Workbench extends Container { public InventoryCrafting craftMatrix = new InventoryCrafting(this, 3, 3); public final InventoryWorkbenchChest inventoryChest; public final InventoryWorkbenchTools inventoryTool; + public final InventoryWorkbenchHoloSlots inventoryHolo; + public final InventoryWorkbenchHoloCrafting inventoryCrafting; + public IInventory craftResult = new InventoryCraftResult(); + private World worldObj; private int posX; private int posY; private int posZ; - - public boolean movingChest; - public boolean movingCrafting; - public static int StorageSlotNumber = 12; //Number of slots in storage area - public static int ToolSlotNumber = 5; // Number of slots in the tool area up top + public static int HoloSlotNumber = 6; public static int InputSlotNumber = 9; //Number of Slots in the Crafting Grid - public static int InOutputSlotNumber = InputSlotNumber + 1; //Same plus Output Slot + public static int StorageSlotNumber = 16; //Number of slots in storage area + public static int ToolSlotNumber = 5; // Number of slots in the tool area up top + public static int InOutputSlotNumber = InputSlotNumber + StorageSlotNumber + ToolSlotNumber + HoloSlotNumber; //Same plus Output Slot public static int InventorySlotNumber = 36; //Inventory Slots (Inventory and Hotbar) public static int InventoryOutSlotNumber = InventorySlotNumber + 1; //Inventory Slot Number + Output public static int FullSlotNumber = InventorySlotNumber + InOutputSlotNumber; //All slots - + + private int slotOutput = 0; + private int[] slotHolo = new int[5]; + private int[] slotCrafting = new int[9]; + private int[] slotStorage = new int[16]; + private int[] slotTools = new int[5]; + public void moveCraftingToChest(){ //Check Chest Space for (int i=0;i<9;i++){ @@ -78,9 +90,9 @@ public class Container_Workbench extends Container { this.tile_entity = tile; this.inventoryChest = tile.inventoryChest; this.inventoryTool = tile.inventoryTool; - - int o=0; - + this.inventoryHolo = tile.inventoryHolo; + this.inventoryCrafting = tile.inventoryCrafting; + int var6; int var7; worldObj = tile.getWorldObj(); @@ -88,8 +100,24 @@ public class Container_Workbench extends Container { posY = tile.yCoord; posZ = tile.zCoord; + int o=0; + //Output slot - addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, craftResult, 0, 136, 64)); + addSlotToContainer(new GT_Slot_Output(inventoryHolo, 0, 136, 64)); + //Util Slots + addSlotToContainer(new SlotNoInput(inventoryHolo, 1, 136, 28)); + addSlotToContainer(new SlotNoInput(inventoryHolo, 2, 154, 28)); + addSlotToContainer(new SlotNoInput(inventoryHolo, 3, 154, 64)); + //Holo Slots + addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 4, 154, 46, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 5, 136, 46, false, false, 1)); + + for (int i=1; i<6; i++){ + slotHolo[o] = o+1; + o++; + } + + o=0; //Crafting Grid for (var6 = 0; var6 < 3; ++var6) @@ -97,25 +125,17 @@ public class Container_Workbench extends Container { for (var7 = 0; var7 < 3; ++var7) { this.addSlotToContainer(new Slot(this.craftMatrix, var7 + var6 * 3, 82 + var7 * 18, 28 + var6 * 18)); + + if (this.inventoryCrafting.getStackInSlot(o) != null){ + this.craftMatrix.setInventorySlotContents(o, inventoryCrafting.getStackInSlot(o)); + this.inventoryCrafting.setInventorySlotContents(o, null); + } + slotCrafting[o] = o+6; + o++; } } - //Player Inventory - for (var6 = 0; var6 < 3; ++var6) - { - for (var7 = 0; var7 < 9; ++var7) - { - this.addSlotToContainer(new Slot(inventory, var7 + var6 * 9 + 9, 8 + var7 * 18, 84 + var6 * 18)); - } - } - - //Player Hotbar - for (var6 = 0; var6 < 9; ++var6) - { - this.addSlotToContainer(new Slot(inventory, var6, 8 + var6 * 18, 142)); - } - - + o=0; //Storage Side for (var6 = 0; var6 < 4; ++var6) @@ -124,28 +144,100 @@ public class Container_Workbench extends Container { { //Utils.LOG_INFO("Adding slots at var:"+(var7 + var6 * 4)+" x:"+(8 + var7 * 18)+" y:"+(7 + var6 * 18)); this.addSlotToContainer(new Slot(inventoryChest, var7 + var6 * 4, 8 + var7 * 18, 7 + var6 * 18)); + slotStorage[o] = o+15; + o++; } } + o=0; + //Tool Slots for (var6 = 0; var6 < 1; ++var6) { for (var7 = 0; var7 < 5; ++var7) { this.addSlotToContainer(new SlotGtTool(inventoryTool, var7 + var6 * 3, 82 + var7 * 18, 8 + var6 * 18)); + slotTools[o] = o+31; + o++; } } + //Player Inventory + for (var6 = 0; var6 < 3; ++var6) + { + for (var7 = 0; var7 < 9; ++var7) + { + this.addSlotToContainer(new Slot(inventory, var7 + var6 * 9 + 9, 8 + var7 * 18, 84 + var6 * 18)); + } + } + + //Player Hotbar + for (var6 = 0; var6 < 9; ++var6) + { + this.addSlotToContainer(new Slot(inventory, var6, 8 + var6 * 18, 142)); + } + this.onCraftMatrixChanged(this.craftMatrix); } +/* @Override + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer){ + + if (aSlotIndex == 999 || aSlotIndex == -999){ + Utils.LOG_INFO("??? - "+aSlotIndex); + } + + if (aSlotIndex == slotOutput){ + Utils.LOG_INFO("Player Clicked on the output slot"); + } + + for (int x : slotHolo){ + if (aSlotIndex == x){ + Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the Holo Grid"); + if (x == 1){ + Utils.LOG_INFO("Player Clicked Blueprint slot in the Holo Grid"); + } + else if (x == 2){ + Utils.LOG_INFO("Player Clicked Right Arrow slot in the Holo Grid"); + } + else if (x == 3){ + Utils.LOG_INFO("Player Clicked Big [P] slot in the Holo Grid"); + } + else if (x == 4){ + Utils.LOG_INFO("Player Clicked Transfer to Crafting Grid slot in the Holo Grid"); + } + else if (x == 5){ + Utils.LOG_INFO("Player Clicked Transfer to Storage Grid slot in the Holo Grid"); + } + } + } + + for (int x : slotCrafting){ + if (aSlotIndex == x){ + Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the crafting Grid"); + } + } + for (int x : slotStorage){ + if (aSlotIndex == x){ + Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the storage Grid"); + } + } + for (int x : slotTools){ + if (aSlotIndex == x){ + Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the tool Grid"); + } + } + //Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the Grid"); + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } +*/ @Override public void onCraftMatrixChanged(IInventory par1IInventory){ //Custom Recipe Handler //craftResult.setInventorySlotContents(0, Workbench_CraftingHandler.getInstance().findMatchingRecipe(craftMatrix, worldObj)); - + //Vanilla CraftingManager craftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(craftMatrix, worldObj)); } @@ -153,11 +245,15 @@ public class Container_Workbench extends Container { @Override public void onContainerClosed(EntityPlayer par1EntityPlayer) - { - - super.onContainerClosed(par1EntityPlayer); + { + for (int o=0; o Date: Mon, 10 Oct 2016 23:17:59 +1000 Subject: + Added Blueprints - These are capable of storing a crafting recipe in it, to be used with the workbench. % More Internal work on the Workbench and it's handling of shit. + Added an interface for blueprints and other shit to utilize. --- .../core/container/Container_Workbench.java | 46 +++++++++++++++++----- 1 file changed, 37 insertions(+), 9 deletions(-) (limited to 'src/Java/gtPlusPlus/core/container') diff --git a/src/Java/gtPlusPlus/core/container/Container_Workbench.java b/src/Java/gtPlusPlus/core/container/Container_Workbench.java index d63133a01e..5ce6d0e1a2 100644 --- a/src/Java/gtPlusPlus/core/container/Container_Workbench.java +++ b/src/Java/gtPlusPlus/core/container/Container_Workbench.java @@ -1,15 +1,19 @@ package gtPlusPlus.core.container; import gregtech.api.gui.GT_Slot_Holo; -import gregtech.api.gui.GT_Slot_Output; import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.interfaces.IItemBlueprint; import gtPlusPlus.core.inventories.InventoryWorkbenchChest; import gtPlusPlus.core.inventories.InventoryWorkbenchHoloCrafting; import gtPlusPlus.core.inventories.InventoryWorkbenchHoloSlots; import gtPlusPlus.core.inventories.InventoryWorkbenchTools; +import gtPlusPlus.core.item.general.ItemBlueprint; +import gtPlusPlus.core.slots.SlotBlueprint; +import gtPlusPlus.core.slots.SlotGeneric; import gtPlusPlus.core.slots.SlotGtTool; -import gtPlusPlus.core.slots.SlotNoInput; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.item.UtilsItems; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -103,11 +107,11 @@ public class Container_Workbench extends Container { int o=0; //Output slot - addSlotToContainer(new GT_Slot_Output(inventoryHolo, 0, 136, 64)); + addSlotToContainer(new SlotGeneric(inventoryHolo, 0, 136, 64)); //Util Slots - addSlotToContainer(new SlotNoInput(inventoryHolo, 1, 136, 28)); - addSlotToContainer(new SlotNoInput(inventoryHolo, 2, 154, 28)); - addSlotToContainer(new SlotNoInput(inventoryHolo, 3, 154, 64)); + addSlotToContainer(new SlotBlueprint(inventoryHolo, 1, 136, 28)); //Blueprint + addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 2, 154, 28, false, false, 1)); //Hopper + addSlotToContainer(new SlotGeneric(inventoryHolo, 3, 154, 64)); //Parking //Holo Slots addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 4, 154, 46, false, false, 1)); addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 5, 136, 46, false, false, 1)); @@ -181,7 +185,7 @@ public class Container_Workbench extends Container { } -/* @Override + @Override public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer){ if (aSlotIndex == 999 || aSlotIndex == -999){ @@ -199,7 +203,32 @@ public class Container_Workbench extends Container { Utils.LOG_INFO("Player Clicked Blueprint slot in the Holo Grid"); } else if (x == 2){ - Utils.LOG_INFO("Player Clicked Right Arrow slot in the Holo Grid"); + Utils.LOG_INFO("Player Clicked Right Arrow slot in the Holo Grid"); + if (inventoryHolo.getStackInSlot(1) != null){ + Utils.LOG_INFO("Found an ItemStack."); + if (inventoryHolo.getStackInSlot(1).getItem() instanceof IItemBlueprint){ + Utils.LOG_INFO("Found a blueprint."); + ItemStack tempBlueprint = inventoryHolo.getStackInSlot(1); + ItemBlueprint tempItemBlueprint = (ItemBlueprint) tempBlueprint.getItem(); + if (inventoryHolo.getStackInSlot(0) != null){ + Utils.LOG_INFO("Output slot was not empty."); + Utils.LOG_INFO("Trying to manipulate NBT data on the blueprint stack, then replace it with the new one."); + tempItemBlueprint.setBlueprint(inventoryHolo.getStackInSlot(1), craftMatrix, inventoryHolo.getStackInSlot(0)); + ItemStack newTempBlueprint = UtilsItems.getSimpleStack(tempItemBlueprint); + inventoryHolo.setInventorySlotContents(1, newTempBlueprint); + Utils.LOG_INFO(UtilsItems.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); + } + else { + Utils.LOG_INFO("Output slot was empty."); + } + } + else { + Utils.LOG_INFO("ItemStack found was not a blueprint."); + } + } + else { + Utils.LOG_INFO("No ItemStack found in Blueprint slot."); + } } else if (x == 3){ Utils.LOG_INFO("Player Clicked Big [P] slot in the Holo Grid"); @@ -231,7 +260,6 @@ public class Container_Workbench extends Container { //Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the Grid"); return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); } -*/ @Override public void onCraftMatrixChanged(IInventory par1IInventory){ -- cgit From d6bf108b40f0b281ff7c3c2bc91e43ed2b9883f7 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 17 Oct 2016 01:39:50 +1000 Subject: + Added Tesseract Generators and Terminals. + Added a handful of new, old textures from GT4. % Rewrote portions of the Blueprint item again, to try make it work better with NBT. + Added an Example NBT item for myself~ because I am a derp. + Added some custom textures for the Industrial Centrifuge. % Moved all the GT4 Tile Entities to their own loading class. --- .../core/container/Container_Workbench.java | 23 ++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/Java/gtPlusPlus/core/container') diff --git a/src/Java/gtPlusPlus/core/container/Container_Workbench.java b/src/Java/gtPlusPlus/core/container/Container_Workbench.java index 5ce6d0e1a2..b3b024f52c 100644 --- a/src/Java/gtPlusPlus/core/container/Container_Workbench.java +++ b/src/Java/gtPlusPlus/core/container/Container_Workbench.java @@ -188,8 +188,9 @@ public class Container_Workbench extends Container { @Override public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer){ + if (!aPlayer.worldObj.isRemote){ if (aSlotIndex == 999 || aSlotIndex == -999){ - Utils.LOG_INFO("??? - "+aSlotIndex); + //Utils.LOG_INFO("??? - "+aSlotIndex); } if (aSlotIndex == slotOutput){ @@ -210,7 +211,7 @@ public class Container_Workbench extends Container { Utils.LOG_INFO("Found a blueprint."); ItemStack tempBlueprint = inventoryHolo.getStackInSlot(1); ItemBlueprint tempItemBlueprint = (ItemBlueprint) tempBlueprint.getItem(); - if (inventoryHolo.getStackInSlot(0) != null){ + if (inventoryHolo.getStackInSlot(0) != null && !tempItemBlueprint.hasBlueprint(tempBlueprint)){ Utils.LOG_INFO("Output slot was not empty."); Utils.LOG_INFO("Trying to manipulate NBT data on the blueprint stack, then replace it with the new one."); tempItemBlueprint.setBlueprint(inventoryHolo.getStackInSlot(1), craftMatrix, inventoryHolo.getStackInSlot(0)); @@ -219,7 +220,12 @@ public class Container_Workbench extends Container { Utils.LOG_INFO(UtilsItems.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); } else { - Utils.LOG_INFO("Output slot was empty."); + if (tempItemBlueprint.hasBlueprint(tempBlueprint)){ + Utils.LOG_INFO("Blueprint already holds a recipe."); + } + else { + Utils.LOG_INFO("Output slot was empty."); + } } } else { @@ -257,6 +263,7 @@ public class Container_Workbench extends Container { Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the tool Grid"); } } + } //Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the Grid"); return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); } @@ -267,7 +274,15 @@ public class Container_Workbench extends Container { //craftResult.setInventorySlotContents(0, Workbench_CraftingHandler.getInstance().findMatchingRecipe(craftMatrix, worldObj)); //Vanilla CraftingManager - craftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(craftMatrix, worldObj)); + Utils.LOG_INFO("checking crafting grid for a valid output."); + ItemStack temp = CraftingManager.getInstance().findMatchingRecipe(craftMatrix, worldObj); + if (temp != null){ + Utils.LOG_INFO("Output found. "+temp.getDisplayName()+" x"+temp.stackSize); + inventoryHolo.setInventorySlotContents(slotOutput, temp); + } + else { + Utils.LOG_INFO("No Valid output found."); + } } -- cgit From 604023eb80fe0c50fac956e93625c9be88bb9cd8 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Thu, 20 Oct 2016 16:43:59 +1000 Subject: $ Fixed the workbench crafting grid/output doing odd things (Client side item dupes & actual item dupes) % Changed the workbench textures. --- .../core/container/Container_Workbench.java | 188 ++++++++++++--------- 1 file changed, 109 insertions(+), 79 deletions(-) (limited to 'src/Java/gtPlusPlus/core/container') diff --git a/src/Java/gtPlusPlus/core/container/Container_Workbench.java b/src/Java/gtPlusPlus/core/container/Container_Workbench.java index b3b024f52c..aa1fd1b509 100644 --- a/src/Java/gtPlusPlus/core/container/Container_Workbench.java +++ b/src/Java/gtPlusPlus/core/container/Container_Workbench.java @@ -11,6 +11,7 @@ import gtPlusPlus.core.item.general.ItemBlueprint; import gtPlusPlus.core.slots.SlotBlueprint; import gtPlusPlus.core.slots.SlotGeneric; import gtPlusPlus.core.slots.SlotGtTool; +import gtPlusPlus.core.slots.SlotOutput; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.UtilsItems; @@ -18,7 +19,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryCraftResult; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; @@ -34,8 +34,6 @@ public class Container_Workbench extends Container { public final InventoryWorkbenchHoloSlots inventoryHolo; public final InventoryWorkbenchHoloCrafting inventoryCrafting; - public IInventory craftResult = new InventoryCraftResult(); - private World worldObj; private int posX; private int posY; @@ -96,7 +94,7 @@ public class Container_Workbench extends Container { this.inventoryTool = tile.inventoryTool; this.inventoryHolo = tile.inventoryHolo; this.inventoryCrafting = tile.inventoryCrafting; - + int var6; int var7; worldObj = tile.getWorldObj(); @@ -107,7 +105,7 @@ public class Container_Workbench extends Container { int o=0; //Output slot - addSlotToContainer(new SlotGeneric(inventoryHolo, 0, 136, 64)); + addSlotToContainer(new SlotOutput(inventory.player, this.craftMatrix, tile.inventoryCraftResult, 0, 136, 64)); //Util Slots addSlotToContainer(new SlotBlueprint(inventoryHolo, 1, 136, 28)); //Blueprint addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 2, 154, 28, false, false, 1)); //Hopper @@ -123,17 +121,19 @@ public class Container_Workbench extends Container { o=0; + updateCraftingMatrix(); + //Crafting Grid for (var6 = 0; var6 < 3; ++var6) { for (var7 = 0; var7 < 3; ++var7) { this.addSlotToContainer(new Slot(this.craftMatrix, var7 + var6 * 3, 82 + var7 * 18, 28 + var6 * 18)); - - if (this.inventoryCrafting.getStackInSlot(o) != null){ + + /*if (this.inventoryCrafting.getStackInSlot(o) != null){ this.craftMatrix.setInventorySlotContents(o, inventoryCrafting.getStackInSlot(o)); this.inventoryCrafting.setInventorySlotContents(o, null); - } + } */ slotCrafting[o] = o+6; o++; } @@ -189,86 +189,114 @@ public class Container_Workbench extends Container { public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer){ if (!aPlayer.worldObj.isRemote){ - if (aSlotIndex == 999 || aSlotIndex == -999){ - //Utils.LOG_INFO("??? - "+aSlotIndex); - } + if (aSlotIndex == 999 || aSlotIndex == -999){ + //Utils.LOG_INFO("??? - "+aSlotIndex); + } - if (aSlotIndex == slotOutput){ - Utils.LOG_INFO("Player Clicked on the output slot"); - } + if (aSlotIndex == slotOutput){ + Utils.LOG_INFO("Player Clicked on the output slot"); + //TODO + } - for (int x : slotHolo){ - if (aSlotIndex == x){ - Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the Holo Grid"); - if (x == 1){ - Utils.LOG_INFO("Player Clicked Blueprint slot in the Holo Grid"); - } - else if (x == 2){ - Utils.LOG_INFO("Player Clicked Right Arrow slot in the Holo Grid"); - if (inventoryHolo.getStackInSlot(1) != null){ - Utils.LOG_INFO("Found an ItemStack."); - if (inventoryHolo.getStackInSlot(1).getItem() instanceof IItemBlueprint){ - Utils.LOG_INFO("Found a blueprint."); - ItemStack tempBlueprint = inventoryHolo.getStackInSlot(1); - ItemBlueprint tempItemBlueprint = (ItemBlueprint) tempBlueprint.getItem(); - if (inventoryHolo.getStackInSlot(0) != null && !tempItemBlueprint.hasBlueprint(tempBlueprint)){ - Utils.LOG_INFO("Output slot was not empty."); - Utils.LOG_INFO("Trying to manipulate NBT data on the blueprint stack, then replace it with the new one."); - tempItemBlueprint.setBlueprint(inventoryHolo.getStackInSlot(1), craftMatrix, inventoryHolo.getStackInSlot(0)); - ItemStack newTempBlueprint = UtilsItems.getSimpleStack(tempItemBlueprint); - inventoryHolo.setInventorySlotContents(1, newTempBlueprint); - Utils.LOG_INFO(UtilsItems.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); - } - else { - if (tempItemBlueprint.hasBlueprint(tempBlueprint)){ - Utils.LOG_INFO("Blueprint already holds a recipe."); + for (int x : slotHolo){ + if (aSlotIndex == x){ + Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the Holo Grid"); + if (x == 1){ + Utils.LOG_INFO("Player Clicked Blueprint slot in the Holo Grid"); + } + else if (x == 2){ + Utils.LOG_INFO("Player Clicked Right Arrow slot in the Holo Grid"); + if (inventoryHolo.getStackInSlot(1) != null){ + Utils.LOG_INFO("Found an ItemStack."); + if (inventoryHolo.getStackInSlot(1).getItem() instanceof IItemBlueprint){ + Utils.LOG_INFO("Found a blueprint."); + ItemStack tempBlueprint = inventoryHolo.getStackInSlot(1); + ItemBlueprint tempItemBlueprint = (ItemBlueprint) tempBlueprint.getItem(); + if (inventoryHolo.getStackInSlot(0) != null && !tempItemBlueprint.hasBlueprint(tempBlueprint)){ + Utils.LOG_INFO("Output slot was not empty."); + Utils.LOG_INFO("Trying to manipulate NBT data on the blueprint stack, then replace it with the new one."); + tempItemBlueprint.setBlueprint(inventoryHolo.getStackInSlot(1), craftMatrix, inventoryHolo.getStackInSlot(0)); + ItemStack newTempBlueprint = UtilsItems.getSimpleStack(tempItemBlueprint); + inventoryHolo.setInventorySlotContents(1, newTempBlueprint); + Utils.LOG_INFO(UtilsItems.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); } else { - Utils.LOG_INFO("Output slot was empty."); + if (tempItemBlueprint.hasBlueprint(tempBlueprint)){ + Utils.LOG_INFO("Blueprint already holds a recipe."); + } + else { + Utils.LOG_INFO("Output slot was empty."); + } } } + else { + Utils.LOG_INFO("ItemStack found was not a blueprint."); + } } else { - Utils.LOG_INFO("ItemStack found was not a blueprint."); + Utils.LOG_INFO("No ItemStack found in Blueprint slot."); } } - else { - Utils.LOG_INFO("No ItemStack found in Blueprint slot."); + else if (x == 3){ + Utils.LOG_INFO("Player Clicked Big [P] slot in the Holo Grid"); + } + else if (x == 4){ + Utils.LOG_INFO("Player Clicked Transfer to Crafting Grid slot in the Holo Grid"); + } + else if (x == 5){ + Utils.LOG_INFO("Player Clicked Transfer to Storage Grid slot in the Holo Grid"); } - } - else if (x == 3){ - Utils.LOG_INFO("Player Clicked Big [P] slot in the Holo Grid"); - } - else if (x == 4){ - Utils.LOG_INFO("Player Clicked Transfer to Crafting Grid slot in the Holo Grid"); - } - else if (x == 5){ - Utils.LOG_INFO("Player Clicked Transfer to Storage Grid slot in the Holo Grid"); } } - } - for (int x : slotCrafting){ - if (aSlotIndex == x){ - Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the crafting Grid"); + for (int x : slotCrafting){ + if (aSlotIndex == x){ + Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the crafting Grid"); + } } - } - for (int x : slotStorage){ - if (aSlotIndex == x){ - Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the storage Grid"); + for (int x : slotStorage){ + if (aSlotIndex == x){ + Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the storage Grid"); + } } - } - for (int x : slotTools){ - if (aSlotIndex == x){ - Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the tool Grid"); + for (int x : slotTools){ + if (aSlotIndex == x){ + Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the tool Grid"); + } } } - } //Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the Grid"); return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); } + private void updateCraftingMatrix() { + for (int i = 0; i < craftMatrix.getSizeInventory(); i++) { + craftMatrix.setInventorySlotContents(i, tile_entity.inventoryCrafting.getStackInSlot(i)); + } + } + + @Override + public void onCraftMatrixChanged(IInventory iiventory) { + tile_entity.inventoryCraftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(craftMatrix, worldObj)); + } + @Override + public void onContainerClosed(EntityPlayer par1EntityPlayer) + { + super.onContainerClosed(par1EntityPlayer); + saveCraftingMatrix(); + } + + private void saveCraftingMatrix() { + for (int i = 0; i < craftMatrix.getSizeInventory(); i++) { + tile_entity.inventoryCrafting.setInventorySlotContents(i, craftMatrix.getStackInSlot(i)); + } + } + + + + + /*@Override public void onCraftMatrixChanged(IInventory par1IInventory){ //Custom Recipe Handler //craftResult.setInventorySlotContents(0, Workbench_CraftingHandler.getInstance().findMatchingRecipe(craftMatrix, worldObj)); @@ -278,25 +306,25 @@ public class Container_Workbench extends Container { ItemStack temp = CraftingManager.getInstance().findMatchingRecipe(craftMatrix, worldObj); if (temp != null){ Utils.LOG_INFO("Output found. "+temp.getDisplayName()+" x"+temp.stackSize); - inventoryHolo.setInventorySlotContents(slotOutput, temp); + craftResult.setInventorySlotContents(slotOutput, temp); } else { Utils.LOG_INFO("No Valid output found."); + craftResult.setInventorySlotContents(slotOutput, null); } - } + }*/ - - @Override + /*@Override public void onContainerClosed(EntityPlayer par1EntityPlayer) { for (int o=0; o Date: Thu, 20 Oct 2016 20:04:45 +1000 Subject: + Added the Advanced workbench. + Added custom slots for the Adv. Workbench, that take either tools or IElectricItems. % Swapped the textures on most multiblocks/casings. --- .../core/container/Container_Workbench.java | 56 +-- .../container/Container_WorkbenchAdvanced.java | 384 +++++++++++++++++++++ 2 files changed, 412 insertions(+), 28 deletions(-) create mode 100644 src/Java/gtPlusPlus/core/container/Container_WorkbenchAdvanced.java (limited to 'src/Java/gtPlusPlus/core/container') diff --git a/src/Java/gtPlusPlus/core/container/Container_Workbench.java b/src/Java/gtPlusPlus/core/container/Container_Workbench.java index aa1fd1b509..6e68eb7338 100644 --- a/src/Java/gtPlusPlus/core/container/Container_Workbench.java +++ b/src/Java/gtPlusPlus/core/container/Container_Workbench.java @@ -9,8 +9,8 @@ import gtPlusPlus.core.inventories.InventoryWorkbenchHoloSlots; import gtPlusPlus.core.inventories.InventoryWorkbenchTools; import gtPlusPlus.core.item.general.ItemBlueprint; import gtPlusPlus.core.slots.SlotBlueprint; -import gtPlusPlus.core.slots.SlotGeneric; import gtPlusPlus.core.slots.SlotGtTool; +import gtPlusPlus.core.slots.SlotNoInput; import gtPlusPlus.core.slots.SlotOutput; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench; import gtPlusPlus.core.util.Utils; @@ -108,8 +108,8 @@ public class Container_Workbench extends Container { addSlotToContainer(new SlotOutput(inventory.player, this.craftMatrix, tile.inventoryCraftResult, 0, 136, 64)); //Util Slots addSlotToContainer(new SlotBlueprint(inventoryHolo, 1, 136, 28)); //Blueprint - addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 2, 154, 28, false, false, 1)); //Hopper - addSlotToContainer(new SlotGeneric(inventoryHolo, 3, 154, 64)); //Parking + addSlotToContainer(new SlotNoInput(inventoryHolo, 2, 154, 28)); //Hopper + addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 3, 154, 64, false, false, 64)); //Parking //Holo Slots addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 4, 154, 46, false, false, 1)); addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 5, 136, 46, false, false, 1)); @@ -146,7 +146,7 @@ public class Container_Workbench extends Container { { for (var7 = 0; var7 < 4; ++var7) { - //Utils.LOG_INFO("Adding slots at var:"+(var7 + var6 * 4)+" x:"+(8 + var7 * 18)+" y:"+(7 + var6 * 18)); + //Utils.LOG_WARNING("Adding slots at var:"+(var7 + var6 * 4)+" x:"+(8 + var7 * 18)+" y:"+(7 + var6 * 18)); this.addSlotToContainer(new Slot(inventoryChest, var7 + var6 * 4, 8 + var7 * 18, 7 + var6 * 18)); slotStorage[o] = o+15; o++; @@ -190,82 +190,82 @@ public class Container_Workbench extends Container { if (!aPlayer.worldObj.isRemote){ if (aSlotIndex == 999 || aSlotIndex == -999){ - //Utils.LOG_INFO("??? - "+aSlotIndex); + //Utils.LOG_WARNING("??? - "+aSlotIndex); } if (aSlotIndex == slotOutput){ - Utils.LOG_INFO("Player Clicked on the output slot"); + Utils.LOG_WARNING("Player Clicked on the output slot"); //TODO } for (int x : slotHolo){ if (aSlotIndex == x){ - Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the Holo Grid"); + Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the Holo Grid"); if (x == 1){ - Utils.LOG_INFO("Player Clicked Blueprint slot in the Holo Grid"); + Utils.LOG_WARNING("Player Clicked Blueprint slot in the Holo Grid"); } else if (x == 2){ - Utils.LOG_INFO("Player Clicked Right Arrow slot in the Holo Grid"); + Utils.LOG_WARNING("Player Clicked Right Arrow slot in the Holo Grid"); if (inventoryHolo.getStackInSlot(1) != null){ - Utils.LOG_INFO("Found an ItemStack."); + Utils.LOG_WARNING("Found an ItemStack."); if (inventoryHolo.getStackInSlot(1).getItem() instanceof IItemBlueprint){ - Utils.LOG_INFO("Found a blueprint."); + Utils.LOG_WARNING("Found a blueprint."); ItemStack tempBlueprint = inventoryHolo.getStackInSlot(1); ItemBlueprint tempItemBlueprint = (ItemBlueprint) tempBlueprint.getItem(); if (inventoryHolo.getStackInSlot(0) != null && !tempItemBlueprint.hasBlueprint(tempBlueprint)){ - Utils.LOG_INFO("Output slot was not empty."); - Utils.LOG_INFO("Trying to manipulate NBT data on the blueprint stack, then replace it with the new one."); + Utils.LOG_WARNING("Output slot was not empty."); + Utils.LOG_WARNING("Trying to manipulate NBT data on the blueprint stack, then replace it with the new one."); tempItemBlueprint.setBlueprint(inventoryHolo.getStackInSlot(1), craftMatrix, inventoryHolo.getStackInSlot(0)); ItemStack newTempBlueprint = UtilsItems.getSimpleStack(tempItemBlueprint); inventoryHolo.setInventorySlotContents(1, newTempBlueprint); - Utils.LOG_INFO(UtilsItems.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); + Utils.LOG_WARNING(UtilsItems.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); } else { if (tempItemBlueprint.hasBlueprint(tempBlueprint)){ - Utils.LOG_INFO("Blueprint already holds a recipe."); + Utils.LOG_WARNING("Blueprint already holds a recipe."); } else { - Utils.LOG_INFO("Output slot was empty."); + Utils.LOG_WARNING("Output slot was empty."); } } } else { - Utils.LOG_INFO("ItemStack found was not a blueprint."); + Utils.LOG_WARNING("ItemStack found was not a blueprint."); } } else { - Utils.LOG_INFO("No ItemStack found in Blueprint slot."); + Utils.LOG_WARNING("No ItemStack found in Blueprint slot."); } } else if (x == 3){ - Utils.LOG_INFO("Player Clicked Big [P] slot in the Holo Grid"); + Utils.LOG_WARNING("Player Clicked Big [P] slot in the Holo Grid"); } else if (x == 4){ - Utils.LOG_INFO("Player Clicked Transfer to Crafting Grid slot in the Holo Grid"); + Utils.LOG_WARNING("Player Clicked Transfer to Crafting Grid slot in the Holo Grid"); } else if (x == 5){ - Utils.LOG_INFO("Player Clicked Transfer to Storage Grid slot in the Holo Grid"); + Utils.LOG_WARNING("Player Clicked Transfer to Storage Grid slot in the Holo Grid"); } } } for (int x : slotCrafting){ if (aSlotIndex == x){ - Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the crafting Grid"); + Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the crafting Grid"); } } for (int x : slotStorage){ if (aSlotIndex == x){ - Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the storage Grid"); + Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the storage Grid"); } } for (int x : slotTools){ if (aSlotIndex == x){ - Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the tool Grid"); + Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the tool Grid"); } } } - //Utils.LOG_INFO("Player Clicked slot "+aSlotIndex+" in the Grid"); + //Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the Grid"); return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); } @@ -302,14 +302,14 @@ public class Container_Workbench extends Container { //craftResult.setInventorySlotContents(0, Workbench_CraftingHandler.getInstance().findMatchingRecipe(craftMatrix, worldObj)); //Vanilla CraftingManager - Utils.LOG_INFO("checking crafting grid for a valid output."); + Utils.LOG_WARNING("checking crafting grid for a valid output."); ItemStack temp = CraftingManager.getInstance().findMatchingRecipe(craftMatrix, worldObj); if (temp != null){ - Utils.LOG_INFO("Output found. "+temp.getDisplayName()+" x"+temp.stackSize); + Utils.LOG_WARNING("Output found. "+temp.getDisplayName()+" x"+temp.stackSize); craftResult.setInventorySlotContents(slotOutput, temp); } else { - Utils.LOG_INFO("No Valid output found."); + Utils.LOG_WARNING("No Valid output found."); craftResult.setInventorySlotContents(slotOutput, null); } }*/ diff --git a/src/Java/gtPlusPlus/core/container/Container_WorkbenchAdvanced.java b/src/Java/gtPlusPlus/core/container/Container_WorkbenchAdvanced.java new file mode 100644 index 0000000000..17ec451056 --- /dev/null +++ b/src/Java/gtPlusPlus/core/container/Container_WorkbenchAdvanced.java @@ -0,0 +1,384 @@ +package gtPlusPlus.core.container; + +import gregtech.api.gui.GT_Slot_Holo; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.interfaces.IItemBlueprint; +import gtPlusPlus.core.inventories.InventoryWorkbenchChest; +import gtPlusPlus.core.inventories.InventoryWorkbenchHoloCrafting; +import gtPlusPlus.core.inventories.InventoryWorkbenchHoloSlots; +import gtPlusPlus.core.inventories.InventoryWorkbenchToolsElectric; +import gtPlusPlus.core.item.general.ItemBlueprint; +import gtPlusPlus.core.slots.SlotBlueprint; +import gtPlusPlus.core.slots.SlotGtToolElectric; +import gtPlusPlus.core.slots.SlotNoInput; +import gtPlusPlus.core.slots.SlotOutput; +import gtPlusPlus.core.tileentities.machines.TileEntityWorkbenchAdvanced; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.item.UtilsItems; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.world.World; + +public class Container_WorkbenchAdvanced extends Container { + + protected TileEntityWorkbenchAdvanced tile_entity; + public InventoryCrafting craftMatrix = new InventoryCrafting(this, 3, 3); + public final InventoryWorkbenchChest inventoryChest; + public final InventoryWorkbenchToolsElectric inventoryTool; + public final InventoryWorkbenchHoloSlots inventoryHolo; + public final InventoryWorkbenchHoloCrafting inventoryCrafting; + + private World worldObj; + private int posX; + private int posY; + private int posZ; + + public static int HoloSlotNumber = 6; + public static int InputSlotNumber = 9; //Number of Slots in the Crafting Grid + public static int StorageSlotNumber = 16; //Number of slots in storage area + public static int ToolSlotNumber = 5; // Number of slots in the tool area up top + public static int InOutputSlotNumber = InputSlotNumber + StorageSlotNumber + ToolSlotNumber + HoloSlotNumber; //Same plus Output Slot + public static int InventorySlotNumber = 36; //Inventory Slots (Inventory and Hotbar) + public static int InventoryOutSlotNumber = InventorySlotNumber + 1; //Inventory Slot Number + Output + public static int FullSlotNumber = InventorySlotNumber + InOutputSlotNumber; //All slots + + private int slotOutput = 0; + private int[] slotHolo = new int[5]; + private int[] slotCrafting = new int[9]; + private int[] slotStorage = new int[16]; + private int[] slotTools = new int[5]; + + public Container_WorkbenchAdvanced(InventoryPlayer inventory, TileEntityWorkbenchAdvanced tile){ + this.tile_entity = tile; + this.inventoryChest = tile.inventoryChest; + this.inventoryTool = tile.inventoryTool; + this.inventoryHolo = tile.inventoryHolo; + this.inventoryCrafting = tile.inventoryCrafting; + + int var6; + int var7; + worldObj = tile.getWorldObj(); + posX = tile.xCoord; + posY = tile.yCoord; + posZ = tile.zCoord; + + int o=0; + + //Output slot + addSlotToContainer(new SlotOutput(inventory.player, this.craftMatrix, tile.inventoryCraftResult, 0, 136, 64)); + //Util Slots + addSlotToContainer(new SlotBlueprint(inventoryHolo, 1, 136, 28)); //Blueprint + addSlotToContainer(new SlotNoInput(inventoryHolo, 2, 154, 28)); //Hopper + addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 3, 154, 64, false, false, 64)); //Parking + //Holo Slots + addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 4, 154, 46, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(inventoryHolo, 5, 136, 46, false, false, 1)); + + for (int i=1; i<6; i++){ + slotHolo[o] = o+1; + o++; + } + + o=0; + + updateCraftingMatrix(); + + //Crafting Grid + for (var6 = 0; var6 < 3; ++var6) + { + for (var7 = 0; var7 < 3; ++var7) + { + this.addSlotToContainer(new Slot(this.craftMatrix, var7 + var6 * 3, 82 + var7 * 18, 28 + var6 * 18)); + + /*if (this.inventoryCrafting.getStackInSlot(o) != null){ + this.craftMatrix.setInventorySlotContents(o, inventoryCrafting.getStackInSlot(o)); + this.inventoryCrafting.setInventorySlotContents(o, null); + } */ + slotCrafting[o] = o+6; + o++; + } + } + + o=0; + + //Storage Side + for (var6 = 0; var6 < 4; ++var6) + { + for (var7 = 0; var7 < 4; ++var7) + { + //Utils.LOG_WARNING("Adding slots at var:"+(var7 + var6 * 4)+" x:"+(8 + var7 * 18)+" y:"+(7 + var6 * 18)); + this.addSlotToContainer(new Slot(inventoryChest, var7 + var6 * 4, 8 + var7 * 18, 7 + var6 * 18)); + slotStorage[o] = o+15; + o++; + } + } + + o=0; + + //Tool Slots + for (var6 = 0; var6 < 1; ++var6) + { + for (var7 = 0; var7 < 5; ++var7) + { + this.addSlotToContainer(new SlotGtToolElectric(inventoryTool, var7 + var6 * 3, 82 + var7 * 18, 8 + var6 * 18, 3, false)); + slotTools[o] = o+31; + o++; + } + } + + //Player Inventory + for (var6 = 0; var6 < 3; ++var6) + { + for (var7 = 0; var7 < 9; ++var7) + { + this.addSlotToContainer(new Slot(inventory, var7 + var6 * 9 + 9, 8 + var7 * 18, 84 + var6 * 18)); + } + } + + //Player Hotbar + for (var6 = 0; var6 < 9; ++var6) + { + this.addSlotToContainer(new Slot(inventory, var6, 8 + var6 * 18, 142)); + } + + this.onCraftMatrixChanged(this.craftMatrix); + + } + + @Override + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer){ + + if (!aPlayer.worldObj.isRemote){ + if (aSlotIndex == 999 || aSlotIndex == -999){ + //Utils.LOG_WARNING("??? - "+aSlotIndex); + } + + if (aSlotIndex == slotOutput){ + Utils.LOG_WARNING("Player Clicked on the output slot"); + //TODO + } + + for (int x : slotHolo){ + if (aSlotIndex == x){ + Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the Holo Grid"); + if (x == 1){ + Utils.LOG_WARNING("Player Clicked Blueprint slot in the Holo Grid"); + } + else if (x == 2){ + Utils.LOG_WARNING("Player Clicked Right Arrow slot in the Holo Grid"); + if (inventoryHolo.getStackInSlot(1) != null){ + Utils.LOG_WARNING("Found an ItemStack."); + if (inventoryHolo.getStackInSlot(1).getItem() instanceof IItemBlueprint){ + Utils.LOG_WARNING("Found a blueprint."); + ItemStack tempBlueprint = inventoryHolo.getStackInSlot(1); + ItemBlueprint tempItemBlueprint = (ItemBlueprint) tempBlueprint.getItem(); + if (inventoryHolo.getStackInSlot(0) != null && !tempItemBlueprint.hasBlueprint(tempBlueprint)){ + Utils.LOG_WARNING("Output slot was not empty."); + Utils.LOG_WARNING("Trying to manipulate NBT data on the blueprint stack, then replace it with the new one."); + tempItemBlueprint.setBlueprint(inventoryHolo.getStackInSlot(1), craftMatrix, inventoryHolo.getStackInSlot(0)); + ItemStack newTempBlueprint = UtilsItems.getSimpleStack(tempItemBlueprint); + inventoryHolo.setInventorySlotContents(1, newTempBlueprint); + Utils.LOG_WARNING(UtilsItems.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); + } + else { + if (tempItemBlueprint.hasBlueprint(tempBlueprint)){ + Utils.LOG_WARNING("Blueprint already holds a recipe."); + } + else { + Utils.LOG_WARNING("Output slot was empty."); + } + } + } + else { + Utils.LOG_WARNING("ItemStack found was not a blueprint."); + } + } + else { + Utils.LOG_WARNING("No ItemStack found in Blueprint slot."); + } + } + else if (x == 3){ + Utils.LOG_WARNING("Player Clicked Big [P] slot in the Holo Grid"); + } + else if (x == 4){ + Utils.LOG_WARNING("Player Clicked Transfer to Crafting Grid slot in the Holo Grid"); + } + else if (x == 5){ + Utils.LOG_WARNING("Player Clicked Transfer to Storage Grid slot in the Holo Grid"); + } + } + } + + for (int x : slotCrafting){ + if (aSlotIndex == x){ + Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the crafting Grid"); + } + } + for (int x : slotStorage){ + if (aSlotIndex == x){ + Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the storage Grid"); + } + } + for (int x : slotTools){ + if (aSlotIndex == x){ + Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the tool Grid"); + } + } + } + //Utils.LOG_WARNING("Player Clicked slot "+aSlotIndex+" in the Grid"); + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + private void updateCraftingMatrix() { + for (int i = 0; i < craftMatrix.getSizeInventory(); i++) { + craftMatrix.setInventorySlotContents(i, tile_entity.inventoryCrafting.getStackInSlot(i)); + } + } + + @Override + public void onCraftMatrixChanged(IInventory iiventory) { + tile_entity.inventoryCraftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(craftMatrix, worldObj)); + } + + @Override + public void onContainerClosed(EntityPlayer par1EntityPlayer) + { + super.onContainerClosed(par1EntityPlayer); + saveCraftingMatrix(); + } + + private void saveCraftingMatrix() { + for (int i = 0; i < craftMatrix.getSizeInventory(); i++) { + tile_entity.inventoryCrafting.setInventorySlotContents(i, craftMatrix.getStackInSlot(i)); + } + } + + + + + /*@Override + public void onCraftMatrixChanged(IInventory par1IInventory){ + //Custom Recipe Handler + //craftResult.setInventorySlotContents(0, Workbench_CraftingHandler.getInstance().findMatchingRecipe(craftMatrix, worldObj)); + + //Vanilla CraftingManager + Utils.LOG_WARNING("checking crafting grid for a valid output."); + ItemStack temp = CraftingManager.getInstance().findMatchingRecipe(craftMatrix, worldObj); + if (temp != null){ + Utils.LOG_WARNING("Output found. "+temp.getDisplayName()+" x"+temp.stackSize); + craftResult.setInventorySlotContents(slotOutput, temp); + } + else { + Utils.LOG_WARNING("No Valid output found."); + craftResult.setInventorySlotContents(slotOutput, null); + } + }*/ + + /*@Override + public void onContainerClosed(EntityPlayer par1EntityPlayer) + { + for (int o=0; o= InOutputSlotNumber && par2 < InventoryOutSlotNumber) + { + if (!this.mergeItemStack(var5, InventoryOutSlotNumber, FullSlotNumber, false)) + { + return null; + } + } + else if (par2 >= InventoryOutSlotNumber && par2 < FullSlotNumber) + { + if (!this.mergeItemStack(var5, InOutputSlotNumber, InventoryOutSlotNumber, false)) + { + return null; + } + } + else if (!this.mergeItemStack(var5, InOutputSlotNumber, FullSlotNumber, false)) + { + return null; + } + + if (var5.stackSize == 0) + { + var4.putStack((ItemStack)null); + } + else + { + var4.onSlotChanged(); + } + + if (var5.stackSize == var3.stackSize) + { + return null; + } + + var4.onPickupFromSlot(par1EntityPlayer, var5); + } + + return var3; + } + + //Can merge Slot + @Override + public boolean func_94530_a(ItemStack p_94530_1_, Slot p_94530_2_) { + return p_94530_2_.inventory != tile_entity.inventoryCraftResult && super.func_94530_a(p_94530_1_, p_94530_2_); + } + + +} \ No newline at end of file -- cgit From f2a89339d7f6f875d34d4a7bb1868a1d4a3cf644 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Tue, 25 Oct 2016 23:47:58 +1000 Subject: + Tried improving the handling of Blast Smelting. + Tried adding shapeless dust recipes for all of my alloys. (The shapeless recipe system is dumb) + Added a custom GUI for NEI recipes for the Blast Smelter. % Refactored some Utils classes. --- src/Java/gtPlusPlus/core/container/Container_Workbench.java | 6 +++--- src/Java/gtPlusPlus/core/container/Container_WorkbenchAdvanced.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/Java/gtPlusPlus/core/container') diff --git a/src/Java/gtPlusPlus/core/container/Container_Workbench.java b/src/Java/gtPlusPlus/core/container/Container_Workbench.java index 6e68eb7338..c814f8815e 100644 --- a/src/Java/gtPlusPlus/core/container/Container_Workbench.java +++ b/src/Java/gtPlusPlus/core/container/Container_Workbench.java @@ -14,7 +14,7 @@ import gtPlusPlus.core.slots.SlotNoInput; import gtPlusPlus.core.slots.SlotOutput; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.item.UtilsItems; +import gtPlusPlus.core.util.item.ItemUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -216,9 +216,9 @@ public class Container_Workbench extends Container { Utils.LOG_WARNING("Output slot was not empty."); Utils.LOG_WARNING("Trying to manipulate NBT data on the blueprint stack, then replace it with the new one."); tempItemBlueprint.setBlueprint(inventoryHolo.getStackInSlot(1), craftMatrix, inventoryHolo.getStackInSlot(0)); - ItemStack newTempBlueprint = UtilsItems.getSimpleStack(tempItemBlueprint); + ItemStack newTempBlueprint = ItemUtils.getSimpleStack(tempItemBlueprint); inventoryHolo.setInventorySlotContents(1, newTempBlueprint); - Utils.LOG_WARNING(UtilsItems.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); + Utils.LOG_WARNING(ItemUtils.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); } else { if (tempItemBlueprint.hasBlueprint(tempBlueprint)){ diff --git a/src/Java/gtPlusPlus/core/container/Container_WorkbenchAdvanced.java b/src/Java/gtPlusPlus/core/container/Container_WorkbenchAdvanced.java index 17ec451056..f7dc7bb08c 100644 --- a/src/Java/gtPlusPlus/core/container/Container_WorkbenchAdvanced.java +++ b/src/Java/gtPlusPlus/core/container/Container_WorkbenchAdvanced.java @@ -14,7 +14,7 @@ import gtPlusPlus.core.slots.SlotNoInput; import gtPlusPlus.core.slots.SlotOutput; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbenchAdvanced; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.item.UtilsItems; +import gtPlusPlus.core.util.item.ItemUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -182,9 +182,9 @@ public class Container_WorkbenchAdvanced extends Container { Utils.LOG_WARNING("Output slot was not empty."); Utils.LOG_WARNING("Trying to manipulate NBT data on the blueprint stack, then replace it with the new one."); tempItemBlueprint.setBlueprint(inventoryHolo.getStackInSlot(1), craftMatrix, inventoryHolo.getStackInSlot(0)); - ItemStack newTempBlueprint = UtilsItems.getSimpleStack(tempItemBlueprint); + ItemStack newTempBlueprint = ItemUtils.getSimpleStack(tempItemBlueprint); inventoryHolo.setInventorySlotContents(1, newTempBlueprint); - Utils.LOG_WARNING(UtilsItems.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); + Utils.LOG_WARNING(ItemUtils.getArrayStackNames(tempItemBlueprint.getBlueprint(newTempBlueprint))); } else { if (tempItemBlueprint.hasBlueprint(tempBlueprint)){ -- cgit