Move solderer data to description packet

This commit is contained in:
Raoul Van den Berge
2016-05-20 19:49:33 +02:00
parent 19f3592810
commit 798ae88957
6 changed files with 19 additions and 95 deletions

View File

@@ -37,8 +37,6 @@ public class BlockCable extends BlockMachine {
@Override @Override
protected BlockStateContainer createBlockState() { protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[]{ return new BlockStateContainer(this, new IProperty[]{
DIRECTION,
CONNECTED,
NORTH, NORTH,
EAST, EAST,
SOUTH, SOUTH,
@@ -50,8 +48,7 @@ public class BlockCable extends BlockMachine {
@Override @Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) { public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
return super.getActualState(state, world, pos) return state.withProperty(NORTH, hasConnectionWith(world, pos.north()))
.withProperty(NORTH, hasConnectionWith(world, pos.north()))
.withProperty(EAST, hasConnectionWith(world, pos.east())) .withProperty(EAST, hasConnectionWith(world, pos.east()))
.withProperty(SOUTH, hasConnectionWith(world, pos.south())) .withProperty(SOUTH, hasConnectionWith(world, pos.south()))
.withProperty(WEST, hasConnectionWith(world, pos.west())) .withProperty(WEST, hasConnectionWith(world, pos.west()))

View File

@@ -1,66 +0,0 @@
package refinedstorage.network;
import io.netty.buffer.ByteBuf;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import refinedstorage.RefinedStorageUtils;
import refinedstorage.proxy.ClientProxy;
import refinedstorage.tile.solderer.TileSolderer;
public class MessageSoldererWorkingUpdate implements IMessage, IMessageHandler<MessageSoldererWorkingUpdate, IMessage> {
private int x;
private int y;
private int z;
private boolean working;
public MessageSoldererWorkingUpdate() {
}
public MessageSoldererWorkingUpdate(TileSolderer solderer) {
this.x = solderer.getPos().getX();
this.y = solderer.getPos().getY();
this.z = solderer.getPos().getZ();
this.working = solderer.isWorking();
}
@Override
public void fromBytes(ByteBuf buf) {
x = buf.readInt();
y = buf.readInt();
z = buf.readInt();
working = buf.readBoolean();
}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(x);
buf.writeInt(y);
buf.writeInt(z);
buf.writeBoolean(working);
}
@Override
public IMessage onMessage(MessageSoldererWorkingUpdate message, MessageContext ctx) {
BlockPos pos = new BlockPos(message.x, message.y, message.z);
World world = ClientProxy.getWorld();
TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileSolderer) {
boolean wasWorking = ((TileSolderer) tile).isWorking();
((TileSolderer) tile).setWorking(message.working);
if (wasWorking != message.working) {
RefinedStorageUtils.updateBlock(world, pos);
}
}
return null;
}
}

View File

@@ -37,7 +37,6 @@ public class CommonProxy {
RefinedStorage.NETWORK.registerMessage(MessageTileContainerUpdate.class, MessageTileContainerUpdate.class, id++, Side.CLIENT); RefinedStorage.NETWORK.registerMessage(MessageTileContainerUpdate.class, MessageTileContainerUpdate.class, id++, Side.CLIENT);
RefinedStorage.NETWORK.registerMessage(MessageControllerEnergyUpdate.class, MessageControllerEnergyUpdate.class, id++, Side.CLIENT); RefinedStorage.NETWORK.registerMessage(MessageControllerEnergyUpdate.class, MessageControllerEnergyUpdate.class, id++, Side.CLIENT);
RefinedStorage.NETWORK.registerMessage(MessageSoldererWorkingUpdate.class, MessageSoldererWorkingUpdate.class, id++, Side.CLIENT);
RefinedStorage.NETWORK.registerMessage(MessageDetectorPoweredUpdate.class, MessageDetectorPoweredUpdate.class, id++, Side.CLIENT); RefinedStorage.NETWORK.registerMessage(MessageDetectorPoweredUpdate.class, MessageDetectorPoweredUpdate.class, id++, Side.CLIENT);
RefinedStorage.NETWORK.registerMessage(MessageRedstoneModeUpdate.class, MessageRedstoneModeUpdate.class, id++, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageRedstoneModeUpdate.class, MessageRedstoneModeUpdate.class, id++, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridStoragePush.class, MessageGridStoragePush.class, id++, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageGridStoragePush.class, MessageGridStoragePush.class, id++, Side.SERVER);

View File

@@ -20,5 +20,4 @@ public class TileCable extends TileMachine {
public boolean maySendConnectivityData() { public boolean maySendConnectivityData() {
return false; return false;
} }
} }

View File

@@ -14,7 +14,6 @@ import refinedstorage.RefinedStorageUtils;
import refinedstorage.container.ContainerSolderer; import refinedstorage.container.ContainerSolderer;
import refinedstorage.inventory.InventorySimple; import refinedstorage.inventory.InventorySimple;
import refinedstorage.item.ItemUpgrade; import refinedstorage.item.ItemUpgrade;
import refinedstorage.network.MessageSoldererWorkingUpdate;
import refinedstorage.tile.TileMachine; import refinedstorage.tile.TileMachine;
public class TileSolderer extends TileMachine implements ISidedInventory { public class TileSolderer extends TileMachine implements ISidedInventory {
@@ -45,6 +44,8 @@ public class TileSolderer extends TileMachine implements ISidedInventory {
public void updateMachine() { public void updateMachine() {
ISoldererRecipe newRecipe = SoldererRegistry.getRecipe(inventory); ISoldererRecipe newRecipe = SoldererRegistry.getRecipe(inventory);
boolean wasWorking = working;
if (newRecipe == null) { if (newRecipe == null) {
reset(); reset();
} else if (newRecipe != recipe) { } else if (newRecipe != recipe) {
@@ -77,8 +78,8 @@ public class TileSolderer extends TileMachine implements ISidedInventory {
} }
} }
if (ticks % 4 == 0) { if (wasWorking != working) {
RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageSoldererWorkingUpdate(this)); RefinedStorageUtils.updateBlock(worldObj, pos);
} }
} }
@@ -124,6 +125,20 @@ public class TileSolderer extends TileMachine implements ISidedInventory {
nbt.setInteger(NBT_PROGRESS, progress); nbt.setInteger(NBT_PROGRESS, progress);
} }
@Override
public void writeToDescriptionPacketNBT(NBTTagCompound tag) {
super.writeToDescriptionPacketNBT(tag);
tag.setBoolean(NBT_WORKING, working);
}
@Override
public void readFromDescriptionPacketNBT(NBTTagCompound tag) {
super.readFromDescriptionPacketNBT(tag);
working = tag.getBoolean(NBT_WORKING);
}
@Override @Override
public void receiveContainerData(ByteBuf buf) { public void receiveContainerData(ByteBuf buf) {
super.receiveContainerData(buf); super.receiveContainerData(buf);

View File

@@ -56,26 +56,6 @@
}, },
"false": { "false": {
} }
},
"direction": {
"north": {
},
"east": {
},
"south": {
},
"west": {
},
"up": {
},
"down": {
}
},
"connected": {
"true": {
},
"false": {
}
} }
} }
} }