Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-19 04:50:06 +01:00
Added World.strikeLightningEffect() that does no damage.
Dieser Commit ist enthalten in:
Ursprung
c05cc33f7a
Commit
6cbd4cdf9e
@ -18,13 +18,19 @@ public class EntityWeatherStorm extends EntityWeather {
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
private CraftWorld cworld;
|
private CraftWorld cworld;
|
||||||
private CraftServer server;
|
private CraftServer server;
|
||||||
// CraftBukkit end
|
public boolean isEffect = false;
|
||||||
|
|
||||||
public EntityWeatherStorm(World world, double d0, double d1, double d2) {
|
public EntityWeatherStorm(World world, double d0, double d1, double d2) {
|
||||||
|
this(world, d0, d1, d2, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public EntityWeatherStorm(World world, double d0, double d1, double d2, boolean isEffect) {
|
||||||
|
// CraftBukkit end
|
||||||
|
|
||||||
super(world);
|
super(world);
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
|
this.isEffect = isEffect;
|
||||||
cworld = ((WorldServer) world).getWorld();
|
cworld = ((WorldServer) world).getWorld();
|
||||||
server = ((WorldServer) world).getServer();
|
server = ((WorldServer) world).getServer();
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@ -33,7 +39,9 @@ public class EntityWeatherStorm extends EntityWeather {
|
|||||||
this.b = 2;
|
this.b = 2;
|
||||||
this.a = this.random.nextLong();
|
this.a = this.random.nextLong();
|
||||||
this.c = this.random.nextInt(3) + 1;
|
this.c = this.random.nextInt(3) + 1;
|
||||||
if (world.spawnMonsters >= 2 && world.a(MathHelper.floor(d0), MathHelper.floor(d1), MathHelper.floor(d2), 10)) {
|
// CraftBukkit start
|
||||||
|
if (!isEffect && world.spawnMonsters >= 2 && world.a(MathHelper.floor(d0), MathHelper.floor(d1), MathHelper.floor(d2), 10)) {
|
||||||
|
// CraftBukkit end
|
||||||
int i = MathHelper.floor(d0);
|
int i = MathHelper.floor(d0);
|
||||||
int j = MathHelper.floor(d1);
|
int j = MathHelper.floor(d1);
|
||||||
int k = MathHelper.floor(d2);
|
int k = MathHelper.floor(d2);
|
||||||
@ -83,7 +91,9 @@ public class EntityWeatherStorm extends EntityWeather {
|
|||||||
--this.c;
|
--this.c;
|
||||||
this.b = 1;
|
this.b = 1;
|
||||||
this.a = this.random.nextLong();
|
this.a = this.random.nextLong();
|
||||||
if (this.world.a(MathHelper.floor(this.locX), MathHelper.floor(this.locY), MathHelper.floor(this.locZ), 10)) {
|
// CraftBukkit start
|
||||||
|
if (!isEffect && this.world.a(MathHelper.floor(this.locX), MathHelper.floor(this.locY), MathHelper.floor(this.locZ), 10)) {
|
||||||
|
// CraftBukkit end
|
||||||
int i = MathHelper.floor(this.locX);
|
int i = MathHelper.floor(this.locX);
|
||||||
int j = MathHelper.floor(this.locY);
|
int j = MathHelper.floor(this.locY);
|
||||||
int k = MathHelper.floor(this.locZ);
|
int k = MathHelper.floor(this.locZ);
|
||||||
@ -102,7 +112,9 @@ public class EntityWeatherStorm extends EntityWeather {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.b >= 0) {
|
// CraftBukkit start
|
||||||
|
if (!isEffect && this.b >= 0) {
|
||||||
|
// CraftBukkit end
|
||||||
double d0 = 3.0D;
|
double d0 = 3.0D;
|
||||||
List list = this.world.b((Entity) this, AxisAlignedBB.b(this.locX - d0, this.locY - d0, this.locZ - d0, this.locX + d0, this.locY + 6.0D + d0, this.locZ + d0));
|
List list = this.world.b((Entity) this, AxisAlignedBB.b(this.locX - d0, this.locY - d0, this.locZ - d0, this.locX + d0, this.locY + 6.0D + d0, this.locZ + d0));
|
||||||
|
|
||||||
|
@ -371,6 +371,12 @@ public class CraftWorld implements World {
|
|||||||
return new CraftLightningStrike(server, lightning);
|
return new CraftLightningStrike(server, lightning);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LightningStrike strikeLightningEffect(Location loc) {
|
||||||
|
EntityWeatherStorm lightning = new EntityWeatherStorm(world, loc.getX(), loc.getY(), loc.getZ(), true);
|
||||||
|
world.a(lightning);
|
||||||
|
return new CraftLightningStrike(server, lightning);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean generateTree(Location loc, TreeType type) {
|
public boolean generateTree(Location loc, TreeType type) {
|
||||||
return generateTree(loc, type, world);
|
return generateTree(loc, type, world);
|
||||||
}
|
}
|
||||||
|
@ -14,4 +14,8 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike
|
|||||||
public EntityWeatherStorm getHandle() {
|
public EntityWeatherStorm getHandle() {
|
||||||
return (EntityWeatherStorm)super.getHandle();
|
return (EntityWeatherStorm)super.getHandle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isEffect() {
|
||||||
|
return ((EntityWeatherStorm) super.getHandle()).isEffect;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren