Rewrite network item system. Added keybindings to open wireless items. The default one set to open a Wireless Grid is CTRL + G.
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
### 1.6.13
|
||||
- Fixed Interface with Crafting Upgrade being stuck if an earlier item configuration has missing items or fluids (raoulvdberge)
|
||||
- Added keybindings to open wireless items. The default one set to open a Wireless Grid is CTRL + G (raoulvdberge)
|
||||
|
||||
### 1.6.12
|
||||
- Increased the speed of autocrafting (raoulvdberge)
|
||||
|
@@ -2,30 +2,27 @@ package com.raoulvdberge.refinedstorage;
|
||||
|
||||
public final class RSGui {
|
||||
public static final int CONTROLLER = 0;
|
||||
public static final int GRID = 1;
|
||||
public static final int DISK_DRIVE = 2;
|
||||
public static final int IMPORTER = 3;
|
||||
public static final int EXPORTER = 4;
|
||||
public static final int DETECTOR = 5;
|
||||
public static final int DESTRUCTOR = 7;
|
||||
public static final int CONSTRUCTOR = 8;
|
||||
public static final int STORAGE = 9;
|
||||
public static final int RELAY = 10;
|
||||
public static final int INTERFACE = 11;
|
||||
public static final int WIRELESS_GRID = 12;
|
||||
public static final int CRAFTING_MONITOR = 13;
|
||||
public static final int WIRELESS_TRANSMITTER = 14;
|
||||
public static final int CRAFTER = 15;
|
||||
public static final int FILTER = 16;
|
||||
public static final int NETWORK_TRANSMITTER = 17;
|
||||
public static final int FLUID_INTERFACE = 18;
|
||||
public static final int EXTERNAL_STORAGE = 19;
|
||||
public static final int FLUID_STORAGE = 20;
|
||||
public static final int DISK_MANIPULATOR = 21;
|
||||
public static final int WIRELESS_CRAFTING_MONITOR = 22;
|
||||
public static final int READER_WRITER = 23;
|
||||
public static final int SECURITY_MANAGER = 24;
|
||||
public static final int STORAGE_MONITOR = 25;
|
||||
public static final int PORTABLE_GRID = 26;
|
||||
public static final int CRAFTER_MANAGER = 27;
|
||||
public static final int DISK_DRIVE = 1;
|
||||
public static final int IMPORTER = 2;
|
||||
public static final int EXPORTER = 3;
|
||||
public static final int DETECTOR = 4;
|
||||
public static final int DESTRUCTOR = 5;
|
||||
public static final int CONSTRUCTOR = 6;
|
||||
public static final int STORAGE = 7;
|
||||
public static final int RELAY = 8;
|
||||
public static final int INTERFACE = 9;
|
||||
public static final int CRAFTING_MONITOR = 10;
|
||||
public static final int WIRELESS_TRANSMITTER = 11;
|
||||
public static final int CRAFTER = 12;
|
||||
public static final int FILTER = 13;
|
||||
public static final int NETWORK_TRANSMITTER = 14;
|
||||
public static final int FLUID_INTERFACE = 15;
|
||||
public static final int EXTERNAL_STORAGE = 16;
|
||||
public static final int FLUID_STORAGE = 17;
|
||||
public static final int DISK_MANIPULATOR = 18;
|
||||
public static final int WIRELESS_CRAFTING_MONITOR = 19;
|
||||
public static final int READER_WRITER = 20;
|
||||
public static final int SECURITY_MANAGER = 21;
|
||||
public static final int STORAGE_MONITOR = 22;
|
||||
public static final int CRAFTER_MANAGER = 23;
|
||||
}
|
||||
|
@@ -9,9 +9,17 @@ import org.lwjgl.input.Keyboard;
|
||||
public final class RSKeyBindings {
|
||||
public static final KeyBinding FOCUS_SEARCH_BAR = new KeyBinding("key.refinedstorage.focusSearchBar", KeyConflictContext.GUI, Keyboard.KEY_TAB, "Refined Storage");
|
||||
public static final KeyBinding CLEAR_GRID_CRAFTING_MATRIX = new KeyBinding("key.refinedstorage.clearGridCraftingMatrix", KeyConflictContext.GUI, KeyModifier.CONTROL, Keyboard.KEY_X, "Refined Storage");
|
||||
public static final KeyBinding OPEN_WIRELESS_GRID = new KeyBinding("key.refinedstorage.openWirelessGrid", KeyConflictContext.IN_GAME, KeyModifier.CONTROL, Keyboard.KEY_G, "Refined Storage");
|
||||
public static final KeyBinding OPEN_WIRELESS_FLUID_GRID = new KeyBinding("key.refinedstorage.openWirelessFluidGrid", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
||||
public static final KeyBinding OPEN_PORTABLE_GRID = new KeyBinding("key.refinedstorage.openPortableGrid", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
||||
public static final KeyBinding OPEN_WIRELESS_CRAFTING_MONITOR = new KeyBinding("key.refinedstorage.openWirelessCraftingMonitor", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
||||
|
||||
public static void init() {
|
||||
ClientRegistry.registerKeyBinding(FOCUS_SEARCH_BAR);
|
||||
ClientRegistry.registerKeyBinding(CLEAR_GRID_CRAFTING_MATRIX);
|
||||
ClientRegistry.registerKeyBinding(OPEN_WIRELESS_GRID);
|
||||
ClientRegistry.registerKeyBinding(OPEN_WIRELESS_FLUID_GRID);
|
||||
ClientRegistry.registerKeyBinding(OPEN_PORTABLE_GRID);
|
||||
ClientRegistry.registerKeyBinding(OPEN_WIRELESS_CRAFTING_MONITOR);
|
||||
}
|
||||
}
|
@@ -8,8 +8,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRe
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.CraftingTaskReadException;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingRequestInfo;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridRegistry;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridManager;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeRegistry;
|
||||
@@ -25,10 +24,8 @@ import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IOneSixMigrationHelper;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IQuantityFormatter;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IStackList;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
@@ -121,10 +118,10 @@ public interface IRSAPI {
|
||||
ICraftingMonitorElementList createCraftingMonitorElementList();
|
||||
|
||||
/**
|
||||
* @return the wireless grid registry
|
||||
* @return the grid manager
|
||||
*/
|
||||
@Nonnull
|
||||
IWirelessGridRegistry getWirelessGridRegistry();
|
||||
IGridManager getGridManager();
|
||||
|
||||
/**
|
||||
* @return the storage disk registry
|
||||
@@ -218,16 +215,6 @@ public interface IRSAPI {
|
||||
*/
|
||||
List<ICraftingPatternRenderHandler> getPatternRenderHandlers();
|
||||
|
||||
/**
|
||||
* Opens a wireless grid for the given player.
|
||||
*
|
||||
* @param player the player
|
||||
* @param hand the hand where the wireless grid is in
|
||||
* @param networkDimension the dimension of the bound network
|
||||
* @param id the id of the wireless grid, as returned in {@link IWirelessGridRegistry#add(IWirelessGridFactory)}
|
||||
*/
|
||||
void openWirelessGrid(EntityPlayer player, EnumHand hand, int networkDimension, int id);
|
||||
|
||||
/**
|
||||
* Notifies the neighbors of a node that there is a node placed at the given position.
|
||||
*
|
||||
|
@@ -0,0 +1,15 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.grid;
|
||||
|
||||
/**
|
||||
* The type of grid factory.
|
||||
*/
|
||||
public enum GridFactoryType {
|
||||
/**
|
||||
* A grid factory for item stacks.
|
||||
*/
|
||||
STACK,
|
||||
/**
|
||||
* A grid factory for blocks with a position.
|
||||
*/
|
||||
BLOCK
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.grid;
|
||||
|
||||
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 javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Creates a grid.
|
||||
*/
|
||||
public interface IGridFactory {
|
||||
/**
|
||||
* Creates a grid from a stack. Used when {@link #getType()} is STACK.
|
||||
*
|
||||
* @param player the player
|
||||
* @param stack the stack
|
||||
* @return the grid, or null if a problem occurred
|
||||
*/
|
||||
@Nullable
|
||||
IGrid createFromStack(EntityPlayer player, ItemStack stack);
|
||||
|
||||
/**
|
||||
* Creates a grid from a block. Used when {@link #getType()} is BLOCK.
|
||||
*
|
||||
* @param player the player
|
||||
* @param pos the block position
|
||||
* @return the grid, or null if a problem occurred
|
||||
*/
|
||||
@Nullable
|
||||
IGrid createFromBlock(EntityPlayer player, BlockPos pos);
|
||||
|
||||
/**
|
||||
* Returns a possible tile for this grid if {@link #getType()} is BLOCK.
|
||||
*
|
||||
* @param world the world
|
||||
* @param pos the position
|
||||
* @return the tile, or null if no tile is required
|
||||
*/
|
||||
@Nullable
|
||||
TileEntity getRelevantTile(World world, BlockPos pos);
|
||||
|
||||
/**
|
||||
* @return the type
|
||||
*/
|
||||
GridFactoryType getType();
|
||||
}
|
@@ -0,0 +1,58 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.grid;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Manages {@link IGridFactory} instances and has code that opens grids.
|
||||
*/
|
||||
public interface IGridManager {
|
||||
/**
|
||||
* @param factory the factory
|
||||
* @return the id of this factory
|
||||
*/
|
||||
int add(IGridFactory factory);
|
||||
|
||||
/**
|
||||
* @param id the id of the factory
|
||||
* @return the factory, or null if no factory was found
|
||||
*/
|
||||
@Nullable
|
||||
IGridFactory get(int id);
|
||||
|
||||
/**
|
||||
* Opens a grid. Can only be called on the server.
|
||||
*
|
||||
* @param id the grid factory id as returned from {@link #add(IGridFactory)}
|
||||
* @param player the player
|
||||
* @param pos the block position
|
||||
*/
|
||||
void openGrid(int id, EntityPlayerMP player, BlockPos pos);
|
||||
|
||||
/**
|
||||
* Opens a grid. Can only be called on the server.
|
||||
*
|
||||
* @param id the grid factory id as returned from {@link #add(IGridFactory)}
|
||||
* @param player the player
|
||||
* @param stack the stack
|
||||
*/
|
||||
void openGrid(int id, EntityPlayerMP player, ItemStack stack);
|
||||
|
||||
/**
|
||||
* Creates a grid.
|
||||
*
|
||||
* @param id the grid factory id as returned from {@link #add(IGridFactory)}
|
||||
* @param player the player
|
||||
* @param stack the stack, if there is one
|
||||
* @param pos the block position, if there is one
|
||||
* @return a grid, or null if an error has occurred
|
||||
*/
|
||||
@Nullable
|
||||
Pair<IGrid, TileEntity> createGrid(int id, EntityPlayer player, @Nullable ItemStack stack, @Nullable BlockPos pos);
|
||||
}
|
@@ -1,23 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.grid.wireless;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
/**
|
||||
* A factory interface for a wireless grid.
|
||||
*/
|
||||
public interface IWirelessGridFactory {
|
||||
/**
|
||||
* Creates a new wireless grid.
|
||||
*
|
||||
* @param player the player
|
||||
* @param hand the hand
|
||||
* @param networkDimension the network dimension of the grid
|
||||
* @return the grid
|
||||
*/
|
||||
@Nonnull
|
||||
IGrid create(EntityPlayer player, EnumHand hand, int networkDimension);
|
||||
}
|
@@ -1,28 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.grid.wireless;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* A registry for wireless grid factories.
|
||||
*/
|
||||
public interface IWirelessGridRegistry {
|
||||
/**
|
||||
* Registers a new wireless grid factory.
|
||||
*
|
||||
* @param factory the factory
|
||||
* @return the id of this new wireless grid, use this id in {@link com.raoulvdberge.refinedstorage.api.IRSAPI#openWirelessGrid(EntityPlayer, EnumHand, int, int)}.
|
||||
*/
|
||||
int add(IWirelessGridFactory factory);
|
||||
|
||||
/**
|
||||
* Gets a wireless grid factory by id.
|
||||
*
|
||||
* @param id the id, as returned by {@link #add(IWirelessGridFactory)}
|
||||
* @return the wireless grid factory, or null if none is found
|
||||
*/
|
||||
@Nullable
|
||||
IWirelessGridFactory get(int id);
|
||||
}
|
@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.api.network.item;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
|
||||
/**
|
||||
* Represents a network item (an item that is connected to the network somehow).
|
||||
@@ -16,19 +15,15 @@ public interface INetworkItem {
|
||||
EntityPlayer getPlayer();
|
||||
|
||||
/**
|
||||
* Called when the network item is opened.
|
||||
* Called when the network item is being opened.
|
||||
*
|
||||
* @param network the network
|
||||
* @param player the player
|
||||
* @param hand the hand
|
||||
* @return true if the network item can be opened, false otherwise
|
||||
* @return true if the item can be opened, false otherwise
|
||||
*/
|
||||
boolean onOpen(INetwork network, EntityPlayer player, EnumHand hand);
|
||||
boolean onOpen(INetwork network);
|
||||
|
||||
/**
|
||||
* Called when an action occurs that is defined in {@link NetworkItemAction} and the network item is in use.
|
||||
*
|
||||
* @param action the action
|
||||
* @param energy the energy to extract
|
||||
*/
|
||||
void onAction(NetworkItemAction action);
|
||||
void drainEnergy(int energy);
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.item;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
@@ -14,16 +14,16 @@ public interface INetworkItemHandler {
|
||||
* Called when a player opens a network item.
|
||||
*
|
||||
* @param player the player that opened the network item
|
||||
* @param hand the hand the player opened it with
|
||||
* @param stack the stack that has been opened
|
||||
*/
|
||||
void onOpen(EntityPlayer player, EnumHand hand);
|
||||
void open(EntityPlayer player, ItemStack stack);
|
||||
|
||||
/**
|
||||
* Called when the player closes a network item.
|
||||
*
|
||||
* @param player the player that closed the network item
|
||||
*/
|
||||
void onClose(EntityPlayer player);
|
||||
void close(EntityPlayer player);
|
||||
|
||||
/**
|
||||
* Returns a {@link INetworkItem} for a player.
|
||||
@@ -33,4 +33,10 @@ public interface INetworkItemHandler {
|
||||
*/
|
||||
@Nullable
|
||||
INetworkItem getItem(EntityPlayer player);
|
||||
|
||||
/**
|
||||
* @param player the player
|
||||
* @param energy energy to extract
|
||||
*/
|
||||
void drainEnergy(EntityPlayer player, int energy);
|
||||
}
|
||||
|
@@ -1,36 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.item;
|
||||
|
||||
/**
|
||||
* Represents an network item action.
|
||||
* Called with {@link INetworkItem#onAction(NetworkItemAction)}.
|
||||
*/
|
||||
public enum NetworkItemAction {
|
||||
/**
|
||||
* Used when an item is inserted in a grid.
|
||||
*/
|
||||
ITEM_INSERTED,
|
||||
/**
|
||||
* Used when an item is extracted in a grid.
|
||||
*/
|
||||
ITEM_EXTRACTED,
|
||||
/**
|
||||
* Used when an item is crafted in a crafting grid (regular crafting, not autocrafting).
|
||||
*/
|
||||
ITEM_CRAFTED,
|
||||
/**
|
||||
* Used when a fluid is inserted in a grid.
|
||||
*/
|
||||
FLUID_INSERTED,
|
||||
/**
|
||||
* Used when a fluid is extracted in a grid.
|
||||
*/
|
||||
FLUID_EXTRACTED,
|
||||
/**
|
||||
* Used when a crafting task is cancelled in a crafting monitor.
|
||||
*/
|
||||
CRAFTING_TASK_CANCELLED,
|
||||
/**
|
||||
* Used when all crafting tasks are cancelled in a crafting monitor.
|
||||
*/
|
||||
CRAFTING_TASK_ALL_CANCELLED
|
||||
}
|
@@ -1,7 +1,5 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSGui;
|
||||
import com.raoulvdberge.refinedstorage.api.IRSAPI;
|
||||
import com.raoulvdberge.refinedstorage.api.RSAPIInject;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternRenderHandler;
|
||||
@@ -12,7 +10,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRe
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.CraftingTaskReadException;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingRequestInfo;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridRegistry;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridManager;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
|
||||
@@ -33,20 +31,18 @@ import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPrev
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskRegistry;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeManager;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeRegistry;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless.WirelessGridRegistry;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.GridManager;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterChannel;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.*;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.util.*;
|
||||
import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTBase;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.storage.MapStorage;
|
||||
@@ -67,7 +63,7 @@ public class API implements IRSAPI {
|
||||
private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry();
|
||||
private ICraftingPreviewElementRegistry craftingPreviewElementRegistry = new CraftingPreviewElementRegistry();
|
||||
private IReaderWriterHandlerRegistry readerWriterHandlerRegistry = new ReaderWriterHandlerRegistry();
|
||||
private IWirelessGridRegistry gridRegistry = new WirelessGridRegistry();
|
||||
private IGridManager gridManager = new GridManager();
|
||||
private IStorageDiskRegistry storageDiskRegistry = new StorageDiskRegistry();
|
||||
private IStorageDiskSync storageDiskSync = new StorageDiskSync();
|
||||
private IOneSixMigrationHelper oneSixMigrationHelper = new OneSixMigrationHelper();
|
||||
@@ -185,8 +181,8 @@ public class API implements IRSAPI {
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public IWirelessGridRegistry getWirelessGridRegistry() {
|
||||
return gridRegistry;
|
||||
public IGridManager getGridManager() {
|
||||
return gridManager;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@@ -277,11 +273,6 @@ public class API implements IRSAPI {
|
||||
return patternRenderHandlers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openWirelessGrid(EntityPlayer player, EnumHand hand, int networkDimension, int id) {
|
||||
player.openGui(RS.INSTANCE, RSGui.WIRELESS_GRID, player.getEntityWorld(), hand.ordinal(), networkDimension, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void discoverNode(World world, BlockPos pos) {
|
||||
for (EnumFacing facing : EnumFacing.VALUES) {
|
||||
|
@@ -0,0 +1,44 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
|
||||
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 javax.annotation.Nullable;
|
||||
|
||||
public class GridFactoryGridBlock implements IGridFactory {
|
||||
@Override
|
||||
@Nullable
|
||||
public IGrid createFromStack(EntityPlayer player, ItemStack stack) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public IGrid createFromBlock(EntityPlayer player, BlockPos pos) {
|
||||
TileEntity tile = getRelevantTile(player.world, pos);
|
||||
|
||||
if (tile instanceof TileGrid) {
|
||||
return ((TileGrid) tile).getNode();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity getRelevantTile(World world, BlockPos pos) {
|
||||
return world.getTileEntity(pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GridFactoryType getType() {
|
||||
return GridFactoryType.BLOCK;
|
||||
}
|
||||
}
|
@@ -0,0 +1,38 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
||||
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 javax.annotation.Nullable;
|
||||
|
||||
public class GridFactoryPortableGrid implements IGridFactory {
|
||||
@Nullable
|
||||
@Override
|
||||
public IGrid createFromStack(EntityPlayer player, ItemStack stack) {
|
||||
return new PortableGrid(player, stack);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IGrid createFromBlock(EntityPlayer player, BlockPos pos) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity getRelevantTile(World world, BlockPos pos) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GridFactoryType getType() {
|
||||
return GridFactoryType.STACK;
|
||||
}
|
||||
}
|
@@ -0,0 +1,44 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid;
|
||||
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 javax.annotation.Nullable;
|
||||
|
||||
public class GridFactoryPortableGridBlock implements IGridFactory {
|
||||
@Override
|
||||
@Nullable
|
||||
public IGrid createFromStack(EntityPlayer player, ItemStack stack) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public IGrid createFromBlock(EntityPlayer player, BlockPos pos) {
|
||||
TileEntity tile = getRelevantTile(player.world, pos);
|
||||
|
||||
if (tile instanceof TilePortableGrid) {
|
||||
return (TilePortableGrid) tile;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity getRelevantTile(World world, BlockPos pos) {
|
||||
return world.getTileEntity(pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GridFactoryType getType() {
|
||||
return GridFactoryType.BLOCK;
|
||||
}
|
||||
}
|
@@ -0,0 +1,38 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
|
||||
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 javax.annotation.Nullable;
|
||||
|
||||
public class GridFactoryWirelessFluidGrid implements IGridFactory {
|
||||
@Nullable
|
||||
@Override
|
||||
public IGrid createFromStack(EntityPlayer player, ItemStack stack) {
|
||||
return new WirelessFluidGrid(stack);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IGrid createFromBlock(EntityPlayer player, BlockPos pos) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity getRelevantTile(World world, BlockPos pos) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GridFactoryType getType() {
|
||||
return GridFactoryType.STACK;
|
||||
}
|
||||
}
|
@@ -0,0 +1,38 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
|
||||
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 javax.annotation.Nullable;
|
||||
|
||||
public class GridFactoryWirelessGrid implements IGridFactory {
|
||||
@Nullable
|
||||
@Override
|
||||
public IGrid createFromStack(EntityPlayer player, ItemStack stack) {
|
||||
return new WirelessGrid(stack);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IGrid createFromBlock(EntityPlayer player, BlockPos pos) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity getRelevantTile(World world, BlockPos pos) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GridFactoryType getType() {
|
||||
return GridFactoryType.STACK;
|
||||
}
|
||||
}
|
@@ -0,0 +1,100 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridManager;
|
||||
import com.raoulvdberge.refinedstorage.container.ContainerGrid;
|
||||
import com.raoulvdberge.refinedstorage.gui.ResizableDisplayDummy;
|
||||
import com.raoulvdberge.refinedstorage.network.MessageGridOpen;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.player.PlayerContainerEvent;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GridManager implements IGridManager {
|
||||
private List<IGridFactory> factories = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public int add(IGridFactory factory) {
|
||||
factories.add(factory);
|
||||
|
||||
return factories.size() - 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public IGridFactory get(int id) {
|
||||
if (id < 0 || id >= factories.size()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return factories.get(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openGrid(int id, EntityPlayerMP player, BlockPos pos) {
|
||||
openGrid(id, player, null, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openGrid(int id, EntityPlayerMP player, ItemStack stack) {
|
||||
openGrid(id, player, stack, null);
|
||||
}
|
||||
|
||||
private void openGrid(int id, EntityPlayerMP player, @Nullable ItemStack stack, @Nullable BlockPos pos) {
|
||||
Pair<IGrid, TileEntity> grid = createGrid(id, player, stack, pos);
|
||||
if (grid == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// @Volatile: FMLNetworkHandler#openGui
|
||||
player.getNextWindowId();
|
||||
player.closeContainer();
|
||||
|
||||
player.openContainer = new ContainerGrid(grid.getLeft(), new ResizableDisplayDummy(), grid.getRight() instanceof TileBase ? (TileBase) grid.getRight() : null, player);
|
||||
player.openContainer.windowId = player.currentWindowId;
|
||||
player.openContainer.addListener(player);
|
||||
|
||||
MinecraftForge.EVENT_BUS.post(new PlayerContainerEvent.Open(player, player.openContainer));
|
||||
|
||||
RS.INSTANCE.network.sendTo(new MessageGridOpen(player.currentWindowId, pos, id, stack), player);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Pair<IGrid, TileEntity> createGrid(int id, EntityPlayer player, @Nullable ItemStack stack, @Nullable BlockPos pos) {
|
||||
IGridFactory factory = get(id);
|
||||
|
||||
if (factory == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
IGrid grid = null;
|
||||
TileEntity tile = factory.getRelevantTile(player.world, pos);
|
||||
|
||||
switch (factory.getType()) {
|
||||
case STACK:
|
||||
grid = factory.createFromStack(player, stack);
|
||||
break;
|
||||
case BLOCK:
|
||||
grid = factory.createFromBlock(player, pos);
|
||||
break;
|
||||
}
|
||||
|
||||
if (grid == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Pair.of(grid, tile);
|
||||
}
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.container.ContainerGrid;
|
||||
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
||||
import com.raoulvdberge.refinedstorage.network.MessageGridOpen;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.fml.client.FMLClientHandler;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
public class GridOpenHandler implements Runnable {
|
||||
private MessageGridOpen message;
|
||||
|
||||
public GridOpenHandler(MessageGridOpen message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
EntityPlayer player = Minecraft.getMinecraft().player;
|
||||
|
||||
Pair<IGrid, TileEntity> grid = API.instance().getGridManager().createGrid(message.getGridId(), player, message.getStack(), message.getPos());
|
||||
|
||||
if (grid == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
GuiGrid gui = new GuiGrid(null, grid.getLeft());
|
||||
|
||||
// @Volatile: Just set the windowId: from OpenGuiHandler#process
|
||||
player.openContainer = new ContainerGrid(grid.getLeft(), gui, grid.getRight() instanceof TileBase ? (TileBase) grid.getRight() : null, player);
|
||||
player.openContainer.windowId = message.getWindowId();
|
||||
|
||||
gui.inventorySlots = player.openContainer;
|
||||
|
||||
FMLClientHandler.instance().showGuiScreen(gui);
|
||||
}
|
||||
}
|
@@ -6,8 +6,6 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTaskError;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
|
||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||
import com.raoulvdberge.refinedstorage.api.util.Action;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IStackList;
|
||||
@@ -78,11 +76,7 @@ public class FluidGridHandler implements IFluidGridHandler {
|
||||
player.updateHeldItem();
|
||||
}
|
||||
|
||||
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
|
||||
|
||||
if (networkItem != null) {
|
||||
networkItem.onAction(NetworkItemAction.FLUID_EXTRACTED);
|
||||
}
|
||||
network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessFluidGridExtractUsage);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -103,11 +97,7 @@ public class FluidGridHandler implements IFluidGridHandler {
|
||||
|
||||
network.insertFluid(result.getValue(), result.getValue().amount, Action.PERFORM);
|
||||
|
||||
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
|
||||
|
||||
if (networkItem != null) {
|
||||
networkItem.onAction(NetworkItemAction.FLUID_INSERTED);
|
||||
}
|
||||
network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessFluidGridInsertUsage);
|
||||
|
||||
return result.getLeft();
|
||||
}
|
||||
|
@@ -6,8 +6,6 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTaskError;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
|
||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||
import com.raoulvdberge.refinedstorage.api.util.Action;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IStackList;
|
||||
@@ -108,11 +106,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
||||
}
|
||||
}
|
||||
|
||||
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
|
||||
|
||||
if (networkItem != null) {
|
||||
networkItem.onAction(NetworkItemAction.ITEM_EXTRACTED);
|
||||
}
|
||||
network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridExtractUsage);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,11 +120,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
||||
|
||||
ItemStack remainder = network.insertItem(stack, stack.getCount(), Action.PERFORM);
|
||||
|
||||
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
|
||||
|
||||
if (networkItem != null) {
|
||||
networkItem.onAction(NetworkItemAction.ITEM_INSERTED);
|
||||
}
|
||||
network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridInsertUsage);
|
||||
|
||||
return remainder;
|
||||
}
|
||||
@@ -162,11 +152,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
||||
|
||||
player.updateHeldItem();
|
||||
|
||||
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
|
||||
|
||||
if (networkItem != null) {
|
||||
networkItem.onAction(NetworkItemAction.ITEM_INSERTED);
|
||||
}
|
||||
network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridInsertUsage);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -257,10 +243,6 @@ public class ItemGridHandler implements IItemGridHandler {
|
||||
|
||||
network.getCraftingManager().cancel(id);
|
||||
|
||||
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
|
||||
|
||||
if (networkItem != null) {
|
||||
networkItem.onAction(id == null ? NetworkItemAction.CRAFTING_TASK_ALL_CANCELLED : NetworkItemAction.CRAFTING_TASK_CANCELLED);
|
||||
}
|
||||
network.getNetworkItemHandler().drainEnergy(player, id == null ? RS.INSTANCE.config.wirelessCraftingMonitorCancelAllUsage : RS.INSTANCE.config.wirelessCraftingMonitorCancelUsage);
|
||||
}
|
||||
}
|
||||
|
@@ -1,17 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class WirelessGridFactoryPortableGrid implements IWirelessGridFactory {
|
||||
@Nonnull
|
||||
@Override
|
||||
public IGrid create(EntityPlayer player, EnumHand hand, int networkDimension) {
|
||||
return new PortableGrid(player, player.getHeldItem(hand));
|
||||
}
|
||||
}
|
@@ -1,17 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class WirelessGridFactoryWirelessFluidGrid implements IWirelessGridFactory {
|
||||
@Nonnull
|
||||
@Override
|
||||
public IGrid create(EntityPlayer player, EnumHand hand, int networkDimension) {
|
||||
return new WirelessFluidGrid(networkDimension, player.getHeldItem(hand));
|
||||
}
|
||||
}
|
@@ -1,17 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class WirelessGridFactoryWirelessGrid implements IWirelessGridFactory {
|
||||
@Nonnull
|
||||
@Override
|
||||
public IGrid create(EntityPlayer player, EnumHand hand, int networkDimension) {
|
||||
return new WirelessGrid(networkDimension, player.getHeldItem(hand));
|
||||
}
|
||||
}
|
@@ -1,26 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridFactory;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridRegistry;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class WirelessGridRegistry implements IWirelessGridRegistry {
|
||||
private int lastId = 0;
|
||||
private Map<Integer, IWirelessGridFactory> factories = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public int add(IWirelessGridFactory factory) {
|
||||
factories.put(lastId, factory);
|
||||
|
||||
return lastId++;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IWirelessGridFactory get(int id) {
|
||||
return factories.get(id);
|
||||
}
|
||||
}
|
@@ -7,7 +7,7 @@ import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.text.TextComponentTranslation;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -23,7 +23,7 @@ public class NetworkItemHandler implements INetworkItemHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOpen(EntityPlayer player, EnumHand hand) {
|
||||
public void open(EntityPlayer player, ItemStack stack) {
|
||||
boolean inRange = false;
|
||||
|
||||
for (INetworkNode node : network.getNodeGraph().all()) {
|
||||
@@ -46,15 +46,15 @@ public class NetworkItemHandler implements INetworkItemHandler {
|
||||
return;
|
||||
}
|
||||
|
||||
INetworkItem item = ((INetworkItemProvider) player.getHeldItem(hand).getItem()).provide(this, player, player.getHeldItem(hand));
|
||||
INetworkItem item = ((INetworkItemProvider) stack.getItem()).provide(this, player, stack);
|
||||
|
||||
if (item.onOpen(network, player, hand)) {
|
||||
if (item.onOpen(network)) {
|
||||
items.put(player, item);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClose(EntityPlayer player) {
|
||||
public void close(EntityPlayer player) {
|
||||
items.remove(player);
|
||||
}
|
||||
|
||||
@@ -62,4 +62,13 @@ public class NetworkItemHandler implements INetworkItemHandler {
|
||||
public INetworkItem getItem(EntityPlayer player) {
|
||||
return items.get(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drainEnergy(EntityPlayer player, int energy) {
|
||||
INetworkItem item = getItem(player);
|
||||
|
||||
if (item != null) {
|
||||
item.drainEnergy(energy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -5,13 +5,11 @@ import com.raoulvdberge.refinedstorage.RSGui;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
|
||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
|
||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraftforge.energy.CapabilityEnergy;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
|
||||
@@ -19,11 +17,13 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
|
||||
private INetworkItemHandler handler;
|
||||
private EntityPlayer player;
|
||||
private ItemStack stack;
|
||||
private int invIndex;
|
||||
|
||||
public NetworkItemWirelessCraftingMonitor(INetworkItemHandler handler, EntityPlayer player, ItemStack stack) {
|
||||
public NetworkItemWirelessCraftingMonitor(INetworkItemHandler handler, EntityPlayer player, ItemStack stack, int invIndex) {
|
||||
this.handler = handler;
|
||||
this.player = player;
|
||||
this.stack = stack;
|
||||
this.invIndex = invIndex;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -32,7 +32,7 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOpen(INetwork network, EntityPlayer player, EnumHand hand) {
|
||||
public boolean onOpen(INetwork network) {
|
||||
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessCraftingMonitorOpenUsage) {
|
||||
return false;
|
||||
}
|
||||
@@ -43,7 +43,7 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
|
||||
return false;
|
||||
}
|
||||
|
||||
player.openGui(RS.INSTANCE, RSGui.WIRELESS_CRAFTING_MONITOR, player.getEntityWorld(), hand.ordinal(), network.world().provider.getDimension(), 0);
|
||||
player.openGui(RS.INSTANCE, RSGui.WIRELESS_CRAFTING_MONITOR, player.getEntityWorld(), invIndex, 0, 0);
|
||||
|
||||
drainEnergy(RS.INSTANCE.config.wirelessCraftingMonitorOpenUsage);
|
||||
|
||||
@@ -51,25 +51,14 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAction(NetworkItemAction action) {
|
||||
switch (action) {
|
||||
case CRAFTING_TASK_CANCELLED:
|
||||
drainEnergy(RS.INSTANCE.config.wirelessCraftingMonitorCancelUsage);
|
||||
break;
|
||||
case CRAFTING_TASK_ALL_CANCELLED:
|
||||
drainEnergy(RS.INSTANCE.config.wirelessCraftingMonitorCancelAllUsage);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void drainEnergy(int energy) {
|
||||
public void drainEnergy(int energy) {
|
||||
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE) {
|
||||
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
|
||||
|
||||
energyStorage.extractEnergy(energy, false);
|
||||
|
||||
if (energyStorage.getEnergyStored() <= 0) {
|
||||
handler.onClose(player);
|
||||
handler.close(player);
|
||||
|
||||
player.closeScreen();
|
||||
}
|
||||
|
@@ -4,15 +4,14 @@ import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
|
||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
|
||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraftforge.energy.CapabilityEnergy;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
|
||||
@@ -33,7 +32,7 @@ public class NetworkItemWirelessFluidGrid implements INetworkItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOpen(INetwork network, EntityPlayer player, EnumHand hand) {
|
||||
public boolean onOpen(INetwork network) {
|
||||
if (RS.INSTANCE.config.wirelessFluidGridUsesEnergy && stack.getItemDamage() != ItemWirelessFluidGrid.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessFluidGridOpenUsage) {
|
||||
return false;
|
||||
}
|
||||
@@ -44,7 +43,7 @@ public class NetworkItemWirelessFluidGrid implements INetworkItem {
|
||||
return false;
|
||||
}
|
||||
|
||||
API.instance().openWirelessGrid(player, hand, network.world().provider.getDimension(), WirelessFluidGrid.ID);
|
||||
API.instance().getGridManager().openGrid(WirelessFluidGrid.ID, (EntityPlayerMP) player, stack);
|
||||
|
||||
drainEnergy(RS.INSTANCE.config.wirelessFluidGridOpenUsage);
|
||||
|
||||
@@ -52,25 +51,14 @@ public class NetworkItemWirelessFluidGrid implements INetworkItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAction(NetworkItemAction action) {
|
||||
switch (action) {
|
||||
case FLUID_INSERTED:
|
||||
drainEnergy(RS.INSTANCE.config.wirelessFluidGridInsertUsage);
|
||||
break;
|
||||
case FLUID_EXTRACTED:
|
||||
drainEnergy(RS.INSTANCE.config.wirelessFluidGridExtractUsage);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void drainEnergy(int energy) {
|
||||
public void drainEnergy(int energy) {
|
||||
if (RS.INSTANCE.config.wirelessFluidGridUsesEnergy && stack.getItemDamage() != ItemWirelessFluidGrid.TYPE_CREATIVE) {
|
||||
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
|
||||
|
||||
energyStorage.extractEnergy(energy, false);
|
||||
|
||||
if (energyStorage.getEnergyStored() <= 0) {
|
||||
handler.onClose(player);
|
||||
handler.close(player);
|
||||
|
||||
player.closeScreen();
|
||||
}
|
||||
|
@@ -4,15 +4,14 @@ import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
|
||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
|
||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraftforge.energy.CapabilityEnergy;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
|
||||
@@ -33,7 +32,7 @@ public class NetworkItemWirelessGrid implements INetworkItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOpen(INetwork network, EntityPlayer player, EnumHand hand) {
|
||||
public boolean onOpen(INetwork network) {
|
||||
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessGridOpenUsage) {
|
||||
return false;
|
||||
}
|
||||
@@ -44,7 +43,7 @@ public class NetworkItemWirelessGrid implements INetworkItem {
|
||||
return false;
|
||||
}
|
||||
|
||||
API.instance().openWirelessGrid(player, hand, network.world().provider.getDimension(), WirelessGrid.ID);
|
||||
API.instance().getGridManager().openGrid(WirelessGrid.ID, (EntityPlayerMP) player, stack);
|
||||
|
||||
drainEnergy(RS.INSTANCE.config.wirelessGridOpenUsage);
|
||||
|
||||
@@ -52,25 +51,14 @@ public class NetworkItemWirelessGrid implements INetworkItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAction(NetworkItemAction action) {
|
||||
switch (action) {
|
||||
case ITEM_INSERTED:
|
||||
drainEnergy(RS.INSTANCE.config.wirelessGridInsertUsage);
|
||||
break;
|
||||
case ITEM_EXTRACTED:
|
||||
drainEnergy(RS.INSTANCE.config.wirelessGridExtractUsage);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void drainEnergy(int energy) {
|
||||
public void drainEnergy(int energy) {
|
||||
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) {
|
||||
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
|
||||
|
||||
energyStorage.extractEnergy(energy, false);
|
||||
|
||||
if (energyStorage.getEnergyStored() <= 0) {
|
||||
handler.onClose(player);
|
||||
handler.close(player);
|
||||
|
||||
player.closeScreen();
|
||||
}
|
||||
|
@@ -7,8 +7,6 @@ import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.*;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
|
||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||
import com.raoulvdberge.refinedstorage.api.storage.IStorageCache;
|
||||
import com.raoulvdberge.refinedstorage.api.storage.IStorageCacheListener;
|
||||
@@ -58,6 +56,7 @@ import java.util.Set;
|
||||
|
||||
public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, IType {
|
||||
public static final String ID = "grid";
|
||||
public static int FACTORY_ID = 0;
|
||||
|
||||
public static final String NBT_VIEW_TYPE = "ViewType";
|
||||
public static final String NBT_SORTING_DIRECTION = "SortingDirection";
|
||||
@@ -496,14 +495,6 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I
|
||||
}
|
||||
|
||||
grid.onCraftingMatrixChanged();
|
||||
|
||||
if (network != null) {
|
||||
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
|
||||
|
||||
if (networkItem != null) {
|
||||
networkItem.onAction(NetworkItemAction.ITEM_CRAFTED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -1,8 +1,9 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSGui;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
|
||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
||||
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockBase;
|
||||
@@ -15,6 +16,7 @@ import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.BlockRenderLayer;
|
||||
@@ -89,7 +91,7 @@ public class BlockGrid extends BlockNode {
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
|
||||
return openNetworkGui(RSGui.GRID, player, world, pos, side);
|
||||
return openNetworkGui(player, world, pos, side, () -> API.instance().getGridManager().openGrid(NetworkNodeGrid.FACTORY_ID, (EntityPlayerMP) player, pos));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -58,6 +58,14 @@ public abstract class BlockNodeProxy extends BlockBase {
|
||||
}
|
||||
|
||||
protected boolean openNetworkGui(int guiId, EntityPlayer player, World world, BlockPos pos, EnumFacing facing, Permission... permissions) {
|
||||
return openNetworkGui(player, world, pos, facing, () -> player.openGui(info.getModObject(), guiId, world, pos.getX(), pos.getY(), pos.getZ()), permissions);
|
||||
}
|
||||
|
||||
protected boolean openNetworkGui(EntityPlayer player, World world, BlockPos pos, EnumFacing facing, Runnable action) {
|
||||
return openNetworkGui(player, world, pos, facing, action, Permission.MODIFY);
|
||||
}
|
||||
|
||||
protected boolean openNetworkGui(EntityPlayer player, World world, BlockPos pos, EnumFacing facing, Runnable action, Permission... permissions) {
|
||||
if (world.isRemote) {
|
||||
return true;
|
||||
}
|
||||
@@ -79,7 +87,7 @@ public abstract class BlockNodeProxy extends BlockBase {
|
||||
}
|
||||
}
|
||||
|
||||
player.openGui(info.getModObject(), guiId, world, pos.getX(), pos.getY(), pos.getZ());
|
||||
action.run();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSGui;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.block.enums.PortableGridDiskState;
|
||||
import com.raoulvdberge.refinedstorage.block.enums.PortableGridType;
|
||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
||||
@@ -21,6 +21,7 @@ import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.client.renderer.block.statemap.StateMap;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
@@ -131,7 +132,7 @@ public class BlockPortableGrid extends BlockBase {
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
|
||||
if (!world.isRemote) {
|
||||
player.openGui(RS.INSTANCE, RSGui.PORTABLE_GRID, world, pos.getX(), pos.getY(), pos.getZ());
|
||||
API.instance().getGridManager().openGrid(TilePortableGrid.FACTORY_ID, (EntityPlayerMP) player, pos);
|
||||
|
||||
((TilePortableGrid) world.getTileEntity(pos)).onOpened();
|
||||
}
|
||||
|
@@ -1,17 +1,12 @@
|
||||
package com.raoulvdberge.refinedstorage.gui;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RSGui;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCraftingMonitor;
|
||||
import com.raoulvdberge.refinedstorage.container.*;
|
||||
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
||||
import com.raoulvdberge.refinedstorage.tile.*;
|
||||
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
|
||||
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
@@ -25,10 +20,6 @@ public class GuiHandler implements IGuiHandler {
|
||||
switch (ID) {
|
||||
case RSGui.CONTROLLER:
|
||||
return new ContainerController((TileController) tile, player);
|
||||
case RSGui.GRID:
|
||||
return new ContainerGrid(((TileGrid) tile).getNode(), new ResizableDisplayDummy(), (TileGrid) tile, player);
|
||||
case RSGui.PORTABLE_GRID:
|
||||
return new ContainerGrid((TilePortableGrid) tile, new ResizableDisplayDummy(), (TilePortableGrid) tile, player);
|
||||
case RSGui.DISK_DRIVE:
|
||||
return new ContainerDiskDrive((TileDiskDrive) tile, player);
|
||||
case RSGui.IMPORTER:
|
||||
@@ -78,12 +69,10 @@ 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 getGridContainer(player, x, y, z);
|
||||
} else if (ID == RSGui.FILTER) {
|
||||
if (ID == RSGui.FILTER) {
|
||||
return getFilterContainer(player, x);
|
||||
} else if (ID == RSGui.WIRELESS_CRAFTING_MONITOR) {
|
||||
return getCraftingMonitorContainer(player, x, y);
|
||||
return getCraftingMonitorContainer(player, x);
|
||||
}
|
||||
|
||||
return getContainer(ID, player, world.getTileEntity(new BlockPos(x, y, z)));
|
||||
@@ -96,15 +85,6 @@ public class GuiHandler implements IGuiHandler {
|
||||
switch (ID) {
|
||||
case RSGui.CONTROLLER:
|
||||
return new GuiController((ContainerController) getContainer(ID, player, tile), (TileController) tile);
|
||||
case RSGui.GRID:
|
||||
case RSGui.PORTABLE_GRID: {
|
||||
IGrid grid = ID == RSGui.GRID ? ((TileGrid) tile).getNode() : (TilePortableGrid) tile;
|
||||
GuiGrid gui = new GuiGrid(null, grid);
|
||||
gui.inventorySlots = new ContainerGrid(grid, gui, null, player);
|
||||
return gui;
|
||||
}
|
||||
case RSGui.WIRELESS_GRID:
|
||||
return getGridGui(player, x, y, z);
|
||||
case RSGui.DISK_DRIVE:
|
||||
return new GuiStorage((ContainerDiskDrive) getContainer(ID, player, tile), ((TileDiskDrive) tile).getNode(), "gui/disk_drive.png");
|
||||
case RSGui.IMPORTER:
|
||||
@@ -146,7 +126,7 @@ public class GuiHandler implements IGuiHandler {
|
||||
case RSGui.DISK_MANIPULATOR:
|
||||
return new GuiDiskManipulator((ContainerDiskManipulator) getContainer(ID, player, tile));
|
||||
case RSGui.WIRELESS_CRAFTING_MONITOR:
|
||||
return getCraftingMonitorGui(player, x, y);
|
||||
return getWirelessCraftingMonitorGui(player, x);
|
||||
case RSGui.READER_WRITER:
|
||||
return new GuiReaderWriter((ContainerReaderWriter) getContainer(ID, player, tile), (IGuiReaderWriter) ((TileNode) tile).getNode());
|
||||
case RSGui.SECURITY_MANAGER:
|
||||
@@ -162,36 +142,20 @@ public class GuiHandler implements IGuiHandler {
|
||||
}
|
||||
}
|
||||
|
||||
private IGrid getGrid(EntityPlayer player, int hand, int networkDimension, int id) {
|
||||
return API.instance().getWirelessGridRegistry().get(id).create(player, EnumHand.values()[hand], networkDimension);
|
||||
private WirelessCraftingMonitor getWirelessCraftingMonitor(EntityPlayer player, int invIndex) {
|
||||
return new WirelessCraftingMonitor(player.inventory.getStackInSlot(invIndex));
|
||||
}
|
||||
|
||||
private GuiGrid getGridGui(EntityPlayer player, int hand, int networkDimension, int id) {
|
||||
IGrid grid = getGrid(player, hand, networkDimension, id);
|
||||
|
||||
GuiGrid gui = new GuiGrid(null, grid);
|
||||
gui.inventorySlots = new ContainerGrid(grid, gui, null, player);
|
||||
return gui;
|
||||
}
|
||||
|
||||
private ContainerGrid getGridContainer(EntityPlayer player, int hand, int networkDimension, int id) {
|
||||
return new ContainerGrid(getGrid(player, hand, networkDimension, id), new ResizableDisplayDummy(), null, player);
|
||||
}
|
||||
|
||||
private WirelessCraftingMonitor getCraftingMonitor(EntityPlayer player, int hand, int networkDimension) {
|
||||
return new WirelessCraftingMonitor(networkDimension, player.getHeldItem(EnumHand.values()[hand]));
|
||||
}
|
||||
|
||||
private GuiCraftingMonitor getCraftingMonitorGui(EntityPlayer player, int hand, int networkDimension) {
|
||||
WirelessCraftingMonitor craftingMonitor = getCraftingMonitor(player, hand, networkDimension);
|
||||
private GuiCraftingMonitor getWirelessCraftingMonitorGui(EntityPlayer player, int invIndex) {
|
||||
WirelessCraftingMonitor craftingMonitor = getWirelessCraftingMonitor(player, invIndex);
|
||||
|
||||
GuiCraftingMonitor gui = new GuiCraftingMonitor(null, craftingMonitor);
|
||||
gui.inventorySlots = new ContainerCraftingMonitor(craftingMonitor, null, player);
|
||||
return gui;
|
||||
}
|
||||
|
||||
private ContainerCraftingMonitor getCraftingMonitorContainer(EntityPlayer player, int hand, int networkDimension) {
|
||||
return new ContainerCraftingMonitor(getCraftingMonitor(player, hand, networkDimension), null, player);
|
||||
private ContainerCraftingMonitor getCraftingMonitorContainer(EntityPlayer player, int invIndex) {
|
||||
return new ContainerCraftingMonitor(getWirelessCraftingMonitor(player, invIndex), null, player);
|
||||
}
|
||||
|
||||
private ContainerFilter getFilterContainer(EntityPlayer player, int hand) {
|
||||
|
@@ -0,0 +1,43 @@
|
||||
package com.raoulvdberge.refinedstorage.gui;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||
import com.raoulvdberge.refinedstorage.RSItems;
|
||||
import com.raoulvdberge.refinedstorage.RSKeyBindings;
|
||||
import com.raoulvdberge.refinedstorage.network.MessageNetworkItemOpen;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.gameevent.InputEvent;
|
||||
|
||||
public class KeyInputListener {
|
||||
@SubscribeEvent
|
||||
public void onKeyInput(InputEvent.KeyInputEvent e) {
|
||||
InventoryPlayer inv = Minecraft.getMinecraft().player.inventory;
|
||||
|
||||
if (RSKeyBindings.OPEN_WIRELESS_GRID.isKeyDown()) {
|
||||
findAndOpen(inv, RSItems.WIRELESS_GRID);
|
||||
} else if (RSKeyBindings.OPEN_WIRELESS_FLUID_GRID.isKeyDown()) {
|
||||
findAndOpen(inv, RSItems.WIRELESS_FLUID_GRID);
|
||||
} else if (RSKeyBindings.OPEN_PORTABLE_GRID.isKeyDown()) {
|
||||
findAndOpen(inv, Item.getItemFromBlock(RSBlocks.PORTABLE_GRID));
|
||||
} else if (RSKeyBindings.OPEN_WIRELESS_CRAFTING_MONITOR.isKeyDown()) {
|
||||
findAndOpen(inv, RSItems.WIRELESS_CRAFTING_MONITOR);
|
||||
}
|
||||
}
|
||||
|
||||
private void findAndOpen(IInventory inv, Item search) {
|
||||
for (int i = 0; i < inv.getSizeInventory(); ++i) {
|
||||
ItemStack slot = inv.getStackInSlot(i);
|
||||
|
||||
if (slot.getItem() == search) {
|
||||
RS.INSTANCE.network.sendToServer(new MessageNetworkItemOpen(i));
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -47,7 +47,7 @@ public abstract class ItemNetworkItem extends ItemEnergyItem implements INetwork
|
||||
ItemStack stack = player.getHeldItem(hand);
|
||||
|
||||
if (!world.isRemote) {
|
||||
applyNetwork(stack, n -> n.getNetworkItemHandler().onOpen(player, hand), player::sendMessage);
|
||||
applyNetwork(stack, n -> n.getNetworkItemHandler().open(player, player.getHeldItem(hand)), player::sendMessage);
|
||||
}
|
||||
|
||||
return ActionResult.newResult(EnumActionResult.SUCCESS, stack);
|
||||
|
@@ -34,7 +34,15 @@ public class ItemWirelessCraftingMonitor extends ItemNetworkItem {
|
||||
@Override
|
||||
@Nonnull
|
||||
public INetworkItem provide(INetworkItemHandler handler, EntityPlayer player, ItemStack stack) {
|
||||
return new NetworkItemWirelessCraftingMonitor(handler, player, stack);
|
||||
int invIndex = 0;
|
||||
for (int i = 0; i < player.inventory.getSizeInventory(); ++i) {
|
||||
if (player.inventory.getStackInSlot(i) == stack) {
|
||||
invIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return new NetworkItemWirelessCraftingMonitor(handler, player, stack, invIndex);
|
||||
}
|
||||
|
||||
public static Optional<UUID> getTabSelected(ItemStack stack) {
|
||||
|
@@ -8,6 +8,7 @@ import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.client.util.ITooltipFlag;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.EnumActionResult;
|
||||
@@ -29,7 +30,7 @@ public class ItemBlockPortableGrid extends ItemBlockEnergyItem {
|
||||
ItemStack stack = player.getHeldItem(hand);
|
||||
|
||||
if (!world.isRemote) {
|
||||
API.instance().openWirelessGrid(player, hand, world.provider.getDimension(), PortableGrid.ID);
|
||||
API.instance().getGridManager().openGrid(PortableGrid.ID, (EntityPlayerMP) player, stack);
|
||||
}
|
||||
|
||||
return ActionResult.newResult(EnumActionResult.SUCCESS, stack);
|
||||
|
@@ -0,0 +1,93 @@
|
||||
package com.raoulvdberge.refinedstorage.network;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.GridOpenHandler;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class MessageGridOpen implements IMessage, IMessageHandler<MessageGridOpen, IMessage> {
|
||||
private int windowId;
|
||||
@Nullable
|
||||
private BlockPos pos;
|
||||
@Nullable
|
||||
private ItemStack stack;
|
||||
private int gridId;
|
||||
|
||||
public MessageGridOpen() {
|
||||
}
|
||||
|
||||
public MessageGridOpen(int windowId, @Nullable BlockPos pos, int gridId, @Nullable ItemStack stack) {
|
||||
if (pos == null && stack == null) {
|
||||
throw new IllegalArgumentException("Can't be both null");
|
||||
}
|
||||
|
||||
this.windowId = windowId;
|
||||
this.pos = pos;
|
||||
this.stack = stack;
|
||||
this.gridId = gridId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
windowId = buf.readInt();
|
||||
gridId = buf.readInt();
|
||||
|
||||
if (buf.readBoolean()) {
|
||||
pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
|
||||
}
|
||||
|
||||
if (buf.readBoolean()) {
|
||||
stack = ByteBufUtils.readItemStack(buf);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(windowId);
|
||||
buf.writeInt(gridId);
|
||||
|
||||
buf.writeBoolean(pos != null);
|
||||
if (pos != null) {
|
||||
buf.writeInt(pos.getX());
|
||||
buf.writeInt(pos.getY());
|
||||
buf.writeInt(pos.getZ());
|
||||
}
|
||||
|
||||
buf.writeBoolean(stack != null);
|
||||
if (stack != null) {
|
||||
ByteBufUtils.writeItemStack(buf, stack);
|
||||
}
|
||||
}
|
||||
|
||||
public int getWindowId() {
|
||||
return windowId;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public BlockPos getPos() {
|
||||
return pos;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ItemStack getStack() {
|
||||
return stack;
|
||||
}
|
||||
|
||||
public int getGridId() {
|
||||
return gridId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMessage onMessage(MessageGridOpen message, MessageContext ctx) {
|
||||
Minecraft.getMinecraft().addScheduledTask(new GridOpenHandler(message));
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
@@ -0,0 +1,43 @@
|
||||
package com.raoulvdberge.refinedstorage.network;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.item.ItemNetworkItem;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
|
||||
public class MessageNetworkItemOpen extends MessageHandlerPlayerToServer<MessageNetworkItemOpen> implements IMessage {
|
||||
private int slotId;
|
||||
|
||||
public MessageNetworkItemOpen() {
|
||||
}
|
||||
|
||||
public MessageNetworkItemOpen(int slotId) {
|
||||
this.slotId = slotId;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handle(MessageNetworkItemOpen message, EntityPlayerMP player) {
|
||||
ItemStack stack = player.inventory.getStackInSlot(message.slotId);
|
||||
|
||||
if (stack.getItem() instanceof ItemNetworkItem) {
|
||||
((ItemNetworkItem) stack.getItem()).applyNetwork(stack, n -> n.getNetworkItemHandler().open(player, player.inventory.getStackInSlot(message.slotId)), player::sendMessage);
|
||||
} else if (stack.getItem() == Item.getItemFromBlock(RSBlocks.PORTABLE_GRID)) { // @Hack
|
||||
API.instance().getGridManager().openGrid(PortableGrid.ID, player, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
slotId = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(slotId);
|
||||
}
|
||||
}
|
@@ -2,6 +2,7 @@ package com.raoulvdberge.refinedstorage.proxy;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RSKeyBindings;
|
||||
import com.raoulvdberge.refinedstorage.block.BlockBase;
|
||||
import com.raoulvdberge.refinedstorage.gui.KeyInputListener;
|
||||
import com.raoulvdberge.refinedstorage.item.ItemBase;
|
||||
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||
import com.raoulvdberge.refinedstorage.render.collision.BlockHighlightListener;
|
||||
@@ -45,6 +46,7 @@ public class ProxyClient extends ProxyCommon implements IModelRegistration {
|
||||
super.preInit(e);
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(new BlockHighlightListener());
|
||||
MinecraftForge.EVENT_BUS.register(new KeyInputListener());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -13,10 +13,9 @@ import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPrev
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskFactory;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless.WirelessGridFactoryPortableGrid;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless.WirelessGridFactoryWirelessFluidGrid;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless.WirelessGridFactoryWirelessGrid;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.*;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerFluids;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerItems;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRedstone;
|
||||
@@ -52,6 +51,7 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid;
|
||||
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
@@ -91,6 +91,12 @@ public class ProxyCommon {
|
||||
|
||||
API.deliver(e.getAsmData());
|
||||
|
||||
NetworkNodeGrid.FACTORY_ID = API.instance().getGridManager().add(new GridFactoryGridBlock());
|
||||
WirelessGrid.ID = API.instance().getGridManager().add(new GridFactoryWirelessGrid());
|
||||
WirelessFluidGrid.ID = API.instance().getGridManager().add(new GridFactoryWirelessFluidGrid());
|
||||
TilePortableGrid.FACTORY_ID = API.instance().getGridManager().add(new GridFactoryPortableGridBlock());
|
||||
PortableGrid.ID = API.instance().getGridManager().add(new GridFactoryPortableGrid());
|
||||
|
||||
API.instance().getCraftingTaskRegistry().add(CraftingTaskFactory.ID, new CraftingTaskFactory());
|
||||
|
||||
API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementItemRender.ID, buf -> new CraftingMonitorElementItemRender(StackUtils.readItemStack(buf), buf.readInt(), buf.readInt(), buf.readInt(), buf.readInt(), buf.readInt()));
|
||||
@@ -184,6 +190,8 @@ public class ProxyCommon {
|
||||
RS.INSTANCE.network.registerMessage(MessageSlotFilterSet.class, MessageSlotFilterSet.class, id++, Side.SERVER);
|
||||
RS.INSTANCE.network.registerMessage(MessageSlotFilterSetFluid.class, MessageSlotFilterSetFluid.class, id++, Side.SERVER);
|
||||
RS.INSTANCE.network.registerMessage(MessageSlotFilterFluidUpdate.class, MessageSlotFilterFluidUpdate.class, id++, Side.CLIENT);
|
||||
RS.INSTANCE.network.registerMessage(MessageGridOpen.class, MessageGridOpen.class, id++, Side.CLIENT);
|
||||
RS.INSTANCE.network.registerMessage(MessageNetworkItemOpen.class, MessageNetworkItemOpen.class, id++, Side.SERVER);
|
||||
|
||||
NetworkRegistry.INSTANCE.registerGuiHandler(RS.INSTANCE, new GuiHandler());
|
||||
|
||||
@@ -252,10 +260,6 @@ public class ProxyCommon {
|
||||
GameRegistry.addSmelting(new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_CUT_IMPROVED), new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED), 0.5F);
|
||||
GameRegistry.addSmelting(new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_CUT_ADVANCED), new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED), 0.5F);
|
||||
|
||||
WirelessGrid.ID = API.instance().getWirelessGridRegistry().add(new WirelessGridFactoryWirelessGrid());
|
||||
WirelessFluidGrid.ID = API.instance().getWirelessGridRegistry().add(new WirelessGridFactoryWirelessFluidGrid());
|
||||
PortableGrid.ID = API.instance().getWirelessGridRegistry().add(new WirelessGridFactoryPortableGrid());
|
||||
|
||||
if (IntegrationOC.isLoaded()) {
|
||||
DriverNetwork.register();
|
||||
}
|
||||
|
@@ -29,9 +29,9 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
||||
private int tabPage;
|
||||
private Optional<UUID> tabSelected;
|
||||
|
||||
public WirelessCraftingMonitor(int networkDimension, ItemStack stack) {
|
||||
public WirelessCraftingMonitor(ItemStack stack) {
|
||||
this.stack = stack;
|
||||
this.networkDimension = networkDimension;
|
||||
this.networkDimension = ItemWirelessCraftingMonitor.getDimensionId(stack);
|
||||
this.network = new BlockPos(ItemWirelessCraftingMonitor.getX(stack), ItemWirelessCraftingMonitor.getY(stack), ItemWirelessCraftingMonitor.getZ(stack));
|
||||
this.tabPage = ItemWirelessCraftingMonitor.getTabPage(stack);
|
||||
this.tabSelected = ItemWirelessCraftingMonitor.getTabSelected(stack);
|
||||
@@ -105,7 +105,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
||||
INetwork network = getNetwork();
|
||||
|
||||
if (network != null) {
|
||||
network.getNetworkItemHandler().onClose(player);
|
||||
network.getNetworkItemHandler().close(player);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -62,8 +62,8 @@ public class WirelessFluidGrid implements IGridNetworkAware {
|
||||
}
|
||||
};
|
||||
|
||||
public WirelessFluidGrid(int networkDimension, ItemStack stack) {
|
||||
this.networkDimension = networkDimension;
|
||||
public WirelessFluidGrid(ItemStack stack) {
|
||||
this.networkDimension = ItemWirelessFluidGrid.getDimensionId(stack);
|
||||
this.network = new BlockPos(ItemWirelessFluidGrid.getX(stack), ItemWirelessFluidGrid.getY(stack), ItemWirelessFluidGrid.getZ(stack));
|
||||
|
||||
this.stack = stack;
|
||||
@@ -299,7 +299,7 @@ public class WirelessFluidGrid implements IGridNetworkAware {
|
||||
INetwork network = getNetwork();
|
||||
|
||||
if (network != null) {
|
||||
network.getNetworkItemHandler().onClose(player);
|
||||
network.getNetworkItemHandler().close(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -63,8 +63,8 @@ public class WirelessGrid implements IGridNetworkAware {
|
||||
}
|
||||
};
|
||||
|
||||
public WirelessGrid(int networkDimension, ItemStack stack) {
|
||||
this.networkDimension = networkDimension;
|
||||
public WirelessGrid(ItemStack stack) {
|
||||
this.networkDimension = ItemWirelessGrid.getDimensionId(stack);
|
||||
this.network = new BlockPos(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack));
|
||||
|
||||
this.stack = stack;
|
||||
@@ -305,7 +305,7 @@ public class WirelessGrid implements IGridNetworkAware {
|
||||
INetwork network = getNetwork();
|
||||
|
||||
if (network != null) {
|
||||
network.getNetworkItemHandler().onClose(player);
|
||||
network.getNetworkItemHandler().close(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -62,6 +62,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, IRedstoneConfigurable, IStorageDiskContainerContext, IPortableGrid.IPortableGridRenderInfo {
|
||||
public static int FACTORY_ID;
|
||||
|
||||
public static final TileDataParameter<Integer, TilePortableGrid> REDSTONE_MODE = RedstoneMode.createParameter();
|
||||
private static final TileDataParameter<Integer, TilePortableGrid> ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.energyStorage.getEnergyStored());
|
||||
private static final TileDataParameter<Integer, TilePortableGrid> SORTING_DIRECTION = new TileDataParameter<>(DataSerializers.VARINT, 0, TilePortableGrid::getSortingDirection, (t, v) -> {
|
||||
|
@@ -3,6 +3,10 @@ itemGroup.refinedstorage.covers=Refined Storage Covers
|
||||
|
||||
key.refinedstorage.focusSearchBar=Focus Grid Search Bar
|
||||
key.refinedstorage.clearGridCraftingMatrix=Clear Grid Crafting Matrix
|
||||
key.refinedstorage.openWirelessGrid=Open Wireless Grid
|
||||
key.refinedstorage.openWirelessFluidGrid=Open Wireless Fluid Grid
|
||||
key.refinedstorage.openPortableGrid=Open Portable Grid
|
||||
key.refinedstorage.openWirelessCraftingMonitor=Open Wireless Crafting Monitor
|
||||
|
||||
gui.refinedstorage:controller.0=Controller
|
||||
gui.refinedstorage:controller.1=Creative Controller
|
||||
|
Reference in New Issue
Block a user