Implemented the concept of a projectile.

By: sunkid <sunkid@iminurnetz.com>
This commit is contained in:
CraftBukkit/Spigot
2011-06-18 08:10:31 -07:00
parent e1f49291ce
commit b20ba5be29
5 changed files with 98 additions and 9 deletions

View File

@@ -1,13 +1,14 @@
package org.bukkit.craftbukkit.entity; package org.bukkit.craftbukkit.entity;
import org.bukkit.entity.Arrow;
import net.minecraft.server.EntityArrow; import net.minecraft.server.EntityArrow;
import net.minecraft.server.EntityLiving;
import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
/** /**
* Represents an arrow. * Represents an arrow.
*
* @author sk89q
*/ */
public class CraftArrow extends CraftEntity implements Arrow { public class CraftArrow extends CraftEntity implements Arrow {
public CraftArrow(CraftServer server, EntityArrow entity) { public CraftArrow(CraftServer server, EntityArrow entity) {
@@ -18,4 +19,19 @@ public class CraftArrow extends CraftEntity implements Arrow {
public String toString() { public String toString() {
return "CraftArrow"; return "CraftArrow";
} }
public LivingEntity getShooter() {
if (((EntityArrow) getHandle()).shooter != null) {
return (LivingEntity) ((EntityArrow) getHandle()).shooter.getBukkitEntity();
}
return null;
}
public void setShooter(LivingEntity shooter) {
if (shooter instanceof CraftLivingEntity) {
((EntityArrow) getHandle()).shooter = (EntityLiving) ((CraftLivingEntity) shooter).entity;
}
}
} }

View File

@@ -1,13 +1,14 @@
package org.bukkit.craftbukkit.entity; package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityEgg; import net.minecraft.server.EntityEgg;
import net.minecraft.server.EntityLiving;
import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Egg; import org.bukkit.entity.Egg;
import org.bukkit.entity.LivingEntity;
/** /**
* An egg. * An egg.
*
* @author sk89q
*/ */
public class CraftEgg extends CraftEntity implements Egg { public class CraftEgg extends CraftEntity implements Egg {
public CraftEgg(CraftServer server, EntityEgg entity) { public CraftEgg(CraftServer server, EntityEgg entity) {
@@ -18,4 +19,19 @@ public class CraftEgg extends CraftEntity implements Egg {
public String toString() { public String toString() {
return "CraftEgg"; return "CraftEgg";
} }
public LivingEntity getShooter() {
if (((EntityEgg) getHandle()).thrower != null) {
return (LivingEntity) ((EntityEgg) getHandle()).thrower.getBukkitEntity();
}
return null;
}
public void setShooter(LivingEntity shooter) {
if (shooter instanceof CraftLivingEntity) {
((EntityEgg) getHandle()).thrower = (EntityLiving) ((CraftLivingEntity) shooter).entity;
}
}
} }

View File

@@ -1,9 +1,12 @@
package org.bukkit.craftbukkit.entity; package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityFireball; import net.minecraft.server.EntityFireball;
import net.minecraft.server.EntityLiving;
import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Fireball; import org.bukkit.entity.Fireball;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
/** /**
* A Fireball. * A Fireball.
@@ -33,4 +36,27 @@ public class CraftFireball extends CraftEntity implements Fireball {
public void setYield(float yield) { public void setYield(float yield) {
((EntityFireball) getHandle()).yield = yield; ((EntityFireball) getHandle()).yield = yield;
} }
public LivingEntity getShooter() {
if (((EntityFireball) getHandle()).shooter != null) {
return (LivingEntity) ((EntityFireball) getHandle()).shooter.getBukkitEntity();
}
return null;
}
public void setShooter(LivingEntity shooter) {
if (shooter instanceof CraftLivingEntity) {
((EntityFireball) getHandle()).shooter = (EntityLiving) ((CraftLivingEntity) shooter).entity;
}
}
public Vector getDirection() {
return new Vector(((EntityFireball) getHandle()).c, ((EntityFireball) getHandle()).d, ((EntityFireball) getHandle()).e);
}
public void setDirection(Vector direction) {
((EntityFireball) getHandle()).setDirection(direction.getX(), direction.getY(), direction.getZ());
}
} }

View File

@@ -1,14 +1,14 @@
package org.bukkit.craftbukkit.entity; package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityFish; import net.minecraft.server.EntityFish;
import net.minecraft.server.EntityHuman;
import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Fish; import org.bukkit.entity.Fish;
import org.bukkit.entity.LivingEntity;
/** /**
* A Fish. * A Fish.
*
* @author Cogito
*/ */
public class CraftFish extends CraftEntity implements Fish { public class CraftFish extends CraftEntity implements Fish {
public CraftFish(CraftServer server, EntityFish entity) { public CraftFish(CraftServer server, EntityFish entity) {
@@ -19,4 +19,20 @@ public class CraftFish extends CraftEntity implements Fish {
public String toString() { public String toString() {
return "CraftFish"; return "CraftFish";
} }
public LivingEntity getShooter() {
if (((EntityFish) getHandle()).owner != null) {
return (LivingEntity) ((EntityFish) getHandle()).owner.getBukkitEntity();
}
return null;
}
public void setShooter(LivingEntity shooter) {
if (shooter instanceof CraftHumanEntity) {
((EntityFish) getHandle()).owner = (EntityHuman) ((CraftHumanEntity) shooter).entity;
}
}
} }

View File

@@ -1,13 +1,14 @@
package org.bukkit.craftbukkit.entity; package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityLiving;
import net.minecraft.server.EntitySnowball; import net.minecraft.server.EntitySnowball;
import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Snowball; import org.bukkit.entity.Snowball;
/** /**
* A snowball. * A snowball.
*
* @author sk89q
*/ */
public class CraftSnowball extends CraftEntity implements Snowball { public class CraftSnowball extends CraftEntity implements Snowball {
public CraftSnowball(CraftServer server, EntitySnowball entity) { public CraftSnowball(CraftServer server, EntitySnowball entity) {
@@ -18,4 +19,18 @@ public class CraftSnowball extends CraftEntity implements Snowball {
public String toString() { public String toString() {
return "CraftSnowball"; return "CraftSnowball";
} }
public LivingEntity getShooter() {
if (((EntitySnowball) getHandle()).shooter != null) {
return (LivingEntity) ((EntitySnowball) getHandle()).shooter.getBukkitEntity();
}
return null;
}
public void setShooter(LivingEntity shooter) {
if (shooter instanceof CraftLivingEntity) {
((EntitySnowball) getHandle()).shooter = (EntityLiving) ((CraftLivingEntity) shooter).entity;
}
}
} }