aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/minecraft/control/ControlSlotArray.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/binnie/craftgui/minecraft/control/ControlSlotArray.java')
-rw-r--r--src/Java/binnie/craftgui/minecraft/control/ControlSlotArray.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/Java/binnie/craftgui/minecraft/control/ControlSlotArray.java b/src/Java/binnie/craftgui/minecraft/control/ControlSlotArray.java
new file mode 100644
index 0000000000..772b9a5f85
--- /dev/null
+++ b/src/Java/binnie/craftgui/minecraft/control/ControlSlotArray.java
@@ -0,0 +1,76 @@
+package binnie.craftgui.minecraft.control;
+
+import binnie.craftgui.controls.core.Control;
+import binnie.craftgui.core.IWidget;
+import binnie.craftgui.minecraft.InventoryType;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import net.minecraft.inventory.Slot;
+import net.minecraft.item.ItemStack;
+
+public class ControlSlotArray
+ extends Control
+ implements Iterable<ControlSlot>
+{
+ private int rows;
+ private int columns;
+ private List<ControlSlot> slots = new ArrayList();
+
+ public ControlSlotArray(IWidget parent, int x, int y, int columns, int rows)
+ {
+ super(parent, x, y, columns * 18, rows * 18);
+ this.rows = rows;
+ this.columns = columns;
+ for (int row = 0; row < rows; row++) {
+ for (int column = 0; column < columns; column++) {
+ this.slots.add(createSlot(column * 18, row * 18));
+ }
+ }
+ }
+
+ public ControlSlot createSlot(int x, int y)
+ {
+ return new ControlSlot(this, x, y);
+ }
+
+ public void setItemStacks(ItemStack[] array)
+ {
+ int i = 0;
+ for (ItemStack item : array)
+ {
+ if (i >= this.slots.size()) {
+ return;
+ }
+ ((ControlSlot)this.slots.get(i)).slot.putStack(item);
+ i++;
+ }
+ }
+
+ public ControlSlot getControlSlot(int i)
+ {
+ if ((i < 0) || (i >= this.slots.size())) {
+ return null;
+ }
+ return (ControlSlot)this.slots.get(i);
+ }
+
+ public ControlSlotArray create(int[] index)
+ {
+ return create(InventoryType.Machine, index);
+ }
+
+ public ControlSlotArray create(InventoryType type, int[] index)
+ {
+ int i = 0;
+ for (ControlSlot slot : this.slots) {
+ slot.assign(type, index[(i++)]);
+ }
+ return this;
+ }
+
+ public Iterator<ControlSlot> iterator()
+ {
+ return this.slots.iterator();
+ }
+}