package openmods.sync.drops;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import openmods.api.ICustomHarvestDrops;
import openmods.api.ICustomPickItem;
import openmods.api.IPlacerAwareTile;
import openmods.tileentity.SyncedTileEntity;
public abstract class DroppableTileEntity extends SyncedTileEntity implements IPlacerAwareTile, ICustomHarvestDrops, ICustomPickItem {
public DroppableTileEntity() {
getDropSerializer().addFields(this);
}
@Override
public boolean suppressNormalHarvestDrops() {
return true;
}
protected ItemStack getRawDrop() {
return new ItemStack(getBlockType());
}
@Override
public void addHarvestDrops(EntityPlayer player, List<ItemStack> drops) {
drops.add(getDropStack());
}
@Override
public ItemStack getPickBlock() {
return getDropStack();
}
protected ItemStack getDropStack() {
return getDropSerializer().write(getRawDrop());
}
@Override
public void onBlockPlacedBy(EntityLivingBase placer, ItemStack stack) {
getDropSerializer().read(stack, true);
}
}