holy shit im done (part 2)

This commit is contained in:
BallOfEnergy 2024-09-06 19:43:18 -05:00
parent f0148a12e9
commit ec15e85e4e
66 changed files with 705 additions and 850 deletions

View File

@ -5,14 +5,15 @@ import java.util.List;
import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ITooltipProvider;
import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.NBTPacket;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import api.hbm.block.IToolable; import api.hbm.block.IToolable;
import com.hbm.tileentity.TileEntityLoadedBase;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockContainer;
import net.minecraft.block.BlockPistonBase; import net.minecraft.block.BlockPistonBase;
@ -103,7 +104,7 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP
return false; return false;
} }
public static class TileEntityEmitter extends TileEntity implements INBTPacketReceiver { public static class TileEntityEmitter extends TileEntityLoadedBase implements IBufPacketReceiver {
public static final int range = 100; public static final int range = 100;
public int color; public int color;
@ -146,7 +147,7 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP
if(color == 0) { if(color == 0) {
color = Color.HSBtoRGB(worldObj.getTotalWorldTime() / 50.0F, 0.5F, 0.25F) & 16777215; color = Color.HSBtoRGB(worldObj.getTotalWorldTime() / 50.0F, 0.5F, 0.25F) & 16777215;
} }
NBTTagCompound data = new NBTTagCompound(); NBTTagCompound data = new NBTTagCompound();
data.setString("type", "plasmablast"); data.setString("type", "plasmablast");
data.setFloat("r", ((float)((color & 0xff0000) >> 16)) / 256F); data.setFloat("r", ((float)((color & 0xff0000) >> 16)) / 256F);
@ -168,20 +169,16 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP
data.setFloat("pitch", -90); data.setFloat("pitch", -90);
data.setFloat("yaw", 90); data.setFloat("yaw", 90);
} }
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z),
new TargetPoint(worldObj.provider.dimensionId, x, y, z, 100)); new TargetPoint(worldObj.provider.dimensionId, x, y, z, 100));
color = prevColor; color = prevColor;
} }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(150);
data.setInteger("beam", this.beam);
data.setInteger("color", this.color);
data.setFloat("girth", this.girth);
data.setInteger("effect", this.effect);
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150));
} }
} }
@ -225,11 +222,19 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.beam = nbt.getInteger("beam"); buf.writeInt(this.beam);
this.color = nbt.getInteger("color"); buf.writeInt(this.color);
this.girth = nbt.getFloat("girth"); buf.writeFloat(this.girth);
this.effect = nbt.getInteger("effect"); buf.writeInt(this.effect);
}
@Override
public void deserialize(ByteBuf buf) {
this.beam = buf.readInt();
this.color = buf.readInt();
this.girth = buf.readFloat();
this.effect = buf.readInt();
} }
} }

View File

@ -199,8 +199,8 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP
this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord + opp.offsetY, zCoord + opp.offsetZ, opp); this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord + opp.offsetY, zCoord + opp.offsetZ, opp);
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 15)); sendStandard(15);
this.powerSent = 0; this.powerSent = 0;
this.powerReceived = 0; this.powerReceived = 0;
} }

View File

@ -4,11 +4,14 @@ import java.util.List;
import com.hbm.blocks.BlockContainerBase; import com.hbm.blocks.BlockContainerBase;
import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ITooltipProvider;
import com.hbm.tileentity.INBTPacketReceiver;
import api.hbm.block.IInsertable; import api.hbm.block.IInsertable;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.BufferUtil;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockPistonBase; import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@ -206,7 +209,7 @@ public class PistonInserter extends BlockContainerBase implements ITooltipProvid
// |___..---' _|____`-----..-----'\ // |___..---' _|____`-----..-----'\
// |_____________________| @ | ) // |_____________________| @ | )
// average coding session involving tile entities // average coding session involving tile entities
public static class TileEntityPistonInserter extends TileEntity implements IInventory, INBTPacketReceiver { public static class TileEntityPistonInserter extends TileEntityLoadedBase implements IInventory, IBufPacketReceiver {
public ItemStack slot; public ItemStack slot;
@ -257,15 +260,7 @@ public class PistonInserter extends BlockContainerBase implements ITooltipProvid
delay--; delay--;
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(25);
data.setInteger("extend", extend);
if(this.slot != null) {
NBTTagCompound stack = new NBTTagCompound();
slot.writeToNBT(stack);
data.setTag("stack", stack);
}
INBTPacketReceiver.networkPack(this, data, 25);
} else { } else {
this.lastExtend = this.renderExtend; this.lastExtend = this.renderExtend;
@ -279,22 +274,32 @@ public class PistonInserter extends BlockContainerBase implements ITooltipProvid
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.syncExtend = nbt.getInteger("extend"); buf.writeInt(extend);
if(nbt.hasKey("stack")) { buf.writeBoolean(this.slot != null);
NBTTagCompound stack = nbt.getCompoundTag("stack"); if(this.slot != null) {
BufferUtil.writeNBT(buf, slot.stackTagCompound);
}
this.turnProgress = 2;
}
@Override
public void deserialize(ByteBuf buf) {
this.syncExtend = buf.readInt();
if(buf.readBoolean()) {
NBTTagCompound stack = BufferUtil.readNBT(buf);
this.slot = ItemStack.loadItemStackFromNBT(stack); this.slot = ItemStack.loadItemStackFromNBT(stack);
} else } else
this.slot = null; this.slot = null;
this.turnProgress = 2; this.turnProgress = 2;
} }
/* :3 NBT stuff */
@Override @Override
public void writeToNBT(NBTTagCompound nbt) { public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt); super.writeToNBT(nbt);

View File

@ -8,16 +8,20 @@ import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ITooltipProvider;
import com.hbm.handler.CompatHandler; import com.hbm.handler.CompatHandler;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.render.block.RenderBlockMultipass; import com.hbm.render.block.RenderBlockMultipass;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.network.TileEntityCableBaseNT; import com.hbm.tileentity.network.TileEntityCableBaseNT;
import com.hbm.util.BobMathUtil; import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil; import com.hbm.util.I18nUtil;
import api.hbm.energymk2.PowerNetMK2; import api.hbm.energymk2.PowerNetMK2;
import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context; import li.cil.oc.api.machine.Context;
@ -105,7 +109,7 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass,
} }
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public static class TileEntityCableGauge extends TileEntityCableBaseNT implements INBTPacketReceiver, SimpleComponent, CompatHandler.OCComponent { public static class TileEntityCableGauge extends TileEntityCableBaseNT implements IBufPacketReceiver, SimpleComponent, CompatHandler.OCComponent {
private long deltaTick = 0; private long deltaTick = 0;
private long deltaSecond = 0; private long deltaSecond = 0;
@ -128,18 +132,21 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass,
} }
this.deltaSecond += deltaTick; this.deltaSecond += deltaTick;
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(25);
data.setLong("deltaT", deltaTick);
data.setLong("deltaS", deltaLastSecond);
INBTPacketReceiver.networkPack(this, data, 25);
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.deltaTick = Math.max(nbt.getLong("deltaT"), 0); buf.writeLong(deltaTick);
this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); buf.writeLong(deltaLastSecond);
}
@Override
public void deserialize(ByteBuf buf) {
this.deltaTick = Math.max(buf.readLong(), 0);
this.deltaLastSecond = Math.max(buf.readLong(), 0);
} }
@Override @Override

View File

@ -11,15 +11,19 @@ import com.hbm.blocks.ITooltipProvider;
import com.hbm.handler.CompatHandler; import com.hbm.handler.CompatHandler;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.render.block.RenderBlockMultipass; import com.hbm.render.block.RenderBlockMultipass;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.tileentity.network.TileEntityPipeBaseNT;
import com.hbm.util.I18nUtil; import com.hbm.util.I18nUtil;
import api.hbm.fluid.IPipeNet; import api.hbm.fluid.IPipeNet;
import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context; import li.cil.oc.api.machine.Context;
@ -30,7 +34,6 @@ import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
@ -109,7 +112,7 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL
} }
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements INBTPacketReceiver, SimpleComponent, CompatHandler.OCComponent { public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements IBufPacketReceiver, SimpleComponent, CompatHandler.OCComponent {
private BigInteger lastMeasurement = BigInteger.valueOf(10); private BigInteger lastMeasurement = BigInteger.valueOf(10);
private long deltaTick = 0; private long deltaTick = 0;
@ -139,18 +142,21 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL
} catch(Exception ex) { } } catch(Exception ex) { }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(25);
data.setLong("deltaT", deltaTick);
data.setLong("deltaS", deltaLastSecond);
INBTPacketReceiver.networkPack(this, data, 25);
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.deltaTick = Math.max(nbt.getLong("deltaT"), 0); buf.writeLong(deltaTick);
this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); buf.writeLong(deltaLastSecond);
}
@Override
public void deserialize(ByteBuf buf) {
this.deltaTick = Math.max(buf.readLong(), 0);
this.deltaLastSecond = Math.max(buf.readLong(), 0);
} }
@Optional.Method(modid = "OpenComputers") @Optional.Method(modid = "OpenComputers")

View File

