Add stack upgrade to importer and exporter

This commit is contained in:
Raoul Van den Berge
2016-05-29 22:54:18 +02:00
parent 0e155fd320
commit 25b2403c71
8 changed files with 25 additions and 7 deletions

View File

@@ -32,7 +32,7 @@ public class GuiWirelessTransmitter extends GuiBase {
@Override
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:wireless_transmitter"));
drawString(28, 24, t("gui.refinedstorage:wireless_transmitter.distance", wirelessTransmitter.getRange()));
drawString(28, 25, t("gui.refinedstorage:wireless_transmitter.distance", wirelessTransmitter.getRange()));
drawString(7, 43, t("container.inventory"));
}
}

View File

@@ -10,6 +10,7 @@ public class ItemUpgrade extends ItemBase {
public static final int TYPE_RANGE = 1;
public static final int TYPE_SPEED = 2;
public static final int TYPE_CRAFTING = 3;
public static final int TYPE_STACK = 4;
public ItemUpgrade() {
super("upgrade");
@@ -21,7 +22,7 @@ public class ItemUpgrade extends ItemBase {
@Override
public void getSubItems(Item item, CreativeTabs tab, List list) {
for (int i = 0; i <= 3; ++i) {
for (int i = 0; i <= 4; ++i) {
list.add(new ItemStack(item, 1, i));
}
}
@@ -34,6 +35,8 @@ public class ItemUpgrade extends ItemBase {
return 2;
case TYPE_CRAFTING:
return 5;
case TYPE_STACK:
return 12;
default:
return 0;
}

View File

@@ -416,6 +416,7 @@ public class CommonProxy {
SoldererRegistry.addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_RANGE));
SoldererRegistry.addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_SPEED));
SoldererRegistry.addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_CRAFTING));
SoldererRegistry.addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_STACK));
// Storage Blocks
SoldererRegistry.addRecipe(new SoldererRecipeStorage(EnumStorageType.TYPE_1K, ItemStoragePart.TYPE_1K));

View File

@@ -26,7 +26,8 @@ public class TileExporter extends TileMachine implements ICompareConfig {
4,
this,
new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED),
new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_CRAFTING)
new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_CRAFTING),
new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_STACK)
);
private int compare = 0;
@@ -47,7 +48,9 @@ public class TileExporter extends TileMachine implements ICompareConfig {
ItemStack slot = filters.getStackInSlot(i);
if (slot != null) {
ItemStack took = controller.take(ItemHandlerHelper.copyStackWithSize(slot, 1), compare);
int quantity = RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1;
ItemStack took = controller.take(ItemHandlerHelper.copyStackWithSize(slot, quantity), compare);
if (took != null) {
scheduler.resetSchedule();

View File

@@ -24,7 +24,12 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
public static final String NBT_MODE = "Mode";
private BasicItemHandler filters = new BasicItemHandler(9, this);
private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED));
private BasicItemHandler upgrades = new BasicItemHandler(
4,
this,
new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED),
new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_STACK)
);
private int compare = 0;
private int mode = ModeConstants.WHITELIST;
@@ -54,10 +59,12 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
if (stack == null || !ModeFilter.respectsMode(filters, this, compare, stack)) {
currentSlot++;
} else if (ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) {
ItemStack result = handler.extractItem(currentSlot, 1, true);
int quantity = RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1;
ItemStack result = handler.extractItem(currentSlot, quantity, true);
if (result != null && controller.push(result)) {
handler.extractItem(currentSlot, 1, false);
handler.extractItem(currentSlot, quantity, false);
} else {
currentSlot++;
}

View File

@@ -34,6 +34,8 @@ public class SoldererRecipeUpgrade implements ISoldererRecipe {
return new ItemStack(Blocks.REDSTONE_BLOCK);
case ItemUpgrade.TYPE_CRAFTING:
return new ItemStack(Blocks.CRAFTING_TABLE);
case ItemUpgrade.TYPE_STACK:
return new ItemStack(RefinedStorageItems.UPGRADE, 1, ItemUpgrade.TYPE_SPEED);
}
return null;