diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafterManager.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafterManager.java index 91b8064f8..4cae24eaa 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafterManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafterManager.java @@ -1,5 +1,6 @@ package com.raoulvdberge.refinedstorage.container; +import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCrafterManager; import com.raoulvdberge.refinedstorage.container.slot.SlotCrafterManager; import com.raoulvdberge.refinedstorage.gui.IResizableDisplay; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; @@ -64,6 +65,7 @@ public class ContainerCrafterManager extends ContainerBase { } private IResizableDisplay display; + private NetworkNodeCrafterManager crafterManager; private Map containerData; private Map dummyInventories = new HashMap<>(); @@ -80,6 +82,7 @@ public class ContainerCrafterManager extends ContainerBase { super(crafterManager, player); this.display = display; + this.crafterManager = crafterManager.getNode(); if (!player.world.isRemote) { addPlayerInventory(8, display.getYPlayerInventory()); @@ -132,7 +135,7 @@ public class ContainerCrafterManager extends ContainerBase { } for (int slot = 0; slot < entry.getValue(); ++slot) { - addSlotToContainer(new SlotCrafterManager(dummy, slot, x, y, visible, display)); + addSlotToContainer(new SlotCrafterManager(dummy, slot, x, y, visible, display, crafterManager)); if (visible) { x += 18; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotCrafterManager.java b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotCrafterManager.java index bb0bb90d5..15a4fda8e 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotCrafterManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotCrafterManager.java @@ -1,22 +1,25 @@ package com.raoulvdberge.refinedstorage.container.slot; +import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCrafterManager; import com.raoulvdberge.refinedstorage.gui.IResizableDisplay; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.SlotItemHandler; public class SlotCrafterManager extends SlotItemHandler { private boolean visible; + private NetworkNodeCrafterManager crafterManager; private IResizableDisplay display; - public SlotCrafterManager(IItemHandler itemHandler, int index, int xPosition, int yPosition, boolean visible, IResizableDisplay display) { + public SlotCrafterManager(IItemHandler itemHandler, int index, int xPosition, int yPosition, boolean visible, IResizableDisplay display, NetworkNodeCrafterManager crafterManager) { super(itemHandler, index, xPosition, yPosition); this.visible = visible; this.display = display; + this.crafterManager = crafterManager; } @Override public boolean isEnabled() { - return yPos >= display.getTopHeight() && yPos < display.getTopHeight() + 18 * display.getVisibleRows() && visible; + return yPos >= display.getTopHeight() && yPos < display.getTopHeight() + 18 * display.getVisibleRows() && visible && crafterManager.isActive(); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCrafterManager.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCrafterManager.java index abcf2323d..7aca89110 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCrafterManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCrafterManager.java @@ -155,7 +155,7 @@ public class GuiCrafterManager extends GuiBase implements IResizableDisplay { drawTexture(x, yy, 0, getTopHeight() + (18 * 3), screenWidth, getBottomHeight()); - if (container != null) { + if (container != null && crafterManager.isActive()) { for (Slot slot : container.inventorySlots) { if (slot instanceof SlotCrafterManager && slot.isEnabled()) { drawTexture(x + slot.xPos - 1, y + slot.yPos - 1, 0, 193, 18, 18); @@ -197,7 +197,7 @@ public class GuiCrafterManager extends GuiBase implements IResizableDisplay { drawString(7, 7, t("gui.refinedstorage:crafter_manager")); drawString(7, getYPlayerInventory() - 12, t("container.inventory")); - if (container != null && container.getContainerData() != null) { + if (container != null && container.getContainerData() != null && crafterManager.isActive()) { int x = 7; int y = 18 - getCurrentOffset() * 18; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/view/GridViewBase.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/view/GridViewBase.java index 8dd1795c6..2a63aeced 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/view/GridViewBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/view/GridViewBase.java @@ -99,7 +99,9 @@ public abstract class GridViewBase implements IGridView { GridSorterDirection sortingDirection = grid.getSortingDirection() == IGrid.SORTING_DIRECTION_DESCENDING ? GridSorterDirection.DESCENDING : GridSorterDirection.ASCENDING; - stacks.sort((left, right) -> new GridSorterName().compare(left, right, sortingDirection)); + GridSorterName defaultSorting = new GridSorterName(); + + stacks.sort((left, right) -> defaultSorting.compare(left, right, sortingDirection)); sorters.stream().filter(s -> s.isApplicable(grid)).forEach(s -> { stacks.sort((left, right) -> s.compare(left, right, sortingDirection)); diff --git a/src/main/resources/assets/refinedstorage/blockstates/crafter_manager.json b/src/main/resources/assets/refinedstorage/blockstates/crafter_manager.json index bbe862c3a..993595235 100644 --- a/src/main/resources/assets/refinedstorage/blockstates/crafter_manager.json +++ b/src/main/resources/assets/refinedstorage/blockstates/crafter_manager.json @@ -3,91 +3,37 @@ "defaults": { "model": "cube", "textures": { - "particle": "refinedstorage:blocks/crafter_side", - "side": "refinedstorage:blocks/crafter_side", - "side_90": "refinedstorage:blocks/crafter_side_90", - "side_180": "refinedstorage:blocks/crafter_side_180", - "side_270": "refinedstorage:blocks/crafter_side_270", - "front": "refinedstorage:blocks/grid_front" - }, - "uvlock": true + "particle": "refinedstorage:blocks/side", + "north": "refinedstorage:blocks/crafter_manager_front", + "east": "refinedstorage:blocks/grid_left", + "south": "refinedstorage:blocks/grid_back", + "west": "refinedstorage:blocks/grid_right", + "up": "refinedstorage:blocks/grid_top", + "down": "refinedstorage:blocks/bottom" + } }, "variants": { "connected": { "true": { "textures": { - "side": "refinedstorage:blocks/crafter_side_connected", - "side_90": "refinedstorage:blocks/crafter_side_connected_90", - "side_180": "refinedstorage:blocks/crafter_side_connected_180", - "side_270": "refinedstorage:blocks/crafter_side_connected_270", - "front": "refinedstorage:blocks/grid_front_connected" + "north": "refinedstorage:blocks/crafter_manager_front_connected" } }, "false": { - "textures": { - } } }, "direction": { "north": { - "textures": { - "down": "#side", - "up": "#side", - "north": "#front", - "east": "#side_90", - "south": "refinedstorage:blocks/crafter_bottom", - "west": "#side_270" - } + "y": 0 }, "east": { - "textures": { - "down": "refinedstorage:blocks/crafter_bottom", - "up": "#side_90", - "north": "#side_270", - "east": "#front", - "south": "#side_90", - "west": "refinedstorage:blocks/crafter_bottom" - } + "y": 90 }, "south": { - "textures": { - "down": "refinedstorage:blocks/crafter_bottom", - "up": "#side_180", - "north": "refinedstorage:blocks/crafter_bottom", - "east": "#side_270", - "south": "#front", - "west": "#side_90" - } + "y": 180 }, "west": { - "textures": { - "down": "refinedstorage:blocks/crafter_bottom", - "up": "#side_270", - "north": "#side_90", - "east": "refinedstorage:blocks/crafter_bottom", - "south": "#side_270", - "west": "#front" - } - }, - "up": { - "textures": { - "down": "refinedstorage:blocks/crafter_bottom", - "up": "#front", - "north": "#side", - "east": "#side", - "south": "#side", - "west": "#side" - } - }, - "down": { - "textures": { - "down": "#front", - "up": "refinedstorage:blocks/crafter_bottom", - "north": "#side_180", - "east": "#side_180", - "south": "#side_180", - "west": "#side_180" - } + "y": 270 } } } diff --git a/src/main/resources/assets/refinedstorage/blockstates/crafter_manager_glow.json b/src/main/resources/assets/refinedstorage/blockstates/crafter_manager_glow.json index 6b818be6f..45b2fb9d4 100644 --- a/src/main/resources/assets/refinedstorage/blockstates/crafter_manager_glow.json +++ b/src/main/resources/assets/refinedstorage/blockstates/crafter_manager_glow.json @@ -3,134 +3,44 @@ "defaults": { "model": "refinedstorage:cube_glow", "textures": { - "particle": "refinedstorage:blocks/crafter_side", - "side": "refinedstorage:blocks/crafter_side", - "side_90": "refinedstorage:blocks/crafter_side_90", - "side_180": "refinedstorage:blocks/crafter_side_180", - "side_270": "refinedstorage:blocks/crafter_side_270", - "front": "refinedstorage:blocks/grid_front", - "glow_side": "refinedstorage:blocks/none", - "glow_side_90": "refinedstorage:blocks/none", - "glow_side_180": "refinedstorage:blocks/none", - "glow_side_270": "refinedstorage:blocks/none", - "glow_front": "refinedstorage:blocks/none", + "particle": "refinedstorage:blocks/side", + "north": "refinedstorage:blocks/crafter_manager_front", + "east": "refinedstorage:blocks/grid_left", + "south": "refinedstorage:blocks/grid_back", + "west": "refinedstorage:blocks/grid_right", + "up": "refinedstorage:blocks/grid_top", + "down": "refinedstorage:blocks/bottom", + "glow_north": "refinedstorage:blocks/none", + "glow_east": "refinedstorage:blocks/none", + "glow_south": "refinedstorage:blocks/none", + "glow_west": "refinedstorage:blocks/none", "glow_up": "refinedstorage:blocks/none", "glow_down": "refinedstorage:blocks/none" - }, - "uvlock": true + } }, "variants": { "connected": { "true": { "textures": { - "side": "refinedstorage:blocks/crafter_side_connected", - "side_90": "refinedstorage:blocks/crafter_side_connected_90", - "side_180": "refinedstorage:blocks/crafter_side_connected_180", - "side_270": "refinedstorage:blocks/crafter_side_connected_270", - "front": "refinedstorage:blocks/grid_front_connected", - "glow_side": "refinedstorage:blocks/crafter_side_connected_glow", - "glow_side_90": "refinedstorage:blocks/crafter_side_connected_90_glow", - "glow_side_180": "refinedstorage:blocks/crafter_side_connected_180_glow", - "glow_side_270": "refinedstorage:blocks/crafter_side_connected_270_glow", - "glow_front": "refinedstorage:blocks/grid_front_connected_glow" + "north": "refinedstorage:blocks/crafter_manager_front_connected", + "glow_north": "refinedstorage:blocks/crafter_manager_front_connected_glow" } }, "false": { - "textures": { - } } }, "direction": { "north": { - "textures": { - "down": "#side", - "up": "#side", - "north": "#front", - "east": "#side_90", - "south": "refinedstorage:blocks/crafter_bottom", - "west": "#side_270", - "glow_down": "#glow_side", - "glow_up": "#glow_side", - "glow_north": "#glow_front", - "glow_east": "#glow_side_90", - "glow_south": "refinedstorage:blocks/none", - "glow_west": "#glow_side_270" - } + "y": 0 }, "east": { - "textures": { - "down": "refinedstorage:blocks/crafter_bottom", - "up": "#side_90", - "north": "#side_270", - "east": "#front", - "south": "#side_90", - "west": "refinedstorage:blocks/crafter_bottom", - "glow_up": "#glow_side_90", - "glow_north": "#glow_side_270", - "glow_east": "#glow_front", - "glow_south": "#glow_side_90", - "glow_west": "refinedstorage:blocks/none" - } + "y": 90 }, "south": { - "textures": { - "down": "refinedstorage:blocks/crafter_bottom", - "up": "#side_180", - "north": "refinedstorage:blocks/crafter_bottom", - "east": "#side_270", - "south": "#front", - "west": "#side_90", - "glow_up": "#glow_side_180", - "glow_north": "refinedstorage:blocks/none", - "glow_east": "#glow_side_270", - "glow_south": "#glow_front", - "glow_west": "#glow_side_90" - } + "y": 180 }, "west": { - "textures": { - "down": "refinedstorage:blocks/crafter_bottom", - "up": "#side_270", - "north": "#side_90", - "east": "refinedstorage:blocks/crafter_bottom", - "south": "#side_270", - "west": "#front", - "glow_up": "#glow_side_270", - "glow_north": "#glow_side_90", - "glow_east": "refinedstorage:blocks/none", - "glow_south": "#glow_side_270", - "glow_west": "#glow_front" - } - }, - "up": { - "textures": { - "down": "refinedstorage:blocks/crafter_bottom", - "up": "#front", - "north": "#side", - "east": "#side", - "south": "#side", - "west": "#side", - "glow_up": "#glow_front", - "glow_north": "#glow_side", - "glow_east": "#glow_side", - "glow_south": "#glow_side", - "glow_west": "#glow_side" - } - }, - "down": { - "textures": { - "down": "#front", - "up": "refinedstorage:blocks/crafter_bottom", - "north": "#side_180", - "east": "#side_180", - "south": "#side_180", - "west": "#side_180", - "glow_down": "#glow_front", - "glow_north": "#glow_side_180", - "glow_east": "#glow_side_180", - "glow_south": "#glow_side_180", - "glow_west": "#glow_side_180" - } + "y": 270 } } } diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front.png b/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front.png new file mode 100644 index 000000000..25d49acea Binary files /dev/null and b/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front_connected.png b/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front_connected.png new file mode 100644 index 000000000..6a32c807c Binary files /dev/null and b/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front_connected.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front_connected_glow.png b/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front_connected_glow.png new file mode 100644 index 000000000..9e25a25d4 Binary files /dev/null and b/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front_connected_glow.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front_connected_glow.png.mcmeta b/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front_connected_glow.png.mcmeta new file mode 100644 index 000000000..eea6c1fe1 --- /dev/null +++ b/src/main/resources/assets/refinedstorage/textures/blocks/crafter_manager_front_connected_glow.png.mcmeta @@ -0,0 +1,9 @@ +{ + "ctm": { + "ctm_version": 1, + "layer": "CUTOUT", + "extra": { + "light": 15 + } + } +} \ No newline at end of file