@ -62,7 +62,7 @@ public class PileNeutronHandler {
TileEntityPileBase originTE = (TileEntityPileBase) origin.tile; TileEntityPileBase originTE = (TileEntityPileBase) origin.tile;
BlockPos pos = new BlockPos(originTE); BlockPos pos = new BlockPos(originTE);
for(float i = 1; i <= range; i += 1F) { for(float i = 1; i <= range; i += 0.5F) {
BlockPos node = new BlockPos( BlockPos node = new BlockPos(
(int)Math.floor(pos.getX() + 0.5 + vector.xCoord * i), (int)Math.floor(pos.getX() + 0.5 + vector.xCoord * i),
@ -73,6 +73,8 @@ public class PileNeutronHandler {
if(node.equals(pos)) if(node.equals(pos))
continue; // don't interact with itself! continue; // don't interact with itself!
pos.mutate(node.getX(), node.getY(), node.getZ());
TileEntity tile; TileEntity tile;
if (NeutronNodeWorld.nodeCache.containsKey(node)) if (NeutronNodeWorld.nodeCache.containsKey(node))
@ -108,7 +110,7 @@ public class PileNeutronHandler {
if(te instanceof IPileNeutronReceiver) { if(te instanceof IPileNeutronReceiver) {
IPileNeutronReceiver rec = (IPileNeutronReceiver) te; IPileNeutronReceiver rec = (IPileNeutronReceiver) te;
rec.receiveNeutrons((int) fluxQuantity); rec.receiveNeutrons((int) Math.floor(fluxQuantity));
if(block != ModBlocks.block_graphite_detector || (meta & 8) == 0) if(block != ModBlocks.block_graphite_detector || (meta & 8) == 0)
return; return;

View File

@ -1,97 +0,0 @@
package com.hbm.packet;
import java.io.IOException;
import com.hbm.tileentity.INBTPacketReceiver;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.minecraft.client.Minecraft;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.tileentity.TileEntity;
@Deprecated // rest in peace sweet little prince
public class NBTPacket implements IMessage {
PacketBuffer buffer;
int x;
int y;
int z;
public NBTPacket() { }
public NBTPacket(NBTTagCompound nbt, int x, int y, int z) {
this.buffer = new PacketBuffer(Unpooled.buffer());
this.x = x;
this.y = y;
this.z = z;
try {
buffer.writeNBTTagCompoundToBuffer(nbt);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void fromBytes(ByteBuf buf) {
x = buf.readInt();
y = buf.readInt();
z = buf.readInt();
if (buffer == null) {
buffer = new PacketBuffer(Unpooled.buffer());
}
buffer.writeBytes(buf);
}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(x);
buf.writeInt(y);
buf.writeInt(z);
if (buffer == null) {
buffer = new PacketBuffer(Unpooled.buffer());
}
buf.writeBytes(buffer);
}
public static class Handler implements IMessageHandler<NBTPacket, IMessage> {
@Override
public IMessage onMessage(NBTPacket m, MessageContext ctx) {
if(Minecraft.getMinecraft().theWorld == null)
return null;
TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z);
try {
NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer();
if(nbt != null) {
if(te instanceof INBTPacketReceiver)
((INBTPacketReceiver) te).networkUnpack(nbt);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
}

View File

@ -80,7 +80,8 @@ public class PacketDispatcher {
//Tile sync //Tile sync
wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); //The horrid one wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); //The horrid one
wrapper.registerMessage(NBTPacket.Handler.class, NBTPacket.class, i++, Side.CLIENT); //The convenient but laggy one // fucking DIE
//wrapper.registerMessage(NBTPacket.Handler.class, NBTPacket.class, i++, Side.CLIENT); //The convenient but laggy one
wrapper.registerMessage(BufPacket.Handler.class, BufPacket.class, i++, Side.CLIENT); //The not-so-convenient but not laggy one wrapper.registerMessage(BufPacket.Handler.class, BufPacket.class, i++, Side.CLIENT); //The not-so-convenient but not laggy one
} }

View File

@ -1,17 +0,0 @@
package com.hbm.tileentity;
import com.hbm.packet.NBTPacket;
import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
public interface INBTPacketReceiver {
public void networkUnpack(NBTTagCompound nbt);
public static void networkPack(TileEntity that, NBTTagCompound data, int range) {
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, that.xCoord, that.yCoord, that.zCoord), new TargetPoint(that.getWorldObj().provider.dimensionId, that.xCoord, that.yCoord, that.zCoord, range));
}
}

View File

@ -2,7 +2,6 @@ package com.hbm.tileentity;
import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.AuxGaugePacket;
import com.hbm.packet.BufPacket; import com.hbm.packet.BufPacket;
import com.hbm.packet.NBTPacket;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
@ -17,7 +16,7 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTank;
public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver, IBufPacketReceiver { public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory, IBufPacketReceiver {
public ItemStack slots[]; public ItemStack slots[];
@ -154,11 +153,6 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme
if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, val, id), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, val, id), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
} }
@Deprecated public void processGauge(int val, int id) { } @Deprecated public void processGauge(int val, int id) { }
@Deprecated
public void networkUnpack(NBTTagCompound nbt) {
this.muffled = nbt.getBoolean("muffled");
}
/** Sends a sync packet that uses ByteBuf for efficient information-cramming */ /** Sends a sync packet that uses ByteBuf for efficient information-cramming */
public void networkPackNT(int range) { public void networkPackNT(int range) {

View File

@ -1,15 +1,9 @@
package com.hbm.tileentity; package com.hbm.tileentity;
import com.hbm.packet.BufPacket;
import com.hbm.packet.NBTPacket;
import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTank;
public abstract class TileEntityTickingBase extends TileEntityLoadedBase implements INBTPacketReceiver, IBufPacketReceiver { public abstract class TileEntityTickingBase extends TileEntityLoadedBase implements IBufPacketReceiver {
public TileEntityTickingBase() { } public TileEntityTickingBase() { }
@ -26,19 +20,11 @@ public abstract class TileEntityTickingBase extends TileEntityLoadedBase impleme
@Override @Override
public abstract void updateEntity(); public abstract void updateEntity();
@Deprecated public void networkPack(NBTTagCompound nbt, int range) {
if(!worldObj.isRemote)
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
}
@Deprecated public void networkUnpack(NBTTagCompound nbt) { }
@Deprecated @Deprecated
public void handleButtonPacket(int value, int meta) { } public void handleButtonPacket(int value, int meta) { }
public void networkPackNT(int range) { public void networkPackNT(int range) {
if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); if(!worldObj.isRemote) sendStandard(range);
} }
@Override public void serialize(ByteBuf buf) { @Override public void serialize(ByteBuf buf) {

View File

@ -1,15 +1,15 @@
package com.hbm.tileentity.bomb; package com.hbm.tileentity.bomb;
import com.hbm.blocks.bomb.BlockChargeBase; import com.hbm.blocks.bomb.BlockChargeBase;
import com.hbm.packet.NBTPacket; import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry;
import net.minecraft.nbt.NBTTagCompound; import io.netty.buffer.ByteBuf;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
public class TileEntityCharge extends TileEntity implements INBTPacketReceiver { public class TileEntityCharge extends TileEntity implements IBufPacketReceiver {
public boolean started; public boolean started;
public int timer; public int timer;
@ -29,18 +29,21 @@ public class TileEntityCharge extends TileEntity implements INBTPacketReceiver {
((BlockChargeBase)this.getBlockType()).explode(worldObj, xCoord, yCoord, zCoord); ((BlockChargeBase)this.getBlockType()).explode(worldObj, xCoord, yCoord, zCoord);
} }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(100);
data.setInteger("timer", timer);
data.setBoolean("started", started);
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 100));
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound data) { public void serialize(ByteBuf buf) {
timer = data.getInteger("timer"); buf.writeLong(this.timer);
started = data.getBoolean("started"); buf.writeBoolean(this.started);
}
@Override
public void deserialize(ByteBuf buf) {
this.timer = buf.readInt();
this.started = buf.readBoolean();
} }
public String getMinutes() { public String getMinutes() {

View File

@ -188,9 +188,9 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I
if(worldObj.getTotalWorldTime() % 20 == 0) if(worldObj.getTotalWorldTime() % 20 == 0)
this.updateConnections(); this.updateConnections();
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); sendStandard(50);
MissileStruct multipart = getStruct(slots[0]); MissileStruct multipart = getStruct(slots[0]);
if(multipart != null) if(multipart != null)

View File

@ -197,9 +197,9 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide
this.decrStackSize(4, 1); this.decrStackSize(4, 1);
solid += 250; solid += 250;
} }
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); sendStandard(50);
MissileStruct multipart = getStruct(slots[0]); MissileStruct multipart = getStruct(slots[0]);
if(multipart != null) if(multipart != null)

View File

@ -13,11 +13,12 @@ import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.special.ItemKitCustom; import com.hbm.items.special.ItemKitCustom;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.IRepairable;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
@ -27,7 +28,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketReceiver, IRepairable { public class TileEntityLanternBehemoth extends TileEntity implements IBufPacketReceiver, IRepairable {
public boolean isBroken = false; public boolean isBroken = false;
public int comTimer = -1; public int comTimer = -1;
@ -63,10 +64,8 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR
if(comTimer >= 0) { if(comTimer >= 0) {
comTimer--; comTimer--;
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(250);
data.setBoolean("isBroken", isBroken);
INBTPacketReceiver.networkPack(this, data, 250);
} }
} }
@ -81,8 +80,13 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.isBroken = nbt.getBoolean("isBroken"); buf.writeBoolean(this.isBroken);
}
@Override
public void deserialize(ByteBuf buf) {
this.isBroken = buf.readBoolean();
} }
@Override @Override

View File

@ -4,18 +4,17 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.energymk2.IBatteryItem; import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.energymk2.IEnergyReceiverMK2;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyReceiverMK2, INBTPacketReceiver { public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyReceiverMK2, IBufPacketReceiver {
private List<EntityPlayer> players = new ArrayList(); private List<EntityPlayer> players = new ArrayList();
private long charge = 0; private long charge = 0;
@ -62,10 +61,7 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyRe
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 0.2F, 0.5F); worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 0.2F, 0.5F);
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(50);
data.setLong("c", charge);
data.setBoolean("p", particles);
INBTPacketReceiver.networkPack(this, data, 50);
} }
lastUsingTicks = usingTicks; lastUsingTicks = usingTicks;
@ -94,9 +90,15 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyRe
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.charge = nbt.getLong("c"); buf.writeLong(this.charge);
this.particles = nbt.getBoolean("p"); buf.writeBoolean(this.particles);
}
@Override
public void deserialize(ByteBuf buf) {
this.charge = buf.readLong();
this.particles = buf.readBoolean();
} }
@Override @Override

View File

@ -6,15 +6,15 @@ import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.fluid.IFluidUser; import api.hbm.fluid.IFluidUser;
import net.minecraft.nbt.NBTTagCompound; import io.netty.buffer.ByteBuf;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public abstract class TileEntityChimneyBase extends TileEntityLoadedBase implements IFluidUser, INBTPacketReceiver { public abstract class TileEntityChimneyBase extends TileEntityLoadedBase implements IFluidUser, IBufPacketReceiver {
public long ashTick = 0; public long ashTick = 0;
public long sootTick = 0; public long sootTick = 0;
@ -49,9 +49,7 @@ public abstract class TileEntityChimneyBase extends TileEntityLoadedBase impleme
this.sootTick = 0; this.sootTick = 0;
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(150);
data.setInteger("onTicks", onTicks);
INBTPacketReceiver.networkPack(this, data, 150);
if(onTicks > 0) onTicks--; if(onTicks > 0) onTicks--;
@ -72,9 +70,15 @@ public abstract class TileEntityChimneyBase extends TileEntityLoadedBase impleme
} }
public void spawnParticles() { } public void spawnParticles() { }
public void networkUnpack(NBTTagCompound nbt) { @Override
this.onTicks = nbt.getInteger("onTicks"); public void serialize(ByteBuf buf) {
buf.writeInt(this.onTicks);
}
@Override
public void deserialize(ByteBuf buf) {
this.onTicks = buf.readInt();
} }
@Override @Override

View File

@ -13,11 +13,9 @@ import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable;
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.packet.NBTPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl; import com.hbm.util.CompatEnergyControl;
import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.BlockPos;
@ -27,9 +25,9 @@ import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IInfoProviderEC; import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context; import li.cil.oc.api.machine.Context;
@ -40,7 +38,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine { public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine, IBufPacketReceiver {
public long power; public long power;
private int turnTimer; private int turnTimer;
@ -139,12 +137,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr
turnTimer--; turnTimer--;
if(operational) turnTimer = 25; if(operational) turnTimer = 25;
NBTTagCompound data = new NBTTagCompound(); sendStandard(150);
data.setLong("power", power);
data.setInteger("type", tanks[0].getTankType().getID());
data.setInteger("operational", turnTimer);
this.networkPack(data, 150);
} else { } else {
@ -213,16 +207,19 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr
new DirPos(xCoord - rot.offsetX * 3, yCoord, zCoord - rot.offsetZ * 3, rot.getOpposite()) new DirPos(xCoord - rot.offsetX * 3, yCoord, zCoord - rot.offsetZ * 3, rot.getOpposite())
}; };
} }
public void networkPack(NBTTagCompound nbt, int range) { @Override
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); public void serialize(ByteBuf buf) {
buf.writeLong(this.power);
buf.writeInt(this.turnTimer);
this.tanks[0].serialize(buf);
} }
@Override @Override
public void networkUnpack(NBTTagCompound data) { public void deserialize(ByteBuf buf) {
this.power = data.getLong("power"); this.power = buf.readLong();
this.turnTimer = data.getInteger("operational"); this.turnTimer = buf.readInt();
this.tanks[0].setTankType(Fluids.fromID(data.getInteger("type"))); this.tanks[0].deserialize(buf);
} }
@Override @Override

