geforkt von Mirrors/Paper
b00de5f176
Added newlines at the end of files Fixed improper line endings on some files Matched start - end comments Added some missing comments for diffs Fixed syntax on some spots Minimized some diff Removed some no longer used files Added comment on some required files with no changes Fixed imports of items used once Added imports for items used more than once
107 Zeilen
3.7 KiB
Java
107 Zeilen
3.7 KiB
Java
package net.minecraft.server;
|
|
|
|
import java.util.List;
|
|
|
|
// CraftBukkit start
|
|
import org.bukkit.event.block.EntityBlockFormEvent;
|
|
import org.bukkit.event.entity.EntityDamageEvent;
|
|
// CraftBukkit end
|
|
|
|
public class EntitySnowman extends EntityGolem {
|
|
|
|
public EntitySnowman(World world) {
|
|
super(world);
|
|
this.texture = "/mob/snowman.png";
|
|
this.b(0.4F, 1.8F);
|
|
this.al().a(true);
|
|
this.goalSelector.a(1, new PathfinderGoalArrowAttack(this, 0.25F, 2, 20));
|
|
this.goalSelector.a(2, new PathfinderGoalRandomStroll(this, 0.2F));
|
|
this.goalSelector.a(3, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F));
|
|
this.goalSelector.a(4, new PathfinderGoalRandomLookaround(this));
|
|
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget(this, EntityMonster.class, 16.0F, 0, true));
|
|
}
|
|
|
|
public boolean c_() {
|
|
return true;
|
|
}
|
|
|
|
public int getMaxHealth() {
|
|
return 4;
|
|
}
|
|
|
|
public void e() {
|
|
super.e();
|
|
if (this.aT()) {
|
|
// CraftBukkit start
|
|
EntityDamageEvent event = new EntityDamageEvent(this.getBukkitEntity(), EntityDamageEvent.DamageCause.DROWNING, 1);
|
|
this.world.getServer().getPluginManager().callEvent(event);
|
|
|
|
if (!event.isCancelled()) {
|
|
event.getEntity().setLastDamageCause(event);
|
|
this.damageEntity(DamageSource.DROWN, event.getDamage());
|
|
}
|
|
// CraftBukkit end
|
|
}
|
|
|
|
int i = MathHelper.floor(this.locX);
|
|
int j = MathHelper.floor(this.locZ);
|
|
|
|
if (this.world.getBiome(i, j).i() > 1.0F) {
|
|
// CraftBukkit start
|
|
EntityDamageEvent event = new EntityDamageEvent(this.getBukkitEntity(), EntityDamageEvent.DamageCause.MELTING, 1);
|
|
this.world.getServer().getPluginManager().callEvent(event);
|
|
|
|
if (!event.isCancelled()) {
|
|
event.getEntity().setLastDamageCause(event);
|
|
this.damageEntity(DamageSource.BURN, event.getDamage());
|
|
}
|
|
// CraftBukkit end
|
|
}
|
|
|
|
for (i = 0; i < 4; ++i) {
|
|
j = MathHelper.floor(this.locX + (double) ((float) (i % 2 * 2 - 1) * 0.25F));
|
|
int k = MathHelper.floor(this.locY);
|
|
int l = MathHelper.floor(this.locZ + (double) ((float) (i / 2 % 2 * 2 - 1) * 0.25F));
|
|
|
|
if (this.world.getTypeId(j, k, l) == 0 && this.world.getBiome(j, l).i() < 0.8F && Block.SNOW.canPlace(this.world, j, k, l)) {
|
|
// CraftBukkit start
|
|
org.bukkit.block.BlockState blockState = this.world.getWorld().getBlockAt(j, k, l).getState();
|
|
blockState.setTypeId(Block.SNOW.id);
|
|
|
|
EntityBlockFormEvent event = new EntityBlockFormEvent(this.getBukkitEntity(), blockState.getBlock(), blockState);
|
|
this.world.getServer().getPluginManager().callEvent(event);
|
|
|
|
if(!event.isCancelled()) {
|
|
blockState.update(true);
|
|
}
|
|
// CraftBukkit end
|
|
}
|
|
}
|
|
}
|
|
|
|
public void b(NBTTagCompound nbttagcompound) {
|
|
super.b(nbttagcompound);
|
|
}
|
|
|
|
public void a(NBTTagCompound nbttagcompound) {
|
|
super.a(nbttagcompound);
|
|
}
|
|
|
|
protected int getLootId() {
|
|
return Item.SNOW_BALL.id;
|
|
}
|
|
|
|
protected void dropDeathLoot(boolean flag, int i) {
|
|
// CraftBukkit start
|
|
List<org.bukkit.inventory.ItemStack> loot = new java.util.ArrayList<org.bukkit.inventory.ItemStack>();
|
|
int j = this.random.nextInt(16);
|
|
|
|
if (j > 0) {
|
|
loot.add(new org.bukkit.inventory.ItemStack(Item.SNOW_BALL.id, j));
|
|
}
|
|
|
|
org.bukkit.craftbukkit.event.CraftEventFactory.callEntityDeathEvent(this, loot);
|
|
// CraftBukkit end
|
|
}
|
|
}
|