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);
addSlotToContainer(new SlotItemHandler(networkTransmitter.getNetworkCard(), 0, 8, 20));
addSlotToContainer(new SlotItemHandler(networkTransmitter.getUpgrade(), 0, 187, 6));
addPlayerInventory(8, 55);
}

View File

@@ -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());
}

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_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);
}

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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

View File

@@ -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