Few bugfixes

This commit is contained in:
Raoul Van den Berge
2016-07-31 03:30:45 +02:00
parent 0fe848f995
commit 198458f010
7 changed files with 47 additions and 35 deletions

View File

@@ -9,7 +9,6 @@ public class ContainerNetworkTransmitter extends ContainerBase {
super(player); super(player);
addSlotToContainer(new SlotItemHandler(networkTransmitter.getNetworkCard(), 0, 8, 20)); addSlotToContainer(new SlotItemHandler(networkTransmitter.getNetworkCard(), 0, 8, 20));
addSlotToContainer(new SlotItemHandler(networkTransmitter.getUpgrade(), 0, 187, 6));
addPlayerInventory(8, 55); addPlayerInventory(8, 55);
} }

View File

@@ -8,7 +8,7 @@ public class GuiNetworkTransmitter extends GuiBase {
private TileNetworkTransmitter networkTransmitter; private TileNetworkTransmitter networkTransmitter;
public GuiNetworkTransmitter(ContainerNetworkTransmitter container, TileNetworkTransmitter networkTransmitter) { public GuiNetworkTransmitter(ContainerNetworkTransmitter container, TileNetworkTransmitter networkTransmitter) {
super(container, 211, 137); super(container, 176, 137);
this.networkTransmitter = networkTransmitter; this.networkTransmitter = networkTransmitter;
} }
@@ -35,8 +35,10 @@ public class GuiNetworkTransmitter extends GuiBase {
String distance; String distance;
if (networkTransmitter.getReceiver() == null) { if (!networkTransmitter.isInSameDimension()) {
distance = t("gui.refinedstorage:network_transmitter.distance_missing"); distance = t("gui.refinedstorage:network_transmitter.different_dimension");
} else if (networkTransmitter.getDistance() == -1) {
distance = t("gui.refinedstorage:network_transmitter.missing_card");
} else { } else {
distance = t("gui.refinedstorage:network_transmitter.distance", networkTransmitter.getDistance()); distance = t("gui.refinedstorage:network_transmitter.distance", networkTransmitter.getDistance());
} }

View File

@@ -18,6 +18,7 @@ public class ItemNetworkCard extends ItemBase {
private static final String NBT_RECEIVER_X = "ReceiverX"; private static final String NBT_RECEIVER_X = "ReceiverX";
private static final String NBT_RECEIVER_Y = "ReceiverY"; private static final String NBT_RECEIVER_Y = "ReceiverY";
private static final String NBT_RECEIVER_Z = "ReceiverZ"; private static final String NBT_RECEIVER_Z = "ReceiverZ";
private static final String NBT_DIMENSION = "Dimension";
public ItemNetworkCard() { public ItemNetworkCard() {
super("network_card"); super("network_card");
@@ -28,7 +29,7 @@ public class ItemNetworkCard extends ItemBase {
Block block = world.getBlockState(pos).getBlock(); Block block = world.getBlockState(pos).getBlock();
if (block == RefinedStorageBlocks.NETWORK_RECEIVER) { if (block == RefinedStorageBlocks.NETWORK_RECEIVER) {
setReceiver(stack, pos); setReceiver(stack, pos, world.provider.getDimension());
return EnumActionResult.SUCCESS; return EnumActionResult.SUCCESS;
} }
@@ -57,12 +58,17 @@ public class ItemNetworkCard extends ItemBase {
return null; 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(); NBTTagCompound tag = new NBTTagCompound();
tag.setInteger(NBT_RECEIVER_X, pos.getX()); tag.setInteger(NBT_RECEIVER_X, pos.getX());
tag.setInteger(NBT_RECEIVER_Y, pos.getY()); tag.setInteger(NBT_RECEIVER_Y, pos.getY());
tag.setInteger(NBT_RECEIVER_Z, pos.getZ()); tag.setInteger(NBT_RECEIVER_Z, pos.getZ());
tag.setInteger(NBT_DIMENSION, dimension);
stack.setTagCompound(tag); stack.setTagCompound(tag);
} }

View File

@@ -24,6 +24,7 @@ public class TileNetworkTransmitter extends TileNode {
receiver = null; receiver = null;
} else { } else {
receiver = ItemNetworkCard.getReceiver(card); receiver = ItemNetworkCard.getReceiver(card);
receiverDimension = ItemNetworkCard.getDimension(card);
} }
if (network != null) { if (network != null) {
@@ -31,12 +32,16 @@ public class TileNetworkTransmitter extends TileNode {
} }
} }
}; };
private ItemHandlerBasic upgrade = new ItemHandlerBasic(1, this);
private BlockPos receiver; private BlockPos receiver;
private int receiverDimension;
private boolean couldUpdate; private boolean couldUpdate;
// Used clientside
private int distance;
private boolean inSameDimension;
@Override @Override
public void updateNode() { public void updateNode() {
} }
@@ -51,9 +56,8 @@ public class TileNetworkTransmitter extends TileNode {
} }
} }
@Override public boolean canTransmit() {
public boolean canConduct() { return receiver != null && worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver && isInSameDimension();
return canUpdate();
} }
@Override @Override
@@ -61,7 +65,6 @@ public class TileNetworkTransmitter extends TileNode {
super.write(tag); super.write(tag);
writeItems(networkCard, 0, tag); writeItems(networkCard, 0, tag);
writeItems(upgrade, 1, tag);
return tag; return tag;
} }
@@ -71,29 +74,22 @@ public class TileNetworkTransmitter extends TileNode {
super.read(tag); super.read(tag);
readItems(networkCard, 0, tag); readItems(networkCard, 0, tag);
readItems(upgrade, 1, tag);
} }
@Override @Override
public void writeContainerData(ByteBuf buf) { public void writeContainerData(ByteBuf buf) {
super.writeContainerData(buf); super.writeContainerData(buf);
buf.writeBoolean(receiver != null); buf.writeInt((receiver != null && isInSameDimension()) ? getDistance() : -1);
buf.writeBoolean(isInSameDimension());
if (receiver != null) {
buf.writeLong(receiver.toLong());
}
} }
@Override @Override
public void readContainerData(ByteBuf buf) { public void readContainerData(ByteBuf buf) {
super.readContainerData(buf); super.readContainerData(buf);
if (buf.readBoolean()) { distance = buf.readInt();
receiver = BlockPos.fromLong(buf.readLong()); inSameDimension = buf.readBoolean();
} else {
receiver = null;
}
} }
@Override @Override
@@ -106,10 +102,6 @@ public class TileNetworkTransmitter extends TileNode {
return ContainerNetworkTransmitter.class; return ContainerNetworkTransmitter.class;
} }
public ItemHandlerBasic getUpgrade() {
return upgrade;
}
public ItemHandlerBasic getNetworkCard() { public ItemHandlerBasic getNetworkCard() {
return networkCard; return networkCard;
} }
@@ -119,10 +111,18 @@ public class TileNetworkTransmitter extends TileNode {
} }
public int getDistance() { public int getDistance() {
if (worldObj.isRemote) {
return distance;
}
if (receiver == null) { if (receiver == null) {
return 0; 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)); 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;
}
} }

