From 4c8e477f4b7d011a3eb316575ba41c0db62711d2 Mon Sep 17 00:00:00 2001 From: gnembon <41132274+gnembon@users.noreply.github.com> Date: Wed, 22 Feb 2023 20:22:02 +0100 Subject: [PATCH] 1.19.4-pre1 --- gradle.properties | 7 +++--- .../carpet/commands/PerimeterInfoCommand.java | 2 +- .../java/carpet/commands/PlayerCommand.java | 2 +- .../carpet/helpers/OptimizedExplosion.java | 4 ++-- src/main/java/carpet/mixins/EntityMixin.java | 3 ++- .../mixins/LivingEntity_creativeFlyMixin.java | 4 ++-- .../carpet/patches/EntityPlayerMPFake.java | 4 ++-- .../java/carpet/script/CarpetScriptHost.java | 2 +- .../java/carpet/script/ScriptCommand.java | 2 +- .../carpet/script/api/BlockIterators.java | 23 ++++++++++++------- .../java/carpet/script/api/WorldAccess.java | 2 +- .../java/carpet/script/utils/EntityTools.java | 2 +- .../carpet/script/utils/ShapesRenderer.java | 2 +- .../java/carpet/script/value/EntityValue.java | 4 ++-- .../script/value/NBTSerializableValue.java | 4 ++-- 15 files changed, 37 insertions(+), 30 deletions(-) diff --git a/gradle.properties b/gradle.properties index ec5d49ec..a66b7749 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,12 +2,11 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties - # check these on https://fabricmc.net/use - # or better: https://modmuss50.me/fabric.html - minecraft_version=23w07a + # check https://fabricmc.net/develop/ + minecraft_version=1.19.4-pre1 loader_version=0.14.14 jsr305_version=3.0.2 - fabric_version=0.74.0+1.19.4 + fabric_version=0.74.1+1.19.4 # Mod Properties mod_version = 1.4.98 diff --git a/src/main/java/carpet/commands/PerimeterInfoCommand.java b/src/main/java/carpet/commands/PerimeterInfoCommand.java index 43942e77..bc478095 100644 --- a/src/main/java/carpet/commands/PerimeterInfoCommand.java +++ b/src/main/java/carpet/commands/PerimeterInfoCommand.java @@ -30,7 +30,7 @@ public class PerimeterInfoCommand requires((player) -> CommandHelper.canUseCommand(player, CarpetSettings.commandPerimeterInfo)). executes( (c) -> perimeterDiagnose( c.getSource(), - new BlockPos(c.getSource().getPosition()), + BlockPos.containing(c.getSource().getPosition()), null)). then(argument("center position", BlockPosArgument.blockPos()). executes( (c) -> perimeterDiagnose( diff --git a/src/main/java/carpet/commands/PlayerCommand.java b/src/main/java/carpet/commands/PlayerCommand.java index da2c8dd7..d523de37 100644 --- a/src/main/java/carpet/commands/PlayerCommand.java +++ b/src/main/java/carpet/commands/PlayerCommand.java @@ -311,7 +311,7 @@ public class PlayerCommand } MinecraftServer server = source.getServer(); - if (!Level.isInSpawnableBounds(new BlockPos(pos.x, pos.y, pos.z))) + if (!Level.isInSpawnableBounds(BlockPos.containing(pos.x, pos.y, pos.z))) { Messenger.m(context.getSource(), "rb Player "+playerName+" cannot be placed outside of the world"); return 0; diff --git a/src/main/java/carpet/helpers/OptimizedExplosion.java b/src/main/java/carpet/helpers/OptimizedExplosion.java index 4e5f8bfa..d42a738f 100644 --- a/src/main/java/carpet/helpers/OptimizedExplosion.java +++ b/src/main/java/carpet/helpers/OptimizedExplosion.java @@ -342,7 +342,7 @@ public class OptimizedExplosion double d8 = eAccess.getZ(); for (float f1 = 0.3F; f > 0.0F; f -= 0.22500001F) { - BlockPos blockpos = new BlockPos(d4, d6, d8); + BlockPos blockpos = BlockPos.containing(d4, d6, d8); BlockState state = eAccess.getLevel().getBlockState(blockpos); FluidState fluidState = eAccess.getLevel().getFluidState(blockpos); @@ -534,7 +534,7 @@ public class OptimizedExplosion boolean found = false; for (float f1 = 0.3F; f > 0.0F; f -= 0.22500001F) { - BlockPos blockpos = new BlockPos(d4, d6, d8); + BlockPos blockpos = BlockPos.containing(d4, d6, d8); BlockState state = eAccess.getLevel().getBlockState(blockpos); FluidState fluidState = eAccess.getLevel().getFluidState(blockpos); diff --git a/src/main/java/carpet/mixins/EntityMixin.java b/src/main/java/carpet/mixins/EntityMixin.java index 03cfd2c7..6c2223ad 100644 --- a/src/main/java/carpet/mixins/EntityMixin.java +++ b/src/main/java/carpet/mixins/EntityMixin.java @@ -4,6 +4,7 @@ import carpet.fakes.EntityInterface; import carpet.patches.EntityPlayerMPFake; import net.minecraft.util.Mth; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; @@ -21,7 +22,7 @@ public abstract class EntityMixin implements EntityInterface @Shadow public float yRotO; - @Shadow public @Nullable abstract Entity getControllingPassenger(); + @Shadow public @Nullable abstract LivingEntity getControllingPassenger(); @Shadow public Level level; diff --git a/src/main/java/carpet/mixins/LivingEntity_creativeFlyMixin.java b/src/main/java/carpet/mixins/LivingEntity_creativeFlyMixin.java index b96c9eb1..fea73417 100644 --- a/src/main/java/carpet/mixins/LivingEntity_creativeFlyMixin.java +++ b/src/main/java/carpet/mixins/LivingEntity_creativeFlyMixin.java @@ -17,7 +17,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(LivingEntity.class) public abstract class LivingEntity_creativeFlyMixin extends Entity { - @Shadow public float flyingSpeed; + @Shadow protected abstract float getFlyingSpeed(); public LivingEntity_creativeFlyMixin(EntityType type, Level world) { @@ -44,7 +44,7 @@ public abstract class LivingEntity_creativeFlyMixin extends Entity { Player self = (Player)(Object)(this); if (self.getAbilities().flying && !onGround) - cir.setReturnValue( flyingSpeed* (float)CarpetSettings.creativeFlySpeed); + cir.setReturnValue( getFlyingSpeed() * (float)CarpetSettings.creativeFlySpeed); } } } diff --git a/src/main/java/carpet/patches/EntityPlayerMPFake.java b/src/main/java/carpet/patches/EntityPlayerMPFake.java index 4fcf391d..10962c04 100644 --- a/src/main/java/carpet/patches/EntityPlayerMPFake.java +++ b/src/main/java/carpet/patches/EntityPlayerMPFake.java @@ -69,7 +69,7 @@ public class EntityPlayerMPFake extends ServerPlayer instance.teleportTo(worldIn, d0, d1, d2, (float)yaw, (float)pitch); instance.setHealth(20.0F); instance.unsetRemoved(); - instance.maxUpStep = 0.6F; + instance.setMaxUpStep(0.6F); instance.gameMode.changeGameModeForPlayer(gamemode); server.getPlayerList().broadcastAll(new ClientboundRotateHeadPacket(instance, (byte) (instance.yHeadRot * 256 / 360)), dimensionId);//instance.dimension); server.getPlayerList().broadcastAll(new ClientboundTeleportEntityPacket(instance), dimensionId);//instance.dimension); @@ -93,7 +93,7 @@ public class EntityPlayerMPFake extends ServerPlayer playerShadow.connection.teleport(player.getX(), player.getY(), player.getZ(), player.getYRot(), player.getXRot()); playerShadow.gameMode.changeGameModeForPlayer(player.gameMode.getGameModeForPlayer()); ((ServerPlayerInterface) playerShadow).getActionPack().copyFrom(((ServerPlayerInterface) player).getActionPack()); - playerShadow.maxUpStep = 0.6F; + playerShadow.setMaxUpStep(0.6F); playerShadow.entityData.set(DATA_PLAYER_MODE_CUSTOMISATION, player.getEntityData().get(DATA_PLAYER_MODE_CUSTOMISATION)); diff --git a/src/main/java/carpet/script/CarpetScriptHost.java b/src/main/java/carpet/script/CarpetScriptHost.java index df94add2..e4f15fae 100644 --- a/src/main/java/carpet/script/CarpetScriptHost.java +++ b/src/main/java/carpet/script/CarpetScriptHost.java @@ -110,7 +110,7 @@ public class CarpetScriptHost extends ScriptHost CarpetExpression ex = new CarpetExpression(host.main, module.code(), source, new BlockPos(0, 0, 0)); ex.getExpr().asATextSource(); host.storeSource = storeSource; - ex.scriptRunCommand(host, new BlockPos(source.getPosition())); + ex.scriptRunCommand(host, BlockPos.containing(source.getPosition())); } catch (CarpetExpressionException e) { diff --git a/src/main/java/carpet/script/ScriptCommand.java b/src/main/java/carpet/script/ScriptCommand.java index 3d1e3aed..7ea25440 100644 --- a/src/main/java/carpet/script/ScriptCommand.java +++ b/src/main/java/carpet/script/ScriptCommand.java @@ -532,7 +532,7 @@ public class ScriptCommand CarpetScriptHost host = getHost(context); return handleCall(source, host, () -> { CarpetExpression ex = new CarpetExpression(host.main, expr, source, new BlockPos(0, 0, 0)); - return ex.scriptRunCommand(host, new BlockPos(source.getPosition())); + return ex.scriptRunCommand(host, BlockPos.containing(source.getPosition())); }); } diff --git a/src/main/java/carpet/script/api/BlockIterators.java b/src/main/java/carpet/script/api/BlockIterators.java index e6061e02..d16c3733 100644 --- a/src/main/java/carpet/script/api/BlockIterators.java +++ b/src/main/java/carpet/script/api/BlockIterators.java @@ -50,14 +50,18 @@ public class BlockIterators if (rangeLocator.fromBlock) { range = new Vec3i( - abs(rangeLocator.vec.x - center.getX()), - abs(rangeLocator.vec.y - center.getY()), - abs(rangeLocator.vec.z - center.getZ()) + Mth.floor(abs(rangeLocator.vec.x - center.getX())), + Mth.floor(abs(rangeLocator.vec.y - center.getY())), + Mth.floor(abs(rangeLocator.vec.z - center.getZ())) ); } else { - range = new Vec3i(abs(rangeLocator.vec.x), abs(rangeLocator.vec.y), abs(rangeLocator.vec.z)); + range = new Vec3i( + Mth.floor(abs(rangeLocator.vec.x)), + Mth.floor(abs(rangeLocator.vec.y)), + Mth.floor(abs(rangeLocator.vec.z)) + ); } Vec3i upperRange = range; if (lv.size() > rangeLocator.offset + 1) // +1 cause we still need the expression @@ -66,14 +70,17 @@ public class BlockIterators if (rangeLocator.fromBlock) { upperRange = new Vec3i( - abs(rangeLocator.vec.x - center.getX()), - abs(rangeLocator.vec.y - center.getY()), - abs(rangeLocator.vec.z - center.getZ()) + Mth.floor(abs(rangeLocator.vec.x - center.getX())), + Mth.floor(abs(rangeLocator.vec.y - center.getY())), + Mth.floor(abs(rangeLocator.vec.z - center.getZ())) ); } else { - upperRange = new Vec3i(abs(rangeLocator.vec.x), abs(rangeLocator.vec.y), abs(rangeLocator.vec.z)); + upperRange = new Vec3i( + Mth.floor(abs(rangeLocator.vec.x)), + Mth.floor(abs(rangeLocator.vec.y)), + Mth.floor(abs(rangeLocator.vec.z))); } } if (llv.size() != rangeLocator.offset + 1) diff --git a/src/main/java/carpet/script/api/WorldAccess.java b/src/main/java/carpet/script/api/WorldAccess.java index 6139c2ae..17b23b40 100644 --- a/src/main/java/carpet/script/api/WorldAccess.java +++ b/src/main/java/carpet/script/api/WorldAccess.java @@ -1101,7 +1101,7 @@ public class WorldAccess String itemString = lv.get(0).getString(); Vector3Argument locator = Vector3Argument.findIn(lv, 1); ItemInput stackArg = NBTSerializableValue.parseItem(itemString, cc.registryAccess()); - BlockPos where = new BlockPos(locator.vec); + BlockPos where = BlockPos.containing(locator.vec); // Paintings throw an exception if their direction is vertical, therefore we change the default here String facing = lv.size() > locator.offset ? lv.get(locator.offset).getString() diff --git a/src/main/java/carpet/script/utils/EntityTools.java b/src/main/java/carpet/script/utils/EntityTools.java index 232d2b2b..2598fdba 100644 --- a/src/main/java/carpet/script/utils/EntityTools.java +++ b/src/main/java/carpet/script/utils/EntityTools.java @@ -17,7 +17,7 @@ public class EntityTools return; } float m = e.level.getBlockState(e.blockPosition()).getBlock().getJumpFactor(); - float g = e.level.getBlockState(new BlockPos(e.getX(), e.getBoundingBox().minY - 0.5000001D, e.getZ())).getBlock().getJumpFactor(); + float g = e.level.getBlockState(BlockPos.containing(e.getX(), e.getBoundingBox().minY - 0.5000001D, e.getZ())).getBlock().getJumpFactor(); float jumpVelocityMultiplier = m == 1.0D ? g : m; float jumpStrength = (0.42F * jumpVelocityMultiplier); Vec3 vec3d = e.getDeltaMovement(); diff --git a/src/main/java/carpet/script/utils/ShapesRenderer.java b/src/main/java/carpet/script/utils/ShapesRenderer.java index f3ae057c..37738f87 100644 --- a/src/main/java/carpet/script/utils/ShapesRenderer.java +++ b/src/main/java/carpet/script/utils/ShapesRenderer.java @@ -381,7 +381,7 @@ public class ShapesRenderer RenderSystem.enableCull(); RenderSystem.enableDepthTest(); - blockPos = new BlockPos(v1); + blockPos = BlockPos.containing(v1); int light = 0; if (client.level != null) { diff --git a/src/main/java/carpet/script/value/EntityValue.java b/src/main/java/carpet/script/value/EntityValue.java index 2acf6b82..2a4386ac 100644 --- a/src/main/java/carpet/script/value/EntityValue.java +++ b/src/main/java/carpet/script/value/EntityValue.java @@ -1331,7 +1331,7 @@ public class EntityValue extends Value { List list = lv.getItems(); Vector3Argument locator = Vector3Argument.findIn(list, 0, false, false); - pos = new BlockPos(locator.vec.x, locator.vec.y, locator.vec.z); + pos = BlockPos.containing(locator.vec.x, locator.vec.y, locator.vec.z); if (list.size() > locator.offset) { distance = (int) NumericValue.asNumber(list.get(locator.offset)).getLong(); @@ -1365,7 +1365,7 @@ public class EntityValue extends Value { List params = lv.getItems(); Vector3Argument blockLocator = Vector3Argument.findIn(params, 0, false, false); - BlockPos pos = new BlockPos(blockLocator.vec); + BlockPos pos = BlockPos.containing(blockLocator.vec); ResourceKey world = spe.getCommandSenderWorld().dimension(); float angle = spe.getYHeadRot(); boolean forced = false; diff --git a/src/main/java/carpet/script/value/NBTSerializableValue.java b/src/main/java/carpet/script/value/NBTSerializableValue.java index 2befcd60..2c367517 100644 --- a/src/main/java/carpet/script/value/NBTSerializableValue.java +++ b/src/main/java/carpet/script/value/NBTSerializableValue.java @@ -315,7 +315,7 @@ public class NBTSerializableValue extends Value implements ContainerValueInterfa if (v1 instanceof final ListValue lv) { List args = lv.getItems(); - BlockPos pos = new BlockPos( + BlockPos pos = BlockPos.containing( NumericValue.asNumber(args.get(0)).getDouble(), NumericValue.asNumber(args.get(1)).getDouble(), NumericValue.asNumber(args.get(2)).getDouble()); @@ -326,7 +326,7 @@ public class NBTSerializableValue extends Value implements ContainerValueInterfa { return !screenValue.isOpen() ? null : new InventoryLocator(screenValue.getPlayer(), screenValue.getPlayer().blockPosition(), screenValue.getInventory(), offset + 1); } - BlockPos pos = new BlockPos( + BlockPos pos = BlockPos.containing( NumericValue.asNumber(v1).getDouble(), NumericValue.asNumber(params.get(1 + offset)).getDouble(), NumericValue.asNumber(params.get(2 + offset)).getDouble());