From 7daac70f93325f327a9fb655af4ffb008df2096b Mon Sep 17 00:00:00 2001 From: gnembon Date: Mon, 7 Sep 2020 15:16:15 -0300 Subject: [PATCH] mappings --- gradle.properties | 4 ++-- src/main/java/carpet/helpers/Tracer.java | 7 +++--- .../java/carpet/mixins/SpawnHelperMixin.java | 10 ++++---- ...hunkStorage_scarpetChunkCreationMixin.java | 2 +- .../java/carpet/script/CarpetExpression.java | 23 ++++++++++--------- .../carpet/utils/PerimeterDiagnostics.java | 2 +- src/main/java/carpet/utils/SpawnReporter.java | 4 ++-- 7 files changed, 27 insertions(+), 25 deletions(-) diff --git a/gradle.properties b/gradle.properties index 7a02914d..d44788a3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,8 +5,8 @@ org.gradle.jvmargs=-Xmx1G # check these on https://fabricmc.net/use # or better: https://modmuss50.me/fabric.html minecraft_version=1.16.2 - yarn_mappings=1.16.2+build.12 - loader_version=0.9.1+build.205 + yarn_mappings=1.16.2+build.47 + loader_version=0.9.3+build.207 # Mod Properties mod_version = 1.4.9+v200815 diff --git a/src/main/java/carpet/helpers/Tracer.java b/src/main/java/carpet/helpers/Tracer.java index dbbc4690..556d204b 100644 --- a/src/main/java/carpet/helpers/Tracer.java +++ b/src/main/java/carpet/helpers/Tracer.java @@ -6,7 +6,7 @@ import net.minecraft.util.hit.EntityHitResult; import net.minecraft.util.hit.HitResult; import net.minecraft.util.math.Box; import net.minecraft.util.math.Vec3d; -import net.minecraft.world.RayTraceContext; +import net.minecraft.world.RaycastContext; import net.minecraft.world.World; import java.util.Optional; @@ -31,7 +31,8 @@ public class Tracer Vec3d pos = source.getCameraPosVec(partialTicks); Vec3d rotation = source.getRotationVec(partialTicks); Vec3d reachEnd = pos.add(rotation.x * reach, rotation.y * reach, rotation.z * reach); - return source.world.rayTrace(new RayTraceContext(pos, reachEnd, RayTraceContext.ShapeType.OUTLINE, fluids ? RayTraceContext.FluidHandling.ANY : RayTraceContext.FluidHandling.NONE, source)); + return source.world.raycast(new RaycastContext(pos, reachEnd, RaycastContext.ShapeType.OUTLINE, fluids ? + RaycastContext.FluidHandling.ANY : RaycastContext.FluidHandling.NONE, source)); } public static EntityHitResult rayTraceEntities(Entity source, float partialTicks, double reach, double maxSqDist) @@ -51,7 +52,7 @@ public class Tracer for (Entity current : world.getOtherEntities(source, box, predicate)) { Box currentBox = current.getBoundingBox().expand(current.getTargetingMargin()); - Optional currentHit = currentBox.rayTrace(start, end); + Optional currentHit = currentBox.raycast(start, end); if (currentBox.contains(start)) { if (targetDistance >= 0) diff --git a/src/main/java/carpet/mixins/SpawnHelperMixin.java b/src/main/java/carpet/mixins/SpawnHelperMixin.java index 8ab67b17..b8e07c76 100644 --- a/src/main/java/carpet/mixins/SpawnHelperMixin.java +++ b/src/main/java/carpet/mixins/SpawnHelperMixin.java @@ -48,7 +48,7 @@ public class SpawnHelperMixin @Redirect(method = "canSpawn(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/entity/SpawnGroup;Lnet/minecraft/world/gen/StructureAccessor;Lnet/minecraft/world/gen/chunk/ChunkGenerator;Lnet/minecraft/world/biome/SpawnSettings$SpawnEntry;Lnet/minecraft/util/math/BlockPos$Mutable;D)Z", at = @At( value = "INVOKE", - target = "Lnet/minecraft/server/world/ServerWorld;doesNotCollide(Lnet/minecraft/util/math/Box;)Z" + target = "Lnet/minecraft/server/world/ServerWorld;isSpaceEmpty(Lnet/minecraft/util/math/Box;)Z" )) private static boolean doesNotCollide(ServerWorld world, Box bb) { @@ -58,7 +58,7 @@ public class SpawnHelperMixin // in case something more complex happens - we default to full block collision check if (!CarpetSettings.lagFreeSpawning) { - return world.doesNotCollide(bb); + return world.isSpaceEmpty(bb); } int minX = MathHelper.floor(bb.minX); int minY = MathHelper.floor(bb.minY); @@ -79,7 +79,7 @@ public class SpawnHelperMixin } else { - return world.doesNotCollide(bb); + return world.isSpaceEmpty(bb); } } } @@ -102,7 +102,7 @@ public class SpawnHelperMixin } else { - return world.doesNotCollide(bb); + return world.isSpaceEmpty(bb); } } } @@ -122,7 +122,7 @@ public class SpawnHelperMixin ((block instanceof FenceGateBlock) && !state.get(FenceGateBlock.OPEN)) ) { - if (x == minX || x == maxX || z == minZ || z == maxZ) return world.doesNotCollide(bb); + if (x == minX || x == maxX || z == minZ || z == maxZ) return world.isSpaceEmpty(bb); return false; } } diff --git a/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java b/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java index b6da7406..54211a59 100644 --- a/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java +++ b/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java @@ -117,7 +117,7 @@ public abstract class ThreadedAnvilChunkStorage_scarpetChunkCreationMixin implem @Unique private void addTicket(final ChunkPos pos, final ChunkStatus status) { // UNKNOWN - this.ticketManager.addTicketWithLevel(ChunkTicketType.field_14032, pos, 33 + ChunkStatus.getDistanceFromFull(status), pos); + this.ticketManager.addTicketWithLevel(ChunkTicketType.UNKNOWN, pos, 33 + ChunkStatus.getDistanceFromFull(status), pos); } @Unique diff --git a/src/main/java/carpet/script/CarpetExpression.java b/src/main/java/carpet/script/CarpetExpression.java index fb661ec9..2b77c31c 100644 --- a/src/main/java/carpet/script/CarpetExpression.java +++ b/src/main/java/carpet/script/CarpetExpression.java @@ -1290,7 +1290,8 @@ public class CarpetExpression { ChunkPos chpos = new ChunkPos(chx, chz); // getting a chunk will convert it to full, allowing to modify references - Map, LongSet> references = world.getChunk(chpos.getCenterBlockPos()).getStructureReferences(); + Map, LongSet> references = + world.getChunk(chpos.getStartPos()).getStructureReferences(); if (references.containsKey(structure) && references.get(structure) != null) references.get(structure).remove(structureChunkPos.toLong()); } @@ -1390,7 +1391,7 @@ public class CarpetExpression { if (world.getChunk(chpos.x, chpos.z, ChunkStatus.FULL, false) != null) { - forceChunkUpdate(chpos.getCenterBlockPos(), world); + forceChunkUpdate(chpos.getStartPos(), world); } } result[0] = MapValue.wrap(report.entrySet().stream().collect(Collectors.toMap( @@ -1440,21 +1441,21 @@ public class CarpetExpression if (radius < 1 || radius > 32) throw new InternalExpressionException("Ticket radius should be between 1 and 32 chunks"); // due to types we will wing it: ChunkPos target = new ChunkPos(pos); - if (ticket == ChunkTicketType.field_19280) // portal - cc.s.getWorld().getChunkManager().addTicket(ChunkTicketType.field_19280, target, radius, pos); - else if (ticket == ChunkTicketType.field_19347) // post teleport - cc.s.getWorld().getChunkManager().addTicket(ChunkTicketType.field_19347, target, radius, 1); + if (ticket == ChunkTicketType.PORTAL) // portal + cc.s.getWorld().getChunkManager().addTicket(ChunkTicketType.PORTAL, target, radius, pos); + else if (ticket == ChunkTicketType.POST_TELEPORT) // post teleport + cc.s.getWorld().getChunkManager().addTicket(ChunkTicketType.POST_TELEPORT, target, radius, 1); else - cc.s.getWorld().getChunkManager().addTicket(ChunkTicketType.field_14032, target, radius, target); + cc.s.getWorld().getChunkManager().addTicket(ChunkTicketType.UNKNOWN, target, radius, target); Value ret = new NumericValue(ticket.getExpiryTicks()); return (_c, _t) -> ret; }); } private Map> ticketTypes = new HashMap>(){{ - put("portal", ChunkTicketType.field_19280); - put("teleport", ChunkTicketType.field_19347); - put("unknown", ChunkTicketType.field_14032); // unknown + put("portal", ChunkTicketType.PORTAL); + put("teleport", ChunkTicketType.POST_TELEPORT); + put("unknown", ChunkTicketType.UNKNOWN); // unknown }}; private static String getScoreboardKeyFromValue(Value keyValue) @@ -3585,7 +3586,7 @@ public class CarpetExpression else { String catString = lv.get(0).evalValue(c).getString(); - SpawnGroup cat = SpawnGroup.method_28307(catString.toLowerCase(Locale.ROOT)); + SpawnGroup cat = SpawnGroup.byName(catString.toLowerCase(Locale.ROOT)); if (cat == null) throw new InternalExpressionException("Unreconized mob category: "+catString); retVal = ListValue.of( new NumericValue(mobcounts.getInt(cat)), diff --git a/src/main/java/carpet/utils/PerimeterDiagnostics.java b/src/main/java/carpet/utils/PerimeterDiagnostics.java index ae061f14..8fab4bd8 100644 --- a/src/main/java/carpet/utils/PerimeterDiagnostics.java +++ b/src/main/java/carpet/utils/PerimeterDiagnostics.java @@ -183,7 +183,7 @@ public class PerimeterDiagnostics el.refreshPositionAndAngles((float)pos.getX() + 0.5F, (float)pos.getY(), (float)pos.getZ()+0.5F, 0.0F, 0.0F); return el.canSpawn(worldServer) && el.canSpawn(worldServer, SpawnReason.NATURAL) && SpawnRestriction.canSpawn(el.getType(),(ServerWorld)el.getEntityWorld(), SpawnReason.NATURAL, el.getBlockPos(), el.getEntityWorld().random) && - worldServer.doesNotCollide(el); // check collision rules once they stop fiddling with them after 1.14.1 + worldServer.isSpaceEmpty(el); // check collision rules once they stop fiddling with them after 1.14.1 } return false; } diff --git a/src/main/java/carpet/utils/SpawnReporter.java b/src/main/java/carpet/utils/SpawnReporter.java index 73424930..2e43a416 100644 --- a/src/main/java/carpet/utils/SpawnReporter.java +++ b/src/main/java/carpet/utils/SpawnReporter.java @@ -467,7 +467,7 @@ public class SpawnReporter float f = (float)x + 0.5F; 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); + fits1 = worldIn.isSpaceEmpty(mob); EntityType etype = mob.getType(); for (int i = 0; i < 20; ++i) @@ -483,7 +483,7 @@ public class SpawnReporter } mob.initialize(worldIn, worldIn.getLocalDifficulty(mob.getBlockPos()), SpawnReason.NATURAL, null, null); // the code invokes onInitialSpawn after getCanSpawHere - fits = fits1 && worldIn.doesNotCollide(mob); + fits = fits1 && worldIn.isSpaceEmpty(mob); if (fits) { fits_true = true;