diff options
author | Alkalus <draknyte1@hotmail.com> | 2017-11-12 17:55:48 +1000 |
---|---|---|
committer | Alkalus <draknyte1@hotmail.com> | 2017-11-12 17:55:48 +1000 |
commit | 4b50c6c2b9dc2666c0d61ccce0c730d7f7acb329 (patch) | |
tree | 41f64baa5e70734b0740f78a0c312eed7d5478d7 | |
parent | 566b1b123082569cb0ffdb2ba5f873ebc0f84470 (diff) | |
download | GT5-Unofficial-4b50c6c2b9dc2666c0d61ccce0c730d7f7acb329.tar.gz GT5-Unofficial-4b50c6c2b9dc2666c0d61ccce0c730d7f7acb329.tar.bz2 GT5-Unofficial-4b50c6c2b9dc2666c0d61ccce0c730d7f7acb329.zip |
$ fixed item push/pull for Modularity Table.
+ Added some new MT textures.
6 files changed, 69 insertions, 15 deletions
diff --git a/src/Java/gtPlusPlus/core/inventories/modulartable/InventoryModularMain.java b/src/Java/gtPlusPlus/core/inventories/modulartable/InventoryModularMain.java index 5b7d85335b..590286a923 100644 --- a/src/Java/gtPlusPlus/core/inventories/modulartable/InventoryModularMain.java +++ b/src/Java/gtPlusPlus/core/inventories/modulartable/InventoryModularMain.java @@ -1,5 +1,7 @@ package gtPlusPlus.core.inventories.modulartable; +import gtPlusPlus.core.slots.SlotModularBauble; +import gtPlusPlus.core.tileentities.machines.TileEntityModularityTable; import gtPlusPlus.core.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -191,12 +193,11 @@ public class InventoryModularMain implements IInventory{ * even when this returns false */ @Override - public boolean isItemValidForSlot(final int slot, final ItemStack itemstack) - { + public boolean isItemValidForSlot(final int slot, final ItemStack itemstack){ // Don't want to be able to store the inventory item within itself // Bad things will happen, like losing your inventory // Actually, this needs a custom Slot to work - return true; + return TileEntityModularityTable.isValidUpgrade(itemstack); } }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/inventories/modulartable/InventoryModularOutput.java b/src/Java/gtPlusPlus/core/inventories/modulartable/InventoryModularOutput.java index 3501b7ae47..998750e3e3 100644 --- a/src/Java/gtPlusPlus/core/inventories/modulartable/InventoryModularOutput.java +++ b/src/Java/gtPlusPlus/core/inventories/modulartable/InventoryModularOutput.java @@ -1,5 +1,6 @@ package gtPlusPlus.core.inventories.modulartable; +import gtPlusPlus.core.tileentities.machines.TileEntityModularityTable; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -181,7 +182,10 @@ public class InventoryModularOutput implements IInventory { // Don't want to be able to store the inventory item within itself // Bad things will happen, like losing your inventory // Actually, this needs a custom Slot to work - return true; + if (slot == 0){ + return TileEntityModularityTable.isValidUpgrade(itemstack); + } + return TileEntityModularityTable.isValidModularPiece(itemstack); } }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityModularityTable.java b/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityModularityTable.java index 5393e15500..3996b1c215 100644 --- a/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityModularityTable.java +++ b/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityModularityTable.java @@ -1,5 +1,8 @@ package gtPlusPlus.core.tileentities.machines; +import static gtPlusPlus.core.tileentities.machines.TileEntityModularityTable.mValidUpgradeList; +import static gtPlusPlus.core.tileentities.machines.TileEntityModularityTable.mValidUpgradeListFormChange; + import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -12,6 +15,7 @@ import gtPlusPlus.core.inventories.modulartable.InventoryModularMain; import gtPlusPlus.core.inventories.modulartable.InventoryModularOutput; import gtPlusPlus.core.item.bauble.ModularBauble; import gtPlusPlus.core.tileentities.base.TileEntityBase; +import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.array.Pair; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.nbt.ModularArmourUtils; @@ -239,7 +243,7 @@ public class TileEntityModularityTable extends TileEntityBase implements ISidedI return this.inventoryGrid.getStackInSlot(slot); } else if (slot < (this.inventoryGrid.getSizeInventory()+this.inventoryOutputs.getSizeInventory())){ - return this.inventoryOutputs.getStackInSlot(slot); + return this.inventoryOutputs.getStackInSlot(slot-9); } else { return null; @@ -252,7 +256,7 @@ public class TileEntityModularityTable extends TileEntityBase implements ISidedI return this.inventoryGrid.decrStackSize(slot, count); } else if (slot < (this.inventoryGrid.getSizeInventory()+this.inventoryOutputs.getSizeInventory())){ - return this.inventoryOutputs.decrStackSize(slot, count); + return this.inventoryOutputs.decrStackSize(slot-9, count); } else { return null; @@ -270,7 +274,7 @@ public class TileEntityModularityTable extends TileEntityBase implements ISidedI this.inventoryGrid.setInventorySlotContents(slot, stack); } else if (slot < (this.inventoryGrid.getSizeInventory()+this.inventoryOutputs.getSizeInventory())){ - this.inventoryOutputs.setInventorySlotContents(slot, stack); + this.inventoryOutputs.setInventorySlotContents(slot-9, stack); } } @@ -308,7 +312,7 @@ public class TileEntityModularityTable extends TileEntityBase implements ISidedI return this.inventoryGrid.isItemValidForSlot(slot, itemstack); } else if (slot < (this.inventoryGrid.getSizeInventory()+this.inventoryOutputs.getSizeInventory())){ - return this.inventoryOutputs.isItemValidForSlot(slot, itemstack); + return this.inventoryOutputs.isItemValidForSlot(slot-9, itemstack); } else { return false; @@ -318,31 +322,45 @@ public class TileEntityModularityTable extends TileEntityBase implements ISidedI @Override public int[] getAccessibleSlotsFromSide(int side) { int[] accessibleSides = new int[this.getSizeInventory()]; - if (side == 0){ + /*if (side == 0){ } else if (side == 1){ for (int r=0; r<this.inventoryOutputs.getSizeInventory(); r++){ - accessibleSides[r]=r; + accessibleSides[r]=9+r; } } else if (side > 1){ for (int r=0; r<this.inventoryGrid.getSizeInventory(); r++){ accessibleSides[r]=r; } - } + } */ + for (int r=0; r<this.getSizeInventory(); r++){ + accessibleSides[r]=r; + } return accessibleSides; } @Override - public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { - return false; + public boolean canInsertItem(int slot, ItemStack item, int side) { + Utils.LOG_INFO("Slot:"+slot+" | side? "+side); + + if (slot <= 8){ + return this.inventoryGrid.isItemValidForSlot(slot, item); + } + else { + return this.inventoryOutputs.isItemValidForSlot(slot, item); + } } @Override - public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { - return true; + public boolean canExtractItem(int slot, ItemStack item, int side) { + Utils.LOG_INFO("Slot:"+slot+" | side? "+side); + if (slot <= 8 || slot == 11){ + return true; + } + return false; } public String getCustomName() { @@ -437,4 +455,35 @@ public class TileEntityModularityTable extends TileEntityBase implements ISidedI } return false; } + + public static boolean isValidModularPiece(final ItemStack itemstack){ + if (itemstack.getItem() instanceof ModularBauble){ + return true; + } + return false; + } + + public static boolean isValidUpgrade(final ItemStack itemstack) { + boolean isValid = false; + if (itemstack != null){ + Iterator<Entry<ItemStack, BT>> it = mValidUpgradeListFormChange.entrySet().iterator(); + while (it.hasNext()) { + Entry<ItemStack, BT> pair = it.next(); + if (pair.getKey().getItem() == itemstack.getItem() + && pair.getKey().getItemDamage() == itemstack.getItemDamage()){ + isValid = true; + } + } + Iterator<Entry<ItemStack, Pair<Modifiers, Integer>>> it2 = mValidUpgradeList.entrySet().iterator(); + while (it2.hasNext()) { + Entry<ItemStack, Pair<Modifiers, Integer>> pair = it2.next(); + if (pair.getKey().getItem() == itemstack.getItem() + && pair.getKey().getItemDamage() == itemstack.getItemDamage()){ + isValid = true; + } + } + } + return isValid; + } + }
\ No newline at end of file diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/ModularTable_output.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/ModularTable_output.png Binary files differnew file mode 100644 index 0000000000..42c1df75cf --- /dev/null +++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/ModularTable_output.png diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/ModularTable_side.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/ModularTable_side.png Binary files differnew file mode 100644 index 0000000000..57d9cc6f86 --- /dev/null +++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/ModularTable_side.png diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/ModularTable_top.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/ModularTable_top.png Binary files differnew file mode 100644 index 0000000000..869b06039f --- /dev/null +++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/ModularTable_top.png |