Add fluid grid handler
This commit is contained in:
@@ -7,6 +7,7 @@ import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import refinedstorage.api.autocrafting.ICraftingTask;
|
||||
import refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.api.storage.fluid.IGroupedFluidStorage;
|
||||
@@ -50,6 +51,11 @@ public interface INetworkMaster {
|
||||
*/
|
||||
IItemGridHandler getItemGridHandler();
|
||||
|
||||
/**
|
||||
* @return The {@link IFluidGridHandler} for this network
|
||||
*/
|
||||
IFluidGridHandler getFluidGridHandler();
|
||||
|
||||
/**
|
||||
* @return The {@link IWirelessGridHandler} for this network
|
||||
*/
|
||||
|
||||
@@ -2,6 +2,7 @@ package refinedstorage.api.network;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
|
||||
@@ -29,6 +30,10 @@ public final class NetworkUtils {
|
||||
return stack.getItem().hashCode() * (stack.getItemDamage() + 1) * (stack.hasTagCompound() ? stack.getTagCompound().hashCode() : 1);
|
||||
}
|
||||
|
||||
public static int getFluidStackHashCode(FluidStack stack) {
|
||||
return stack.getFluid().hashCode() * (stack.tag != null ? stack.tag.hashCode() : 1);
|
||||
}
|
||||
|
||||
public static int getNodeHashCode(World world, INetworkNode node) {
|
||||
int result = node.getPosition().hashCode();
|
||||
result = 31 * result + world.provider.getDimension();
|
||||
|
||||
36
src/main/java/refinedstorage/api/network/grid/IFluidGridHandler.java
Executable file
36
src/main/java/refinedstorage/api/network/grid/IFluidGridHandler.java
Executable file
@@ -0,0 +1,36 @@
|
||||
package refinedstorage.api.network.grid;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Defines the behavior of item grids.
|
||||
*/
|
||||
public interface IFluidGridHandler {
|
||||
/**
|
||||
* Called when a player tries to extract a fluid from the grid.
|
||||
*
|
||||
* @param hash The hash of the fluid we're trying to extract, see {@link refinedstorage.api.network.NetworkUtils#getFluidStackHashCode(net.minecraftforge.fluids.FluidStack)}
|
||||
* @param shift If we're shift clicking
|
||||
* @param player The player that is attempting the extraction
|
||||
*/
|
||||
void onExtract(int hash, boolean shift, EntityPlayerMP player);
|
||||
|
||||
/**
|
||||
* Called when a player tries to insert fluids to the grid.
|
||||
*
|
||||
* @param container A stack with a container we're trying to insert
|
||||
* @return The remainder, or null if there is no remainder
|
||||
*/
|
||||
@Nullable
|
||||
ItemStack onInsert(ItemStack container);
|
||||
|
||||
/**
|
||||
* Called when a player is trying to insert a fluid that it is holding in their hand in the GUI.
|
||||
*
|
||||
* @param player The player that is attempting the insert
|
||||
*/
|
||||
void onInsertHeldContainer(EntityPlayerMP player);
|
||||
}
|
||||
33
src/main/java/refinedstorage/apiimpl/network/grid/FluidGridHandler.java
Executable file
33
src/main/java/refinedstorage/apiimpl/network/grid/FluidGridHandler.java
Executable file
@@ -0,0 +1,33 @@
|
||||
package refinedstorage.apiimpl.network.grid;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class FluidGridHandler implements IFluidGridHandler {
|
||||
private INetworkMaster network;
|
||||
|
||||
public FluidGridHandler(INetworkMaster network) {
|
||||
this.network = network;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExtract(int hash, boolean shift, EntityPlayerMP player) {
|
||||
System.out.println("Extract " + hash);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ItemStack onInsert(ItemStack container) {
|
||||
System.out.println("Insert " + container);
|
||||
return container;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInsertHeldContainer(EntityPlayerMP player) {
|
||||
System.out.println("Insert held!");
|
||||
}
|
||||
}
|
||||
@@ -106,8 +106,12 @@ public class ContainerGrid extends ContainerBase {
|
||||
if (slot.getHasStack()) {
|
||||
if (slot == craftingResultSlot) {
|
||||
((TileGrid) grid).onCraftedShift(this, player);
|
||||
} else if (grid.getHandler() != null && slot != patternResultSlot && !(slot instanceof SlotSpecimenLegacy) && grid.getType() != EnumGridType.FLUID) {
|
||||
slot.putStack(grid.getHandler().onInsert(slot.getStack()));
|
||||
} else if (slot != patternResultSlot && !(slot instanceof SlotSpecimenLegacy)) {
|
||||
if (grid.getType() != EnumGridType.FLUID && grid.getItemHandler() != null) {
|
||||
slot.putStack(grid.getItemHandler().onInsert(slot.getStack()));
|
||||
} else if (grid.getType() == EnumGridType.FLUID && grid.getFluidHandler() != null) {
|
||||
slot.putStack(grid.getFluidHandler().onInsert(slot.getStack()));
|
||||
}
|
||||
|
||||
detectAndSendChanges();
|
||||
}
|
||||
|
||||
@@ -27,10 +27,7 @@ import refinedstorage.gui.grid.stack.ClientStackItem;
|
||||
import refinedstorage.gui.grid.stack.IClientStack;
|
||||
import refinedstorage.gui.sidebutton.*;
|
||||
import refinedstorage.integration.jei.IntegrationJEI;
|
||||
import refinedstorage.network.MessageGridCraftingClear;
|
||||
import refinedstorage.network.MessageGridInsertHeld;
|
||||
import refinedstorage.network.MessageGridPatternCreate;
|
||||
import refinedstorage.network.MessageGridPull;
|
||||
import refinedstorage.network.*;
|
||||
import refinedstorage.tile.grid.IGrid;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
import refinedstorage.tile.grid.WirelessGrid;
|
||||
@@ -352,7 +349,7 @@ public class GuiGrid extends GuiBase {
|
||||
BlockPos gridPos = ((TileGrid) grid).getPos();
|
||||
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridPatternCreate(gridPos.getX(), gridPos.getY(), gridPos.getZ()));
|
||||
} else if (grid.isConnected() && grid.getType() != EnumGridType.FLUID) {
|
||||
} else if (grid.isConnected()) {
|
||||
if (clickedClear) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridCraftingClear((TileGrid) grid));
|
||||
}
|
||||
@@ -360,30 +357,34 @@ public class GuiGrid extends GuiBase {
|
||||
ItemStack held = container.getPlayer().inventory.getItemStack();
|
||||
|
||||
if (isOverSlotArea(mouseX - guiLeft, mouseY - guiTop) && held != null && (clickedButton == 0 || clickedButton == 1)) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridInsertHeld(clickedButton == 1));
|
||||
RefinedStorage.INSTANCE.network.sendToServer(grid.getType() == EnumGridType.FLUID ? new MessageGridFluidInsertHeld() : new MessageGridItemInsertHeld(clickedButton == 1));
|
||||
}
|
||||
|
||||
if (isOverSlotWithItem() && (held == null || (held != null && clickedButton == 2))) {
|
||||
ClientStackItem stack = (ClientStackItem) STACKS.get(slotNumber);
|
||||
if (grid.getType() != EnumGridType.FLUID) {
|
||||
ClientStackItem stack = (ClientStackItem) STACKS.get(slotNumber);
|
||||
|
||||
if (stack.isCraftable() && (stack.getQuantity() == 0 || (GuiScreen.isShiftKeyDown() && GuiScreen.isCtrlKeyDown()))) {
|
||||
FMLCommonHandler.instance().showGuiScreen(new GuiCraftingSettings(this, container.getPlayer(), stack));
|
||||
if (stack.isCraftable() && (stack.getQuantity() == 0 || (GuiScreen.isShiftKeyDown() && GuiScreen.isCtrlKeyDown()))) {
|
||||
FMLCommonHandler.instance().showGuiScreen(new GuiCraftingSettings(this, container.getPlayer(), stack));
|
||||
} else {
|
||||
int flags = 0;
|
||||
|
||||
if (clickedButton == 1) {
|
||||
flags |= IItemGridHandler.EXTRACT_HALF;
|
||||
}
|
||||
|
||||
if (GuiScreen.isShiftKeyDown()) {
|
||||
flags |= IItemGridHandler.EXTRACT_SHIFT;
|
||||
}
|
||||
|
||||
if (clickedButton == 2) {
|
||||
flags |= IItemGridHandler.EXTRACT_SINGLE;
|
||||
}
|
||||
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridItemPull(stack.getHash(), flags));
|
||||
}
|
||||
} else {
|
||||
int flags = 0;
|
||||
|
||||
if (clickedButton == 1) {
|
||||
flags |= IItemGridHandler.EXTRACT_HALF;
|
||||
}
|
||||
|
||||
if (GuiScreen.isShiftKeyDown()) {
|
||||
flags |= IItemGridHandler.EXTRACT_SHIFT;
|
||||
}
|
||||
|
||||
if (clickedButton == 2) {
|
||||
flags |= IItemGridHandler.EXTRACT_SINGLE;
|
||||
}
|
||||
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridPull(stack.getHash(), flags));
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridFluidPull(STACKS.get(slotNumber).getHash(), GuiScreen.isShiftKeyDown()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,32 +6,40 @@ import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
||||
import refinedstorage.api.network.NetworkUtils;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class ClientStackFluid implements IClientStack {
|
||||
private int hash;
|
||||
private FluidStack stack;
|
||||
private FluidStackRenderer renderer;
|
||||
|
||||
public ClientStackFluid(ByteBuf buf) {
|
||||
stack = new FluidStack(FluidRegistry.getFluid(ByteBufUtils.readUTF8String(buf)), buf.readInt(), ByteBufUtils.readTag(buf));
|
||||
renderer = new FluidStackRenderer(1000, false, 16, 16, null);
|
||||
this.hash = buf.readInt();
|
||||
this.stack = new FluidStack(FluidRegistry.getFluid(ByteBufUtils.readUTF8String(buf)), buf.readInt(), ByteBufUtils.readTag(buf));
|
||||
// @TODO: Switch to own implementation
|
||||
this.renderer = new FluidStackRenderer(1000, false, 16, 16, null);
|
||||
}
|
||||
|
||||
public FluidStack getStack() {
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHash() {
|
||||
return hash;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return stack.getFluid().getLocalizedName(stack);
|
||||
}
|
||||
|
||||
// @todo: ;-)
|
||||
@Override
|
||||
public String getModId() {
|
||||
return "minecraft";
|
||||
return stack.getFluid().getStill(stack).getResourceDomain();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -57,6 +65,7 @@ public class ClientStackFluid implements IClientStack {
|
||||
}
|
||||
|
||||
public static void write(ByteBuf buf, FluidStack stack) {
|
||||
buf.writeInt(NetworkUtils.getFluidStackHashCode(stack));
|
||||
ByteBufUtils.writeUTF8String(buf, FluidRegistry.getFluidName(stack.getFluid()));
|
||||
buf.writeInt(stack.amount);
|
||||
ByteBufUtils.writeTag(buf, stack.tag);
|
||||
|
||||
@@ -24,10 +24,6 @@ public class ClientStackItem implements IClientStack {
|
||||
craftable = buf.readBoolean();
|
||||
}
|
||||
|
||||
public int getHash() {
|
||||
return hash;
|
||||
}
|
||||
|
||||
public ItemStack getStack() {
|
||||
return stack;
|
||||
}
|
||||
@@ -36,6 +32,11 @@ public class ClientStackItem implements IClientStack {
|
||||
return craftable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHash() {
|
||||
return hash;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return stack.getDisplayName();
|
||||
|
||||
@@ -3,6 +3,8 @@ package refinedstorage.gui.grid.stack;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
|
||||
public interface IClientStack {
|
||||
int getHash();
|
||||
|
||||
String getName();
|
||||
|
||||
String getModId();
|
||||
|
||||
@@ -36,7 +36,7 @@ public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<Messa
|
||||
Container container = player.openContainer;
|
||||
|
||||
if (container instanceof ContainerGrid) {
|
||||
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getHandler();
|
||||
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getItemHandler();
|
||||
|
||||
if (handler != null) {
|
||||
handler.onCraftingRequested(message.hash, message.quantity);
|
||||
|
||||
34
src/main/java/refinedstorage/network/MessageGridFluidInsertHeld.java
Executable file
34
src/main/java/refinedstorage/network/MessageGridFluidInsertHeld.java
Executable file
@@ -0,0 +1,34 @@
|
||||
package refinedstorage.network;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
|
||||
public class MessageGridFluidInsertHeld extends MessageHandlerPlayerToServer<MessageGridFluidInsertHeld> implements IMessage {
|
||||
public MessageGridFluidInsertHeld() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageGridFluidInsertHeld message, EntityPlayerMP player) {
|
||||
Container container = player.openContainer;
|
||||
|
||||
if (container instanceof ContainerGrid) {
|
||||
IFluidGridHandler handler = ((ContainerGrid) container).getGrid().getFluidHandler();
|
||||
|
||||
if (handler != null) {
|
||||
handler.onInsertHeldContainer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
46
src/main/java/refinedstorage/network/MessageGridFluidPull.java
Executable file
46
src/main/java/refinedstorage/network/MessageGridFluidPull.java
Executable file
@@ -0,0 +1,46 @@
|
||||
package refinedstorage.network;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
|
||||
public class MessageGridFluidPull extends MessageHandlerPlayerToServer<MessageGridFluidPull> implements IMessage {
|
||||
private int hash;
|
||||
private boolean shift;
|
||||
|
||||
public MessageGridFluidPull() {
|
||||
}
|
||||
|
||||
public MessageGridFluidPull(int hash, boolean shift) {
|
||||
this.hash = hash;
|
||||
this.shift = shift;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
hash = buf.readInt();
|
||||
shift = buf.readBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(hash);
|
||||
buf.writeBoolean(shift);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageGridFluidPull message, EntityPlayerMP player) {
|
||||
Container container = player.openContainer;
|
||||
|
||||
if (container instanceof ContainerGrid) {
|
||||
IFluidGridHandler handler = ((ContainerGrid) container).getGrid().getFluidHandler();
|
||||
|
||||
if (handler != null) {
|
||||
handler.onExtract(message.hash, message.shift, player);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,13 +7,13 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
|
||||
public class MessageGridInsertHeld extends MessageHandlerPlayerToServer<MessageGridInsertHeld> implements IMessage {
|
||||
public class MessageGridItemInsertHeld extends MessageHandlerPlayerToServer<MessageGridItemInsertHeld> implements IMessage {
|
||||
private boolean single;
|
||||
|
||||
public MessageGridInsertHeld() {
|
||||
public MessageGridItemInsertHeld() {
|
||||
}
|
||||
|
||||
public MessageGridInsertHeld(boolean single) {
|
||||
public MessageGridItemInsertHeld(boolean single) {
|
||||
this.single = single;
|
||||
}
|
||||
|
||||
@@ -28,11 +28,11 @@ public class MessageGridInsertHeld extends MessageHandlerPlayerToServer<MessageG
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageGridInsertHeld message, EntityPlayerMP player) {
|
||||
public void handle(MessageGridItemInsertHeld message, EntityPlayerMP player) {
|
||||
Container container = player.openContainer;
|
||||
|
||||
if (container instanceof ContainerGrid) {
|
||||
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getHandler();
|
||||
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getItemHandler();
|
||||
|
||||
if (handler != null) {
|
||||
handler.onInsertHeldItem(message.single, player);
|
||||
@@ -7,14 +7,14 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
|
||||
public class MessageGridPull extends MessageHandlerPlayerToServer<MessageGridPull> implements IMessage {
|
||||
public class MessageGridItemPull extends MessageHandlerPlayerToServer<MessageGridItemPull> implements IMessage {
|
||||
private int hash;
|
||||
private int flags;
|
||||
|
||||
public MessageGridPull() {
|
||||
public MessageGridItemPull() {
|
||||
}
|
||||
|
||||
public MessageGridPull(int hash, int flags) {
|
||||
public MessageGridItemPull(int hash, int flags) {
|
||||
this.hash = hash;
|
||||
this.flags = flags;
|
||||
}
|
||||
@@ -32,11 +32,11 @@ public class MessageGridPull extends MessageHandlerPlayerToServer<MessageGridPul
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageGridPull message, EntityPlayerMP player) {
|
||||
public void handle(MessageGridItemPull message, EntityPlayerMP player) {
|
||||
Container container = player.openContainer;
|
||||
|
||||
if (container instanceof ContainerGrid) {
|
||||
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getHandler();
|
||||
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getItemHandler();
|
||||
|
||||
if (handler != null) {
|
||||
handler.onExtract(message.hash, message.flags, player);
|
||||
@@ -44,8 +44,8 @@ public class CommonProxy {
|
||||
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageTileDataParameter.class, MessageTileDataParameter.class, id++, Side.CLIENT);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageTileDataParameterUpdate.class, MessageTileDataParameterUpdate.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridInsertHeld.class, MessageGridInsertHeld.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridPull.class, MessageGridPull.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridItemInsertHeld.class, MessageGridItemInsertHeld.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridItemPull.class, MessageGridItemPull.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridCraftingClear.class, MessageGridCraftingClear.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridCraftingTransfer.class, MessageGridCraftingTransfer.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageWirelessGridSettingsUpdate.class, MessageWirelessGridSettingsUpdate.class, id++, Side.SERVER);
|
||||
@@ -56,6 +56,8 @@ public class CommonProxy {
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridItemDelta.class, MessageGridItemDelta.class, id++, Side.CLIENT);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridFluidUpdate.class, MessageGridFluidUpdate.class, id++, Side.CLIENT);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridFluidDelta.class, MessageGridFluidDelta.class, id++, Side.CLIENT);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridFluidPull.class, MessageGridFluidPull.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridFluidInsertHeld.class, MessageGridFluidInsertHeld.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageProcessingPatternEncoderClear.class, MessageProcessingPatternEncoderClear.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridFilterUpdate.class, MessageGridFilterUpdate.class, id++, Side.SERVER);
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
||||
import refinedstorage.api.autocrafting.ICraftingTask;
|
||||
import refinedstorage.api.network.*;
|
||||
import refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.api.storage.fluid.IFluidStorage;
|
||||
@@ -34,6 +35,7 @@ import refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
||||
import refinedstorage.apiimpl.autocrafting.ProcessingCraftingTask;
|
||||
import refinedstorage.apiimpl.network.NetworkNodeGraph;
|
||||
import refinedstorage.apiimpl.network.WirelessGridHandler;
|
||||
import refinedstorage.apiimpl.network.grid.FluidGridHandler;
|
||||
import refinedstorage.apiimpl.network.grid.ItemGridHandler;
|
||||
import refinedstorage.apiimpl.storage.fluid.FluidUtils;
|
||||
import refinedstorage.apiimpl.storage.fluid.GroupedFluidStorage;
|
||||
@@ -146,6 +148,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
};
|
||||
|
||||
private ItemGridHandler itemGridHandler = new ItemGridHandler(this);
|
||||
private FluidGridHandler fluidGridHandler = new FluidGridHandler(this);
|
||||
|
||||
private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this);
|
||||
|
||||
private INetworkNodeGraph nodeGraph = new NetworkNodeGraph(this);
|
||||
@@ -180,8 +184,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
dataManager.addParameter(ENERGY_CAPACITY);
|
||||
dataManager.addParameter(NODES);
|
||||
|
||||
fluidStorage.add(new FluidStack(FluidRegistry.WATER, 1000 * 32), false);
|
||||
fluidStorage.add(new FluidStack(FluidRegistry.LAVA, 1000 * 64), false);
|
||||
fluidStorage.add(new FluidStack(FluidRegistry.WATER, 1000 * 32), true);
|
||||
fluidStorage.add(new FluidStack(FluidRegistry.LAVA, 1000 * 64), true);
|
||||
|
||||
if (IntegrationIC2.isLoaded()) {
|
||||
this.energyEU = new ControllerEnergyIC2(this);
|
||||
@@ -325,6 +329,11 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
return itemGridHandler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFluidGridHandler getFluidGridHandler() {
|
||||
return fluidGridHandler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IWirelessGridHandler getWirelessGridHandler() {
|
||||
return wirelessGridHandler;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package refinedstorage.tile.grid;
|
||||
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.block.EnumGridType;
|
||||
import refinedstorage.gui.grid.GridFilteredItem;
|
||||
@@ -14,7 +15,9 @@ public interface IGrid {
|
||||
|
||||
BlockPos getNetworkPosition();
|
||||
|
||||
IItemGridHandler getHandler();
|
||||
IItemGridHandler getItemHandler();
|
||||
|
||||
IFluidGridHandler getFluidHandler();
|
||||
|
||||
int getViewType();
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.RefinedStorageBlocks;
|
||||
import refinedstorage.RefinedStorageItems;
|
||||
import refinedstorage.api.network.NetworkUtils;
|
||||
import refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.block.BlockGrid;
|
||||
@@ -199,10 +200,15 @@ public class TileGrid extends TileNode implements IGrid {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemGridHandler getHandler() {
|
||||
public IItemGridHandler getItemHandler() {
|
||||
return isConnected() ? network.getItemGridHandler() : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFluidGridHandler getFluidHandler() {
|
||||
return isConnected() ? network.getFluidGridHandler() : null;
|
||||
}
|
||||
|
||||
public InventoryCrafting getMatrix() {
|
||||
return matrix;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.block.EnumGridType;
|
||||
import refinedstorage.gui.grid.GridFilteredItem;
|
||||
@@ -84,12 +85,17 @@ public class WirelessGrid implements IGrid {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemGridHandler getHandler() {
|
||||
public IItemGridHandler getItemHandler() {
|
||||
TileController controller = getController();
|
||||
|
||||
return controller != null ? controller.getItemGridHandler() : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFluidGridHandler getFluidHandler() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getViewType() {
|
||||
return viewType;
|
||||
|
||||
Reference in New Issue
Block a user