View File

@ -7,17 +7,16 @@ import com.google.gson.stream.JsonWriter;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.saveddata.TomSaveData; import com.hbm.saveddata.TomSaveData;
import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.*;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl; import com.hbm.util.CompatEnergyControl;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IInfoProviderEC; import api.hbm.tile.IInfoProviderEC;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.EnumSkyBlock;
public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IInfoProviderEC, IConfigurableMachine { public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidStandardTransceiver, IInfoProviderEC, IConfigurableMachine, IBufPacketReceiver {
public int age = 0; public int age = 0;
public FluidTank[] tanks; public FluidTank[] tanks;
@ -52,8 +51,6 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidS
writer.name("I:outputTankSize").value(outputTankSize); writer.name("I:outputTankSize").value(outputTankSize);
} }
@Override @Override
public void updateEntity() { public void updateEntity() {
@ -95,9 +92,7 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidS
this.subscribeToAllAround(tanks[0].getTankType(), this); this.subscribeToAllAround(tanks[0].getTankType(), this);
this.sendFluidToAll(tanks[1], this); this.sendFluidToAll(tanks[1], this);
data.setByte("timer", (byte) this.waterTimer); sendStandard(150);
packExtra(data);
INBTPacketReceiver.networkPack(this, data, 150);
} }
} }
@ -106,10 +101,17 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidS
public void postConvert(int convert) { } public void postConvert(int convert) { }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.tanks[0].readFromNBT(nbt, "0"); this.tanks[0].serialize(buf);
this.tanks[1].readFromNBT(nbt, "1"); this.tanks[1].serialize(buf);
this.waterTimer = nbt.getByte("timer"); buf.writeByte(this.waterTimer);
}
@Override
public void deserialize(ByteBuf buf) {
this.tanks[0].deserialize(buf);
this.tanks[1].deserialize(buf);
this.waterTimer = buf.readByte();
} }
@Override @Override

View File

@ -13,6 +13,7 @@ import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.energymk2.IEnergyReceiverMK2;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
@ -98,11 +99,21 @@ public class TileEntityCondenserPowered extends TileEntityCondenser implements I
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.power = nbt.getLong("power"); super.serialize(buf);
this.tanks[0].readFromNBT(nbt, "0"); buf.writeLong(this.power);
this.tanks[1].readFromNBT(nbt, "1"); this.tanks[0].serialize(buf);
this.waterTimer = nbt.getByte("timer"); this.tanks[1].serialize(buf);
buf.writeByte(this.waterTimer);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
this.power = buf.readLong();
this.tanks[0].deserialize(buf);
this.tanks[1].deserialize(buf);
this.waterTimer = buf.readByte();
} }
@Override @Override

View File

@ -56,14 +56,6 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
} }
public void networkUnpack(NBTTagCompound data) {
super.networkUnpack(data);
this.power = data.getLong("power");
tanks[0].readFromNBT(data, "water");
tanks[1].readFromNBT(data, "heavyWater");
}
@Override @Override
public void serialize(ByteBuf buf) { public void serialize(ByteBuf buf) {
super.serialize(buf); super.serialize(buf);

View File

@ -10,7 +10,6 @@ import com.hbm.inventory.gui.GUIDiFurnace;
import com.hbm.inventory.recipes.BlastFurnaceRecipes; import com.hbm.inventory.recipes.BlastFurnaceRecipes;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.tileentity.TileEntityMachinePolluting;
import com.hbm.util.CompatEnergyControl; import com.hbm.util.CompatEnergyControl;
@ -18,6 +17,7 @@ import api.hbm.fluid.IFluidStandardSender;
import api.hbm.tile.IInfoProviderEC; import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
@ -230,11 +230,7 @@ public class TileEntityDiFurnace extends TileEntityMachinePolluting implements I
MachineDiFurnace.updateBlockState(this.progress > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); MachineDiFurnace.updateBlockState(this.progress > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
} }
NBTTagCompound data = new NBTTagCompound(); networkPackNT(15);
data.setShort("time", (short) this.progress);
data.setShort("fuel", (short) this.fuel);
data.setByteArray("modes", new byte[] { (byte) sideFuel, (byte) sideUpper, (byte) sideLower });
INBTPacketReceiver.networkPack(this, data, 15);
if(markDirty) { if(markDirty) {
this.markDirty(); this.markDirty();
@ -243,10 +239,21 @@ public class TileEntityDiFurnace extends TileEntityMachinePolluting implements I
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.progress = nbt.getShort("time"); buf.writeShort(this.progress);
this.fuel = nbt.getShort("fuel"); buf.writeShort(this.fuel);
byte[] modes = nbt.getByteArray("modes"); buf.writeBytes(new byte[] {
this.sideFuel,
this.sideUpper,
this.sideLower});
}
@Override
public void deserialize(ByteBuf buf) {
this.progress = buf.readShort();
this.fuel = buf.readShort();
byte[] modes = new byte[3];
buf.readBytes(modes);
this.sideFuel = modes[0]; this.sideFuel = modes[0];
this.sideUpper = modes[1]; this.sideUpper = modes[1];
this.sideLower = modes[2]; this.sideLower = modes[2];

View File

@ -247,13 +247,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe
this.stat_z = buf.readInt(); this.stat_z = buf.readInt();
} }
@Override
public void networkUnpack(NBTTagCompound data) {
super.networkUnpack(data);
}
@Override @Override
public void handleButtonPacket(int value, int meta) { public void handleButtonPacket(int value, int meta) {

View File

@ -2,6 +2,7 @@ package com.hbm.tileentity.machine;
import com.hbm.tileentity.TileEntityTickingBase; import com.hbm.tileentity.TileEntityTickingBase;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
@ -25,7 +26,7 @@ public class TileEntityHadronDiode extends TileEntityTickingBase {
if(age >= 20) { if(age >= 20) {
age = 0; age = 0;
sendSides(); this.networkPackNT(250);
} }
} else { } else {
@ -35,27 +36,18 @@ public class TileEntityHadronDiode extends TileEntityTickingBase {
} }
} }
} }
public void sendSides() { @Override public void serialize(ByteBuf buf) {
NBTTagCompound data = new NBTTagCompound();
for(int i = 0; i < 6; i++) { for(int i = 0; i < 6; i++) {
buf.writeByte(sides[i].ordinal());
if(sides[i] != null)
data.setInteger("" + i, sides[i].ordinal());
} }
this.networkPack(data, 250);
} }
@Override @Override public void deserialize(ByteBuf buf) {
public void networkUnpack(NBTTagCompound nbt) {
for(int i = 0; i < 6; i++) { for(int i = 0; i < 6; i++) {
sides[i] = DiodeConfig.values()[nbt.getInteger("" + i)]; sides[i] = DiodeConfig.values()[buf.readByte()];
} }
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
} }
@ -75,7 +67,7 @@ public class TileEntityHadronDiode extends TileEntityTickingBase {
public void setConfig(int side, int config) { public void setConfig(int side, int config) {
sides[side] = DiodeConfig.values()[config]; sides[side] = DiodeConfig.values()[config];
this.markDirty(); this.markDirty();
sendSides(); this.networkPackNT(250);
} }
public static enum DiodeConfig { public static enum DiodeConfig {

View File

@ -29,8 +29,8 @@ public class TileEntityHadronPower extends TileEntityLoadedBase implements IEner
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
} }
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 15)); sendStandard(15);
} }
} }

View File

