Few bugfixes
This commit is contained in:
@@ -9,7 +9,6 @@ public class ContainerNetworkTransmitter extends ContainerBase {
|
||||
super(player);
|
||||
|
||||
addSlotToContainer(new SlotItemHandler(networkTransmitter.getNetworkCard(), 0, 8, 20));
|
||||
addSlotToContainer(new SlotItemHandler(networkTransmitter.getUpgrade(), 0, 187, 6));
|
||||
|
||||
addPlayerInventory(8, 55);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ public class GuiNetworkTransmitter extends GuiBase {
|
||||
private TileNetworkTransmitter networkTransmitter;
|
||||
|
||||
public GuiNetworkTransmitter(ContainerNetworkTransmitter container, TileNetworkTransmitter networkTransmitter) {
|
||||
super(container, 211, 137);
|
||||
super(container, 176, 137);
|
||||
|
||||
this.networkTransmitter = networkTransmitter;
|
||||
}
|
||||
@@ -35,8 +35,10 @@ public class GuiNetworkTransmitter extends GuiBase {
|
||||
|
||||
String distance;
|
||||
|
||||
if (networkTransmitter.getReceiver() == null) {
|
||||
distance = t("gui.refinedstorage:network_transmitter.distance_missing");
|
||||
if (!networkTransmitter.isInSameDimension()) {
|
||||
distance = t("gui.refinedstorage:network_transmitter.different_dimension");
|
||||
} else if (networkTransmitter.getDistance() == -1) {
|
||||
distance = t("gui.refinedstorage:network_transmitter.missing_card");
|
||||
} else {
|
||||
distance = t("gui.refinedstorage:network_transmitter.distance", networkTransmitter.getDistance());
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ public class ItemNetworkCard extends ItemBase {
|
||||
private static final String NBT_RECEIVER_X = "ReceiverX";
|
||||
private static final String NBT_RECEIVER_Y = "ReceiverY";
|
||||
private static final String NBT_RECEIVER_Z = "ReceiverZ";
|
||||
private static final String NBT_DIMENSION = "Dimension";
|
||||
|
||||
public ItemNetworkCard() {
|
||||
super("network_card");
|
||||
@@ -28,7 +29,7 @@ public class ItemNetworkCard extends ItemBase {
|
||||
Block block = world.getBlockState(pos).getBlock();
|
||||
|
||||
if (block == RefinedStorageBlocks.NETWORK_RECEIVER) {
|
||||
setReceiver(stack, pos);
|
||||
setReceiver(stack, pos, world.provider.getDimension());
|
||||
|
||||
return EnumActionResult.SUCCESS;
|
||||
}
|
||||
@@ -57,12 +58,17 @@ public class ItemNetworkCard extends ItemBase {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void setReceiver(ItemStack stack, BlockPos pos) {
|
||||
public static int getDimension(ItemStack stack) {
|
||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_DIMENSION)) ? stack.getTagCompound().getInteger(NBT_DIMENSION) : 0;
|
||||
}
|
||||
|
||||
public static void setReceiver(ItemStack stack, BlockPos pos, int dimension) {
|
||||
NBTTagCompound tag = new NBTTagCompound();
|
||||
|
||||
tag.setInteger(NBT_RECEIVER_X, pos.getX());
|
||||
tag.setInteger(NBT_RECEIVER_Y, pos.getY());
|
||||
tag.setInteger(NBT_RECEIVER_Z, pos.getZ());
|
||||
tag.setInteger(NBT_DIMENSION, dimension);
|
||||
|
||||
stack.setTagCompound(tag);
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
receiver = null;
|
||||
} else {
|
||||
receiver = ItemNetworkCard.getReceiver(card);
|
||||
receiverDimension = ItemNetworkCard.getDimension(card);
|
||||
}
|
||||
|
||||
if (network != null) {
|
||||
@@ -31,12 +32,16 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
}
|
||||
}
|
||||
};
|
||||
private ItemHandlerBasic upgrade = new ItemHandlerBasic(1, this);
|
||||
|
||||
private BlockPos receiver;
|
||||
private int receiverDimension;
|
||||
|
||||
private boolean couldUpdate;
|
||||
|
||||
// Used clientside
|
||||
private int distance;
|
||||
private boolean inSameDimension;
|
||||
|
||||
@Override
|
||||
public void updateNode() {
|
||||
}
|
||||
@@ -51,9 +56,8 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConduct() {
|
||||
return canUpdate();
|
||||
public boolean canTransmit() {
|
||||
return receiver != null && worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver && isInSameDimension();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -61,7 +65,6 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
super.write(tag);
|
||||
|
||||
writeItems(networkCard, 0, tag);
|
||||
writeItems(upgrade, 1, tag);
|
||||
|
||||
return tag;
|
||||
}
|
||||
@@ -71,29 +74,22 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
super.read(tag);
|
||||
|
||||
readItems(networkCard, 0, tag);
|
||||
readItems(upgrade, 1, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeBoolean(receiver != null);
|
||||
|
||||
if (receiver != null) {
|
||||
buf.writeLong(receiver.toLong());
|
||||
}
|
||||
buf.writeInt((receiver != null && isInSameDimension()) ? getDistance() : -1);
|
||||
buf.writeBoolean(isInSameDimension());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
if (buf.readBoolean()) {
|
||||
receiver = BlockPos.fromLong(buf.readLong());
|
||||
} else {
|
||||
receiver = null;
|
||||
}
|
||||
distance = buf.readInt();
|
||||
inSameDimension = buf.readBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -106,10 +102,6 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
return ContainerNetworkTransmitter.class;
|
||||
}
|
||||
|
||||
public ItemHandlerBasic getUpgrade() {
|
||||
return upgrade;
|
||||
}
|
||||
|
||||
public ItemHandlerBasic getNetworkCard() {
|
||||
return networkCard;
|
||||
}
|
||||
@@ -119,10 +111,18 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
}
|
||||
|
||||
public int getDistance() {
|
||||
if (worldObj.isRemote) {
|
||||
return distance;
|
||||
}
|
||||
|
||||
if (receiver == null) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (int) Math.sqrt(Math.pow(pos.getX() - receiver.getX(), 2) + Math.pow(pos.getY() - receiver.getY(), 2) + Math.pow(pos.getZ() - receiver.getZ(), 2));
|
||||
}
|
||||
|
||||
public boolean isInSameDimension() {
|
||||
return worldObj.isRemote ? inSameDimension : worldObj.provider.getDimension() == receiverDimension;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ import refinedstorage.container.ContainerGrid;
|
||||
import refinedstorage.item.ItemPattern;
|
||||
import refinedstorage.network.MessageGridDelta;
|
||||
import refinedstorage.network.MessageGridUpdate;
|
||||
import refinedstorage.tile.*;
|
||||
import refinedstorage.tile.ISynchronizedContainer;
|
||||
import refinedstorage.tile.TileBase;
|
||||
import refinedstorage.tile.TileCrafter;
|
||||
import refinedstorage.tile.TileNetworkTransmitter;
|
||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||
import refinedstorage.tile.config.RedstoneMode;
|
||||
import refinedstorage.tile.externalstorage.ExternalStorage;
|
||||
@@ -424,15 +427,15 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
newNodes.add(node);
|
||||
newNodesPos.add(node.getPosition());
|
||||
|
||||
if (node.canConduct()) {
|
||||
if (tile instanceof TileNetworkTransmitter) {
|
||||
BlockPos receiver = ((TileNetworkTransmitter) tile).getReceiver();
|
||||
if (tile instanceof TileNetworkTransmitter) {
|
||||
BlockPos receiver = ((TileNetworkTransmitter) tile).getReceiver();
|
||||
|
||||
if (receiver != null && worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver && checked.add(receiver)) {
|
||||
toCheck.add(receiver);
|
||||
}
|
||||
if (((TileNetworkTransmitter) tile).canTransmit() && checked.add(receiver)) {
|
||||
toCheck.add(receiver);
|
||||
}
|
||||
}
|
||||
|
||||
if (node.canConduct()) {
|
||||
for (EnumFacing facing : EnumFacing.VALUES) {
|
||||
BlockPos pos = currentPos.offset(facing);
|
||||
|
||||
|
||||
@@ -33,7 +33,8 @@ gui.refinedstorage:processing_pattern_encoder.pattern_create=Create Pattern
|
||||
gui.refinedstorage:grid_filter=Grid Filter
|
||||
gui.refinedstorage:network_transmitter=Network Transmitter
|
||||
gui.refinedstorage:network_transmitter.distance=%d blocks
|
||||
gui.refinedstorage:network_transmitter.distance_missing=Missing Network Card
|
||||
gui.refinedstorage:network_transmitter.missing_card=Missing Network Card
|
||||
gui.refinedstorage:network_transmitter.different_dimension=Different dimension
|
||||
|
||||
misc.refinedstorage:energy_stored=%d / %d RS
|
||||
misc.refinedstorage:energy_usage=Usage: %d RS/t
|
||||
|
||||
@@ -33,7 +33,8 @@ gui.refinedstorage:processing_pattern_encoder.pattern_create=Patroon maken
|
||||
gui.refinedstorage:grid_filter=Rooster Filter
|
||||
gui.refinedstorage:network_transmitter=Netwerkzender
|
||||
gui.refinedstorage:network_transmitter.distance=%d blokken
|
||||
gui.refinedstorage:network_transmitter.distance_missing=Geen Netwerkkaart
|
||||
gui.refinedstorage:network_transmitter.missing_card=Geen Netwerkkaart
|
||||
gui.refinedstorage:network_transmitter.different_dimension=Andere dimensie
|
||||
|
||||
misc.refinedstorage:energy_stored=%d / %d RS
|
||||
misc.refinedstorage:energy_usage=Vebruik: %d RS/t
|
||||
|
||||
Reference in New Issue
Block a user