Merge pull request #1541 from Vaern/hbm

mass byte bufferization
This commit is contained in:
HbmMods 2024-06-14 12:54:28 +02:00 committed by GitHub
commit 95a6fa5a76
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 476 additions and 331 deletions

View File

@ -30,6 +30,7 @@ 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 net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
@ -220,38 +221,47 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
this.wasteStack.removeIf(x -> x.amount <= 0); this.wasteStack.removeIf(x -> x.amount <= 0);
/* sync */ /* sync */
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(25);
int[] rec = new int[recipeStack.size() * 2];
int[] was = new int[wasteStack.size() * 2];
for(int i = 0; i < recipeStack.size(); i++) { MaterialStack sta = recipeStack.get(i); rec[i * 2] = sta.material.id; rec[i * 2 + 1] = sta.amount; }
for(int i = 0; i < wasteStack.size(); i++) { MaterialStack sta = wasteStack.get(i); was[i * 2] = sta.material.id; was[i * 2 + 1] = sta.amount; }
data.setIntArray("rec", rec);
data.setIntArray("was", was);
data.setInteger("progress", progress);
data.setInteger("heat", heat);
this.networkPack(data, 25);
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
super.networkUnpack(nbt); super.serialize(buf);
buf.writeInt(progress);
this.recipeStack.clear(); buf.writeInt(heat);
this.wasteStack.clear();
int[] rec = nbt.getIntArray("rec"); buf.writeShort(recipeStack.size());
for(int i = 0; i < rec.length / 2; i++) { for(MaterialStack sta : recipeStack) {
recipeStack.add(new MaterialStack(Mats.matById.get(rec[i * 2]), rec[i * 2 + 1])); buf.writeInt(sta.material.id);
buf.writeInt(sta.amount);
} }
int[] was = nbt.getIntArray("was"); buf.writeShort(wasteStack.size());
for(int i = 0; i < was.length / 2; i++) { for(MaterialStack sta : wasteStack) {
wasteStack.add(new MaterialStack(Mats.matById.get(was[i * 2]), was[i * 2 + 1])); buf.writeInt(sta.material.id);
buf.writeInt(sta.amount);
}
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
progress = buf.readInt();
heat = buf.readInt();
recipeStack.clear();
wasteStack.clear();
int mats = buf.readShort();
for(int i = 0; i < mats; i++) {
recipeStack.add(new MaterialStack(Mats.matById.get(buf.readInt()), buf.readInt()));
} }
this.progress = nbt.getInteger("progress"); mats = buf.readShort();
this.heat = nbt.getInteger("heat"); for(int i = 0; i < mats; i++) {
wasteStack.add(new MaterialStack(Mats.matById.get(buf.readInt()), buf.readInt()));
}
} }
@Override @Override

View File

@ -16,6 +16,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.BufferUtil;
import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType; import com.hbm.util.ContaminationUtil.HazardType;
@ -23,6 +24,7 @@ import com.hbm.util.ContaminationUtil.HazardType;
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.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -176,13 +178,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyRecei
} }
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(250);
data.setLong("power", power);
data.setString("mode", mode.toString());
data.setBoolean("isOn", isOn);
data.setBoolean("valid", missingValidSilex);
data.setInteger("distance", distance);
this.networkPack(data, 250);
} else { } else {
if(power > powerReq * Math.pow(2, mode.ordinal()) && isOn && !(mode == EnumWavelengths.NULL) && distance - 3 > 0) { if(power > powerReq * Math.pow(2, mode.ordinal()) && isOn && !(mode == EnumWavelengths.NULL) && distance - 3 > 0) {
@ -224,16 +220,25 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyRecei
return false; return false;
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
super.networkUnpack(nbt); super.serialize(buf);
buf.writeLong(power);
this.power = nbt.getLong("power"); BufferUtil.writeString(buf, mode.toString());
this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); buf.writeBoolean(isOn);
this.isOn = nbt.getBoolean("isOn"); buf.writeBoolean(missingValidSilex);
this.distance = nbt.getInteger("distance"); buf.writeInt(distance);
this.missingValidSilex = nbt.getBoolean("valid"); }
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
mode = EnumWavelengths.valueOf(BufferUtil.readString(buf));
isOn = buf.readBoolean();
missingValidSilex = buf.readBoolean();
distance = buf.readInt();
} }
@Override @Override