@ -18,8 +18,8 @@ import com.hbm.lib.Library;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.saveddata.TomSaveData; import com.hbm.saveddata.TomSaveData;
import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
@ -27,13 +27,16 @@ import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IHeatSource; import api.hbm.tile.IHeatSource;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.EnumSkyBlock;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine {
public int heat; public int heat;
public FluidTank[] tanks; public FluidTank[] tanks;
@ -54,14 +57,14 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPa
this.tanks[0] = new FluidTank(Fluids.WATER, 16_000); this.tanks[0] = new FluidTank(Fluids.WATER, 16_000);
this.tanks[1] = new FluidTank(Fluids.STEAM, 16_000 * 100); this.tanks[1] = new FluidTank(Fluids.STEAM, 16_000 * 100);
} }
ByteBuf buf = new PacketBuffer(Unpooled.buffer());
@Override @Override
public void updateEntity() { public void updateEntity() {
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
NBTTagCompound data = new NBTTagCompound();
if(!this.hasExploded) { if(!this.hasExploded) {
this.setupTanks(); this.setupTanks();
this.updateConnections(); this.updateConnections();
@ -72,23 +75,23 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPa
if(light > 7 && TomSaveData.forWorld(worldObj).fire > 1e-5) { if(light > 7 && TomSaveData.forWorld(worldObj).fire > 1e-5) {
this.heat += ((maxHeat - heat) * 0.000005D); //constantly heat up 0.0005% of the remaining heat buffer for rampant but diminishing heating this.heat += ((maxHeat - heat) * 0.000005D); //constantly heat up 0.0005% of the remaining heat buffer for rampant but diminishing heating
} }
data.setInteger("heat", lastHeat);
tanks[0].writeToNBT(data, "0"); buf.writeInt(lastHeat);
tanks[0].serialize(buf);
this.isOn = false; this.isOn = false;
this.tryConvert(); this.tryConvert();
tanks[1].writeToNBT(data, "1"); tanks[1].serialize(buf);
if(this.tanks[1].getFill() > 0) { if(this.tanks[1].getFill() > 0) {
this.sendFluid(); this.sendFluid();
} }
} }
data.setBoolean("exploded", this.hasExploded); buf.writeBoolean(this.hasExploded);
data.setBoolean("isOn", this.isOn); buf.writeBoolean(this.muffled);
data.setBoolean("muffled", this.muffled); buf.writeBoolean(this.isOn);
INBTPacketReceiver.networkPack(this, data, 25); sendStandard(25);
} else { } else {
if(this.isOn) audioTime = 20; if(this.isOn) audioTime = 20;
@ -143,13 +146,19 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPa
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.hasExploded = nbt.getBoolean("exploded"); buf.writeBytes(this.buf);
this.muffled = nbt.getBoolean("muffled"); this.buf = new PacketBuffer(Unpooled.buffer());
this.heat = nbt.getInteger("heat"); }
this.tanks[0].readFromNBT(nbt, "0");
this.tanks[1].readFromNBT(nbt, "1"); @Override
this.isOn = nbt.getBoolean("isOn"); public void deserialize(ByteBuf buf) {
this.heat = buf.readInt();
this.tanks[0].deserialize(buf);
this.tanks[1].deserialize(buf);
this.hasExploded = buf.readBoolean();
this.muffled = buf.readBoolean();
this.isOn = buf.readBoolean();
} }
protected void tryPullHeat() { protected void tryPullHeat() {

View File

@ -13,8 +13,8 @@ import com.hbm.lib.Library;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.saveddata.TomSaveData; import com.hbm.saveddata.TomSaveData;
import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
@ -22,12 +22,15 @@ import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IHeatSource; import api.hbm.tile.IHeatSource;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.EnumSkyBlock;
public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine {
public int heat; public int heat;
public FluidTank[] tanks; public FluidTank[] tanks;
@ -46,13 +49,14 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme
this.tanks[0] = new FluidTank(Fluids.WATER, 64_000); this.tanks[0] = new FluidTank(Fluids.WATER, 64_000);
this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100); this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100);
} }
ByteBuf buf = new PacketBuffer(Unpooled.buffer());
@Override @Override
public void updateEntity() { public void updateEntity() {
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
NBTTagCompound data = new NBTTagCompound();
this.setupTanks(); this.setupTanks();
this.updateConnections(); this.updateConnections();
this.tryPullHeat(); this.tryPullHeat();
@ -62,21 +66,22 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme
if(light > 7 && TomSaveData.forWorld(worldObj).fire > 1e-5) { if(light > 7 && TomSaveData.forWorld(worldObj).fire > 1e-5) {
this.heat += ((maxHeat - heat) * 0.000005D); //constantly heat up 0.0005% of the remaining heat buffer for rampant but diminishing heating this.heat += ((maxHeat - heat) * 0.000005D); //constantly heat up 0.0005% of the remaining heat buffer for rampant but diminishing heating
} }
data.setInteger("heat", lastHeat);
tanks[0].writeToNBT(data, "0"); buf.writeInt(lastHeat);
tanks[0].serialize(buf);
this.isOn = false; this.isOn = false;
this.tryConvert(); this.tryConvert();
tanks[1].writeToNBT(data, "1"); tanks[1].serialize(buf);
if(this.tanks[1].getFill() > 0) { if(this.tanks[1].getFill() > 0) {
this.sendFluid(); this.sendFluid();
} }
data.setBoolean("isOn", this.isOn); buf.writeBoolean(this.isOn);
data.setBoolean("muffled", this.muffled); buf.writeBoolean(this.muffled);
INBTPacketReceiver.networkPack(this, data, 25); sendStandard(25);
} else { } else {
if(this.isOn) audioTime = 20; if(this.isOn) audioTime = 20;
@ -131,12 +136,18 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.heat = nbt.getInteger("heat"); buf.writeBytes(this.buf);
this.tanks[0].readFromNBT(nbt, "0"); this.buf = new PacketBuffer(Unpooled.buffer());
this.tanks[1].readFromNBT(nbt, "1"); }
this.isOn = nbt.getBoolean("isOn");
this.muffled = nbt.getBoolean("muffled"); @Override
public void deserialize(ByteBuf buf) {
this.heat = buf.readInt();
this.tanks[0].deserialize(buf);
this.tanks[1].deserialize(buf);
this.isOn = buf.readBoolean();
this.muffled = buf.readBoolean();
} }
protected void tryPullHeat() { protected void tryPullHeat() {

View File

@ -3,7 +3,7 @@ package com.hbm.tileentity.machine;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl; import com.hbm.util.CompatEnergyControl;
@ -12,12 +12,13 @@ import api.hbm.tile.IHeatSource;
import api.hbm.tile.IInfoProviderEC; import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyReceiverMK2, INBTPacketReceiver, IInfoProviderEC { public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyReceiverMK2, IBufPacketReceiver, IInfoProviderEC {
public long power; public long power;
public int heatEnergy; public int heatEnergy;
@ -47,12 +48,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH
this.isOn = true; this.isOn = true;
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(25);
data.setByte("s", (byte) this.setting);
data.setInteger("h", this.heatEnergy);
data.setBoolean("o", isOn);
data.setBoolean("muffled", muffled);
INBTPacketReceiver.networkPack(this, data, 25);
} else { } else {
if(isOn) { if(isOn) {
@ -103,11 +99,19 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.setting = nbt.getByte("s"); buf.writeBoolean(this.muffled);
this.heatEnergy = nbt.getInteger("h"); buf.writeByte(this.setting);
this.isOn = nbt.getBoolean("o"); buf.writeInt(this.heatEnergy);
this.muffled = nbt.getBoolean("muffled"); buf.writeBoolean(this.isOn);
}
@Override
public void deserialize(ByteBuf buf) {
this.muffled = buf.readBoolean();
this.setting = buf.readByte();
this.heatEnergy = buf.readInt();
this.isOn = buf.readBoolean();
} }
@Override @Override

View File

@ -10,7 +10,6 @@ import com.hbm.inventory.fluid.trait.FT_Coolable;
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
import com.hbm.inventory.gui.GUIHeaterHeatex; import com.hbm.inventory.gui.GUIHeaterHeatex;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
@ -18,6 +17,7 @@ import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IHeatSource; import api.hbm.tile.IHeatSource;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
@ -27,7 +27,7 @@ import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHeatSource, INBTPacketReceiver, IFluidStandardTransceiver, IGUIProvider, IControlReceiver { public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHeatSource, IFluidStandardTransceiver, IGUIProvider, IControlReceiver {
public FluidTank[] tanks; public FluidTank[] tanks;
public int amountToCool = 1; public int amountToCool = 1;
@ -56,28 +56,30 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe
this.heatEnergy *= 0.999; this.heatEnergy *= 0.999;
NBTTagCompound data = new NBTTagCompound(); networkPackNT(25);
tanks[0].writeToNBT(data, "0");
this.tryConvert();
tanks[1].writeToNBT(data, "1");
data.setInteger("heat", heatEnergy);
data.setInteger("toCool", amountToCool);
data.setInteger("delay", tickDelay);
INBTPacketReceiver.networkPack(this, data, 25);
for(DirPos pos : getConPos()) { for(DirPos pos : getConPos()) {
if(this.tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(this.tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
} }
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
tanks[0].readFromNBT(nbt, "0"); tanks[0].serialize(buf);
tanks[1].readFromNBT(nbt, "1"); tanks[1].serialize(buf);
this.heatEnergy = nbt.getInteger("heat"); buf.writeInt(this.heatEnergy);
this.amountToCool = nbt.getInteger("toCool"); buf.writeInt(this.amountToCool);
this.tickDelay = nbt.getInteger("delay"); buf.writeInt(this.tickDelay);
}
@Override
public void deserialize(ByteBuf buf) {
tanks[0].deserialize(buf);
tanks[1].deserialize(buf);
this.heatEnergy = buf.readInt();
this.amountToCool = buf.readInt();
this.tickDelay = buf.readInt();
} }
protected void setupTanks() { protected void setupTanks() {

View File

@ -133,19 +133,6 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im
steam.deserialize(buf); steam.deserialize(buf);
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.power = nbt.getLong("power");
this.progress = nbt.getIntArray("progress");
this.maxProgress = nbt.getIntArray("maxProgress");
this.isProgressing = nbt.getBoolean("isProgressing");
water.readFromNBT(nbt, "w");
steam.readFromNBT(nbt, "s");
}
private int getWaterRequired() { private int getWaterRequired() {
return 1000 / this.speed; return 1000 / this.speed;
} }

View File

@ -11,13 +11,14 @@ import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.ModDamageSource; import com.hbm.lib.ModDamageSource;
import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockLeaves; import net.minecraft.block.BlockLeaves;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@ -29,7 +30,7 @@ import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardReceiver { public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardReceiver {
public static final HashSet<FluidType> acceptedFuels = new HashSet(); public static final HashSet<FluidType> acceptedFuels = new HashSet();
@ -174,12 +175,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN
} }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(100);
data.setBoolean("isOn", isOn);
data.setFloat("yaw", this.rotationYaw);
data.setFloat("pitch", this.rotationPitch);
tank.writeToNBT(data, "t");
INBTPacketReceiver.networkPack(this, data, 100);
} else { } else {
this.lastSpin = this.spin; this.lastSpin = this.spin;
@ -280,12 +276,20 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.isOn = nbt.getBoolean("isOn"); buf.writeBoolean(this.isOn);
this.syncYaw = nbt.getFloat("yaw"); buf.writeFloat(this.syncYaw);
this.syncPitch = nbt.getFloat("pitch"); buf.writeFloat(this.syncPitch);
this.tank.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
this.isOn = buf.readBoolean();
this.syncYaw = buf.readFloat();
this.syncPitch = buf.readFloat();
this.turnProgress = 3; //use 3-ply for extra smoothness this.turnProgress = 3; //use 3-ply for extra smoothness
this.tank.readFromNBT(nbt, "t"); this.tank.deserialize(buf);
} }
@Override @Override

View File

@ -46,9 +46,9 @@ public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFlu
if(worldObj.getTotalWorldTime() % 20 == 0) { if(worldObj.getTotalWorldTime() % 20 == 0) {
for(DirPos pos : getConPos()) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); for(DirPos pos : getConPos()) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
} }
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); sendStandard(50);
if(tank.getFill() > 0) { if(tank.getFill() > 0) {
if(tank.getTankType().hasTrait(FT_Amat.class)) { if(tank.getTankType().hasTrait(FT_Amat.class)) {
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10F, true, true); worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10F, true, true);

View File

@ -10,20 +10,23 @@ import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver { public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver {
public FluidTank input; public FluidTank input;
public FluidTank output; public FluidTank output;
@ -41,7 +44,9 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements
private long fissureScanTime; private long fissureScanTime;
private AudioWrapper audio; private AudioWrapper audio;
ByteBuf buf = new PacketBuffer(Unpooled.buffer());
@Override @Override
public void updateEntity() { public void updateEntity() {
@ -66,21 +71,20 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements
} }
} }
} }
NBTTagCompound data = new NBTTagCompound(); input.serialize(buf);
input.writeToNBT(data, "i");
heatFluid(); heatFluid();
output.writeToNBT(data, "o"); output.serialize(buf);
if(output.getFill() > 0) { if(output.getFill() > 0) {
for(DirPos pos : getConPos()) { for(DirPos pos : getConPos()) {
this.sendFluid(output, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.sendFluid(output, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
} }
} }
data.setInteger("heat", this.getTotalHeat()); buf.writeInt(this.getTotalHeat());
INBTPacketReceiver.networkPack(this, data, 150); sendStandard(150);
} else { } else {
@ -182,11 +186,17 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
input.readFromNBT(nbt, "i"); buf.writeBytes(this.buf);
output.readFromNBT(nbt, "o"); this.buf = new PacketBuffer(Unpooled.buffer());
}
this.bufferedHeat = nbt.getInteger("heat");
@Override
public void deserialize(ByteBuf buf) {
input.deserialize(buf);
output.deserialize(buf);
this.bufferedHeat = buf.readInt();
} }
private void updateConnections() { private void updateConnections() {

View File

@ -222,15 +222,18 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement
return new int[] { 3, 4, 5, 6 }; return new int[] { 3, 4, 5, 6 };
} }
// o7
/*
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt); super.networkUnpack(nbt);
this.power = nbt.getLong("power"); this.power = nbt.getLong("power");
this.spin = nbt.getInteger("spin"); this.spin = nbt.getInteger("spin");
this.burn = nbt.getIntArray("burn"); this.burn = nbt.getIntArray("burn");
this.hasRTG = nbt.getBoolean("hasRTG"); this.hasRTG = nbt.getBoolean("hasRTG");
} }
*/
public int getPowerFromFuel(boolean con) { public int getPowerFromFuel(boolean con) {
FluidType type = tanks[1].getTankType(); FluidType type = tanks[1].getTankType();

View File

@ -14,7 +14,6 @@ import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.BobMathUtil; import com.hbm.util.BobMathUtil;
@ -35,7 +34,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World; import net.minecraft.world.World;
public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider { public class TileEntityMachineMixer extends TileEntityMachineBase implements IControlReceiver, IGUIProvider, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider {
public long power; public long power;
public static final long maxPower = 10_000; public static final long maxPower = 10_000;
@ -162,20 +161,6 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB
for(int i = 0; i < tanks.length; i++) tanks[i].deserialize(buf); for(int i = 0; i < tanks.length; i++) tanks[i].deserialize(buf);
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.power = nbt.getLong("power");
this.processTime = nbt.getInteger("processTime");
this.progress = nbt.getInteger("progress");
this.recipeIndex = nbt.getInteger("recipe");
this.wasOn = nbt.getBoolean("wasOn");
for(int i = 0; i < 3; i++) {
tanks[i].readFromNBT(nbt, i + "");
}
}
public boolean canProcess() { public boolean canProcess() {

View File

@ -175,24 +175,6 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU
this.turnProgress = 2; this.turnProgress = 2;
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.speed = nbt.getInteger("speed");
this.burnTime = nbt.getInteger("burnTime");
this.syncPress = nbt.getInteger("press");
if(nbt.hasKey("stack")) {
NBTTagCompound stack = nbt.getCompoundTag("stack");
this.syncStack = ItemStack.loadItemStackFromNBT(stack);
} else {
this.syncStack = null;
}
this.turnProgress = 2;
}
public boolean canProcess() { public boolean canProcess() {
if(burnTime < 200) return false; if(burnTime < 200) return false;
if(slots[1] == null || slots[2] == null) return false; if(slots[1] == null || slots[2] == null) return false;

View File

@ -9,20 +9,19 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.*;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine { public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver, IConfigurableMachine {
public static final HashSet<Block> validBlocks = new HashSet(); public static final HashSet<Block> validBlocks = new HashSet();
@ -50,7 +49,7 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp
public static int groundDepth = 4; public static int groundDepth = 4;
public static int steamSpeed = 1_000; public static int steamSpeed = 1_000;
public static int electricSpeed = 10_000; public static int electricSpeed = 10_000;
@Override @Override
public String getConfigName() { public String getConfigName() {
return "waterpump"; return "waterpump";
@ -91,9 +90,8 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp
this.isOn = true; this.isOn = true;
this.operate(); this.operate();
} }
NBTTagCompound data = this.getSync(); sendStandard(150);
INBTPacketReceiver.networkPack(this, data, 150);
} else { } else {
@ -133,20 +131,19 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp
return validBlocks >= invalidBlocks; // valid block count has to be at least 50% return validBlocks >= invalidBlocks; // valid block count has to be at least 50%
} }
protected NBTTagCompound getSync() { @Override
NBTTagCompound data = new NBTTagCompound(); public void serialize(ByteBuf buf) {
data.setBoolean("isOn", isOn); buf.writeBoolean(this.isOn);
data.setBoolean("onGround", onGround); buf.writeBoolean(this.onGround);
water.writeToNBT(data, "w"); water.serialize(buf);
return data;
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void deserialize(ByteBuf buf) {
this.isOn = nbt.getBoolean("isOn"); this.isOn = buf.readBoolean();
this.onGround = nbt.getBoolean("onGround"); this.onGround = buf.readBoolean();
water.readFromNBT(nbt, "w"); water.deserialize(buf);
} }
protected abstract boolean canOperate(); protected abstract boolean canOperate();

View File

@ -5,6 +5,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.energymk2.IEnergyReceiverMK2;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase implements IEnergyReceiverMK2 { public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase implements IEnergyReceiverMK2 {
@ -28,17 +29,17 @@ public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase imp
super.updateEntity(); super.updateEntity();
} }
protected NBTTagCompound getSync() { @Override
NBTTagCompound data = super.getSync(); public void serialize(ByteBuf buf) {
data.setLong("power", power); super.serialize(buf);
return data; buf.writeLong(this.power);
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void deserialize(ByteBuf buf) {
super.networkUnpack(nbt); super.deserialize(buf);
this.power = nbt.getLong("power"); this.power = buf.readLong();
} }
@Override @Override

View File

@ -4,6 +4,7 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
public class TileEntityMachinePumpSteam extends TileEntityMachinePumpBase { public class TileEntityMachinePumpSteam extends TileEntityMachinePumpBase {
@ -47,19 +48,19 @@ public class TileEntityMachinePumpSteam extends TileEntityMachinePumpBase {
public FluidTank[] getReceivingTanks() { public FluidTank[] getReceivingTanks() {
return new FluidTank[] {steam}; return new FluidTank[] {steam};
} }
protected NBTTagCompound getSync() { @Override
NBTTagCompound data = super.getSync(); public void serialize(ByteBuf buf) {
steam.writeToNBT(data, "s"); super.serialize(buf);
lps.writeToNBT(data, "l"); steam.serialize(buf);
return data; lps.serialize(buf);
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void deserialize(ByteBuf buf) {
super.networkUnpack(nbt); super.deserialize(buf);
steam.readFromNBT(nbt, "s"); steam.deserialize(buf);
lps.readFromNBT(nbt, "l"); lps.deserialize(buf);
} }
@Override @Override

View File

@ -215,7 +215,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
screen.refZ = zCoord; screen.refZ = zCoord;
screen.range = this.getRange(); screen.range = this.getRange();
screen.linked = true; screen.linked = true;
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), 25)); sendStandard(25);
} }
} }
} }

View File

@ -3,19 +3,16 @@ package com.hbm.tileentity.machine;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import api.hbm.entity.RadarEntry; import api.hbm.entity.RadarEntry;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import com.hbm.tileentity.TileEntityLoadedBase;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
public class TileEntityMachineRadarScreen extends TileEntity implements IBufPacketReceiver { public class TileEntityMachineRadarScreen extends TileEntityLoadedBase implements IBufPacketReceiver {
public List<RadarEntry> entries = new ArrayList(); public List<RadarEntry> entries = new ArrayList();
public int refX; public int refX;
@ -28,16 +25,12 @@ public class TileEntityMachineRadarScreen extends TileEntity implements IBufPack
public void updateEntity() { public void updateEntity() {
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
this.networkPackNT(100); this.sendStandard(100);
entries.clear(); entries.clear();
this.linked = false; this.linked = false;
} }
} }
public void networkPackNT(int range) {
if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
}
@Override @Override
public void serialize(ByteBuf buf) { public void serialize(ByteBuf buf) {
buf.writeBoolean(linked); buf.writeBoolean(linked);

View File

@ -11,14 +11,12 @@ import com.hbm.inventory.material.Mats;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemMold; import com.hbm.items.machine.ItemMold;
import com.hbm.items.machine.ItemScraps; import com.hbm.items.machine.ItemScraps;
import com.hbm.packet.NBTPacket; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -32,7 +30,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
//god thank you bob for this base class //god thank you bob for this base class
public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase implements IGUIProvider, ICrucibleAcceptor, ISidedInventory, IFluidStandardTransceiver, INBTPacketReceiver, IInventory { public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase implements IGUIProvider, ICrucibleAcceptor, ISidedInventory, IFluidStandardTransceiver, IBufPacketReceiver, IInventory {
public FluidTank water; public FluidTank water;
public FluidTank steam; public FluidTank steam;
@ -110,12 +108,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase
} }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(150);
water.writeToNBT(data, "w");
steam.writeToNBT(data, "s");
this.networkPack(data, 150);
} }
@ -254,16 +247,14 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase
return new GUIMachineStrandCaster(player.inventory, this); return new GUIMachineStrandCaster(player.inventory, this);
} }
public void networkPack(NBTTagCompound nbt, int range) { @Override public void serialize(ByteBuf buf) {
if(!worldObj.isRemote) water.serialize(buf);
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); steam.serialize(buf);
} }
@Override @Override public void deserialize(ByteBuf buf) {
public void networkUnpack(NBTTagCompound nbt) { water.deserialize(buf);
water.readFromNBT(nbt, "w"); steam.deserialize(buf);
steam.readFromNBT(nbt, "s");
} }
@Override @Override

View File

@ -3,12 +3,14 @@ package com.hbm.tileentity.machine;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.energymk2.IEnergyReceiverMK2;
import com.hbm.util.BufferUtil;
import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.ReflectionHelper;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityList;
import net.minecraft.entity.EntityTracker; import net.minecraft.entity.EntityTracker;
@ -29,7 +31,7 @@ import net.minecraft.world.WorldServer;
import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.chunk.IChunkProvider;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements IEnergyReceiverMK2, INBTPacketReceiver { public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements IEnergyReceiverMK2, IBufPacketReceiver {
public long power = 0; public long power = 0;
public int targetX = -1; public int targetX = -1;
@ -55,10 +57,7 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements
} }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(15);
data.setLong("power", power);
data.setIntArray("target", new int[] {targetX, targetY, targetZ, targetDim});
INBTPacketReceiver.networkPack(this, data, 15);
} else { } else {
@ -72,9 +71,15 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.power = nbt.getLong("power"); buf.writeLong(power);
int[] target = nbt.getIntArray("target"); BufferUtil.writeIntArray(buf, new int[] {targetX, targetY, targetZ, targetDim});
}
@Override
public void deserialize(ByteBuf buf) {
this.power = buf.readLong();
int[] target = BufferUtil.readIntArray(buf);
this.targetX = target[0]; this.targetX = target[0];
this.targetY = target[1]; this.targetY = target[1];
this.targetZ = target[2]; this.targetZ = target[2];

View File

@ -1,20 +1,22 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine;
import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IControlReceiver;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.network.RTTYSystem; import com.hbm.tileentity.network.RTTYSystem;
import com.hbm.tileentity.network.RTTYSystem.RTTYChannel; import com.hbm.tileentity.network.RTTYSystem.RTTYChannel;
import com.hbm.util.BufferUtil;
import com.hbm.util.NoteBuilder; import com.hbm.util.NoteBuilder;
import com.hbm.util.NoteBuilder.Instrument; import com.hbm.util.NoteBuilder.Instrument;
import com.hbm.util.NoteBuilder.Note; import com.hbm.util.NoteBuilder.Note;
import com.hbm.util.NoteBuilder.Octave; import com.hbm.util.NoteBuilder.Octave;
import com.hbm.util.Tuple.Triplet; import com.hbm.util.Tuple.Triplet;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
public class TileEntityRadioRec extends TileEntity implements INBTPacketReceiver, IControlReceiver { public class TileEntityRadioRec extends TileEntity implements IBufPacketReceiver, IControlReceiver {
public String channel = ""; public String channel = "";
public boolean isOn = false; public boolean isOn = false;
@ -49,17 +51,20 @@ public class TileEntityRadioRec extends TileEntity implements INBTPacketReceiver
} }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(15);
data.setString("channel", channel);
data.setBoolean("isOn", isOn);
INBTPacketReceiver.networkPack(this, data, 15);
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
channel = nbt.getString("channel"); BufferUtil.writeString(buf, this.channel);
isOn = nbt.getBoolean("isOn"); buf.writeBoolean(this.isOn);
}
@Override
public void deserialize(ByteBuf buf) {
this.channel = BufferUtil.readString(buf);
this.isOn = buf.readBoolean();
} }
@Override @Override

View File

@ -10,15 +10,17 @@ import com.hbm.items.ModItems;
import com.hbm.lib.ModDamageSource; import com.hbm.lib.ModDamageSource;
import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.tileentity.machine.TileEntityMachineAutocrafter.InventoryCraftingAuto; import com.hbm.tileentity.machine.TileEntityMachineAutocrafter.InventoryCraftingAuto;
import com.hbm.util.BufferUtil;
import com.hbm.util.ItemStackUtil; import com.hbm.util.ItemStackUtil;
import api.hbm.tile.IHeatSource; import api.hbm.tile.IHeatSource;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
@ -27,7 +29,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.network.PacketBuffer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
@ -144,24 +146,8 @@ public class TileEntitySawmill extends TileEntityMachineBase {
this.overspeed = 0; this.overspeed = 0;
this.warnCooldown = 0; this.warnCooldown = 0;
} }
NBTTagCompound data = new NBTTagCompound();
data.setInteger("heat", heat);
data.setInteger("progress", progress);
data.setBoolean("hasBlade", hasBlade);
NBTTagList list = new NBTTagList(); networkPackNT(150);
for(int i = 0; i < slots.length; i++) {
if(slots[i] != null) {
NBTTagCompound nbt1 = new NBTTagCompound();
nbt1.setByte("slot", (byte) i);
slots[i].writeToNBT(nbt1);
list.appendTag(nbt1);
}
}
data.setTag("items", list);
INBTPacketReceiver.networkPack(this, data, 150);
this.heat = 0; this.heat = 0;
@ -180,20 +166,28 @@ public class TileEntitySawmill extends TileEntityMachineBase {
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.heat = nbt.getInteger("heat"); buf.writeInt(heat);
this.progress = nbt.getInteger("progress"); buf.writeInt(progress);
this.hasBlade = nbt.getBoolean("hasBlade"); buf.writeBoolean(hasBlade);
NBTTagList list = nbt.getTagList("items", 10);
slots = new ItemStack[3]; ByteBuf itemBuf = new PacketBuffer(Unpooled.buffer());
for(int i = 0; i < list.tagCount(); i++) {
NBTTagCompound nbt1 = list.getCompoundTagAt(i); for (ItemStack slot : slots) {
byte b0 = nbt1.getByte("slot"); BufferUtil.writeItemStack(buf, slot);
if(b0 >= 0 && b0 < slots.length) { }
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
} buf.writeBytes(itemBuf);
}
@Override
public void deserialize(ByteBuf buf) {
this.heat = buf.readInt();
this.progress = buf.readInt();
this.hasBlade = buf.readBoolean();
for(int i = 0; i < slots.length; i++) {
slots[i] = BufferUtil.readItemStack(buf);
} }
} }

