package net.glowstone.block.entity;
import net.glowstone.block.GlowBlock;
import net.glowstone.block.GlowBlockState;
import net.glowstone.block.state.GlowChest;
import net.glowstone.entity.GlowPlayer;
import net.glowstone.inventory.GlowChestInventory;
import net.glowstone.net.message.play.game.BlockActionMessage;
import net.glowstone.util.SoundUtil;
import org.bukkit.Sound;
/**
* Block entity for Chests.
*/
public class ChestEntity extends ContainerEntity {
private int viewers;
public ChestEntity(GlowBlock block) {
super(block, new GlowChestInventory(new GlowChest(block)));
setSaveId("minecraft:chest");
}
@Override
public GlowBlockState getState() {
return new GlowChest(block);
}
public void addViewer() {
viewers++;
if (viewers == 1) {
updateInRange();
SoundUtil.playSoundPitchRange(block.getLocation(), Sound.BLOCK_CHEST_OPEN, 0.5F, 0.9F, 0.1F);
}
}
public void removeViewer() {
viewers--;
if (viewers == 0) {
updateInRange();
SoundUtil.playSoundPitchRange(block.getLocation(), Sound.BLOCK_CHEST_CLOSE, 0.5F, 0.9F, 0.1F);
}
}
@Override
public void update(GlowPlayer player) {
super.update(player);
player.getSession().send(new BlockActionMessage(block.getX(), block.getY(), block.getZ(), 1, viewers == 0 ? 0 : 1, block.getTypeId()));
}
}