package de.take_weiland.mods.commons.internal.sync.builtin;
import de.take_weiland.mods.commons.net.MCDataInput;
import de.take_weiland.mods.commons.net.MCDataOutput;
import de.take_weiland.mods.commons.sync.Syncer;
import de.take_weiland.mods.commons.util.Fluids;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTank;
/**
* @author diesieben07
*/
enum FluidTankSyncer implements Syncer<FluidTank, FluidStack> {
INSTANCE;
@Override
public Class<FluidStack> getCompanionType() {
return FluidStack.class;
}
@Override
public boolean equal(FluidTank value, FluidStack companion) {
return value != null && Fluids.identical(value.getFluid(), companion);
}
@Override
public FluidStack writeAndUpdate(FluidTank value, FluidStack companion, MCDataOutput out) {
FluidStack stack = value.getFluid();
out.writeFluidStack(stack);
return Fluids.clone(stack);
}
@Override
public FluidTank read(FluidTank value, FluidStack companion, MCDataInput in) {
value.setFluid(in.readFluidStack());
return value;
}
}