View File

@ -5,13 +5,10 @@ import java.util.HashSet;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
@ -56,7 +53,7 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui
heat = 0; heat = 0;
networkPackNT(15); sendStandard(15);
} else { } else {
//a delayed queue of mirror positions because we can't expect the boiler to always tick first //a delayed queue of mirror positions because we can't expect the boiler to always tick first
@ -121,10 +118,6 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui
public FluidTank[] getAllTanks() { public FluidTank[] getAllTanks() {
return new FluidTank[] { water, steam }; return new FluidTank[] { water, steam };
} }
public void networkPackNT(int range) {
if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
}
@Override @Override
public void serialize(ByteBuf buf) { public void serialize(ByteBuf buf) {

View File

@ -4,6 +4,7 @@ import com.hbm.tileentity.TileEntityTickingBase;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
@ -28,7 +29,7 @@ public class TileEntitySolarMirror extends TileEntityTickingBase {
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
if(worldObj.getTotalWorldTime() % 20 == 0) if(worldObj.getTotalWorldTime() % 20 == 0)
sendUpdate(); this.networkPackNT(200);
if(tY < yCoord) { if(tY < yCoord) {
isOn = false; isOn = false;
@ -64,22 +65,18 @@ public class TileEntitySolarMirror extends TileEntityTickingBase {
} }
} }
public void sendUpdate() { @Override public void serialize(ByteBuf buf) {
buf.writeInt(this.tX);
NBTTagCompound data = new NBTTagCompound(); buf.writeInt(this.tY);
data.setInteger("posX", tX); buf.writeInt(this.tZ);
data.setInteger("posY", tY); buf.writeBoolean(this.isOn);
data.setInteger("posZ", tZ);
data.setBoolean("isOn", isOn);
this.networkPack(data, 200);
} }
@Override @Override public void deserialize(ByteBuf buf) {
public void networkUnpack(NBTTagCompound nbt) { this.tX = buf.readInt();
tX = nbt.getInteger("posX"); this.tY = buf.readInt();
tY = nbt.getInteger("posY"); this.tZ = buf.readInt();
tZ = nbt.getInteger("posZ"); this.isOn = buf.readBoolean();
isOn = nbt.getBoolean("isOn");
} }
public void setTarget(int x, int y, int z) { public void setTarget(int x, int y, int z) {
@ -87,7 +84,7 @@ public class TileEntitySolarMirror extends TileEntityTickingBase {
tY = y; tY = y;
tZ = z; tZ = z;
this.markDirty(); this.markDirty();
this.sendUpdate(); this.networkPackNT(200);
} }
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {

View File

@ -9,8 +9,8 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable;
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
@ -18,13 +18,16 @@ import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine { public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IBufPacketReceiver, IConfigurableMachine {
public long powerBuffer; public long powerBuffer;
@ -66,7 +69,9 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEner
writer.name("I:ldsCap").value(ldsCap); writer.name("I:ldsCap").value(ldsCap);
writer.name("D:efficiency").value(efficiency); writer.name("D:efficiency").value(efficiency);
} }
ByteBuf buf = new PacketBuffer(Unpooled.buffer());
@Override @Override
public void updateEntity() { public void updateEntity() {
@ -76,9 +81,8 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEner
tanks[0].setTankType(Fluids.STEAM); tanks[0].setTankType(Fluids.STEAM);
tanks[1].setTankType(Fluids.SPENTSTEAM); tanks[1].setTankType(Fluids.SPENTSTEAM);
NBTTagCompound data = new NBTTagCompound(); tanks[0].serialize(buf);
tanks[0].writeToNBT(data, "s");
FT_Coolable trait = tanks[0].getTankType().getTrait(FT_Coolable.class); FT_Coolable trait = tanks[0].getTankType().getTrait(FT_Coolable.class);
double eff = trait.getEfficiency(CoolingType.TURBINE) * efficiency; double eff = trait.getEfficiency(CoolingType.TURBINE) * efficiency;
@ -105,9 +109,9 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEner
this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", getVolume(1.0F), 0.5F + (acceleration / 80F)); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", getVolume(1.0F), 0.5F + (acceleration / 80F));
} }
data.setLong("power", this.powerBuffer); buf.writeLong(this.powerBuffer);
data.setFloat("rotor", this.rotor); buf.writeFloat(this.rotor);
tanks[1].writeToNBT(data, "w"); tanks[1].serialize(buf);
for(DirPos pos : getConPos()) { for(DirPos pos : getConPos()) {
if(this.powerBuffer > 0) this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(this.powerBuffer > 0) this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
@ -115,7 +119,7 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEner
this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
} }
INBTPacketReceiver.networkPack(this, data, 150); sendStandard(150);
} else { } else {
this.lastRotor = this.rotor; this.lastRotor = this.rotor;
@ -139,7 +143,7 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEner
new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord + 1, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot) new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord + 1, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot)
}; };
} }
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt); super.readFromNBT(nbt);
@ -207,11 +211,17 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEner
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.powerBuffer = nbt.getLong("power"); buf.writeBytes(this.buf);
this.syncRotor = nbt.getFloat("rotor"); this.buf = new PacketBuffer(Unpooled.buffer());
}
@Override
public void deserialize(ByteBuf buf) {
this.powerBuffer = buf.readLong();
this.syncRotor = buf.readFloat();
this.turnProgress = 3; //use 3-ply for extra smoothness this.turnProgress = 3; //use 3-ply for extra smoothness
this.tanks[0].readFromNBT(nbt, "s"); this.tanks[0].deserialize(buf);
this.tanks[1].readFromNBT(nbt, "w"); this.tanks[1].deserialize(buf);
} }
} }

View File

@ -8,8 +8,8 @@ import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.entity.projectile.EntityCog; import com.hbm.entity.projectile.EntityCog;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
@ -17,12 +17,13 @@ import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.tile.IHeatSource; import api.hbm.tile.IHeatSource;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityStirling extends TileEntityLoadedBase implements INBTPacketReceiver, IEnergyProviderMK2, IConfigurableMachine { public class TileEntityStirling extends TileEntityLoadedBase implements IBufPacketReceiver, IEnergyProviderMK2, IConfigurableMachine {
public long powerBuffer; public long powerBuffer;
public int heat; public int heat;
@ -88,11 +89,7 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack
this.warnCooldown = 0; this.warnCooldown = 0;
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(150);
data.setLong("power", powerBuffer);
data.setInteger("heat", heat);
data.setBoolean("hasCog", hasCog);
INBTPacketReceiver.networkPack(this, data, 150);
if(hasCog) { if(hasCog) {
for(DirPos pos : getConPos()) { for(DirPos pos : getConPos()) {
@ -143,10 +140,17 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.powerBuffer = nbt.getLong("power"); buf.writeLong(this.powerBuffer);
this.heat = nbt.getInteger("heat"); buf.writeInt(this.heat);
this.hasCog = nbt.getBoolean("hasCog"); buf.writeBoolean(this.hasCog);
}
@Override
public void deserialize(ByteBuf buf) {
this.powerBuffer = buf.readLong();
this.heat = buf.readInt();
this.hasCog = buf.readBoolean();
} }
protected void tryPullHeat() { protected void tryPullHeat() {

View File

@ -5,7 +5,7 @@ import com.hbm.inventory.FluidStack;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.recipes.CrackingRecipes; import com.hbm.inventory.recipes.CrackingRecipes;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.Tuple.Pair; import com.hbm.util.Tuple.Pair;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
@ -13,11 +13,12 @@ import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver { public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver {
public FluidTank[] tanks; public FluidTank[] tanks;
@ -52,22 +53,23 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl
if(tanks[i].getFill() > 0) this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(tanks[i].getFill() > 0) this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
} }
} }
NBTTagCompound data = new NBTTagCompound();
for(int i = 0; i < 5; i++) sendStandard(25);
tanks[i].writeToNBT(data, "tank" + i);
INBTPacketReceiver.networkPack(this, data, 50);
} }
this.worldObj.theProfiler.endSection(); this.worldObj.theProfiler.endSection();
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
for(int i = 0; i < 5; i++) for(int i = 0; i < 5; i++)
tanks[i].readFromNBT(nbt, "tank" + i); tanks[i].serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
for(int i = 0; i < 5; i++)
tanks[i].deserialize(buf);
} }
private void updateConnections() { private void updateConnections() {

View File

@ -93,14 +93,6 @@ public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase im
for(int i = 0; i < 4; i++) tanks[i].deserialize(buf); for(int i = 0; i < 4; i++) tanks[i].deserialize(buf);
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.power = nbt.getLong("power");
for(int i = 0; i < 4; i++) tanks[i].readFromNBT(nbt, "" + i);
}
private void reform() { private void reform() {
Triplet<FluidStack, FluidStack, FluidStack> out = ReformingRecipes.getOutput(tanks[0].getTankType()); Triplet<FluidStack, FluidStack, FluidStack> out = ReformingRecipes.getOutput(tanks[0].getTankType());

View File

@ -69,7 +69,7 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme
this.sendFluid(); this.sendFluid();
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); sendStandard(50);
} }
} }

View File

