diff --git a/gradle.properties b/gradle.properties index 04deea3c..ff55f673 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=false # Fabric Properties # check https://fabricmc.net/develop/ - minecraft_version=26.2-snapshot-1 + minecraft_version=26.2-snapshot-3 loader_version=0.18.6 loom_version=1.15-SNAPSHOT diff --git a/src/main/java/carpet/helpers/HopperCounter.java b/src/main/java/carpet/helpers/HopperCounter.java index 3e7cb74e..bfede835 100644 --- a/src/main/java/carpet/helpers/HopperCounter.java +++ b/src/main/java/carpet/helpers/HopperCounter.java @@ -352,7 +352,7 @@ public class HopperCounter entry(Items.PHANTOM_MEMBRANE, Blocks.BONE_BLOCK), entry(Items.EGG, Blocks.BONE_BLOCK), //entry(Items.,Blocks.), - entry(Items.COPPER_INGOT, Blocks.COPPER_BLOCK.unaffected()), + entry(Items.COPPER_INGOT, Blocks.COPPER_BLOCK.weathering().unaffected()), entry(Items.AMETHYST_SHARD, Blocks.AMETHYST_BLOCK)); /** diff --git a/src/main/java/carpet/mixins/Guardian_renewableSpongesMixin.java b/src/main/java/carpet/mixins/Guardian_renewableSpongesMixin.java index 0605d667..1aac7a94 100644 --- a/src/main/java/carpet/mixins/Guardian_renewableSpongesMixin.java +++ b/src/main/java/carpet/mixins/Guardian_renewableSpongesMixin.java @@ -4,6 +4,7 @@ import carpet.CarpetSettings; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.EntitySpawnReason; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.LightningBolt; import net.minecraft.world.entity.monster.ElderGuardian; import net.minecraft.world.entity.monster.Guardian; @@ -24,7 +25,7 @@ public abstract class Guardian_renewableSpongesMixin extends Monster { // isRemoved() if (!this.level().isClientSide() && !this.isRemoved() && CarpetSettings.renewableSponges && !((Object)this instanceof ElderGuardian)) { - ElderGuardian elderGuardian = new ElderGuardian(EntityType.ELDER_GUARDIAN ,this.level()); + ElderGuardian elderGuardian = new ElderGuardian(EntityTypes.ELDER_GUARDIAN ,this.level()); elderGuardian.snapTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); elderGuardian.finalizeSpawn(serverWorld ,serverWorld.getCurrentDifficultyAt(elderGuardian.blockPosition()), EntitySpawnReason.CONVERSION, null); elderGuardian.setNoAi(this.isNoAi()); diff --git a/src/main/java/carpet/mixins/LevelRenderer_creativeNoClipMixin.java b/src/main/java/carpet/mixins/LevelRenderer_creativeNoClipMixin.java index 30831a8b..bfd0355d 100644 --- a/src/main/java/carpet/mixins/LevelRenderer_creativeNoClipMixin.java +++ b/src/main/java/carpet/mixins/LevelRenderer_creativeNoClipMixin.java @@ -1,16 +1,16 @@ package carpet.mixins; import carpet.CarpetSettings; +import net.minecraft.client.Camera; import net.minecraft.client.player.LocalPlayer; -import net.minecraft.client.renderer.LevelRenderer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; -@Mixin(LevelRenderer.class) +@Mixin(Camera.class) public class LevelRenderer_creativeNoClipMixin { - @Redirect(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;isSpectator()Z")) + @Redirect(method = "extractRenderState", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;isSpectator()Z")) private boolean canSeeWorld(LocalPlayer clientPlayerEntity) { return clientPlayerEntity.isSpectator() || (CarpetSettings.creativeNoClip && clientPlayerEntity.isCreative()); diff --git a/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java b/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java index a1593b21..b7ea197e 100644 --- a/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java +++ b/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java @@ -9,9 +9,11 @@ import com.mojang.blaze3d.framegraph.FramePass; import com.mojang.blaze3d.resource.GraphicsResourceAllocator; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.LevelTargetBundle; import net.minecraft.client.renderer.RenderBuffers; +import net.minecraft.client.renderer.ShaderManager; import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher; import net.minecraft.client.renderer.chunk.ChunkSectionsToRender; import net.minecraft.client.renderer.entity.EntityRenderDispatcher; @@ -19,6 +21,9 @@ import net.minecraft.client.renderer.feature.FeatureRenderDispatcher; import net.minecraft.client.renderer.state.GameRenderState; import net.minecraft.client.renderer.state.level.CameraRenderState; import net.minecraft.client.renderer.state.level.LevelRenderState; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.client.resources.model.sprite.AtlasManager; import org.joml.Matrix4fc; import org.joml.Vector4f; import org.spongepowered.asm.mixin.Final; @@ -40,17 +45,17 @@ public class LevelRenderer_scarpetRenderMixin @Shadow @Final private LevelRenderState levelRenderState; @Inject(method = "", at = @At("RETURN")) - private void addRenderers(Minecraft minecraft, EntityRenderDispatcher entityRenderDispatcher, BlockEntityRenderDispatcher blockEntityRenderDispatcher, RenderBuffers renderBuffers, GameRenderState gameRenderState, FeatureRenderDispatcher featureRenderDispatcher, CallbackInfo ci) + private void addRenderers(EntityRenderDispatcher entityRenderDispatcher, BlockEntityRenderDispatcher blockEntityRenderDispatcher, ModelManager modelManager, TextureManager textureManager, AtlasManager atlasManager, ShaderManager shaderManager, GameRenderer gameRenderer, int width, int height, CallbackInfo ci) { - CarpetClient.shapes = new ShapesRenderer(minecraft); + CarpetClient.shapes = new ShapesRenderer(Minecraft.getInstance()); } - @Inject(method = "renderLevel", at = @At( + @Inject(method = "render", at = @At( value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;addLateDebugPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/renderer/state/level/CameraRenderState;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Matrix4fc;)V", shift = At.Shift.AFTER )) - private void renderScarpetThinsLate(GraphicsResourceAllocator resourceAllocator, DeltaTracker deltaTracker, boolean renderOutline, CameraRenderState cameraState, Matrix4fc modelViewMatrix, GpuBufferSlice terrainFog, Vector4f fogColor, boolean shouldRenderSky, ChunkSectionsToRender chunkSectionsToRender, CallbackInfo ci, @Local FrameGraphBuilder frameGraphBuilder) + private void renderScarpetThinsLate(GraphicsResourceAllocator resourceAllocator, DeltaTracker deltaTracker, boolean renderOutline, CameraRenderState cameraState, Matrix4fc modelViewMatrix, GpuBufferSlice terrainFog, Vector4f fogColor, boolean shouldRenderSky, CallbackInfo ci, @Local FrameGraphBuilder frameGraphBuilder) { // in normal circumstances we want to render shapes at the very end so it appears correctly behind stuff. // we might actually not need to play with render hooks here. @@ -62,7 +67,7 @@ public class LevelRenderer_scarpetRenderMixin targets.main = pass.readsAndWrites(targets.main); pass.executes(() -> CarpetClient.shapes.render(renderBuffers, levelRenderState, modelViewMatrix, deltaPartialTick)); featureRenderDispatcher.renderAllFeatures(); - renderBuffers.bufferSource().endLastBatch(); + renderBuffers.bufferSource().uploadAndDraw(); } } } diff --git a/src/main/java/carpet/mixins/Monster_templesMixin.java b/src/main/java/carpet/mixins/Monster_templesMixin.java index 2108205f..42c3c065 100644 --- a/src/main/java/carpet/mixins/Monster_templesMixin.java +++ b/src/main/java/carpet/mixins/Monster_templesMixin.java @@ -7,6 +7,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.EntitySpawnReason; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.monster.Monster; import net.minecraft.world.level.ServerLevelAccessor; @@ -23,6 +24,6 @@ public class Monster_templesMixin EntityType entityType, ServerLevelAccessor serverLevelAccessor, EntitySpawnReason entitySpawnReason, BlockPos blockPos, RandomSource randomSource) { return serverWorldAccess.canSeeSky(pos) || - (CarpetSettings.huskSpawningInTemples && entityType == EntityType.HUSK && SpawnOverrides.isStructureAtPosition((ServerLevel)serverWorldAccess, BuiltinStructures.DESERT_PYRAMID, pos)); + (CarpetSettings.huskSpawningInTemples && entityType == EntityTypes.HUSK && SpawnOverrides.isStructureAtPosition((ServerLevel)serverWorldAccess, BuiltinStructures.DESERT_PYRAMID, pos)); } } diff --git a/src/main/java/carpet/mixins/PiglinBrute_getPlacementTypeMixin.java b/src/main/java/carpet/mixins/PiglinBrute_getPlacementTypeMixin.java index 3b5b9089..e7874790 100644 --- a/src/main/java/carpet/mixins/PiglinBrute_getPlacementTypeMixin.java +++ b/src/main/java/carpet/mixins/PiglinBrute_getPlacementTypeMixin.java @@ -2,6 +2,7 @@ package carpet.mixins; import carpet.CarpetSettings; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.SpawnPlacementType; import net.minecraft.world.entity.SpawnPlacementTypes; import net.minecraft.world.entity.SpawnPlacements; @@ -14,7 +15,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; public class PiglinBrute_getPlacementTypeMixin { @Inject(method = "getPlacementType", at = @At("HEAD"), cancellable = true) private static void getPlacementType(final EntityType entityType, final CallbackInfoReturnable cir) { - if (CarpetSettings.piglinsSpawningInBastions && entityType == EntityType.PIGLIN_BRUTE) { + if (CarpetSettings.piglinsSpawningInBastions && entityType == EntityTypes.PIGLIN_BRUTE) { cir.setReturnValue(SpawnPlacementTypes.ON_GROUND); } } diff --git a/src/main/java/carpet/mixins/PistonHeadRenderer_movableBEMixin.java b/src/main/java/carpet/mixins/PistonHeadRenderer_movableBEMixin.java index 1cde11b8..f9b52e65 100644 --- a/src/main/java/carpet/mixins/PistonHeadRenderer_movableBEMixin.java +++ b/src/main/java/carpet/mixins/PistonHeadRenderer_movableBEMixin.java @@ -43,7 +43,7 @@ public abstract class PistonHeadRenderer_movableBEMixin implements BlockEntityRe float progress = pistonMovingBlockEntity.getProgress(f); //System.out.println("progress: " + progress); //if (progress != 0) { - BlockEntityRenderState res = dispatcher.tryExtractRenderState(be, f, crumblingOverlay); + BlockEntityRenderState res = dispatcher.tryExtractRenderState(be, f, crumblingOverlay, true); if (res != null) { ((PistonHeadRenderStateInterface) pistonHeadRenderState).setMovedBERenderState(res); } diff --git a/src/main/java/carpet/mixins/ServerPlayerGameMode_scarpetEventsMixin.java b/src/main/java/carpet/mixins/ServerPlayerGameMode_scarpetEventsMixin.java index 25400f96..e2d79d70 100644 --- a/src/main/java/carpet/mixins/ServerPlayerGameMode_scarpetEventsMixin.java +++ b/src/main/java/carpet/mixins/ServerPlayerGameMode_scarpetEventsMixin.java @@ -54,7 +54,7 @@ public class ServerPlayerGameMode_scarpetEventsMixin implements ServerPlayerInte @Inject(method = "useItemOn", at = @At( value = "INVOKE", - target = "Lnet/minecraft/advancements/criterion/ItemUsedOnLocationTrigger;trigger(Lnet/minecraft/server/level/ServerPlayer;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/item/ItemInstance;)V", + target = "Lnet/minecraft/advancements/triggers/ItemUsedOnLocationTrigger;trigger(Lnet/minecraft/server/level/ServerPlayer;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/item/ItemInstance;)V", shift = At.Shift.BEFORE )) private void onBlockActivated(ServerPlayer serverPlayerEntity, Level world, ItemStack stack, InteractionHand hand, BlockHitResult hitResult, CallbackInfoReturnable cir) diff --git a/src/main/java/carpet/mixins/SummonCommand_lightningMixin.java b/src/main/java/carpet/mixins/SummonCommand_lightningMixin.java index ca0785c2..c6dc3d1d 100644 --- a/src/main/java/carpet/mixins/SummonCommand_lightningMixin.java +++ b/src/main/java/carpet/mixins/SummonCommand_lightningMixin.java @@ -7,7 +7,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.world.DifficultyInstance; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntitySpawnReason; -import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.LightningBolt; import net.minecraft.world.entity.animal.equine.SkeletonHorse; import net.minecraft.world.level.gamerules.GameRules; @@ -32,7 +32,7 @@ public class SummonCommand_lightningMixin DifficultyInstance localDifficulty_1 = world.getCurrentDifficultyAt(at); boolean boolean_2 = world.getGameRules().get(GameRules.SPAWN_MOBS) && world.getRandom().nextDouble() < (double)localDifficulty_1.getEffectiveDifficulty() * 0.01D; if (boolean_2) { - SkeletonHorse skeletonHorseEntity_1 = EntityType.SKELETON_HORSE.create(world, EntitySpawnReason.EVENT); + SkeletonHorse skeletonHorseEntity_1 = EntityTypes.SKELETON_HORSE.create(world, EntitySpawnReason.EVENT); skeletonHorseEntity_1.setTrap(true); skeletonHorseEntity_1.setAge(0); skeletonHorseEntity_1.setPos(entity.getX(), entity.getY(), entity.getZ()); diff --git a/src/main/java/carpet/script/CarpetScriptHost.java b/src/main/java/carpet/script/CarpetScriptHost.java index 26f7dc7b..890bc6ad 100644 --- a/src/main/java/carpet/script/CarpetScriptHost.java +++ b/src/main/java/carpet/script/CarpetScriptHost.java @@ -38,7 +38,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import org.apache.commons.lang3.tuple.Pair; import org.jspecify.annotations.Nullable; @@ -961,7 +961,7 @@ public class CarpetScriptHost extends ScriptHost String markerName = Auxiliary.MARKER_STRING + "_" + ((getName() == null) ? "" : getName()); for (ServerLevel world : scriptServer().server.getAllLevels()) { - for (Entity e : world.getEntities(EntityType.ARMOR_STAND, (as) -> as.entityTags().contains(markerName))) + for (Entity e : world.getEntities(EntityTypes.ARMOR_STAND, (as) -> as.entityTags().contains(markerName))) { e.discard(); } diff --git a/src/main/java/carpet/script/api/Auxiliary.java b/src/main/java/carpet/script/api/Auxiliary.java index 3a3fb0ad..daf55c50 100644 --- a/src/main/java/carpet/script/api/Auxiliary.java +++ b/src/main/java/carpet/script/api/Auxiliary.java @@ -66,11 +66,10 @@ import net.minecraft.stats.Stat; import net.minecraft.stats.StatType; import net.minecraft.world.clock.WorldClocks; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.decoration.ArmorStand; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.CommandStorage; @@ -382,7 +381,7 @@ public class Auxiliary throw new InternalExpressionException("'create_marker' requires a name and three coordinates, with optional direction, and optional block on its head"); } Level level = cc.level(); - ArmorStand armorstand = new ArmorStand(EntityType.ARMOR_STAND, level); + ArmorStand armorstand = new ArmorStand(EntityTypes.ARMOR_STAND, level); double yoffset; if (targetBlock == null && name == null) { @@ -435,7 +434,7 @@ public class Auxiliary CarpetContext cc = (CarpetContext) c; int total = 0; String markerName = MARKER_STRING + "_" + ((cc.host.getName() == null) ? "" : cc.host.getName()); - for (Entity e : cc.level().getEntities(EntityType.ARMOR_STAND, as -> as.entityTags().contains(markerName))) + for (Entity e : cc.level().getEntities(EntityTypes.ARMOR_STAND, as -> as.entityTags().contains(markerName))) { total++; e.discard(); diff --git a/src/main/java/carpet/script/api/WorldAccess.java b/src/main/java/carpet/script/api/WorldAccess.java index 69c663e7..5499c5b4 100644 --- a/src/main/java/carpet/script/api/WorldAccess.java +++ b/src/main/java/carpet/script/api/WorldAccess.java @@ -56,6 +56,7 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.util.ProblemReporter; import net.minecraft.util.random.WeightedList; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.level.ServerExplosion; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.chunk.PalettedContainer; @@ -946,7 +947,7 @@ public class WorldAccess } if (DUMMY_ENTITY == null) { - DUMMY_ENTITY = new FallingBlockEntity(EntityType.FALLING_BLOCK, null); + DUMMY_ENTITY = new FallingBlockEntity(EntityTypes.FALLING_BLOCK, null); } Block.dropResources(state, world, where, be, DUMMY_ENTITY, tool); } diff --git a/src/main/java/carpet/script/command/CommandArgument.java b/src/main/java/carpet/script/command/CommandArgument.java index d9b7e1aa..76ae1901 100644 --- a/src/main/java/carpet/script/command/CommandArgument.java +++ b/src/main/java/carpet/script/command/CommandArgument.java @@ -55,7 +55,7 @@ import java.util.function.Supplier; import java.util.stream.Collectors; import net.minecraft.ChatFormatting; -import net.minecraft.advancements.criterion.MinMaxBounds; +import net.minecraft.advancements.predicates.MinMaxBounds; import net.minecraft.commands.CommandBuildContext; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.SharedSuggestionProvider; diff --git a/src/main/java/carpet/script/utils/ShapesRenderer.java b/src/main/java/carpet/script/utils/ShapesRenderer.java index 1fc1ef4a..d0df2ff3 100644 --- a/src/main/java/carpet/script/utils/ShapesRenderer.java +++ b/src/main/java/carpet/script/utils/ShapesRenderer.java @@ -119,7 +119,7 @@ public class ShapesRenderer // posestack is not needed anymore - left as TODO to cleanup later PoseStack matrices = new PoseStack(); - Camera camera = this.client.gameRenderer.getMainCamera(); + Camera camera = this.client.gameRenderer.mainCamera(); ClientLevel iWorld = this.client.level; ResourceKey dimensionType = iWorld.dimension(); if ((shapes.get(dimensionType) == null || shapes.get(dimensionType).isEmpty()) && @@ -194,20 +194,20 @@ public class ShapesRenderer }); } MultiBufferSource.BufferSource bufferSource = renderBuffers.bufferSource(); - bufferSource.endLastBatch(); + bufferSource.uploadAndDraw(); normal.render(matrices, bufferSource, cameraa.cameraRenderState, matrix4f); - bufferSource.endLastBatch(); + bufferSource.uploadAndDraw(); if (false) { - final RenderTarget mainRenderTarget = Minecraft.getInstance().getMainRenderTarget(); + final RenderTarget mainRenderTarget = Minecraft.getInstance().gameRenderer.mainRenderTarget(); RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(mainRenderTarget.getDepthTexture(), 1.0); onTop.render(matrices, bufferSource, cameraa.cameraRenderState, matrix4f); - bufferSource.endLastBatch(); + bufferSource.uploadAndDraw(); - RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(Minecraft.getInstance().getMainRenderTarget().getDepthTexture(), 1.0); + RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(Minecraft.getInstance().gameRenderer.mainRenderTarget().getDepthTexture(), 1.0); } @@ -366,7 +366,7 @@ public class ShapesRenderer } Vec3 v1 = shape.relativiseRender(client.level, shape.pos, partialTick); - Camera camera1 = client.gameRenderer.getMainCamera(); + Camera camera1 = client.gameRenderer.mainCamera(); matrices.pushPose(); if (!isitem)// blocks should use its center as the origin @@ -415,7 +415,7 @@ public class ShapesRenderer blockState = shape.blockState; - MultiBufferSource.BufferSource immediate = client.renderBuffers().bufferSource(); + MultiBufferSource.BufferSource immediate = client.gameRenderer.renderBuffers().bufferSource(); if (!isitem) { // draw the block itself @@ -431,7 +431,7 @@ public class ShapesRenderer //renderState.model = state; //renderState.block = blockState.getBlock(); - renderState.submit(matrices, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage(), light, OverlayTexture.NO_OVERLAY, EntityRenderState.NO_OUTLINE); + renderState.submit(matrices, client.gameRenderer.featureRenderDispatcher().getSubmitNodeStorage(), light, OverlayTexture.NO_OVERLAY, EntityRenderState.NO_OUTLINE); //client.getBlockRenderer().renderSingleBlock(blockState, matrices, immediate, light, OverlayTexture.NO_OVERLAY); @@ -458,7 +458,7 @@ public class ShapesRenderer if (BlockEntity != null) { BlockEntityRenderer blockEntityRenderer = client.getBlockEntityRenderDispatcher().getRenderer(BlockEntity); - BlockEntityRenderState state = client.getBlockEntityRenderDispatcher().tryExtractRenderState(BlockEntity, partialTick, null); + BlockEntityRenderState state = client.getBlockEntityRenderDispatcher().tryExtractRenderState(BlockEntity, partialTick, null, true); // levelRenderer;;submitBlockEntities does a weird transpose @@ -474,7 +474,7 @@ public class ShapesRenderer //matrices.mulPose(levelRenderState.cameraRenderState.); - blockEntityRenderer.submit(state, matrices,client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage(), levelRenderState.cameraRenderState); + blockEntityRenderer.submit(state, matrices,client.gameRenderer.featureRenderDispatcher().getSubmitNodeStorage(), levelRenderState.cameraRenderState); //blockEntityRenderer.submit(BlockEntity, partialTick, // matrices, light, OverlayTexture.NO_OVERLAY, camera1.getPosition(), null, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage()); @@ -490,14 +490,14 @@ public class ShapesRenderer final ItemStackRenderState itemState = new ItemStackRenderState(); client.getItemModelResolver().updateForTopItem(itemState, shape.item, ItemDisplayContext.FIXED, client.level, null, 0); - itemState.submit(matrices, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage(), light, OverlayTexture.NO_OVERLAY, EntityRenderState.NO_OUTLINE); + itemState.submit(matrices, client.gameRenderer.featureRenderDispatcher().getSubmitNodeStorage(), light, OverlayTexture.NO_OVERLAY, EntityRenderState.NO_OUTLINE); //client.getItemRenderer().renderStatic(shape.item, transformType, light, // OverlayTexture.NO_OVERLAY, matrices, immediate, client.level, (int) shape.key(client.level.registryAccess())); } } matrices.popPose(); - immediate.endBatch(); + immediate.uploadAndDraw(); ////RenderSystem.disableCull(); ////RenderSystem.disableDepthTest(); ////RenderSystem.depthMask(false); @@ -528,7 +528,7 @@ public class ShapesRenderer return; } Vec3 v1 = shape.relativiseRender(client.level, shape.pos, partialTick); - Camera camera1 = client.gameRenderer.getMainCamera(); + Camera camera1 = client.gameRenderer.mainCamera(); Font textRenderer = client.font; if (shape.doublesided) { @@ -571,14 +571,15 @@ public class ShapesRenderer { text_x = (float) (-textRenderer.width(shape.value.getString())); } - try (ByteBufferBuilder bbb = new ByteBufferBuilder(RenderType.TRANSIENT_BUFFER_SIZE)) - { - MultiBufferSource.BufferSource immediate = MultiBufferSource.immediate(bbb); + //try (ByteBufferBuilder bbb = new ByteBufferBuilder(RenderType.TRANSIENT_BUFFER_SIZE)) + //{ + MultiBufferSource.BufferSource immediate = Minecraft.getInstance().gameRenderer.renderBuffers().bufferSource(); + // text doesn't appear if backgroud is set ///script run draw_shape('label', 100, 'pos', [200, 100, 200], 'text', 'Hewwo World!', 'color', 0xffffffff, 'fill', 0x33333333) textRenderer.drawInBatch(shape.value, text_x, 0.0F, shape.textcolor, false, matrices.last().pose(), immediate, Font.DisplayMode.SEE_THROUGH, shape.textbck, 15728880); - immediate.endBatch(); - } + immediate.uploadAndDraw(); + //} matrices.popPose(); ////RenderSystem.enableCull(); } diff --git a/src/main/java/carpet/script/value/EntityValue.java b/src/main/java/carpet/script/value/EntityValue.java index 9e65e378..38b4c91e 100644 --- a/src/main/java/carpet/script/value/EntityValue.java +++ b/src/main/java/carpet/script/value/EntityValue.java @@ -47,6 +47,7 @@ import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.AgeableMob; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.Mob; @@ -303,44 +304,44 @@ public class EntityValue extends Value // nonliving types Set> projectiles = Set.of( - EntityType.ARROW, EntityType.DRAGON_FIREBALL, EntityType.FIREWORK_ROCKET, - EntityType.FIREBALL, EntityType.LLAMA_SPIT, EntityType.SMALL_FIREBALL, - EntityType.SNOWBALL, EntityType.SPECTRAL_ARROW, EntityType.EGG, - EntityType.ENDER_PEARL, EntityType.EXPERIENCE_BOTTLE, EntityType.SPLASH_POTION, EntityType.LINGERING_POTION, - EntityType.TRIDENT, EntityType.WITHER_SKULL, EntityType.FISHING_BOBBER, EntityType.SHULKER_BULLET + EntityTypes.ARROW, EntityTypes.DRAGON_FIREBALL, EntityTypes.FIREWORK_ROCKET, + EntityTypes.FIREBALL, EntityTypes.LLAMA_SPIT, EntityTypes.SMALL_FIREBALL, + EntityTypes.SNOWBALL, EntityTypes.SPECTRAL_ARROW, EntityTypes.EGG, + EntityTypes.ENDER_PEARL, EntityTypes.EXPERIENCE_BOTTLE, EntityTypes.SPLASH_POTION, EntityTypes.LINGERING_POTION, + EntityTypes.TRIDENT, EntityTypes.WITHER_SKULL, EntityTypes.FISHING_BOBBER, EntityTypes.SHULKER_BULLET ); Set> deads = Set.of( - EntityType.AREA_EFFECT_CLOUD, EntityType.MARKER, EntityType.END_CRYSTAL, - EntityType.EVOKER_FANGS, EntityType.EXPERIENCE_ORB, EntityType.EYE_OF_ENDER, - EntityType.FALLING_BLOCK, EntityType.ITEM, EntityType.ITEM_FRAME, EntityType.GLOW_ITEM_FRAME, - EntityType.LEASH_KNOT, EntityType.LIGHTNING_BOLT, EntityType.PAINTING, - EntityType.TNT, EntityType.ARMOR_STAND + EntityTypes.AREA_EFFECT_CLOUD, EntityTypes.MARKER, EntityTypes.END_CRYSTAL, + EntityTypes.EVOKER_FANGS, EntityTypes.EXPERIENCE_ORB, EntityTypes.EYE_OF_ENDER, + EntityTypes.FALLING_BLOCK, EntityTypes.ITEM, EntityTypes.ITEM_FRAME, EntityTypes.GLOW_ITEM_FRAME, + EntityTypes.LEASH_KNOT, EntityTypes.LIGHTNING_BOLT, EntityTypes.PAINTING, + EntityTypes.TNT, EntityTypes.ARMOR_STAND ); Set> minecarts = Set.of( - EntityType.MINECART, EntityType.CHEST_MINECART, EntityType.COMMAND_BLOCK_MINECART, - EntityType.FURNACE_MINECART, EntityType.HOPPER_MINECART, - EntityType.SPAWNER_MINECART, EntityType.TNT_MINECART + EntityTypes.MINECART, EntityTypes.CHEST_MINECART, EntityTypes.COMMAND_BLOCK_MINECART, + EntityTypes.FURNACE_MINECART, EntityTypes.HOPPER_MINECART, + EntityTypes.SPAWNER_MINECART, EntityTypes.TNT_MINECART ); // living mob groups - non-defeault Set> undeads = Set.of( - EntityType.STRAY, EntityType.SKELETON, EntityType.WITHER_SKELETON, - EntityType.ZOMBIE, EntityType.DROWNED, EntityType.ZOMBIE_VILLAGER, - EntityType.ZOMBIE_HORSE, EntityType.SKELETON_HORSE, EntityType.PHANTOM, - EntityType.WITHER, EntityType.ZOGLIN, EntityType.HUSK, EntityType.ZOMBIFIED_PIGLIN + EntityTypes.STRAY, EntityTypes.SKELETON, EntityTypes.WITHER_SKELETON, + EntityTypes.ZOMBIE, EntityTypes.DROWNED, EntityTypes.ZOMBIE_VILLAGER, + EntityTypes.ZOMBIE_HORSE, EntityTypes.SKELETON_HORSE, EntityTypes.PHANTOM, + EntityTypes.WITHER, EntityTypes.ZOGLIN, EntityTypes.HUSK, EntityTypes.ZOMBIFIED_PIGLIN ); Set> arthropods = Set.of( - EntityType.BEE, EntityType.ENDERMITE, EntityType.SILVERFISH, EntityType.SPIDER, - EntityType.CAVE_SPIDER + EntityTypes.BEE, EntityTypes.ENDERMITE, EntityTypes.SILVERFISH, EntityTypes.SPIDER, + EntityTypes.CAVE_SPIDER ); Set> aquatique = Set.of( - EntityType.GUARDIAN, EntityType.TURTLE, EntityType.COD, EntityType.DOLPHIN, EntityType.PUFFERFISH, - EntityType.SALMON, EntityType.SQUID, EntityType.TROPICAL_FISH + EntityTypes.GUARDIAN, EntityTypes.TURTLE, EntityTypes.COD, EntityTypes.DOLPHIN, EntityTypes.PUFFERFISH, + EntityTypes.SALMON, EntityTypes.SQUID, EntityTypes.TROPICAL_FISH ); Set> illagers = Set.of( - EntityType.PILLAGER, EntityType.ILLUSIONER, EntityType.VINDICATOR, EntityType.EVOKER, - EntityType.RAVAGER, EntityType.WITCH + EntityTypes.PILLAGER, EntityTypes.ILLUSIONER, EntityTypes.VINDICATOR, EntityTypes.EVOKER, + EntityTypes.RAVAGER, EntityTypes.WITCH ); Set> living = allTypes.stream().filter(et -> diff --git a/src/main/java/carpet/script/value/ValueConversions.java b/src/main/java/carpet/script/value/ValueConversions.java index 79111265..56d97e2e 100644 --- a/src/main/java/carpet/script/value/ValueConversions.java +++ b/src/main/java/carpet/script/value/ValueConversions.java @@ -7,7 +7,7 @@ import carpet.script.external.Vanilla; import carpet.script.utils.Colors; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -import net.minecraft.advancements.criterion.MinMaxBounds; +import net.minecraft.advancements.predicates.MinMaxBounds; import net.minecraft.core.BlockPos; import net.minecraft.core.GlobalPos; import net.minecraft.core.HolderSet; diff --git a/src/main/java/carpet/utils/BlockInfo.java b/src/main/java/carpet/utils/BlockInfo.java index fac954e6..3900f111 100644 --- a/src/main/java/carpet/utils/BlockInfo.java +++ b/src/main/java/carpet/utils/BlockInfo.java @@ -10,7 +10,7 @@ import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.EntitySpawnReason; -import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.PathfinderMob; import net.minecraft.world.entity.ai.goal.RandomStrollGoal; import net.minecraft.world.entity.ai.util.DefaultRandomPos; @@ -74,7 +74,7 @@ public class BlockInfo private static Component wander_chances(BlockPos pos, ServerLevel worldIn) { - PathfinderMob creature = new ZombifiedPiglin(EntityType.ZOMBIFIED_PIGLIN, worldIn); + PathfinderMob creature = new ZombifiedPiglin(EntityTypes.ZOMBIFIED_PIGLIN, worldIn); creature.finalizeSpawn(worldIn, worldIn.getCurrentDifficultyAt(pos), EntitySpawnReason.NATURAL, null); creature.snapTo(pos, 0.0F, 0.0F); RandomStrollGoal wander = new RandomStrollGoal(creature, 0.8D); diff --git a/src/main/java/carpet/utils/MobAI.java b/src/main/java/carpet/utils/MobAI.java index 193b1565..64b71199 100644 --- a/src/main/java/carpet/utils/MobAI.java +++ b/src/main/java/carpet/utils/MobAI.java @@ -17,6 +17,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.Mth; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.phys.Vec3; public class MobAI @@ -78,8 +79,8 @@ public class MobAI public enum TrackingType { - IRON_GOLEM_SPAWNING(Set.of(EntityType.VILLAGER)), - BREEDING(Set.of(EntityType.VILLAGER)); + IRON_GOLEM_SPAWNING(Set.of(EntityTypes.VILLAGER)), + BREEDING(Set.of(EntityTypes.VILLAGER)); public final Set> types; TrackingType(Set> applicableTypes) { diff --git a/src/main/java/carpet/utils/PerimeterDiagnostics.java b/src/main/java/carpet/utils/PerimeterDiagnostics.java index 07e3ec82..b52a88d9 100644 --- a/src/main/java/carpet/utils/PerimeterDiagnostics.java +++ b/src/main/java/carpet/utils/PerimeterDiagnostics.java @@ -9,6 +9,7 @@ import net.minecraft.util.random.Weighted; import net.minecraft.world.entity.AgeableMob; import net.minecraft.world.entity.EntitySpawnReason; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.SpawnPlacements; @@ -86,7 +87,7 @@ public class PerimeterDiagnostics } } PerimeterDiagnostics diagnostic = new PerimeterDiagnostics(worldserver,ctype,el); - EntityType type = EntityType.ZOMBIE; + EntityType type = EntityTypes.ZOMBIE; if (el != null) type = el.getType(); int minY = worldserver.getMinY(); int maxY = worldserver.getMaxY(); diff --git a/src/main/java/carpet/utils/SpawnOverrides.java b/src/main/java/carpet/utils/SpawnOverrides.java index 024d6c14..58113d77 100644 --- a/src/main/java/carpet/utils/SpawnOverrides.java +++ b/src/main/java/carpet/utils/SpawnOverrides.java @@ -9,7 +9,7 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.random.WeightedList; -import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.level.StructureManager; import net.minecraft.world.level.biome.MobSpawnSettings; @@ -32,16 +32,16 @@ public class SpawnOverrides { static { addOverride(() -> CarpetSettings.huskSpawningInTemples, MobCategory.MONSTER, BuiltinStructures.DESERT_PYRAMID, StructureSpawnOverride.BoundingBoxType.STRUCTURE, - WeightedList.of(new MobSpawnSettings.SpawnerData(EntityType.HUSK, 1, 1)) + WeightedList.of(new MobSpawnSettings.SpawnerData(EntityTypes.HUSK, 1, 1)) ); addOverride(() -> CarpetSettings.shulkerSpawningInEndCities, MobCategory.MONSTER, BuiltinStructures.END_CITY, StructureSpawnOverride.BoundingBoxType.PIECE, - WeightedList.of(new MobSpawnSettings.SpawnerData(EntityType.SHULKER, 4, 4)) + WeightedList.of(new MobSpawnSettings.SpawnerData(EntityTypes.SHULKER, 4, 4)) ); addOverride(() -> CarpetSettings.piglinsSpawningInBastions, MobCategory.MONSTER, BuiltinStructures.BASTION_REMNANT, StructureSpawnOverride.BoundingBoxType.PIECE, WeightedList.builder() - .add(new MobSpawnSettings.SpawnerData(EntityType.PIGLIN_BRUTE,1, 2), 5) - .add(new MobSpawnSettings.SpawnerData(EntityType.PIGLIN, 2, 4), 10) - .add(new MobSpawnSettings.SpawnerData(EntityType.HOGLIN, 1, 2), 2) + .add(new MobSpawnSettings.SpawnerData(EntityTypes.PIGLIN_BRUTE,1, 2), 5) + .add(new MobSpawnSettings.SpawnerData(EntityTypes.PIGLIN, 2, 4), 10) + .add(new MobSpawnSettings.SpawnerData(EntityTypes.HOGLIN, 1, 2), 2) .build() ); diff --git a/src/main/java/carpet/utils/SpawnReporter.java b/src/main/java/carpet/utils/SpawnReporter.java index 56dd642f..35dfc479 100644 --- a/src/main/java/carpet/utils/SpawnReporter.java +++ b/src/main/java/carpet/utils/SpawnReporter.java @@ -18,6 +18,7 @@ import net.minecraft.util.random.WeightedList; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntitySpawnReason; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.SpawnPlacements; @@ -456,7 +457,7 @@ public class SpawnReporter // && mob.canSpawn(worldIn) // entity collisions // mostly - except ocelots ) { - if (etype == EntityType.OCELOT) + if (etype == EntityTypes.OCELOT) { BlockState blockState = worldIn.getBlockState(pos.below()); if ((pos.getY() < worldIn.getSeaLevel()) || !(blockState.is(Blocks.GRASS_BLOCK) || blockState.is(BlockTags.LEAVES))) {