package net.glowstone.io.entity; import net.glowstone.constants.ItemIds; import net.glowstone.entity.objects.GlowFallingBlock; import net.glowstone.util.nbt.CompoundTag; import org.bukkit.Location; import org.bukkit.entity.EntityType; class FallingBlockStore extends EntityStore<GlowFallingBlock> { public FallingBlockStore() { super(GlowFallingBlock.class, EntityType.FALLING_BLOCK); } @Override public GlowFallingBlock createEntity(Location location, CompoundTag compound) { // Falling block will be set by loading code below return new GlowFallingBlock(location, null, (byte) 0); } @Override public void load(GlowFallingBlock entity, CompoundTag tag) { super.load(entity, tag); if (tag.isString("Block")) { entity.setMaterial(ItemIds.getBlock(tag.getString("Block"))); } if (tag.isByte("Data")) { entity.setBlockData(tag.getByte("Data")); } entity.setHurtEntities(tag.getBool("HurtEntities")); entity.setDropItem(tag.getBool("DropItem")); if (tag.isCompound("TileEntityData")) { entity.setBlockEntityCompoundTag(tag.getCompound("TileEntityData")); } } @Override public void save(GlowFallingBlock entity, CompoundTag tag) { super.save(entity, tag); tag.putString("Block", ItemIds.getName(entity.getMaterial())); tag.putByte("Data", entity.getBlockData()); tag.putBool("DropItem", entity.getDropItem()); tag.putBool("HurtEntities", entity.canHurtEntities()); if (entity.getBlockEntityCompoundTag() != null) { tag.putCompound("TileEntityData", entity.getBlockEntityCompoundTag()); } } }