View File

@ -17,6 +17,7 @@ import api.hbm.fluid.IFluidStandardSender;
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.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -121,14 +122,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i
this.burnHeat = 0; this.burnHeat = 0;
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(50);
data.setInteger("maxBurnTime", this.maxBurnTime);
data.setInteger("burnTime", this.burnTime);
data.setInteger("burnHeat", this.burnHeat);
data.setInteger("heatEnergy", this.heatEnergy);
data.setInteger("playersUsing", this.playersUsing);
data.setBoolean("wasOn", this.wasOn);
this.networkPack(data, 50);
} else { } else {
this.prevDoorAngle = this.doorAngle; this.prevDoorAngle = this.doorAngle;
float swingSpeed = (doorAngle / 10F) + 3; float swingSpeed = (doorAngle / 10F) + 3;
@ -151,6 +145,28 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i
} }
} }
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeInt(maxBurnTime);
buf.writeInt(burnTime);
buf.writeInt(burnHeat);
buf.writeInt(heatEnergy);
buf.writeInt(playersUsing);
buf.writeBoolean(wasOn);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
maxBurnTime = buf.readInt();
burnTime = buf.readInt();
burnHeat = buf.readInt();
heatEnergy = buf.readInt();
playersUsing = buf.readInt();
wasOn = buf.readBoolean();
}
public static EnumAshType getAshFromFuel(ItemStack stack) { public static EnumAshType getAshFromFuel(ItemStack stack) {
List<String> names = ItemStackUtil.getOreDictNames(stack); List<String> names = ItemStackUtil.getOreDictNames(stack);
@ -181,18 +197,6 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i
public boolean isItemValidForSlot(int i, ItemStack itemStack) { public boolean isItemValidForSlot(int i, ItemStack itemStack) {
return getModule().getBurnTime(itemStack) > 0; return getModule().getBurnTime(itemStack) > 0;
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.maxBurnTime = nbt.getInteger("maxBurnTime");
this.burnTime = nbt.getInteger("burnTime");
this.burnHeat = nbt.getInteger("burnHeat");
this.heatEnergy = nbt.getInteger("heatEnergy");
this.playersUsing = nbt.getInteger("playersUsing");
this.wasOn = nbt.getBoolean("wasOn");
}
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {

View File

@ -18,6 +18,7 @@ import api.hbm.fluid.IFluidStandardSender;
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.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -128,12 +129,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp
this.progress = 0; this.progress = 0;
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(50);
data.setBoolean("wasOn", this.wasOn);
data.setInteger("heat", this.heat);
data.setInteger("progress", this.progress);
tank.writeToNBT(data, "t");
this.networkPack(data, 50);
} else { } else {
if(this.wasOn && worldObj.rand.nextInt(15) == 0) { if(this.wasOn && worldObj.rand.nextInt(15) == 0) {
@ -142,6 +138,24 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp
} }
} }
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeBoolean(wasOn);
buf.writeInt(heat);
buf.writeInt(progress);
tank.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
wasOn = buf.readBoolean();
heat = buf.readInt();
progress = buf.readInt();
tank.deserialize(buf);
}
public boolean canSmelt() { public boolean canSmelt() {
if(slots[0] == null) return false; if(slots[0] == null) return false;
Pair<ItemStack, FluidStack> pair = CombinationRecipes.getOutput(slots[0]); Pair<ItemStack, FluidStack> pair = CombinationRecipes.getOutput(slots[0]);
@ -165,16 +179,6 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp
return true; return true;
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.wasOn = nbt.getBoolean("wasOn");
this.heat = nbt.getInteger("heat");
this.progress = nbt.getInteger("progress");
this.tank.readFromNBT(nbt, "t");
}
protected void tryPullHeat() { protected void tryPullHeat() {

View File

@ -16,6 +16,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;
@ -94,23 +95,28 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem
if(shouldCool) if(shouldCool)
this.heatEnergy = Math.max(this.heatEnergy - Math.max(this.heatEnergy / 1000, 1), 0); this.heatEnergy = Math.max(this.heatEnergy - Math.max(this.heatEnergy / 1000, 1), 0);
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(25);
tank.writeToNBT(data, "tank");
data.setBoolean("isOn", isOn);
data.setInteger("h", heatEnergy);
data.setByte("s", (byte) this.setting);
this.networkPack(data, 25);
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
super.networkUnpack(nbt); super.serialize(buf);
tank.serialize(buf);
tank.readFromNBT(nbt, "tank"); buf.writeBoolean(isOn);
isOn = nbt.getBoolean("isOn"); buf.writeInt(heatEnergy);
heatEnergy = nbt.getInteger("h"); buf.writeByte((byte) this.setting);
setting = nbt.getByte("s"); }
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
tank.deserialize(buf);
isOn = buf.readBoolean();
heatEnergy = buf.readInt();
setting = buf.readByte();
} }
@Override @Override

View File

@ -29,6 +29,7 @@ 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.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;
@ -135,21 +136,48 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements
this.maxPower = Math.max(intendedMaxPower, power); this.maxPower = Math.max(intendedMaxPower, power);
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(25);
data.setLong("power", power);
data.setLong("maxPower", maxPower);
data.setLong("consumption", consumption);
data.setInteger("progress", progress);
data.setInteger("processTime", processTime);
if(recipe != null) {
data.setInteger("display", Item.getIdFromItem(recipe.output.getItem()));
data.setInteger("displayMeta", recipe.output.getItemDamage());
}
this.tank.writeToNBT(data, "t");
this.networkPack(data, 25);
} }
} }
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeLong(power);
buf.writeLong(maxPower);
buf.writeLong(consumption);
buf.writeInt(progress);
buf.writeInt(processTime);
tank.serialize(buf);
ArcWelderRecipe recipe = ArcWelderRecipes.getRecipe(slots[0], slots[1], slots[2]);
if(recipe != null) {
buf.writeBoolean(true);
buf.writeInt(Item.getIdFromItem(recipe.output.getItem()));
buf.writeInt(recipe.output.getItemDamage());
} else
buf.writeBoolean(false);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
maxPower = buf.readLong();
consumption = buf.readLong();
progress = buf.readInt();
processTime = buf.readInt();
tank.deserialize(buf);
if(buf.readBoolean()) {
this.display = new ItemStack(Item.getItemById(buf.readInt()), 1, buf.readInt());
} else
this.display = null;
}
public boolean canProcess(ArcWelderRecipe recipe) { public boolean canProcess(ArcWelderRecipe recipe) {
if(this.power < this.consumption) return false; if(this.power < this.consumption) return false;
@ -204,25 +232,6 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements
new DirPos(xCoord - dir.offsetX - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ - rot.offsetZ * 2, rot.getOpposite()) new DirPos(xCoord - dir.offsetX - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ - rot.offsetZ * 2, rot.getOpposite())
}; };
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.power = nbt.getLong("power");
this.maxPower = nbt.getLong("maxPower");
this.consumption = nbt.getLong("consumption");
this.progress = nbt.getInteger("progress");
this.processTime = nbt.getInteger("processTime");
if(nbt.hasKey("display")) {
this.display = new ItemStack(Item.getItemById(nbt.getInteger("display")), 1, nbt.getInteger("displayMeta"));
} else {
this.display = null;
}
this.tank.readFromNBT(nbt, "t");
}
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {

View File

@ -23,6 +23,7 @@ import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energymk2.IBatteryItem; import api.hbm.energymk2.IBatteryItem;
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;
@ -111,13 +112,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i
rec = AssemblerRecipes.recipeList.indexOf(comp); rec = AssemblerRecipes.recipeList.indexOf(comp);
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(150);
data.setLong("power", power);
data.setIntArray("progress", this.progress);
data.setIntArray("maxProgress", this.maxProgress);
data.setBoolean("isProgressing", isProgressing);
data.setInteger("recipe", rec);
this.networkPack(data, 150);
} else { } else {
float volume = this.getVolume(2F); float volume = this.getVolume(2F);
@ -142,16 +137,31 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i
} }
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
super.networkUnpack(nbt); super.serialize(buf);
buf.writeLong(power);
for(int i = 0; i < getRecipeCount(); i++) {
buf.writeInt(progress[i]);
buf.writeInt(maxProgress[i]);
}
this.power = nbt.getLong("power"); buf.writeBoolean(isProgressing);
this.progress = nbt.getIntArray("progress"); buf.writeInt(recipe);
this.maxProgress = nbt.getIntArray("maxProgress"); }
this.isProgressing = nbt.getBoolean("isProgressing");
this.recipe = nbt.getInteger("recipe"); @Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
for(int i = 0; i < getRecipeCount(); i++) {
progress[i] = buf.readInt();
maxProgress[i] = buf.readInt();
}
isProgressing = buf.readBoolean();
recipe = buf.readInt();
} }
@Override @Override

