package net.glowstone.entity.passive;
import net.glowstone.entity.meta.MetadataIndex;
import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.entity.AnimalTamer;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Wolf;
import java.util.Random;
//import net.glowstone.entity.meta.MetadataIndex.TameableFlags;
public class GlowWolf extends GlowTameable implements Wolf {
private DyeColor collarColor;
public GlowWolf(Location location) {
super(location, EntityType.WOLF, 8);
Random r = new Random();
collarColor = DyeColor.getByDyeData((byte) r.nextInt(DyeColor.values().length));
setBoundingBox(0.6, 0.85);
}
@Override
public boolean isAngry() {
return false;
//metadata.getBit(MetadataIndex.WOLF_FLAGS, TameableFlags.WOLF_IS_ANGRY); TODO 1.9 - Angry seems missing from the metadata according to wiki.vg
}
@Override
public void setAngry(boolean angry) {
//metadata.setBit(MetadataIndex.WOLF_FLAGS, TameableFlags.WOLF_IS_ANGRY, angry); TODO 1.9 - Angry seems missing from the metadata according to wiki.vg
}
@Override
public DyeColor getCollarColor() {
return collarColor;
}
@Override
public void setCollarColor(DyeColor color) {
metadata.set(MetadataIndex.WOLF_COLOR, color.getDyeData());
collarColor = color;
}
public boolean isBegging() {
return metadata.getBoolean(MetadataIndex.WOLF_BEGGING);
}
public void setBegging(boolean begging) {
metadata.set(MetadataIndex.WOLF_BEGGING, begging);
}
@Override
public void setTamed(boolean isTamed) {
if (tamed != isTamed) {
// Change max health of wolf when he's got tamed. See MinecraftWiki for more information!
if (isTamed && getMaxHealth() == 8) {
setMaxHealth(20);
setHealth(20);
}
}
super.setTamed(isTamed);
}
@Override
public void setOwner(AnimalTamer animalTamer) {
// TODO
super.setOwner(animalTamer);
}
@Override
public void setHealth(double health) {
metadata.set(MetadataIndex.WOLF_HEALTH, (float) health);
super.setHealth(health);
}
@Override
protected Sound getHurtSound() {
return Sound.ENTITY_WOLF_HURT;
}
@Override
protected Sound getDeathSound() {
return Sound.ENTITY_WOLF_DEATH;
}
@Override
protected Sound getAmbientSound() {
return Sound.ENTITY_WOLF_AMBIENT;
}
}