Fix the crafting monitor filter stuffs
This commit is contained in:
@@ -2,6 +2,8 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
|
|||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.RSUtils;
|
import com.raoulvdberge.refinedstorage.RSUtils;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||||
|
import com.raoulvdberge.refinedstorage.inventory.IItemHandlerListener;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.item.filter.Filter;
|
import com.raoulvdberge.refinedstorage.item.filter.Filter;
|
||||||
@@ -16,13 +18,25 @@ import net.minecraftforge.items.IItemHandler;
|
|||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class NetworkNodeCraftingMonitor extends NetworkNode implements ICraftingMonitor {
|
public class NetworkNodeCraftingMonitor extends NetworkNode implements ICraftingMonitor {
|
||||||
public static final String ID = "crafting_monitor";
|
public static final String ID = "crafting_monitor";
|
||||||
|
|
||||||
private List<Filter> filters = new ArrayList<>();
|
private List<Filter> filters = new ArrayList<>();
|
||||||
private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), new ItemHandlerListenerNetworkNode(this));
|
private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), new IItemHandlerListener() {
|
||||||
|
private ItemHandlerListenerNetworkNode base = new ItemHandlerListenerNetworkNode(NetworkNodeCraftingMonitor.this);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onChanged(int slot) {
|
||||||
|
base.onChanged(slot);
|
||||||
|
|
||||||
|
if (network != null) {
|
||||||
|
network.sendCraftingMonitorUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
public NetworkNodeCraftingMonitor(INetworkNodeHolder holder) {
|
public NetworkNodeCraftingMonitor(INetworkNodeHolder holder) {
|
||||||
super(holder);
|
super(holder);
|
||||||
@@ -66,6 +80,11 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting
|
|||||||
return network != null ? network.getPosition() : null;
|
return network != null ? network.getPosition() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ICraftingTask> getTasks() {
|
||||||
|
return network != null ? network.getCraftingManager().getTasks() : Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Filter> getFilters() {
|
public List<Filter> getFilters() {
|
||||||
return filters;
|
return filters;
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor;
|
|||||||
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.Slot;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
import net.minecraftforge.items.SlotItemHandler;
|
||||||
|
|
||||||
public class ContainerCraftingMonitor extends ContainerBase {
|
public class ContainerCraftingMonitor extends ContainerBase {
|
||||||
@@ -14,17 +16,44 @@ public class ContainerCraftingMonitor extends ContainerBase {
|
|||||||
|
|
||||||
this.craftingMonitor = craftingMonitor;
|
this.craftingMonitor = craftingMonitor;
|
||||||
|
|
||||||
addPlayerInventory(8, 148);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
addSlotToContainer(new SlotItemHandler(craftingMonitor.getFilter(), i, 187, 6 + (18 * i)));
|
addSlotToContainer(new SlotItemHandler(craftingMonitor.getFilter(), i, 187, 6 + (18 * i)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addPlayerInventory(8, 148);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ICraftingMonitor getCraftingMonitor() {
|
public ICraftingMonitor getCraftingMonitor() {
|
||||||
return craftingMonitor;
|
return craftingMonitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
||||||
|
ItemStack stack = ItemStack.EMPTY;
|
||||||
|
|
||||||
|
Slot slot = getSlot(index);
|
||||||
|
|
||||||
|
if (slot.getHasStack()) {
|
||||||
|
stack = slot.getStack();
|
||||||
|
|
||||||
|
if (index < 4) {
|
||||||
|
if (!mergeItemStack(stack, 4, inventorySlots.size(), false)) {
|
||||||
|
return ItemStack.EMPTY;
|
||||||
|
}
|
||||||
|
} else if (!mergeItemStack(stack, 0, 4, false)) {
|
||||||
|
return ItemStack.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stack.getCount() == 0) {
|
||||||
|
slot.putStack(ItemStack.EMPTY);
|
||||||
|
} else {
|
||||||
|
slot.onSlotChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isHeldItemDisabled() {
|
protected boolean isHeldItemDisabled() {
|
||||||
return craftingMonitor instanceof WirelessCraftingMonitor;
|
return craftingMonitor instanceof WirelessCraftingMonitor;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin
|
|||||||
import com.raoulvdberge.refinedstorage.api.render.IElementDrawer;
|
import com.raoulvdberge.refinedstorage.api.render.IElementDrawer;
|
||||||
import com.raoulvdberge.refinedstorage.api.render.IElementDrawers;
|
import com.raoulvdberge.refinedstorage.api.render.IElementDrawers;
|
||||||
import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.gui.grid.filtering.GridFilterFilter;
|
|
||||||
import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||||
import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorCancel;
|
import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorCancel;
|
||||||
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor;
|
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor;
|
||||||
@@ -13,11 +12,8 @@ import net.minecraft.client.gui.GuiButton;
|
|||||||
import net.minecraft.client.renderer.GlStateManager;
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
import net.minecraft.client.renderer.RenderHelper;
|
import net.minecraft.client.renderer.RenderHelper;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -42,8 +38,6 @@ public class GuiCraftingMonitor extends GuiBase {
|
|||||||
private static final int ITEM_WIDTH = 143;
|
private static final int ITEM_WIDTH = 143;
|
||||||
private static final int ITEM_HEIGHT = 18;
|
private static final int ITEM_HEIGHT = 18;
|
||||||
|
|
||||||
private static boolean markedForSorting;
|
|
||||||
|
|
||||||
private GuiButton cancelButton;
|
private GuiButton cancelButton;
|
||||||
private GuiButton cancelAllButton;
|
private GuiButton cancelAllButton;
|
||||||
|
|
||||||
@@ -51,8 +45,6 @@ public class GuiCraftingMonitor extends GuiBase {
|
|||||||
|
|
||||||
private IElementDrawers drawers = new CraftingMonitorElementDrawers();
|
private IElementDrawers drawers = new CraftingMonitorElementDrawers();
|
||||||
|
|
||||||
private List<ICraftingMonitorElement> elements = new ArrayList<>();
|
|
||||||
|
|
||||||
private int itemSelected = -1;
|
private int itemSelected = -1;
|
||||||
|
|
||||||
private int itemSelectedX = -1;
|
private int itemSelectedX = -1;
|
||||||
@@ -66,11 +58,7 @@ public class GuiCraftingMonitor extends GuiBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<ICraftingMonitorElement> getElements() {
|
private List<ICraftingMonitorElement> getElements() {
|
||||||
return craftingMonitor.isActive() ? elements : Collections.emptyList();
|
return craftingMonitor.isActive() ? ELEMENTS : Collections.emptyList();
|
||||||
}
|
|
||||||
|
|
||||||
public static void markForSorting() {
|
|
||||||
markedForSorting = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -91,23 +79,6 @@ public class GuiCraftingMonitor extends GuiBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(int x, int y) {
|
public void update(int x, int y) {
|
||||||
if (markedForSorting) {
|
|
||||||
markedForSorting = false;
|
|
||||||
|
|
||||||
List<ICraftingMonitorElement> newElements = new ArrayList<>();
|
|
||||||
|
|
||||||
for (ICraftingMonitorElement element : ELEMENTS) {
|
|
||||||
// @TODO: We need the top level element here!
|
|
||||||
ItemStack stack = null;
|
|
||||||
|
|
||||||
if (stack == null || GridFilterFilter.accepts(craftingMonitor.getFilters(), stack, Item.REGISTRY.getNameForObject(stack.getItem()).getResourceDomain())) {
|
|
||||||
newElements.add(element);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.elements = newElements;
|
|
||||||
}
|
|
||||||
|
|
||||||
scrollbar.setEnabled(getRows() > VISIBLE_ROWS);
|
scrollbar.setEnabled(getRows() > VISIBLE_ROWS);
|
||||||
scrollbar.setMaxOffset(getRows() - VISIBLE_ROWS);
|
scrollbar.setMaxOffset(getRows() - VISIBLE_ROWS);
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.inventory;
|
package com.raoulvdberge.refinedstorage.inventory;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSItems;
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
import com.raoulvdberge.refinedstorage.gui.GuiCraftingMonitor;
|
|
||||||
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
||||||
import com.raoulvdberge.refinedstorage.item.filter.Filter;
|
import com.raoulvdberge.refinedstorage.item.filter.Filter;
|
||||||
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
|
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
|
||||||
@@ -62,7 +61,6 @@ public class ItemHandlerFilter extends ItemHandlerBasic {
|
|||||||
|
|
||||||
if (FMLCommonHandler.instance().getSide() == Side.CLIENT) {
|
if (FMLCommonHandler.instance().getSide() == Side.CLIENT) {
|
||||||
GuiGrid.markForSorting();
|
GuiGrid.markForSorting();
|
||||||
GuiCraftingMonitor.markForSorting();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
package com.raoulvdberge.refinedstorage.network;
|
package com.raoulvdberge.refinedstorage.network;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.gui.GuiCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.gui.GuiCraftingMonitor;
|
||||||
|
import com.raoulvdberge.refinedstorage.gui.grid.filtering.GridFilterFilter;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
||||||
@@ -14,13 +19,15 @@ import java.util.List;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
public class MessageCraftingMonitorElements implements IMessage, IMessageHandler<MessageCraftingMonitorElements, IMessage> {
|
public class MessageCraftingMonitorElements implements IMessage, IMessageHandler<MessageCraftingMonitorElements, IMessage> {
|
||||||
|
private ICraftingMonitor craftingMonitor;
|
||||||
|
|
||||||
private List<ICraftingMonitorElement> elements = new ArrayList<>();
|
private List<ICraftingMonitorElement> elements = new ArrayList<>();
|
||||||
|
|
||||||
public MessageCraftingMonitorElements() {
|
public MessageCraftingMonitorElements() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageCraftingMonitorElements(List<ICraftingMonitorElement> elements) {
|
public MessageCraftingMonitorElements(ICraftingMonitor craftingMonitor) {
|
||||||
this.elements = elements;
|
this.craftingMonitor = craftingMonitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -38,6 +45,16 @@ public class MessageCraftingMonitorElements implements IMessage, IMessageHandler
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toBytes(ByteBuf buf) {
|
public void toBytes(ByteBuf buf) {
|
||||||
|
List<ICraftingMonitorElement> elements = new ArrayList<>();
|
||||||
|
|
||||||
|
for (ICraftingTask task : craftingMonitor.getTasks()) {
|
||||||
|
ItemStack stack = task.getRequested();
|
||||||
|
|
||||||
|
if (stack == null || GridFilterFilter.accepts(craftingMonitor.getFilters(), stack, Item.REGISTRY.getNameForObject(stack.getItem()).getResourceDomain())) {
|
||||||
|
elements.addAll(task.getCraftingMonitorElements());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
buf.writeInt(elements.size());
|
buf.writeInt(elements.size());
|
||||||
|
|
||||||
for (ICraftingMonitorElement task : elements) {
|
for (ICraftingMonitorElement task : elements) {
|
||||||
@@ -50,7 +67,6 @@ public class MessageCraftingMonitorElements implements IMessage, IMessageHandler
|
|||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageCraftingMonitorElements message, MessageContext ctx) {
|
public IMessage onMessage(MessageCraftingMonitorElements message, MessageContext ctx) {
|
||||||
GuiCraftingMonitor.ELEMENTS = message.elements;
|
GuiCraftingMonitor.ELEMENTS = message.elements;
|
||||||
GuiCraftingMonitor.markForSorting();
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RS;
|
|||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||||
import com.raoulvdberge.refinedstorage.RSUtils;
|
import com.raoulvdberge.refinedstorage.RSUtils;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler;
|
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler;
|
||||||
@@ -69,7 +68,6 @@ import net.minecraftforge.items.ItemHandlerHelper;
|
|||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
public class TileController extends TileBase implements INetworkMaster, IRedstoneConfigurable, INetworkNode, INetworkNodeProxy<TileController> {
|
public class TileController extends TileBase implements INetworkMaster, IRedstoneConfigurable, INetworkNode, INetworkNodeProxy<TileController> {
|
||||||
public static final TileDataParameter<Integer> REDSTONE_MODE = RedstoneMode.createParameter();
|
public static final TileDataParameter<Integer> REDSTONE_MODE = RedstoneMode.createParameter();
|
||||||
@@ -373,20 +371,14 @@ public class TileController extends TileBase implements INetworkMaster, IRedston
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendCraftingMonitorUpdate() {
|
public void sendCraftingMonitorUpdate() {
|
||||||
List<EntityPlayerMP> watchers = getWorld().getMinecraftServer().getPlayerList().getPlayers().stream()
|
getWorld().getMinecraftServer().getPlayerList().getPlayers().stream()
|
||||||
.filter(player -> player.openContainer instanceof ContainerCraftingMonitor && pos.equals(((ContainerCraftingMonitor) player.openContainer).getCraftingMonitor().getNetworkPosition()))
|
.filter(player -> player.openContainer instanceof ContainerCraftingMonitor && pos.equals(((ContainerCraftingMonitor) player.openContainer).getCraftingMonitor().getNetworkPosition()))
|
||||||
.collect(Collectors.toList());
|
.forEach(player -> RS.INSTANCE.network.sendTo(new MessageCraftingMonitorElements(((ContainerCraftingMonitor) player.openContainer).getCraftingMonitor()), player));
|
||||||
|
|
||||||
if (!watchers.isEmpty()) {
|
|
||||||
List<ICraftingMonitorElement> elements = craftingManager.getTasks().stream().flatMap(t -> t.getCraftingMonitorElements().stream()).collect(Collectors.toList());
|
|
||||||
|
|
||||||
watchers.forEach(player -> RS.INSTANCE.network.sendTo(new MessageCraftingMonitorElements(elements), player));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendCraftingMonitorUpdate(EntityPlayerMP player) {
|
public void sendCraftingMonitorUpdate(EntityPlayerMP player) {
|
||||||
RS.INSTANCE.network.sendTo(new MessageCraftingMonitorElements(craftingManager.getTasks().stream().flatMap(t -> t.getCraftingMonitorElements().stream()).collect(Collectors.toList())), player);
|
RS.INSTANCE.network.sendTo(new MessageCraftingMonitorElements(((ContainerCraftingMonitor) player.openContainer).getCraftingMonitor()), player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
|
package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
|
||||||
import com.raoulvdberge.refinedstorage.item.filter.Filter;
|
import com.raoulvdberge.refinedstorage.item.filter.Filter;
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
@@ -19,6 +20,8 @@ public interface ICraftingMonitor {
|
|||||||
@Nullable
|
@Nullable
|
||||||
BlockPos getNetworkPosition();
|
BlockPos getNetworkPosition();
|
||||||
|
|
||||||
|
List<ICraftingTask> getTasks();
|
||||||
|
|
||||||
List<Filter> getFilters();
|
List<Filter> getFilters();
|
||||||
|
|
||||||
ItemHandlerBasic getFilter();
|
ItemHandlerBasic getFilter();
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
|
package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSUtils;
|
import com.raoulvdberge.refinedstorage.RSUtils;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
|
||||||
@@ -16,6 +17,7 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraftforge.common.DimensionManager;
|
import net.minecraftforge.common.DimensionManager;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class WirelessCraftingMonitor implements ICraftingMonitor {
|
public class WirelessCraftingMonitor implements ICraftingMonitor {
|
||||||
@@ -34,6 +36,12 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
RSUtils.writeItems(this, slot, stack.getTagCompound());
|
RSUtils.writeItems(this, slot, stack.getTagCompound());
|
||||||
|
|
||||||
|
TileController controller = getController();
|
||||||
|
|
||||||
|
if (controller != null) {
|
||||||
|
controller.sendCraftingMonitorUpdate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -73,6 +81,17 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
|||||||
return controller;
|
return controller;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ICraftingTask> getTasks() {
|
||||||
|
TileController controller = getController();
|
||||||
|
|
||||||
|
if (controller != null) {
|
||||||
|
return controller.getCraftingManager().getTasks();
|
||||||
|
}
|
||||||
|
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Filter> getFilters() {
|
public List<Filter> getFilters() {
|
||||||
return filters;
|
return filters;
|
||||||
|
|||||||
Reference in New Issue
Block a user