speed upgrades on importer
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
package refinedstorage.container;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import refinedstorage.RefinedStorageItems;
|
||||
import refinedstorage.container.slot.IItemValidator;
|
||||
import refinedstorage.container.slot.SlotFiltered;
|
||||
import refinedstorage.container.slot.SlotSpecimen;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
import refinedstorage.tile.TileImporter;
|
||||
|
||||
public class ContainerImporter extends ContainerBase {
|
||||
@@ -12,6 +17,15 @@ public class ContainerImporter extends ContainerBase {
|
||||
addSlotToContainer(new SlotSpecimen(importer.getInventory(), i, 8 + (18 * i), 20, false));
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
addSlotToContainer(new SlotFiltered(importer.getUpgradesInventory(), i, 187, 6 + (i * 18), new IItemValidator() {
|
||||
@Override
|
||||
public boolean isValid(ItemStack stack) {
|
||||
return stack.getItem() == RefinedStorageItems.UPGRADE && stack.getMetadata() == ItemUpgrade.TYPE_SPEED;
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
addPlayerInventory(8, 55);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ public class GuiImporter extends GuiBase {
|
||||
private TileImporter importer;
|
||||
|
||||
public GuiImporter(ContainerImporter container, TileImporter importer) {
|
||||
super(container, 176, 137);
|
||||
super(container, 211, 137);
|
||||
|
||||
this.importer = importer;
|
||||
}
|
||||
|
||||
@@ -17,15 +17,26 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
|
||||
public static final String NBT_COMPARE = "Compare";
|
||||
public static final String NBT_MODE = "Mode";
|
||||
|
||||
public static final int SPEED = 3;
|
||||
|
||||
private InventorySimple inventory = new InventorySimple("importer", 9, this);
|
||||
private InventorySimple upgradesInventory = new InventorySimple("upgrades", 4, this);
|
||||
|
||||
private int compare = 0;
|
||||
private int mode = 0;
|
||||
|
||||
private int currentSlot;
|
||||
|
||||
public int getSpeed() {
|
||||
int upgrades = 0;
|
||||
|
||||
for (int i = 0; i < upgradesInventory.getSizeInventory(); ++i) {
|
||||
if (upgradesInventory.getStackInSlot(i) != null) {
|
||||
upgrades++;
|
||||
}
|
||||
}
|
||||
|
||||
return 9 - (upgrades * 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return 2;
|
||||
@@ -52,7 +63,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
|
||||
if (stack == null) {
|
||||
currentSlot++;
|
||||
} else {
|
||||
if (ticks % SPEED == 0) {
|
||||
if (ticks % getSpeed() == 0) {
|
||||
ItemStack toTake = stack.copy();
|
||||
toTake.stackSize = 1;
|
||||
|
||||
@@ -78,7 +89,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
|
||||
ItemStack stack = inventory.getStackInSlot(currentSlot);
|
||||
|
||||
if (stack != null) {
|
||||
if (ticks % SPEED == 0) {
|
||||
if (ticks % getSpeed() == 0) {
|
||||
ItemStack toTake = stack.copy();
|
||||
toTake.stackSize = 1;
|
||||
|
||||
@@ -177,6 +188,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
|
||||
}
|
||||
|
||||
InventoryUtils.restoreInventory(inventory, 0, nbt);
|
||||
InventoryUtils.restoreInventory(upgradesInventory, 1, nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -187,6 +199,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
|
||||
nbt.setInteger(NBT_MODE, mode);
|
||||
|
||||
InventoryUtils.saveInventory(inventory, 0, nbt);
|
||||
InventoryUtils.saveInventory(upgradesInventory, 1, nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -210,6 +223,15 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
|
||||
return ContainerImporter.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IInventory getDroppedInventory() {
|
||||
return upgradesInventory;
|
||||
}
|
||||
|
||||
public InventorySimple getUpgradesInventory() {
|
||||
return upgradesInventory;
|
||||
}
|
||||
|
||||
public IInventory getInventory() {
|
||||
return inventory;
|
||||
}
|
||||
|
||||
@@ -259,6 +259,11 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided
|
||||
return slot >= 18;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IInventory getDroppedInventory() {
|
||||
return upgradesInventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCompare() {
|
||||
return compare;
|
||||
|
||||
Reference in New Issue
Block a user