@ -40,9 +40,9 @@ public abstract class TileEntityPileBase extends TileEntity {
Vec3 neutronVector = Vec3.createVectorHelper(1, 0, 0); Vec3 neutronVector = Vec3.createVectorHelper(1, 0, 0);
neutronVector.rotateAroundX((float)(Math.PI * 2D * worldObj.rand.nextDouble()));
neutronVector.rotateAroundY((float)(Math.PI * 2D * worldObj.rand.nextDouble()));
neutronVector.rotateAroundZ((float)(Math.PI * 2D * worldObj.rand.nextDouble())); neutronVector.rotateAroundZ((float)(Math.PI * 2D * worldObj.rand.nextDouble()));
neutronVector.rotateAroundY((float)(Math.PI * 2D * worldObj.rand.nextDouble()));
neutronVector.rotateAroundX((float)(Math.PI * 2D * worldObj.rand.nextDouble()));
new PileNeutronStream(node, neutronVector, flux); new PileNeutronStream(node, neutronVector, flux);
} }

View File

@ -6,14 +6,11 @@ import com.hbm.extprop.HbmPlayerProps;
import com.hbm.handler.CompatHandler; import com.hbm.handler.CompatHandler;
import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.handler.HbmKeybinds.EnumKeybind;
import com.hbm.items.machine.ItemRBMKRod; import com.hbm.items.machine.ItemRBMKRod;
import com.hbm.packet.NBTPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.INBTPacketReceiver;
import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context; import li.cil.oc.api.machine.Context;
@ -30,7 +27,7 @@ import net.minecraftforge.common.util.ForgeDirection;
import java.util.List; import java.util.List;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityCraneConsole extends TileEntity implements INBTPacketReceiver, SimpleComponent, CompatHandler.OCComponent { public class TileEntityCraneConsole extends TileEntity implements IBufPacketReceiver, SimpleComponent, CompatHandler.OCComponent {
public int centerX; public int centerX;
public int centerY; public int centerY;
@ -165,26 +162,8 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece
this.loadedHeat = 0; this.loadedHeat = 0;
this.loadedEnrichment = 0; this.loadedEnrichment = 0;
} }
NBTTagCompound nbt = new NBTTagCompound(); sendStandard(250);
nbt.setBoolean("crane", setUpCrane);
if(setUpCrane) { //no need to send any of this if there's NO FUCKING CRANE THERE
nbt.setInteger("centerX", centerX);
nbt.setInteger("centerY", centerY);
nbt.setInteger("centerZ", centerZ);
nbt.setInteger("spanF", spanF);
nbt.setInteger("spanB", spanB);
nbt.setInteger("spanL", spanL);
nbt.setInteger("spanR", spanR);
nbt.setInteger("height", height);
nbt.setDouble("posFront", posFront);
nbt.setDouble("posLeft", posLeft);
nbt.setBoolean("loaded", this.hasItemLoaded());
nbt.setDouble("loadedHeat", loadedHeat);
nbt.setDouble("loadedEnrichment", loadedEnrichment);
}
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250));
} }
} }
@ -244,27 +223,49 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
buf.writeBoolean(this.setUpCrane);
if(this.setUpCrane) { //no need to send any of this if there's NO FUCKING CRANE THERE
buf.writeInt(this.centerX);
buf.writeInt(this.centerY);
buf.writeInt(this.centerZ);
buf.writeInt(this.spanF);
buf.writeInt(this.spanB);
buf.writeInt(this.spanL);
buf.writeInt(this.spanR);
buf.writeInt(this.height);
buf.writeDouble(this.posFront);
buf.writeDouble(this.posLeft);
buf.writeBoolean(this.hasItemLoaded());
buf.writeDouble(this.loadedHeat);
buf.writeDouble(this.loadedEnrichment);
}
}
@Override
public void deserialize(ByteBuf buf) {
lastPosFront = posFront; lastPosFront = posFront;
lastPosLeft = posLeft; lastPosLeft = posLeft;
lastProgress = progress; lastProgress = progress;
this.setUpCrane = nbt.getBoolean("crane"); this.setUpCrane = buf.readBoolean();
this.centerX = nbt.getInteger("centerX"); if (this.setUpCrane) {
this.centerY = nbt.getInteger("centerY"); this.centerX = buf.readInt();
this.centerZ = nbt.getInteger("centerZ"); this.centerY = buf.readInt();
this.spanF = nbt.getInteger("spanF"); this.centerZ = buf.readInt();
this.spanB = nbt.getInteger("spanB"); this.spanF = buf.readInt();
this.spanL = nbt.getInteger("spanL"); this.spanB = buf.readInt();
this.spanR = nbt.getInteger("spanR"); this.spanL = buf.readInt();
this.height = nbt.getInteger("height"); this.spanR = buf.readInt();
this.posFront = nbt.getDouble("posFront"); this.height = buf.readInt();
this.posLeft = nbt.getDouble("posLeft"); this.posFront = buf.readDouble();
this.hasLoaded = nbt.getBoolean("loaded"); this.posLeft = buf.readDouble();
this.posLeft = nbt.getDouble("posLeft"); this.hasLoaded = buf.readBoolean();
this.loadedHeat = nbt.getDouble("loadedHeat"); this.posLeft = buf.readDouble();
this.loadedEnrichment = nbt.getDouble("loadedEnrichment"); this.loadedHeat = buf.readDouble();
this.loadedEnrichment = buf.readDouble();
}
} }
public void setTarget(int x, int y, int z) { public void setTarget(int x, int y, int z) {

View File

@ -9,11 +9,9 @@ import com.hbm.entity.effect.EntitySpear;
import com.hbm.entity.projectile.EntityRBMKDebris; import com.hbm.entity.projectile.EntityRBMKDebris;
import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType;
import com.hbm.handler.neutron.NeutronNodeWorld; import com.hbm.handler.neutron.NeutronNodeWorld;
import com.hbm.handler.neutron.RBMKNeutronHandler;
import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKType; import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKType;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.saveddata.TomSaveData; import com.hbm.saveddata.TomSaveData;
import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
@ -119,7 +117,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements
coolPassively(); coolPassively();
this.worldObj.theProfiler.endSection(); this.worldObj.theProfiler.endSection();
this.networkPackNT(trackingRange()); this.sendStandard(trackingRange());
} }
} }
@ -280,13 +278,8 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements
nbt.setInteger("steam", this.steam); nbt.setInteger("steam", this.steam);
} }
public void networkPackNT(int range) {
if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
}
@Override @Override
public void serialize(ByteBuf buf) { public void serialize(ByteBuf buf) {
buf.writeBoolean(this.muffled);
buf.writeDouble(this.heat); buf.writeDouble(this.heat);
buf.writeInt(this.water); buf.writeInt(this.water);
buf.writeInt(this.steam); buf.writeInt(this.steam);
@ -294,7 +287,6 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements
@Override @Override
public void deserialize(ByteBuf buf) { public void deserialize(ByteBuf buf) {
this.muffled = buf.readBoolean();
this.heat = buf.readDouble(); this.heat = buf.readDouble();
this.water = buf.readInt(); this.water = buf.readInt();
this.steam = buf.readInt(); this.steam = buf.readInt();

View File

@ -1,15 +1,11 @@
package com.hbm.tileentity.machine.rbmk; package com.hbm.tileentity.machine.rbmk;
import com.hbm.packet.NBTPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.inventory.ISidedInventory; import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraftforge.fluids.FluidTank;
/** /**
* Base class for RBMK components that have GUI slots and thus have to handle * Base class for RBMK components that have GUI slots and thus have to handle
@ -124,19 +120,6 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase
return new int[] {}; return new int[] {};
} }
public int getGaugeScaled(int i, FluidTank tank) {
return tank.getFluidAmount() * i / tank.getCapacity();
}
public void networkPack(NBTTagCompound nbt, int range) {
if(!worldObj.isRemote)
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
}
public void handleButtonPacket(int value, int meta) {
}
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt); super.readFromNBT(nbt);

View File

@ -70,7 +70,7 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr
} else } else
timer = 0; timer = 0;
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); sendStandard(25);
} else { } else {
this.prevLowerExtent = lowerExtent; this.prevLowerExtent = lowerExtent;
this.prevUpperExtent = upperExtent; this.prevUpperExtent = upperExtent;

View File

@ -3,11 +3,13 @@ package com.hbm.tileentity.machine.storage;
import com.hbm.inventory.container.ContainerMassStorage; import com.hbm.inventory.container.ContainerMassStorage;
import com.hbm.inventory.gui.GUIMassStorage; import com.hbm.inventory.gui.GUIMassStorage;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IControlReceiverFilter; import com.hbm.tileentity.IControlReceiverFilter;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.util.BufferUtil;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
@ -16,7 +18,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPacketReceiver, IControlReceiverFilter { public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPacketReceiver, IControlReceiverFilter {
private int stack = 0; private int stack = 0;
public boolean output = false; public boolean output = false;
@ -79,28 +81,30 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa
if(slots[2] == null) { if(slots[2] == null) {
slots[2] = slots[1].copy(); slots[2] = slots[1].copy();
slots[2].stackSize = amount; slots[2].stackSize = amount;
this.stack -= amount;
} else { } else {
amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize);
slots[2].stackSize += amount; slots[2].stackSize += amount;
this.stack -= amount;
} }
this.stack -= amount;
} }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(15);
data.setInteger("stack", getStockpile());
data.setBoolean("output", output);
if(slots[1] != null) slots[1].writeToNBT(data);
INBTPacketReceiver.networkPack(this, data, 15);
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.stack = nbt.getInteger("stack"); buf.writeInt(this.stack);
this.output = nbt.getBoolean("output"); buf.writeBoolean(this.output);
this.type = ItemStack.loadItemStackFromNBT(nbt); BufferUtil.writeItemStack(buf, this.type);
}
@Override
public void deserialize(ByteBuf buf) {
this.stack = buf.readInt();
this.output = buf.readBoolean();
this.type = BufferUtil.readItemStack(buf);
} }
public int getCapacity() { public int getCapacity() {
@ -180,12 +184,11 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa
if(slots[2] == null) { if(slots[2] == null) {
slots[2] = slots[1].copy(); slots[2] = slots[1].copy();
slots[2].stackSize = amount; slots[2].stackSize = amount;
this.stack -= amount;
} else { } else {
amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize);
slots[2].stackSize += amount; slots[2].stackSize += amount;
this.stack -= amount;
} }
this.stack -= amount;
} }
if(data.hasKey("toggle")) { if(data.hasKey("toggle")) {

View File

@ -10,14 +10,15 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.gui.GUIDroneCrate; import com.hbm.inventory.gui.GUIDroneCrate;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.BufferUtil;
import com.hbm.util.ParticleUtil; import com.hbm.util.ParticleUtil;
import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.BlockPos;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
@ -27,7 +28,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, INBTPacketReceiver, IControlReceiver, IDroneLinkable, IFluidStandardTransceiver { public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IDroneLinkable, IFluidStandardTransceiver {
public FluidTank tank; public FluidTank tank;
@ -82,26 +83,31 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP
(nextX - pos.getX()), (nextY - pos.getY()), (nextZ - pos.getZ()), 0x00ffff); (nextX - pos.getX()), (nextY - pos.getY()), (nextZ - pos.getZ()), 0x00ffff);
} }
networkPackNT(25);
NBTTagCompound data = new NBTTagCompound();
data.setIntArray("pos", new int[] {nextX, nextY, nextZ});
data.setBoolean("mode", sendingMode);
data.setBoolean("type", itemType);
tank.writeToNBT(data, "t");
INBTPacketReceiver.networkPack(this, data, 25);
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
int[] pos = nbt.getIntArray("pos"); BufferUtil.writeIntArray(buf, new int[] {
this.nextX,
this.nextY,
this.nextZ
});
buf.writeBoolean(this.sendingMode);
buf.writeBoolean(this.itemType);
tank.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
int[] pos = BufferUtil.readIntArray(buf);
this.nextX = pos[0]; this.nextX = pos[0];
this.nextY = pos[1]; this.nextY = pos[1];
this.nextZ = pos[2]; this.nextZ = pos[2];
this.sendingMode = nbt.getBoolean("mode"); this.sendingMode = buf.readBoolean();
this.itemType = nbt.getBoolean("type"); this.itemType = buf.readBoolean();
tank.readFromNBT(nbt, "t"); tank.deserialize(buf);
} }
protected void loadItems(EntityDeliveryDrone drone) { protected void loadItems(EntityDeliveryDrone drone) {

View File

@ -9,15 +9,16 @@ import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.container.ContainerDroneRequester; import com.hbm.inventory.container.ContainerDroneRequester;
import com.hbm.inventory.gui.GUIDroneRequester; import com.hbm.inventory.gui.GUIDroneRequester;
import com.hbm.module.ModulePatternMatcher; import com.hbm.module.ModulePatternMatcher;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IControlReceiverFilter; import com.hbm.tileentity.IControlReceiverFilter;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.network.RequestNetwork.PathNode; import com.hbm.tileentity.network.RequestNetwork.PathNode;
import com.hbm.tileentity.network.RequestNetwork.RequestNode; import com.hbm.tileentity.network.RequestNetwork.RequestNode;
import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.BlockPos;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
@ -27,7 +28,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer implements INBTPacketReceiver, IGUIProvider, IControlReceiverFilter { public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer implements IBufPacketReceiver, IGUIProvider, IControlReceiverFilter {
public ModulePatternMatcher matcher; public ModulePatternMatcher matcher;
@ -46,16 +47,17 @@ public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer
super.updateEntity(); super.updateEntity();
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
NBTTagCompound data = new NBTTagCompound(); sendStandard(15);
this.matcher.writeToNBT(data);
INBTPacketReceiver.networkPack(this, data, 15);
} }
} }
@Override @Override public void serialize(ByteBuf buf) {
public void networkUnpack(NBTTagCompound nbt) { this.matcher.serialize(buf);
this.matcher.readFromNBT(nbt); }
@Override public void deserialize(ByteBuf buf) {
this.matcher.deserialize(buf);
} }
@Override @Override

View File

@ -39,7 +39,7 @@ public class TileEntityDroneWaypoint extends TileEntity implements IBufPacketRec
} }
} }
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 15)); sendStandard(15);
} else { } else {
BlockPos pos = getCoord(dir); BlockPos pos = getCoord(dir);
if(nextY != -1 && worldObj.getTotalWorldTime() % 2 == 0) { if(nextY != -1 && worldObj.getTotalWorldTime() % 2 == 0) {

View File

@ -6,14 +6,16 @@ import java.util.List;
import com.hbm.handler.CompatHandler; import com.hbm.handler.CompatHandler;
import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IControlReceiver;
import com.hbm.inventory.gui.GuiScreenRadioTelex; import com.hbm.inventory.gui.GuiScreenRadioTelex;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.network.RTTYSystem.RTTYChannel; import com.hbm.tileentity.network.RTTYSystem.RTTYChannel;
import com.hbm.util.BufferUtil;
import com.hbm.util.ItemStackUtil; import com.hbm.util.ItemStackUtil;
import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context; import li.cil.oc.api.machine.Context;
@ -30,7 +32,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiver, IControlReceiver, IGUIProvider, SimpleComponent, CompatHandler.OCComponent { public class TileEntityRadioTelex extends TileEntity implements IBufPacketReceiver, IControlReceiver, IGUIProvider, SimpleComponent, CompatHandler.OCComponent {
public static final int lineWidth = 33; public static final int lineWidth = 33;
public String txChannel = ""; public String txChannel = "";
@ -130,28 +132,32 @@ public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiv
} }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(16);
for(int i = 0; i < 5; i++) {
data.setString("tx" + i, txBuffer[i]);
data.setString("rx" + i, rxBuffer[i]);
}
data.setString("txChan", txChannel);
data.setString("rxChan", rxChannel);
data.setInteger("sending", sendingChar);
INBTPacketReceiver.networkPack(this, data, 16);
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
for(int i = 0; i < 5; i++) { for(int i = 0; i < 5; i++) {
txBuffer[i] = nbt.getString("tx" + i); BufferUtil.writeString(buf, txBuffer[i]);
rxBuffer[i] = nbt.getString("rx" + i); BufferUtil.writeString(buf, rxBuffer[i]);
} }
this.txChannel = nbt.getString("txChan");
this.rxChannel = nbt.getString("rxChan"); BufferUtil.writeString(buf, this.txChannel);
this.sendingChar = (char) nbt.getInteger("sending"); BufferUtil.writeString(buf, this.rxChannel);
buf.writeChar(this.sendingChar);
}
@Override
public void deserialize(ByteBuf buf) {
for(int i = 0; i < 5; i++) {
txBuffer[i] = BufferUtil.readString(buf);
rxBuffer[i] = BufferUtil.readString(buf);
}
this.txChannel = BufferUtil.readString(buf);
this.rxChannel = BufferUtil.readString(buf);
this.sendingChar = buf.readChar();
} }
@Override @Override

View File

@ -1,8 +1,10 @@
package com.hbm.tileentity.network; package com.hbm.tileentity.network;
import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IControlReceiver;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.util.BufferUtil;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager; import net.minecraft.network.NetworkManager;
@ -10,7 +12,7 @@ import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
public class TileEntityRadioTorchBase extends TileEntity implements INBTPacketReceiver, IControlReceiver { public class TileEntityRadioTorchBase extends TileEntity implements IBufPacketReceiver, IControlReceiver {
/** channel we're broadcasting on/listening to */ /** channel we're broadcasting on/listening to */
public String channel = ""; public String channel = "";
@ -30,12 +32,7 @@ public class TileEntityRadioTorchBase extends TileEntity implements INBTPacketRe
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
NBTTagCompound data = new NBTTagCompound(); sendStandard(50);
data.setBoolean("p", polling);
data.setBoolean("m", customMap);
if(channel != null) data.setString("c", channel);
for(int i = 0; i < 16; i++) if(mapping[i] != null) data.setString("m" + i, mapping[i]);
INBTPacketReceiver.networkPack(this, data, 50);
} }
} }
@ -62,11 +59,19 @@ public class TileEntityRadioTorchBase extends TileEntity implements INBTPacketRe
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
this.polling = nbt.getBoolean("p"); buf.writeBoolean(this.polling);
this.customMap = nbt.getBoolean("m"); buf.writeBoolean(this.customMap);
this.channel = nbt.getString("c"); BufferUtil.writeString(buf, this.channel);
for(int i = 0; i < 16; i++) this.mapping[i] = nbt.getString("m" + i); for(int i = 0; i < 16; i++) BufferUtil.writeString(buf, this.mapping[i]);
}
@Override
public void deserialize(ByteBuf buf) {
this.polling = buf.readBoolean();
this.customMap = buf.readBoolean();
this.channel = BufferUtil.readString(buf);
for(int i = 0; i < 16; i++) this.mapping[i] = BufferUtil.readString(buf);
} }
@Override @Override