View File

@ -20,6 +20,7 @@ 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.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;
@ -93,16 +94,7 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im
this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(150);
data.setLong("power", this.power);
data.setIntArray("progress", this.progress);
data.setIntArray("maxProgress", this.maxProgress);
data.setBoolean("isProgressing", isProgressing);
water.writeToNBT(data, "w");
steam.writeToNBT(data, "s");
this.networkPack(data, 150);
} else { } else {
@ -114,7 +106,33 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im
} }
} }
} }
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeLong(power);
for(int i = 0; i < getRecipeCount(); i++) {
buf.writeInt(progress[i]);
buf.writeInt(maxProgress[i]);
}
buf.writeBoolean(isProgressing);
water.serialize(buf);
steam.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
for(int i = 0; i < getRecipeCount(); i++) {
progress[i] = buf.readInt();
maxProgress[i] = buf.readInt();
}
isProgressing = buf.readBoolean();
water.deserialize(buf);
steam.deserialize(buf);
}
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt); super.networkUnpack(nbt);

View File

@ -8,11 +8,13 @@ import com.hbm.inventory.gui.GUIAutocrafter;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.BufferUtil;
import com.hbm.util.ItemStackUtil; import com.hbm.util.ItemStackUtil;
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.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;
@ -193,33 +195,38 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen
} }
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(15);
data.setLong("power", power);
for(int i = 0; i < 9; i++) {
if(modes[i] != null) {
data.setString("mode" + i, modes[i]);
}
}
data.setInteger("count", this.recipeCount);
data.setInteger("rec", this.recipeIndex);
this.networkPack(data, 15);
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound data) { public void serialize(ByteBuf buf) {
super.networkUnpack(data); super.serialize(buf);
buf.writeLong(power);
for(int i = 0; i < 9; i++) {
if(modes[i] != null) {
buf.writeBoolean(true);
BufferUtil.writeString(buf, modes[i]);
} else
buf.writeBoolean(false);
}
this.power = data.getLong("power"); buf.writeInt(recipeCount);
buf.writeInt(recipeIndex);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
modes = new String[9]; modes = new String[9];
for(int i = 0; i < 9; i++) { for(int i = 0; i < 9; i++) {
if(data.hasKey("mode" + i)) { if(buf.readBoolean()) modes[i] = BufferUtil.readString(buf);
modes[i] = data.getString("mode" + i);
}
} }
this.recipeCount = data.getInteger("count");
this.recipeIndex = data.getInteger("rec"); recipeCount = buf.readInt();
recipeIndex = buf.readInt();
} }
public void updateTemplateGrid() { public void updateTemplateGrid() {

View File

@ -22,6 +22,7 @@ import api.hbm.energymk2.IEnergyReceiverMK2;
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.inventory.Container; import net.minecraft.inventory.Container;
@ -198,11 +199,7 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement
progress = 0; progress = 0;
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(50);
data.setLong("power", power);
data.setInteger("progress", progress);
data.setBoolean("isProgressing", isProgressing);
this.networkPack(data, 50);
} else { } else {
if(isProgressing) { if(isProgressing) {
@ -234,14 +231,21 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement
} }
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound data) { public void serialize(ByteBuf buf) {
super.networkUnpack(data); super.serialize(buf);
buf.writeLong(power);
this.power = data.getLong("power"); buf.writeInt(progress);
this.progress = data.getInteger("progress"); buf.writeBoolean(isProgressing);
this.isProgressing = data.getBoolean("isProgressing"); }
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
progress = buf.readInt();
isProgressing = buf.readBoolean();
} }
@Override @Override

