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