1.21.9-pre1

This commit is contained in:
gnembon committed 2025-09-16 23:15:06 +02:00
1 parent 77c91efbd4
commit a554a4892d
7 files changed
+31 -28

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check https://fabricmc.net/develop/ # check https://fabricmc.net/develop/
minecraft_version=25w37a minecraft_version=1.21.9-pre1
loader_version=0.16.14 loader_version=0.16.14
jsr305_version=3.0.2 jsr305_version=3.0.2
fabric_version=0.119.5+1.21.5 fabric_version=0.119.5+1.21.5
@@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(DebugRenderer.class) @Mixin(DebugRenderer.class)
public class DebugRenderer_scarpetRenderMixin public class DebugRenderer_scarpetRenderMixin
{ {
@Inject(method = "clear", at = @At("HEAD")) @Inject(method = "refreshRendererList", at = @At("HEAD"))
private void resetScarpetRenderes(CallbackInfo ci) private void resetScarpetRenderes(CallbackInfo ci)
{ {
if (CarpetClient.shapes != null) if (CarpetClient.shapes != null)
@@ -8,7 +8,6 @@ import com.mojang.blaze3d.framegraph.FramePass;
import net.minecraft.client.Camera; import net.minecraft.client.Camera;
import net.minecraft.client.DeltaTracker; import net.minecraft.client.DeltaTracker;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.LevelRenderState;
import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.LevelTargetBundle; import net.minecraft.client.renderer.LevelTargetBundle;
import net.minecraft.client.renderer.RenderBuffers; import net.minecraft.client.renderer.RenderBuffers;
@@ -16,6 +15,7 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher;
import net.minecraft.client.renderer.culling.Frustum; import net.minecraft.client.renderer.culling.Frustum;
import net.minecraft.client.renderer.entity.EntityRenderDispatcher; import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
import net.minecraft.client.renderer.feature.FeatureRenderDispatcher; import net.minecraft.client.renderer.feature.FeatureRenderDispatcher;
import net.minecraft.client.renderer.state.LevelRenderState;
import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.util.profiling.ProfilerFiller;
import org.joml.Matrix4f; import org.joml.Matrix4f;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
@@ -41,7 +41,7 @@ public class LevelRenderer_scarpetRenderMixin
} }
@Inject(method = "addMainPass", at = @At("RETURN")) @Inject(method = "addMainPass", at = @At("RETURN"))
private void renderScarpetThingsLate(FrameGraphBuilder frameGraphBuilder, Frustum frustum, Camera camera, Matrix4f matrix4f, GpuBufferSlice gpuBufferSlice, boolean bl, LevelRenderState levelRenderState, DeltaTracker deltaTracker, ProfilerFiller profilerFiller, CallbackInfo ci) private void renderScarpetThingsLate(FrameGraphBuilder frameGraphBuilder, Frustum frustum, Matrix4f matrix4f, GpuBufferSlice gpuBufferSlice, boolean bl, LevelRenderState levelRenderState, DeltaTracker deltaTracker, ProfilerFiller profilerFiller, CallbackInfo ci)
{ {
// in normal circumstances we want to render shapes at the very end so it appears correctly behind stuff. // 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. // we might actually not need to play with render hooks here.
@@ -51,7 +51,7 @@ public class LevelRenderer_scarpetRenderMixin
final float deltaPartialTick = deltaTracker.getGameTimeDeltaPartialTick(false); final float deltaPartialTick = deltaTracker.getGameTimeDeltaPartialTick(false);
FramePass pass = frameGraphBuilder.addPass("scarpet_shapes"); FramePass pass = frameGraphBuilder.addPass("scarpet_shapes");
targets.main = pass.readsAndWrites(targets.main); targets.main = pass.readsAndWrites(targets.main);
pass.executes(() -> CarpetClient.shapes.render(null, camera, deltaPartialTick)); pass.executes(() -> CarpetClient.shapes.render(null, levelRenderState, deltaPartialTick));
featureRenderDispatcher.renderAllFeatures(); featureRenderDispatcher.renderAllFeatures();
renderBuffers.bufferSource().endLastBatch(); renderBuffers.bufferSource().endLastBatch();
} }
@@ -12,6 +12,7 @@ import net.minecraft.client.renderer.blockentity.PistonHeadRenderer;
import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState; import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState;
import net.minecraft.client.renderer.blockentity.state.PistonHeadRenderState; import net.minecraft.client.renderer.blockentity.state.PistonHeadRenderState;
import net.minecraft.client.renderer.feature.ModelFeatureRenderer; import net.minecraft.client.renderer.feature.ModelFeatureRenderer;
import net.minecraft.client.renderer.state.CameraRenderState;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.piston.PistonMovingBlockEntity; import net.minecraft.world.level.block.piston.PistonMovingBlockEntity;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
@@ -51,10 +52,10 @@ public abstract class PistonHeadRenderer_movableBEMixin implements BlockEntityRe
} }
} }
@Inject(method = "submit(Lnet/minecraft/client/renderer/blockentity/state/PistonHeadRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;)V", @Inject(method = "submit(Lnet/minecraft/client/renderer/blockentity/state/PistonHeadRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/CameraRenderState;)V",
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/SubmitNodeCollector;submitMovingBlock(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/block/MovingBlockRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/SubmitNodeCollector;submitMovingBlock(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/block/MovingBlockRenderState;)V",
ordinal = 0)) ordinal = 0))
private void endMethod(PistonHeadRenderState pistonHeadRenderState, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CallbackInfo ci) private void endMethod(PistonHeadRenderState pistonHeadRenderState, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState cameraRenderState, CallbackInfo ci)
//private void endMethod(PistonMovingBlockEntity pistonBlockEntity_1, float partialTicks, PoseStack matrixStack_1, int i, int j, Vec3 vec3, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay, SubmitNodeCollector submitNodeCollector, CallbackInfo ci) //private void endMethod(PistonMovingBlockEntity pistonBlockEntity_1, float partialTicks, PoseStack matrixStack_1, int i, int j, Vec3 vec3, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay, SubmitNodeCollector submitNodeCollector, CallbackInfo ci)
//private void endMethod3576(PistonMovingBlockEntity pistonBlockEntity_1, float partialTicks, PoseStack matrixStack_1, MultiBufferSource layeredVertexConsumerStorage_1, int int_1, int init_2, Vec3 cameraPos, CallbackInfo ci) //private void endMethod3576(PistonMovingBlockEntity pistonBlockEntity_1, float partialTicks, PoseStack matrixStack_1, MultiBufferSource layeredVertexConsumerStorage_1, int int_1, int init_2, Vec3 cameraPos, CallbackInfo ci)
{ {
@@ -62,7 +63,7 @@ public abstract class PistonHeadRenderer_movableBEMixin implements BlockEntityRe
if (mbrsi.getMovedBERenderState() != null) { if (mbrsi.getMovedBERenderState() != null) {
BlockEntityRenderState res = mbrsi.getMovedBERenderState(); BlockEntityRenderState res = mbrsi.getMovedBERenderState();
if (res != null) { if (res != null) {
dispatcher.submit(res, poseStack, submitNodeCollector); dispatcher.submit(res, poseStack, submitNodeCollector, cameraRenderState);
} }
} }
} }
@@ -4,7 +4,6 @@ import carpet.script.CarpetScriptServer;
import carpet.script.external.Carpet; import carpet.script.external.Carpet;
import carpet.script.utils.shapes.ShapeDirection; import carpet.script.utils.shapes.ShapeDirection;
import com.mojang.blaze3d.platform.Lighting;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.ByteBufferBuilder; import com.mojang.blaze3d.vertex.ByteBufferBuilder;
@@ -36,6 +35,7 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState; import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState;
import net.minecraft.client.renderer.entity.state.EntityRenderState; import net.minecraft.client.renderer.entity.state.EntityRenderState;
import net.minecraft.client.renderer.item.ItemStackRenderState; import net.minecraft.client.renderer.item.ItemStackRenderState;
import net.minecraft.client.renderer.state.LevelRenderState;
import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
@@ -112,13 +112,13 @@ public class ShapesRenderer
labels = new HashMap<>(); labels = new HashMap<>();
} }
public void render(Matrix4f modelViewMatrix, Camera camera, float partialTick) public void render(Matrix4f modelViewMatrix, LevelRenderState cameraa, float partialTick)
{ {
Runnable token = Carpet.startProfilerSection("Scarpet client"); Runnable token = Carpet.startProfilerSection("Scarpet client");
// posestack is not needed anymore - left as TODO to cleanup later // posestack is not needed anymore - left as TODO to cleanup later
PoseStack matrices = new PoseStack(); PoseStack matrices = new PoseStack();
//Camera camera = this.client.gameRenderer.getCamera(); Camera camera = this.client.gameRenderer.getMainCamera();
ClientLevel iWorld = this.client.level; ClientLevel iWorld = this.client.level;
ResourceKey<Level> dimensionType = iWorld.dimension(); ResourceKey<Level> dimensionType = iWorld.dimension();
if ((shapes.get(dimensionType) == null || shapes.get(dimensionType).isEmpty()) && if ((shapes.get(dimensionType) == null || shapes.get(dimensionType).isEmpty()) &&
@@ -164,7 +164,7 @@ public class ShapesRenderer
shapes.get(dimensionType).values().forEach(s -> { shapes.get(dimensionType).values().forEach(s -> {
if ((!s.shape.debug || entityBoxes) && s.shouldRender(dimensionType)) if ((!s.shape.debug || entityBoxes) && s.shouldRender(dimensionType))
{ {
s.renderLines(matrices, tesselator, cameraX, cameraY, cameraZ, partialTick); s.renderLines(matrices, tesselator, cameraX, cameraY, cameraZ, partialTick, cameraa);
} }
}); });
// faces // faces
@@ -187,7 +187,7 @@ public class ShapesRenderer
labels.get(dimensionType).values().forEach(s -> { labels.get(dimensionType).values().forEach(s -> {
if ((!s.shape.debug || entityBoxes) && s.shouldRender(dimensionType)) if ((!s.shape.debug || entityBoxes) && s.shouldRender(dimensionType))
{ {
s.renderLines(matrices, tesselator, cameraX, cameraY, cameraZ, partialTick); s.renderLines(matrices, tesselator, cameraX, cameraY, cameraZ, partialTick, cameraa);
} }
}); });
} }
@@ -263,7 +263,7 @@ public class ShapesRenderer
long expiryTick; long expiryTick;
double renderEpsilon; double renderEpsilon;
public abstract void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick); public abstract void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState);
public void renderFaces(Tesselator tesselator, double cx, double cy, double cz, float partialTick) public void renderFaces(Tesselator tesselator, double cx, double cy, double cz, float partialTick)
{ {
@@ -337,7 +337,7 @@ public class ShapesRenderer
@Override @Override
public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy,
double cz, float partialTick) double cz, float partialTick, LevelRenderState levelRenderState)
{ {
if (shape.a == 0.0) if (shape.a == 0.0)
{ {
@@ -447,7 +447,7 @@ public class ShapesRenderer
if (blockEntityRenderer != null && state != null) if (blockEntityRenderer != null && state != null)
{ {
// testme partial positions // testme partial positions
blockEntityRenderer.submit(state, matrices,client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage()); blockEntityRenderer.submit(state, matrices,client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage(), levelRenderState.cameraRenderState);
//blockEntityRenderer.submit(BlockEntity, partialTick, //blockEntityRenderer.submit(BlockEntity, partialTick,
// matrices, light, OverlayTexture.NO_OVERLAY, camera1.getPosition(), null, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage()); // matrices, light, OverlayTexture.NO_OVERLAY, camera1.getPosition(), null, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage());
@@ -493,7 +493,7 @@ public class ShapesRenderer
} }
@Override @Override
public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick) public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState)
{ {
if (shape.a == 0.0) if (shape.a == 0.0)
{ {
@@ -582,7 +582,7 @@ public class ShapesRenderer
} }
@Override @Override
public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick) public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState)
{ {
if (shape.a == 0.0) if (shape.a == 0.0)
{ {
@@ -626,7 +626,7 @@ public class ShapesRenderer
} }
@Override @Override
public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick) public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState)
{ {
Vec3 v1 = shape.relativiseRender(client.level, shape.from, partialTick); Vec3 v1 = shape.relativiseRender(client.level, shape.from, partialTick);
Vec3 v2 = shape.relativiseRender(client.level, shape.to, partialTick); Vec3 v2 = shape.relativiseRender(client.level, shape.to, partialTick);
@@ -707,7 +707,7 @@ public class ShapesRenderer
@Override @Override
public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy,
double cz, float partialTick) double cz, float partialTick, LevelRenderState levelRenderState)
{ {
if (shape.a == 0) if (shape.a == 0)
{ {
@@ -842,7 +842,7 @@ public class ShapesRenderer
} }
@Override @Override
public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick) public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState)
{ {
if (shape.a == 0.0) if (shape.a == 0.0)
{ {
@@ -878,7 +878,7 @@ public class ShapesRenderer
} }
@Override @Override
public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick) public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState)
{ {
if (shape.a == 0.0) if (shape.a == 0.0)
{ {
@@ -59,7 +59,7 @@ public class SystemInfo
return StringValue.of(tlf); return StringValue.of(tlf);
}); });
put("world_dimensions", c -> ListValue.wrap(c.server().levelKeys().stream().map(k -> ValueConversions.of(k.location())))); put("world_dimensions", c -> ListValue.wrap(c.server().levelKeys().stream().map(k -> ValueConversions.of(k.location()))));
put("world_spawn_point", c -> ValueConversions.of(c.server().overworld().getLevelData().getSpawnPos())); put("world_spawn_point", c -> ValueConversions.of(c.server().overworld().getLevelData().getRespawnData().pos()));
put("world_bottom", c -> new NumericValue(c.level().getMinY())); put("world_bottom", c -> new NumericValue(c.level().getMinY()));
@@ -17,6 +17,7 @@ import net.minecraft.commands.arguments.selector.EntitySelector;
import net.minecraft.commands.arguments.selector.EntitySelectorParser; import net.minecraft.commands.arguments.selector.EntitySelectorParser;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.core.GlobalPos;
import net.minecraft.core.Holder; import net.minecraft.core.Holder;
import net.minecraft.core.HolderSet; import net.minecraft.core.HolderSet;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
@@ -69,6 +70,7 @@ import net.minecraft.world.level.GameType;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.entity.EntityTypeTest; import net.minecraft.world.level.entity.EntityTypeTest;
import net.minecraft.world.level.pathfinder.Path; import net.minecraft.world.level.pathfinder.Path;
import net.minecraft.world.level.storage.LevelData;
import net.minecraft.world.level.storage.TagValueInput; import net.minecraft.world.level.storage.TagValueInput;
import net.minecraft.world.level.storage.TagValueOutput; import net.minecraft.world.level.storage.TagValueOutput;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
@@ -533,9 +535,9 @@ public class EntityValue extends Value
} }
ServerPlayer.RespawnConfig spec = spe.getRespawnConfig(); ServerPlayer.RespawnConfig spec = spe.getRespawnConfig();
return ListValue.of( return ListValue.of(
ValueConversions.of(spec.pos()), ValueConversions.of(spec.respawnData().pos()),
ValueConversions.of(spec.dimension()), ValueConversions.of(spec.respawnData().dimension()),
new NumericValue(spec.angle()), new NumericValue(spec.respawnData().yaw()),
BooleanValue.of(spec.forced()) BooleanValue.of(spec.forced())
); );
} }
@@ -1386,7 +1388,7 @@ public class EntityValue extends Value
} }
} }
} }
spe.setRespawnPosition(new ServerPlayer.RespawnConfig(world, pos, angle, forced), false); spe.setRespawnPosition(new ServerPlayer.RespawnConfig(new LevelData.RespawnData(new GlobalPos(world, pos), angle, 0), forced), false);
} }
else if (a instanceof BlockValue bv) else if (a instanceof BlockValue bv)
{ {
@@ -1394,7 +1396,7 @@ public class EntityValue extends Value
{ {
throw new InternalExpressionException("block for spawn modification should be localised in the world"); throw new InternalExpressionException("block for spawn modification should be localised in the world");
} }
spe.setRespawnPosition(new ServerPlayer.RespawnConfig(bv.getWorld().dimension(), bv.getPos(), e.getYRot(), true), false); // yaw spe.setRespawnPosition(new ServerPlayer.RespawnConfig(new LevelData.RespawnData(new GlobalPos(bv.getWorld().dimension(), bv.getPos()), e.getYRot(), 0), true), false); // yaw
} }
else if (a.isNull()) else if (a.isNull())
{ {