View File

@ -21,6 +21,7 @@ import com.hbm.util.fauxpointtwelve.DirPos;
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;
@ -101,19 +102,7 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp
this.speed = 1; this.speed = 1;
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(150);
data.setLong("power", this.power);
data.setIntArray("progress", this.progress);
data.setIntArray("maxProgress", this.maxProgress);
data.setBoolean("isProgressing", isProgressing);
for(int i = 0; i < tanks.length; i++) {
tanks[i].writeToNBT(data, "t" + i);
}
water.writeToNBT(data, "w");
steam.writeToNBT(data, "s");
this.networkPack(data, 150);
} else { } else {
float maxSpeed = 30F; float maxSpeed = 30F;
@ -156,21 +145,39 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp
} }
} }
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void serialize(ByteBuf buf) {
super.networkUnpack(nbt); super.serialize(buf);
buf.writeLong(power);
this.power = nbt.getLong("power"); for(int i = 0; i < getRecipeCount(); i++) {
this.progress = nbt.getIntArray("progress"); buf.writeInt(progress[i]);
this.maxProgress = nbt.getIntArray("maxProgress"); buf.writeInt(maxProgress[i]);
this.isProgressing = nbt.getBoolean("isProgressing");
for(int i = 0; i < tanks.length; i++) {
tanks[i].readFromNBT(nbt, "t" + i);
} }
water.readFromNBT(nbt, "w");
steam.readFromNBT(nbt, "s"); buf.writeBoolean(isProgressing);
for(int i = 0; i < tanks.length; i++) tanks[i].serialize(buf);
water.serialize(buf);
steam.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
for(int i = 0; i < getRecipeCount(); i++) {
progress[i] = buf.readInt();
maxProgress[i] = buf.readInt();
}
isProgressing = buf.readBoolean();
for(int i = 0; i < tanks.length; i++) tanks[i].deserialize(buf);
water.deserialize(buf);
steam.deserialize(buf);
} }
private int getWaterRequired() { private int getWaterRequired() {

View File

@ -27,6 +27,7 @@ import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.fluid.IFluidStandardReceiver;
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;
@ -97,13 +98,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme
} }
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(25);
data.setShort("progress", progress);
data.setShort("duration", getDuration());
data.setLong("power", power);
data.setBoolean("isOn", isOn);
tank.writeToNBT(data, "t");
this.networkPack(data, 25);
} else { } else {
prevAngle = angle; prevAngle = angle;
@ -154,14 +149,24 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme
}; };
} }
public void networkUnpack(NBTTagCompound data) { @Override
super.networkUnpack(data); public void serialize(ByteBuf buf) {
super.serialize(buf);
this.power = data.getLong("power"); buf.writeShort(progress);
this.progress = data.getShort("progress"); buf.writeShort(getDuration());
this.duration = data.getShort("duration"); buf.writeLong(power);
this.isOn = data.getBoolean("isOn"); buf.writeBoolean(isOn);
this.tank.readFromNBT(data, "t"); tank.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
progress = buf.readShort();
duration = buf.readShort();
power = buf.readLong();
isOn = buf.readBoolean();
tank.deserialize(buf);
} }
private void processItem() { private void processItem() {

View File

@ -20,6 +20,7 @@ import api.hbm.energymk2.IBatteryItem;
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.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;
@ -219,12 +220,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl
markDirty = true; markDirty = true;
MachineElectricFurnace.updateBlockState(this.progress > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); MachineElectricFurnace.updateBlockState(this.progress > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(50);
data.setLong("power", this.power);
data.setInteger("MaxProgress", this.maxProgress);
data.setInteger("progress", this.progress);
this.networkPack(data, 50);
if(markDirty) { if(markDirty) {
@ -232,22 +229,29 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl
} }
} }
} }
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeLong(power);
buf.writeInt(maxProgress);
buf.writeInt(progress);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
maxProgress = buf.readInt();
progress = buf.readInt();
}
private void updateConnections() { private void updateConnections() {
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);
} }
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.power = nbt.getLong("power");
this.maxProgress = nbt.getInteger("MaxProgress");
this.progress = nbt.getInteger("progress");
}
@Override @Override
public void setPower(long i) { public void setPower(long i) {
power = i; power = i;

View File

@ -40,6 +40,7 @@ import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.ReflectionHelper;
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.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
@ -150,18 +151,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
this.targetDepth = 0; this.targetDepth = 0;
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(150);
data.setBoolean("d", enableDrill);
data.setBoolean("c", enableCrusher);
data.setBoolean("w", enableWalling);
data.setBoolean("v", enableVeinMiner);
data.setBoolean("s", enableSilkTouch);
data.setBoolean("o", operational);
data.setInteger("t", targetDepth);
data.setInteger("g", chuteTimer);
data.setLong("p", power);
tank.writeToNBT(data, "tank");
this.networkPack(data, 150);
} else { } else {
@ -214,19 +204,34 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
}; };
} }
public void networkUnpack(NBTTagCompound nbt) { @Override
super.networkUnpack(nbt); public void serialize(ByteBuf buf) {
super.serialize(buf);
this.enableDrill = nbt.getBoolean("d"); buf.writeBoolean(enableDrill);
this.enableCrusher = nbt.getBoolean("c"); buf.writeBoolean(enableCrusher);
this.enableWalling = nbt.getBoolean("w"); buf.writeBoolean(enableWalling);
this.enableVeinMiner = nbt.getBoolean("v"); buf.writeBoolean(enableVeinMiner);
this.enableSilkTouch = nbt.getBoolean("s"); buf.writeBoolean(enableSilkTouch);
this.operational = nbt.getBoolean("o"); buf.writeBoolean(operational);
this.targetDepth = nbt.getInteger("t"); buf.writeInt(targetDepth);
this.chuteTimer = nbt.getInteger("g"); buf.writeInt(chuteTimer);
this.power = nbt.getLong("p"); buf.writeLong(power);
this.tank.readFromNBT(nbt, "tank"); tank.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
enableDrill = buf.readBoolean();
enableCrusher = buf.readBoolean();
enableWalling = buf.readBoolean();
enableVeinMiner = buf.readBoolean();
enableSilkTouch = buf.readBoolean();
operational = buf.readBoolean();
targetDepth = buf.readInt();
chuteTimer = buf.readInt();
power = buf.readLong();
tank.deserialize(buf);
} }
protected int getY() { protected int getY() {

View File

@ -15,6 +15,7 @@ import com.hbm.packet.LoopedSoundPacket;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.BufferUtil;
import com.hbm.util.CompatEnergyControl; import com.hbm.util.CompatEnergyControl;
import com.hbm.util.InventoryUtil; import com.hbm.util.InventoryUtil;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
@ -25,6 +26,7 @@ import api.hbm.tile.IInfoProviderEC;
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.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;
@ -168,19 +170,6 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I
return false; return false;
} }
public void networkUnpack(NBTTagCompound data) {
super.networkUnpack(data);
this.power = data.getLong("power");
this.progress = data.getInteger("progress");
this.isProgressing = data.getBoolean("isProgressing");
this.inputTank.setTankType(PseudoFluidType.types.get(data.getString("inputType")));
this.outputTank.setTankType(PseudoFluidType.types.get(data.getString("outputType")));
this.inputTank.setFill(data.getInteger("inputFill"));
this.outputTank.setFill(data.getInteger("outputFill"));
this.tank.readFromNBT(data, "t");
}
@Override @Override
public void updateEntity() { public void updateEntity() {
@ -234,21 +223,42 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I
} }
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(50);
data.setLong("power", power);
data.setInteger("progress", progress);
data.setBoolean("isProgressing", isProgressing);
data.setInteger("inputFill", inputTank.getFill());
data.setInteger("outputFill", outputTank.getFill());
data.setString("inputType", inputTank.getTankType().name);
data.setString("outputType", outputTank.getTankType().name);
tank.writeToNBT(data, "t");
this.networkPack(data, 50);
PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50));
} }
} }
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeLong(power);
buf.writeInt(progress);
buf.writeBoolean(isProgressing);
//pseudofluids can be refactored another day
buf.writeInt(inputTank.getFill());
buf.writeInt(outputTank.getFill());
BufferUtil.writeString(buf, inputTank.getTankType().name); //cough cough
BufferUtil.writeString(buf, outputTank.getTankType().name);
tank.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
progress = buf.readInt();
isProgressing = buf.readBoolean();
inputTank.setFill(buf.readInt());
outputTank.setFill(buf.readInt());
inputTank.setTankType(PseudoFluidType.types.get(BufferUtil.readString(buf)));
outputTank.setTankType(PseudoFluidType.types.get(BufferUtil.readString(buf)));
tank.deserialize(buf);
}
private void updateConnections() { private void updateConnections() {
for(DirPos pos : getConPos()) { for(DirPos pos : getConPos()) {
this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());

View File

@ -25,6 +25,7 @@ import api.hbm.energymk2.IEnergyReceiverMK2;
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;
@ -121,7 +122,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB
for(int i = 0; i < 3; i++) { for(int i = 0; i < 3; i++) {
tanks[i].writeToNBT(data, i + ""); tanks[i].writeToNBT(data, i + "");
} }
this.networkPack(data, 50); this.networkPackNT(50);
} else { } else {
@ -137,6 +138,30 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB
} }
} }
} }
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeLong(power);
buf.writeInt(processTime);
buf.writeInt(progress);
buf.writeInt(recipeIndex);
buf.writeBoolean(wasOn);
for(int i = 0; i < tanks.length; i++) tanks[i].serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
processTime = buf.readInt();
progress = buf.readInt();
recipeIndex = buf.readInt();
wasOn = buf.readBoolean();
for(int i = 0; i < tanks.length; i++) tanks[i].deserialize(buf);
}
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void networkUnpack(NBTTagCompound nbt) {

View File

@ -24,6 +24,7 @@ import api.hbm.fluid.IFluidStandardReceiver;
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.inventory.Container; import net.minecraft.inventory.Container;
@ -126,15 +127,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement
this.power += this.powerGen; this.power += this.powerGen;
if(this.power > this.maxPower) this.power = this.maxPower; if(this.power > this.maxPower) this.power = this.maxPower;
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(25);
data.setLong("power", power);
data.setInteger("burnTime", burnTime);
data.setInteger("powerGen", powerGen);
data.setInteger("maxBurnTime", maxBurnTime);
data.setBoolean("isOn", isOn);
data.setBoolean("liquidBurn", liquidBurn);
tank.writeToNBT(data, "t");
this.networkPack(data, 25);
} else { } else {
if(powerGen > 0) { if(powerGen > 0) {
@ -145,6 +138,32 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement
} }
} }
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeLong(power);
buf.writeInt(burnTime);
buf.writeInt(powerGen);
buf.writeInt(maxBurnTime);
buf.writeBoolean(isOn);
buf.writeBoolean(liquidBurn);
tank.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
power = buf.readLong();
burnTime = buf.readInt();
powerGen = buf.readInt();
maxBurnTime = buf.readInt();
isOn = buf.readBoolean();
liquidBurn = buf.readBoolean();
tank.deserialize(buf);
}
private DirPos[] getConPos() { private DirPos[] getConPos() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
@ -153,20 +172,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement
new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()) new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite())
}; };
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
super.networkUnpack(nbt);
this.power = nbt.getLong("power");
this.powerGen = nbt.getInteger("powerGen");
this.burnTime = nbt.getInteger("burnTime");
this.maxBurnTime = nbt.getInteger("maxBurnTime");
this.isOn = nbt.getBoolean("isOn");
this.liquidBurn = nbt.getBoolean("liquidBurn");
tank.readFromNBT(nbt, "t");
}
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt); super.readFromNBT(nbt);

