From fadd962b9c5457bac3bcb0379f3575592ab7178d Mon Sep 17 00:00:00 2001 From: sunkid Date: Tue, 14 Jun 2011 11:03:29 -0700 Subject: [PATCH] Added the implementation of the concept of an Explosive. --- .../net/minecraft/server/EntityFireball.java | 6 ++++- .../net/minecraft/server/EntityTNTPrimed.java | 9 ++++--- .../craftbukkit/entity/CraftFireball.java | 18 ++++++++++++-- .../craftbukkit/entity/CraftTNTPrimed.java | 24 +++++++++++++++++++ 4 files changed, 51 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityFireball.java b/src/main/java/net/minecraft/server/EntityFireball.java index 3b63884c71..0973c9906d 100644 --- a/src/main/java/net/minecraft/server/EntityFireball.java +++ b/src/main/java/net/minecraft/server/EntityFireball.java @@ -5,6 +5,7 @@ import java.util.List; // CraftBukkit start import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.entity.CraftEntity; +import org.bukkit.entity.Explosive; import org.bukkit.event.entity.EntityDamageByProjectileEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; @@ -26,6 +27,9 @@ public class EntityFireball extends Entity { public double d; public double e; + public float yield = 1; // CraftBukkit + public boolean isIncendiary = true; // CraftBukkit + public EntityFireball(World world) { super(world); this.b(1.0F, 1.0F); @@ -151,7 +155,7 @@ public class EntityFireball extends Entity { CraftServer server = ((WorldServer) this.world).getServer(); - ExplosionPrimeEvent event = new ExplosionPrimeEvent(CraftEntity.getEntity(server, this), 1.0F, true); + ExplosionPrimeEvent event = new ExplosionPrimeEvent((Explosive) CraftEntity.getEntity(server, this)); server.getPluginManager().callEvent(event); if (!event.isCancelled()) { diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java index 997ef48da6..9fd69995c9 100644 --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java @@ -3,12 +3,15 @@ package net.minecraft.server; // CraftBukkit start import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.entity.CraftEntity; +import org.bukkit.entity.Explosive; import org.bukkit.event.entity.ExplosionPrimeEvent; // CraftBukkit end public class EntityTNTPrimed extends Entity { public int a; + public float yield = 4; // CraftBukkit + public boolean isIncendiary = false; // CraftBukkit public EntityTNTPrimed(World world) { super(world); @@ -72,12 +75,12 @@ public class EntityTNTPrimed extends Entity { } private void explode() { - float f = 4.0F; - // CraftBukkit start + // float f = 4.0F; + CraftServer server = ((WorldServer) this.world).getServer(); - ExplosionPrimeEvent event = new ExplosionPrimeEvent(CraftEntity.getEntity(server, this), f, false); + ExplosionPrimeEvent event = new ExplosionPrimeEvent((Explosive) CraftEntity.getEntity(server, this)); server.getPluginManager().callEvent(event); if (!event.isCancelled()) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java index 364942ae9c..bf5429c293 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java @@ -7,8 +7,6 @@ import org.bukkit.entity.Fireball; /** * A Fireball. - * - * @author Cogito */ public class CraftFireball extends CraftEntity implements Fireball { public CraftFireball(CraftServer server, EntityFireball entity) { @@ -19,4 +17,20 @@ public class CraftFireball extends CraftEntity implements Fireball { public String toString() { return "CraftFireball"; } + + public float getYield() { + return ((EntityFireball) getHandle()).yield; + } + + public boolean isIncendiary() { + return ((EntityFireball) getHandle()).isIncendiary; + } + + public void setIsIncendiary(boolean isIncendiary) { + ((EntityFireball) getHandle()).isIncendiary = isIncendiary; + } + + public void setYield(float yield) { + ((EntityFireball) getHandle()).yield = yield; + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java index e33c8c82ee..c4c9b5c3ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java @@ -16,4 +16,28 @@ public class CraftTNTPrimed extends CraftEntity implements TNTPrimed { return "CraftTNTPrimed"; } + public float getYield() { + return ((EntityTNTPrimed) getHandle()).yield; + } + + public boolean isIncendiary() { + return ((EntityTNTPrimed) getHandle()).isIncendiary; + } + + public void setIsIncendiary(boolean isIncendiary) { + ((EntityTNTPrimed) getHandle()).isIncendiary = isIncendiary; + } + + public void setYield(float yield) { + ((EntityTNTPrimed) getHandle()).yield = yield; + } + + public int getFuseTicks() { + return ((EntityTNTPrimed) getHandle()).a; + } + + public void setFuseTicks(int fuseTicks) { + ((EntityTNTPrimed) getHandle()).a = fuseTicks; + } + }