Bugfixes
This commit is contained in:
@@ -3,7 +3,6 @@ package refinedstorage.gui;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.common.network.IGuiHandler;
|
||||
@@ -13,6 +12,7 @@ import refinedstorage.storage.IStorageGui;
|
||||
import refinedstorage.tile.*;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
import refinedstorage.tile.grid.WirelessGrid;
|
||||
import refinedstorage.util.HandUtils;
|
||||
|
||||
public class GuiHandler implements IGuiHandler {
|
||||
private Container getContainer(int ID, EntityPlayer player, TileEntity tile) {
|
||||
@@ -56,9 +56,7 @@ public class GuiHandler implements IGuiHandler {
|
||||
}
|
||||
|
||||
private WirelessGrid getWirelessGrid(World world, EntityPlayer player, int hand) {
|
||||
EnumHand realHand = hand == 0 ? EnumHand.MAIN_HAND : EnumHand.OFF_HAND;
|
||||
|
||||
return new WirelessGrid(player.getHeldItem(realHand), realHand, world);
|
||||
return new WirelessGrid(player.getHeldItem(HandUtils.getHandById(hand)), HandUtils.getHandById(hand), world);
|
||||
}
|
||||
|
||||
private ContainerGrid getWirelessGridContainer(World world, EntityPlayer player, int hand) {
|
||||
|
||||
@@ -3,11 +3,11 @@ 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.item.ItemWirelessGrid;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
import refinedstorage.util.HandUtils;
|
||||
|
||||
public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToServer<MessageWirelessGridSettingsUpdate> implements IMessage {
|
||||
private int hand;
|
||||
@@ -43,7 +43,7 @@ public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToSer
|
||||
|
||||
@Override
|
||||
public void handle(MessageWirelessGridSettingsUpdate message, EntityPlayerMP player) {
|
||||
ItemStack held = player.getHeldItem(hand == 1 ? EnumHand.OFF_HAND : EnumHand.MAIN_HAND);
|
||||
ItemStack held = player.getHeldItem(HandUtils.getHandById(message.hand));
|
||||
|
||||
if (held != null && held.getItem() == RefinedStorageItems.WIRELESS_GRID && held.getTagCompound() != null) {
|
||||
if (message.sortingDirection == TileGrid.SORTING_DIRECTION_ASCENDING || message.sortingDirection == TileGrid.SORTING_DIRECTION_DESCENDING) {
|
||||
|
||||
@@ -18,19 +18,15 @@ import refinedstorage.block.EnumControllerType;
|
||||
import refinedstorage.storage.IStorage;
|
||||
import refinedstorage.storage.IStorageProvider;
|
||||
import refinedstorage.storage.StorageItem;
|
||||
import refinedstorage.tile.grid.WirelessGridConsumer;
|
||||
import refinedstorage.tile.settings.IRedstoneModeSetting;
|
||||
import refinedstorage.tile.settings.RedstoneMode;
|
||||
import refinedstorage.util.HandUtils;
|
||||
import refinedstorage.util.InventoryUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class TileController extends TileBase implements IEnergyReceiver, INetworkTile, IRedstoneModeSetting {
|
||||
public class WirelessGridConsumer {
|
||||
public EntityPlayer player;
|
||||
public EnumHand hand;
|
||||
public ItemStack wirelessGrid;
|
||||
}
|
||||
|
||||
private List<StorageItem> items = new ArrayList<StorageItem>();
|
||||
private List<IStorage> storages = new ArrayList<IStorage>();
|
||||
private List<WirelessGridConsumer> wirelessGridConsumers = new ArrayList<WirelessGridConsumer>();
|
||||
@@ -120,12 +116,13 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
||||
wirelessGridConsumersMarkedForRemoval.clear();
|
||||
|
||||
Iterator<WirelessGridConsumer> it = wirelessGridConsumers.iterator();
|
||||
|
||||
while (it.hasNext()) {
|
||||
WirelessGridConsumer consumer = it.next();
|
||||
|
||||
if (!InventoryUtils.compareStack(consumer.wirelessGrid, consumer.player.getHeldItem(consumer.hand))) {
|
||||
onCloseWirelessGrid(consumer.player);
|
||||
consumer.player.closeScreen();
|
||||
if (!InventoryUtils.compareStack(consumer.getWirelessGrid(), consumer.getPlayer().getHeldItem(consumer.getHand()))) {
|
||||
onCloseWirelessGrid(consumer.getPlayer());
|
||||
consumer.getPlayer().closeScreen();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,13 +268,9 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
||||
}
|
||||
|
||||
public void onOpenWirelessGrid(EntityPlayer player, EnumHand hand) {
|
||||
WirelessGridConsumer consumer = new WirelessGridConsumer();
|
||||
consumer.hand = hand;
|
||||
consumer.player = player;
|
||||
consumer.wirelessGrid = player.getHeldItem(hand);
|
||||
wirelessGridConsumers.add(consumer);
|
||||
wirelessGridConsumers.add(new WirelessGridConsumer(player, hand, player.getHeldItem(hand)));
|
||||
|
||||
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, worldObj, hand == EnumHand.OFF_HAND ? 1 : 0, 0, 0);
|
||||
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, worldObj, HandUtils.getIdFromHand(hand), 0, 0);
|
||||
}
|
||||
|
||||
public void onCloseWirelessGrid(EntityPlayer player) {
|
||||
@@ -290,12 +283,15 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
||||
|
||||
public WirelessGridConsumer getWirelessGridConsumer(EntityPlayer player) {
|
||||
Iterator<WirelessGridConsumer> it = wirelessGridConsumers.iterator();
|
||||
|
||||
while (it.hasNext()) {
|
||||
WirelessGridConsumer consumer = it.next();
|
||||
if (consumer.player == player) {
|
||||
|
||||
if (consumer.getPlayer() == player) {
|
||||
return consumer;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,9 @@ public class WirelessGrid implements IGrid {
|
||||
|
||||
@Override
|
||||
public boolean isConnected() {
|
||||
return getController() instanceof TileController && getController().isActive();
|
||||
// Since getController().isActive() doesn't do anything clientside
|
||||
// we just check if the energy usage is above 0.
|
||||
return getController() instanceof TileController && getController().getEnergyUsage() > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
29
src/main/java/refinedstorage/tile/grid/WirelessGridConsumer.java
Executable file
29
src/main/java/refinedstorage/tile/grid/WirelessGridConsumer.java
Executable file
@@ -0,0 +1,29 @@
|
||||
package refinedstorage.tile.grid;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumHand;
|
||||
|
||||
public class WirelessGridConsumer {
|
||||
private EntityPlayer player;
|
||||
private EnumHand hand;
|
||||
private ItemStack wirelessGrid;
|
||||
|
||||
public WirelessGridConsumer(EntityPlayer player, EnumHand hand, ItemStack wirelessGrid) {
|
||||
this.player = player;
|
||||
this.hand = hand;
|
||||
this.wirelessGrid = wirelessGrid;
|
||||
}
|
||||
|
||||
public ItemStack getWirelessGrid() {
|
||||
return wirelessGrid;
|
||||
}
|
||||
|
||||
public EnumHand getHand() {
|
||||
return hand;
|
||||
}
|
||||
|
||||
public EntityPlayer getPlayer() {
|
||||
return player;
|
||||
}
|
||||
}
|
||||
27
src/main/java/refinedstorage/util/HandUtils.java
Executable file
27
src/main/java/refinedstorage/util/HandUtils.java
Executable file
@@ -0,0 +1,27 @@
|
||||
package refinedstorage.util;
|
||||
|
||||
import net.minecraft.util.EnumHand;
|
||||
|
||||
public class HandUtils {
|
||||
public static EnumHand getHandById(int id) {
|
||||
switch (id) {
|
||||
case 0:
|
||||
return EnumHand.MAIN_HAND;
|
||||
case 1:
|
||||
return EnumHand.OFF_HAND;
|
||||
}
|
||||
|
||||
return EnumHand.MAIN_HAND;
|
||||
}
|
||||
|
||||
public static int getIdFromHand(EnumHand hand) {
|
||||
switch (hand) {
|
||||
case MAIN_HAND:
|
||||
return 0;
|
||||
case OFF_HAND:
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user