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.ItemStacks;
import net.minecraft.item.ItemStack;
/**
* @author diesieben07
*/
final class ItemStackSyncer implements Syncer<ItemStack, ItemStack> {
@Override
public Class<ItemStack> getCompanionType() {
return ItemStack.class;
}
@Override
public boolean equal(ItemStack value, ItemStack companion) {
return ItemStacks.identical(value, companion);
}
@Override
public ItemStack writeAndUpdate(ItemStack value, ItemStack companion, MCDataOutput out) {
out.writeItemStack(value);
return ItemStacks.clone(value);
}
@Override
public ItemStack read(ItemStack value, ItemStack companion, MCDataInput in) {
return in.readItemStack();
}
}