Fix
This commit is contained in:
@@ -61,9 +61,9 @@ public class BlockGrid extends BlockMachine {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) {
|
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) {
|
||||||
if (!world.isRemote) {
|
if (!world.isRemote) {
|
||||||
((TileGrid) world.getTileEntity(pos)).onGridOpened(player);
|
|
||||||
|
|
||||||
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.GRID, world, pos.getX(), pos.getY(), pos.getZ());
|
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.GRID, world, pos.getX(), pos.getY(), pos.getZ());
|
||||||
|
|
||||||
|
((TileGrid) world.getTileEntity(pos)).onGridOpened(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
|||||||
private int wirelessGridRange;
|
private int wirelessGridRange;
|
||||||
|
|
||||||
private boolean couldRun;
|
private boolean couldRun;
|
||||||
private boolean syncing;
|
|
||||||
|
|
||||||
private long lastEnergyUpdate;
|
private long lastEnergyUpdate;
|
||||||
|
|
||||||
@@ -310,8 +309,6 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void syncItems() {
|
private void syncItems() {
|
||||||
this.syncing = true;
|
|
||||||
|
|
||||||
itemGroups.clear();
|
itemGroups.clear();
|
||||||
|
|
||||||
for (IStorage storage : storages) {
|
for (IStorage storage : storages) {
|
||||||
@@ -361,16 +358,12 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
|||||||
}
|
}
|
||||||
|
|
||||||
itemGroups.removeAll(combinedGroups);
|
itemGroups.removeAll(combinedGroups);
|
||||||
|
|
||||||
this.syncing = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void syncItemsWithClients() {
|
public void syncItemsWithClients() {
|
||||||
if (!syncing) {
|
for (EntityPlayer player : worldObj.playerEntities) {
|
||||||
for (EntityPlayer player : worldObj.playerEntities) {
|
if (player.openContainer.getClass() == ContainerGrid.class && pos.equals(((ContainerGrid) player.openContainer).getGrid().getControllerPos())) {
|
||||||
if (player.openContainer.getClass() == ContainerGrid.class) {
|
syncItemsWithClient((EntityPlayerMP) player);
|
||||||
syncItemsWithClient((EntityPlayerMP) player);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package refinedstorage.tile.grid;
|
package refinedstorage.tile.grid;
|
||||||
|
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
import refinedstorage.block.EnumGridType;
|
import refinedstorage.block.EnumGridType;
|
||||||
import refinedstorage.storage.ItemGroup;
|
import refinedstorage.storage.ItemGroup;
|
||||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||||
@@ -13,6 +14,8 @@ public interface IGrid {
|
|||||||
|
|
||||||
void setItemGroups(List<ItemGroup> groups);
|
void setItemGroups(List<ItemGroup> groups);
|
||||||
|
|
||||||
|
BlockPos getControllerPos();
|
||||||
|
|
||||||
void onItemPush(int playerSlot, boolean one);
|
void onItemPush(int playerSlot, boolean one);
|
||||||
|
|
||||||
void onItemPull(int id, int flags);
|
void onItemPull(int id, int flags);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import net.minecraft.inventory.*;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.crafting.CraftingManager;
|
import net.minecraft.item.crafting.CraftingManager;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import net.minecraftforge.items.wrapper.InvWrapper;
|
import net.minecraftforge.items.wrapper.InvWrapper;
|
||||||
import refinedstorage.RefinedStorage;
|
import refinedstorage.RefinedStorage;
|
||||||
@@ -97,6 +98,11 @@ public class TileGrid extends TileMachine implements IGrid {
|
|||||||
this.itemGroups = itemGroups;
|
this.itemGroups = itemGroups;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockPos getControllerPos() {
|
||||||
|
return controller != null ? controller.getPos() : null;
|
||||||
|
}
|
||||||
|
|
||||||
public void onGridOpened(EntityPlayer player) {
|
public void onGridOpened(EntityPlayer player) {
|
||||||
if (isConnected()) {
|
if (isConnected()) {
|
||||||
controller.syncItemsWithClient((EntityPlayerMP) player);
|
controller.syncItemsWithClient((EntityPlayerMP) player);
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class WirelessGrid implements IGrid {
|
public class WirelessGrid implements IGrid {
|
||||||
private ItemStack stack;
|
|
||||||
private EnumHand hand;
|
private EnumHand hand;
|
||||||
|
private BlockPos controllerPos;
|
||||||
private int sortingType;
|
private int sortingType;
|
||||||
private int sortingDirection;
|
private int sortingDirection;
|
||||||
private int searchBoxMode;
|
private int searchBoxMode;
|
||||||
@@ -30,8 +30,8 @@ public class WirelessGrid implements IGrid {
|
|||||||
private long lastUpdate;
|
private long lastUpdate;
|
||||||
|
|
||||||
public WirelessGrid(ItemStack stack, EnumHand hand) {
|
public WirelessGrid(ItemStack stack, EnumHand hand) {
|
||||||
this.stack = stack;
|
|
||||||
this.hand = hand;
|
this.hand = hand;
|
||||||
|
this.controllerPos = new BlockPos(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack));
|
||||||
this.sortingType = ItemWirelessGrid.getSortingType(stack);
|
this.sortingType = ItemWirelessGrid.getSortingType(stack);
|
||||||
this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack);
|
this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack);
|
||||||
this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack);
|
this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack);
|
||||||
@@ -53,18 +53,23 @@ public class WirelessGrid implements IGrid {
|
|||||||
this.lastUpdate = System.currentTimeMillis();
|
this.lastUpdate = System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockPos getControllerPos() {
|
||||||
|
return controllerPos;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemPush(int playerSlot, boolean one) {
|
public void onItemPush(int playerSlot, boolean one) {
|
||||||
RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridStoragePush(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack), playerSlot, one));
|
RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridStoragePush(controllerPos.getX(), controllerPos.getY(), controllerPos.getZ(), playerSlot, one));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemPull(int id, int flags) {
|
public void onItemPull(int id, int flags) {
|
||||||
RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridStoragePull(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack), id, flags));
|
RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridStoragePull(controllerPos.getX(), controllerPos.getY(), controllerPos.getZ(), id, flags));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onClose(EntityPlayer player) {
|
public void onClose(EntityPlayer player) {
|
||||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack)));
|
TileEntity tile = player.worldObj.getTileEntity(controllerPos);
|
||||||
|
|
||||||
if (tile instanceof TileController) {
|
if (tile instanceof TileController) {
|
||||||
((TileController) tile).getWirelessGridHandler().handleClose(player);
|
((TileController) tile).getWirelessGridHandler().handleClose(player);
|
||||||
@@ -109,7 +114,7 @@ public class WirelessGrid implements IGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCraftingRequested(int id, int quantity) {
|
public void onCraftingRequested(int id, int quantity) {
|
||||||
RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridCraftingStart(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack), id, quantity));
|
RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridCraftingStart(controllerPos.getX(), controllerPos.getY(), controllerPos.getZ(), id, quantity));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user