added serializers for fluids
This commit is contained in:
parent
c95d21255c
commit
ab75f0c623
2 changed files with 58 additions and 0 deletions
|
@ -24,6 +24,7 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import buildcraft.core.network.NetworkData;
|
||||
import buildcraft.core.utils.Utils;
|
||||
|
||||
|
@ -606,6 +607,7 @@ public class ClassMapping extends ClassSerializer {
|
|||
registerSerializer(Item.class, new SerializerItem());
|
||||
registerSerializer(NBTTagCompound.class, new SerializerNBT());
|
||||
registerSerializer(ItemStack.class, new SerializerItemStack());
|
||||
registerSerializer(FluidStack.class, new SerializerFluidStack());
|
||||
registerSerializer(Integer.class, new SerializerInteger());
|
||||
}
|
||||
}
|
||||
|
|
56
common/buildcraft/core/network/serializers/SerializerFluidStack.java
Executable file
56
common/buildcraft/core/network/serializers/SerializerFluidStack.java
Executable file
|
@ -0,0 +1,56 @@
|
|||
/**
|
||||
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
|
||||
* http://www.mod-buildcraft.com
|
||||
*
|
||||
* BuildCraft is distributed under the terms of the Minecraft Mod Public
|
||||
* License 1.0, or MMPL. Please check the contents of the license located in
|
||||
* http://www.mod-buildcraft.com/MMPL-1.0.txt
|
||||
*/
|
||||
package buildcraft.core.network.serializers;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import buildcraft.core.utils.Utils;
|
||||
|
||||
public class SerializerFluidStack extends ClassSerializer {
|
||||
|
||||
@Override
|
||||
public void write (ByteBuf data, Object o, SerializationContext context) {
|
||||
FluidStack stack = (FluidStack) o;
|
||||
|
||||
if (stack == null) {
|
||||
data.writeBoolean(false);
|
||||
} else {
|
||||
data.writeShort(stack.getFluid().getID());
|
||||
data.writeInt(stack.amount);
|
||||
|
||||
if (stack.tag == null) {
|
||||
data.writeBoolean(false);
|
||||
} else {
|
||||
data.writeBoolean(true);
|
||||
Utils.writeNBT(data, stack.tag);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object read (ByteBuf data, Object o, SerializationContext context) {
|
||||
if (!data.readBoolean()) {
|
||||
return null;
|
||||
} else {
|
||||
int id = data.readShort();
|
||||
int amount = data.readerIndex();
|
||||
|
||||
NBTTagCompound nbt = null;
|
||||
|
||||
if (data.readBoolean()) {
|
||||
nbt = Utils.readNBT(data);
|
||||
return new FluidStack(id, amount, nbt);
|
||||
} else {
|
||||
return new FluidStack(id, amount);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue