Made upgrades stackable
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
### 1.3.1
|
### 1.3.1
|
||||||
- Updated Forge to 2180 (raoulvdberge)
|
- Updated Forge to 2180 (raoulvdberge)
|
||||||
|
- Made Upgrades stackable (raoulvdberge)
|
||||||
- Fixed Disk Drive not noticing a Storage Disk being shift clicked out of the GUI (raoulvdberge)
|
- Fixed Disk Drive not noticing a Storage Disk being shift clicked out of the GUI (raoulvdberge)
|
||||||
|
|
||||||
### 1.3
|
### 1.3
|
||||||
|
|||||||
@@ -30,6 +30,95 @@ public abstract class ContainerBase extends Container {
|
|||||||
return tile;
|
return tile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @todo Forge issue #3498
|
||||||
|
@Override
|
||||||
|
protected boolean mergeItemStack(ItemStack stack, int startIndex, int endIndex, boolean reverseDirection) {
|
||||||
|
boolean flag = false;
|
||||||
|
int i = startIndex;
|
||||||
|
|
||||||
|
if (reverseDirection) {
|
||||||
|
i = endIndex - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stack.isStackable()) {
|
||||||
|
while (!stack.isEmpty()) {
|
||||||
|
if (reverseDirection) {
|
||||||
|
if (i < startIndex) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (i >= endIndex) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Slot slot = (Slot) this.inventorySlots.get(i);
|
||||||
|
ItemStack itemstack = slot.getStack();
|
||||||
|
|
||||||
|
if (!itemstack.isEmpty() && itemstack.getItem() == stack.getItem() && (!stack.getHasSubtypes() || stack.getMetadata() == itemstack.getMetadata()) && ItemStack.areItemStackTagsEqual(stack, itemstack)) {
|
||||||
|
int j = itemstack.getCount() + stack.getCount();
|
||||||
|
|
||||||
|
if (j <= slot.getSlotStackLimit()) {
|
||||||
|
stack.setCount(0);
|
||||||
|
itemstack.setCount(j);
|
||||||
|
slot.onSlotChanged();
|
||||||
|
flag = true;
|
||||||
|
} else if (itemstack.getCount() < slot.getSlotStackLimit()) {
|
||||||
|
stack.shrink(slot.getSlotStackLimit() - itemstack.getCount());
|
||||||
|
itemstack.setCount(slot.getSlotStackLimit());
|
||||||
|
slot.onSlotChanged();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reverseDirection) {
|
||||||
|
--i;
|
||||||
|
} else {
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!stack.isEmpty()) {
|
||||||
|
if (reverseDirection) {
|
||||||
|
i = endIndex - 1;
|
||||||
|
} else {
|
||||||
|
i = startIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if (reverseDirection) {
|
||||||
|
if (i < startIndex) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (i >= endIndex) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Slot slot1 = (Slot) this.inventorySlots.get(i);
|
||||||
|
ItemStack itemstack1 = slot1.getStack();
|
||||||
|
|
||||||
|
if (itemstack1.isEmpty() && slot1.isItemValid(stack)) {
|
||||||
|
if (stack.getCount() > slot1.getSlotStackLimit()) {
|
||||||
|
slot1.putStack(stack.splitStack(slot1.getSlotStackLimit()));
|
||||||
|
} else {
|
||||||
|
slot1.putStack(stack.splitStack(stack.getCount()));
|
||||||
|
}
|
||||||
|
|
||||||
|
slot1.onSlotChanged();
|
||||||
|
flag = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reverseDirection) {
|
||||||
|
--i;
|
||||||
|
} else {
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
protected void addPlayerInventory(int xInventory, int yInventory) {
|
protected void addPlayerInventory(int xInventory, int yInventory) {
|
||||||
int id = 0;
|
int id = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileConstructor;
|
import com.raoulvdberge.refinedstorage.tile.TileConstructor;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerConstructor extends ContainerBase {
|
public class ContainerConstructor extends ContainerBase {
|
||||||
public ContainerConstructor(TileConstructor constructor, EntityPlayer player) {
|
public ContainerConstructor(TileConstructor constructor, EntityPlayer player) {
|
||||||
super(constructor, player);
|
super(constructor, player);
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(constructor.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(constructor.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
addSlotToContainer(new SlotFilterType(constructor, 0, 80, 20));
|
addSlotToContainer(new SlotFilterType(constructor, 0, 80, 20));
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileCrafter;
|
import com.raoulvdberge.refinedstorage.tile.TileCrafter;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerCrafter extends ContainerBase {
|
public class ContainerCrafter extends ContainerBase {
|
||||||
public ContainerCrafter(TileCrafter crafter, EntityPlayer player) {
|
public ContainerCrafter(TileCrafter crafter, EntityPlayer player) {
|
||||||
super(crafter, player);
|
super(crafter, player);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(crafter.getPatternItems(), i, 8 + (18 * i), 20));
|
addSlotToContainer(new SlotBase(crafter.getPatternItems(), i, 8 + (18 * i), 20));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(crafter.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(crafter.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
addPlayerInventory(8, 55);
|
addPlayerInventory(8, 55);
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileDestructor;
|
import com.raoulvdberge.refinedstorage.tile.TileDestructor;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerDestructor extends ContainerBase {
|
public class ContainerDestructor extends ContainerBase {
|
||||||
public ContainerDestructor(TileDestructor destructor, EntityPlayer player) {
|
public ContainerDestructor(TileDestructor destructor, EntityPlayer player) {
|
||||||
super(destructor, player);
|
super(destructor, player);
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(destructor.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(destructor.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileDiskDrive;
|
import com.raoulvdberge.refinedstorage.tile.TileDiskDrive;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerDiskDrive extends ContainerBase {
|
public class ContainerDiskDrive extends ContainerBase {
|
||||||
public ContainerDiskDrive(TileDiskDrive drive, EntityPlayer player) {
|
public ContainerDiskDrive(TileDiskDrive drive, EntityPlayer player) {
|
||||||
@@ -15,7 +15,7 @@ public class ContainerDiskDrive extends ContainerBase {
|
|||||||
int y = 54;
|
int y = 54;
|
||||||
|
|
||||||
for (int i = 0; i < 8; ++i) {
|
for (int i = 0; i < 8; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(drive.getDisks(), i, x + ((i % 2) * 18), y + Math.floorDiv(i, 2) * 18));
|
addSlotToContainer(new SlotBase(drive.getDisks(), i, x + ((i % 2) * 18), y + Math.floorDiv(i, 2) * 18));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileDiskManipulator;
|
import com.raoulvdberge.refinedstorage.tile.TileDiskManipulator;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerDiskManipulator extends ContainerBase {
|
public class ContainerDiskManipulator extends ContainerBase {
|
||||||
public ContainerDiskManipulator(TileDiskManipulator manipulator, EntityPlayer player) {
|
public ContainerDiskManipulator(TileDiskManipulator manipulator, EntityPlayer player) {
|
||||||
super(manipulator, player);
|
super(manipulator, player);
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(manipulator.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(manipulator.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 3; ++i) {
|
for (int i = 0; i < 3; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(manipulator.getInputDisks(), i, 44, 57 + (i * 18)));
|
addSlotToContainer(new SlotBase(manipulator.getInputDisks(), i, 44, 57 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 3; ++i) {
|
for (int i = 0; i < 3; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(manipulator.getOutputDisks(), i, 116, 57 + (i * 18)));
|
addSlotToContainer(new SlotBase(manipulator.getOutputDisks(), i, 116, 57 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileExporter;
|
import com.raoulvdberge.refinedstorage.tile.TileExporter;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerExporter extends ContainerBase {
|
public class ContainerExporter extends ContainerBase {
|
||||||
public ContainerExporter(TileExporter exporter, EntityPlayer player) {
|
public ContainerExporter(TileExporter exporter, EntityPlayer player) {
|
||||||
super(exporter, player);
|
super(exporter, player);
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(exporter.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(exporter.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterFluid;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterFluid;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileFluidInterface;
|
import com.raoulvdberge.refinedstorage.tile.TileFluidInterface;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerFluidInterface extends ContainerBase {
|
public class ContainerFluidInterface extends ContainerBase {
|
||||||
public ContainerFluidInterface(TileFluidInterface fluidInterface, EntityPlayer player) {
|
public ContainerFluidInterface(TileFluidInterface fluidInterface, EntityPlayer player) {
|
||||||
super(fluidInterface, player);
|
super(fluidInterface, player);
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(fluidInterface.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(fluidInterface.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
addSlotToContainer(new SlotItemHandler(fluidInterface.getIn(), 0, 44, 32));
|
addSlotToContainer(new SlotBase(fluidInterface.getIn(), 0, 44, 32));
|
||||||
addSlotToContainer(new SlotFilterFluid(!fluidInterface.getWorld().isRemote, fluidInterface.getOut(), 0, 116, 32));
|
addSlotToContainer(new SlotFilterFluid(!fluidInterface.getWorld().isRemote, fluidInterface.getOut(), 0, 116, 32));
|
||||||
|
|
||||||
addPlayerInventory(8, 122);
|
addPlayerInventory(8, 122);
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||||||
import net.minecraft.inventory.IContainerListener;
|
import net.minecraft.inventory.IContainerListener;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerGrid extends ContainerBase {
|
public class ContainerGrid extends ContainerBase {
|
||||||
private IGrid grid;
|
private IGrid grid;
|
||||||
@@ -60,13 +59,13 @@ public class ContainerGrid extends ContainerBase {
|
|||||||
|
|
||||||
addSlotToContainer(patternResultSlot = new SlotDisabled(((TileGrid) grid).getResult(), 0, 112 + 4, 110 + 4));
|
addSlotToContainer(patternResultSlot = new SlotDisabled(((TileGrid) grid).getResult(), 0, 112 + 4, 110 + 4));
|
||||||
|
|
||||||
addSlotToContainer(new SlotItemHandler(((TileGrid) grid).getPatterns(), 0, 152, 96));
|
addSlotToContainer(new SlotBase(((TileGrid) grid).getPatterns(), 0, 152, 96));
|
||||||
addSlotToContainer(new SlotOutput(((TileGrid) grid).getPatterns(), 1, 152, 132));
|
addSlotToContainer(new SlotOutput(((TileGrid) grid).getPatterns(), 1, 152, 132));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (grid.getType() != EnumGridType.FLUID) {
|
if (grid.getType() != EnumGridType.FLUID) {
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(grid.getFilter(), i, 204, 6 + (18 * i)));
|
addSlotToContainer(new SlotBase(grid.getFilter(), i, 204, 6 + (18 * i)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileImporter;
|
import com.raoulvdberge.refinedstorage.tile.TileImporter;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerImporter extends ContainerBase {
|
public class ContainerImporter extends ContainerBase {
|
||||||
public ContainerImporter(TileImporter importer, EntityPlayer player) {
|
public ContainerImporter(TileImporter importer, EntityPlayer player) {
|
||||||
super(importer, player);
|
super(importer, player);
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(importer.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(importer.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotFilter;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotFilter;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotOutput;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotOutput;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileInterface;
|
import com.raoulvdberge.refinedstorage.tile.TileInterface;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerInterface extends ContainerBase {
|
public class ContainerInterface extends ContainerBase {
|
||||||
public ContainerInterface(TileInterface tile, EntityPlayer player) {
|
public ContainerInterface(TileInterface tile, EntityPlayer player) {
|
||||||
super(tile, player);
|
super(tile, player);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(tile.getImportItems(), i, 8 + (18 * i), 20));
|
addSlotToContainer(new SlotBase(tile.getImportItems(), i, 8 + (18 * i), 20));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
@@ -25,7 +25,7 @@ public class ContainerInterface extends ContainerBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(tile.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(tile.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
addPlayerInventory(8, 134);
|
addPlayerInventory(8, 134);
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileNetworkTransmitter;
|
import com.raoulvdberge.refinedstorage.tile.TileNetworkTransmitter;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerNetworkTransmitter extends ContainerBase {
|
public class ContainerNetworkTransmitter extends ContainerBase {
|
||||||
public ContainerNetworkTransmitter(TileNetworkTransmitter networkTransmitter, EntityPlayer player) {
|
public ContainerNetworkTransmitter(TileNetworkTransmitter networkTransmitter, EntityPlayer player) {
|
||||||
super(networkTransmitter, player);
|
super(networkTransmitter, player);
|
||||||
|
|
||||||
addSlotToContainer(new SlotItemHandler(networkTransmitter.getNetworkCard(), 0, 8, 20));
|
addSlotToContainer(new SlotBase(networkTransmitter.getNetworkCard(), 0, 8, 20));
|
||||||
|
|
||||||
addSlotToContainer(new SlotItemHandler(networkTransmitter.getUpgrades(), 0, 187, 6));
|
addSlotToContainer(new SlotBase(networkTransmitter.getUpgrades(), 0, 187, 6));
|
||||||
|
|
||||||
addPlayerInventory(8, 55);
|
addPlayerInventory(8, 55);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotFilter;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotFilter;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotOutput;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotOutput;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileProcessingPatternEncoder;
|
import com.raoulvdberge.refinedstorage.tile.TileProcessingPatternEncoder;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ public class ContainerProcessingPatternEncoder extends ContainerBase {
|
|||||||
public ContainerProcessingPatternEncoder(TileProcessingPatternEncoder encoder, EntityPlayer player) {
|
public ContainerProcessingPatternEncoder(TileProcessingPatternEncoder encoder, EntityPlayer player) {
|
||||||
super(encoder, player);
|
super(encoder, player);
|
||||||
|
|
||||||
addSlotToContainer(new SlotItemHandler(encoder.getPatterns(), 0, 152, 18));
|
addSlotToContainer(new SlotBase(encoder.getPatterns(), 0, 152, 18));
|
||||||
addSlotToContainer(new SlotOutput(encoder.getPatterns(), 1, 152, 58));
|
addSlotToContainer(new SlotOutput(encoder.getPatterns(), 1, 152, 58));
|
||||||
|
|
||||||
int ox = 8;
|
int ox = 8;
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSItems;
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.SlotOutput;
|
import com.raoulvdberge.refinedstorage.container.slot.SlotOutput;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileSolderer;
|
import com.raoulvdberge.refinedstorage.tile.TileSolderer;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerSolderer extends ContainerBase {
|
public class ContainerSolderer extends ContainerBase {
|
||||||
public ContainerSolderer(TileSolderer solderer, EntityPlayer player) {
|
public ContainerSolderer(TileSolderer solderer, EntityPlayer player) {
|
||||||
@@ -16,7 +16,7 @@ public class ContainerSolderer extends ContainerBase {
|
|||||||
int y = 20;
|
int y = 20;
|
||||||
|
|
||||||
for (int i = 0; i < 3; ++i) {
|
for (int i = 0; i < 3; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(solderer.getItems(), i, x, y));
|
addSlotToContainer(new SlotBase(solderer.getItems(), i, x, y));
|
||||||
|
|
||||||
y += 18;
|
y += 18;
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,7 @@ public class ContainerSolderer extends ContainerBase {
|
|||||||
addSlotToContainer(new SlotOutput(solderer.getResult(), 0, 127, 38));
|
addSlotToContainer(new SlotOutput(solderer.getResult(), 0, 127, 38));
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(solderer.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(solderer.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
addPlayerInventory(8, 89);
|
addPlayerInventory(8, 89);
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.SlotBase;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileWirelessTransmitter;
|
import com.raoulvdberge.refinedstorage.tile.TileWirelessTransmitter;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
public class ContainerWirelessTransmitter extends ContainerBase {
|
public class ContainerWirelessTransmitter extends ContainerBase {
|
||||||
public ContainerWirelessTransmitter(TileWirelessTransmitter wirelessTransmitter, EntityPlayer player) {
|
public ContainerWirelessTransmitter(TileWirelessTransmitter wirelessTransmitter, EntityPlayer player) {
|
||||||
super(wirelessTransmitter, player);
|
super(wirelessTransmitter, player);
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(wirelessTransmitter.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotBase(wirelessTransmitter.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
addPlayerInventory(8, 55);
|
addPlayerInventory(8, 55);
|
||||||
@@ -23,7 +23,7 @@ public class ContainerWirelessTransmitter extends ContainerBase {
|
|||||||
|
|
||||||
Slot slot = getSlot(index);
|
Slot slot = getSlot(index);
|
||||||
|
|
||||||
if (slot != null && slot.getHasStack()) {
|
if (slot.getHasStack()) {
|
||||||
stack = slot.getStack();
|
stack = slot.getStack();
|
||||||
|
|
||||||
if (index < 4) {
|
if (index < 4) {
|
||||||
|
|||||||
16
src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotBase.java
Executable file
16
src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotBase.java
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.container.slot;
|
||||||
|
|
||||||
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
import net.minecraftforge.items.SlotItemHandler;
|
||||||
|
|
||||||
|
// @todo: Forge issue #3497
|
||||||
|
public class SlotBase extends SlotItemHandler {
|
||||||
|
public SlotBase(IItemHandler itemHandler, int index, int xPosition, int yPosition) {
|
||||||
|
super(itemHandler, index, xPosition, yPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSlotStackLimit() {
|
||||||
|
return getItemHandler().getSlotLimit(getSlotIndex());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,12 +9,11 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraftforge.common.IPlantable;
|
import net.minecraftforge.common.IPlantable;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
public class SlotFilter extends SlotItemHandler {
|
public class SlotFilter extends SlotBase {
|
||||||
public static final int FILTER_ALLOW_SIZE = 1;
|
public static final int FILTER_ALLOW_SIZE = 1;
|
||||||
public static final int FILTER_ALLOW_BLOCKS = 2;
|
public static final int FILTER_ALLOW_BLOCKS = 2;
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,10 @@ package com.raoulvdberge.refinedstorage.container.slot;
|
|||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class SlotOutput extends SlotItemHandler {
|
public class SlotOutput extends SlotBase {
|
||||||
public SlotOutput(IItemHandler inventory, int id, int x, int y) {
|
public SlotOutput(IItemHandler inventory, int id, int x, int y) {
|
||||||
super(inventory, id, x, y);
|
super(inventory, id, x, y);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,11 @@ public class ItemHandlerUpgrade extends ItemHandlerBasic {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSlotLimit(int slot) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
public int getItemInteractCount() {
|
public int getItemInteractCount() {
|
||||||
return hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1;
|
return hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ public class ItemUpgrade extends ItemBase {
|
|||||||
|
|
||||||
setHasSubtypes(true);
|
setHasSubtypes(true);
|
||||||
setMaxDamage(0);
|
setMaxDamage(0);
|
||||||
setMaxStackSize(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user