View File

@ -15,6 +15,7 @@ import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.BufferUtil;
import com.hbm.util.CompatEnergyControl; import com.hbm.util.CompatEnergyControl;
import com.hbm.util.InventoryUtil; import com.hbm.util.InventoryUtil;
import com.hbm.util.WeightedRandomObject; import com.hbm.util.WeightedRandomObject;
@ -23,6 +24,7 @@ import api.hbm.fluid.IFluidStandardReceiver;
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.inventory.Container; import net.minecraft.inventory.Container;
@ -84,38 +86,42 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce
if(currentFill <= 0) { if(currentFill <= 0) {
current = null; current = null;
} }
NBTTagCompound data = new NBTTagCompound(); this.networkPackNT(50);
data.setInteger("fill", currentFill);
data.setInteger("progress", progress);
data.setString("mode", mode.toString());
if(this.current != null) {
data.setInteger("item", Item.getIdFromItem(this.current.item));
data.setInteger("meta", this.current.meta);
}
tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
this.networkPack(data, 50);
this.mode = EnumWavelengths.NULL; this.mode = EnumWavelengths.NULL;
} }
} }
public void networkUnpack(NBTTagCompound nbt) { @Override
super.networkUnpack(nbt); public void serialize(ByteBuf buf) {
super.serialize(buf);
this.currentFill = nbt.getInteger("fill"); buf.writeInt(currentFill);
this.progress = nbt.getInteger("progress"); buf.writeInt(progress);
this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); BufferUtil.writeString(buf, mode.toString());
if(this.currentFill > 0) { tank.serialize(buf);
this.current = new ComparableStack(Item.getItemById(nbt.getInteger("item")), 1, nbt.getInteger("meta"));
if(this.current != null) {
} else { buf.writeInt(Item.getIdFromItem(this.current.item));
this.current = null; buf.writeInt(this.current.meta);
} }
} }
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
currentFill = buf.readInt();
progress = buf.readInt();
mode = EnumWavelengths.valueOf(BufferUtil.readString(buf));
tank.deserialize(buf);
if(currentFill > 0) {
current = new ComparableStack(Item.getItemById(buf.readInt()), 1, buf.readInt());
} else
current = null;
}
public void handleButtonPacket(int value, int meta) { public void handleButtonPacket(int value, int meta) {