mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-09 06:50:32 +08:00
Fix merging spawning values
This commit is contained in:
parent
a932e8ad75
commit
b5e23c7a62
@ -656,7 +656,7 @@ index e7d9674e25c06090d57bba6c8229bc3b75cb67e6..70a291090f022ff7d79a75b94ac54b94
|
|||||||
|
|
||||||
private static double a(ChunkCoordIntPair chunkcoordintpair, Entity entity) {
|
private static double a(ChunkCoordIntPair chunkcoordintpair, Entity entity) {
|
||||||
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
index 979988c3c39afd80ce0b99a65dff5618a69ab600..6c15409982fd8005fede7c56c1ca74db5993d548 100644
|
index 979988c3c39afd80ce0b99a65dff5618a69ab600..661ad8f8e67046211e001ea40d97660d7c88f8e5 100644
|
||||||
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
@@ -29,6 +29,11 @@ public final class SpawnerCreature {
|
@@ -29,6 +29,11 @@ public final class SpawnerCreature {
|
||||||
@ -683,7 +683,7 @@ index 979988c3c39afd80ce0b99a65dff5618a69ab600..6c15409982fd8005fede7c56c1ca74db
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -124,13 +134,33 @@ public final class SpawnerCreature {
|
@@ -124,13 +134,31 @@ public final class SpawnerCreature {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -710,16 +710,15 @@ index 979988c3c39afd80ce0b99a65dff5618a69ab600..6c15409982fd8005fede7c56c1ca74db
|
|||||||
return spawnercreature_d.a(entitytypes, blockposition, ichunkaccess);
|
return spawnercreature_d.a(entitytypes, blockposition, ichunkaccess);
|
||||||
}, (entityinsentient, ichunkaccess) -> {
|
}, (entityinsentient, ichunkaccess) -> {
|
||||||
spawnercreature_d.a(entityinsentient, ichunkaccess);
|
spawnercreature_d.a(entityinsentient, ichunkaccess);
|
||||||
|
- });
|
||||||
+ },
|
+ },
|
||||||
+ difference, worldserver.paperConfig.perPlayerMobSpawns ? worldserver.getChunkProvider().playerChunkMap::updatePlayerMobTypeMap : null);
|
+ difference, worldserver.paperConfig.perPlayerMobSpawns ? worldserver.getChunkProvider().playerChunkMap::updatePlayerMobTypeMap : null);
|
||||||
+ spawnercreature_d.getEntityCountsByType().mergeInt(enumcreaturetype, spawnCount, (keyInMap, valueInMap) -> {
|
+ spawnercreature_d.getEntityCountsByType().mergeInt(enumcreaturetype, spawnCount, Integer::sum);
|
||||||
+ return Integer.valueOf(spawnCount + valueInMap.intValue());
|
|
||||||
});
|
|
||||||
+ // Paper end - per player mob spawning
|
+ // Paper end - per player mob spawning
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,22 +169,34 @@ public final class SpawnerCreature {
|
@@ -139,22 +167,34 @@ public final class SpawnerCreature {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void a(EnumCreatureType enumcreaturetype, WorldServer worldserver, Chunk chunk, SpawnerCreature.c spawnercreature_c, SpawnerCreature.a spawnercreature_a) {
|
public static void a(EnumCreatureType enumcreaturetype, WorldServer worldserver, Chunk chunk, SpawnerCreature.c spawnercreature_c, SpawnerCreature.a spawnercreature_a) {
|
||||||
@ -756,7 +755,7 @@ index 979988c3c39afd80ce0b99a65dff5618a69ab600..6c15409982fd8005fede7c56c1ca74db
|
|||||||
int k = 0;
|
int k = 0;
|
||||||
|
|
||||||
while (k < 3) {
|
while (k < 3) {
|
||||||
@@ -194,7 +236,7 @@ public final class SpawnerCreature {
|
@@ -194,7 +234,7 @@ public final class SpawnerCreature {
|
||||||
// Paper start
|
// Paper start
|
||||||
Boolean doSpawning = a(worldserver, enumcreaturetype, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2);
|
Boolean doSpawning = a(worldserver, enumcreaturetype, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2);
|
||||||
if (doSpawning == null) {
|
if (doSpawning == null) {
|
||||||
@ -765,7 +764,7 @@ index 979988c3c39afd80ce0b99a65dff5618a69ab600..6c15409982fd8005fede7c56c1ca74db
|
|||||||
}
|
}
|
||||||
if (doSpawning && spawnercreature_c.test(biomesettingsmobs_c.c, blockposition_mutableblockposition, ichunkaccess)) {
|
if (doSpawning && spawnercreature_c.test(biomesettingsmobs_c.c, blockposition_mutableblockposition, ichunkaccess)) {
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -202,7 +244,7 @@ public final class SpawnerCreature {
|
@@ -202,7 +242,7 @@ public final class SpawnerCreature {
|
||||||
|
|
||||||
|
|
||||||
if (entityinsentient == null) {
|
if (entityinsentient == null) {
|
||||||
@ -774,7 +773,7 @@ index 979988c3c39afd80ce0b99a65dff5618a69ab600..6c15409982fd8005fede7c56c1ca74db
|
|||||||
}
|
}
|
||||||
|
|
||||||
entityinsentient.setPositionRotation(d0, (double) i, d1, worldserver.random.nextFloat() * 360.0F, 0.0F);
|
entityinsentient.setPositionRotation(d0, (double) i, d1, worldserver.random.nextFloat() * 360.0F, 0.0F);
|
||||||
@@ -211,13 +253,18 @@ public final class SpawnerCreature {
|
@@ -211,13 +251,18 @@ public final class SpawnerCreature {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
worldserver.addAllEntities(entityinsentient, SpawnReason.NATURAL);
|
worldserver.addAllEntities(entityinsentient, SpawnReason.NATURAL);
|
||||||
if (!entityinsentient.dead) {
|
if (!entityinsentient.dead) {
|
||||||
@ -796,7 +795,7 @@ index 979988c3c39afd80ce0b99a65dff5618a69ab600..6c15409982fd8005fede7c56c1ca74db
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (entityinsentient.c(k1)) {
|
if (entityinsentient.c(k1)) {
|
||||||
@@ -239,6 +286,7 @@ public final class SpawnerCreature {
|
@@ -239,6 +284,7 @@ public final class SpawnerCreature {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -804,7 +803,7 @@ index 979988c3c39afd80ce0b99a65dff5618a69ab600..6c15409982fd8005fede7c56c1ca74db
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean a(WorldServer worldserver, IChunkAccess ichunkaccess, BlockPosition.MutableBlockPosition blockposition_mutableblockposition, double d0) {
|
private static boolean a(WorldServer worldserver, IChunkAccess ichunkaccess, BlockPosition.MutableBlockPosition blockposition_mutableblockposition, double d0) {
|
||||||
@@ -479,8 +527,8 @@ public final class SpawnerCreature {
|
@@ -479,8 +525,8 @@ public final class SpawnerCreature {
|
||||||
|
|
||||||
public static class d {
|
public static class d {
|
||||||
|
|
||||||
@ -815,7 +814,7 @@ index 979988c3c39afd80ce0b99a65dff5618a69ab600..6c15409982fd8005fede7c56c1ca74db
|
|||||||
private final SpawnerCreatureProbabilities c;
|
private final SpawnerCreatureProbabilities c;
|
||||||
private final Object2IntMap<EnumCreatureType> d;
|
private final Object2IntMap<EnumCreatureType> d;
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -541,7 +589,7 @@ public final class SpawnerCreature {
|
@@ -541,7 +587,7 @@ public final class SpawnerCreature {
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
private boolean a(EnumCreatureType enumcreaturetype, int limit) {
|
private boolean a(EnumCreatureType enumcreaturetype, int limit) {
|
||||||
|
Loading…
Reference in New Issue
Block a user