More robust system of getting the Wireless Grid stack
This commit is contained in:
@@ -57,6 +57,18 @@ public class GuiHandler implements IGuiHandler {
|
||||
}
|
||||
}
|
||||
|
||||
private WirelessGrid getWirelessGrid(EntityPlayer player, int hand) {
|
||||
return new WirelessGrid(player.worldObj, player.getHeldItem(EnumHand.values()[hand]));
|
||||
}
|
||||
|
||||
private ContainerGrid getWirelessGridContainer(EntityPlayer player, int hand) {
|
||||
return new ContainerGrid(player, getWirelessGrid(player, hand));
|
||||
}
|
||||
|
||||
private ContainerGridFilter getGridFilterContainer(EntityPlayer player, int hand) {
|
||||
return new ContainerGridFilter(player, player.getHeldItem(EnumHand.values()[hand]));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
if (ID == RefinedStorageGui.WIRELESS_GRID) {
|
||||
@@ -116,20 +128,6 @@ public class GuiHandler implements IGuiHandler {
|
||||
}
|
||||
}
|
||||
|
||||
private ContainerGridFilter getGridFilterContainer(EntityPlayer player, int hand) {
|
||||
return new ContainerGridFilter(player, player.getHeldItem(EnumHand.values()[hand]));
|
||||
}
|
||||
|
||||
private WirelessGrid getWirelessGrid(EntityPlayer player, int hand) {
|
||||
return new WirelessGrid(player.worldObj, player.getHeldItem(EnumHand.values()[hand]), EnumHand.values()[hand]);
|
||||
}
|
||||
|
||||
private ContainerGrid getWirelessGridContainer(EntityPlayer player, int hand) {
|
||||
WirelessGrid wirelessGrid = getWirelessGrid(player, hand);
|
||||
|
||||
return new ContainerGrid(player, wirelessGrid);
|
||||
}
|
||||
|
||||
private GuiGrid getWirelessGridGui(EntityPlayer player, int hand) {
|
||||
WirelessGrid wirelessGrid = getWirelessGrid(player, hand);
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@ package refinedstorage.network;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import refinedstorage.RefinedStorageItems;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
import refinedstorage.tile.grid.IGrid;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
import refinedstorage.tile.grid.WirelessGrid;
|
||||
|
||||
public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToServer<MessageWirelessGridSettingsUpdate> implements IMessage {
|
||||
private int hand;
|
||||
private int viewType;
|
||||
private int sortingDirection;
|
||||
private int sortingType;
|
||||
@@ -18,8 +18,7 @@ public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToSer
|
||||
public MessageWirelessGridSettingsUpdate() {
|
||||
}
|
||||
|
||||
public MessageWirelessGridSettingsUpdate(int hand, int viewType, int sortingDirection, int sortingType, int searchBoxMode) {
|
||||
this.hand = hand;
|
||||
public MessageWirelessGridSettingsUpdate(int viewType, int sortingDirection, int sortingType, int searchBoxMode) {
|
||||
this.viewType = viewType;
|
||||
this.sortingDirection = sortingDirection;
|
||||
this.sortingType = sortingType;
|
||||
@@ -28,7 +27,6 @@ public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToSer
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
hand = buf.readInt();
|
||||
viewType = buf.readInt();
|
||||
sortingDirection = buf.readInt();
|
||||
sortingType = buf.readInt();
|
||||
@@ -37,7 +35,6 @@ public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToSer
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(hand);
|
||||
buf.writeInt(viewType);
|
||||
buf.writeInt(sortingDirection);
|
||||
buf.writeInt(sortingType);
|
||||
@@ -46,23 +43,27 @@ public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToSer
|
||||
|
||||
@Override
|
||||
public void handle(MessageWirelessGridSettingsUpdate message, EntityPlayerMP player) {
|
||||
ItemStack held = player.getHeldItem((message.hand < 0 || message.hand > EnumHand.values().length - 1) ? EnumHand.MAIN_HAND : EnumHand.values()[message.hand]);
|
||||
if (player.openContainer instanceof ContainerGrid) {
|
||||
IGrid grid = ((ContainerGrid) player.openContainer).getGrid();
|
||||
|
||||
if (grid instanceof WirelessGrid) {
|
||||
ItemStack stack = ((WirelessGrid) grid).getStack();
|
||||
|
||||
if (held != null && held.getItem() == RefinedStorageItems.WIRELESS_GRID && held.getTagCompound() != null) {
|
||||
if (TileGrid.isValidViewType(message.viewType)) {
|
||||
held.getTagCompound().setInteger(TileGrid.NBT_VIEW_TYPE, message.viewType);
|
||||
stack.getTagCompound().setInteger(TileGrid.NBT_VIEW_TYPE, message.viewType);
|
||||
}
|
||||
|
||||
if (TileGrid.isValidSortingDirection(message.sortingDirection)) {
|
||||
held.getTagCompound().setInteger(TileGrid.NBT_SORTING_DIRECTION, message.sortingDirection);
|
||||
stack.getTagCompound().setInteger(TileGrid.NBT_SORTING_DIRECTION, message.sortingDirection);
|
||||
}
|
||||
|
||||
if (TileGrid.isValidSortingType(message.sortingType)) {
|
||||
held.getTagCompound().setInteger(TileGrid.NBT_SORTING_TYPE, message.sortingType);
|
||||
stack.getTagCompound().setInteger(TileGrid.NBT_SORTING_TYPE, message.sortingType);
|
||||
}
|
||||
|
||||
if (TileGrid.isValidSearchBoxMode(message.searchBoxMode)) {
|
||||
held.getTagCompound().setInteger(TileGrid.NBT_SEARCH_BOX_MODE, message.searchBoxMode);
|
||||
stack.getTagCompound().setInteger(TileGrid.NBT_SEARCH_BOX_MODE, message.searchBoxMode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import refinedstorage.RefinedStorage;
|
||||
@@ -24,7 +23,6 @@ import java.util.List;
|
||||
public class WirelessGrid implements IGrid {
|
||||
private World world;
|
||||
|
||||
private EnumHand hand;
|
||||
private ItemStack stack;
|
||||
|
||||
private BlockPos controller;
|
||||
@@ -50,11 +48,10 @@ public class WirelessGrid implements IGrid {
|
||||
}
|
||||
};
|
||||
|
||||
public WirelessGrid(World world, ItemStack stack, EnumHand hand) {
|
||||
public WirelessGrid(World world, ItemStack stack) {
|
||||
this.world = world;
|
||||
|
||||
this.stack = stack;
|
||||
this.hand = hand;
|
||||
|
||||
this.controller = new BlockPos(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack));
|
||||
|
||||
@@ -70,6 +67,10 @@ public class WirelessGrid implements IGrid {
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack getStack() {
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumGridType getType() {
|
||||
return EnumGridType.NORMAL;
|
||||
@@ -109,28 +110,28 @@ public class WirelessGrid implements IGrid {
|
||||
|
||||
@Override
|
||||
public void onViewTypeChanged(int type) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageWirelessGridSettingsUpdate(hand.ordinal(), type, getSortingDirection(), getSortingType(), getSearchBoxMode()));
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageWirelessGridSettingsUpdate(type, getSortingDirection(), getSortingType(), getSearchBoxMode()));
|
||||
|
||||
this.viewType = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSortingTypeChanged(int type) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageWirelessGridSettingsUpdate(hand.ordinal(), getViewType(), getSortingDirection(), type, getSearchBoxMode()));
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageWirelessGridSettingsUpdate(getViewType(), getSortingDirection(), type, getSearchBoxMode()));
|
||||
|
||||
this.sortingType = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSortingDirectionChanged(int direction) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageWirelessGridSettingsUpdate(hand.ordinal(), getViewType(), direction, getSortingType(), getSearchBoxMode()));
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageWirelessGridSettingsUpdate(getViewType(), direction, getSortingType(), getSearchBoxMode()));
|
||||
|
||||
this.sortingDirection = direction;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSearchBoxModeChanged(int searchBoxMode) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageWirelessGridSettingsUpdate(hand.ordinal(), getViewType(), getSortingDirection(), getSortingType(), searchBoxMode));
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageWirelessGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), searchBoxMode));
|
||||
|
||||
this.searchBoxMode = searchBoxMode;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user