From 7b649f9ccdf560722b6f4a0a36cdd1b142430497 Mon Sep 17 00:00:00 2001 From: gnembon Date: Wed, 9 Oct 2019 19:43:37 -0300 Subject: [PATCH] 19w41a first pass --- gradle.properties | 6 +- ...nterface.java => BiomeArrayInterface.java} | 2 +- .../BlockEntityRenderDispatcherInterface.java | 6 +- .../helpers/EntityPlayerActionPack.java | 2 +- .../java/carpet/helpers/FeatureGenerator.java | 89 ++++++++----------- src/main/java/carpet/helpers/XPcombine.java | 2 +- .../mixins/BiomeArray_getBiomeArrayMixin.java | 35 ++++++++ ...EntityRenderDispatcher_movableTEMixin.java | 2 +- .../mixins/FallingBlockEntityMixin.java | 2 +- .../GravityStructureProcessorMixin.java | 8 +- .../carpet/mixins/GuardianEntityMixin.java | 2 +- ...tonBlockEntityRenderer_movableTEMixin.java | 15 ++-- .../mixins/PistonBlock_movableTEMixin.java | 4 +- .../mixins/PistonHandler_movableTEMixin.java | 19 +--- .../carpet/mixins/ProjectileEntityMixin.java | 2 +- .../ServerPlayNetworkHandler_tickMixin.java | 8 +- ...rPlayerInteractionManager_cactusMixin.java | 4 +- .../carpet/mixins/StructureFeatureMixin.java | 7 +- .../carpet/mixins/StructurePieceMixin.java | 8 +- .../java/carpet/mixins/ThrownEntityMixin.java | 2 +- .../java/carpet/mixins/TntEntityMixin.java | 4 +- .../carpet/mixins/VillagerEntity_aiMixin.java | 4 +- .../mixins/class_4548_getBiomeArrayMixin.java | 34 ------- .../carpet/patches/EntityPlayerMPFake.java | 2 +- .../java/carpet/script/CarpetExpression.java | 20 ++--- .../java/carpet/script/value/EntityValue.java | 49 +++++----- src/main/java/carpet/utils/EntityInfo.java | 2 +- .../carpet/utils/PerimeterDiagnostics.java | 2 +- 28 files changed, 164 insertions(+), 178 deletions(-) rename src/main/java/carpet/fakes/{class_4548Interface.java => BiomeArrayInterface.java} (84%) create mode 100644 src/main/java/carpet/mixins/BiomeArray_getBiomeArrayMixin.java delete mode 100644 src/main/java/carpet/mixins/class_4548_getBiomeArrayMixin.java diff --git a/gradle.properties b/gradle.properties index cda80d02..1ebcc8b0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,9 +4,9 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use # or better: https://modmuss50.me/fabric.html - minecraft_version=19w40a - yarn_mappings=19w40a+build.1 - loader_version=0.6.2+build.166 + minecraft_version=19w41a + yarn_mappings=19w41a+build.1 + loader_version=0.6.3+build.167 # Mod Properties mod_version = 1.1.2+v191009 diff --git a/src/main/java/carpet/fakes/class_4548Interface.java b/src/main/java/carpet/fakes/BiomeArrayInterface.java similarity index 84% rename from src/main/java/carpet/fakes/class_4548Interface.java rename to src/main/java/carpet/fakes/BiomeArrayInterface.java index d6832be8..722e3bc0 100644 --- a/src/main/java/carpet/fakes/class_4548Interface.java +++ b/src/main/java/carpet/fakes/BiomeArrayInterface.java @@ -4,7 +4,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.biome.Biome; -public interface class_4548Interface +public interface BiomeArrayInterface { void setBiomeAtIndex(BlockPos pos, World world, Biome what); } diff --git a/src/main/java/carpet/fakes/BlockEntityRenderDispatcherInterface.java b/src/main/java/carpet/fakes/BlockEntityRenderDispatcherInterface.java index 48f3c8a8..b6181234 100644 --- a/src/main/java/carpet/fakes/BlockEntityRenderDispatcherInterface.java +++ b/src/main/java/carpet/fakes/BlockEntityRenderDispatcherInterface.java @@ -1,12 +1,12 @@ package carpet.fakes; -import net.minecraft.block.BlockRenderLayer; +//import net.minecraft.block.BlockRenderLayer; import net.minecraft.block.entity.BlockEntity; import net.minecraft.client.render.BufferBuilder; public interface BlockEntityRenderDispatcherInterface { - void renderBlockEntityOffset(BlockEntity blockEntity_1, float partialTicks, int destroyStage, BlockRenderLayer blockRenderLayer_1, BufferBuilder bufferBuilder_1, + /*void renderBlockEntityOffset(BlockEntity blockEntity_1, float partialTicks, int destroyStage, BlockRenderLayer blockRenderLayer_1, BufferBuilder bufferBuilder_1, double xOffset, double yOffset, double zOffset); - +*/ } diff --git a/src/main/java/carpet/helpers/EntityPlayerActionPack.java b/src/main/java/carpet/helpers/EntityPlayerActionPack.java index b06f6440..7b4cbdfc 100644 --- a/src/main/java/carpet/helpers/EntityPlayerActionPack.java +++ b/src/main/java/carpet/helpers/EntityPlayerActionPack.java @@ -236,7 +236,7 @@ public class EntityPlayerActionPack player.updateLastActionTime(); EntityHitResult entityHit = (EntityHitResult) hit; Entity entity = entityHit.getEntity(); - Vec3d relativeHitPos = entityHit.getPos().subtract(entity.x, entity.y, entity.z); + Vec3d relativeHitPos = entityHit.getPos().subtract(entity.method_23317(), entity.method_23318(), entity.method_23321()); if (entity.interactAt(player, relativeHitPos, hand) == ActionResult.SUCCESS) return true; if (player.interact(entity, hand) == ActionResult.SUCCESS) return true; break; diff --git a/src/main/java/carpet/helpers/FeatureGenerator.java b/src/main/java/carpet/helpers/FeatureGenerator.java index b77c9643..4119a900 100644 --- a/src/main/java/carpet/helpers/FeatureGenerator.java +++ b/src/main/java/carpet/helpers/FeatureGenerator.java @@ -14,24 +14,11 @@ import net.minecraft.world.biome.source.VanillaLayeredBiomeSourceConfig; import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.chunk.OverworldChunkGenerator; import net.minecraft.world.gen.chunk.OverworldChunkGeneratorConfig; -import net.minecraft.world.gen.feature.BoulderFeatureConfig; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.DoublePlantFeatureConfig; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.FeatureConfig; -import net.minecraft.world.gen.feature.IcebergFeatureConfig; -import net.minecraft.world.gen.feature.JungleGroundBushFeature; -import net.minecraft.world.gen.feature.LakeFeatureConfig; -import net.minecraft.world.gen.feature.MineshaftFeature; -import net.minecraft.world.gen.feature.MineshaftFeatureConfig; -import net.minecraft.world.gen.feature.OceanRuinFeature; -import net.minecraft.world.gen.feature.OceanRuinFeatureConfig; -import net.minecraft.world.gen.feature.PlantedFeatureConfig; -import net.minecraft.world.gen.feature.SeaPickleFeatureConfig; -import net.minecraft.world.gen.feature.SeagrassFeatureConfig; -import net.minecraft.world.gen.feature.ShipwreckFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; -import net.minecraft.world.gen.feature.VillageFeatureConfig; +import net.minecraft.world.gen.feature.*; +//import net.minecraft.world.gen.feature.DoublePlantFeatureConfig; +//import net.minecraft.world.gen.feature.IcebergFeatureConfig; +//import net.minecraft.world.gen.feature.LakeFeatureConfig; +//import net.minecraft.world.gen.feature.PlantedFeatureConfig; import java.util.HashMap; import java.util.Map; @@ -61,6 +48,8 @@ public class FeatureGenerator private static Thing spawnCustomStructure(StructureFeature structure, FeatureConfig conf, Biome biome) { + if (1+2==3) + throw new RuntimeException("rebuild me"); return (w, p) -> { ChunkGenerator chunkgen = new OverworldChunkGenerator(w, w.method_14178().getChunkGenerator().getBiomeSource(), new OverworldChunkGeneratorConfig()) // BiomeSourceType.VANILLA_LAYERED.applyConfig((BiomeSourceType.VANILLA_LAYERED.getConfig())), ChunkGeneratorType.SURFACE.createSettings()) { @@ -75,7 +64,7 @@ public class FeatureGenerator { return new VanillaLayeredBiomeSource(new VanillaLayeredBiomeSourceConfig(w.getLevelProperties())) { - @Override + // // // @Override public Biome getBiome(int i, int j, int k) { return biome; @@ -99,48 +88,48 @@ public class FeatureGenerator private static Map featureMap = new HashMap() {{ - put("oak", simplePlop(Feature.NORMAL_TREE)); - put("oak_large", simplePlop(Feature.FANCY_TREE)); - put("birch", simplePlop(Feature.BIRCH_TREE)); - put("birch_large", simplePlop(Feature.SUPER_BIRCH_TREE)); - put("shrub", simplePlop(Feature.JUNGLE_GROUND_BUSH)); - put("shrub_acacia", simplePlop(new JungleGroundBushFeature((d) -> FeatureConfig.DEFAULT, Blocks.ACACIA_WOOD.getDefaultState(), Blocks.ACACIA_LEAVES.getDefaultState()))); - put("shrub_birch", simplePlop(new JungleGroundBushFeature((d) -> FeatureConfig.DEFAULT, Blocks.BIRCH_WOOD.getDefaultState(), Blocks.BIRCH_LEAVES.getDefaultState()))); - put("shrub_snowy", simplePlop(new JungleGroundBushFeature((d) -> FeatureConfig.DEFAULT, Blocks.BONE_BLOCK.getDefaultState(), Blocks.COBWEB.getDefaultState()))); - put("jungle", simplePlop(Feature.JUNGLE_TREE)); - put("spruce_matchstick", simplePlop(Feature.PINE_TREE)); - put("dark_oak", simplePlop(Feature.DARK_OAK_TREE)); - put("acacia", simplePlop(Feature.SAVANNA_TREE)); - put("spruce", simplePlop(Feature.SPRUCE_TREE)); - put("oak_swamp", simplePlop(Feature.SWAMP_TREE)); - put("jungle_large", simplePlop(Feature.MEGA_JUNGLE_TREE)); + //put("oak", simplePlop(Feature.NORMAL_TREE)); + //put("oak_large", simplePlop(Feature.FANCY_TREE)); + //put("birch", simplePlop(Feature.BIRCH_TREE)); + //put("birch_large", simplePlop(Feature.SUPER_BIRCH_TREE)); + //put("shrub", simplePlop(Feature.JUNGLE_GROUND_BUSH)); + //put("shrub_acacia", simplePlop(new JungleGroundBushFeature((d) -> FeatureConfig.DEFAULT, Blocks.ACACIA_WOOD.getDefaultState(), Blocks.ACACIA_LEAVES.getDefaultState()))); + //put("shrub_birch", simplePlop(new JungleGroundBushFeature((d) -> FeatureConfig.DEFAULT, Blocks.BIRCH_WOOD.getDefaultState(), Blocks.BIRCH_LEAVES.getDefaultState()))); + //put("shrub_snowy", simplePlop(new JungleGroundBushFeature((d) -> FeatureConfig.DEFAULT, Blocks.BONE_BLOCK.getDefaultState(), Blocks.COBWEB.getDefaultState()))); + //put("jungle", simplePlop(Feature.JUNGLE_TREE)); + //put("spruce_matchstick", simplePlop(Feature.PINE_TREE)); + //put("dark_oak", simplePlop(Feature.DARK_OAK_TREE)); + //put("acacia", simplePlop(Feature.SAVANNA_TREE)); + //put("spruce", simplePlop(Feature.SPRUCE_TREE)); + //put("oak_swamp", simplePlop(Feature.SWAMP_TREE)); + //put("jungle_large", simplePlop(Feature.MEGA_JUNGLE_TREE)); //put("spruce_matchstick_large", simplePlop(Feature.MEGA_PINE_TREE));?? - put("spruce_large", simplePlop(Feature.MEGA_SPRUCE_TREE)); + //put("spruce_large", simplePlop(Feature.MEGA_SPRUCE_TREE)); put("well", simplePlop(Feature.DESERT_WELL)); - put("grass_jungle", simplePlop(Feature.JUNGLE_GRASS)); - put("fern", simplePlop(Feature.TAIGA_GRASS)); - put("grass", simplePlop(Feature.DOUBLE_PLANT, new DoublePlantFeatureConfig(Blocks.TALL_GRASS.getDefaultState()))); + //put("grass_jungle", simplePlop(Feature.JUNGLE_GRASS)); + //put("fern", simplePlop(Feature.TAIGA_GRASS)); + //put("grass", simplePlop(Feature.DOUBLE_PLANT, new DoublePlantFeatureConfig(Blocks.TALL_GRASS.getDefaultState()))); //put("", simplePlop(Feature.)); //put("", simplePlop(Feature.)); //put("", simplePlop(Feature.)); //put("", simplePlop(Feature.)); - put("cactus", simplePlop(Feature.CACTUS)); - put("dead_bush", simplePlop(Feature.DEAD_BUSH)); + //put("cactus", simplePlop(Feature.CACTUS)); + //put("dead_bush", simplePlop(Feature.DEAD_BUSH)); put("fossils", simplePlop(Feature.FOSSIL)); // spawn above, spawn invisible - put("mushroom_brown", simplePlop(Feature.HUGE_BROWN_MUSHROOM, new PlantedFeatureConfig(false))); - put("mushroom_red", simplePlop(Feature.HUGE_RED_MUSHROOM, new PlantedFeatureConfig(false))); + //put("mushroom_brown", simplePlop(Feature.HUGE_BROWN_MUSHROOM, new class_4635(false))); + // put("mushroom_red", simplePlop(Feature.HUGE_RED_MUSHROOM, new class_4635(false))); put("ice_spike", simplePlop(Feature.ICE_SPIKE)); put("glowstone", simplePlop(Feature.GLOWSTONE_BLOB)); - put("melon", simplePlop(Feature.MELON)); - put("pumpkin", simplePlop(Feature.PUMPKIN)); - put("sugarcane", simplePlop(Feature.REED)); - put("lilypad", simplePlop(Feature.WATERLILY)); + //put("melon", simplePlop(Feature.MELON)); + //put("pumpkin", simplePlop(Feature.PUMPKIN)); + //put("sugarcane", simplePlop(Feature.REED)); + //put("lilypad", simplePlop(Feature.WATERLILY)); put("dungeon", simplePlop(Feature.MONSTER_ROOM)); - put("iceberg", simplePlop(Feature.ICEBERG, new IcebergFeatureConfig(Blocks.PACKED_ICE.getDefaultState()))); - put("iceberg_blue", simplePlop(Feature.ICEBERG, new IcebergFeatureConfig(Blocks.BLUE_ICE.getDefaultState()))); - put("lake", simplePlop(Feature.LAKE, new LakeFeatureConfig(Blocks.WATER.getDefaultState()))); - put("lake_lava", simplePlop(Feature.LAKE, new LakeFeatureConfig(Blocks.LAVA.getDefaultState()))); + put("iceberg", simplePlop(Feature.ICEBERG, new BushFeatureConfig(Blocks.PACKED_ICE.getDefaultState()))); + put("iceberg_blue", simplePlop(Feature.ICEBERG, new BushFeatureConfig(Blocks.BLUE_ICE.getDefaultState()))); + put("lake", simplePlop(Feature.LAKE, new BushFeatureConfig(Blocks.WATER.getDefaultState()))); + put("lake_lava", simplePlop(Feature.LAKE, new BushFeatureConfig(Blocks.LAVA.getDefaultState()))); //put("end tower", simplePlop(Feature.END_CRYSTAL_TOWER)); // requires more complex setup put("end_island", simplePlop(Feature.END_ISLAND)); put("chorus", simplePlop(Feature.CHORUS_PLANT)); diff --git a/src/main/java/carpet/helpers/XPcombine.java b/src/main/java/carpet/helpers/XPcombine.java index 6a47dcd4..056932ae 100644 --- a/src/main/java/carpet/helpers/XPcombine.java +++ b/src/main/java/carpet/helpers/XPcombine.java @@ -47,7 +47,7 @@ public class XPcombine if (getTextureByXP(first.getExperienceAmount()) != size) { newOrb = new ExperienceOrbEntity(EntityType.EXPERIENCE_ORB, first.world); - newOrb.setPositionAndAngles(first.x, first.y, first.z, first.yaw, first.pitch); + newOrb.setPositionAndAngles(first.method_23317(), first.method_23318(), first.method_23321(), first.yaw, first.pitch); ((ExperienceOrbInterface)newOrb).setAmount(first.getExperienceAmount()); first.world.spawnEntity(newOrb); diff --git a/src/main/java/carpet/mixins/BiomeArray_getBiomeArrayMixin.java b/src/main/java/carpet/mixins/BiomeArray_getBiomeArrayMixin.java new file mode 100644 index 00000000..1d3bfa6a --- /dev/null +++ b/src/main/java/carpet/mixins/BiomeArray_getBiomeArrayMixin.java @@ -0,0 +1,35 @@ +package carpet.mixins; + +import carpet.fakes.BiomeArrayInterface; +import carpet.settings.CarpetSettings; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.BiomeArray; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(BiomeArray.class) +public class BiomeArray_getBiomeArrayMixin implements BiomeArrayInterface +{ + + @Shadow @Final private static int HORIZONTAL_SECTION_COUNT; + + @Shadow @Final public static int HORIZONTAL_BIT_MASK; + + @Shadow @Final public static int VERTICAL_BIT_MASK; + + @Shadow @Final private Biome[] data; + + @Override + public void setBiomeAtIndex(BlockPos pos, World world, Biome what) + { + int seaLevel = 0;// seems to be a fixed value for now. world.getSeaLevel(); + int int_4 = (pos.getX() >> 2) & HORIZONTAL_BIT_MASK; + int int_5 = MathHelper.clamp(seaLevel, 0, VERTICAL_BIT_MASK); + int int_6 = (pos.getZ() >> 2) & HORIZONTAL_BIT_MASK; + data[(int_5 << (HORIZONTAL_SECTION_COUNT + HORIZONTAL_SECTION_COUNT)) | (int_6 << HORIZONTAL_SECTION_COUNT) | int_4] = what; + } +} diff --git a/src/main/java/carpet/mixins/BlockEntityRenderDispatcher_movableTEMixin.java b/src/main/java/carpet/mixins/BlockEntityRenderDispatcher_movableTEMixin.java index 86929219..c83119cd 100644 --- a/src/main/java/carpet/mixins/BlockEntityRenderDispatcher_movableTEMixin.java +++ b/src/main/java/carpet/mixins/BlockEntityRenderDispatcher_movableTEMixin.java @@ -1,7 +1,7 @@ package carpet.mixins; import carpet.fakes.BlockEntityRenderDispatcherInterface; -import net.minecraft.block.BlockRenderLayer; +//import net.minecraft.block.BlockRenderLayer; import net.minecraft.block.entity.BlockEntity; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.Camera; diff --git a/src/main/java/carpet/mixins/FallingBlockEntityMixin.java b/src/main/java/carpet/mixins/FallingBlockEntityMixin.java index 223056ff..be641272 100644 --- a/src/main/java/carpet/mixins/FallingBlockEntityMixin.java +++ b/src/main/java/carpet/mixins/FallingBlockEntityMixin.java @@ -29,7 +29,7 @@ public abstract class FallingBlockEntityMixin extends Entity private void tickCheck(CallbackInfo ci) { if (LoggerRegistry.__fallingBlocks && logHelper != null) - logHelper.onTick(x, y, z, getVelocity()); + logHelper.onTick(method_23317(), method_23318(), method_23321(), getVelocity()); } @Override diff --git a/src/main/java/carpet/mixins/GravityStructureProcessorMixin.java b/src/main/java/carpet/mixins/GravityStructureProcessorMixin.java index bb6da017..876877aa 100644 --- a/src/main/java/carpet/mixins/GravityStructureProcessorMixin.java +++ b/src/main/java/carpet/mixins/GravityStructureProcessorMixin.java @@ -1,9 +1,9 @@ package carpet.mixins; import carpet.settings.CarpetSettings; -import net.minecraft.class_4538; import net.minecraft.structure.processor.GravityStructureProcessor; import net.minecraft.world.Heightmap; +import net.minecraft.world.WorldView; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -13,10 +13,10 @@ public class GravityStructureProcessorMixin { @Redirect(method = "process", at = @At( value = "INVOKE", - target = "Lnet/minecraft/class_4538;getTopY(Lnet/minecraft/world/Heightmap$Type;II)I" + target = "Lnet/minecraft/world/WorldView;getTopY(Lnet/minecraft/world/Heightmap$Type;II)I" )) - private int getTop(class_4538 class_4538, Heightmap.Type var1, int var2, int var3) + private int getTop(WorldView worldView, Heightmap.Type var1, int var2, int var3) { - return class_4538.getTopY(CarpetSettings.skipGenerationChecks?Heightmap.Type.WORLD_SURFACE:var1, var2, var3); + return worldView.getTopY(CarpetSettings.skipGenerationChecks?Heightmap.Type.WORLD_SURFACE:var1, var2, var3); } } diff --git a/src/main/java/carpet/mixins/GuardianEntityMixin.java b/src/main/java/carpet/mixins/GuardianEntityMixin.java index c72a5629..9150c173 100644 --- a/src/main/java/carpet/mixins/GuardianEntityMixin.java +++ b/src/main/java/carpet/mixins/GuardianEntityMixin.java @@ -27,7 +27,7 @@ public abstract class GuardianEntityMixin extends HostileEntity if (!this.world.isClient && !this.removed && CarpetSettings.renewableSponges) { ElderGuardianEntity elderGuardian = new ElderGuardianEntity(EntityType.ELDER_GUARDIAN ,this.world); - elderGuardian.setPositionAndAngles(this.x, this.y, this.z, this.yaw, this.pitch); + elderGuardian.setPositionAndAngles(this.method_23317(), this.method_23318(), this.method_23321(), this.yaw, this.pitch); elderGuardian.initialize(this.world ,this.world.getLocalDifficulty(new BlockPos(elderGuardian)), SpawnType.CONVERSION, (EntityData)null, (CompoundTag)null); elderGuardian.setAiDisabled(this.isAiDisabled()); diff --git a/src/main/java/carpet/mixins/PistonBlockEntityRenderer_movableTEMixin.java b/src/main/java/carpet/mixins/PistonBlockEntityRenderer_movableTEMixin.java index 989e5c0f..1242a5e1 100644 --- a/src/main/java/carpet/mixins/PistonBlockEntityRenderer_movableTEMixin.java +++ b/src/main/java/carpet/mixins/PistonBlockEntityRenderer_movableTEMixin.java @@ -4,11 +4,11 @@ import carpet.settings.CarpetSettings; import carpet.fakes.PistonBlockEntityInterface; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.PistonBlockEntity; -import net.minecraft.class_4587; -import net.minecraft.class_4597; +import net.minecraft.client.render.LayeredVertexConsumerStorage; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.PistonBlockEntityRenderer; +import net.minecraft.util.math.MatrixStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -24,8 +24,9 @@ public abstract class PistonBlockEntityRenderer_movableTEMixin extends BlockEnti } @Inject(method = "method_3576", at = @At(value = "INVOKE", - target = "Lnet/minecraft/client/render/block/entity/PistonBlockEntityRenderer;method_3575(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/world/World;Z)V", ordinal = 3)) - private void updateRenderBool(PistonBlockEntity pistonBlockEntity_1, double double_1, double double_2, double double_3, float float_1, class_4587 class_4587_1, class_4597 class_4597_1, int int_1, CallbackInfo ci) + target = "Lnet/minecraft/client/render/block/entity/PistonBlockEntityRenderer;method_3575(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/MatrixStack;Lnet/minecraft/client/render/LayeredVertexConsumerStorage;Lnet/minecraft/world/World;ZI)V", ordinal = 3)) + private void updateRenderBool(PistonBlockEntity pistonBlockEntity_1, double double_1, double double_2, double double_3, float float_1, MatrixStack matrixStack_1, LayeredVertexConsumerStorage layeredVertexConsumerStorage_1, int int_1, int int_2, CallbackInfo ci) + //private void updateRenderBool(PistonBlockEntity pistonBlockEntity_1, double double_1, double double_2, double double_3, float float_1, class_4587 class_4587_1, class_4597 class_4597_1, int int_1, CallbackInfo ci) { if (!((PistonBlockEntityInterface) pistonBlockEntity_1).isRenderModeSet()) ((PistonBlockEntityInterface) pistonBlockEntity_1).setRenderCarriedBlockEntity(CarpetSettings.movableBlockEntities && ((PistonBlockEntityInterface) pistonBlockEntity_1).getCarriedBlockEntity() != null); @@ -33,7 +34,7 @@ public abstract class PistonBlockEntityRenderer_movableTEMixin extends BlockEnti @Inject(method = "method_3576", at = @At("RETURN"), locals = LocalCapture.NO_CAPTURE) - private void endMethod3576(PistonBlockEntity pistonBlockEntity_1, double xOffset, double yOffset, double zOffset, float partialTicks, class_4587 transform, class_4597 bufferWrapper, int int_1, CallbackInfo ci) + private void endMethod3576(PistonBlockEntity pistonBlockEntity_1, double xOffset, double yOffset, double zOffset, float partialTicks, MatrixStack matrixStack_1, LayeredVertexConsumerStorage layeredVertexConsumerStorage_1, int int_1, int init_2, CallbackInfo ci) { if (((PistonBlockEntityInterface) pistonBlockEntity_1).getRenderCarriedBlockEntity()) { @@ -42,12 +43,12 @@ public abstract class PistonBlockEntityRenderer_movableTEMixin extends BlockEnti { carriedBlockEntity.setPos(pistonBlockEntity_1.getPos()); //((BlockEntityRenderDispatcherInterface) BlockEntityRenderDispatcher.INSTANCE).renderBlockEntityOffset(carriedBlockEntity, float_1, int_1, BlockRenderLayer.field_20799, bufferBuilder_1, pistonBlockEntity_1.getRenderOffsetX(float_1), pistonBlockEntity_1.getRenderOffsetY(float_1), pistonBlockEntity_1.getRenderOffsetZ(float_1)); - transform.method_22904( // translate + matrixStack_1.translate( pistonBlockEntity_1.getRenderOffsetX(partialTicks), pistonBlockEntity_1.getRenderOffsetY(partialTicks), pistonBlockEntity_1.getRenderOffsetZ(partialTicks) ); - BlockEntityRenderDispatcher.INSTANCE.render(carriedBlockEntity, partialTicks, transform, bufferWrapper, xOffset, yOffset, zOffset); + BlockEntityRenderDispatcher.INSTANCE.render(carriedBlockEntity, partialTicks, matrixStack_1, layeredVertexConsumerStorage_1, xOffset, yOffset, zOffset); } } diff --git a/src/main/java/carpet/mixins/PistonBlock_movableTEMixin.java b/src/main/java/carpet/mixins/PistonBlock_movableTEMixin.java index c058907e..64aea4c6 100644 --- a/src/main/java/carpet/mixins/PistonBlock_movableTEMixin.java +++ b/src/main/java/carpet/mixins/PistonBlock_movableTEMixin.java @@ -35,9 +35,9 @@ public abstract class PistonBlock_movableTEMixin extends FacingBlock if (CarpetSettings.stickyHoney && direction_1 != direction_2) { Block block = blockState_1.getBlock(); - if (block != Blocks.GOLD_BLOCK && block != Blocks.SLIME_BLOCK) return; + if (block != Blocks.HONEY_BLOCK && block != Blocks.SLIME_BLOCK) return; Block otherBlock = world_1.getBlockState(blockPos_1.method_10079(direction_2.getOpposite(),1)).getBlock(); - if (otherBlock != Blocks.GOLD_BLOCK && otherBlock != Blocks.SLIME_BLOCK) return; + if (otherBlock != Blocks.HONEY_BLOCK && otherBlock != Blocks.SLIME_BLOCK) return; cir.setReturnValue(block == otherBlock); } } diff --git a/src/main/java/carpet/mixins/PistonHandler_movableTEMixin.java b/src/main/java/carpet/mixins/PistonHandler_movableTEMixin.java index 27612aa9..141b4b58 100644 --- a/src/main/java/carpet/mixins/PistonHandler_movableTEMixin.java +++ b/src/main/java/carpet/mixins/PistonHandler_movableTEMixin.java @@ -41,10 +41,6 @@ public abstract class PistonHandler_movableTEMixin * @author 2No2Name */ private void stickToStickySide(BlockPos blockPos_1, Direction direction_1, CallbackInfoReturnable cir, BlockState blockState_1, Block block_1, int int_1, int int_2, int int_4, BlockPos blockPos_3, int int_5, int int_6){ - if (CarpetSettings.stickyHoney && this.world.getBlockState(blockPos_1).getBlock() == Blocks.GOLD_BLOCK && !method_11538(blockPos_1)) { - cir.setReturnValue(false); - return; - } if(!stickToStickySide(blockPos_3)){ cir.setReturnValue(false); cir.cancel(); @@ -58,11 +54,6 @@ public abstract class PistonHandler_movableTEMixin */ private void stickToStickySide(CallbackInfoReturnable cir, int int_1){ BlockPos pos = this.movedBlocks.get(int_1); - if (CarpetSettings.stickyHoney && world.getBlockState(pos).getBlock() == Blocks.GOLD_BLOCK && !method_11538(pos)) - { - cir.setReturnValue(false); - return; - } if(!stickToStickySide(pos)){ cir.setReturnValue(false); cir.cancel(); @@ -112,19 +103,15 @@ public abstract class PistonHandler_movableTEMixin private BlockState redirectGetBlockState_1_B(World world, BlockPos pos) { return blockState_1 = world.getBlockState(pos); } - @Redirect(method = "tryMove", - at = @At(value = "FIELD", target = "Lnet/minecraft/block/Blocks;SLIME_BLOCK:Lnet/minecraft/block/Block;")) + @Inject(method = "method_23367", at = @At(value = "HEAD"), cancellable = true) //Thanks to Earthcomputer for showing how to redirect FIELD access like this /** * Makes backwards stickyness work with sticky non-slimeblocks as well. * @author 2No2Nameb */ - private Block redirectSlimeBlock() { - if (CarpetSettings.stickyHoney && blockState_1.getBlock() == Blocks.GOLD_BLOCK) - return Blocks.GOLD_BLOCK; + private void redirectSlimeBlock(Block block_1, CallbackInfoReturnable cir) { if (CarpetSettings.movableBlockEntities && isStickyOnSide(blockState_1, this.direction.getOpposite())) - return blockState_1.getBlock(); //this makes the comparison in the while condition "while(blockState_1.getBlock() == redirectSlimeBlock())" evaluate to true, so the block is treated as sticky - return Blocks.SLIME_BLOCK; //vanilla behavior + cir.setReturnValue(true); } diff --git a/src/main/java/carpet/mixins/ProjectileEntityMixin.java b/src/main/java/carpet/mixins/ProjectileEntityMixin.java index c96ad156..86ec8c46 100644 --- a/src/main/java/carpet/mixins/ProjectileEntityMixin.java +++ b/src/main/java/carpet/mixins/ProjectileEntityMixin.java @@ -29,7 +29,7 @@ public abstract class ProjectileEntityMixin extends Entity private void tickCheck(CallbackInfo ci) { if (LoggerRegistry.__projectiles && logHelper != null) - logHelper.onTick(x, y, z, getVelocity()); + logHelper.onTick(method_23317(), method_23318(), method_23321(), getVelocity()); } @Inject(method = "onHit(Lnet/minecraft/util/hit/HitResult;)V", at = @At("RETURN")) diff --git a/src/main/java/carpet/mixins/ServerPlayNetworkHandler_tickMixin.java b/src/main/java/carpet/mixins/ServerPlayNetworkHandler_tickMixin.java index 480f53fa..6c91ad5b 100644 --- a/src/main/java/carpet/mixins/ServerPlayNetworkHandler_tickMixin.java +++ b/src/main/java/carpet/mixins/ServerPlayNetworkHandler_tickMixin.java @@ -20,6 +20,8 @@ public class ServerPlayNetworkHandler_tickMixin @Shadow private double lastTickY; + @Shadow private double lastTickZ; + @Inject(method = "onPlayerInput", at = @At(value = "RETURN")) private void checkMoves(PlayerInputC2SPacket p, CallbackInfo ci) { @@ -36,9 +38,9 @@ public class ServerPlayNetworkHandler_tickMixin )) private void checkMove(PlayerMoveC2SPacket p, CallbackInfo ci) { - if (Math.abs(p.getX(player.x) - lastTickX) > 0.0001D - || Math.abs(p.getY(player.y) - lastTickY) > 0.0001D - || Math.abs(p.getY(player.y) - lastTickY) > 0.0001D) + if (Math.abs(p.getX(player.method_23317()) - lastTickX) > 0.0001D + || Math.abs(p.getY(player.method_23318()) - lastTickY) > 0.0001D + || Math.abs(p.getY(player.method_23321()) - lastTickZ) > 0.0001D) { TickSpeed.reset_player_active_timeout(); } diff --git a/src/main/java/carpet/mixins/ServerPlayerInteractionManager_cactusMixin.java b/src/main/java/carpet/mixins/ServerPlayerInteractionManager_cactusMixin.java index 3a405cf2..cf322360 100644 --- a/src/main/java/carpet/mixins/ServerPlayerInteractionManager_cactusMixin.java +++ b/src/main/java/carpet/mixins/ServerPlayerInteractionManager_cactusMixin.java @@ -17,7 +17,7 @@ public class ServerPlayerInteractionManager_cactusMixin @Redirect(method = "interactBlock", at = @At( value = "INVOKE", - target = "Lnet/minecraft/block/BlockState;activate(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/Hand;Lnet/minecraft/util/hit/BlockHitResult;)Z" + target = "Lnet/minecraft/block/BlockState;onUse(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/Hand;Lnet/minecraft/util/hit/BlockHitResult;)Z" )) private boolean activateWithOptionalCactus(BlockState blockState, World world_1, PlayerEntity playerEntity_1, Hand hand_1, BlockHitResult blockHitResult_1) { @@ -25,6 +25,6 @@ public class ServerPlayerInteractionManager_cactusMixin if (flipped) return true; - return blockState.activate(world_1, playerEntity_1, hand_1, blockHitResult_1); + return blockState.onUse(world_1, playerEntity_1, hand_1, blockHitResult_1); } } diff --git a/src/main/java/carpet/mixins/StructureFeatureMixin.java b/src/main/java/carpet/mixins/StructureFeatureMixin.java index 6aafd058..7f17bc76 100644 --- a/src/main/java/carpet/mixins/StructureFeatureMixin.java +++ b/src/main/java/carpet/mixins/StructureFeatureMixin.java @@ -9,6 +9,7 @@ import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.BlockBox; import net.minecraft.world.IWorld; import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.Biomes; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.ChunkStatus; import net.minecraft.world.gen.chunk.ChunkGenerator; @@ -101,6 +102,10 @@ public abstract class StructureFeatureMixin implements StructureFeatureInterface private StructureStart forceStructureStart(IWorld worldIn, ChunkGenerator generator, Random rand, long packedChunkPos) { + if (2+1==3) + { + throw new RuntimeException("reimplement it"); + } ChunkPos chunkpos = new ChunkPos(packedChunkPos); StructureStart structurestart; @@ -115,7 +120,7 @@ public abstract class StructureFeatureMixin implements StructureFeatureInterface return structurestart; } } - Biome biome_1 = generator.getBiomeSource().getBiome((chunkpos.getStartX() + 9) >> 2, 0, (chunkpos.getStartZ() + 9) >> 2 ); + Biome biome_1 = Biomes.PLAINS;// generator.getBiomeSource().getBiome((chunkpos.getStartX() + 9) >> 2, 0, (chunkpos.getStartZ() + 9) >> 2 ); StructureStart structurestart1 = getStructureStartFactory().create((StructureFeature)(Object)this, chunkpos.x, chunkpos.z, BlockBox.empty(),0,generator.getSeed()); structurestart1.initialize(generator, ((ServerWorld)worldIn).getStructureManager() , chunkpos.x, chunkpos.z, biome_1); structurestart = structurestart1.hasChildren() ? structurestart1 : StructureStart.DEFAULT; diff --git a/src/main/java/carpet/mixins/StructurePieceMixin.java b/src/main/java/carpet/mixins/StructurePieceMixin.java index b9a22f49..d988dbcc 100644 --- a/src/main/java/carpet/mixins/StructurePieceMixin.java +++ b/src/main/java/carpet/mixins/StructurePieceMixin.java @@ -1,9 +1,9 @@ package carpet.mixins; import carpet.settings.CarpetSettings; -import net.minecraft.class_4538; import net.minecraft.structure.StructurePiece; import net.minecraft.world.Heightmap; +import net.minecraft.world.WorldView; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -13,10 +13,10 @@ public class StructurePieceMixin { @Redirect(method = "isUnderSeaLevel", at = @At( value = "INVOKE", - target = "Lnet/minecraft/class_4538;getTopY(Lnet/minecraft/world/Heightmap$Type;II)I" + target = "Lnet/minecraft/world/WorldView;getTopY(Lnet/minecraft/world/Heightmap$Type;II)I" )) - private int getTop(class_4538 class_4538, Heightmap.Type var1, int var2, int var3) + private int getTop(WorldView worldView, Heightmap.Type var1, int var2, int var3) { - return class_4538.getTopY(CarpetSettings.skipGenerationChecks?Heightmap.Type.OCEAN_FLOOR:Heightmap.Type.OCEAN_FLOOR_WG, var2, var3); + return worldView.getTopY(CarpetSettings.skipGenerationChecks?Heightmap.Type.OCEAN_FLOOR:Heightmap.Type.OCEAN_FLOOR_WG, var2, var3); } } diff --git a/src/main/java/carpet/mixins/ThrownEntityMixin.java b/src/main/java/carpet/mixins/ThrownEntityMixin.java index 6771fe44..bb2be084 100644 --- a/src/main/java/carpet/mixins/ThrownEntityMixin.java +++ b/src/main/java/carpet/mixins/ThrownEntityMixin.java @@ -29,7 +29,7 @@ public abstract class ThrownEntityMixin extends Entity private void tickCheck(CallbackInfo ci) { if (LoggerRegistry.__projectiles && logHelper != null) - logHelper.onTick(x, y, z, getVelocity()); + logHelper.onTick(method_23317(), method_23318(), method_23321(), getVelocity()); } @Override diff --git a/src/main/java/carpet/mixins/TntEntityMixin.java b/src/main/java/carpet/mixins/TntEntityMixin.java index fb120b2b..4b9e3cee 100644 --- a/src/main/java/carpet/mixins/TntEntityMixin.java +++ b/src/main/java/carpet/mixins/TntEntityMixin.java @@ -38,7 +38,7 @@ public abstract class TntEntityMixin extends Entity { if (LoggerRegistry.__tnt && logHelper != null && !logHelper.initialized) { - logHelper.onPrimed(x, y, z, getVelocity()); + logHelper.onPrimed(method_23317(), method_23318(), method_23321(), getVelocity()); } } @@ -56,6 +56,6 @@ public abstract class TntEntityMixin extends Entity private void onExplode(CallbackInfo ci) { if (LoggerRegistry.__tnt && logHelper != null) - logHelper.onExploded(x, y, z); + logHelper.onExploded(method_23317(), method_23318(), method_23321()); } } \ No newline at end of file diff --git a/src/main/java/carpet/mixins/VillagerEntity_aiMixin.java b/src/main/java/carpet/mixins/VillagerEntity_aiMixin.java index 3c110193..498ea03f 100644 --- a/src/main/java/carpet/mixins/VillagerEntity_aiMixin.java +++ b/src/main/java/carpet/mixins/VillagerEntity_aiMixin.java @@ -123,7 +123,7 @@ public abstract class VillagerEntity_aiMixin extends AbstractTraderEntity if (bedPos == null || bedPos.getDimension() != dimension) { sayNo(); - ((ServerWorld) getEntityWorld()).spawnParticles(ParticleTypes.BARRIER, x, y + getStandingEyeHeight() + 1, z, 1, 0.1, 0.1, 0.1, 0.0); + ((ServerWorld) getEntityWorld()).spawnParticles(ParticleTypes.BARRIER, method_23317(), method_23318() + getStandingEyeHeight() + 1, method_23321(), 1, 0.1, 0.1, 0.1, 0.0); } else { @@ -181,7 +181,7 @@ public abstract class VillagerEntity_aiMixin extends AbstractTraderEntity { if (MobAI.isTracking(this, MobAI.TrackingType.IRON_GOLEM_SPAWNING)) { - ((ServerWorld) getEntityWorld()).spawnParticles(ParticleTypes.BARRIER, x, y+3, z, 1, 0.1, 0.1, 0.1, 0.0); + ((ServerWorld) getEntityWorld()).spawnParticles(ParticleTypes.BARRIER, method_23317(), method_23318()+3, method_23321(), 1, 0.1, 0.1, 0.1, 0.0); } } diff --git a/src/main/java/carpet/mixins/class_4548_getBiomeArrayMixin.java b/src/main/java/carpet/mixins/class_4548_getBiomeArrayMixin.java deleted file mode 100644 index 55edec62..00000000 --- a/src/main/java/carpet/mixins/class_4548_getBiomeArrayMixin.java +++ /dev/null @@ -1,34 +0,0 @@ -package carpet.mixins; - -import carpet.fakes.class_4548Interface; -import carpet.settings.CarpetSettings; -import net.minecraft.class_4548; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -import static net.minecraft.class_4548.field_20650; -import static net.minecraft.class_4548.field_20651; - -@Mixin(class_4548.class) -public class class_4548_getBiomeArrayMixin implements class_4548Interface -{ - - @Shadow @Final private Biome[] field_20654; - - @Shadow @Final private static int field_20652; - - @Override - public void setBiomeAtIndex(BlockPos pos, World world, Biome what) - { - int seaLevel = 0;// seems to be a fixed value for now. world.getSeaLevel(); - int int_4 = (pos.getX() >> 2) & field_20650; - int int_5 = MathHelper.clamp(seaLevel, 0, field_20651); - int int_6 = (pos.getZ() >> 2) & field_20650; - field_20654[(int_5 << (field_20652 + field_20652)) | (int_6 << field_20652) | int_4] = what; - } -} diff --git a/src/main/java/carpet/patches/EntityPlayerMPFake.java b/src/main/java/carpet/patches/EntityPlayerMPFake.java index 1ad6cf0d..bb7b98db 100644 --- a/src/main/java/carpet/patches/EntityPlayerMPFake.java +++ b/src/main/java/carpet/patches/EntityPlayerMPFake.java @@ -75,7 +75,7 @@ public class EntityPlayerMPFake extends ServerPlayerEntity server.getPlayerManager().onPlayerConnect(new NetworkManagerFake(NetworkSide.SERVERBOUND), playerShadow); playerShadow.setHealth(player.getHealth()); - playerShadow.networkHandler.requestTeleport(player.x, player.y, player.z, player.yaw, player.pitch); + playerShadow.networkHandler.requestTeleport(player.method_23317(), player.method_23318(), player.method_23321(), player.yaw, player.pitch); interactionManagerIn.setGameMode(player.interactionManager.getGameMode()); ((ServerPlayerEntityInterface) playerShadow).getActionPack().copyFrom(((ServerPlayerEntityInterface) player).getActionPack()); playerShadow.stepHeight = 0.6F; diff --git a/src/main/java/carpet/script/CarpetExpression.java b/src/main/java/carpet/script/CarpetExpression.java index 42eb003c..b9a787ec 100644 --- a/src/main/java/carpet/script/CarpetExpression.java +++ b/src/main/java/carpet/script/CarpetExpression.java @@ -2,7 +2,7 @@ package carpet.script; import carpet.CarpetServer; import carpet.fakes.MinecraftServerInterface; -import carpet.fakes.class_4548Interface; +import carpet.fakes.BiomeArrayInterface; import carpet.helpers.FeatureGenerator; import carpet.script.Fluff.TriFunction; import carpet.script.exception.CarpetExpressionException; @@ -676,7 +676,7 @@ public class CarpetExpression Entity e = ((EntityValue) arg).getEntity(); if (e == null) throw new InternalExpressionException("Null entity"); - Value retval = ListValue.of(new NumericValue(e.x), new NumericValue(e.y), new NumericValue(e.z)); + Value retval = ListValue.of(new NumericValue(e.method_23317()), new NumericValue(e.method_23318()), new NumericValue(e.method_23321())); return (c_, t_) -> retval; } else @@ -785,7 +785,7 @@ public class CarpetExpression booleanStateTest(c, "block_tick", lv, (s, p) -> { ServerWorld w = ((CarpetContext)c).s.getWorld(); - s.onRandomTick(w, p, w.random); + s.randomTick(w, p, w.random); return true; })); @@ -794,7 +794,7 @@ public class CarpetExpression { ServerWorld w = ((CarpetContext)c).s.getWorld(); if (s.hasRandomTicks() || s.getFluidState().hasRandomTicks()) - s.onRandomTick(w, p, w.random); + s.randomTick(w, p, w.random); return true; })); @@ -1024,7 +1024,7 @@ public class CarpetExpression ServerWorld world = cc.s.getWorld(); BlockPos pos = locator.block.getPos(); Chunk chunk = world.getChunk(pos); - ((class_4548Interface)chunk.getBiomeArray()).setBiomeAtIndex(pos, world, biome); + ((BiomeArrayInterface)chunk.getBiomeArray()).setBiomeAtIndex(pos, world, biome); this.forceChunkUpdate(pos, world); return LazyValue.NULL; }); @@ -1332,8 +1332,8 @@ public class CarpetExpression { LivingEntity villager = (LivingEntity)owner; // stolen from LookTargetUtil.give((VillagerEntity)owner, droppedStack, (LivingEntity) owner); - double double_1 = villager.y - 0.30000001192092896D + (double)villager.getStandingEyeHeight(); - item = new ItemEntity(villager.world, villager.x, double_1, villager.z, droppedStack); + double double_1 = villager.method_23318() - 0.30000001192092896D + (double)villager.getStandingEyeHeight(); + item = new ItemEntity(villager.world, villager.method_23317(), double_1, villager.method_23321(), droppedStack); Vec3d vec3d_1 = villager.getRotationVec(1.0F).normalize().multiply(0.3);// new Vec3d(0, 0.3, 0); item.setVelocity(vec3d_1); item.setToDefaultPickupDelay(); @@ -1808,7 +1808,7 @@ public class CarpetExpression { throw new InternalExpressionException("Unknown entity selection criterion: "+who); } - List entityList = ((CarpetContext)c).s.getWorld().getEntities(pair.getKey(), area, pair.getValue()); + List entityList = ((CarpetContext)c).s.getWorld().getEntities((EntityType) pair.getKey(), area, pair.getValue()); Value retval = ListValue.wrap(entityList.stream().map(EntityValue::new).collect(Collectors.toList())); return (_c, _t ) -> retval; }); @@ -2811,7 +2811,7 @@ public class CarpetExpression return (cc, tt) -> retval; }); - this.expr.addLazyFunction("plop", 4, (c, t, lv) ->{ + /*this.expr.addLazyFunction("plop", 4, (c, t, lv) ->{ BlockValue.LocatorResult locator = BlockValue.fromParams((CarpetContext)c, lv, 0); if (lv.size() <= locator.offset) throw new InternalExpressionException("plop needs extra argument indicating what to plop"); @@ -2822,7 +2822,7 @@ public class CarpetExpression if (what.equalsIgnoreCase("boulder")) // there might be more of those this.forceChunkUpdate(locator.block.getPos(), ((CarpetContext)c).s.getWorld()); return (c_, t_) -> new NumericValue(res); - }); + });*/ this.expr.addLazyFunction("schedule", -1, (c, t, lv) -> { if (lv.size()<2) diff --git a/src/main/java/carpet/script/value/EntityValue.java b/src/main/java/carpet/script/value/EntityValue.java index 5338278b..f1e2487e 100644 --- a/src/main/java/carpet/script/value/EntityValue.java +++ b/src/main/java/carpet/script/value/EntityValue.java @@ -180,11 +180,11 @@ public class EntityValue extends Value put("removed", (entity, arg) -> new NumericValue(entity.removed)); put("uuid",(e, a) -> new StringValue(e.getUuidAsString())); put("id",(e, a) -> new NumericValue(e.getEntityId())); - put("pos", (e, a) -> ListValue.of(new NumericValue(e.x), new NumericValue(e.y), new NumericValue(e.z))); - put("location", (e, a) -> ListValue.of(new NumericValue(e.x), new NumericValue(e.y), new NumericValue(e.z), new NumericValue(e.yaw), new NumericValue(e.pitch))); - put("x", (e, a) -> new NumericValue(e.x)); - put("y", (e, a) -> new NumericValue(e.y)); - put("z", (e, a) -> new NumericValue(e.z)); + put("pos", (e, a) -> ListValue.of(new NumericValue(e.method_23317()), new NumericValue(e.method_23318()), new NumericValue(e.method_23321()))); + put("location", (e, a) -> ListValue.of(new NumericValue(e.method_23317()), new NumericValue(e.method_23318()), new NumericValue(e.method_23321()), new NumericValue(e.yaw), new NumericValue(e.pitch))); + put("x", (e, a) -> new NumericValue(e.method_23317())); + put("y", (e, a) -> new NumericValue(e.method_23317())); + put("z", (e, a) -> new NumericValue(e.method_23317())); put("motion", (e, a) -> { Vec3d velocity = e.getVelocity(); @@ -422,7 +422,7 @@ public class EntityValue extends Value private static void updatePosition(Entity e) { if (e instanceof ServerPlayerEntity) - ((ServerPlayerEntity)e).networkHandler.requestTeleport(e.x, e.y, e.z, e.yaw, e.pitch); + ((ServerPlayerEntity)e).networkHandler.requestTeleport(e.method_23317(), e.method_23318(), e.method_23321(), e.yaw, e.pitch); else ((ServerWorld)e.getEntityWorld()).method_14178().sendToNearbyPlayers(e,new EntityPositionS2CPacket(e)); } @@ -446,14 +446,16 @@ public class EntityValue extends Value throw new InternalExpressionException("expected a list of 5 parameters as second argument"); } List coords = ((ListValue) v).getItems(); - e.x = NumericValue.asNumber(coords.get(0)).getDouble(); - e.y = NumericValue.asNumber(coords.get(1)).getDouble(); - e.z = NumericValue.asNumber(coords.get(2)).getDouble(); + e.method_23327( + NumericValue.asNumber(coords.get(0)).getDouble(), + NumericValue.asNumber(coords.get(1)).getDouble(), + NumericValue.asNumber(coords.get(2)).getDouble() + ); e.pitch = (float) NumericValue.asNumber(coords.get(4)).getDouble(); e.prevPitch = e.pitch; e.yaw = (float) NumericValue.asNumber(coords.get(3)).getDouble(); e.prevYaw = e.yaw; - e.setPosition(e.x, e.y, e.z); + e.setPosition(e.method_23317(), e.method_23318(), e.method_23321()); updatePosition(e); }); put("pos", (e, v) -> @@ -463,28 +465,30 @@ public class EntityValue extends Value throw new InternalExpressionException("expected a list of 3 parameters as second argument"); } List coords = ((ListValue) v).getItems(); - e.x = NumericValue.asNumber(coords.get(0)).getDouble(); - e.y = NumericValue.asNumber(coords.get(1)).getDouble(); - e.z = NumericValue.asNumber(coords.get(2)).getDouble(); - e.setPosition(e.x, e.y, e.z); + e.method_23327( + NumericValue.asNumber(coords.get(0)).getDouble(), + NumericValue.asNumber(coords.get(1)).getDouble(), + NumericValue.asNumber(coords.get(2)).getDouble() + ); + e.setPosition(e.method_23317(), e.method_23318(), e.method_23321()); updatePosition(e); }); put("x", (e, v) -> { - e.x = NumericValue.asNumber(v).getDouble(); - e.setPosition(e.x, e.y, e.z); + //e.x = NumericValue.asNumber(v).getDouble(); + e.setPosition(NumericValue.asNumber(v).getDouble(), e.method_23318(), e.method_23321()); updatePosition(e); }); put("y", (e, v) -> { - e.y = NumericValue.asNumber(v).getDouble(); - e.setPosition(e.x, e.y, e.z); + //e.y = NumericValue.asNumber(v).getDouble(); + e.setPosition(e.method_23317(), NumericValue.asNumber(v).getDouble(), e.method_23321()); updatePosition(e); }); put("z", (e, v) -> { - e.z = NumericValue.asNumber(v).getDouble(); - e.setPosition(e.x, e.y, e.z); + //e.z = NumericValue.asNumber(v).getDouble(); + e.setPosition(e.method_23317(), e.method_23318(), NumericValue.asNumber(v).getDouble()); updatePosition(e); }); put("pitch", (e, v) -> @@ -510,10 +514,7 @@ public class EntityValue extends Value throw new InternalExpressionException("expected a list of 3 parameters as second argument"); } List coords = ((ListValue) v).getItems(); - e.x += NumericValue.asNumber(coords.get(0)).getDouble(); - e.y += NumericValue.asNumber(coords.get(1)).getDouble(); - e.z += NumericValue.asNumber(coords.get(2)).getDouble(); - e.setPosition(e.x, e.y, e.z); + e.setPosition(NumericValue.asNumber(coords.get(0)).getDouble(),NumericValue.asNumber(coords.get(1)).getDouble(), NumericValue.asNumber(coords.get(2)).getDouble()); updatePosition(e); }); diff --git a/src/main/java/carpet/utils/EntityInfo.java b/src/main/java/carpet/utils/EntityInfo.java index b209df88..6c0b48fc 100644 --- a/src/main/java/carpet/utils/EntityInfo.java +++ b/src/main/java/carpet/utils/EntityInfo.java @@ -65,7 +65,7 @@ public class EntityInfo { return "None"; } - return String.format("%s at [%.1f, %.1f, %.1f]",e.getDisplayName().getString(), e.x, e.y, e.y); + return String.format("%s at [%.1f, %.1f, %.1f]",e.getDisplayName().getString(), e.method_23317(), e.method_23318(), e.method_23321()); } private static double get_speed(double internal) diff --git a/src/main/java/carpet/utils/PerimeterDiagnostics.java b/src/main/java/carpet/utils/PerimeterDiagnostics.java index fb15adf3..07fe0f02 100644 --- a/src/main/java/carpet/utils/PerimeterDiagnostics.java +++ b/src/main/java/carpet/utils/PerimeterDiagnostics.java @@ -7,7 +7,7 @@ import net.minecraft.block.BlockState; import net.minecraft.entity.EntityCategory; import net.minecraft.entity.SpawnRestriction; import net.minecraft.entity.SpawnType; -import net.minecraft.entity.WaterCreatureEntity; +import net.minecraft.entity.mob.WaterCreatureEntity; import net.minecraft.entity.mob.AmbientEntity; import net.minecraft.entity.mob.MobEntity; import net.minecraft.entity.mob.Monster;