mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 07:20:24 +01:00
Respect randomizeData on more entities when spawning (#9483)
This commit is contained in:
parent
2973f71a46
commit
99edfc5832
2 changed files with 62 additions and 1 deletions
|
@ -17,7 +17,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
entity.moveTo(x, y, z, yaw, pitch);
|
||||
+ // Paper start
|
||||
+ } else if (org.bukkit.entity.Item.class.isAssignableFrom(clazz)) {
|
||||
+ entity = new net.minecraft.world.entity.item.ItemEntity(world, x, y, z, new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Item.byBlock(net.minecraft.world.level.block.Blocks.DIRT)));
|
||||
+ entity = new net.minecraft.world.entity.item.ItemEntity(world, x, y, z, new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.DIRT));
|
||||
+ // Paper end
|
||||
} else if (FallingBlock.class.isAssignableFrom(clazz)) {
|
||||
BlockPos pos = BlockPos.containing(x, y, z);
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||
Date: Thu, 13 Jul 2023 16:10:07 -0700
|
||||
Subject: [PATCH] Respect randomizeData on more entities when spawning
|
||||
|
||||
* ItemEntity
|
||||
* PrimedTNT
|
||||
* FireworkRocketEntity
|
||||
* ExperienceOrb
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
||||
@@ -0,0 +0,0 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
|
||||
} else if (org.bukkit.entity.Item.class.isAssignableFrom(clazz)) {
|
||||
entity = new net.minecraft.world.entity.item.ItemEntity(world, x, y, z, new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.DIRT));
|
||||
// Paper end
|
||||
+ // Paper start - respect randomizeData
|
||||
+ if (!randomizeData) {
|
||||
+ entity.setDeltaMovement(net.minecraft.world.phys.Vec3.ZERO);
|
||||
+ }
|
||||
+ // Paper end - respect randomizeData
|
||||
} else if (FallingBlock.class.isAssignableFrom(clazz)) {
|
||||
BlockPos pos = BlockPos.containing(x, y, z);
|
||||
entity = new FallingBlockEntity(world, x, y, z, this.getHandle().getBlockState(pos)); // Paper
|
||||
@@ -0,0 +0,0 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
|
||||
entity.moveTo(x, y, z, yaw, pitch);
|
||||
} else if (Firework.class.isAssignableFrom(clazz)) {
|
||||
entity = new FireworkRocketEntity(world, x, y, z, net.minecraft.world.item.ItemStack.EMPTY);
|
||||
+ // Paper start - respect randomizeData
|
||||
+ if (!randomizeData) {
|
||||
+ // logic below was taken from FireworkRocketEntity constructor
|
||||
+ entity.setDeltaMovement(0, 0.05, 0);
|
||||
+ //noinspection PointlessArithmeticExpression
|
||||
+ ((FireworkRocketEntity) entity).lifetime = 10 * 1 + 6;
|
||||
+ }
|
||||
+ // Paper end - respect randomizeData
|
||||
}
|
||||
} else if (Minecart.class.isAssignableFrom(clazz)) {
|
||||
if (PoweredMinecart.class.isAssignableFrom(clazz)) {
|
||||
@@ -0,0 +0,0 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
|
||||
}
|
||||
} else if (TNTPrimed.class.isAssignableFrom(clazz)) {
|
||||
entity = new PrimedTnt(world, x, y, z, null);
|
||||
+ // Paper start - respect randomizeData
|
||||
+ if (!randomizeData) {
|
||||
+ entity.setDeltaMovement(net.minecraft.world.phys.Vec3.ZERO);
|
||||
+ }
|
||||
+ // Paper end - respect randomizeData
|
||||
} else if (ExperienceOrb.class.isAssignableFrom(clazz)) {
|
||||
entity = new net.minecraft.world.entity.ExperienceOrb(world, x, y, z, 0, org.bukkit.entity.ExperienceOrb.SpawnReason.CUSTOM, null, null); // Paper
|
||||
+ // Paper start - respect randomizeData
|
||||
+ if (!randomizeData) {
|
||||
+ entity.setDeltaMovement(net.minecraft.world.phys.Vec3.ZERO);
|
||||
+ entity.setYRot(0);
|
||||
+ }
|
||||
+ // Paper end - respect randomizeData
|
||||
} else if (LightningStrike.class.isAssignableFrom(clazz)) {
|
||||
entity = net.minecraft.world.entity.EntityType.LIGHTNING_BOLT.create(world);
|
||||
entity.moveTo(location.getX(), location.getY(), location.getZ());
|
Loading…
Reference in a new issue