Merge pull request #362 from way2muchnoise/mc1.10
Add upgrades and power usage to the Disk Manipulator
This commit is contained in:
@@ -74,6 +74,7 @@ public final class RefinedStorage {
|
|||||||
public int networkTransmitterUsage;
|
public int networkTransmitterUsage;
|
||||||
public float networkTransmitterPerBlockUsage;
|
public float networkTransmitterPerBlockUsage;
|
||||||
public int networkReceiverUsage;
|
public int networkReceiverUsage;
|
||||||
|
public int diskManipulatorUsage;
|
||||||
|
|
||||||
public int controllerCapacity;
|
public int controllerCapacity;
|
||||||
public boolean controllerUsesEnergy;
|
public boolean controllerUsesEnergy;
|
||||||
@@ -128,6 +129,7 @@ public final class RefinedStorage {
|
|||||||
networkTransmitterUsage = config.getInt("networkTransmitter", "energy", 50, 0, Integer.MAX_VALUE, "The base energy used by Network Transmitters");
|
networkTransmitterUsage = config.getInt("networkTransmitter", "energy", 50, 0, Integer.MAX_VALUE, "The base energy used by Network Transmitters");
|
||||||
networkTransmitterPerBlockUsage = config.getFloat("networkTransmitterPerBlock", "energy", 4, 0, Float.MAX_VALUE, "The additional energy per block that the Network Transmitter uses, gets rounded up");
|
networkTransmitterPerBlockUsage = config.getFloat("networkTransmitterPerBlock", "energy", 4, 0, Float.MAX_VALUE, "The additional energy per block that the Network Transmitter uses, gets rounded up");
|
||||||
networkReceiverUsage = config.getInt("networkReceiver", "energy", 15, 0, Integer.MAX_VALUE, "The energy used by Network Receivers");
|
networkReceiverUsage = config.getInt("networkReceiver", "energy", 15, 0, Integer.MAX_VALUE, "The energy used by Network Receivers");
|
||||||
|
diskManipulatorUsage = config.getInt("diskManipulator", "energy", 3, 0, Integer.MAX_VALUE, "The energy used by Disk Manipulators");
|
||||||
|
|
||||||
controllerCapacity = config.getInt("capacity", "controller", 32000, 0, Integer.MAX_VALUE, "The energy capacity of the Controller");
|
controllerCapacity = config.getInt("capacity", "controller", 32000, 0, Integer.MAX_VALUE, "The energy capacity of the Controller");
|
||||||
controllerUsesEnergy = config.getBoolean("usesEnergy", "controller", true, "Whether the Controller uses energy");
|
controllerUsesEnergy = config.getBoolean("usesEnergy", "controller", true, "Whether the Controller uses energy");
|
||||||
|
@@ -11,6 +11,10 @@ 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) {
|
||||||
|
addSlotToContainer(new SlotItemHandler(manipulator.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 6; ++i) {
|
for (int i = 0; i < 6; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(manipulator.getDisks(), i, 26 + (i % 2 * 18), ((i / 2) * 18) + 57));
|
addSlotToContainer(new SlotItemHandler(manipulator.getDisks(), i, 26 + (i % 2 * 18), ((i / 2) * 18) + 57));
|
||||||
}
|
}
|
||||||
@@ -35,12 +39,12 @@ public class ContainerDiskManipulator extends ContainerBase {
|
|||||||
if (slot != null && slot.getHasStack()) {
|
if (slot != null && slot.getHasStack()) {
|
||||||
stack = slot.getStack();
|
stack = slot.getStack();
|
||||||
|
|
||||||
if (index < 12) {
|
if (index < 4 + 12) {
|
||||||
if (!mergeItemStack(stack, 12 + 9, inventorySlots.size(), false)) {
|
if (!mergeItemStack(stack, 4 + 12 + 9, inventorySlots.size(), false)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
} else if (!mergeItemStack(stack, 0, 12, false)) {
|
} else if (!mergeItemStack(stack, 0, 16, false)) {
|
||||||
return mergeItemStackToSpecimen(stack, 12, 12 + 9);
|
return mergeItemStackToSpecimen(stack, 4 + 12, 4 + 12 + 9);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stack.stackSize == 0) {
|
if (stack.stackSize == 0) {
|
||||||
|
@@ -7,7 +7,7 @@ import refinedstorage.tile.TileDiskManipulator;
|
|||||||
|
|
||||||
public class GuiDiskManipulator extends GuiBase {
|
public class GuiDiskManipulator extends GuiBase {
|
||||||
public GuiDiskManipulator(ContainerDiskManipulator container) {
|
public GuiDiskManipulator(ContainerDiskManipulator container) {
|
||||||
super(container, 176, 211);
|
super(container, 211, 211);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -11,6 +11,7 @@ import net.minecraftforge.fml.relauncher.Side;
|
|||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import net.minecraftforge.items.ItemHandlerHelper;
|
import net.minecraftforge.items.ItemHandlerHelper;
|
||||||
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.apiimpl.storage.NBTStorage;
|
import refinedstorage.apiimpl.storage.NBTStorage;
|
||||||
import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT;
|
import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT;
|
||||||
import refinedstorage.apiimpl.storage.fluid.FluidUtils;
|
import refinedstorage.apiimpl.storage.fluid.FluidUtils;
|
||||||
@@ -20,6 +21,8 @@ import refinedstorage.block.EnumItemStorageType;
|
|||||||
import refinedstorage.inventory.IItemValidator;
|
import refinedstorage.inventory.IItemValidator;
|
||||||
import refinedstorage.inventory.ItemHandlerBasic;
|
import refinedstorage.inventory.ItemHandlerBasic;
|
||||||
import refinedstorage.inventory.ItemHandlerFluid;
|
import refinedstorage.inventory.ItemHandlerFluid;
|
||||||
|
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||||
|
import refinedstorage.item.ItemUpgrade;
|
||||||
import refinedstorage.tile.config.IComparable;
|
import refinedstorage.tile.config.IComparable;
|
||||||
import refinedstorage.tile.config.IFilterable;
|
import refinedstorage.tile.config.IFilterable;
|
||||||
import refinedstorage.tile.config.IType;
|
import refinedstorage.tile.config.IType;
|
||||||
@@ -70,6 +73,8 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
dataManager.addWatchedParameter(IO_MODE);
|
dataManager.addWatchedParameter(IO_MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK);
|
||||||
|
|
||||||
private ItemHandlerBasic disks = new ItemHandlerBasic(12, this, IItemValidator.STORAGE_DISK) {
|
private ItemHandlerBasic disks = new ItemHandlerBasic(12, this, IItemValidator.STORAGE_DISK) {
|
||||||
@Override
|
@Override
|
||||||
protected void onContentsChanged(int slot) {
|
protected void onContentsChanged(int slot) {
|
||||||
@@ -158,11 +163,14 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnergyUsage() {
|
public int getEnergyUsage() {
|
||||||
return 0;
|
return RefinedStorage.INSTANCE.diskManipulatorUsage + upgrades.getEnergyUsage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateNode() {
|
public void updateNode() {
|
||||||
|
if (ticks % upgrades.getSpeed() != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
int slot = 0;
|
int slot = 0;
|
||||||
if (type == IType.ITEMS) {
|
if (type == IType.ITEMS) {
|
||||||
while (slot < itemStorages.length && itemStorages[slot] == null) {
|
while (slot < itemStorages.length && itemStorages[slot] == null) {
|
||||||
@@ -199,6 +207,10 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getInteractStackSize() {
|
||||||
|
return upgrades.hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
private void insertIntoNetwork(ItemStorage storage, int slot) {
|
private void insertIntoNetwork(ItemStorage storage, int slot) {
|
||||||
if (storage.getStored() == 0) {
|
if (storage.getStored() == 0) {
|
||||||
moveDriveToOutput(slot);
|
moveDriveToOutput(slot);
|
||||||
@@ -216,7 +228,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (stack != null) {
|
if (stack != null) {
|
||||||
extracted = storage.extractItem(stack, 1, compare);
|
extracted = storage.extractItem(stack, getInteractStackSize(), compare);
|
||||||
}
|
}
|
||||||
} while (storage.getItems().size() > i && extracted == null);
|
} while (storage.getItems().size() > i && extracted == null);
|
||||||
|
|
||||||
@@ -252,7 +264,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (toExtract != null) {
|
if (toExtract != null) {
|
||||||
extracted = network.extractItem(toExtract, 1, compare);
|
extracted = network.extractItem(toExtract, getInteractStackSize(), compare);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
while (itemFilters.getSlots() > i && extracted == null) {
|
while (itemFilters.getSlots() > i && extracted == null) {
|
||||||
@@ -263,7 +275,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (stack != null) {
|
if (stack != null) {
|
||||||
extracted = network.extractItem(stack, 1, compare);
|
extracted = network.extractItem(stack, getInteractStackSize(), compare);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -297,7 +309,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (stack != null) {
|
if (stack != null) {
|
||||||
extracted = storage.extractFluid(stack, 1, compare);
|
extracted = storage.extractFluid(stack, getInteractStackSize(), compare);
|
||||||
}
|
}
|
||||||
} while (extracted == null && storage.getStacks().size() > i);
|
} while (extracted == null && storage.getStacks().size() > i);
|
||||||
|
|
||||||
@@ -333,7 +345,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (toExtract != null) {
|
if (toExtract != null) {
|
||||||
extracted = network.extractFluid(toExtract, 1, compare);
|
extracted = network.extractFluid(toExtract, getInteractStackSize(), compare);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
while (fluidFilters.getSlots() > i && extracted == null) {
|
while (fluidFilters.getSlots() > i && extracted == null) {
|
||||||
@@ -344,7 +356,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (stack != null) {
|
if (stack != null) {
|
||||||
extracted = network.extractFluid(stack, 1, compare);
|
extracted = network.extractFluid(stack, getInteractStackSize(), compare);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -430,6 +442,10 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
return disks;
|
return disks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IItemHandler getUpgrades() {
|
||||||
|
return upgrades;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(NBTTagCompound tag) {
|
public void read(NBTTagCompound tag) {
|
||||||
super.read(tag);
|
super.read(tag);
|
||||||
@@ -437,6 +453,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
readItems(disks, 0, tag);
|
readItems(disks, 0, tag);
|
||||||
readItems(itemFilters, 1, tag);
|
readItems(itemFilters, 1, tag);
|
||||||
readItems(fluidFilters, 2, tag);
|
readItems(fluidFilters, 2, tag);
|
||||||
|
readItems(upgrades, 3, tag);
|
||||||
|
|
||||||
if (tag.hasKey(NBT_COMPARE)) {
|
if (tag.hasKey(NBT_COMPARE)) {
|
||||||
compare = tag.getInteger(NBT_COMPARE);
|
compare = tag.getInteger(NBT_COMPARE);
|
||||||
@@ -462,6 +479,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
|
|||||||
writeItems(disks, 0, tag);
|
writeItems(disks, 0, tag);
|
||||||
writeItems(itemFilters, 1, tag);
|
writeItems(itemFilters, 1, tag);
|
||||||
writeItems(fluidFilters, 2, tag);
|
writeItems(fluidFilters, 2, tag);
|
||||||
|
writeItems(upgrades, 3, tag);
|
||||||
|
|
||||||
tag.setInteger(NBT_COMPARE, compare);
|
tag.setInteger(NBT_COMPARE, compare);
|
||||||
tag.setInteger(NBT_MODE, mode);
|
tag.setInteger(NBT_MODE, mode);
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.5 KiB |
Reference in New Issue
Block a user