Re-add the Fluid Storage Block
This commit is contained in:
@@ -8,10 +8,7 @@ import com.raoulvdberge.refinedstorage.render.BakedModelOverrideRegistry;
|
|||||||
import com.raoulvdberge.refinedstorage.render.model.baked.DiskDriveBakedModel;
|
import com.raoulvdberge.refinedstorage.render.model.baked.DiskDriveBakedModel;
|
||||||
import com.raoulvdberge.refinedstorage.render.model.baked.FullbrightBakedModel;
|
import com.raoulvdberge.refinedstorage.render.model.baked.FullbrightBakedModel;
|
||||||
import com.raoulvdberge.refinedstorage.render.model.baked.PatternBakedModel;
|
import com.raoulvdberge.refinedstorage.render.model.baked.PatternBakedModel;
|
||||||
import com.raoulvdberge.refinedstorage.screen.ControllerScreen;
|
import com.raoulvdberge.refinedstorage.screen.*;
|
||||||
import com.raoulvdberge.refinedstorage.screen.DiskDriveScreen;
|
|
||||||
import com.raoulvdberge.refinedstorage.screen.FilterScreen;
|
|
||||||
import com.raoulvdberge.refinedstorage.screen.StorageBlockScreen;
|
|
||||||
import com.raoulvdberge.refinedstorage.screen.factory.GridScreenFactory;
|
import com.raoulvdberge.refinedstorage.screen.factory.GridScreenFactory;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.ScreenManager;
|
import net.minecraft.client.gui.ScreenManager;
|
||||||
@@ -121,6 +118,7 @@ public class ClientSetup {
|
|||||||
ScreenManager.registerFactory(RSContainers.DISK_DRIVE, DiskDriveScreen::new);
|
ScreenManager.registerFactory(RSContainers.DISK_DRIVE, DiskDriveScreen::new);
|
||||||
ScreenManager.registerFactory(RSContainers.GRID, new GridScreenFactory());
|
ScreenManager.registerFactory(RSContainers.GRID, new GridScreenFactory());
|
||||||
ScreenManager.registerFactory(RSContainers.STORAGE_BLOCK, StorageBlockScreen::new);
|
ScreenManager.registerFactory(RSContainers.STORAGE_BLOCK, StorageBlockScreen::new);
|
||||||
|
ScreenManager.registerFactory(RSContainers.FLUID_STORAGE_BLOCK, FluidStorageBlockScreen::new);
|
||||||
|
|
||||||
ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR);
|
ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR);
|
||||||
ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX);
|
ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX);
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.CableNetworkNode;
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.DiskDriveNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.DiskDriveNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.FluidStorageNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.StorageNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.StorageNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType;
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.ItemStorageType;
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.ItemStorageType;
|
||||||
@@ -18,14 +19,12 @@ import com.raoulvdberge.refinedstorage.block.*;
|
|||||||
import com.raoulvdberge.refinedstorage.capability.NetworkNodeProxyCapability;
|
import com.raoulvdberge.refinedstorage.capability.NetworkNodeProxyCapability;
|
||||||
import com.raoulvdberge.refinedstorage.config.ClientConfig;
|
import com.raoulvdberge.refinedstorage.config.ClientConfig;
|
||||||
import com.raoulvdberge.refinedstorage.config.ServerConfig;
|
import com.raoulvdberge.refinedstorage.config.ServerConfig;
|
||||||
import com.raoulvdberge.refinedstorage.container.ControllerContainer;
|
import com.raoulvdberge.refinedstorage.container.*;
|
||||||
import com.raoulvdberge.refinedstorage.container.DiskDriveContainer;
|
|
||||||
import com.raoulvdberge.refinedstorage.container.FilterContainer;
|
|
||||||
import com.raoulvdberge.refinedstorage.container.StorageContainer;
|
|
||||||
import com.raoulvdberge.refinedstorage.container.factory.GridContainerFactory;
|
import com.raoulvdberge.refinedstorage.container.factory.GridContainerFactory;
|
||||||
import com.raoulvdberge.refinedstorage.container.factory.PositionalTileContainerFactory;
|
import com.raoulvdberge.refinedstorage.container.factory.PositionalTileContainerFactory;
|
||||||
import com.raoulvdberge.refinedstorage.item.*;
|
import com.raoulvdberge.refinedstorage.item.*;
|
||||||
import com.raoulvdberge.refinedstorage.item.blockitem.ControllerBlockItem;
|
import com.raoulvdberge.refinedstorage.item.blockitem.ControllerBlockItem;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.blockitem.FluidStorageBlockItem;
|
||||||
import com.raoulvdberge.refinedstorage.item.blockitem.StorageBlockItem;
|
import com.raoulvdberge.refinedstorage.item.blockitem.StorageBlockItem;
|
||||||
import com.raoulvdberge.refinedstorage.item.group.MainItemGroup;
|
import com.raoulvdberge.refinedstorage.item.group.MainItemGroup;
|
||||||
import com.raoulvdberge.refinedstorage.loottable.StorageBlockLootFunctionSerializer;
|
import com.raoulvdberge.refinedstorage.loottable.StorageBlockLootFunctionSerializer;
|
||||||
@@ -106,6 +105,12 @@ public final class RS {
|
|||||||
API.instance().getNetworkNodeRegistry().add(StorageNetworkNode.SIXTY_FOUR_K_STORAGE_BLOCK_ID, (tag, world, pos) -> readAndReturn(tag, new StorageNetworkNode(world, pos, ItemStorageType.SIXTY_FOUR_K)));
|
API.instance().getNetworkNodeRegistry().add(StorageNetworkNode.SIXTY_FOUR_K_STORAGE_BLOCK_ID, (tag, world, pos) -> readAndReturn(tag, new StorageNetworkNode(world, pos, ItemStorageType.SIXTY_FOUR_K)));
|
||||||
API.instance().getNetworkNodeRegistry().add(StorageNetworkNode.CREATIVE_STORAGE_BLOCK_ID, (tag, world, pos) -> readAndReturn(tag, new StorageNetworkNode(world, pos, ItemStorageType.CREATIVE)));
|
API.instance().getNetworkNodeRegistry().add(StorageNetworkNode.CREATIVE_STORAGE_BLOCK_ID, (tag, world, pos) -> readAndReturn(tag, new StorageNetworkNode(world, pos, ItemStorageType.CREATIVE)));
|
||||||
|
|
||||||
|
API.instance().getNetworkNodeRegistry().add(FluidStorageNetworkNode.SIXTY_FOUR_K_FLUID_STORAGE_BLOCK_ID, (tag, world, pos) -> readAndReturn(tag, new FluidStorageNetworkNode(world, pos, FluidStorageType.SIXTY_FOUR_K)));
|
||||||
|
API.instance().getNetworkNodeRegistry().add(FluidStorageNetworkNode.TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK_ID, (tag, world, pos) -> readAndReturn(tag, new FluidStorageNetworkNode(world, pos, FluidStorageType.TWO_HUNDRED_FIFTY_SIX_K)));
|
||||||
|
API.instance().getNetworkNodeRegistry().add(FluidStorageNetworkNode.THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK_ID, (tag, world, pos) -> readAndReturn(tag, new FluidStorageNetworkNode(world, pos, FluidStorageType.THOUSAND_TWENTY_FOUR_K)));
|
||||||
|
API.instance().getNetworkNodeRegistry().add(FluidStorageNetworkNode.FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK_ID, (tag, world, pos) -> readAndReturn(tag, new FluidStorageNetworkNode(world, pos, FluidStorageType.FOUR_THOUSAND_NINETY_SIX_K)));
|
||||||
|
API.instance().getNetworkNodeRegistry().add(FluidStorageNetworkNode.CREATIVE_FLUID_STORAGE_BLOCK_ID, (tag, world, pos) -> readAndReturn(tag, new FluidStorageNetworkNode(world, pos, FluidStorageType.CREATIVE)));
|
||||||
|
|
||||||
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
||||||
|
|
||||||
LootFunctionManager.registerFunction(new StorageBlockLootFunctionSerializer());
|
LootFunctionManager.registerFunction(new StorageBlockLootFunctionSerializer());
|
||||||
@@ -135,11 +140,13 @@ public final class RS {
|
|||||||
e.getRegistry().register(new GridBlock(GridType.PATTERN));
|
e.getRegistry().register(new GridBlock(GridType.PATTERN));
|
||||||
e.getRegistry().register(new GridBlock(GridType.FLUID));
|
e.getRegistry().register(new GridBlock(GridType.FLUID));
|
||||||
|
|
||||||
e.getRegistry().register(new StorageBlock(ItemStorageType.ONE_K));
|
for (ItemStorageType type : ItemStorageType.values()) {
|
||||||
e.getRegistry().register(new StorageBlock(ItemStorageType.FOUR_K));
|
e.getRegistry().register(new StorageBlock(type));
|
||||||
e.getRegistry().register(new StorageBlock(ItemStorageType.SIXTEEN_K));
|
}
|
||||||
e.getRegistry().register(new StorageBlock(ItemStorageType.SIXTY_FOUR_K));
|
|
||||||
e.getRegistry().register(new StorageBlock(ItemStorageType.CREATIVE));
|
for (FluidStorageType type : FluidStorageType.values()) {
|
||||||
|
e.getRegistry().register(new FluidStorageBlock(type));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -158,6 +165,12 @@ public final class RS {
|
|||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new StorageTile(ItemStorageType.SIXTEEN_K), RSBlocks.SIXTEEN_K_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "16k_storage_block")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new StorageTile(ItemStorageType.SIXTEEN_K), RSBlocks.SIXTEEN_K_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "16k_storage_block")));
|
||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new StorageTile(ItemStorageType.SIXTY_FOUR_K), RSBlocks.SIXTY_FOUR_K_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "64k_storage_block")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new StorageTile(ItemStorageType.SIXTY_FOUR_K), RSBlocks.SIXTY_FOUR_K_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "64k_storage_block")));
|
||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new StorageTile(ItemStorageType.CREATIVE), RSBlocks.CREATIVE_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "creative_storage_block")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new StorageTile(ItemStorageType.CREATIVE), RSBlocks.CREATIVE_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "creative_storage_block")));
|
||||||
|
|
||||||
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new FluidStorageTile(FluidStorageType.SIXTY_FOUR_K), RSBlocks.SIXTY_FOUR_K_FLUID_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "64k_fluid_storage_block")));
|
||||||
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new FluidStorageTile(FluidStorageType.TWO_HUNDRED_FIFTY_SIX_K), RSBlocks.TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "256k_fluid_storage_block")));
|
||||||
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new FluidStorageTile(FluidStorageType.THOUSAND_TWENTY_FOUR_K), RSBlocks.THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "1024k_fluid_storage_block")));
|
||||||
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new FluidStorageTile(FluidStorageType.FOUR_THOUSAND_NINETY_SIX_K), RSBlocks.FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "4096k_fluid_storage_block")));
|
||||||
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(() -> new FluidStorageTile(FluidStorageType.CREATIVE), RSBlocks.CREATIVE_FLUID_STORAGE_BLOCK).build(null).setRegistryName(RS.ID, "creative_fluid_storage_block")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) {
|
private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) {
|
||||||
@@ -175,6 +188,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<DiskDriveContainer, DiskDriveTile>((windowId, inv, tile) -> new DiskDriveContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "disk_drive"));
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<DiskDriveContainer, DiskDriveTile>((windowId, inv, tile) -> new DiskDriveContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "disk_drive"));
|
||||||
e.getRegistry().register(IForgeContainerType.create(new GridContainerFactory()).setRegistryName(RS.ID, "grid"));
|
e.getRegistry().register(IForgeContainerType.create(new GridContainerFactory()).setRegistryName(RS.ID, "grid"));
|
||||||
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<StorageContainer, StorageTile>((windowId, inv, tile) -> new StorageContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "storage_block"));
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<StorageContainer, StorageTile>((windowId, inv, tile) -> new StorageContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "storage_block"));
|
||||||
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<FluidStorageContainer, FluidStorageTile>((windowId, inv, tile) -> new FluidStorageContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "fluid_storage_block"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -236,6 +250,12 @@ public final class RS {
|
|||||||
e.getRegistry().register(new StorageBlockItem(RSBlocks.SIXTEEN_K_STORAGE_BLOCK));
|
e.getRegistry().register(new StorageBlockItem(RSBlocks.SIXTEEN_K_STORAGE_BLOCK));
|
||||||
e.getRegistry().register(new StorageBlockItem(RSBlocks.SIXTY_FOUR_K_STORAGE_BLOCK));
|
e.getRegistry().register(new StorageBlockItem(RSBlocks.SIXTY_FOUR_K_STORAGE_BLOCK));
|
||||||
e.getRegistry().register(new StorageBlockItem(RSBlocks.CREATIVE_STORAGE_BLOCK));
|
e.getRegistry().register(new StorageBlockItem(RSBlocks.CREATIVE_STORAGE_BLOCK));
|
||||||
|
|
||||||
|
e.getRegistry().register(new FluidStorageBlockItem(RSBlocks.SIXTY_FOUR_K_FLUID_STORAGE_BLOCK));
|
||||||
|
e.getRegistry().register(new FluidStorageBlockItem(RSBlocks.TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK));
|
||||||
|
e.getRegistry().register(new FluidStorageBlockItem(RSBlocks.THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK));
|
||||||
|
e.getRegistry().register(new FluidStorageBlockItem(RSBlocks.FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK));
|
||||||
|
e.getRegistry().register(new FluidStorageBlockItem(RSBlocks.CREATIVE_FLUID_STORAGE_BLOCK));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO
|
/* TODO
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public final class RSBlocks {
|
|||||||
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 BlockFluidInterface FLUID_INTERFACE = new BlockFluidInterface();
|
public static final BlockFluidInterface FLUID_INTERFACE = new BlockFluidInterface();
|
||||||
public static final BlockFluidStorage FLUID_STORAGE = new BlockFluidStorage();
|
|
||||||
public static final BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator();
|
public static final BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator();
|
||||||
public static final BlockReader READER = new BlockReader();
|
public static final BlockReader READER = new BlockReader();
|
||||||
public static final BlockWriter WRITER = new BlockWriter();
|
public static final BlockWriter WRITER = new BlockWriter();
|
||||||
@@ -61,6 +60,17 @@ public final class RSBlocks {
|
|||||||
@ObjectHolder(RS.ID + ":creative_storage_block")
|
@ObjectHolder(RS.ID + ":creative_storage_block")
|
||||||
public static final StorageBlock CREATIVE_STORAGE_BLOCK = null;
|
public static final StorageBlock CREATIVE_STORAGE_BLOCK = null;
|
||||||
|
|
||||||
|
@ObjectHolder(RS.ID + ":64k_fluid_storage_block")
|
||||||
|
public static final FluidStorageBlock SIXTY_FOUR_K_FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":256k_fluid_storage_block")
|
||||||
|
public static final FluidStorageBlock TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":1024k_fluid_storage_block")
|
||||||
|
public static final FluidStorageBlock THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":4096k_fluid_storage_block")
|
||||||
|
public static final FluidStorageBlock FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":creative_fluid_storage_block")
|
||||||
|
public static final FluidStorageBlock CREATIVE_FLUID_STORAGE_BLOCK = null;
|
||||||
|
|
||||||
public static final BlockStorageMonitor STORAGE_MONITOR = new BlockStorageMonitor();
|
public static final BlockStorageMonitor STORAGE_MONITOR = new BlockStorageMonitor();
|
||||||
public static final BlockPortableGrid PORTABLE_GRID = new BlockPortableGrid();
|
public static final BlockPortableGrid PORTABLE_GRID = new BlockPortableGrid();
|
||||||
public static final BlockCrafterManager CRAFTER_MANAGER = new BlockCrafterManager();
|
public static final BlockCrafterManager CRAFTER_MANAGER = new BlockCrafterManager();
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ public final class RSContainers {
|
|||||||
@ObjectHolder(RS.ID + ":controller")
|
@ObjectHolder(RS.ID + ":controller")
|
||||||
public static final ContainerType<ControllerContainer> CONTROLLER = null;
|
public static final ContainerType<ControllerContainer> CONTROLLER = null;
|
||||||
|
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":grid")
|
@ObjectHolder(RS.ID + ":grid")
|
||||||
public static final ContainerType<GridContainer> GRID = null;
|
public static final ContainerType<GridContainer> GRID = null;
|
||||||
|
|
||||||
@@ -38,8 +37,6 @@ public final class RSContainers {
|
|||||||
|
|
||||||
//@ObjectHolder(RS.ID + ":fluid_interface")
|
//@ObjectHolder(RS.ID + ":fluid_interface")
|
||||||
public static final ContainerType<FluidInterfaceContainer> FLUID_INTERFACE = null;
|
public static final ContainerType<FluidInterfaceContainer> FLUID_INTERFACE = null;
|
||||||
//@ObjectHolder(RS.ID + ":fluid_storage")
|
|
||||||
public static final ContainerType<FluidInterfaceContainer> FLUID_STORAGE = null;
|
|
||||||
//@ObjectHolder(RS.ID + ":importer")
|
//@ObjectHolder(RS.ID + ":importer")
|
||||||
public static final ContainerType<ImporterContainer> IMPORTER = null;
|
public static final ContainerType<ImporterContainer> IMPORTER = null;
|
||||||
//@ObjectHolder(RS.ID + ":interface")
|
//@ObjectHolder(RS.ID + ":interface")
|
||||||
@@ -58,6 +55,8 @@ public final class RSContainers {
|
|||||||
|
|
||||||
@ObjectHolder(RS.ID + ":storage_block")
|
@ObjectHolder(RS.ID + ":storage_block")
|
||||||
public static final ContainerType<StorageContainer> STORAGE_BLOCK = null;
|
public static final ContainerType<StorageContainer> STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":fluid_storage_block")
|
||||||
|
public static final ContainerType<FluidStorageContainer> FLUID_STORAGE_BLOCK = null;
|
||||||
|
|
||||||
//@ObjectHolder(RS.ID + ":storage_monitor")
|
//@ObjectHolder(RS.ID + ":storage_monitor")
|
||||||
public static final ContainerType<StorageMonitorContainer> STORAGE_MONITOR = null;
|
public static final ContainerType<StorageMonitorContainer> STORAGE_MONITOR = null;
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ public class RSOldConfig {
|
|||||||
public int interfaceUsage;
|
public int interfaceUsage;
|
||||||
public int fluidInterfaceUsage;
|
public int fluidInterfaceUsage;
|
||||||
public int relayUsage;
|
public int relayUsage;
|
||||||
public int storageUsage;
|
|
||||||
public int fluidStorageUsage;
|
|
||||||
public int wirelessTransmitterUsage;
|
public int wirelessTransmitterUsage;
|
||||||
public int networkTransmitterUsage;
|
public int networkTransmitterUsage;
|
||||||
public int networkReceiverUsage;
|
public int networkReceiverUsage;
|
||||||
@@ -105,8 +103,6 @@ public class RSOldConfig {
|
|||||||
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");
|
||||||
fluidInterfaceUsage = config.getInt("fluidInterface", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Fluid Interfaces");
|
fluidInterfaceUsage = config.getInt("fluidInterface", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Fluid 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");
|
||||||
storageUsage = config.getInt("storage", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Storage Blocks");
|
|
||||||
fluidStorageUsage = config.getInt("fluidStorage", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Fluid Storage Blocks");
|
|
||||||
wirelessTransmitterUsage = config.getInt("wirelessTransmitter", ENERGY, 8, 0, Integer.MAX_VALUE, "The energy used by Wireless Transmitters");
|
wirelessTransmitterUsage = config.getInt("wirelessTransmitter", ENERGY, 8, 0, Integer.MAX_VALUE, "The energy used by Wireless Transmitters");
|
||||||
networkTransmitterUsage = config.getInt("networkTransmitter", ENERGY, 64, 0, Integer.MAX_VALUE, "The energy used by Network Transmitters");
|
networkTransmitterUsage = config.getInt("networkTransmitter", ENERGY, 64, 0, Integer.MAX_VALUE, "The energy used by Network Transmitters");
|
||||||
networkReceiverUsage = config.getInt("networkReceiver", ENERGY, 0, 0, Integer.MAX_VALUE, "The energy used by Network Receivers");
|
networkReceiverUsage = config.getInt("networkReceiver", ENERGY, 0, 0, Integer.MAX_VALUE, "The energy used by Network Receivers");
|
||||||
|
|||||||
@@ -39,8 +39,6 @@ public class RSTiles {
|
|||||||
public static final TileEntityType<TileExternalStorage> EXTERNAL_STORAGE = null;
|
public static final TileEntityType<TileExternalStorage> EXTERNAL_STORAGE = null;
|
||||||
//@ObjectHolder(RS.ID + ":fluid_interface")
|
//@ObjectHolder(RS.ID + ":fluid_interface")
|
||||||
public static final TileEntityType<TileFluidInterface> FLUID_INTERFACE = null;
|
public static final TileEntityType<TileFluidInterface> FLUID_INTERFACE = null;
|
||||||
//@ObjectHolder(RS.ID + ":fluid_storage")
|
|
||||||
public static final TileEntityType<TileFluidInterface> FLUID_STORAGE = null;
|
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":grid")
|
@ObjectHolder(RS.ID + ":grid")
|
||||||
public static final TileEntityType<GridTile> GRID = null;
|
public static final TileEntityType<GridTile> GRID = null;
|
||||||
@@ -86,6 +84,17 @@ public class RSTiles {
|
|||||||
@ObjectHolder(RS.ID + ":creative_storage_block")
|
@ObjectHolder(RS.ID + ":creative_storage_block")
|
||||||
public static final TileEntityType<StorageTile> CREATIVE_STORAGE_BLOCK = null;
|
public static final TileEntityType<StorageTile> CREATIVE_STORAGE_BLOCK = null;
|
||||||
|
|
||||||
|
@ObjectHolder(RS.ID + ":64k_fluid_storage_block")
|
||||||
|
public static final TileEntityType<FluidStorageTile> SIXTY_FOUR_K_FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":256k_fluid_storage_block")
|
||||||
|
public static final TileEntityType<FluidStorageTile> TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":1024k_fluid_storage_block")
|
||||||
|
public static final TileEntityType<FluidStorageTile> THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":4096k_fluid_storage_block")
|
||||||
|
public static final TileEntityType<FluidStorageTile> FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":creative_fluid_storage_block")
|
||||||
|
public static final TileEntityType<FluidStorageTile> CREATIVE_FLUID_STORAGE_BLOCK = null;
|
||||||
|
|
||||||
//@ObjectHolder(RS.ID + ":portable_grid")
|
//@ObjectHolder(RS.ID + ":portable_grid")
|
||||||
public static final TileEntityType<TilePortableGrid> PORTABLE_GRID = null;
|
public static final TileEntityType<TilePortableGrid> PORTABLE_GRID = null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.apiimpl.network.node.storage;
|
package com.raoulvdberge.refinedstorage.apiimpl.network.node.storage;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
|
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
|
||||||
@@ -12,19 +11,18 @@ import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IStorageScreen;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IStorageScreen;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.cache.FluidStorageCache;
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.cache.FluidStorageCache;
|
||||||
import com.raoulvdberge.refinedstorage.block.BlockFluidStorage;
|
|
||||||
import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType;
|
|
||||||
import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventory;
|
import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventory;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.listener.NetworkNodeListener;
|
import com.raoulvdberge.refinedstorage.inventory.listener.NetworkNodeListener;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileFluidStorage;
|
import com.raoulvdberge.refinedstorage.tile.FluidStorageTile;
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IAccessType;
|
import com.raoulvdberge.refinedstorage.tile.config.IAccessType;
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
|
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IPrioritizable;
|
import com.raoulvdberge.refinedstorage.tile.config.IPrioritizable;
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IWhitelistBlacklist;
|
import com.raoulvdberge.refinedstorage.tile.config.IWhitelistBlacklist;
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
import com.raoulvdberge.refinedstorage.util.AccessTypeUtils;
|
import com.raoulvdberge.refinedstorage.util.AccessTypeUtils;
|
||||||
import net.minecraft.block.BlockState;
|
import com.raoulvdberge.refinedstorage.util.FluidStorageBlockUtils;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
@@ -38,8 +36,12 @@ import net.minecraftforge.fluids.FluidStack;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class NetworkNodeFluidStorage extends NetworkNode implements IStorageScreen, IStorageProvider, IComparable, IWhitelistBlacklist, IPrioritizable, IAccessType, IStorageDiskContainerContext {
|
public class FluidStorageNetworkNode extends NetworkNode implements IStorageScreen, IStorageProvider, IComparable, IWhitelistBlacklist, IPrioritizable, IAccessType, IStorageDiskContainerContext {
|
||||||
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "fluid_storage");
|
public static final ResourceLocation SIXTY_FOUR_K_FLUID_STORAGE_BLOCK_ID = new ResourceLocation(RS.ID, "64k_fluid_storage_block");
|
||||||
|
public static final ResourceLocation TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK_ID = new ResourceLocation(RS.ID, "256k_fluid_storage_block");
|
||||||
|
public static final ResourceLocation THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK_ID = new ResourceLocation(RS.ID, "1024k_fluid_storage_block");
|
||||||
|
public static final ResourceLocation FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK_ID = new ResourceLocation(RS.ID, "4096k_fluid_storage_block");
|
||||||
|
public static final ResourceLocation CREATIVE_FLUID_STORAGE_BLOCK_ID = new ResourceLocation(RS.ID, "creative_fluid_storage_block");
|
||||||
|
|
||||||
private static final String NBT_PRIORITY = "Priority";
|
private static final String NBT_PRIORITY = "Priority";
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
@@ -59,13 +61,28 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IStorageScre
|
|||||||
private UUID storageId = UUID.randomUUID();
|
private UUID storageId = UUID.randomUUID();
|
||||||
private IStorageDisk<FluidStack> storage;
|
private IStorageDisk<FluidStack> storage;
|
||||||
|
|
||||||
public NetworkNodeFluidStorage(World world, BlockPos pos) {
|
public FluidStorageNetworkNode(World world, BlockPos pos, FluidStorageType type) {
|
||||||
super(world, pos);
|
super(world, pos);
|
||||||
|
|
||||||
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnergyUsage() {
|
public int getEnergyUsage() {
|
||||||
return RS.INSTANCE.config.fluidStorageUsage;
|
switch (type) {
|
||||||
|
case SIXTY_FOUR_K:
|
||||||
|
return RS.SERVER_CONFIG.getFluidStorageBlock().getSixtyFourKUsage();
|
||||||
|
case TWO_HUNDRED_FIFTY_SIX_K:
|
||||||
|
return RS.SERVER_CONFIG.getFluidStorageBlock().getTwoHundredFiftySixKUsage();
|
||||||
|
case THOUSAND_TWENTY_FOUR_K:
|
||||||
|
return RS.SERVER_CONFIG.getFluidStorageBlock().getThousandTwentyFourKUsage();
|
||||||
|
case FOUR_THOUSAND_NINETY_SIX_K:
|
||||||
|
return RS.SERVER_CONFIG.getFluidStorageBlock().getFourThousandNinetySixKUsage();
|
||||||
|
case CREATIVE:
|
||||||
|
return RS.SERVER_CONFIG.getFluidStorageBlock().getCreativeUsage();
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -91,7 +108,7 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IStorageScre
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceLocation getId() {
|
public ResourceLocation getId() {
|
||||||
return ID;
|
return FluidStorageBlockUtils.getNetworkNodeId(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -118,7 +135,7 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IStorageScre
|
|||||||
IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) world).get(storageId);
|
IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) world).get(storageId);
|
||||||
|
|
||||||
if (disk == null) {
|
if (disk == null) {
|
||||||
API.instance().getStorageDiskManager((ServerWorld) world).set(storageId, disk = API.instance().createDefaultFluidDisk((ServerWorld) world, getType().getCapacity()));
|
API.instance().getStorageDiskManager((ServerWorld) world).set(storageId, disk = API.instance().createDefaultFluidDisk((ServerWorld) world, type.getCapacity()));
|
||||||
API.instance().getStorageDiskManager((ServerWorld) world).markForSaving();
|
API.instance().getStorageDiskManager((ServerWorld) world).markForSaving();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,18 +193,6 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IStorageScre
|
|||||||
accessType = AccessTypeUtils.readAccessType(tag);
|
accessType = AccessTypeUtils.readAccessType(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
public FluidStorageType getType() {
|
|
||||||
if (type == null && world != null) {
|
|
||||||
BlockState state = world.getBlockState(pos);
|
|
||||||
|
|
||||||
if (state.getBlock() == RSBlocks.FLUID_STORAGE) {
|
|
||||||
type = state.get(BlockFluidStorage.TYPE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return type == null ? FluidStorageType.TYPE_64K : type;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCompare() {
|
public int getCompare() {
|
||||||
return compare;
|
return compare;
|
||||||
@@ -218,7 +223,7 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IStorageScre
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ITextComponent getTitle() {
|
public ITextComponent getTitle() {
|
||||||
return new TranslationTextComponent("block.refinedstorage:fluid_storage." + getType().getId() + ".name");
|
return new TranslationTextComponent("block.refinedstorage." + type.getName() + "_fluid_storage_block");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -228,37 +233,37 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IStorageScre
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileDataParameter<Integer, ?> getRedstoneModeParameter() {
|
public TileDataParameter<Integer, ?> getRedstoneModeParameter() {
|
||||||
return TileFluidStorage.REDSTONE_MODE;
|
return FluidStorageTile.REDSTONE_MODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileDataParameter<Integer, ?> getCompareParameter() {
|
public TileDataParameter<Integer, ?> getCompareParameter() {
|
||||||
return TileFluidStorage.COMPARE;
|
return FluidStorageTile.COMPARE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileDataParameter<Integer, ?> getWhitelistBlacklistParameter() {
|
public TileDataParameter<Integer, ?> getWhitelistBlacklistParameter() {
|
||||||
return TileFluidStorage.WHITELIST_BLACKLIST;
|
return FluidStorageTile.WHITELIST_BLACKLIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileDataParameter<Integer, ?> getPriorityParameter() {
|
public TileDataParameter<Integer, ?> getPriorityParameter() {
|
||||||
return TileFluidStorage.PRIORITY;
|
return FluidStorageTile.PRIORITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileDataParameter<AccessType, ?> getAccessTypeParameter() {
|
public TileDataParameter<AccessType, ?> getAccessTypeParameter() {
|
||||||
return TileFluidStorage.ACCESS_TYPE;
|
return FluidStorageTile.ACCESS_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getStored() {
|
public long getStored() {
|
||||||
return TileFluidStorage.STORED.getValue();
|
return FluidStorageTile.STORED.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getCapacity() {
|
public long getCapacity() {
|
||||||
return getType().getCapacity();
|
return type.getCapacity();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -16,10 +16,10 @@ import javax.annotation.Nullable;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
public class StorageDiskFluidStorageWrapper implements IStorageDisk<FluidStack> {
|
public class StorageDiskFluidStorageWrapper implements IStorageDisk<FluidStack> {
|
||||||
private NetworkNodeFluidStorage storage;
|
private FluidStorageNetworkNode storage;
|
||||||
private IStorageDisk<FluidStack> parent;
|
private IStorageDisk<FluidStack> parent;
|
||||||
|
|
||||||
public StorageDiskFluidStorageWrapper(NetworkNodeFluidStorage storage, IStorageDisk<FluidStack> parent) {
|
public StorageDiskFluidStorageWrapper(FluidStorageNetworkNode storage, IStorageDisk<FluidStack> parent) {
|
||||||
this.storage = storage;
|
this.storage = storage;
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.setSettings(null, storage);
|
this.setSettings(null, storage);
|
||||||
|
|||||||
@@ -1,87 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.block;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType;
|
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileFluidStorage;
|
|
||||||
import net.minecraft.state.EnumProperty;
|
|
||||||
|
|
||||||
public class BlockFluidStorage extends BlockNode {
|
|
||||||
public static final EnumProperty<FluidStorageType> TYPE = EnumProperty.create("type", FluidStorageType.class);
|
|
||||||
|
|
||||||
public BlockFluidStorage() {
|
|
||||||
super(BlockInfoBuilder.forId("fluid_storage").hardness(5.8F).tileEntity(TileFluidStorage::new).create());
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Override
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
|
||||||
public void registerModels(IModelRegistration modelRegistration) {
|
|
||||||
modelRegistration.setModel(this, FluidStorageType.TYPE_64K.getId(), new ModelResourceLocation(info.getId(), "type=64k"));
|
|
||||||
modelRegistration.setModel(this, FluidStorageType.TYPE_256K.getId(), new ModelResourceLocation(info.getId(), "type=256k"));
|
|
||||||
modelRegistration.setModel(this, FluidStorageType.TYPE_1024K.getId(), new ModelResourceLocation(info.getId(), "type=1024k"));
|
|
||||||
modelRegistration.setModel(this, FluidStorageType.TYPE_4096K.getId(), new ModelResourceLocation(info.getId(), "type=4096k"));
|
|
||||||
modelRegistration.setModel(this, FluidStorageType.TYPE_CREATIVE.getId(), new ModelResourceLocation(info.getId(), "type=creative"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> items) {
|
|
||||||
for (int i = 0; i <= 4; ++i) {
|
|
||||||
items.add(new ItemStack(this, 1, i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected BlockStateContainer createBlockState() {
|
|
||||||
return createBlockStateBuilder()
|
|
||||||
.add(TYPE)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BlockState getStateFromMeta(int meta) {
|
|
||||||
return getDefaultState().withProperty(TYPE, FluidStorageType.getById(meta));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMetaFromState(BlockState state) {
|
|
||||||
return ((FluidStorageType) state.getValue(TYPE)).getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onBlockActivated(World world, BlockPos pos, BlockState state, PlayerEntity player, EnumHand hand, Direction side, float hitX, float hitY, float hitZ) {
|
|
||||||
return openNetworkGui(RSGui.FLUID_STORAGE, player, world, pos, side);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Item createItem() {
|
|
||||||
return new ItemBlockFluidStorage(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, EntityLivingBase player, ItemStack stack) {
|
|
||||||
if (!world.isRemote) {
|
|
||||||
NetworkNodeFluidStorage storage = ((TileFluidStorage) world.getTileEntity(pos)).getNode();
|
|
||||||
|
|
||||||
if (stack.hasTagCompound() && stack.getTagCompound().hasUniqueId(NetworkNodeFluidStorage.NBT_ID)) {
|
|
||||||
storage.setStorageId(stack.getTagCompound().getUniqueId(NetworkNodeFluidStorage.NBT_ID));
|
|
||||||
}
|
|
||||||
|
|
||||||
storage.loadStorage();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Call this after loading the storage, so the network discovery can use the loaded storage.
|
|
||||||
super.onBlockPlacedBy(world, pos, state, player, stack);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, BlockState state, int fortune) {
|
|
||||||
TileFluidStorage storage = (TileFluidStorage) world.getTileEntity(pos);
|
|
||||||
|
|
||||||
ItemStack stack = new ItemStack(this, 1, getMetaFromState(state));
|
|
||||||
|
|
||||||
stack.setTagCompound(new CompoundNBT());
|
|
||||||
stack.getTagCompound().setUniqueId(NetworkNodeFluidStorage.NBT_ID, storage.getNode().getStorageId());
|
|
||||||
|
|
||||||
drops.add(stack);
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.block;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.FluidStorageNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.FluidStorageContainer;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.factory.PositionalTileContainerProvider;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.FluidStorageTile;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.BlockUtils;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.NetworkUtils;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.BlockRayTraceResult;
|
||||||
|
import net.minecraft.world.IBlockReader;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.network.NetworkHooks;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
public class FluidStorageBlock extends NodeBlock {
|
||||||
|
private final FluidStorageType type;
|
||||||
|
|
||||||
|
public FluidStorageBlock(FluidStorageType type) {
|
||||||
|
super(BlockUtils.DEFAULT_ROCK_PROPERTIES);
|
||||||
|
|
||||||
|
this.type = type;
|
||||||
|
|
||||||
|
this.setRegistryName(RS.ID, type.getName() + "_fluid_storage_block");
|
||||||
|
}
|
||||||
|
|
||||||
|
public FluidStorageType getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity player, ItemStack stack) {
|
||||||
|
if (!world.isRemote) {
|
||||||
|
FluidStorageNetworkNode storage = ((FluidStorageTile) world.getTileEntity(pos)).getNode();
|
||||||
|
|
||||||
|
if (stack.hasTag() && stack.getTag().hasUniqueId(FluidStorageNetworkNode.NBT_ID)) {
|
||||||
|
storage.setStorageId(stack.getTag().getUniqueId(FluidStorageNetworkNode.NBT_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
storage.loadStorage();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call this after loading the storage, so the network discovery can use the loaded storage.
|
||||||
|
super.onBlockPlacedBy(world, pos, state, player, stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasTileEntity(BlockState state) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
||||||
|
return new FluidStorageTile(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) {
|
||||||
|
if (!world.isRemote) {
|
||||||
|
return NetworkUtils.attemptModify(world, pos, hit.getFace(), player, () -> NetworkHooks.openGui((ServerPlayerEntity) player, new PositionalTileContainerProvider<FluidStorageTile>(
|
||||||
|
((FluidStorageTile) world.getTileEntity(pos)).getNode().getTitle(),
|
||||||
|
(tile, windowId, inventory, p) -> new FluidStorageContainer(tile, player, windowId),
|
||||||
|
pos
|
||||||
|
), pos));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.block.enums;
|
|
||||||
|
|
||||||
import net.minecraft.util.IStringSerializable;
|
|
||||||
|
|
||||||
public enum FluidStorageType implements IStringSerializable {
|
|
||||||
TYPE_64K(0, 64_000, "64k"),
|
|
||||||
TYPE_256K(1, 256_000, "256k"),
|
|
||||||
TYPE_1024K(2, 1024_000, "1024k"),
|
|
||||||
TYPE_4096K(3, 4096_000, "4096k"),
|
|
||||||
TYPE_CREATIVE(4, -1, "creative");
|
|
||||||
|
|
||||||
private int id;
|
|
||||||
private int capacity;
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
FluidStorageType(int id, int capacity, String name) {
|
|
||||||
this.id = id;
|
|
||||||
this.capacity = capacity;
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCapacity() {
|
|
||||||
return capacity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static FluidStorageType getById(int id) {
|
|
||||||
for (FluidStorageType type : FluidStorageType.values()) {
|
|
||||||
if (type.getId() == id) {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return TYPE_CREATIVE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -11,6 +11,7 @@ public class ServerConfig {
|
|||||||
private Grid grid;
|
private Grid grid;
|
||||||
private DiskDrive diskDrive;
|
private DiskDrive diskDrive;
|
||||||
private StorageBlock storageBlock;
|
private StorageBlock storageBlock;
|
||||||
|
private FluidStorageBlock fluidStorageBlock;
|
||||||
private Upgrades upgrades;
|
private Upgrades upgrades;
|
||||||
|
|
||||||
public ServerConfig() {
|
public ServerConfig() {
|
||||||
@@ -19,6 +20,7 @@ public class ServerConfig {
|
|||||||
grid = new Grid();
|
grid = new Grid();
|
||||||
diskDrive = new DiskDrive();
|
diskDrive = new DiskDrive();
|
||||||
storageBlock = new StorageBlock();
|
storageBlock = new StorageBlock();
|
||||||
|
fluidStorageBlock = new FluidStorageBlock();
|
||||||
upgrades = new Upgrades();
|
upgrades = new Upgrades();
|
||||||
|
|
||||||
spec = builder.build();
|
spec = builder.build();
|
||||||
@@ -48,6 +50,10 @@ public class ServerConfig {
|
|||||||
return storageBlock;
|
return storageBlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public FluidStorageBlock getFluidStorageBlock() {
|
||||||
|
return fluidStorageBlock;
|
||||||
|
}
|
||||||
|
|
||||||
public ForgeConfigSpec getSpec() {
|
public ForgeConfigSpec getSpec() {
|
||||||
return spec;
|
return spec;
|
||||||
}
|
}
|
||||||
@@ -255,4 +261,44 @@ public class ServerConfig {
|
|||||||
return creativeUsage.get();
|
return creativeUsage.get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class FluidStorageBlock {
|
||||||
|
private final ForgeConfigSpec.IntValue sixtyFourKUsage;
|
||||||
|
private final ForgeConfigSpec.IntValue twoHundredFiftySixKUsage;
|
||||||
|
private final ForgeConfigSpec.IntValue thousandTwentyFourKUsage;
|
||||||
|
private final ForgeConfigSpec.IntValue fourThousandNinetySixKUsage;
|
||||||
|
private final ForgeConfigSpec.IntValue creativeUsage;
|
||||||
|
|
||||||
|
public FluidStorageBlock() {
|
||||||
|
builder.push("fluidStorageBlock");
|
||||||
|
|
||||||
|
sixtyFourKUsage = builder.comment("The energy used by the 64k Fluid Storage Block").defineInRange("sixtyFourKUsage", 2, 0, Integer.MAX_VALUE);
|
||||||
|
twoHundredFiftySixKUsage = builder.comment("The energy used by the 256k Fluid Storage Block").defineInRange("twoHundredFiftySixKUsage", 4, 0, Integer.MAX_VALUE);
|
||||||
|
thousandTwentyFourKUsage = builder.comment("The energy used by the 1024k Fluid Storage Block").defineInRange("thousandTwentyFourKUsage", 6, 0, Integer.MAX_VALUE);
|
||||||
|
fourThousandNinetySixKUsage = builder.comment("The energy used by the 4096k Fluid Storage Block").defineInRange("fourThousandNinetySixKUsage", 8, 0, Integer.MAX_VALUE);
|
||||||
|
creativeUsage = builder.comment("The energy used by the Creative Fluid Storage Block").defineInRange("creativeUsage", 10, 0, Integer.MAX_VALUE);
|
||||||
|
|
||||||
|
builder.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSixtyFourKUsage() {
|
||||||
|
return sixtyFourKUsage.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTwoHundredFiftySixKUsage() {
|
||||||
|
return twoHundredFiftySixKUsage.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getThousandTwentyFourKUsage() {
|
||||||
|
return thousandTwentyFourKUsage.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFourThousandNinetySixKUsage() {
|
||||||
|
return fourThousandNinetySixKUsage.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCreativeUsage() {
|
||||||
|
return creativeUsage.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ package com.raoulvdberge.refinedstorage.container;
|
|||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSContainers;
|
import com.raoulvdberge.refinedstorage.RSContainers;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.filter.FluidFilterSlot;
|
import com.raoulvdberge.refinedstorage.container.slot.filter.FluidFilterSlot;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileFluidStorage;
|
import com.raoulvdberge.refinedstorage.tile.FluidStorageTile;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
|
||||||
public class FluidStorageContainer extends BaseContainer {
|
public class FluidStorageContainer extends BaseContainer {
|
||||||
public FluidStorageContainer(TileFluidStorage fluidStorage, PlayerEntity player, int windowId) {
|
public FluidStorageContainer(FluidStorageTile fluidStorage, PlayerEntity player, int windowId) {
|
||||||
super(RSContainers.FLUID_STORAGE, fluidStorage, player, windowId);
|
super(RSContainers.FLUID_STORAGE_BLOCK, fluidStorage, player, windowId);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
addSlot(new FluidFilterSlot(fluidStorage.getNode().getFilters(), i, 8 + (18 * i), 20));
|
addSlot(new FluidFilterSlot(fluidStorage.getNode().getFilters(), i, 8 + (18 * i), 20));
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.item.blockitem;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||||
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.storage.disk.StorageDiskSyncData;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.FluidStorageNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType;
|
||||||
|
import com.raoulvdberge.refinedstorage.block.FluidStorageBlock;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.FluidStoragePartItem;
|
||||||
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.inventory.InventoryHelper;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.Items;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.ActionResultType;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.text.*;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraft.world.server.ServerWorld;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class FluidStorageBlockItem extends BaseBlockItem {
|
||||||
|
private final FluidStorageType type;
|
||||||
|
|
||||||
|
public FluidStorageBlockItem(FluidStorageBlock block) {
|
||||||
|
super(block, new Item.Properties().group(RS.MAIN_GROUP));
|
||||||
|
|
||||||
|
this.type = block.getType();
|
||||||
|
|
||||||
|
this.setRegistryName(block.getRegistryName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addInformation(ItemStack stack, @Nullable World world, List<ITextComponent> tooltip, ITooltipFlag flag) {
|
||||||
|
super.addInformation(stack, world, tooltip, flag);
|
||||||
|
|
||||||
|
if (isValid(stack)) {
|
||||||
|
UUID id = getId(stack);
|
||||||
|
|
||||||
|
API.instance().getStorageDiskSync().sendRequest(id);
|
||||||
|
|
||||||
|
StorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id);
|
||||||
|
if (data != null) {
|
||||||
|
if (data.getCapacity() == -1) {
|
||||||
|
tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(new Style().setColor(TextFormatting.GRAY)));
|
||||||
|
} else {
|
||||||
|
tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(new Style().setColor(TextFormatting.GRAY)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flag.isAdvanced()) {
|
||||||
|
tooltip.add(new StringTextComponent(id.toString()).setStyle(new Style().setColor(TextFormatting.GRAY)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionResult<ItemStack> onItemRightClick(World world, PlayerEntity player, Hand hand) {
|
||||||
|
ItemStack storageStack = player.getHeldItem(hand);
|
||||||
|
|
||||||
|
if (!world.isRemote && player.isSneaking() && type != FluidStorageType.CREATIVE) {
|
||||||
|
UUID diskId = null;
|
||||||
|
IStorageDisk disk = null;
|
||||||
|
|
||||||
|
if (isValid(storageStack)) {
|
||||||
|
diskId = getId(storageStack);
|
||||||
|
disk = API.instance().getStorageDiskManager((ServerWorld) world).get(diskId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Newly created fluid storages won't have a tag yet, so allow invalid disks as well.
|
||||||
|
if (disk == null || disk.getStored() == 0) {
|
||||||
|
ItemStack fluidStoragePart = new ItemStack(FluidStoragePartItem.getByType(type));
|
||||||
|
|
||||||
|
if (!player.inventory.addItemStackToInventory(fluidStoragePart.copy())) {
|
||||||
|
InventoryHelper.spawnItemStack(world, player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ(), fluidStoragePart);
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemStack processor = new ItemStack(RSItems.BASIC_PROCESSOR);
|
||||||
|
|
||||||
|
if (!player.inventory.addItemStackToInventory(processor.copy())) {
|
||||||
|
InventoryHelper.spawnItemStack(world, player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ(), processor);
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemStack bucket = new ItemStack(Items.BUCKET);
|
||||||
|
|
||||||
|
if (!player.inventory.addItemStackToInventory(bucket.copy())) {
|
||||||
|
InventoryHelper.spawnItemStack(world, player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ(), bucket);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (disk != null) {
|
||||||
|
API.instance().getStorageDiskManager((ServerWorld) world).remove(diskId);
|
||||||
|
API.instance().getStorageDiskManager((ServerWorld) world).markForSaving();
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ActionResult<>(ActionResultType.SUCCESS, new ItemStack(RSBlocks.MACHINE_CASING));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ActionResult<>(ActionResultType.PASS, storageStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEntityLifespan(ItemStack stack, World world) {
|
||||||
|
return Integer.MAX_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
private UUID getId(ItemStack disk) {
|
||||||
|
return disk.getTag().getUniqueId(FluidStorageNetworkNode.NBT_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isValid(ItemStack disk) {
|
||||||
|
return disk.hasTag() && disk.getTag().hasUniqueId(FluidStorageNetworkNode.NBT_ID);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item.blockitem;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.block.BlockFluidStorage;
|
|
||||||
|
|
||||||
public class ItemBlockFluidStorage extends ItemBlockBase {
|
|
||||||
public ItemBlockFluidStorage(BlockFluidStorage block) {
|
|
||||||
super(block);
|
|
||||||
}
|
|
||||||
/* TODO
|
|
||||||
@Override
|
|
||||||
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag) {
|
|
||||||
super.addInformation(stack, world, tooltip, flag);
|
|
||||||
|
|
||||||
if (isValid(stack)) {
|
|
||||||
UUID id = getId(stack);
|
|
||||||
|
|
||||||
API.instance().getStorageDiskSync().sendRequest(id);
|
|
||||||
|
|
||||||
IStorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id);
|
|
||||||
if (data != null) {
|
|
||||||
if (data.getCapacity() == -1) {
|
|
||||||
tooltip.add(I18n.format("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())));
|
|
||||||
} else {
|
|
||||||
tooltip.add(I18n.format("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (flag.isAdvanced()) {
|
|
||||||
tooltip.add(id.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ActionResult<ItemStack> onItemRightClick(World world, PlayerEntity player, EnumHand hand) {
|
|
||||||
ItemStack storageStack = player.getHeldItem(hand);
|
|
||||||
|
|
||||||
if (!world.isRemote && player.isSneaking() && storageStack.getMetadata() != ItemFluidStorageDisk.TYPE_CREATIVE) {
|
|
||||||
UUID diskId = null;
|
|
||||||
IStorageDisk disk = null;
|
|
||||||
|
|
||||||
if (isValid(storageStack)) {
|
|
||||||
diskId = getId(storageStack);
|
|
||||||
disk = API.instance().getStorageDiskManager(world).get(diskId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Newly created storages won't have a tag yet, so allow invalid disks as well.
|
|
||||||
if (disk == null || disk.getStored() == 0) {
|
|
||||||
ItemStack storagePart = new ItemStack(RSItems.FLUID_STORAGE_PART, storageStack.getCount(), storageStack.getMetadata());
|
|
||||||
|
|
||||||
if (!player.inventory.addItemStackToInventory(storagePart.copy())) {
|
|
||||||
InventoryHelper.spawnItemStack(world, player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ(), storagePart);
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack processor = new ItemStack(RSItems.PROCESSOR, storageStack.getCount(), ItemProcessor.TYPE_BASIC);
|
|
||||||
|
|
||||||
if (!player.inventory.addItemStackToInventory(processor.copy())) {
|
|
||||||
InventoryHelper.spawnItemStack(world, player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ(), processor);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (disk != null) {
|
|
||||||
API.instance().getStorageDiskManager(world).remove(diskId);
|
|
||||||
API.instance().getStorageDiskManager(world).markForSaving();
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ActionResult<>(EnumActionResult.SUCCESS, new ItemStack(RSBlocks.MACHINE_CASING));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ActionResult<>(EnumActionResult.PASS, storageStack);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getEntityLifespan(ItemStack stack, World world) {
|
|
||||||
return Integer.MAX_VALUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
private UUID getId(ItemStack disk) {
|
|
||||||
return disk.getTagCompound().getUniqueId(NetworkNodeFluidStorage.NBT_ID);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isValid(ItemStack disk) {
|
|
||||||
return disk.hasTagCompound() && disk.getTagCompound().hasUniqueId(NetworkNodeFluidStorage.NBT_ID);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUpdate(ItemStack stack, World world, Entity entity, int itemSlot, boolean isSelected) {
|
|
||||||
super.onUpdate(stack, world, entity, itemSlot, isSelected);
|
|
||||||
|
|
||||||
if (!world.isRemote) {
|
|
||||||
OneSixMigrationHelper.migrateFluidStorageBlockItem(world, stack);
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.raoulvdberge.refinedstorage.loottable;
|
package com.raoulvdberge.refinedstorage.loottable;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.FluidStorageNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.StorageNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.StorageNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.FluidStorageTile;
|
||||||
import com.raoulvdberge.refinedstorage.tile.StorageTile;
|
import com.raoulvdberge.refinedstorage.tile.StorageTile;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
@@ -14,9 +16,12 @@ public class StorageBlockLootFunction implements ILootFunction {
|
|||||||
public ItemStack apply(ItemStack stack, LootContext lootContext) {
|
public ItemStack apply(ItemStack stack, LootContext lootContext) {
|
||||||
TileEntity tile = lootContext.get(LootParameters.BLOCK_ENTITY);
|
TileEntity tile = lootContext.get(LootParameters.BLOCK_ENTITY);
|
||||||
|
|
||||||
if (tile != null) {
|
if (tile instanceof StorageTile) {
|
||||||
stack.setTag(new CompoundNBT());
|
stack.setTag(new CompoundNBT());
|
||||||
stack.getTag().putUniqueId(StorageNetworkNode.NBT_ID, ((StorageTile) tile).getRemovedNode().getStorageId());
|
stack.getTag().putUniqueId(StorageNetworkNode.NBT_ID, ((StorageTile) tile).getRemovedNode().getStorageId());
|
||||||
|
} else if (tile instanceof FluidStorageTile) {
|
||||||
|
stack.setTag(new CompoundNBT());
|
||||||
|
stack.getTag().putUniqueId(FluidStorageNetworkNode.NBT_ID, ((FluidStorageTile) tile).getRemovedNode().getStorageId());
|
||||||
}
|
}
|
||||||
|
|
||||||
return stack;
|
return stack;
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.screen;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.FluidStorageContainer;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.FluidStorageTile;
|
||||||
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
|
||||||
|
public class FluidStorageBlockScreen extends StorageScreen<FluidStorageContainer> {
|
||||||
|
public FluidStorageBlockScreen(FluidStorageContainer container, PlayerInventory inventory, ITextComponent title) {
|
||||||
|
super(
|
||||||
|
container,
|
||||||
|
inventory,
|
||||||
|
title,
|
||||||
|
"gui/storage.png",
|
||||||
|
null,
|
||||||
|
FluidStorageTile.REDSTONE_MODE,
|
||||||
|
FluidStorageTile.COMPARE,
|
||||||
|
FluidStorageTile.WHITELIST_BLACKLIST,
|
||||||
|
FluidStorageTile.PRIORITY,
|
||||||
|
FluidStorageTile.ACCESS_TYPE,
|
||||||
|
FluidStorageTile.STORED::getValue,
|
||||||
|
() -> (long) ((FluidStorageTile) container.getTile()).getFluidStorageType().getCapacity()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.tile;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.FluidStorageNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.config.IAccessType;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.config.IPrioritizable;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.config.IWhitelistBlacklist;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.data.RSSerializers;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.FluidStorageBlockUtils;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
public class FluidStorageTile extends NetworkNodeTile<FluidStorageNetworkNode> {
|
||||||
|
public static final TileDataParameter<Integer, FluidStorageTile> PRIORITY = IPrioritizable.createParameter();
|
||||||
|
public static final TileDataParameter<Integer, FluidStorageTile> COMPARE = IComparable.createParameter();
|
||||||
|
public static final TileDataParameter<Integer, FluidStorageTile> WHITELIST_BLACKLIST = IWhitelistBlacklist.createParameter();
|
||||||
|
public static final TileDataParameter<AccessType, FluidStorageTile> ACCESS_TYPE = IAccessType.createParameter();
|
||||||
|
public static final TileDataParameter<Long, FluidStorageTile> STORED = new TileDataParameter<>(RSSerializers.LONG_SERIALIZER, 0L, t -> t.getNode().getStorage() != null ? (long) t.getNode().getStorage().getStored() : 0);
|
||||||
|
|
||||||
|
private final FluidStorageType type;
|
||||||
|
|
||||||
|
public FluidStorageTile(FluidStorageType type) {
|
||||||
|
super(FluidStorageBlockUtils.getTileEntityType(type));
|
||||||
|
|
||||||
|
this.type = type;
|
||||||
|
|
||||||
|
dataManager.addWatchedParameter(PRIORITY);
|
||||||
|
dataManager.addWatchedParameter(COMPARE);
|
||||||
|
dataManager.addWatchedParameter(WHITELIST_BLACKLIST);
|
||||||
|
dataManager.addWatchedParameter(STORED);
|
||||||
|
dataManager.addWatchedParameter(ACCESS_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FluidStorageType getFluidStorageType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nonnull
|
||||||
|
public FluidStorageNetworkNode createNode(World world, BlockPos pos) {
|
||||||
|
return new FluidStorageNetworkNode(world, pos, type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSTiles;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeFluidStorage;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IAccessType;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IPrioritizable;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IWhitelistBlacklist;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.RSSerializers;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
public class TileFluidStorage extends NetworkNodeTile<NetworkNodeFluidStorage> {
|
|
||||||
public static final TileDataParameter<Integer, TileFluidStorage> PRIORITY = IPrioritizable.createParameter();
|
|
||||||
public static final TileDataParameter<Integer, TileFluidStorage> COMPARE = IComparable.createParameter();
|
|
||||||
public static final TileDataParameter<Integer, TileFluidStorage> WHITELIST_BLACKLIST = IWhitelistBlacklist.createParameter();
|
|
||||||
public static final TileDataParameter<AccessType, TileFluidStorage> ACCESS_TYPE = IAccessType.createParameter();
|
|
||||||
public static final TileDataParameter<Long, TileFluidStorage> STORED = new TileDataParameter<>(RSSerializers.LONG_SERIALIZER, 0L, t -> t.getNode().getStorage() != null ? (long) t.getNode().getStorage().getStored() : 0);
|
|
||||||
|
|
||||||
public TileFluidStorage() {
|
|
||||||
super(RSTiles.FLUID_STORAGE);
|
|
||||||
|
|
||||||
dataManager.addWatchedParameter(PRIORITY);
|
|
||||||
dataManager.addWatchedParameter(COMPARE);
|
|
||||||
dataManager.addWatchedParameter(WHITELIST_BLACKLIST);
|
|
||||||
dataManager.addWatchedParameter(STORED);
|
|
||||||
dataManager.addWatchedParameter(ACCESS_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nonnull
|
|
||||||
public NetworkNodeFluidStorage createNode(World world, BlockPos pos) {
|
|
||||||
return new NetworkNodeFluidStorage(world, pos);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.util;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RSTiles;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.FluidStorageNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.FluidStorageTile;
|
||||||
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class FluidStorageBlockUtils {
|
||||||
|
public static ResourceLocation getNetworkNodeId(FluidStorageType type) {
|
||||||
|
switch (type) {
|
||||||
|
case SIXTY_FOUR_K:
|
||||||
|
return FluidStorageNetworkNode.SIXTY_FOUR_K_FLUID_STORAGE_BLOCK_ID;
|
||||||
|
case TWO_HUNDRED_FIFTY_SIX_K:
|
||||||
|
return FluidStorageNetworkNode.TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK_ID;
|
||||||
|
case THOUSAND_TWENTY_FOUR_K:
|
||||||
|
return FluidStorageNetworkNode.THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK_ID;
|
||||||
|
case FOUR_THOUSAND_NINETY_SIX_K:
|
||||||
|
return FluidStorageNetworkNode.FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK_ID;
|
||||||
|
case CREATIVE:
|
||||||
|
return FluidStorageNetworkNode.CREATIVE_FLUID_STORAGE_BLOCK_ID;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Unknown storage type " + type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TileEntityType<FluidStorageTile> getTileEntityType(FluidStorageType type) {
|
||||||
|
switch (type) {
|
||||||
|
case SIXTY_FOUR_K:
|
||||||
|
return RSTiles.SIXTY_FOUR_K_FLUID_STORAGE_BLOCK;
|
||||||
|
case TWO_HUNDRED_FIFTY_SIX_K:
|
||||||
|
return RSTiles.TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK;
|
||||||
|
case THOUSAND_TWENTY_FOUR_K:
|
||||||
|
return RSTiles.THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK;
|
||||||
|
case FOUR_THOUSAND_NINETY_SIX_K:
|
||||||
|
return RSTiles.FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK;
|
||||||
|
case CREATIVE:
|
||||||
|
return RSTiles.CREATIVE_FLUID_STORAGE_BLOCK;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Unknown storage type " + type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "refinedstorage:block/1024k_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "refinedstorage:block/256k_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "refinedstorage:block/4096k_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "refinedstorage:block/64k_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "refinedstorage:block/creative_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"forge_marker": 1,
|
|
||||||
"defaults": {
|
|
||||||
"model": "cube_all",
|
|
||||||
"transform": "forge:default-block"
|
|
||||||
},
|
|
||||||
"variants": {
|
|
||||||
"type": {
|
|
||||||
"64k": {
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/64k_fluid_storage_block"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"256k": {
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/256k_fluid_storage_block"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"1024k": {
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/1024k_fluid_storage_block"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4096k": {
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/4096k_fluid_storage_block"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"creative": {
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/creative_fluid_storage_block"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -205,11 +205,11 @@
|
|||||||
"block.refinedstorage:network_receiver": "Network Receiver",
|
"block.refinedstorage:network_receiver": "Network Receiver",
|
||||||
"block.refinedstorage:network_transmitter": "Network Transmitter",
|
"block.refinedstorage:network_transmitter": "Network Transmitter",
|
||||||
"block.refinedstorage:fluid_interface": "Fluid Interface",
|
"block.refinedstorage:fluid_interface": "Fluid Interface",
|
||||||
"block.refinedstorage:fluid_storage.0": "64k Fluid Storage Block",
|
"block.refinedstorage.64k_fluid_storage_block": "64k Fluid Storage Block",
|
||||||
"block.refinedstorage:fluid_storage.1": "256k Fluid Storage Block",
|
"block.refinedstorage.256k_fluid_storage_block": "256k Fluid Storage Block",
|
||||||
"block.refinedstorage:fluid_storage.2": "1024k Fluid Storage Block",
|
"block.refinedstorage.1024k_fluid_storage_block": "1024k Fluid Storage Block",
|
||||||
"block.refinedstorage:fluid_storage.3": "4096k Fluid Storage Block",
|
"block.refinedstorage.4096k_fluid_storage_block": "4096k Fluid Storage Block",
|
||||||
"block.refinedstorage:fluid_storage.4": "Creative Fluid Storage Block",
|
"block.refinedstorage.creative_fluid_storage_block": "Creative Fluid Storage Block",
|
||||||
"block.refinedstorage:reader": "Reader",
|
"block.refinedstorage:reader": "Reader",
|
||||||
"block.refinedstorage:writer": "Writer",
|
"block.refinedstorage:writer": "Writer",
|
||||||
"block.refinedstorage:security_manager": "Security Manager",
|
"block.refinedstorage:security_manager": "Security Manager",
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "refinedstorage:block/1024k_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "refinedstorage:block/256k_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "refinedstorage:block/4096k_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "refinedstorage:block/64k_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "refinedstorage:block/creative_fluid_storage_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/1024k_fluid_storage_block"
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/256k_fluid_storage_block"
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/4096k_fluid_storage_block"
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/64k_fluid_storage_block"
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/creative_fluid_storage_block"
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "refinedstorage:1024k_fluid_storage_block",
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "refinedstorage:storage_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "refinedstorage:256k_fluid_storage_block",
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "refinedstorage:storage_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "refinedstorage:4096k_fluid_storage_block",
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "refinedstorage:storage_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "refinedstorage:64k_fluid_storage_block",
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "refinedstorage:storage_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "refinedstorage:creative_fluid_storage_block",
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "refinedstorage:storage_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -13,15 +13,13 @@
|
|||||||
"item": "minecraft:redstone"
|
"item": "minecraft:redstone"
|
||||||
},
|
},
|
||||||
"P": {
|
"P": {
|
||||||
"item": "refinedstorage:fluid_storage_part",
|
"item": "refinedstorage:1024k_fluid_storage_part"
|
||||||
"data": 2
|
|
||||||
},
|
},
|
||||||
"E": {
|
"E": {
|
||||||
"item": "refinedstorage:quartz_enriched_iron"
|
"item": "refinedstorage:quartz_enriched_iron"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"result": {
|
"result": {
|
||||||
"item": "refinedstorage:fluid_storage",
|
"item": "refinedstorage:1024k_fluid_storage_block"
|
||||||
"data": 2
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,15 +13,13 @@
|
|||||||
"item": "minecraft:redstone"
|
"item": "minecraft:redstone"
|
||||||
},
|
},
|
||||||
"P": {
|
"P": {
|
||||||
"item": "refinedstorage:fluid_storage_part",
|
"item": "refinedstorage:256k_fluid_storage_part"
|
||||||
"data": 1
|
|
||||||
},
|
},
|
||||||
"E": {
|
"E": {
|
||||||
"item": "refinedstorage:quartz_enriched_iron"
|
"item": "refinedstorage:quartz_enriched_iron"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"result": {
|
"result": {
|
||||||
"item": "refinedstorage:fluid_storage",
|
"item": "refinedstorage:256k_fluid_storage_block"
|
||||||
"data": 1
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,15 +13,13 @@
|
|||||||
"item": "minecraft:redstone"
|
"item": "minecraft:redstone"
|
||||||
},
|
},
|
||||||
"P": {
|
"P": {
|
||||||
"item": "refinedstorage:fluid_storage_part",
|
"item": "refinedstorage:4096k_fluid_storage_part"
|
||||||
"data": 3
|
|
||||||
},
|
},
|
||||||
"E": {
|
"E": {
|
||||||
"item": "refinedstorage:quartz_enriched_iron"
|
"item": "refinedstorage:quartz_enriched_iron"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"result": {
|
"result": {
|
||||||
"item": "refinedstorage:fluid_storage",
|
"item": "refinedstorage:4096k_fluid_storage_block"
|
||||||
"data": 3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,15 +13,13 @@
|
|||||||
"item": "minecraft:redstone"
|
"item": "minecraft:redstone"
|
||||||
},
|
},
|
||||||
"P": {
|
"P": {
|
||||||
"item": "refinedstorage:fluid_storage_part",
|
"item": "refinedstorage:64k_fluid_storage_part"
|
||||||
"data": 0
|
|
||||||
},
|
},
|
||||||
"E": {
|
"E": {
|
||||||
"item": "refinedstorage:quartz_enriched_iron"
|
"item": "refinedstorage:quartz_enriched_iron"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"result": {
|
"result": {
|
||||||
"item": "refinedstorage:fluid_storage",
|
"item": "refinedstorage:64k_fluid_storage_block"
|
||||||
"data": 0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user