Remove all specialized fluid tiles to the "real" tile with a toggle for fluids/items
This commit is contained in:
@@ -44,12 +44,10 @@ public final class RefinedStorage {
|
|||||||
public int controllerBaseUsage;
|
public int controllerBaseUsage;
|
||||||
public int cableUsage;
|
public int cableUsage;
|
||||||
public int constructorUsage;
|
public int constructorUsage;
|
||||||
public int fluidConstructorUsage;
|
|
||||||
public int crafterUsage;
|
public int crafterUsage;
|
||||||
public int crafterPerPatternUsage;
|
public int crafterPerPatternUsage;
|
||||||
public int craftingMonitorUsage;
|
public int craftingMonitorUsage;
|
||||||
public int destructorUsage;
|
public int destructorUsage;
|
||||||
public int fluidDestructorUsage;
|
|
||||||
public int detectorUsage;
|
public int detectorUsage;
|
||||||
public int diskDriveUsage;
|
public int diskDriveUsage;
|
||||||
public int diskDrivePerDiskUsage;
|
public int diskDrivePerDiskUsage;
|
||||||
@@ -59,7 +57,6 @@ public final class RefinedStorage {
|
|||||||
public int externalStoragePerStorageUsage;
|
public int externalStoragePerStorageUsage;
|
||||||
public int exporterUsage;
|
public int exporterUsage;
|
||||||
public int importerUsage;
|
public int importerUsage;
|
||||||
public int fluidImporterUsage;
|
|
||||||
public int interfaceUsage;
|
public int interfaceUsage;
|
||||||
public int relayUsage;
|
public int relayUsage;
|
||||||
public int soldererUsage;
|
public int soldererUsage;
|
||||||
@@ -94,12 +91,10 @@ public final class RefinedStorage {
|
|||||||
controllerBaseUsage = config.getInt("controllerBase", "energy", 0, 0, Integer.MAX_VALUE, "The base energy used by the Controller");
|
controllerBaseUsage = config.getInt("controllerBase", "energy", 0, 0, Integer.MAX_VALUE, "The base energy used by the Controller");
|
||||||
cableUsage = config.getInt("cable", "energy", 0, 0, Integer.MAX_VALUE, "The energy used by Cables");
|
cableUsage = config.getInt("cable", "energy", 0, 0, Integer.MAX_VALUE, "The energy used by Cables");
|
||||||
constructorUsage = config.getInt("constructor", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Constructors");
|
constructorUsage = config.getInt("constructor", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Constructors");
|
||||||
fluidConstructorUsage = config.getInt("fluidConstructor", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Fluid Constructors");
|
|
||||||
crafterUsage = config.getInt("crafter", "energy", 2, 0, Integer.MAX_VALUE, "The base energy used by Crafters");
|
crafterUsage = config.getInt("crafter", "energy", 2, 0, Integer.MAX_VALUE, "The base energy used by Crafters");
|
||||||
crafterPerPatternUsage = config.getInt("crafterPerPattern", "energy", 1, 0, Integer.MAX_VALUE, "The additional energy used per Pattern in a Crafter");
|
crafterPerPatternUsage = config.getInt("crafterPerPattern", "energy", 1, 0, Integer.MAX_VALUE, "The additional energy used per Pattern in a Crafter");
|
||||||
craftingMonitorUsage = config.getInt("craftingMonitor", "energy", 2, 0, Integer.MAX_VALUE, "The energy used by Crafting Monitors");
|
craftingMonitorUsage = config.getInt("craftingMonitor", "energy", 2, 0, Integer.MAX_VALUE, "The energy used by Crafting Monitors");
|
||||||
destructorUsage = config.getInt("destructor", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Destructors");
|
destructorUsage = config.getInt("destructor", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Destructors");
|
||||||
fluidDestructorUsage = config.getInt("fluidDestructor", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Fluid Destructors");
|
|
||||||
detectorUsage = config.getInt("detector", "energy", 2, 0, Integer.MAX_VALUE, "The energy used by Detectors");
|
detectorUsage = config.getInt("detector", "energy", 2, 0, Integer.MAX_VALUE, "The energy used by Detectors");
|
||||||
diskDriveUsage = config.getInt("diskDrive", "energy", 0, 0, Integer.MAX_VALUE, "The base energy used by Disk Drives");
|
diskDriveUsage = config.getInt("diskDrive", "energy", 0, 0, Integer.MAX_VALUE, "The base energy used by Disk Drives");
|
||||||
diskDrivePerDiskUsage = config.getInt("diskDrivePerDisk", "energy", 1, 0, Integer.MAX_VALUE, "The additional energy used by Storage Disks in Disk Drives");
|
diskDrivePerDiskUsage = config.getInt("diskDrivePerDisk", "energy", 1, 0, Integer.MAX_VALUE, "The additional energy used by Storage Disks in Disk Drives");
|
||||||
@@ -109,7 +104,6 @@ public final class RefinedStorage {
|
|||||||
externalStoragePerStorageUsage = config.getInt("externalStoragePerStorage", "energy", 1, 0, Integer.MAX_VALUE, "The additional energy used per connected storage to an External Storage");
|
externalStoragePerStorageUsage = config.getInt("externalStoragePerStorage", "energy", 1, 0, Integer.MAX_VALUE, "The additional energy used per connected storage to an External Storage");
|
||||||
exporterUsage = config.getInt("exporter", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Exporters");
|
exporterUsage = config.getInt("exporter", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Exporters");
|
||||||
importerUsage = config.getInt("importer", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Importers");
|
importerUsage = config.getInt("importer", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Importers");
|
||||||
fluidImporterUsage = config.getInt("fluidImporter", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Fluid Importers");
|
|
||||||
interfaceUsage = config.getInt("interface", "energy", 3, 0, Integer.MAX_VALUE, "The energy used by Interfaces");
|
interfaceUsage = config.getInt("interface", "energy", 3, 0, Integer.MAX_VALUE, "The energy used by Interfaces");
|
||||||
relayUsage = config.getInt("relay", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Relays");
|
relayUsage = config.getInt("relay", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Relays");
|
||||||
soldererUsage = config.getInt("solderer", "energy", 3, 0, Integer.MAX_VALUE, "The energy used by Solderers");
|
soldererUsage = config.getInt("solderer", "energy", 3, 0, Integer.MAX_VALUE, "The energy used by Solderers");
|
||||||
|
|||||||
@@ -25,7 +25,4 @@ public final class RefinedStorageBlocks {
|
|||||||
public static final BlockNetworkTransmitter NETWORK_TRANSMITTER = new BlockNetworkTransmitter();
|
public static final BlockNetworkTransmitter NETWORK_TRANSMITTER = new BlockNetworkTransmitter();
|
||||||
public static final BlockNetworkReceiver NETWORK_RECEIVER = new BlockNetworkReceiver();
|
public static final BlockNetworkReceiver NETWORK_RECEIVER = new BlockNetworkReceiver();
|
||||||
public static final BlockFluidDiskDrive FLUID_DISK_DRIVE = new BlockFluidDiskDrive();
|
public static final BlockFluidDiskDrive FLUID_DISK_DRIVE = new BlockFluidDiskDrive();
|
||||||
public static final BlockFluidConstructor FLUID_CONSTRUCTOR = new BlockFluidConstructor();
|
|
||||||
public static final BlockFluidDestructor FLUID_DESTRUCTOR = new BlockFluidDestructor();
|
|
||||||
public static final BlockFluidImporter FLUID_IMPORTER = new BlockFluidImporter();
|
|
||||||
}
|
}
|
||||||
@@ -21,7 +21,4 @@ public final class RefinedStorageGui {
|
|||||||
public static final int GRID_FILTER = 17;
|
public static final int GRID_FILTER = 17;
|
||||||
public static final int NETWORK_TRANSMITTER = 18;
|
public static final int NETWORK_TRANSMITTER = 18;
|
||||||
public static final int FLUID_DISK_DRIVE = 19;
|
public static final int FLUID_DISK_DRIVE = 19;
|
||||||
public static final int FLUID_CONSTRUCTOR = 20;
|
|
||||||
public static final int FLUID_DESTRUCTOR = 21;
|
|
||||||
public static final int FLUID_IMPORTER = 22;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
package refinedstorage.block;
|
|
||||||
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
import net.minecraft.util.EnumHand;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import refinedstorage.RefinedStorage;
|
|
||||||
import refinedstorage.RefinedStorageGui;
|
|
||||||
import refinedstorage.tile.TileFluidConstructor;
|
|
||||||
|
|
||||||
public class BlockFluidConstructor extends BlockConstructor {
|
|
||||||
public BlockFluidConstructor() {
|
|
||||||
super("fluid_constructor");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TileEntity createTileEntity(World world, IBlockState state) {
|
|
||||||
return new TileFluidConstructor();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) {
|
|
||||||
if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!world.isRemote) {
|
|
||||||
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.FLUID_CONSTRUCTOR, world, pos.getX(), pos.getY(), pos.getZ());
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
package refinedstorage.block;
|
|
||||||
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
import net.minecraft.util.EnumHand;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import refinedstorage.RefinedStorage;
|
|
||||||
import refinedstorage.RefinedStorageGui;
|
|
||||||
import refinedstorage.tile.TileFluidDestructor;
|
|
||||||
|
|
||||||
public class BlockFluidDestructor extends BlockDestructor {
|
|
||||||
public BlockFluidDestructor() {
|
|
||||||
super("fluid_destructor");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TileEntity createTileEntity(World world, IBlockState state) {
|
|
||||||
return new TileFluidDestructor();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) {
|
|
||||||
if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!world.isRemote) {
|
|
||||||
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.FLUID_DESTRUCTOR, world, pos.getX(), pos.getY(), pos.getZ());
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
package refinedstorage.block;
|
|
||||||
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
import net.minecraft.util.EnumHand;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import refinedstorage.RefinedStorage;
|
|
||||||
import refinedstorage.RefinedStorageGui;
|
|
||||||
import refinedstorage.tile.TileFluidImporter;
|
|
||||||
|
|
||||||
public class BlockFluidImporter extends BlockImporter {
|
|
||||||
public BlockFluidImporter() {
|
|
||||||
super("fluid_importer");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TileEntity createTileEntity(World world, IBlockState state) {
|
|
||||||
return new TileFluidImporter();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) {
|
|
||||||
if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!world.isRemote) {
|
|
||||||
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.FLUID_IMPORTER, world, pos.getX(), pos.getY(), pos.getZ());
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -115,7 +115,7 @@ public abstract class ContainerBase extends Container {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i = begin; i < end; ++i) {
|
for (int i = begin; i < end; ++i) {
|
||||||
if (!getSlot(i).getHasStack()) {
|
if (!getSlot(i).getHasStack() && getSlot(i).isItemValid(stack)) {
|
||||||
getSlot(i).putStack(ItemHandlerHelper.copyStackWithSize(stack, 1));
|
getSlot(i).putStack(ItemHandlerHelper.copyStackWithSize(stack, 1));
|
||||||
getSlot(i).onSlotChanged();
|
getSlot(i).onSlotChanged();
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import net.minecraft.inventory.Slot;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
import net.minecraftforge.items.SlotItemHandler;
|
||||||
import refinedstorage.container.slot.SlotSpecimen;
|
import refinedstorage.container.slot.SlotSpecimen;
|
||||||
|
import refinedstorage.container.slot.SlotSpecimenType;
|
||||||
import refinedstorage.tile.TileConstructor;
|
import refinedstorage.tile.TileConstructor;
|
||||||
|
|
||||||
public class ContainerConstructor extends ContainerBase {
|
public class ContainerConstructor extends ContainerBase {
|
||||||
@@ -15,7 +16,7 @@ public class ContainerConstructor extends ContainerBase {
|
|||||||
addSlotToContainer(new SlotItemHandler(constructor.getUpgrades(), i, 187, 6 + (i * 18)));
|
addSlotToContainer(new SlotItemHandler(constructor.getUpgrades(), i, 187, 6 + (i * 18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
addSlotToContainer(new SlotSpecimen(constructor.getFilter(), 0, 80, 20, SlotSpecimen.SPECIMEN_BLOCK));
|
addSlotToContainer(new SlotSpecimenType(constructor, 0, 80, 20, SlotSpecimen.SPECIMEN_BLOCK));
|
||||||
|
|
||||||
addPlayerInventory(8, 55);
|
addPlayerInventory(8, 55);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import net.minecraft.inventory.Slot;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
import net.minecraftforge.items.SlotItemHandler;
|
||||||
import refinedstorage.container.slot.SlotSpecimen;
|
import refinedstorage.container.slot.SlotSpecimen;
|
||||||
|
import refinedstorage.container.slot.SlotSpecimenType;
|
||||||
import refinedstorage.tile.TileDestructor;
|
import refinedstorage.tile.TileDestructor;
|
||||||
|
|
||||||
public class ContainerDestructor extends ContainerBase {
|
public class ContainerDestructor extends ContainerBase {
|
||||||
@@ -16,7 +17,7 @@ public class ContainerDestructor extends ContainerBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
addSlotToContainer(new SlotSpecimen(destructor.getInventory(), i, 8 + (18 * i), 20, SlotSpecimen.SPECIMEN_BLOCK));
|
addSlotToContainer(new SlotSpecimenType(destructor, i, 8 + (18 * i), 20, SlotSpecimen.SPECIMEN_BLOCK));
|
||||||
}
|
}
|
||||||
|
|
||||||
addPlayerInventory(8, 55);
|
addPlayerInventory(8, 55);
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
package refinedstorage.container;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.inventory.Slot;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
import refinedstorage.container.slot.SlotSpecimenFluid;
|
|
||||||
import refinedstorage.tile.TileFluidConstructor;
|
|
||||||
|
|
||||||
public class ContainerFluidConstructor extends ContainerBase {
|
|
||||||
public ContainerFluidConstructor(TileFluidConstructor fluidConstructor, EntityPlayer player) {
|
|
||||||
super(fluidConstructor, player);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
|
||||||
addSlotToContainer(new SlotItemHandler(fluidConstructor.getUpgrades(), i, 187, 6 + (i * 18)));
|
|
||||||
}
|
|
||||||
|
|
||||||
addSlotToContainer(new SlotSpecimenFluid(!fluidConstructor.getWorld().isRemote, fluidConstructor.getFilter(), 0, 80, 20));
|
|
||||||
|
|
||||||
addPlayerInventory(8, 55);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
|
||||||
ItemStack stack = null;
|
|
||||||
|
|
||||||
Slot slot = getSlot(index);
|
|
||||||
|
|
||||||
if (slot != null && slot.getHasStack()) {
|
|
||||||
stack = slot.getStack();
|
|
||||||
|
|
||||||
if (index < 4) {
|
|
||||||
if (!mergeItemStack(stack, 4, inventorySlots.size(), false)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
} else if (!mergeItemStack(stack, 0, 4, false)) {
|
|
||||||
return mergeItemStackToSpecimen(stack, 4, 4 + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (stack.stackSize == 0) {
|
|
||||||
slot.putStack(null);
|
|
||||||
} else {
|
|
||||||
slot.onSlotChanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return stack;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
package refinedstorage.container;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.inventory.Slot;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
import refinedstorage.container.slot.SlotSpecimenFluid;
|
|
||||||
import refinedstorage.tile.TileFluidDestructor;
|
|
||||||
|
|
||||||
public class ContainerFluidDestructor extends ContainerBase {
|
|
||||||
public ContainerFluidDestructor(TileFluidDestructor fluidDestructor, EntityPlayer player) {
|
|
||||||
super(fluidDestructor, player);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
|
||||||
addSlotToContainer(new SlotItemHandler(fluidDestructor.getUpgrades(), i, 187, 6 + (i * 18)));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
|
||||||
addSlotToContainer(new SlotSpecimenFluid(!fluidDestructor.getWorld().isRemote, fluidDestructor.getInventory(), i, 8 + (18 * i), 20));
|
|
||||||
}
|
|
||||||
|
|
||||||
addPlayerInventory(8, 55);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
|
||||||
ItemStack stack = null;
|
|
||||||
|
|
||||||
Slot slot = getSlot(index);
|
|
||||||
|
|
||||||
if (slot != null && slot.getHasStack()) {
|
|
||||||
stack = slot.getStack();
|
|
||||||
|
|
||||||
if (index < 4) {
|
|
||||||
if (!mergeItemStack(stack, 4 + 9, inventorySlots.size(), false)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
} else if (!mergeItemStack(stack, 0, 4, false)) {
|
|
||||||
return mergeItemStackToSpecimen(stack, 4, 4 + 9);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (stack.stackSize == 0) {
|
|
||||||
slot.putStack(null);
|
|
||||||
} else {
|
|
||||||
slot.onSlotChanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return stack;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
package refinedstorage.container;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.inventory.Slot;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
import refinedstorage.container.slot.SlotSpecimenFluid;
|
|
||||||
import refinedstorage.tile.TileFluidImporter;
|
|
||||||
|
|
||||||
public class ContainerFluidImporter extends ContainerBase {
|
|
||||||
public ContainerFluidImporter(TileFluidImporter fluidImporter, EntityPlayer player) {
|
|
||||||
super(fluidImporter, player);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
|
||||||
addSlotToContainer(new SlotItemHandler(fluidImporter.getUpgrades(), i, 187, 6 + (i * 18)));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
|
||||||
addSlotToContainer(new SlotSpecimenFluid(!fluidImporter.getWorld().isRemote, fluidImporter.getFilters(), i, 8 + (18 * i), 20));
|
|
||||||
}
|
|
||||||
|
|
||||||
addPlayerInventory(8, 55);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
|
||||||
ItemStack stack = null;
|
|
||||||
|
|
||||||
Slot slot = getSlot(index);
|
|
||||||
|
|
||||||
if (slot != null && slot.getHasStack()) {
|
|
||||||
stack = slot.getStack();
|
|
||||||
|
|
||||||
if (index < 4) {
|
|
||||||
if (!mergeItemStack(stack, 4 + 9, inventorySlots.size(), false)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
} else if (!mergeItemStack(stack, 0, 4, false)) {
|
|
||||||
return mergeItemStackToSpecimen(stack, 4, 4 + 9);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (stack.stackSize == 0) {
|
|
||||||
slot.putStack(null);
|
|
||||||
} else {
|
|
||||||
slot.onSlotChanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return stack;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,7 @@ 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 net.minecraftforge.items.SlotItemHandler;
|
||||||
import refinedstorage.container.slot.SlotSpecimen;
|
import refinedstorage.container.slot.SlotSpecimenType;
|
||||||
import refinedstorage.tile.TileImporter;
|
import refinedstorage.tile.TileImporter;
|
||||||
|
|
||||||
public class ContainerImporter extends ContainerBase {
|
public class ContainerImporter extends ContainerBase {
|
||||||
@@ -16,7 +16,7 @@ public class ContainerImporter extends ContainerBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
addSlotToContainer(new SlotSpecimen(importer.getFilters(), i, 8 + (18 * i), 20));
|
addSlotToContainer(new SlotSpecimenType(importer, i, 8 + (18 * i), 20));
|
||||||
}
|
}
|
||||||
|
|
||||||
addPlayerInventory(8, 55);
|
addPlayerInventory(8, 55);
|
||||||
|
|||||||
@@ -1,19 +1,14 @@
|
|||||||
package refinedstorage.container.slot;
|
package refinedstorage.container.slot;
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
import net.minecraftforge.items.SlotItemHandler;
|
||||||
|
|
||||||
public class SlotSpecimenFluid extends SlotSpecimen {
|
/**
|
||||||
private boolean server;
|
* Created by Raoul on 13/08/2016.
|
||||||
|
*/
|
||||||
public SlotSpecimenFluid(boolean server, IItemHandler handler, int id, int x, int y) {
|
// @TODO: REMOVAL
|
||||||
super(handler, id, x, y);
|
public class SlotSpecimenFluid extends SlotItemHandler {
|
||||||
|
public SlotSpecimenFluid(boolean b, IItemHandler filters, int i, int i1, int i2) {
|
||||||
this.server = server;
|
super(filters, i, i1, i2);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack getStack() {
|
|
||||||
return server ? super.getStack() : null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
40
src/main/java/refinedstorage/container/slot/SlotSpecimenType.java
Executable file
40
src/main/java/refinedstorage/container/slot/SlotSpecimenType.java
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
package refinedstorage.container.slot;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
import refinedstorage.tile.config.IType;
|
||||||
|
|
||||||
|
public class SlotSpecimenType extends SlotSpecimen {
|
||||||
|
private IType type;
|
||||||
|
|
||||||
|
public SlotSpecimenType(IType type, int id, int x, int y, int flags) {
|
||||||
|
super(null, id, x, y, flags);
|
||||||
|
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SlotSpecimenType(IType type, int id, int x, int y) {
|
||||||
|
this(type, id, x, y, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IItemHandler getItemHandler() {
|
||||||
|
return type.getFilterInventory();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isWithSize() {
|
||||||
|
return super.isWithSize() && type.getType() != IType.FLUIDS;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isBlockOnly() {
|
||||||
|
return super.isBlockOnly() && type.getType() == IType.ITEMS;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getStack() {
|
||||||
|
return (type.getType() == IType.ITEMS || !((TileEntity) type).getWorld().isRemote) ? super.getStack() : null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import refinedstorage.api.storage.CompareUtils;
|
|||||||
import refinedstorage.container.ContainerConstructor;
|
import refinedstorage.container.ContainerConstructor;
|
||||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||||
|
import refinedstorage.gui.sidebutton.SideButtonType;
|
||||||
import refinedstorage.tile.TileConstructor;
|
import refinedstorage.tile.TileConstructor;
|
||||||
|
|
||||||
public class GuiConstructor extends GuiBase {
|
public class GuiConstructor extends GuiBase {
|
||||||
@@ -15,6 +16,8 @@ public class GuiConstructor extends GuiBase {
|
|||||||
public void init(int x, int y) {
|
public void init(int x, int y) {
|
||||||
addSideButton(new SideButtonRedstoneMode(TileConstructor.REDSTONE_MODE));
|
addSideButton(new SideButtonRedstoneMode(TileConstructor.REDSTONE_MODE));
|
||||||
|
|
||||||
|
addSideButton(new SideButtonType(TileConstructor.TYPE));
|
||||||
|
|
||||||
addSideButton(new SideButtonCompare(TileConstructor.COMPARE, CompareUtils.COMPARE_DAMAGE));
|
addSideButton(new SideButtonCompare(TileConstructor.COMPARE, CompareUtils.COMPARE_DAMAGE));
|
||||||
addSideButton(new SideButtonCompare(TileConstructor.COMPARE, CompareUtils.COMPARE_NBT));
|
addSideButton(new SideButtonCompare(TileConstructor.COMPARE, CompareUtils.COMPARE_NBT));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import refinedstorage.container.ContainerDestructor;
|
|||||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||||
import refinedstorage.gui.sidebutton.SideButtonMode;
|
import refinedstorage.gui.sidebutton.SideButtonMode;
|
||||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||||
|
import refinedstorage.gui.sidebutton.SideButtonType;
|
||||||
import refinedstorage.tile.TileDestructor;
|
import refinedstorage.tile.TileDestructor;
|
||||||
|
|
||||||
public class GuiDestructor extends GuiBase {
|
public class GuiDestructor extends GuiBase {
|
||||||
@@ -16,6 +17,8 @@ public class GuiDestructor extends GuiBase {
|
|||||||
public void init(int x, int y) {
|
public void init(int x, int y) {
|
||||||
addSideButton(new SideButtonRedstoneMode(TileDestructor.REDSTONE_MODE));
|
addSideButton(new SideButtonRedstoneMode(TileDestructor.REDSTONE_MODE));
|
||||||
|
|
||||||
|
addSideButton(new SideButtonType(TileDestructor.TYPE));
|
||||||
|
|
||||||
addSideButton(new SideButtonMode(TileDestructor.MODE));
|
addSideButton(new SideButtonMode(TileDestructor.MODE));
|
||||||
|
|
||||||
addSideButton(new SideButtonCompare(TileDestructor.COMPARE, CompareUtils.COMPARE_DAMAGE));
|
addSideButton(new SideButtonCompare(TileDestructor.COMPARE, CompareUtils.COMPARE_DAMAGE));
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
package refinedstorage.gui;
|
|
||||||
|
|
||||||
import refinedstorage.api.storage.CompareUtils;
|
|
||||||
import refinedstorage.container.ContainerFluidConstructor;
|
|
||||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
|
||||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
|
||||||
import refinedstorage.tile.TileFluidConstructor;
|
|
||||||
|
|
||||||
public class GuiFluidConstructor extends GuiBase {
|
|
||||||
public GuiFluidConstructor(ContainerFluidConstructor container) {
|
|
||||||
super(container, 211, 137);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(int x, int y) {
|
|
||||||
addSideButton(new SideButtonRedstoneMode(TileFluidConstructor.REDSTONE_MODE));
|
|
||||||
|
|
||||||
addSideButton(new SideButtonCompare(TileFluidConstructor.COMPARE, CompareUtils.COMPARE_NBT));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void update(int x, int y) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
|
||||||
bindTexture("gui/constructor.png");
|
|
||||||
|
|
||||||
drawTexture(x, y, 0, 0, width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawForeground(int mouseX, int mouseY) {
|
|
||||||
drawString(7, 7, t("gui.refinedstorage:fluid_constructor"));
|
|
||||||
drawString(7, 43, t("container.inventory"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
package refinedstorage.gui;
|
|
||||||
|
|
||||||
import refinedstorage.api.storage.CompareUtils;
|
|
||||||
import refinedstorage.container.ContainerFluidDestructor;
|
|
||||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
|
||||||
import refinedstorage.gui.sidebutton.SideButtonMode;
|
|
||||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
|
||||||
import refinedstorage.tile.TileFluidDestructor;
|
|
||||||
|
|
||||||
public class GuiFluidDestructor extends GuiBase {
|
|
||||||
public GuiFluidDestructor(ContainerFluidDestructor container) {
|
|
||||||
super(container, 211, 137);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(int x, int y) {
|
|
||||||
addSideButton(new SideButtonRedstoneMode(TileFluidDestructor.REDSTONE_MODE));
|
|
||||||
|
|
||||||
addSideButton(new SideButtonMode(TileFluidDestructor.MODE));
|
|
||||||
|
|
||||||
addSideButton(new SideButtonCompare(TileFluidDestructor.COMPARE, CompareUtils.COMPARE_NBT));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void update(int x, int y) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
|
||||||
bindTexture("gui/destructor.png");
|
|
||||||
|
|
||||||
drawTexture(x, y, 0, 0, width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawForeground(int mouseX, int mouseY) {
|
|
||||||
drawString(7, 7, t("gui.refinedstorage:fluid_destructor"));
|
|
||||||
drawString(7, 43, t("container.inventory"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
package refinedstorage.gui;
|
|
||||||
|
|
||||||
import refinedstorage.api.storage.CompareUtils;
|
|
||||||
import refinedstorage.container.ContainerFluidImporter;
|
|
||||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
|
||||||
import refinedstorage.gui.sidebutton.SideButtonMode;
|
|
||||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
|
||||||
import refinedstorage.tile.TileFluidImporter;
|
|
||||||
|
|
||||||
public class GuiFluidImporter extends GuiBase {
|
|
||||||
public GuiFluidImporter(ContainerFluidImporter container) {
|
|
||||||
super(container, 211, 137);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(int x, int y) {
|
|
||||||
addSideButton(new SideButtonRedstoneMode(TileFluidImporter.REDSTONE_MODE));
|
|
||||||
|
|
||||||
addSideButton(new SideButtonMode(TileFluidImporter.MODE));
|
|
||||||
|
|
||||||
addSideButton(new SideButtonCompare(TileFluidImporter.COMPARE, CompareUtils.COMPARE_NBT));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void update(int x, int y) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
|
||||||
bindTexture("gui/importer.png");
|
|
||||||
|
|
||||||
drawTexture(x, y, 0, 0, width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawForeground(int mouseX, int mouseY) {
|
|
||||||
drawString(7, 7, t("gui.refinedstorage:fluid_importer"));
|
|
||||||
drawString(7, 43, t("container.inventory"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -53,12 +53,6 @@ public class GuiHandler implements IGuiHandler {
|
|||||||
return new ContainerNetworkTransmitter((TileNetworkTransmitter) tile, player);
|
return new ContainerNetworkTransmitter((TileNetworkTransmitter) tile, player);
|
||||||
case RefinedStorageGui.FLUID_DISK_DRIVE:
|
case RefinedStorageGui.FLUID_DISK_DRIVE:
|
||||||
return new ContainerFluidDiskDrive((TileFluidDiskDrive) tile, player);
|
return new ContainerFluidDiskDrive((TileFluidDiskDrive) tile, player);
|
||||||
case RefinedStorageGui.FLUID_CONSTRUCTOR:
|
|
||||||
return new ContainerFluidConstructor((TileFluidConstructor) tile, player);
|
|
||||||
case RefinedStorageGui.FLUID_DESTRUCTOR:
|
|
||||||
return new ContainerFluidDestructor((TileFluidDestructor) tile, player);
|
|
||||||
case RefinedStorageGui.FLUID_IMPORTER:
|
|
||||||
return new ContainerFluidImporter((TileFluidImporter) tile, player);
|
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -132,12 +126,6 @@ public class GuiHandler implements IGuiHandler {
|
|||||||
return new GuiNetworkTransmitter((ContainerNetworkTransmitter) getContainer(ID, player, tile), (TileNetworkTransmitter) tile);
|
return new GuiNetworkTransmitter((ContainerNetworkTransmitter) getContainer(ID, player, tile), (TileNetworkTransmitter) tile);
|
||||||
case RefinedStorageGui.FLUID_DISK_DRIVE:
|
case RefinedStorageGui.FLUID_DISK_DRIVE:
|
||||||
return new GuiStorage((ContainerFluidDiskDrive) getContainer(ID, player, tile), (IStorageGui) tile, "gui/disk_drive.png");
|
return new GuiStorage((ContainerFluidDiskDrive) getContainer(ID, player, tile), (IStorageGui) tile, "gui/disk_drive.png");
|
||||||
case RefinedStorageGui.FLUID_CONSTRUCTOR:
|
|
||||||
return new GuiFluidConstructor((ContainerFluidConstructor) getContainer(ID, player, tile));
|
|
||||||
case RefinedStorageGui.FLUID_DESTRUCTOR:
|
|
||||||
return new GuiFluidDestructor((ContainerFluidDestructor) getContainer(ID, player, tile));
|
|
||||||
case RefinedStorageGui.FLUID_IMPORTER:
|
|
||||||
return new GuiFluidImporter((ContainerFluidImporter) getContainer(ID, player, tile));
|
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import refinedstorage.container.ContainerImporter;
|
|||||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||||
import refinedstorage.gui.sidebutton.SideButtonMode;
|
import refinedstorage.gui.sidebutton.SideButtonMode;
|
||||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||||
|
import refinedstorage.gui.sidebutton.SideButtonType;
|
||||||
import refinedstorage.tile.TileImporter;
|
import refinedstorage.tile.TileImporter;
|
||||||
|
|
||||||
public class GuiImporter extends GuiBase {
|
public class GuiImporter extends GuiBase {
|
||||||
@@ -16,6 +17,8 @@ public class GuiImporter extends GuiBase {
|
|||||||
public void init(int x, int y) {
|
public void init(int x, int y) {
|
||||||
addSideButton(new SideButtonRedstoneMode(TileImporter.REDSTONE_MODE));
|
addSideButton(new SideButtonRedstoneMode(TileImporter.REDSTONE_MODE));
|
||||||
|
|
||||||
|
addSideButton(new SideButtonType(TileImporter.TYPE));
|
||||||
|
|
||||||
addSideButton(new SideButtonMode(TileImporter.MODE));
|
addSideButton(new SideButtonMode(TileImporter.MODE));
|
||||||
|
|
||||||
addSideButton(new SideButtonCompare(TileImporter.COMPARE, CompareUtils.COMPARE_DAMAGE));
|
addSideButton(new SideButtonCompare(TileImporter.COMPARE, CompareUtils.COMPARE_DAMAGE));
|
||||||
|
|||||||
29
src/main/java/refinedstorage/gui/sidebutton/SideButtonType.java
Executable file
29
src/main/java/refinedstorage/gui/sidebutton/SideButtonType.java
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
package refinedstorage.gui.sidebutton;
|
||||||
|
|
||||||
|
import net.minecraft.util.text.TextFormatting;
|
||||||
|
import refinedstorage.gui.GuiBase;
|
||||||
|
import refinedstorage.tile.config.IType;
|
||||||
|
import refinedstorage.tile.data.TileDataManager;
|
||||||
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
|
public class SideButtonType extends SideButton {
|
||||||
|
private TileDataParameter<Integer> type;
|
||||||
|
|
||||||
|
public SideButtonType(TileDataParameter<Integer> type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTooltip(GuiBase gui) {
|
||||||
|
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:type." + type.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(GuiBase gui, int x, int y) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed() {
|
||||||
|
TileDataManager.setParameter(type, type.getValue() == IType.ITEMS ? IType.FLUIDS : IType.ITEMS);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -258,8 +258,5 @@ public class ClientProxy extends CommonProxy {
|
|||||||
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.STORAGE), EnumItemStorageType.TYPE_64K.getId(), new ModelResourceLocation("refinedstorage:storage", "type=64k"));
|
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.STORAGE), EnumItemStorageType.TYPE_64K.getId(), new ModelResourceLocation("refinedstorage:storage", "type=64k"));
|
||||||
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.STORAGE), EnumItemStorageType.TYPE_CREATIVE.getId(), new ModelResourceLocation("refinedstorage:storage", "type=creative"));
|
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.STORAGE), EnumItemStorageType.TYPE_CREATIVE.getId(), new ModelResourceLocation("refinedstorage:storage", "type=creative"));
|
||||||
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.FLUID_DISK_DRIVE), 0, new ModelResourceLocation("refinedstorage:disk_drive", "inventory"));
|
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.FLUID_DISK_DRIVE), 0, new ModelResourceLocation("refinedstorage:disk_drive", "inventory"));
|
||||||
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.FLUID_CONSTRUCTOR), 0, new ModelResourceLocation("refinedstorage:fluid_constructor", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.FLUID_DESTRUCTOR), 0, new ModelResourceLocation("refinedstorage:fluid_destructor", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.FLUID_IMPORTER), 0, new ModelResourceLocation("refinedstorage:fluid_importer", "inventory"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,9 +86,6 @@ public class CommonProxy {
|
|||||||
registerTile(TileNetworkReceiver.class, "network_receiver");
|
registerTile(TileNetworkReceiver.class, "network_receiver");
|
||||||
registerTile(TileNetworkTransmitter.class, "network_transmitter");
|
registerTile(TileNetworkTransmitter.class, "network_transmitter");
|
||||||
registerTile(TileFluidDiskDrive.class, "fluid_disk_drive");
|
registerTile(TileFluidDiskDrive.class, "fluid_disk_drive");
|
||||||
registerTile(TileFluidConstructor.class, "fluid_constructor");
|
|
||||||
registerTile(TileFluidDestructor.class, "fluid_destructor");
|
|
||||||
registerTile(TileFluidImporter.class, "fluid_importer");
|
|
||||||
|
|
||||||
registerBlock(RefinedStorageBlocks.CONTROLLER);
|
registerBlock(RefinedStorageBlocks.CONTROLLER);
|
||||||
registerBlock(RefinedStorageBlocks.GRID);
|
registerBlock(RefinedStorageBlocks.GRID);
|
||||||
@@ -112,9 +109,6 @@ public class CommonProxy {
|
|||||||
registerBlock(RefinedStorageBlocks.NETWORK_TRANSMITTER);
|
registerBlock(RefinedStorageBlocks.NETWORK_TRANSMITTER);
|
||||||
registerBlock(RefinedStorageBlocks.NETWORK_RECEIVER);
|
registerBlock(RefinedStorageBlocks.NETWORK_RECEIVER);
|
||||||
registerBlock(RefinedStorageBlocks.FLUID_DISK_DRIVE);
|
registerBlock(RefinedStorageBlocks.FLUID_DISK_DRIVE);
|
||||||
registerBlock(RefinedStorageBlocks.FLUID_CONSTRUCTOR);
|
|
||||||
registerBlock(RefinedStorageBlocks.FLUID_DESTRUCTOR);
|
|
||||||
registerBlock(RefinedStorageBlocks.FLUID_IMPORTER);
|
|
||||||
|
|
||||||
registerItem(RefinedStorageItems.QUARTZ_ENRICHED_IRON);
|
registerItem(RefinedStorageItems.QUARTZ_ENRICHED_IRON);
|
||||||
registerItem(RefinedStorageItems.STORAGE_DISK);
|
registerItem(RefinedStorageItems.STORAGE_DISK);
|
||||||
@@ -333,14 +327,6 @@ public class CommonProxy {
|
|||||||
new ItemStack(RefinedStorageItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
new ItemStack(RefinedStorageItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Fluid Importer
|
|
||||||
GameRegistry.addShapelessRecipe(new ItemStack(RefinedStorageBlocks.FLUID_IMPORTER),
|
|
||||||
new ItemStack(RefinedStorageBlocks.CABLE),
|
|
||||||
new ItemStack(RefinedStorageItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
|
||||||
new ItemStack(RefinedStorageItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED),
|
|
||||||
new ItemStack(Items.BUCKET)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Exporter
|
// Exporter
|
||||||
GameRegistry.addShapelessRecipe(new ItemStack(RefinedStorageBlocks.EXPORTER),
|
GameRegistry.addShapelessRecipe(new ItemStack(RefinedStorageBlocks.EXPORTER),
|
||||||
new ItemStack(RefinedStorageBlocks.CABLE),
|
new ItemStack(RefinedStorageBlocks.CABLE),
|
||||||
@@ -360,18 +346,6 @@ public class CommonProxy {
|
|||||||
'I', new ItemStack(RefinedStorageItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
'I', new ItemStack(RefinedStorageItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Fluid Destructor
|
|
||||||
GameRegistry.addShapedRecipe(new ItemStack(RefinedStorageBlocks.DESTRUCTOR),
|
|
||||||
"EDE",
|
|
||||||
"RMR",
|
|
||||||
"EIE",
|
|
||||||
'E', new ItemStack(RefinedStorageItems.QUARTZ_ENRICHED_IRON),
|
|
||||||
'D', new ItemStack(RefinedStorageItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
|
||||||
'R', new ItemStack(Items.BUCKET),
|
|
||||||
'M', new ItemStack(RefinedStorageBlocks.CABLE),
|
|
||||||
'I', new ItemStack(RefinedStorageItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
GameRegistry.addShapedRecipe(new ItemStack(RefinedStorageBlocks.CONSTRUCTOR),
|
GameRegistry.addShapedRecipe(new ItemStack(RefinedStorageBlocks.CONSTRUCTOR),
|
||||||
"ECE",
|
"ECE",
|
||||||
@@ -384,18 +358,6 @@ public class CommonProxy {
|
|||||||
'I', new ItemStack(RefinedStorageItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
'I', new ItemStack(RefinedStorageItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Fluid Constructor
|
|
||||||
GameRegistry.addShapedRecipe(new ItemStack(RefinedStorageBlocks.FLUID_CONSTRUCTOR),
|
|
||||||
"ECE",
|
|
||||||
"RMR",
|
|
||||||
"EIE",
|
|
||||||
'E', new ItemStack(RefinedStorageItems.QUARTZ_ENRICHED_IRON),
|
|
||||||
'C', new ItemStack(RefinedStorageItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
|
||||||
'R', new ItemStack(Items.BUCKET),
|
|
||||||
'M', new ItemStack(RefinedStorageBlocks.CABLE),
|
|
||||||
'I', new ItemStack(RefinedStorageItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Detector
|
// Detector
|
||||||
GameRegistry.addRecipe(new ItemStack(RefinedStorageBlocks.DETECTOR),
|
GameRegistry.addRecipe(new ItemStack(RefinedStorageBlocks.DETECTOR),
|
||||||
"ECE",
|
"ECE",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package refinedstorage.tile;
|
package refinedstorage.tile;
|
||||||
|
|
||||||
import mcmultipart.microblock.IMicroblock;
|
import mcmultipart.microblock.IMicroblock;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.SoundType;
|
import net.minecraft.block.SoundType;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@@ -9,25 +10,31 @@ import net.minecraft.util.EnumFacing;
|
|||||||
import net.minecraft.util.SoundCategory;
|
import net.minecraft.util.SoundCategory;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import refinedstorage.RefinedStorage;
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.apiimpl.autocrafting.CraftingTaskScheduler;
|
import refinedstorage.apiimpl.autocrafting.CraftingTaskScheduler;
|
||||||
import refinedstorage.container.slot.SlotSpecimen;
|
import refinedstorage.container.slot.SlotSpecimen;
|
||||||
import refinedstorage.inventory.ItemHandlerBasic;
|
import refinedstorage.inventory.ItemHandlerBasic;
|
||||||
|
import refinedstorage.inventory.ItemHandlerFluid;
|
||||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||||
import refinedstorage.item.ItemUpgrade;
|
import refinedstorage.item.ItemUpgrade;
|
||||||
import refinedstorage.tile.config.IComparable;
|
import refinedstorage.tile.config.IComparable;
|
||||||
|
import refinedstorage.tile.config.IType;
|
||||||
import refinedstorage.tile.data.TileDataParameter;
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
public class TileConstructor extends TileMultipartNode implements IComparable {
|
public class TileConstructor extends TileMultipartNode implements IComparable, IType {
|
||||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
|
public static final TileDataParameter<Integer> TYPE = IType.createParameter();
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
|
private static final String NBT_TYPE = "Type";
|
||||||
|
|
||||||
private static final int BASE_SPEED = 20;
|
private static final int BASE_SPEED = 20;
|
||||||
|
|
||||||
private ItemHandlerBasic filter = new ItemHandlerBasic(1, this) {
|
private ItemHandlerBasic itemFilters = new ItemHandlerBasic(1, this) {
|
||||||
@Override
|
@Override
|
||||||
protected void onContentsChanged(int slot) {
|
protected void onContentsChanged(int slot) {
|
||||||
super.onContentsChanged(slot);
|
super.onContentsChanged(slot);
|
||||||
@@ -35,16 +42,20 @@ public class TileConstructor extends TileMultipartNode implements IComparable {
|
|||||||
block = SlotSpecimen.getBlockState(worldObj, pos.offset(getDirection()), getStackInSlot(0));
|
block = SlotSpecimen.getBlockState(worldObj, pos.offset(getDirection()), getStackInSlot(0));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(1, this);
|
||||||
|
|
||||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING);
|
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING);
|
||||||
|
|
||||||
private int compare = 0;
|
private int compare = 0;
|
||||||
|
private int type = IType.ITEMS;
|
||||||
|
|
||||||
private IBlockState block;
|
private IBlockState block;
|
||||||
|
|
||||||
private CraftingTaskScheduler scheduler = new CraftingTaskScheduler(this);
|
private CraftingTaskScheduler scheduler = new CraftingTaskScheduler(this);
|
||||||
|
|
||||||
public TileConstructor() {
|
public TileConstructor() {
|
||||||
dataManager.addWatchedParameter(COMPARE);
|
dataManager.addWatchedParameter(COMPARE);
|
||||||
|
dataManager.addWatchedParameter(TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -59,11 +70,12 @@ public class TileConstructor extends TileMultipartNode implements IComparable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateNode() {
|
public void updateNode() {
|
||||||
if (block != null && ticks % upgrades.getSpeed(BASE_SPEED, 4) == 0) {
|
if (ticks % upgrades.getSpeed(BASE_SPEED, 4) == 0) {
|
||||||
|
if (type == IType.ITEMS && block != null) {
|
||||||
BlockPos front = pos.offset(getDirection());
|
BlockPos front = pos.offset(getDirection());
|
||||||
|
|
||||||
if (worldObj.isAirBlock(front) && block.getBlock().canPlaceBlockAt(worldObj, front)) {
|
if (worldObj.isAirBlock(front) && block.getBlock().canPlaceBlockAt(worldObj, front)) {
|
||||||
ItemStack took = network.extractItem(filter.getStackInSlot(0), 1, compare);
|
ItemStack took = network.extractItem(itemFilters.getStackInSlot(0), 1, compare);
|
||||||
|
|
||||||
if (took != null) {
|
if (took != null) {
|
||||||
scheduler.resetSchedule();
|
scheduler.resetSchedule();
|
||||||
@@ -72,13 +84,34 @@ public class TileConstructor extends TileMultipartNode implements IComparable {
|
|||||||
SoundType blockSound = block.getBlock().getSoundType();
|
SoundType blockSound = block.getBlock().getSoundType();
|
||||||
worldObj.playSound(null, front, blockSound.getPlaceSound(), SoundCategory.BLOCKS, (blockSound.getVolume() + 1.0F) / 2.0F, blockSound.getPitch() * 0.8F);
|
worldObj.playSound(null, front, blockSound.getPlaceSound(), SoundCategory.BLOCKS, (blockSound.getVolume() + 1.0F) / 2.0F, blockSound.getPitch() * 0.8F);
|
||||||
} else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) {
|
} else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) {
|
||||||
ItemStack craft = filter.getStackInSlot(0);
|
ItemStack craft = itemFilters.getStackInSlot(0);
|
||||||
|
|
||||||
if (scheduler.canSchedule(compare, craft)) {
|
if (scheduler.canSchedule(compare, craft)) {
|
||||||
scheduler.schedule(network, compare, craft);
|
scheduler.schedule(network, compare, craft);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (type == IType.FLUIDS) {
|
||||||
|
FluidStack stack = fluidFilters.getFluids()[0];
|
||||||
|
|
||||||
|
if (stack != null) {
|
||||||
|
BlockPos front = pos.offset(getDirection());
|
||||||
|
|
||||||
|
Block block = stack.getFluid().getBlock();
|
||||||
|
|
||||||
|
|
||||||
|
if (worldObj.isAirBlock(front) && block.canPlaceBlockAt(worldObj, front)) {
|
||||||
|
FluidStack took = network.extractFluid(stack, Fluid.BUCKET_VOLUME, compare);
|
||||||
|
|
||||||
|
if (took != null) {
|
||||||
|
IBlockState state = block.getDefaultState();
|
||||||
|
|
||||||
|
// @TODO: This doesn't cause the block to flow?
|
||||||
|
worldObj.setBlockState(front, state, 1 | 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,8 +135,13 @@ public class TileConstructor extends TileMultipartNode implements IComparable {
|
|||||||
compare = tag.getInteger(NBT_COMPARE);
|
compare = tag.getInteger(NBT_COMPARE);
|
||||||
}
|
}
|
||||||
|
|
||||||
readItems(filter, 0, tag);
|
if (tag.hasKey(NBT_TYPE)) {
|
||||||
|
type = tag.getInteger(NBT_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
readItems(itemFilters, 0, tag);
|
||||||
readItems(upgrades, 1, tag);
|
readItems(upgrades, 1, tag);
|
||||||
|
readItems(fluidFilters, 2, tag);
|
||||||
|
|
||||||
scheduler.read(tag);
|
scheduler.read(tag);
|
||||||
}
|
}
|
||||||
@@ -113,9 +151,11 @@ public class TileConstructor extends TileMultipartNode implements IComparable {
|
|||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|
||||||
tag.setInteger(NBT_COMPARE, compare);
|
tag.setInteger(NBT_COMPARE, compare);
|
||||||
|
tag.setInteger(NBT_TYPE, type);
|
||||||
|
|
||||||
writeItems(filter, 0, tag);
|
writeItems(itemFilters, 0, tag);
|
||||||
writeItems(upgrades, 1, tag);
|
writeItems(upgrades, 1, tag);
|
||||||
|
writeItems(fluidFilters, 2, tag);
|
||||||
|
|
||||||
scheduler.writeToNBT(tag);
|
scheduler.writeToNBT(tag);
|
||||||
|
|
||||||
@@ -126,15 +166,28 @@ public class TileConstructor extends TileMultipartNode implements IComparable {
|
|||||||
return upgrades;
|
return upgrades;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IItemHandler getFilter() {
|
|
||||||
return filter;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IItemHandler getDrops() {
|
public IItemHandler getDrops() {
|
||||||
return upgrades;
|
return upgrades;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() {
|
||||||
|
return worldObj.isRemote ? TYPE.getValue() : type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setType(int type) {
|
||||||
|
this.type = type;
|
||||||
|
|
||||||
|
markDirty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IItemHandler getFilterInventory() {
|
||||||
|
return getType() == IType.ITEMS ? itemFilters : fluidFilters;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
||||||
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package refinedstorage.tile;
|
|||||||
|
|
||||||
import mcmultipart.microblock.IMicroblock;
|
import mcmultipart.microblock.IMicroblock;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockLiquid;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.inventory.InventoryHelper;
|
import net.minecraft.inventory.InventoryHelper;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@@ -9,36 +10,50 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
import net.minecraftforge.fluids.IFluidBlock;
|
||||||
|
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||||
|
import net.minecraftforge.fluids.capability.wrappers.BlockLiquidWrapper;
|
||||||
|
import net.minecraftforge.fluids.capability.wrappers.FluidBlockWrapper;
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import refinedstorage.RefinedStorage;
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.inventory.ItemHandlerBasic;
|
import refinedstorage.inventory.ItemHandlerBasic;
|
||||||
|
import refinedstorage.inventory.ItemHandlerFluid;
|
||||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||||
import refinedstorage.item.ItemUpgrade;
|
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.data.TileDataParameter;
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class TileDestructor extends TileMultipartNode implements IComparable, IFilterable {
|
public class TileDestructor extends TileMultipartNode implements IComparable, IFilterable, IType {
|
||||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||||
|
public static final TileDataParameter<Integer> TYPE = IType.createParameter();
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
private static final String NBT_MODE = "Mode";
|
private static final String NBT_MODE = "Mode";
|
||||||
|
private static final String NBT_TYPE = "Type";
|
||||||
|
|
||||||
private static final int BASE_SPEED = 20;
|
private static final int BASE_SPEED = 20;
|
||||||
|
|
||||||
private ItemHandlerBasic filters = new ItemHandlerBasic(9, this);
|
private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, this);
|
||||||
|
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, this);
|
||||||
|
|
||||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED);
|
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED);
|
||||||
|
|
||||||
private int compare = 0;
|
private int compare = 0;
|
||||||
private int mode = IFilterable.WHITELIST;
|
private int mode = IFilterable.WHITELIST;
|
||||||
|
private int type = IType.ITEMS;
|
||||||
|
|
||||||
public TileDestructor() {
|
public TileDestructor() {
|
||||||
dataManager.addWatchedParameter(COMPARE);
|
dataManager.addWatchedParameter(COMPARE);
|
||||||
dataManager.addWatchedParameter(MODE);
|
dataManager.addWatchedParameter(MODE);
|
||||||
|
dataManager.addWatchedParameter(TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -54,13 +69,14 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF
|
|||||||
@Override
|
@Override
|
||||||
public void updateNode() {
|
public void updateNode() {
|
||||||
if (ticks % upgrades.getSpeed(BASE_SPEED, 4) == 0) {
|
if (ticks % upgrades.getSpeed(BASE_SPEED, 4) == 0) {
|
||||||
|
if (type == IType.ITEMS) {
|
||||||
BlockPos front = pos.offset(getDirection());
|
BlockPos front = pos.offset(getDirection());
|
||||||
|
|
||||||
IBlockState frontBlockState = worldObj.getBlockState(front);
|
IBlockState frontBlockState = worldObj.getBlockState(front);
|
||||||
ItemStack frontStack = frontBlockState.getBlock().getItem(worldObj, front, frontBlockState);
|
ItemStack frontStack = frontBlockState.getBlock().getItem(worldObj, front, frontBlockState);
|
||||||
|
|
||||||
if (frontStack != null) {
|
if (frontStack != null) {
|
||||||
if (IFilterable.canTake(filters, mode, compare, frontStack)) {
|
if (IFilterable.canTake(itemFilters, mode, compare, frontStack)) {
|
||||||
List<ItemStack> drops = frontBlockState.getBlock().getDrops(worldObj, front, frontBlockState, 0);
|
List<ItemStack> drops = frontBlockState.getBlock().getDrops(worldObj, front, frontBlockState, 0);
|
||||||
|
|
||||||
worldObj.playEvent(null, 2001, front, Block.getStateId(frontBlockState));
|
worldObj.playEvent(null, 2001, front, Block.getStateId(frontBlockState));
|
||||||
@@ -81,6 +97,29 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (type == IType.FLUIDS) {
|
||||||
|
BlockPos front = pos.offset(getDirection());
|
||||||
|
|
||||||
|
Block frontBlock = worldObj.getBlockState(front).getBlock();
|
||||||
|
|
||||||
|
IFluidHandler handler = null;
|
||||||
|
|
||||||
|
if (frontBlock instanceof BlockLiquid) {
|
||||||
|
handler = new BlockLiquidWrapper((BlockLiquid) frontBlock, worldObj, front);
|
||||||
|
} else if (frontBlock instanceof IFluidBlock) {
|
||||||
|
handler = new FluidBlockWrapper((IFluidBlock) frontBlock, worldObj, front);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (handler != null) {
|
||||||
|
FluidStack stack = handler.drain(Fluid.BUCKET_VOLUME, false);
|
||||||
|
|
||||||
|
if (stack != null && IFilterable.canTakeFluids(fluidFilters, mode, compare, stack) && network.insertFluid(stack, stack.amount, true) == null) {
|
||||||
|
FluidStack drained = handler.drain(Fluid.BUCKET_VOLUME, true);
|
||||||
|
|
||||||
|
network.insertFluid(drained, drained.amount, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,8 +159,13 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF
|
|||||||
mode = tag.getInteger(NBT_MODE);
|
mode = tag.getInteger(NBT_MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
readItems(filters, 0, tag);
|
if (tag.hasKey(NBT_TYPE)) {
|
||||||
|
type = tag.getInteger(NBT_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
readItems(itemFilters, 0, tag);
|
||||||
readItems(upgrades, 1, tag);
|
readItems(upgrades, 1, tag);
|
||||||
|
readItems(fluidFilters, 2, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -130,9 +174,11 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF
|
|||||||
|
|
||||||
tag.setInteger(NBT_COMPARE, compare);
|
tag.setInteger(NBT_COMPARE, compare);
|
||||||
tag.setInteger(NBT_MODE, mode);
|
tag.setInteger(NBT_MODE, mode);
|
||||||
|
tag.setInteger(NBT_TYPE, type);
|
||||||
|
|
||||||
writeItems(filters, 0, tag);
|
writeItems(itemFilters, 0, tag);
|
||||||
writeItems(upgrades, 1, tag);
|
writeItems(upgrades, 1, tag);
|
||||||
|
writeItems(fluidFilters, 2, tag);
|
||||||
|
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
@@ -142,7 +188,7 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF
|
|||||||
}
|
}
|
||||||
|
|
||||||
public IItemHandler getInventory() {
|
public IItemHandler getInventory() {
|
||||||
return filters;
|
return itemFilters;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -150,6 +196,23 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF
|
|||||||
return upgrades;
|
return upgrades;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() {
|
||||||
|
return worldObj.isRemote ? TYPE.getValue() : type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setType(int type) {
|
||||||
|
this.type = type;
|
||||||
|
|
||||||
|
markDirty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IItemHandler getFilterInventory() {
|
||||||
|
return getType() == IType.ITEMS ? itemFilters : fluidFilters;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
||||||
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||||
|
|||||||
@@ -1,132 +0,0 @@
|
|||||||
package refinedstorage.tile;
|
|
||||||
|
|
||||||
import mcmultipart.microblock.IMicroblock;
|
|
||||||
import net.minecraft.block.Block;
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
|
||||||
import net.minecraftforge.fluids.Fluid;
|
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
|
||||||
import net.minecraftforge.items.IItemHandler;
|
|
||||||
import refinedstorage.RefinedStorage;
|
|
||||||
import refinedstorage.inventory.ItemHandlerFluid;
|
|
||||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
|
||||||
import refinedstorage.item.ItemUpgrade;
|
|
||||||
import refinedstorage.tile.config.IComparable;
|
|
||||||
import refinedstorage.tile.data.TileDataParameter;
|
|
||||||
|
|
||||||
public class TileFluidConstructor extends TileMultipartNode implements IComparable {
|
|
||||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
|
||||||
|
|
||||||
private static final int BASE_SPEED = 20;
|
|
||||||
|
|
||||||
private ItemHandlerFluid filter = new ItemHandlerFluid(1, this);
|
|
||||||
|
|
||||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED);
|
|
||||||
|
|
||||||
private int compare = 0;
|
|
||||||
|
|
||||||
public TileFluidConstructor() {
|
|
||||||
dataManager.addWatchedParameter(COMPARE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canAddMicroblock(IMicroblock microblock) {
|
|
||||||
return !isBlockingMicroblock(microblock, getDirection());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getEnergyUsage() {
|
|
||||||
return RefinedStorage.INSTANCE.fluidConstructorUsage + upgrades.getEnergyUsage();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateNode() {
|
|
||||||
FluidStack stack = filter.getFluids()[0];
|
|
||||||
|
|
||||||
if (stack != null && ticks % upgrades.getSpeed(BASE_SPEED, 4) == 0) {
|
|
||||||
BlockPos front = pos.offset(getDirection());
|
|
||||||
|
|
||||||
Block block = stack.getFluid().getBlock();
|
|
||||||
|
|
||||||
if (worldObj.isAirBlock(front) && block.canPlaceBlockAt(worldObj, front)) {
|
|
||||||
FluidStack took = network.extractFluid(stack, Fluid.BUCKET_VOLUME, compare);
|
|
||||||
|
|
||||||
if (took != null) {
|
|
||||||
IBlockState state = block.getDefaultState();
|
|
||||||
|
|
||||||
// @TODO: This doesn't cause the block to flow?
|
|
||||||
worldObj.setBlockState(front, state, 1 | 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getCompare() {
|
|
||||||
return compare;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setCompare(int compare) {
|
|
||||||
this.compare = compare;
|
|
||||||
|
|
||||||
markDirty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void read(NBTTagCompound tag) {
|
|
||||||
super.read(tag);
|
|
||||||
|
|
||||||
if (tag.hasKey(NBT_COMPARE)) {
|
|
||||||
compare = tag.getInteger(NBT_COMPARE);
|
|
||||||
}
|
|
||||||
|
|
||||||
readItems(filter, 0, tag);
|
|
||||||
readItems(upgrades, 1, tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
|
||||||
super.write(tag);
|
|
||||||
|
|
||||||
tag.setInteger(NBT_COMPARE, compare);
|
|
||||||
|
|
||||||
writeItems(filter, 0, tag);
|
|
||||||
writeItems(upgrades, 1, tag);
|
|
||||||
|
|
||||||
return tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IItemHandler getUpgrades() {
|
|
||||||
return upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IItemHandler getFilter() {
|
|
||||||
return filter;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IItemHandler getDrops() {
|
|
||||||
return upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
|
||||||
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
|
||||||
return (T) upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.getCapability(capability, facing);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
|
|
||||||
return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
package refinedstorage.tile;
|
|
||||||
|
|
||||||
import mcmultipart.microblock.IMicroblock;
|
|
||||||
import net.minecraft.block.Block;
|
|
||||||
import net.minecraft.block.BlockLiquid;
|
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
|
||||||
import net.minecraftforge.fluids.Fluid;
|
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
|
||||||
import net.minecraftforge.fluids.IFluidBlock;
|
|
||||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
|
||||||
import net.minecraftforge.fluids.capability.wrappers.BlockLiquidWrapper;
|
|
||||||
import net.minecraftforge.fluids.capability.wrappers.FluidBlockWrapper;
|
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
|
||||||
import net.minecraftforge.items.IItemHandler;
|
|
||||||
import refinedstorage.RefinedStorage;
|
|
||||||
import refinedstorage.inventory.ItemHandlerFluid;
|
|
||||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
|
||||||
import refinedstorage.item.ItemUpgrade;
|
|
||||||
import refinedstorage.tile.config.IComparable;
|
|
||||||
import refinedstorage.tile.config.IFilterable;
|
|
||||||
import refinedstorage.tile.data.TileDataParameter;
|
|
||||||
|
|
||||||
public class TileFluidDestructor extends TileMultipartNode implements IComparable, IFilterable {
|
|
||||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
|
||||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
|
||||||
private static final String NBT_MODE = "Mode";
|
|
||||||
|
|
||||||
private static final int BASE_SPEED = 20;
|
|
||||||
|
|
||||||
private ItemHandlerFluid filters = new ItemHandlerFluid(9, this);
|
|
||||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED);
|
|
||||||
|
|
||||||
private int compare = 0;
|
|
||||||
private int mode = IFilterable.WHITELIST;
|
|
||||||
|
|
||||||
public TileFluidDestructor() {
|
|
||||||
dataManager.addWatchedParameter(COMPARE);
|
|
||||||
dataManager.addWatchedParameter(MODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canAddMicroblock(IMicroblock microblock) {
|
|
||||||
return !isBlockingMicroblock(microblock, getDirection());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getEnergyUsage() {
|
|
||||||
return RefinedStorage.INSTANCE.fluidDestructorUsage + upgrades.getEnergyUsage();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateNode() {
|
|
||||||
if (ticks % upgrades.getSpeed(BASE_SPEED, 4) == 0) {
|
|
||||||
BlockPos front = pos.offset(getDirection());
|
|
||||||
|
|
||||||
Block frontBlock = worldObj.getBlockState(front).getBlock();
|
|
||||||
|
|
||||||
IFluidHandler handler = null;
|
|
||||||
|
|
||||||
if (frontBlock instanceof BlockLiquid) {
|
|
||||||
handler = new BlockLiquidWrapper((BlockLiquid) frontBlock, worldObj, front);
|
|
||||||
} else if (frontBlock instanceof IFluidBlock) {
|
|
||||||
handler = new FluidBlockWrapper((IFluidBlock) frontBlock, worldObj, front);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (handler != null) {
|
|
||||||
FluidStack stack = handler.drain(Fluid.BUCKET_VOLUME, false);
|
|
||||||
|
|
||||||
if (stack != null && IFilterable.canTakeFluids(filters, mode, compare, stack) && network.insertFluid(stack, stack.amount, true) == null) {
|
|
||||||
FluidStack drained = handler.drain(Fluid.BUCKET_VOLUME, true);
|
|
||||||
|
|
||||||
network.insertFluid(drained, drained.amount, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getCompare() {
|
|
||||||
return compare;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setCompare(int compare) {
|
|
||||||
this.compare = compare;
|
|
||||||
|
|
||||||
markDirty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMode() {
|
|
||||||
return mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setMode(int mode) {
|
|
||||||
this.mode = mode;
|
|
||||||
|
|
||||||
markDirty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void read(NBTTagCompound tag) {
|
|
||||||
super.read(tag);
|
|
||||||
|
|
||||||
if (tag.hasKey(NBT_COMPARE)) {
|
|
||||||
compare = tag.getInteger(NBT_COMPARE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tag.hasKey(NBT_MODE)) {
|
|
||||||
mode = tag.getInteger(NBT_MODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
readItems(filters, 0, tag);
|
|
||||||
readItems(upgrades, 1, tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
|
||||||
super.write(tag);
|
|
||||||
|
|
||||||
tag.setInteger(NBT_COMPARE, compare);
|
|
||||||
tag.setInteger(NBT_MODE, mode);
|
|
||||||
|
|
||||||
writeItems(filters, 0, tag);
|
|
||||||
writeItems(upgrades, 1, tag);
|
|
||||||
|
|
||||||
return tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IItemHandler getUpgrades() {
|
|
||||||
return upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IItemHandler getInventory() {
|
|
||||||
return filters;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IItemHandler getDrops() {
|
|
||||||
return upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
|
||||||
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
|
||||||
return (T) upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.getCapability(capability, facing);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
|
|
||||||
return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,142 +0,0 @@
|
|||||||
package refinedstorage.tile;
|
|
||||||
|
|
||||||
import mcmultipart.microblock.IMicroblock;
|
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
|
||||||
import net.minecraftforge.fluids.Fluid;
|
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
|
||||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
|
||||||
import net.minecraftforge.items.IItemHandler;
|
|
||||||
import refinedstorage.RefinedStorage;
|
|
||||||
import refinedstorage.inventory.ItemHandlerFluid;
|
|
||||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
|
||||||
import refinedstorage.item.ItemUpgrade;
|
|
||||||
import refinedstorage.tile.config.IComparable;
|
|
||||||
import refinedstorage.tile.config.IFilterable;
|
|
||||||
import refinedstorage.tile.data.TileDataParameter;
|
|
||||||
|
|
||||||
public class TileFluidImporter extends TileMultipartNode implements IComparable, IFilterable {
|
|
||||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
|
||||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
|
||||||
private static final String NBT_MODE = "Mode";
|
|
||||||
|
|
||||||
private ItemHandlerFluid filters = new ItemHandlerFluid(9, this);
|
|
||||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED);
|
|
||||||
|
|
||||||
private int compare = 0;
|
|
||||||
private int mode = IFilterable.WHITELIST;
|
|
||||||
|
|
||||||
public TileFluidImporter() {
|
|
||||||
dataManager.addWatchedParameter(COMPARE);
|
|
||||||
dataManager.addWatchedParameter(MODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canAddMicroblock(IMicroblock microblock) {
|
|
||||||
return !isBlockingMicroblock(microblock, getDirection());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getEnergyUsage() {
|
|
||||||
return RefinedStorage.INSTANCE.fluidImporterUsage + upgrades.getEnergyUsage();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateNode() {
|
|
||||||
IFluidHandler handler = getFluidHandler(getFacingTile(), getDirection().getOpposite());
|
|
||||||
|
|
||||||
if (handler != null) {
|
|
||||||
FluidStack stack = handler.drain(Fluid.BUCKET_VOLUME, false);
|
|
||||||
|
|
||||||
if (stack != null && IFilterable.canTakeFluids(filters, mode, compare, stack) && network.insertFluid(stack, stack.amount, true) == null) {
|
|
||||||
FluidStack drain = handler.drain(Fluid.BUCKET_VOLUME, true);
|
|
||||||
|
|
||||||
network.insertFluid(drain, drain.amount, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getCompare() {
|
|
||||||
return compare;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setCompare(int compare) {
|
|
||||||
this.compare = compare;
|
|
||||||
|
|
||||||
markDirty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMode() {
|
|
||||||
return mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setMode(int mode) {
|
|
||||||
this.mode = mode;
|
|
||||||
|
|
||||||
markDirty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void read(NBTTagCompound tag) {
|
|
||||||
super.read(tag);
|
|
||||||
|
|
||||||
if (tag.hasKey(NBT_COMPARE)) {
|
|
||||||
compare = tag.getInteger(NBT_COMPARE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tag.hasKey(NBT_MODE)) {
|
|
||||||
mode = tag.getInteger(NBT_MODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
readItems(filters, 0, tag);
|
|
||||||
readItems(upgrades, 1, tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
|
||||||
super.write(tag);
|
|
||||||
|
|
||||||
tag.setInteger(NBT_COMPARE, compare);
|
|
||||||
tag.setInteger(NBT_MODE, mode);
|
|
||||||
|
|
||||||
writeItems(filters, 0, tag);
|
|
||||||
writeItems(upgrades, 1, tag);
|
|
||||||
|
|
||||||
return tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IItemHandler getUpgrades() {
|
|
||||||
return upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IItemHandler getFilters() {
|
|
||||||
return filters;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IItemHandler getDrops() {
|
|
||||||
return upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
|
||||||
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
|
||||||
return (T) upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.getCapability(capability, facing);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
|
|
||||||
return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -5,34 +5,45 @@ import net.minecraft.item.ItemStack;
|
|||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import refinedstorage.RefinedStorage;
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.inventory.ItemHandlerBasic;
|
import refinedstorage.inventory.ItemHandlerBasic;
|
||||||
|
import refinedstorage.inventory.ItemHandlerFluid;
|
||||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||||
import refinedstorage.item.ItemUpgrade;
|
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.data.TileDataParameter;
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
public class TileImporter extends TileMultipartNode implements IComparable, IFilterable {
|
public class TileImporter extends TileMultipartNode implements IComparable, IFilterable, IType {
|
||||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||||
|
public static final TileDataParameter<Integer> TYPE = IType.createParameter();
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
private static final String NBT_MODE = "Mode";
|
private static final String NBT_MODE = "Mode";
|
||||||
|
private static final String NBT_TYPE = "Type";
|
||||||
|
|
||||||
|
private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, this);
|
||||||
|
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, this);
|
||||||
|
|
||||||
private ItemHandlerBasic filters = new ItemHandlerBasic(9, this);
|
|
||||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK);
|
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK);
|
||||||
|
|
||||||
private int compare = 0;
|
private int compare = 0;
|
||||||
private int mode = IFilterable.WHITELIST;
|
private int mode = IFilterable.WHITELIST;
|
||||||
|
private int type = IType.ITEMS;
|
||||||
|
|
||||||
private int currentSlot;
|
private int currentSlot;
|
||||||
|
|
||||||
public TileImporter() {
|
public TileImporter() {
|
||||||
dataManager.addWatchedParameter(COMPARE);
|
dataManager.addWatchedParameter(COMPARE);
|
||||||
dataManager.addWatchedParameter(MODE);
|
dataManager.addWatchedParameter(MODE);
|
||||||
|
dataManager.addWatchedParameter(TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -47,6 +58,7 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateNode() {
|
public void updateNode() {
|
||||||
|
if (type == IType.ITEMS) {
|
||||||
IItemHandler handler = getItemHandler(getFacingTile(), getDirection().getOpposite());
|
IItemHandler handler = getItemHandler(getFacingTile(), getDirection().getOpposite());
|
||||||
|
|
||||||
if (getFacingTile() instanceof TileDiskDrive || handler == null) {
|
if (getFacingTile() instanceof TileDiskDrive || handler == null) {
|
||||||
@@ -60,7 +72,7 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil
|
|||||||
if (handler.getSlots() > 0) {
|
if (handler.getSlots() > 0) {
|
||||||
ItemStack stack = handler.getStackInSlot(currentSlot);
|
ItemStack stack = handler.getStackInSlot(currentSlot);
|
||||||
|
|
||||||
if (stack == null || !IFilterable.canTake(filters, mode, compare, stack)) {
|
if (stack == null || !IFilterable.canTake(itemFilters, mode, compare, stack)) {
|
||||||
currentSlot++;
|
currentSlot++;
|
||||||
} else if (ticks % upgrades.getSpeed() == 0) {
|
} else if (ticks % upgrades.getSpeed() == 0) {
|
||||||
int quantity = upgrades.hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1;
|
int quantity = upgrades.hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1;
|
||||||
@@ -76,6 +88,19 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (type == IType.FLUIDS && ticks % upgrades.getSpeed() == 0) {
|
||||||
|
IFluidHandler handler = getFluidHandler(getFacingTile(), getDirection().getOpposite());
|
||||||
|
|
||||||
|
if (handler != null) {
|
||||||
|
FluidStack stack = handler.drain(Fluid.BUCKET_VOLUME, false);
|
||||||
|
|
||||||
|
if (stack != null && IFilterable.canTakeFluids(fluidFilters, mode, compare, stack) && network.insertFluid(stack, stack.amount, true) == null) {
|
||||||
|
FluidStack drain = handler.drain(Fluid.BUCKET_VOLUME, true);
|
||||||
|
|
||||||
|
network.insertFluid(drain, drain.amount, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -114,8 +139,13 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil
|
|||||||
mode = tag.getInteger(NBT_MODE);
|
mode = tag.getInteger(NBT_MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
readItems(filters, 0, tag);
|
if (tag.hasKey(NBT_TYPE)) {
|
||||||
|
type = tag.getInteger(NBT_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
readItems(itemFilters, 0, tag);
|
||||||
readItems(upgrades, 1, tag);
|
readItems(upgrades, 1, tag);
|
||||||
|
readItems(fluidFilters, 2, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -124,9 +154,11 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil
|
|||||||
|
|
||||||
tag.setInteger(NBT_COMPARE, compare);
|
tag.setInteger(NBT_COMPARE, compare);
|
||||||
tag.setInteger(NBT_MODE, mode);
|
tag.setInteger(NBT_MODE, mode);
|
||||||
|
tag.setInteger(NBT_TYPE, type);
|
||||||
|
|
||||||
writeItems(filters, 0, tag);
|
writeItems(itemFilters, 0, tag);
|
||||||
writeItems(upgrades, 1, tag);
|
writeItems(upgrades, 1, tag);
|
||||||
|
writeItems(fluidFilters, 2, tag);
|
||||||
|
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
@@ -135,15 +167,28 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil
|
|||||||
return upgrades;
|
return upgrades;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IItemHandler getFilters() {
|
|
||||||
return filters;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IItemHandler getDrops() {
|
public IItemHandler getDrops() {
|
||||||
return upgrades;
|
return upgrades;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() {
|
||||||
|
return worldObj.isRemote ? TYPE.getValue() : type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setType(int type) {
|
||||||
|
this.type = type;
|
||||||
|
|
||||||
|
markDirty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IItemHandler getFilterInventory() {
|
||||||
|
return getType() == IType.ITEMS ? itemFilters : fluidFilters;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
||||||
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||||
|
|||||||
40
src/main/java/refinedstorage/tile/config/IType.java
Executable file
40
src/main/java/refinedstorage/tile/config/IType.java
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
package refinedstorage.tile.config;
|
||||||
|
|
||||||
|
import net.minecraft.network.datasync.DataSerializers;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
import refinedstorage.container.ContainerBase;
|
||||||
|
import refinedstorage.tile.data.ITileDataConsumer;
|
||||||
|
import refinedstorage.tile.data.ITileDataProducer;
|
||||||
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
|
public interface IType {
|
||||||
|
int ITEMS = 0;
|
||||||
|
int FLUIDS = 1;
|
||||||
|
|
||||||
|
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
||||||
|
return new TileDataParameter<>(DataSerializers.VARINT, ITEMS, new ITileDataProducer<Integer, T>() {
|
||||||
|
@Override
|
||||||
|
public Integer getValue(T tile) {
|
||||||
|
return ((IType) tile).getType();
|
||||||
|
}
|
||||||
|
}, new ITileDataConsumer<Integer, T>() {
|
||||||
|
@Override
|
||||||
|
public void setValue(T tile, Integer value) {
|
||||||
|
if (value == 0 || value == 1) {
|
||||||
|
((IType) tile).setType(value);
|
||||||
|
|
||||||
|
tile.getWorld().playerEntities.stream()
|
||||||
|
.filter(p -> p.openContainer instanceof ContainerBase && ((ContainerBase) p.openContainer).getTile().getPos().equals(tile.getPos()))
|
||||||
|
.forEach(p -> p.openContainer.detectAndSendChanges());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
int getType();
|
||||||
|
|
||||||
|
void setType(int type);
|
||||||
|
|
||||||
|
IItemHandler getFilterInventory();
|
||||||
|
}
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
{
|
|
||||||
"forge_marker": 1,
|
|
||||||
"defaults": {
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/cable",
|
|
||||||
"particle": "refinedstorage:blocks/cable",
|
|
||||||
"front": "refinedstorage:blocks/fluid_constructor",
|
|
||||||
"line": "refinedstorage:blocks/cable_part"
|
|
||||||
},
|
|
||||||
"model": "refinedstorage:cable_core",
|
|
||||||
"uvlock": true
|
|
||||||
},
|
|
||||||
"variants": {
|
|
||||||
"inventory": [
|
|
||||||
{
|
|
||||||
"model": "refinedstorage:constructor_destructor",
|
|
||||||
"transform": "forge:default-block"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"direction": {
|
|
||||||
"north": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_north"
|
|
||||||
},
|
|
||||||
"east": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_east"
|
|
||||||
},
|
|
||||||
"south": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_south"
|
|
||||||
},
|
|
||||||
"west": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_west"
|
|
||||||
},
|
|
||||||
"up": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_up"
|
|
||||||
},
|
|
||||||
"down": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_down"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"north": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_north"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"east": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_east"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"south": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_south"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"west": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_west"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"up": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_up"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"down": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_down"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
{
|
|
||||||
"forge_marker": 1,
|
|
||||||
"defaults": {
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/cable",
|
|
||||||
"particle": "refinedstorage:blocks/cable",
|
|
||||||
"front": "refinedstorage:blocks/fluid_destructor",
|
|
||||||
"line": "refinedstorage:blocks/cable_part"
|
|
||||||
},
|
|
||||||
"model": "refinedstorage:cable_core",
|
|
||||||
"uvlock": true
|
|
||||||
},
|
|
||||||
"variants": {
|
|
||||||
"inventory": [
|
|
||||||
{
|
|
||||||
"model": "refinedstorage:constructor_destructor",
|
|
||||||
"transform": "forge:default-block"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"direction": {
|
|
||||||
"north": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_north"
|
|
||||||
},
|
|
||||||
"east": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_east"
|
|
||||||
},
|
|
||||||
"south": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_south"
|
|
||||||
},
|
|
||||||
"west": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_west"
|
|
||||||
},
|
|
||||||
"up": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_up"
|
|
||||||
},
|
|
||||||
"down": {
|
|
||||||
"submodel": "refinedstorage:constructor_destructor_down"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"north": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_north"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"east": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_east"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"south": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_south"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"west": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_west"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"up": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_up"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"down": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_down"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
{
|
|
||||||
"forge_marker": 1,
|
|
||||||
"defaults": {
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/cable",
|
|
||||||
"particle": "refinedstorage:blocks/cable",
|
|
||||||
"line": "refinedstorage:blocks/cable_part"
|
|
||||||
},
|
|
||||||
"model": "refinedstorage:cable_core",
|
|
||||||
"uvlock": true
|
|
||||||
},
|
|
||||||
"variants": {
|
|
||||||
"inventory": [
|
|
||||||
{
|
|
||||||
"model": "refinedstorage:importer",
|
|
||||||
"transform": "forge:default-block"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"direction": {
|
|
||||||
"north": {
|
|
||||||
"submodel": "refinedstorage:importer_north"
|
|
||||||
},
|
|
||||||
"east": {
|
|
||||||
"submodel": "refinedstorage:importer_east"
|
|
||||||
},
|
|
||||||
"south": {
|
|
||||||
"submodel": "refinedstorage:importer_south"
|
|
||||||
},
|
|
||||||
"west": {
|
|
||||||
"submodel": "refinedstorage:importer_west"
|
|
||||||
},
|
|
||||||
"up": {
|
|
||||||
"submodel": "refinedstorage:importer_up"
|
|
||||||
},
|
|
||||||
"down": {
|
|
||||||
"submodel": "refinedstorage:importer_down"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"north": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_north"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"east": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_east"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"south": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_south"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"west": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_west"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"up": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_up"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"down": {
|
|
||||||
"true": {
|
|
||||||
"submodel": "refinedstorage:cable_down"
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -40,9 +40,6 @@ gui.refinedstorage:network_transmitter.dimension=Dimension %d
|
|||||||
gui.refinedstorage:network_transmitter.missing_card=Missing Network Card
|
gui.refinedstorage:network_transmitter.missing_card=Missing Network Card
|
||||||
gui.refinedstorage:network_transmitter.missing_upgrade=Insert upgrade
|
gui.refinedstorage:network_transmitter.missing_upgrade=Insert upgrade
|
||||||
gui.refinedstorage:fluid_disk_drive=Fluid Disk Drive
|
gui.refinedstorage:fluid_disk_drive=Fluid Disk Drive
|
||||||
gui.refinedstorage:fluid_constructor=Fluid Constructor
|
|
||||||
gui.refinedstorage:fluid_destructor=Fluid Destructor
|
|
||||||
gui.refinedstorage:fluid_importer=Fluid Importer
|
|
||||||
|
|
||||||
misc.refinedstorage:energy_stored=%d / %d RS
|
misc.refinedstorage:energy_stored=%d / %d RS
|
||||||
misc.refinedstorage:energy_usage=Usage: %d RS/t
|
misc.refinedstorage:energy_usage=Usage: %d RS/t
|
||||||
@@ -96,6 +93,10 @@ sidebutton.refinedstorage:mode=Mode
|
|||||||
sidebutton.refinedstorage:mode.whitelist=Whitelist
|
sidebutton.refinedstorage:mode.whitelist=Whitelist
|
||||||
sidebutton.refinedstorage:mode.blacklist=Blacklist
|
sidebutton.refinedstorage:mode.blacklist=Blacklist
|
||||||
|
|
||||||
|
sidebutton.refinedstorage:type=Type
|
||||||
|
sidebutton.refinedstorage:type.0=Items
|
||||||
|
sidebutton.refinedstorage:type.1=Fluids
|
||||||
|
|
||||||
sidebutton.refinedstorage:detector.mode=Mode
|
sidebutton.refinedstorage:detector.mode=Mode
|
||||||
sidebutton.refinedstorage:detector.mode.0=Emit signal when under the amount
|
sidebutton.refinedstorage:detector.mode.0=Emit signal when under the amount
|
||||||
sidebutton.refinedstorage:detector.mode.1=Emit signal when on the amount
|
sidebutton.refinedstorage:detector.mode.1=Emit signal when on the amount
|
||||||
@@ -131,9 +132,6 @@ block.refinedstorage:processing_pattern_encoder.name=Processing Pattern Encoder
|
|||||||
block.refinedstorage:network_receiver.name=Network Receiver
|
block.refinedstorage:network_receiver.name=Network Receiver
|
||||||
block.refinedstorage:network_transmitter.name=Network Transmitter
|
block.refinedstorage:network_transmitter.name=Network Transmitter
|
||||||
block.refinedstorage:fluid_disk_drive.name=Fluid Disk Drive
|
block.refinedstorage:fluid_disk_drive.name=Fluid Disk Drive
|
||||||
block.refinedstorage:fluid_constructor.name=Fluid Constructor
|
|
||||||
block.refinedstorage:fluid_destructor.name=Fluid Destructor
|
|
||||||
block.refinedstorage:fluid_importer.name=Fluid Importer
|
|
||||||
|
|
||||||
item.refinedstorage:storage_disk.0.name=1k Storage Disk
|
item.refinedstorage:storage_disk.0.name=1k Storage Disk
|
||||||
item.refinedstorage:storage_disk.1.name=4k Storage Disk
|
item.refinedstorage:storage_disk.1.name=4k Storage Disk
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 711 B |
Binary file not shown.
|
Before Width: | Height: | Size: 638 B |
Reference in New Issue
Block a user