View File

@ -1,9 +1,11 @@
package com.hbm.tileentity.network; package com.hbm.tileentity.network;
import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IControlReceiver;
import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.network.RTTYSystem.RTTYChannel; import com.hbm.tileentity.network.RTTYSystem.RTTYChannel;
import com.hbm.util.BufferUtil;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager; import net.minecraft.network.NetworkManager;
@ -11,7 +13,7 @@ import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
public class TileEntityRadioTorchLogic extends TileEntity implements INBTPacketReceiver, IControlReceiver { public class TileEntityRadioTorchLogic extends TileEntity implements IBufPacketReceiver, IControlReceiver {
/** channel we're broadcasting on/listening to */ /** channel we're broadcasting on/listening to */
public String channel = ""; public String channel = "";
@ -80,13 +82,7 @@ public class TileEntityRadioTorchLogic extends TileEntity implements INBTPacketR
} }
} }
NBTTagCompound data = new NBTTagCompound(); sendStandard(50);
data.setBoolean("p", polling);
data.setBoolean("d", descending);
if(channel != null) data.setString("c", channel);
for(int i = 0; i < 16; i++) if(!mapping[i].equals("")) data.setString("m" + i, mapping[i]);
for(int i = 0; i < 16; i++) if(conditions[i] > 0) data.setInteger("c" + i, conditions[i]);
INBTPacketReceiver.networkPack(this, data, 50);
} }
} }
@ -150,12 +146,22 @@ public class TileEntityRadioTorchLogic extends TileEntity implements INBTPacketR
for(int i = 0; i < 16; i++) if(conditions[i] > 0) nbt.setInteger("c" + i, conditions[i]); for(int i = 0; i < 16; i++) if(conditions[i] > 0) nbt.setInteger("c" + i, conditions[i]);
} }
public void networkUnpack(NBTTagCompound nbt) { @Override
this.polling = nbt.getBoolean("p"); public void serialize(ByteBuf buf) {
this.channel = nbt.getString("c"); buf.writeBoolean(this.polling);
this.descending = nbt.getBoolean("d"); BufferUtil.writeString(buf, this.channel);
for(int i = 0; i < 16; i++) this.mapping[i] = nbt.getString("m" + i); buf.writeBoolean(this.descending);
for(int i = 0; i < 16; i++) this.conditions[i] = nbt.getInteger("c" + i); for(int i = 0; i < 16; i++) BufferUtil.writeString(buf, this.mapping[i]);
for(int i = 0; i < 16; i++) buf.writeInt(this.conditions[i]);
}
@Override
public void deserialize(ByteBuf buf) {
this.polling = buf.readBoolean();
this.channel = BufferUtil.readString(buf);
this.descending = buf.readBoolean();
for(int i = 0; i < 16; i++) this.mapping[i] = BufferUtil.readString(buf);
for(int i = 0; i < 16; i++) this.conditions[i] = buf.readInt();
} }
@Override @Override

View File

@ -1,9 +1,5 @@
package com.hbm.tileentity.network; package com.hbm.tileentity.network;
import com.hbm.packet.NBTPacket;
import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory; import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -107,10 +103,6 @@ public abstract class TileEntityRequestNetworkContainer extends TileEntityReques
} }
} }
public void networkPack(NBTTagCompound nbt, int range) {
if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
}
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt); super.readFromNBT(nbt);

View File

@ -311,28 +311,6 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple
this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -1, dir); this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -1, dir);
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.turnProgress = 2;
this.syncRotationPitch = nbt.getDouble("pitch");
this.syncRotationYaw = nbt.getDouble("yaw");
this.power = nbt.getLong("power");
this.isOn = nbt.getBoolean("isOn");
this.targetPlayers = nbt.getBoolean("targetPlayers");
this.targetAnimals = nbt.getBoolean("targetAnimals");
this.targetMobs = nbt.getBoolean("targetMobs");
this.targetMachines = nbt.getBoolean("targetMachines");
this.stattrak = nbt.getInteger("stattrak");
if(nbt.hasKey("tX")) {
this.tPos = Vec3.createVectorHelper(nbt.getDouble("tX"), nbt.getDouble("tY"), nbt.getDouble("tZ"));
} else {
this.tPos = null;
}
}
@Override @Override
public void handleButtonPacket(int value, int meta) { public void handleButtonPacket(int value, int meta) {