From fcd86537e6edda833c4bcbf6cb2bae0d9a21df8f Mon Sep 17 00:00:00 2001 From: gnembon Date: Tue, 10 Mar 2020 13:10:03 -0300 Subject: [PATCH 1/2] weird flex but ok. Pathfinding affected spawning --- src/main/java/carpet/script/CarpetExpression.java | 3 +++ src/main/java/carpet/utils/SpawnReporter.java | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/carpet/script/CarpetExpression.java b/src/main/java/carpet/script/CarpetExpression.java index 22e23061..2157966d 100644 --- a/src/main/java/carpet/script/CarpetExpression.java +++ b/src/main/java/carpet/script/CarpetExpression.java @@ -1088,6 +1088,9 @@ public class CarpetExpression this.expr.addLazyFunction("see_sky", -1, (c, t, lv) -> genericStateTest(c, "see_sky", lv, (s, p, w) -> new NumericValue(w.isSkyVisible(p)))); + this.expr.addLazyFunction("brightness", -1, (c, t, lv) -> + genericStateTest(c, "brightness", lv, (s, p, w) -> new NumericValue(w.getBrightness(p)))); + this.expr.addLazyFunction("hardness", -1, (c, t, lv) -> genericStateTest(c, "hardness", lv, (s, p, w) -> new NumericValue(s.getHardness(w, p)))); diff --git a/src/main/java/carpet/utils/SpawnReporter.java b/src/main/java/carpet/utils/SpawnReporter.java index 5763156f..defd6071 100644 --- a/src/main/java/carpet/utils/SpawnReporter.java +++ b/src/main/java/carpet/utils/SpawnReporter.java @@ -436,10 +436,15 @@ public class SpawnReporter float f1 = (float)z + 0.5F; mob.refreshPositionAndAngles((double)f, (double)y, (double)f1, worldIn.random.nextFloat() * 360.0F, 0.0F); fits1 = worldIn.doesNotCollide(mob); + EntityType etype = mob.getType(); for (int i = 0; i < 20; ++i) { - if (SpawnRestriction.canSpawn(mob.getType(),mob.getEntityWorld(), SpawnType.NATURAL, mob.getBlockPos(), mob.getEntityWorld().random)) + if ( + SpawnRestriction.canSpawn(etype,worldIn, SpawnType.NATURAL, pos, worldIn.random) && + SpawnHelper.canSpawn(SpawnRestriction.getLocation(etype), worldIn, pos, etype) && + mob.canSpawn(worldIn, SpawnType.NATURAL) // && mob.canSpawn(worldIn) // entity collisions + ) { will_spawn += 1; } From 37e94e5978e31c13ec4c6f199ead69fdf733b9e5 Mon Sep 17 00:00:00 2001 From: gnembon Date: Tue, 10 Mar 2020 13:13:09 -0300 Subject: [PATCH 2/2] weird flex but ok. Pathfinding affected spawning --- src/main/java/carpet/utils/PerimeterDiagnostics.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/carpet/utils/PerimeterDiagnostics.java b/src/main/java/carpet/utils/PerimeterDiagnostics.java index d2b4239f..ddfc11d1 100644 --- a/src/main/java/carpet/utils/PerimeterDiagnostics.java +++ b/src/main/java/carpet/utils/PerimeterDiagnostics.java @@ -177,7 +177,7 @@ public class PerimeterDiagnostics if (SpawnHelper.canSpawn(spt, worldServer, pos, sle.type)) { el.refreshPositionAndAngles((float)pos.getX() + 0.5F, (float)pos.getY(), (float)pos.getZ()+0.5F, 0.0F, 0.0F); - return el.canSpawn(worldServer) && + return el.canSpawn(worldServer) && el.canSpawn(worldServer, SpawnType.NATURAL) && SpawnRestriction.canSpawn(el.getType(),el.getEntityWorld(), SpawnType.NATURAL, el.getBlockPos(), el.getEntityWorld().random) && worldServer.doesNotCollide(el); // check collision rules once they stop fiddling with them after 1.14.1 }