Merge pull request #3093 from Darkere/curiofixes
fix curio bugs and wrong slot being locked for wireless items
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.refinedmods.refinedstorage.api.network.grid;
|
||||
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
@@ -17,11 +18,11 @@ public interface IGridFactory {
|
||||
*
|
||||
* @param player the player
|
||||
* @param stack the stack
|
||||
* @param slotId the slot id, if applicable, otherwise -1
|
||||
* @param slot the slot in the players inventory or curio slot, otherwise -1
|
||||
* @return the grid, or null if a problem occurred
|
||||
*/
|
||||
@Nullable
|
||||
IGrid createFromStack(PlayerEntity player, ItemStack stack, int slotId);
|
||||
IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot);
|
||||
|
||||
/**
|
||||
* Creates a grid from a block. Used when {@link #getType()} is BLOCK.
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.refinedmods.refinedstorage.api.network.grid;
|
||||
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -35,9 +36,9 @@ public interface IGridManager {
|
||||
* @param id the grid factory id
|
||||
* @param player the player
|
||||
* @param stack the stack
|
||||
* @param slotId the slot id, if applicable, otherwise -1
|
||||
* @param slot the slot in the players inventory or curio slot, otherwise -1
|
||||
*/
|
||||
void openGrid(ResourceLocation id, ServerPlayerEntity player, ItemStack stack, int slotId);
|
||||
void openGrid(ResourceLocation id, ServerPlayerEntity player, ItemStack stack, PlayerSlot slot);
|
||||
|
||||
/**
|
||||
* Creates a grid.
|
||||
@@ -46,9 +47,9 @@ public interface IGridManager {
|
||||
* @param player the player
|
||||
* @param stack the stack, if there is one
|
||||
* @param pos the block position, if there is one
|
||||
* @param slotId the slot id, if applicable, otherwise -1
|
||||
* @param slot the slot in the players inventory,or curio slot, otherwise -1
|
||||
* @return a grid, or null if an error has occurred
|
||||
*/
|
||||
@Nullable
|
||||
Pair<IGrid, TileEntity> createGrid(ResourceLocation id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos, int slotId);
|
||||
Pair<IGrid, TileEntity> createGrid(ResourceLocation id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos, PlayerSlot slot);
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.refinedmods.refinedstorage.api.network.item;
|
||||
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
@@ -15,9 +16,9 @@ public interface INetworkItemManager {
|
||||
*
|
||||
* @param player the player that opened the network item
|
||||
* @param stack the stack that has been opened
|
||||
* @param slotId the slot id, if applicable, otherwise -1
|
||||
* @param slot the slot in the players inventory or curio slot, otherwise -1
|
||||
*/
|
||||
void open(PlayerEntity player, ItemStack stack, int slotId);
|
||||
void open(PlayerEntity player, ItemStack stack, PlayerSlot slot);
|
||||
|
||||
/**
|
||||
* Called when the player closes a network item.
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.refinedmods.refinedstorage.api.network.item;
|
||||
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
@@ -15,9 +16,9 @@ public interface INetworkItemProvider {
|
||||
* @param handler the network item handler
|
||||
* @param player the player
|
||||
* @param stack the stack
|
||||
* @param slotId the slot id, if applicable, otherwise -1
|
||||
* @param slot the slot in the players inventory or curio slot, otherwise -1
|
||||
* @return the network item
|
||||
*/
|
||||
@Nonnull
|
||||
INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, int slotId);
|
||||
INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot);
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGridManager;
|
||||
import com.refinedmods.refinedstorage.container.factory.GridContainerProvider;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -28,16 +29,16 @@ public class GridManager implements IGridManager {
|
||||
|
||||
@Override
|
||||
public void openGrid(ResourceLocation id, ServerPlayerEntity player, BlockPos pos) {
|
||||
openGrid(id, player, null, pos, -1);
|
||||
openGrid(id, player, null, pos, new PlayerSlot(-1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openGrid(ResourceLocation id, ServerPlayerEntity player, ItemStack stack, int slotId) {
|
||||
openGrid(id, player, stack, null, slotId);
|
||||
public void openGrid(ResourceLocation id, ServerPlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
openGrid(id, player, stack, null, slot);
|
||||
}
|
||||
|
||||
private void openGrid(ResourceLocation id, ServerPlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos, int slotId) {
|
||||
Pair<IGrid, TileEntity> grid = createGrid(id, player, stack, pos, slotId);
|
||||
private void openGrid(ResourceLocation id, ServerPlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos, PlayerSlot slot) {
|
||||
Pair<IGrid, TileEntity> grid = createGrid(id, player, stack, pos, slot);
|
||||
if (grid == null) {
|
||||
return;
|
||||
}
|
||||
@@ -55,13 +56,13 @@ public class GridManager implements IGridManager {
|
||||
buf.writeItemStack(stack);
|
||||
}
|
||||
|
||||
buf.writeInt(slotId);
|
||||
slot.writePlayerSlot(buf);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Pair<IGrid, TileEntity> createGrid(ResourceLocation id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos, int slotId) {
|
||||
public Pair<IGrid, TileEntity> createGrid(ResourceLocation id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos, PlayerSlot slot) {
|
||||
IGridFactory factory = factories.get(id);
|
||||
|
||||
if (factory == null) {
|
||||
@@ -72,7 +73,7 @@ public class GridManager implements IGridManager {
|
||||
TileEntity tile = factory.getRelevantTile(player.world, pos);
|
||||
|
||||
if (factory.getType() == GridFactoryType.STACK) {
|
||||
grid = factory.createFromStack(player, stack, slotId);
|
||||
grid = factory.createFromStack(player, stack, slot);
|
||||
} else if (factory.getType() == GridFactoryType.BLOCK) {
|
||||
grid = factory.createFromBlock(player, pos);
|
||||
}
|
||||
|
@@ -4,6 +4,7 @@ import com.refinedmods.refinedstorage.RS;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGrid;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.tile.grid.GridTile;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -19,7 +20,7 @@ public class GridBlockGridFactory implements IGridFactory {
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, int slotId) {
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@@ -4,6 +4,7 @@ import com.refinedmods.refinedstorage.RS;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGrid;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridTile;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -19,7 +20,7 @@ public class PortableGridBlockGridFactory implements IGridFactory {
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, int slotId) {
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@@ -4,6 +4,7 @@ import com.refinedmods.refinedstorage.RS;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGrid;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.tile.grid.portable.PortableGrid;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -19,8 +20,8 @@ public class PortableGridGridFactory implements IGridFactory {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, int slotId) {
|
||||
PortableGrid portableGrid = new PortableGrid(player, stack, slotId);
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
PortableGrid portableGrid = new PortableGrid(player, stack, slot);
|
||||
|
||||
portableGrid.onOpen();
|
||||
|
||||
|
@@ -4,6 +4,7 @@ import com.refinedmods.refinedstorage.RS;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGrid;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.tile.grid.WirelessFluidGrid;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -19,8 +20,8 @@ public class WirelessFluidGridGridFactory implements IGridFactory {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, int slotId) {
|
||||
return new WirelessFluidGrid(stack, player.getServer(), slotId);
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
return new WirelessFluidGrid(stack, player.getServer(), slot);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
@@ -4,6 +4,7 @@ import com.refinedmods.refinedstorage.RS;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.GridFactoryType;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGrid;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGridFactory;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.tile.grid.WirelessGrid;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -19,8 +20,8 @@ public class WirelessGridGridFactory implements IGridFactory {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, int slotId) {
|
||||
return new WirelessGrid(stack, player.getServer(), slotId);
|
||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
return new WirelessGrid(stack, player.getServer(), slot);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
@@ -7,6 +7,7 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager;
|
||||
import com.refinedmods.refinedstorage.api.network.item.INetworkItemProvider;
|
||||
import com.refinedmods.refinedstorage.api.network.node.INetworkNode;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.math.vector.Vector3d;
|
||||
@@ -24,7 +25,7 @@ public class NetworkItemManager implements INetworkItemManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void open(PlayerEntity player, ItemStack stack, int slotId) {
|
||||
public void open(PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
boolean inRange = false;
|
||||
|
||||
for (INetworkNodeGraphEntry entry : network.getNodeGraph().all()) {
|
||||
@@ -54,7 +55,7 @@ public class NetworkItemManager implements INetworkItemManager {
|
||||
return;
|
||||
}
|
||||
|
||||
INetworkItem item = ((INetworkItemProvider) stack.getItem()).provide(this, player, stack, slotId);
|
||||
INetworkItem item = ((INetworkItemProvider) stack.getItem()).provide(this, player, stack, slot);
|
||||
|
||||
if (item.onOpen(network)) {
|
||||
items.put(player, item);
|
||||
|
@@ -7,6 +7,7 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager;
|
||||
import com.refinedmods.refinedstorage.api.network.security.Permission;
|
||||
import com.refinedmods.refinedstorage.container.factory.CraftingMonitorContainerProvider;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.item.WirelessCraftingMonitorItem;
|
||||
import com.refinedmods.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
|
||||
import com.refinedmods.refinedstorage.util.WorldUtils;
|
||||
@@ -22,13 +23,13 @@ public class WirelessCraftingMonitorNetworkItem implements INetworkItem {
|
||||
private final INetworkItemManager handler;
|
||||
private final PlayerEntity player;
|
||||
private final ItemStack stack;
|
||||
private final int slotId;
|
||||
private final PlayerSlot slot;
|
||||
|
||||
public WirelessCraftingMonitorNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack, int slotId) {
|
||||
public WirelessCraftingMonitorNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
this.handler = handler;
|
||||
this.player = player;
|
||||
this.stack = stack;
|
||||
this.slotId = slotId;
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -56,13 +57,11 @@ public class WirelessCraftingMonitorNetworkItem implements INetworkItem {
|
||||
return false;
|
||||
}
|
||||
|
||||
WirelessCraftingMonitor wirelessCraftingMonitor = new WirelessCraftingMonitor(stack, player.getServer(), slotId);
|
||||
WirelessCraftingMonitor wirelessCraftingMonitor = new WirelessCraftingMonitor(stack, player.getServer(), slot);
|
||||
|
||||
NetworkHooks.openGui(
|
||||
(ServerPlayerEntity) player,
|
||||
new CraftingMonitorContainerProvider(RSContainers.WIRELESS_CRAFTING_MONITOR, wirelessCraftingMonitor, null),
|
||||
buf -> buf.writeInt(slotId)
|
||||
);
|
||||
new CraftingMonitorContainerProvider(RSContainers.WIRELESS_CRAFTING_MONITOR, wirelessCraftingMonitor, null), slot::writePlayerSlot);
|
||||
|
||||
drainEnergy(RS.SERVER_CONFIG.getWirelessCraftingMonitor().getOpenUsage());
|
||||
|
||||
|
@@ -7,6 +7,7 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager;
|
||||
import com.refinedmods.refinedstorage.api.network.security.Permission;
|
||||
import com.refinedmods.refinedstorage.apiimpl.API;
|
||||
import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.WirelessFluidGridGridFactory;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.item.WirelessFluidGridItem;
|
||||
import com.refinedmods.refinedstorage.util.WorldUtils;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
@@ -20,13 +21,13 @@ public class WirelessFluidGridNetworkItem implements INetworkItem {
|
||||
private final INetworkItemManager handler;
|
||||
private final PlayerEntity player;
|
||||
private final ItemStack stack;
|
||||
private final int slotId;
|
||||
private final PlayerSlot slot;
|
||||
|
||||
public WirelessFluidGridNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack, int slotId) {
|
||||
public WirelessFluidGridNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
this.handler = handler;
|
||||
this.player = player;
|
||||
this.stack = stack;
|
||||
this.slotId = slotId;
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -53,7 +54,7 @@ public class WirelessFluidGridNetworkItem implements INetworkItem {
|
||||
return false;
|
||||
}
|
||||
|
||||
API.instance().getGridManager().openGrid(WirelessFluidGridGridFactory.ID, (ServerPlayerEntity) player, stack, slotId);
|
||||
API.instance().getGridManager().openGrid(WirelessFluidGridGridFactory.ID, (ServerPlayerEntity) player, stack, slot);
|
||||
|
||||
drainEnergy(RS.SERVER_CONFIG.getWirelessFluidGrid().getOpenUsage());
|
||||
|
||||
|
@@ -7,6 +7,7 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager;
|
||||
import com.refinedmods.refinedstorage.api.network.security.Permission;
|
||||
import com.refinedmods.refinedstorage.apiimpl.API;
|
||||
import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.WirelessGridGridFactory;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.item.WirelessGridItem;
|
||||
import com.refinedmods.refinedstorage.util.WorldUtils;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
@@ -20,13 +21,13 @@ public class WirelessGridNetworkItem implements INetworkItem {
|
||||
private final INetworkItemManager handler;
|
||||
private final PlayerEntity player;
|
||||
private final ItemStack stack;
|
||||
private final int slotId;
|
||||
private final PlayerSlot slot;
|
||||
|
||||
public WirelessGridNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack, int slotId) {
|
||||
public WirelessGridNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
this.handler = handler;
|
||||
this.player = player;
|
||||
this.stack = stack;
|
||||
this.slotId = slotId;
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -53,7 +54,7 @@ public class WirelessGridNetworkItem implements INetworkItem {
|
||||
return false;
|
||||
}
|
||||
|
||||
API.instance().getGridManager().openGrid(WirelessGridGridFactory.ID, (ServerPlayerEntity) player, stack, slotId);
|
||||
API.instance().getGridManager().openGrid(WirelessGridGridFactory.ID, (ServerPlayerEntity) player, stack, slot);
|
||||
|
||||
drainEnergy(RS.SERVER_CONFIG.getWirelessGrid().getOpenUsage());
|
||||
|
||||
|
@@ -3,6 +3,7 @@ package com.refinedmods.refinedstorage.container.factory;
|
||||
import com.refinedmods.refinedstorage.api.network.grid.IGrid;
|
||||
import com.refinedmods.refinedstorage.apiimpl.API;
|
||||
import com.refinedmods.refinedstorage.container.GridContainer;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.tile.BaseTile;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -29,9 +30,9 @@ public class GridContainerFactory implements IContainerFactory<GridContainer> {
|
||||
stack = data.readItemStack();
|
||||
}
|
||||
|
||||
int slotId = data.readInt();
|
||||
PlayerSlot slot = new PlayerSlot(data);
|
||||
|
||||
Pair<IGrid, TileEntity> grid = API.instance().getGridManager().createGrid(id, inv.player, stack, pos, slotId);
|
||||
Pair<IGrid, TileEntity> grid = API.instance().getGridManager().createGrid(id, inv.player, stack, pos, slot);
|
||||
|
||||
return new GridContainer(grid.getLeft(), grid.getRight() instanceof BaseTile ? (BaseTile) grid.getRight() : null, inv.player, windowId);
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@ package com.refinedmods.refinedstorage.container.factory;
|
||||
|
||||
import com.refinedmods.refinedstorage.RSContainers;
|
||||
import com.refinedmods.refinedstorage.container.CraftingMonitorContainer;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -11,11 +12,12 @@ import net.minecraftforge.fml.network.IContainerFactory;
|
||||
public class WirelessCraftingMonitorContainerFactory implements IContainerFactory<CraftingMonitorContainer> {
|
||||
@Override
|
||||
public CraftingMonitorContainer create(int windowId, PlayerInventory inv, PacketBuffer data) {
|
||||
int slotId = data.readInt();
|
||||
|
||||
ItemStack stack = inv.getStackInSlot(slotId);
|
||||
PlayerSlot slot = new PlayerSlot(data);
|
||||
|
||||
WirelessCraftingMonitor wirelessCraftingMonitor = new WirelessCraftingMonitor(stack, null, slotId);
|
||||
ItemStack stack = slot.getStackFromSlot(inv.player);
|
||||
|
||||
WirelessCraftingMonitor wirelessCraftingMonitor = new WirelessCraftingMonitor(stack, null, slot);
|
||||
|
||||
return new CraftingMonitorContainer(RSContainers.WIRELESS_CRAFTING_MONITOR, wirelessCraftingMonitor, null, inv.player, windowId);
|
||||
}
|
||||
|
@@ -0,0 +1,76 @@
|
||||
package com.refinedmods.refinedstorage.inventory.player;
|
||||
|
||||
import com.refinedmods.refinedstorage.integration.curios.CuriosIntegration;
|
||||
import com.refinedmods.refinedstorage.util.PacketBufferUtils;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import top.theillusivec4.curios.api.CuriosApi;
|
||||
import top.theillusivec4.curios.api.type.capability.ICuriosItemHandler;
|
||||
import top.theillusivec4.curios.api.type.inventory.ICurioStacksHandler;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class PlayerSlot {
|
||||
int slot;
|
||||
String curioSlot;
|
||||
|
||||
public PlayerSlot(int slot, String curioSlot) {
|
||||
this.slot = slot;
|
||||
this.curioSlot = curioSlot;
|
||||
}
|
||||
|
||||
public PlayerSlot(int slot) {
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
public PlayerSlot(PacketBuffer buffer) {
|
||||
slot = buffer.readInt();
|
||||
|
||||
if (buffer.readBoolean()) {
|
||||
curioSlot = PacketBufferUtils.readString(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack getStackFromSlot(PlayerEntity player) {
|
||||
if (curioSlot == null || !CuriosIntegration.isLoaded()) {
|
||||
return player.inventory.getStackInSlot(slot);
|
||||
}
|
||||
|
||||
LazyOptional<ICuriosItemHandler> curiosHandler = CuriosApi.getCuriosHelper().getCuriosHandler(player);
|
||||
|
||||
Optional<ICurioStacksHandler> stacksHandler = curiosHandler.resolve().flatMap((handler ->
|
||||
handler.getStacksHandler(curioSlot)
|
||||
));
|
||||
|
||||
Optional<ItemStack> stack = stacksHandler.map(handler -> handler.getStacks().getStackInSlot(slot));
|
||||
|
||||
return stack.orElse(ItemStack.EMPTY);
|
||||
}
|
||||
|
||||
public void writePlayerSlot(PacketBuffer buffer) {
|
||||
buffer.writeInt(slot);
|
||||
buffer.writeBoolean(curioSlot != null);
|
||||
if (curioSlot != null) {
|
||||
buffer.writeString(curioSlot);
|
||||
}
|
||||
}
|
||||
|
||||
public int getSlotIdInPlayerInventory() {
|
||||
if (curioSlot != null) {
|
||||
return -1;
|
||||
}
|
||||
return slot;
|
||||
}
|
||||
|
||||
public static PlayerSlot getSlotForHand(PlayerEntity player, Hand hand) {
|
||||
if (hand == Hand.MAIN_HAND) {
|
||||
return new PlayerSlot(player.inventory.currentItem);
|
||||
}
|
||||
|
||||
//@Volatile Offhand Slot, could use -1 as we aren't using this anywhere.
|
||||
return new PlayerSlot(40);
|
||||
}
|
||||
}
|
@@ -2,9 +2,11 @@ package com.refinedmods.refinedstorage.item;
|
||||
|
||||
import com.refinedmods.refinedstorage.api.network.INetwork;
|
||||
import com.refinedmods.refinedstorage.api.network.item.INetworkItemProvider;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.render.Styles;
|
||||
import com.refinedmods.refinedstorage.util.NetworkUtils;
|
||||
import net.minecraft.client.util.ITooltipFlag;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -38,7 +40,7 @@ public abstract class NetworkItem extends EnergyItem implements INetworkItemProv
|
||||
ItemStack stack = player.getHeldItem(hand);
|
||||
|
||||
if (!world.isRemote) {
|
||||
applyNetwork(world.getServer(), stack, n -> n.getNetworkItemManager().open(player, player.getHeldItem(hand), player.inventory.currentItem), err -> player.sendMessage(err, player.getUniqueID()));
|
||||
applyNetwork(world.getServer(), stack, n -> n.getNetworkItemManager().open(player, player.getHeldItem(hand), PlayerSlot.getSlotForHand(player, hand)), err -> player.sendMessage(err, player.getUniqueID()));
|
||||
}
|
||||
|
||||
return ActionResult.resultSuccess(stack);
|
||||
@@ -82,6 +84,11 @@ public abstract class NetworkItem extends EnergyItem implements INetworkItemProv
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResultType itemInteractionForEntity(ItemStack stack, PlayerEntity playerIn, LivingEntity target, Hand hand) {
|
||||
return super.itemInteractionForEntity(stack, playerIn, target, hand);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResultType onItemUse(ItemUseContext ctx) {
|
||||
ItemStack stack = ctx.getPlayer().getHeldItem(ctx.getHand());
|
||||
|
@@ -4,6 +4,7 @@ import com.refinedmods.refinedstorage.RS;
|
||||
import com.refinedmods.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager;
|
||||
import com.refinedmods.refinedstorage.apiimpl.network.item.WirelessCraftingMonitorNetworkItem;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -36,8 +37,8 @@ public class WirelessCraftingMonitorItem extends NetworkItem {
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, int slotId) {
|
||||
return new WirelessCraftingMonitorNetworkItem(handler, player, stack, slotId);
|
||||
public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
return new WirelessCraftingMonitorNetworkItem(handler, player, stack, slot);
|
||||
}
|
||||
|
||||
public static Optional<UUID> getTabSelected(ItemStack stack) {
|
||||
|
@@ -6,6 +6,7 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager;
|
||||
import com.refinedmods.refinedstorage.apiimpl.network.item.WirelessFluidGridNetworkItem;
|
||||
import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -32,8 +33,8 @@ public class WirelessFluidGridItem extends NetworkItem {
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, int slotId) {
|
||||
return new WirelessFluidGridNetworkItem(handler, player, stack, slotId);
|
||||
public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
return new WirelessFluidGridNetworkItem(handler, player, stack, slot);
|
||||
}
|
||||
|
||||
public static int getSortingType(ItemStack stack) {
|
||||
|
@@ -6,6 +6,7 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager;
|
||||
import com.refinedmods.refinedstorage.apiimpl.network.item.WirelessGridNetworkItem;
|
||||
import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -32,8 +33,8 @@ public class WirelessGridItem extends NetworkItem {
|
||||
|
||||
@Override
|
||||
@Nonnull
|
||||
public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, int slotId) {
|
||||
return new WirelessGridNetworkItem(handler, player, stack, slotId);
|
||||
public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
return new WirelessGridNetworkItem(handler, player, stack, slot);
|
||||
}
|
||||
|
||||
public static int getViewType(ItemStack stack) {
|
||||
|
@@ -4,6 +4,7 @@ import com.refinedmods.refinedstorage.RS;
|
||||
import com.refinedmods.refinedstorage.RSBlocks;
|
||||
import com.refinedmods.refinedstorage.apiimpl.API;
|
||||
import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.PortableGridGridFactory;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.item.WirelessGridItem;
|
||||
import com.refinedmods.refinedstorage.render.Styles;
|
||||
import net.minecraft.client.util.ITooltipFlag;
|
||||
@@ -50,7 +51,7 @@ public class PortableGridBlockItem extends EnergyBlockItem {
|
||||
ItemStack stack = player.getHeldItem(hand);
|
||||
|
||||
if (!world.isRemote) {
|
||||
API.instance().getGridManager().openGrid(PortableGridGridFactory.ID, (ServerPlayerEntity) player, stack, player.inventory.currentItem);
|
||||
API.instance().getGridManager().openGrid(PortableGridGridFactory.ID, (ServerPlayerEntity) player, stack, PlayerSlot.getSlotForHand(player, hand));
|
||||
}
|
||||
|
||||
return ActionResult.resultSuccess(stack);
|
||||
|
@@ -2,37 +2,29 @@ package com.refinedmods.refinedstorage.network;
|
||||
|
||||
import com.refinedmods.refinedstorage.apiimpl.API;
|
||||
import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.PortableGridGridFactory;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.item.NetworkItem;
|
||||
import com.refinedmods.refinedstorage.item.blockitem.PortableGridBlockItem;
|
||||
import com.refinedmods.refinedstorage.util.PacketBufferUtils;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fml.network.NetworkEvent;
|
||||
import top.theillusivec4.curios.api.CuriosApi;
|
||||
import top.theillusivec4.curios.api.type.capability.ICuriosItemHandler;
|
||||
import top.theillusivec4.curios.api.type.inventory.ICurioStacksHandler;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class OpenNetworkItemMessage {
|
||||
private final int slotId;
|
||||
private final String curioSlot;
|
||||
private final PlayerSlot slot;
|
||||
|
||||
public OpenNetworkItemMessage(int slotId, String curioSlot) {
|
||||
this.slotId = slotId;
|
||||
this.curioSlot = curioSlot;
|
||||
public OpenNetworkItemMessage(PlayerSlot slot) {
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
public static OpenNetworkItemMessage decode(PacketBuffer buf) {
|
||||
return new OpenNetworkItemMessage(buf.readInt(), PacketBufferUtils.readString(buf));
|
||||
return new OpenNetworkItemMessage(new PlayerSlot(buf));
|
||||
}
|
||||
|
||||
public static void encode(OpenNetworkItemMessage message, PacketBuffer buf) {
|
||||
buf.writeInt(message.slotId);
|
||||
buf.writeString(message.curioSlot);
|
||||
message.slot.writePlayerSlot(buf);
|
||||
}
|
||||
|
||||
public static void handle(OpenNetworkItemMessage message, Supplier<NetworkEvent.Context> ctx) {
|
||||
@@ -40,40 +32,20 @@ public class OpenNetworkItemMessage {
|
||||
|
||||
if (player != null) {
|
||||
ctx.get().enqueueWork(() -> {
|
||||
ItemStack stack = getStackFromSlot(player, message.slotId, message.curioSlot);
|
||||
ItemStack stack = message.slot.getStackFromSlot(player);
|
||||
|
||||
if (stack == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (stack.getItem() instanceof NetworkItem) {
|
||||
((NetworkItem) stack.getItem()).applyNetwork(player.getServer(), stack, n -> n.getNetworkItemManager().open(player, stack, message.slotId), err -> player.sendMessage(err, player.getUniqueID()));
|
||||
((NetworkItem) stack.getItem()).applyNetwork(player.getServer(), stack, n -> n.getNetworkItemManager().open(player, stack, message.slot), err -> player.sendMessage(err, player.getUniqueID()));
|
||||
} else if (stack.getItem() instanceof PortableGridBlockItem) {
|
||||
API.instance().getGridManager().openGrid(PortableGridGridFactory.ID, player, stack, message.slotId);
|
||||
API.instance().getGridManager().openGrid(PortableGridGridFactory.ID, player, stack, message.slot);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ctx.get().setPacketHandled(true);
|
||||
}
|
||||
|
||||
private static ItemStack getStackFromSlot(ServerPlayerEntity player, int slotId, String curioSlot) {
|
||||
if (curioSlot.isEmpty()) {
|
||||
return player.inventory.getStackInSlot(slotId);
|
||||
} else {
|
||||
|
||||
LazyOptional<ICuriosItemHandler> curiosHandler = CuriosApi.getCuriosHelper().getCuriosHandler(player);
|
||||
|
||||
Optional<ICurioStacksHandler> stacksHandler = curiosHandler.resolve().flatMap((handler ->
|
||||
handler.getStacksHandler(curioSlot)
|
||||
));
|
||||
|
||||
Optional<ItemStack> stack = stacksHandler.map(handler -> handler.getStacks().getStackInSlot(slotId));
|
||||
if (stack.isPresent()) {
|
||||
return stack.get();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.refinedmods.refinedstorage.RSBlocks;
|
||||
import com.refinedmods.refinedstorage.block.PortableGridBlock;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.tile.grid.portable.PortableGrid;
|
||||
import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridDiskState;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -111,7 +112,7 @@ public class PortableGridBakedModel extends DelegateBakedModel {
|
||||
@Nullable
|
||||
@Override
|
||||
public IBakedModel getOverrideModel(IBakedModel model, ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) {
|
||||
PortableGrid portableGrid = new PortableGrid(null, stack, -1);
|
||||
PortableGrid portableGrid = new PortableGrid(null, stack, new PlayerSlot(-1));
|
||||
|
||||
if (portableGrid.isGridActive()) {
|
||||
return new PortableGridItemBakedModel(baseConnected, getDiskModel(portableGrid.getDiskState()));
|
||||
|
@@ -4,6 +4,7 @@ import com.refinedmods.refinedstorage.RS;
|
||||
import com.refinedmods.refinedstorage.RSItems;
|
||||
import com.refinedmods.refinedstorage.RSKeyBindings;
|
||||
import com.refinedmods.refinedstorage.integration.curios.CuriosIntegration;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.network.OpenNetworkItemMessage;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
@@ -60,7 +61,7 @@ public class KeyInputListener {
|
||||
Optional<ImmutableTriple<String, Integer, ItemStack>> curio = CuriosApi.getCuriosHelper().findEquippedCurio(stack -> validItems.contains(stack.getItem()), Minecraft.getInstance().player);
|
||||
|
||||
if (curio.isPresent()) {
|
||||
RS.NETWORK_HANDLER.sendToServer(new OpenNetworkItemMessage(curio.get().getMiddle(), curio.get().getLeft()));
|
||||
RS.NETWORK_HANDLER.sendToServer(new OpenNetworkItemMessage(new PlayerSlot(curio.get().getMiddle(), curio.get().getLeft())));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -68,7 +69,7 @@ public class KeyInputListener {
|
||||
if (slotFound == -1) {
|
||||
sendError(new TranslationTextComponent("misc.refinedstorage.network_item.shortcut_not_found", new TranslationTextComponent(items[0].getTranslationKey())));
|
||||
} else {
|
||||
RS.NETWORK_HANDLER.sendToServer(new OpenNetworkItemMessage(slotFound, ""));
|
||||
RS.NETWORK_HANDLER.sendToServer(new OpenNetworkItemMessage(new PlayerSlot(slotFound)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -4,6 +4,7 @@ import com.refinedmods.refinedstorage.RS;
|
||||
import com.refinedmods.refinedstorage.api.autocrafting.ICraftingManager;
|
||||
import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||
import com.refinedmods.refinedstorage.api.network.INetwork;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.item.NetworkItem;
|
||||
import com.refinedmods.refinedstorage.item.WirelessCraftingMonitorItem;
|
||||
import com.refinedmods.refinedstorage.network.craftingmonitor.WirelessCraftingMonitorSettingsUpdateMessage;
|
||||
@@ -33,12 +34,12 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
||||
private final BlockPos nodePos;
|
||||
private int tabPage;
|
||||
private Optional<UUID> tabSelected;
|
||||
private final int slotId;
|
||||
private final PlayerSlot slot;
|
||||
|
||||
public WirelessCraftingMonitor(ItemStack stack, @Nullable MinecraftServer server, int slotId) {
|
||||
public WirelessCraftingMonitor(ItemStack stack, @Nullable MinecraftServer server, PlayerSlot slot) {
|
||||
this.stack = stack;
|
||||
this.server = server;
|
||||
this.slotId = slotId;
|
||||
this.slot = slot;
|
||||
|
||||
this.nodeDimension = NetworkItem.getDimension(stack);
|
||||
this.nodePos = new BlockPos(NetworkItem.getX(stack), NetworkItem.getY(stack), NetworkItem.getZ(stack));
|
||||
@@ -155,6 +156,6 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
||||
|
||||
@Override
|
||||
public int getSlotId() {
|
||||
return slotId;
|
||||
return slot.getSlotIdInPlayerInventory();
|
||||
}
|
||||
}
|
||||
|
@@ -11,6 +11,7 @@ import com.refinedmods.refinedstorage.api.util.IFilter;
|
||||
import com.refinedmods.refinedstorage.api.util.IStackList;
|
||||
import com.refinedmods.refinedstorage.apiimpl.storage.cache.listener.FluidGridStorageCacheListener;
|
||||
import com.refinedmods.refinedstorage.inventory.item.FilterItemHandler;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.item.NetworkItem;
|
||||
import com.refinedmods.refinedstorage.item.WirelessFluidGridItem;
|
||||
import com.refinedmods.refinedstorage.network.grid.WirelessFluidGridSettingsUpdateMessage;
|
||||
@@ -42,7 +43,7 @@ public class WirelessFluidGrid implements INetworkAwareGrid {
|
||||
private final MinecraftServer server;
|
||||
private final RegistryKey<World> nodeDimension;
|
||||
private final BlockPos nodePos;
|
||||
private final int slotId;
|
||||
private final PlayerSlot slot;
|
||||
|
||||
private int sortingType;
|
||||
private int sortingDirection;
|
||||
@@ -62,12 +63,12 @@ public class WirelessFluidGrid implements INetworkAwareGrid {
|
||||
StackUtils.writeItems(handler, 0, stack.getTag());
|
||||
}));
|
||||
|
||||
public WirelessFluidGrid(ItemStack stack, @Nullable MinecraftServer server, int slotId) {
|
||||
public WirelessFluidGrid(ItemStack stack, @Nullable MinecraftServer server, PlayerSlot slot) {
|
||||
this.stack = stack;
|
||||
this.server = server;
|
||||
this.nodeDimension = NetworkItem.getDimension(stack);
|
||||
this.nodePos = new BlockPos(NetworkItem.getX(stack), NetworkItem.getY(stack), NetworkItem.getZ(stack));
|
||||
this.slotId = slotId;
|
||||
this.slot = slot;
|
||||
|
||||
this.sortingType = WirelessFluidGridItem.getSortingType(stack);
|
||||
this.sortingDirection = WirelessFluidGridItem.getSortingDirection(stack);
|
||||
@@ -297,7 +298,7 @@ public class WirelessFluidGrid implements INetworkAwareGrid {
|
||||
|
||||
@Override
|
||||
public int getSlotId() {
|
||||
return slotId;
|
||||
return slot.getSlotIdInPlayerInventory();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -11,6 +11,7 @@ import com.refinedmods.refinedstorage.api.util.IFilter;
|
||||
import com.refinedmods.refinedstorage.api.util.IStackList;
|
||||
import com.refinedmods.refinedstorage.apiimpl.storage.cache.listener.ItemGridStorageCacheListener;
|
||||
import com.refinedmods.refinedstorage.inventory.item.FilterItemHandler;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.item.NetworkItem;
|
||||
import com.refinedmods.refinedstorage.item.WirelessGridItem;
|
||||
import com.refinedmods.refinedstorage.network.grid.WirelessGridSettingsUpdateMessage;
|
||||
@@ -42,7 +43,7 @@ public class WirelessGrid implements INetworkAwareGrid {
|
||||
private final MinecraftServer server;
|
||||
private final RegistryKey<World> nodeDimension;
|
||||
private final BlockPos nodePos;
|
||||
private final int slotId;
|
||||
private final PlayerSlot slot;
|
||||
|
||||
private int viewType;
|
||||
private int sortingType;
|
||||
@@ -63,12 +64,12 @@ public class WirelessGrid implements INetworkAwareGrid {
|
||||
StackUtils.writeItems(handler, 0, stack.getTag());
|
||||
});
|
||||
|
||||
public WirelessGrid(ItemStack stack, @Nullable MinecraftServer server, int slotId) {
|
||||
public WirelessGrid(ItemStack stack, @Nullable MinecraftServer server, PlayerSlot slot) {
|
||||
this.stack = stack;
|
||||
this.server = server;
|
||||
this.nodeDimension = NetworkItem.getDimension(stack);
|
||||
this.nodePos = new BlockPos(NetworkItem.getX(stack), NetworkItem.getY(stack), NetworkItem.getZ(stack));
|
||||
this.slotId = slotId;
|
||||
this.slot = slot;
|
||||
|
||||
this.viewType = WirelessGridItem.getViewType(stack);
|
||||
this.sortingType = WirelessGridItem.getSortingType(stack);
|
||||
@@ -303,7 +304,7 @@ public class WirelessGrid implements INetworkAwareGrid {
|
||||
|
||||
@Override
|
||||
public int getSlotId() {
|
||||
return slotId;
|
||||
return slot.getSlotIdInPlayerInventory();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -33,6 +33,7 @@ import com.refinedmods.refinedstorage.apiimpl.storage.tracker.ItemStorageTracker
|
||||
import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler;
|
||||
import com.refinedmods.refinedstorage.inventory.item.FilterItemHandler;
|
||||
import com.refinedmods.refinedstorage.inventory.item.validator.StorageDiskItemValidator;
|
||||
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
|
||||
import com.refinedmods.refinedstorage.item.WirelessGridItem;
|
||||
import com.refinedmods.refinedstorage.item.blockitem.PortableGridBlockItem;
|
||||
import com.refinedmods.refinedstorage.network.grid.PortableGridSettingsUpdateMessage;
|
||||
@@ -73,7 +74,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer
|
||||
@Nullable
|
||||
private PlayerEntity player;
|
||||
private ItemStack stack;
|
||||
private final int slotId;
|
||||
private final PlayerSlot slot;
|
||||
|
||||
private int sortingType;
|
||||
private int sortingDirection;
|
||||
@@ -135,10 +136,10 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer
|
||||
}
|
||||
}));
|
||||
|
||||
public PortableGrid(@Nullable PlayerEntity player, ItemStack stack, int slotId) {
|
||||
public PortableGrid(@Nullable PlayerEntity player, ItemStack stack, PlayerSlot slot) {
|
||||
this.player = player;
|
||||
this.stack = stack;
|
||||
this.slotId = slotId;
|
||||
this.slot = slot;
|
||||
|
||||
this.sortingType = WirelessGridItem.getSortingType(stack);
|
||||
this.sortingDirection = WirelessGridItem.getSortingDirection(stack);
|
||||
@@ -435,7 +436,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer
|
||||
|
||||
@Override
|
||||
public int getSlotId() {
|
||||
return slotId;
|
||||
return slot.getSlotIdInPlayerInventory();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
Reference in New Issue
Block a user