View File

@@ -46,7 +46,10 @@ import refinedstorage.container.ContainerGrid;
import refinedstorage.item.ItemPattern; import refinedstorage.item.ItemPattern;
import refinedstorage.network.MessageGridDelta; import refinedstorage.network.MessageGridDelta;
import refinedstorage.network.MessageGridUpdate; 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.IRedstoneModeConfig;
import refinedstorage.tile.config.RedstoneMode; import refinedstorage.tile.config.RedstoneMode;
import refinedstorage.tile.externalstorage.ExternalStorage; import refinedstorage.tile.externalstorage.ExternalStorage;
@@ -424,15 +427,15 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
newNodes.add(node); newNodes.add(node);
newNodesPos.add(node.getPosition()); newNodesPos.add(node.getPosition());
if (node.canConduct()) { if (tile instanceof TileNetworkTransmitter) {
if (tile instanceof TileNetworkTransmitter) { BlockPos receiver = ((TileNetworkTransmitter) tile).getReceiver();
BlockPos receiver = ((TileNetworkTransmitter) tile).getReceiver();
if (receiver != null && worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver && checked.add(receiver)) { if (((TileNetworkTransmitter) tile).canTransmit() && checked.add(receiver)) {
toCheck.add(receiver); toCheck.add(receiver);
}
} }
}
if (node.canConduct()) {
for (EnumFacing facing : EnumFacing.VALUES) { for (EnumFacing facing : EnumFacing.VALUES) {
BlockPos pos = currentPos.offset(facing); BlockPos pos = currentPos.offset(facing);

View File

@@ -33,7 +33,8 @@ gui.refinedstorage:processing_pattern_encoder.pattern_create=Create Pattern
gui.refinedstorage:grid_filter=Grid Filter gui.refinedstorage:grid_filter=Grid Filter
gui.refinedstorage:network_transmitter=Network Transmitter gui.refinedstorage:network_transmitter=Network Transmitter
gui.refinedstorage:network_transmitter.distance=%d blocks 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_stored=%d / %d RS
misc.refinedstorage:energy_usage=Usage: %d RS/t misc.refinedstorage:energy_usage=Usage: %d RS/t

View File

@@ -33,7 +33,8 @@ gui.refinedstorage:processing_pattern_encoder.pattern_create=Patroon maken
gui.refinedstorage:grid_filter=Rooster Filter gui.refinedstorage:grid_filter=Rooster Filter
gui.refinedstorage:network_transmitter=Netwerkzender gui.refinedstorage:network_transmitter=Netwerkzender
gui.refinedstorage:network_transmitter.distance=%d blokken 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_stored=%d / %d RS
misc.refinedstorage:energy_usage=Vebruik: %d RS/t misc.refinedstorage:energy_usage=Vebruik: %d RS/t