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

@@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(DebugRenderer.class)
public class DebugRenderer_scarpetRenderMixin
{
@Inject(method = "clear", at = @At("HEAD"))
@Inject(method = "refreshRendererList", at = @At("HEAD"))
private void resetScarpetRenderes(CallbackInfo ci)
{
if (CarpetClient.shapes != null)
@@ -8,7 +8,6 @@ import com.mojang.blaze3d.framegraph.FramePass;
import net.minecraft.client.Camera;
import net.minecraft.client.DeltaTracker;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.LevelRenderState;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.LevelTargetBundle;
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.entity.EntityRenderDispatcher;
import net.minecraft.client.renderer.feature.FeatureRenderDispatcher;
import net.minecraft.client.renderer.state.LevelRenderState;
import net.minecraft.util.profiling.ProfilerFiller;
import org.joml.Matrix4f;
import org.spongepowered.asm.mixin.Final;
@@ -41,7 +41,7 @@ public class LevelRenderer_scarpetRenderMixin
}
@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.
// 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);
FramePass pass = frameGraphBuilder.addPass("scarpet_shapes");
targets.main = pass.readsAndWrites(targets.main);
pass.executes(() -> CarpetClient.shapes.render(null, camera, deltaPartialTick));
pass.executes(() -> CarpetClient.shapes.render(null, levelRenderState, deltaPartialTick));
featureRenderDispatcher.renderAllFeatures();
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.PistonHeadRenderState;
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.piston.PistonMovingBlockEntity;
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",
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 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) {
BlockEntityRenderState res = mbrsi.getMovedBERenderState();
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.utils.shapes.ShapeDirection;
import com.mojang.blaze3d.platform.Lighting;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.BufferBuilder;
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.entity.state.EntityRenderState;
import net.minecraft.client.renderer.item.ItemStackRenderState;
import net.minecraft.client.renderer.state.LevelRenderState;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -112,13 +112,13 @@ public class ShapesRenderer
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");
// posestack is not needed anymore - left as TODO to cleanup later
PoseStack matrices = new PoseStack();
//Camera camera = this.client.gameRenderer.getCamera();
Camera camera = this.client.gameRenderer.getMainCamera();
ClientLevel iWorld = this.client.level;
ResourceKey<Level> dimensionType = iWorld.dimension();
if ((shapes.get(dimensionType) == null || shapes.get(dimensionType).isEmpty()) &&
@@ -164,7 +164,7 @@ public class ShapesRenderer
shapes.get(dimensionType).values().forEach(s -> {
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
@@ -187,7 +187,7 @@ public class ShapesRenderer
labels.get(dimensionType).values().forEach(s -> {
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;
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)
{
@@ -337,7 +337,7 @@ public class ShapesRenderer
@Override
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)
{
@@ -447,7 +447,7 @@ public class ShapesRenderer
if (blockEntityRenderer != null && state != null)
{
// 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,
// matrices, light, OverlayTexture.NO_OVERLAY, camera1.getPosition(), null, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage());
@@ -493,7 +493,7 @@ public class ShapesRenderer
}
@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)
{
@@ -582,7 +582,7 @@ public class ShapesRenderer
}
@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)
{
@@ -626,7 +626,7 @@ public class ShapesRenderer
}
@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 v2 = shape.relativiseRender(client.level, shape.to, partialTick);
@@ -707,7 +707,7 @@ public class ShapesRenderer
@Override
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)
{
@@ -842,7 +842,7 @@ public class ShapesRenderer
}
@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)
{
@@ -878,7 +878,7 @@ public class ShapesRenderer
}
@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)
{
@@ -59,7 +59,7 @@ public class SystemInfo
return StringValue.of(tlf);
});
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()));
@@ -17,6 +17,7 @@ import net.minecraft.commands.arguments.selector.EntitySelector;
import net.minecraft.commands.arguments.selector.EntitySelectorParser;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.GlobalPos;
import net.minecraft.core.Holder;
import net.minecraft.core.HolderSet;
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.entity.EntityTypeTest;
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.TagValueOutput;
import net.minecraft.world.phys.BlockHitResult;
@@ -533,9 +535,9 @@ public class EntityValue extends Value
}
ServerPlayer.RespawnConfig spec = spe.getRespawnConfig();
return ListValue.of(
ValueConversions.of(spec.pos()),
ValueConversions.of(spec.dimension()),
new NumericValue(spec.angle()),
ValueConversions.of(spec.respawnData().pos()),
ValueConversions.of(spec.respawnData().dimension()),
new NumericValue(spec.respawnData().yaw()),
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)
{
@@ -1394,7 +1396,7 @@ public class EntityValue extends Value
{
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())
{