Added wireless fluid grid, fixes #587

This commit is contained in:
raoulvdberge
2016-12-18 17:49:01 +01:00
parent b93602c113
commit e35f240e45
21 changed files with 476 additions and 18 deletions

View File

@@ -72,6 +72,13 @@ public final class RSConfig {
public int wirelessGridInsertUsage;
//endregion
//region Wireless Fluid Grid
public boolean wirelessFluidGridUsesEnergy;
public int wirelessFluidGridOpenUsage;
public int wirelessFluidGridExtractUsage;
public int wirelessFluidGridInsertUsage;
//endregion
//region Wireless Crafting Monitor
public boolean wirelessCraftingMonitorUsesEnergy;
public int wirelessCraftingMonitorOpenUsage;
@@ -95,6 +102,7 @@ public final class RSConfig {
private static final String GRID = "grid";
private static final String WIRELESS_TRANSMITTER = "wirelessTransmitter";
private static final String WIRELESS_GRID = "wirelessGrid";
private static final String WIRELESS_FLUID_GRID = "wirelessFluidGrid";
private static final String WIRELESS_CRAFTING_MONITOR = "wirelessCraftingMonitor";
private static final String UPGRADES = "upgrades";
//endregion
@@ -177,6 +185,13 @@ public final class RSConfig {
wirelessGridExtractUsage = config.getInt("extract", WIRELESS_GRID, 3, 0, Integer.MAX_VALUE, "The energy used by the Wireless Grid to extract items");
//endregion
//region Wireless Grid
wirelessFluidGridUsesEnergy = config.getBoolean("usesEnergy", WIRELESS_FLUID_GRID, true, "Whether the Fluid Wireless Grid uses energy");
wirelessFluidGridOpenUsage = config.getInt("open", WIRELESS_FLUID_GRID, 30, 0, Integer.MAX_VALUE, "The energy used by the Fluid Wireless Grid to open");
wirelessFluidGridInsertUsage = config.getInt("insert", WIRELESS_FLUID_GRID, 3, 0, Integer.MAX_VALUE, "The energy used by the Wireless Fluid Grid to insert items");
wirelessFluidGridExtractUsage = config.getInt("extract", WIRELESS_FLUID_GRID, 3, 0, Integer.MAX_VALUE, "The energy used by the Wireless Fluid Grid to extract items");
//endregion
//region Wireless Crafting Monitor
wirelessCraftingMonitorUsesEnergy = config.getBoolean("usesEnergy", WIRELESS_CRAFTING_MONITOR, true, "Whether the Wireless Crafting Monitor uses energy");
wirelessCraftingMonitorOpenUsage = config.getInt("open", WIRELESS_CRAFTING_MONITOR, 35, 0, Integer.MAX_VALUE, "The energy used by the Wireless Crafting Monitor to open");

View File

@@ -5,6 +5,8 @@ import com.raoulvdberge.refinedstorage.item.*;
public final class RSItems {
public static final ItemStorageDisk STORAGE_DISK = new ItemStorageDisk();
public static final ItemWirelessGrid WIRELESS_GRID = new ItemWirelessGrid();
public static final ItemWirelessFluidGrid WIRELESS_FLUID_GRID = new ItemWirelessFluidGrid();
public static final ItemWirelessCraftingMonitor WIRELESS_CRAFTING_MONITOR = new ItemWirelessCraftingMonitor();
public static final ItemQuartzEnrichedIron QUARTZ_ENRICHED_IRON = new ItemQuartzEnrichedIron();
public static final ItemCore CORE = new ItemCore();
public static final ItemSilicon SILICON = new ItemSilicon();
@@ -18,6 +20,5 @@ public final class RSItems {
public static final ItemFluidStorageDisk FLUID_STORAGE_DISK = new ItemFluidStorageDisk();
public static final ItemFluidStoragePart FLUID_STORAGE_PART = new ItemFluidStoragePart();
public static final ItemWrench WRENCH = new ItemWrench();
public static final ItemWirelessCraftingMonitor WIRELESS_CRAFTING_MONITOR = new ItemWirelessCraftingMonitor();
public static final ItemSecurityCard SECURITY_CARD = new ItemSecurityCard();
}

View File

@@ -7,7 +7,7 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
import com.raoulvdberge.refinedstorage.item.ItemNetworkItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
@@ -34,7 +34,7 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
@Override
public boolean onOpen(INetworkMaster network, EntityPlayer player, World controllerWorld, EnumHand hand) {
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessCraftingMonitorOpenUsage) {
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemNetworkItem.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessCraftingMonitorOpenUsage) {
return false;
}
@@ -54,7 +54,7 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
}
public void drainEnergy(int energy) {
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE) {
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemNetworkItem.TYPE_CREATIVE) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
energyStorage.extractEnergy(energy, false);

View File

@@ -0,0 +1,71 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.item;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.item.ItemNetworkItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;
import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.energy.IEnergyStorage;
public class NetworkItemWirelessFluidGrid implements INetworkItem {
public static final int GRID_TYPE = 1;
private INetworkItemHandler handler;
private EntityPlayer player;
private ItemStack stack;
public NetworkItemWirelessFluidGrid(INetworkItemHandler handler, EntityPlayer player, ItemStack stack) {
this.handler = handler;
this.player = player;
this.stack = stack;
}
@Override
public EntityPlayer getPlayer() {
return player;
}
@Override
public boolean onOpen(INetworkMaster network, EntityPlayer player, World controllerWorld, EnumHand hand) {
if (RS.INSTANCE.config.wirelessFluidGridUsesEnergy && stack.getItemDamage() != ItemNetworkItem.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessFluidGridOpenUsage) {
return false;
}
if (!network.getSecurityManager().hasPermission(Permission.MODIFY, player)) {
RSUtils.sendNoPermissionMessage(player);
return false;
}
player.openGui(RS.INSTANCE, RSGui.WIRELESS_GRID, player.getEntityWorld(), hand.ordinal(), controllerWorld.provider.getDimension(), GRID_TYPE);
network.sendFluidStorageToClient((EntityPlayerMP) player);
drainEnergy(RS.INSTANCE.config.wirelessFluidGridOpenUsage);
return true;
}
public void drainEnergy(int energy) {
if (RS.INSTANCE.config.wirelessFluidGridUsesEnergy && stack.getItemDamage() != ItemNetworkItem.TYPE_CREATIVE) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
energyStorage.extractEnergy(energy, false);
if (energyStorage.getEnergyStored() <= 0) {
handler.onClose(player);
player.closeScreen();
}
}
}
}

View File

@@ -7,7 +7,7 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
import com.raoulvdberge.refinedstorage.item.ItemNetworkItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
@@ -17,6 +17,8 @@ import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.energy.IEnergyStorage;
public class NetworkItemWirelessGrid implements INetworkItem {
public static final int GRID_TYPE = 0;
private INetworkItemHandler handler;
private EntityPlayer player;
private ItemStack stack;
@@ -34,7 +36,7 @@ public class NetworkItemWirelessGrid implements INetworkItem {
@Override
public boolean onOpen(INetworkMaster network, EntityPlayer player, World controllerWorld, EnumHand hand) {
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessGridOpenUsage) {
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemNetworkItem.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessGridOpenUsage) {
return false;
}
@@ -44,7 +46,7 @@ public class NetworkItemWirelessGrid implements INetworkItem {
return false;
}
player.openGui(RS.INSTANCE, RSGui.WIRELESS_GRID, player.getEntityWorld(), hand.ordinal(), controllerWorld.provider.getDimension(), 0);
player.openGui(RS.INSTANCE, RSGui.WIRELESS_GRID, player.getEntityWorld(), hand.ordinal(), controllerWorld.provider.getDimension(), GRID_TYPE);
network.sendItemStorageToClient((EntityPlayerMP) player);
@@ -54,7 +56,7 @@ public class NetworkItemWirelessGrid implements INetworkItem {
}
public void drainEnergy(int energy) {
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) {
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemNetworkItem.TYPE_CREATIVE) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
energyStorage.extractEnergy(energy, false);

View File

@@ -107,7 +107,7 @@ public class GuiCraftingMonitor extends GuiBase {
@Override
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:crafting_monitor"));
drawString(7, 7, t(craftingMonitor.getGuiTitle()));
drawString(7, 137, t("container.inventory"));
int item = scrollbar.getOffset();

View File

@@ -1,6 +1,8 @@
package com.raoulvdberge.refinedstorage.gui;
import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessFluidGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessGrid;
import com.raoulvdberge.refinedstorage.container.*;
import com.raoulvdberge.refinedstorage.gui.grid.GridDisplayDummy;
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
@@ -8,10 +10,13 @@ import com.raoulvdberge.refinedstorage.tile.*;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.externalstorage.TileExternalStorage;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
@@ -75,7 +80,7 @@ public class GuiHandler implements IGuiHandler {
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
if (ID == RSGui.WIRELESS_GRID) {
return getWirelessGridContainer(player, x, y);
return getWirelessGridContainer(player, x, y, z);
} else if (ID == RSGui.GRID_FILTER) {
return getGridFilterContainer(player, x);
} else if (ID == RSGui.WIRELESS_CRAFTING_MONITOR) {
@@ -97,7 +102,7 @@ public class GuiHandler implements IGuiHandler {
gui.inventorySlots = new ContainerGrid((TileGrid) tile, gui, player);
return gui;
case RSGui.WIRELESS_GRID:
return getWirelessGridGui(player, x, y);
return getWirelessGridGui(player, x, y, z);
case RSGui.DISK_DRIVE:
return new GuiStorage((ContainerDiskDrive) getContainer(ID, player, tile), (IStorageGui) tile, "gui/disk_drive.png");
case RSGui.IMPORTER:
@@ -149,20 +154,29 @@ public class GuiHandler implements IGuiHandler {
}
}
private WirelessGrid getWirelessGrid(EntityPlayer player, int hand, int controllerDimension) {
return new WirelessGrid(controllerDimension, player.getHeldItem(EnumHand.values()[hand]));
private IGrid getWirelessGrid(EntityPlayer player, int hand, int controllerDimension, int type) {
ItemStack stack = player.getHeldItem(EnumHand.values()[hand]);
switch (type) {
case NetworkItemWirelessGrid.GRID_TYPE:
return new WirelessGrid(controllerDimension, stack);
case NetworkItemWirelessFluidGrid.GRID_TYPE:
return new WirelessFluidGrid(controllerDimension, stack);
default:
return null;
}
}
private GuiGrid getWirelessGridGui(EntityPlayer player, int hand, int controllerDimension) {
WirelessGrid grid = getWirelessGrid(player, hand, controllerDimension);
private GuiGrid getWirelessGridGui(EntityPlayer player, int hand, int controllerDimension, int type) {
IGrid grid = getWirelessGrid(player, hand, controllerDimension, type);
GuiGrid gui = new GuiGrid(null, grid);
gui.inventorySlots = new ContainerGrid(grid, gui, player);
return gui;
}
private ContainerGrid getWirelessGridContainer(EntityPlayer player, int hand, int controllerDimension) {
return new ContainerGrid(getWirelessGrid(player, hand, controllerDimension), new GridDisplayDummy(), player);
private ContainerGrid getWirelessGridContainer(EntityPlayer player, int hand, int controllerDimension, int type) {
return new ContainerGrid(getWirelessGrid(player, hand, controllerDimension, type), new GridDisplayDummy(), player);
}
private WirelessCraftingMonitor getWirelessCraftingMonitor(EntityPlayer player, int hand, int controllerDimension) {

View File

@@ -0,0 +1,49 @@
package com.raoulvdberge.refinedstorage.item;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessFluidGrid;
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
public class ItemWirelessFluidGrid extends ItemNetworkItem {
public ItemWirelessFluidGrid() {
super("wireless_fluid_grid");
}
@Override
public void initializeDefaults(NBTTagCompound tag) {
super.initializeDefaults(tag);
tag.setInteger(TileGrid.NBT_SORTING_DIRECTION, TileGrid.SORTING_DIRECTION_DESCENDING);
tag.setInteger(TileGrid.NBT_SORTING_TYPE, TileGrid.SORTING_TYPE_QUANTITY);
tag.setInteger(TileGrid.NBT_SEARCH_BOX_MODE, TileGrid.SEARCH_BOX_MODE_NORMAL);
}
@Override
public boolean isValid(ItemStack stack) {
return super.isValid(stack)
&& stack.getTagCompound().hasKey(TileGrid.NBT_SORTING_DIRECTION)
&& stack.getTagCompound().hasKey(TileGrid.NBT_SORTING_TYPE)
&& stack.getTagCompound().hasKey(TileGrid.NBT_SEARCH_BOX_MODE);
}
@Override
public INetworkItem provide(INetworkItemHandler handler, EntityPlayer player, ItemStack stack) {
return new NetworkItemWirelessFluidGrid(handler, player, stack);
}
public static int getSortingType(ItemStack stack) {
return stack.getTagCompound().getInteger(TileGrid.NBT_SORTING_TYPE);
}
public static int getSortingDirection(ItemStack stack) {
return stack.getTagCompound().getInteger(TileGrid.NBT_SORTING_DIRECTION);
}
public static int getSearchBoxMode(ItemStack stack) {
return stack.getTagCompound().getInteger(TileGrid.NBT_SEARCH_BOX_MODE);
}
}

View File

@@ -0,0 +1,62 @@
package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
public class MessageWirelessFluidGridSettingsUpdate extends MessageHandlerPlayerToServer<MessageWirelessFluidGridSettingsUpdate> implements IMessage {
private int sortingDirection;
private int sortingType;
private int searchBoxMode;
public MessageWirelessFluidGridSettingsUpdate() {
}
public MessageWirelessFluidGridSettingsUpdate(int sortingDirection, int sortingType, int searchBoxMode) {
this.sortingDirection = sortingDirection;
this.sortingType = sortingType;
this.searchBoxMode = searchBoxMode;
}
@Override
public void fromBytes(ByteBuf buf) {
sortingDirection = buf.readInt();
sortingType = buf.readInt();
searchBoxMode = buf.readInt();
}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(sortingDirection);
buf.writeInt(sortingType);
buf.writeInt(searchBoxMode);
}
@Override
public void handle(MessageWirelessFluidGridSettingsUpdate message, EntityPlayerMP player) {
if (player.openContainer instanceof ContainerGrid) {
IGrid grid = ((ContainerGrid) player.openContainer).getGrid();
if (grid instanceof WirelessFluidGrid) {
ItemStack stack = ((WirelessFluidGrid) grid).getStack();
if (TileGrid.isValidSortingDirection(message.sortingDirection)) {
stack.getTagCompound().setInteger(TileGrid.NBT_SORTING_DIRECTION, message.sortingDirection);
}
if (TileGrid.isValidSortingType(message.sortingType)) {
stack.getTagCompound().setInteger(TileGrid.NBT_SORTING_TYPE, message.sortingType);
}
if (TileGrid.isValidSearchBoxMode(message.searchBoxMode)) {
stack.getTagCompound().setInteger(TileGrid.NBT_SEARCH_BOX_MODE, message.searchBoxMode);
}
}
}
}
}

View File

@@ -147,6 +147,7 @@ public class ProxyClient extends ProxyCommon {
ModelLoader.setCustomModelResourceLocation(RSItems.CORE, ItemCore.TYPE_DESTRUCTION, new ModelResourceLocation("refinedstorage:destruction_core", "inventory"));
ModelLoader.setCustomModelResourceLocation(RSItems.WIRELESS_GRID, 0, new ModelResourceLocation("refinedstorage:wireless_grid", "inventory"));
ModelLoader.setCustomModelResourceLocation(RSItems.WIRELESS_FLUID_GRID, 0, new ModelResourceLocation("refinedstorage:wireless_fluid_grid", "inventory"));
ModelLoader.setCustomModelResourceLocation(RSItems.WIRELESS_CRAFTING_MONITOR, 0, new ModelResourceLocation("refinedstorage:wireless_crafting_monitor", "inventory"));
ModelLoader.setCustomModelResourceLocation(RSItems.PATTERN, 0, new ModelResourceLocation("refinedstorage:pattern", "inventory"));
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_HOUSING, 0, new ModelResourceLocation("refinedstorage:storage_housing", "inventory"));

View File

@@ -121,6 +121,7 @@ public class ProxyCommon {
RS.INSTANCE.network.registerMessage(MessageReaderWriterChannelAdd.class, MessageReaderWriterChannelAdd.class, id++, Side.SERVER);
RS.INSTANCE.network.registerMessage(MessageReaderWriterChannelRemove.class, MessageReaderWriterChannelRemove.class, id++, Side.SERVER);
RS.INSTANCE.network.registerMessage(MessageSecurityManagerUpdate.class, MessageSecurityManagerUpdate.class, id++, Side.SERVER);
RS.INSTANCE.network.registerMessage(MessageWirelessFluidGridSettingsUpdate.class, MessageWirelessFluidGridSettingsUpdate.class, id++, Side.SERVER);
NetworkRegistry.INSTANCE.registerGuiHandler(RS.INSTANCE, new GuiHandler());
@@ -197,6 +198,8 @@ public class ProxyCommon {
registerItem(RSItems.STORAGE_PART);
registerItem(RSItems.FLUID_STORAGE_PART);
registerItem(RSItems.WIRELESS_GRID);
registerItem(RSItems.WIRELESS_FLUID_GRID);
registerItem(RSItems.WIRELESS_CRAFTING_MONITOR);
registerItem(RSItems.PROCESSOR);
registerItem(RSItems.CORE);
registerItem(RSItems.SILICON);
@@ -204,7 +207,6 @@ public class ProxyCommon {
registerItem(RSItems.GRID_FILTER);
registerItem(RSItems.NETWORK_CARD);
registerItem(RSItems.WRENCH);
registerItem(RSItems.WIRELESS_CRAFTING_MONITOR);
registerItem(RSItems.SECURITY_CARD);
OreDictionary.registerOre("itemSilicon", RSItems.SILICON);
@@ -360,6 +362,17 @@ public class ProxyCommon {
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
);
// Wireless Fluid Grid
GameRegistry.addRecipe(new ItemStack(RSItems.WIRELESS_FLUID_GRID, 1, ItemWirelessFluidGrid.TYPE_NORMAL),
"EPE",
"EGE",
"EAE",
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
'P', new ItemStack(Items.ENDER_PEARL),
'G', new ItemStack(RSBlocks.GRID, 1, EnumGridType.FLUID.getId()),
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
);
// Wireless Crafting Monitor
GameRegistry.addRecipe(new ItemStack(RSItems.WIRELESS_CRAFTING_MONITOR, 1, ItemWirelessCraftingMonitor.TYPE_NORMAL),
"EPE",

View File

@@ -7,6 +7,8 @@ import net.minecraft.util.math.BlockPos;
import javax.annotation.Nullable;
public interface ICraftingMonitor {
String getGuiTitle();
void onCancelled(EntityPlayerMP player, int id);
TileDataParameter<Integer> getRedstoneModeParameter();

View File

@@ -24,6 +24,11 @@ public class TileCraftingMonitor extends TileNode implements ICraftingMonitor {
return true;
}
@Override
public String getGuiTitle() {
return "gui.refinedstorage:crafting_monitor";
}
@Override
public void onCancelled(EntityPlayerMP player, int id) {
if (hasNetwork()) {

View File

@@ -19,6 +19,11 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
this.controller = new BlockPos(ItemWirelessCraftingMonitor.getX(stack), ItemWirelessCraftingMonitor.getY(stack), ItemWirelessCraftingMonitor.getZ(stack));
}
@Override
public String getGuiTitle() {
return "gui.refinedstorage:wireless_crafting_monitor";
}
@Override
public void onCancelled(EntityPlayerMP player, int id) {
TileController controller = getController();

View File

@@ -0,0 +1,182 @@
package com.raoulvdberge.refinedstorage.tile.grid;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler;
import com.raoulvdberge.refinedstorage.block.EnumGridType;
import com.raoulvdberge.refinedstorage.gui.grid.GridFilter;
import com.raoulvdberge.refinedstorage.gui.grid.GridTab;
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid;
import com.raoulvdberge.refinedstorage.network.MessageWirelessFluidGridSettingsUpdate;
import com.raoulvdberge.refinedstorage.tile.TileController;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
import java.util.Collections;
import java.util.List;
public class WirelessFluidGrid implements IGrid {
private ItemStack stack;
private int controllerDimension;
private BlockPos controller;
private int sortingType;
private int sortingDirection;
private int searchBoxMode;
public WirelessFluidGrid(int controllerDimension, ItemStack stack) {
this.controllerDimension = controllerDimension;
this.controller = new BlockPos(ItemWirelessFluidGrid.getX(stack), ItemWirelessFluidGrid.getY(stack), ItemWirelessFluidGrid.getZ(stack));
this.stack = stack;
this.sortingType = ItemWirelessFluidGrid.getSortingType(stack);
this.sortingDirection = ItemWirelessFluidGrid.getSortingDirection(stack);
this.searchBoxMode = ItemWirelessFluidGrid.getSearchBoxMode(stack);
}
public ItemStack getStack() {
return stack;
}
@Override
public EnumGridType getType() {
return EnumGridType.FLUID;
}
@Override
public BlockPos getNetworkPosition() {
return controller;
}
@Override
public IItemGridHandler getItemHandler() {
return null;
}
@Override
public IFluidGridHandler getFluidHandler() {
TileController controller = getController();
return controller != null ? controller.getFluidGridHandler() : null;
}
@Override
public String getGuiTitle() {
return "gui.refinedstorage:fluid_grid";
}
@Override
public int getViewType() {
return 0;
}
@Override
public int getSortingType() {
return sortingType;
}
@Override
public int getSortingDirection() {
return sortingDirection;
}
@Override
public int getSearchBoxMode() {
return searchBoxMode;
}
@Override
public int getTabSelected() {
return 0;
}
@Override
public void onViewTypeChanged(int type) {
// NO OP
}
@Override
public void onSortingTypeChanged(int type) {
RS.INSTANCE.network.sendToServer(new MessageWirelessFluidGridSettingsUpdate(getSortingDirection(), type, getSearchBoxMode()));
this.sortingType = type;
GuiGrid.markForSorting();
}
@Override
public void onSortingDirectionChanged(int direction) {
RS.INSTANCE.network.sendToServer(new MessageWirelessFluidGridSettingsUpdate(direction, getSortingType(), getSearchBoxMode()));
this.sortingDirection = direction;
GuiGrid.markForSorting();
}
@Override
public void onSearchBoxModeChanged(int searchBoxMode) {
RS.INSTANCE.network.sendToServer(new MessageWirelessFluidGridSettingsUpdate(getSortingDirection(), getSortingType(), searchBoxMode));
this.searchBoxMode = searchBoxMode;
}
@Override
public void onTabSelectionChanged(int tab) {
// NO OP
}
@Override
public List<GridFilter> getFilteredItems() {
return Collections.emptyList();
}
@Override
public List<GridTab> getTabs() {
return Collections.emptyList();
}
@Override
public ItemHandlerBasic getFilter() {
return null;
}
@Override
public TileDataParameter<Integer> getRedstoneModeConfig() {
return null;
}
@Override
public boolean isActive() {
return true;
}
public void onClose(EntityPlayer player) {
TileController controller = getController();
if (controller != null) {
controller.getNetworkItemHandler().onClose(player);
}
}
private TileController getController() {
World world = DimensionManager.getWorld(controllerDimension);
if (world != null) {
TileEntity tile = world.getTileEntity(controller);
return tile instanceof TileController ? (TileController) tile : null;
}
return null;
}
}

View File

@@ -6,6 +6,7 @@ gui.refinedstorage:grid=Grid
gui.refinedstorage:grid.craft=Craft
gui.refinedstorage:grid.pattern_create=Create Pattern
gui.refinedstorage:wireless_grid=Wireless Grid
gui.refinedstorage:wireless_fluid_grid=Wireless Fluid Grid
gui.refinedstorage:fluid_grid=Fluid Grid
gui.refinedstorage:disk_drive=Drive
gui.refinedstorage:disk_drive.disks=Disks
@@ -20,6 +21,7 @@ gui.refinedstorage:relay=Relay
gui.refinedstorage:interface.import=Interface Import
gui.refinedstorage:interface.export=Interface Export
gui.refinedstorage:crafting_monitor=Crafting Monitor
gui.refinedstorage:wireless_crafting_monitor=Wireless Crafting Monitor
gui.refinedstorage:crafting_monitor.fluids_taking=Fluids taking
gui.refinedstorage:crafting_monitor.items_crafting=Items crafting
gui.refinedstorage:crafting_monitor.items_processing=Items processing
@@ -221,6 +223,8 @@ item.refinedstorage:fluid_storage_disk.4.name=Creative Fluid Storage Disk
item.refinedstorage:fluid_storage_disk.5.name=Debug Fluid Storage Disk
item.refinedstorage:wireless_grid.0.name=Wireless Grid
item.refinedstorage:wireless_grid.1.name=Creative Wireless Grid
item.refinedstorage:wireless_fluid_grid.0.name=Wireless Fluid Grid
item.refinedstorage:wireless_fluid_grid.1.name=Creative Wireless Fluid Grid
item.refinedstorage:wireless_crafting_monitor.0.name=Wireless Crafting Monitor
item.refinedstorage:wireless_crafting_monitor.1.name=Creative Wireless Crafting Monitor
item.refinedstorage:quartz_enriched_iron.name=Quartz Enriched Iron

View File

@@ -0,0 +1,20 @@
{
"parent": "item/generated",
"textures": {
"layer0": "refinedstorage:items/wireless_fluid_grid_disconnected"
},
"overrides": [
{
"predicate": {
"connected": 0
},
"model": "refinedstorage:item/wireless_fluid_grid_disconnected"
},
{
"predicate": {
"connected": 1
},
"model": "refinedstorage:item/wireless_fluid_grid_connected"
}
]
}

View File

@@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "refinedstorage:items/wireless_fluid_grid_connected"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "refinedstorage:items/wireless_fluid_grid_disconnected"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B