26.1-snap-7
This commit is contained in:
1 parent
35a1a1a600
commit
e348f8fa6d
7 files changed
+29
-33
No files matched your search
+2
-2
@@ -7,9 +7,9 @@ org.gradle.configuration-cache=false
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check https://fabricmc.net/develop/
|
# check https://fabricmc.net/develop/
|
||||||
minecraft_version=26.1-snapshot-6
|
minecraft_version=26.1-snapshot-7
|
||||||
loader_version=0.18.4
|
loader_version=0.18.4
|
||||||
loom_version=1.14-SNAPSHOT
|
loom_version=1.15-SNAPSHOT
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 26.1-beta-5
|
mod_version = 26.1-beta-5
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.Redirect;
|
|||||||
@Mixin(LevelRenderer.class)
|
@Mixin(LevelRenderer.class)
|
||||||
public class LevelRenderer_creativeNoClipMixin
|
public class LevelRenderer_creativeNoClipMixin
|
||||||
{
|
{
|
||||||
@Redirect(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;isSpectator()Z"))
|
@Redirect(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;isSpectator()Z"))
|
||||||
private boolean canSeeWorld(LocalPlayer clientPlayerEntity)
|
private boolean canSeeWorld(LocalPlayer clientPlayerEntity)
|
||||||
{
|
{
|
||||||
return clientPlayerEntity.isSpectator() || (CarpetSettings.creativeNoClip && clientPlayerEntity.isCreative());
|
return clientPlayerEntity.isSpectator() || (CarpetSettings.creativeNoClip && clientPlayerEntity.isCreative());
|
||||||
|
|||||||
@@ -1,24 +1,23 @@
|
|||||||
package carpet.mixins;
|
package carpet.mixins;
|
||||||
|
|
||||||
import carpet.CarpetSettings;
|
import carpet.CarpetSettings;
|
||||||
import net.minecraft.client.renderer.GameRenderer;
|
import net.minecraft.client.renderer.fog.environment.AtmosphericFogEnvironment;
|
||||||
//import net.minecraft.world.dimension.Dimension;
|
|
||||||
import net.minecraft.world.attribute.EnvironmentAttribute;
|
import net.minecraft.world.attribute.EnvironmentAttribute;
|
||||||
import net.minecraft.world.attribute.EnvironmentAttributeProbe;
|
import net.minecraft.world.attribute.EnvironmentAttributeProbe;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
|
||||||
@Mixin(value = GameRenderer.class, priority = 69420)
|
@Mixin(value = AtmosphericFogEnvironment.class, priority = 69420)
|
||||||
public class LevelRenderer_fogOffMixin
|
public class LevelRenderer_fogOffMixin
|
||||||
{
|
{
|
||||||
@Redirect(method = "renderLevel", require = 0, expect = 0, at = @At(
|
@Redirect(method = "setupFog", require = 0, expect = 0, at = @At(
|
||||||
value = "INVOKE",
|
value = "INVOKE",
|
||||||
target = "Lnet/minecraft/world/attribute/EnvironmentAttributeProbe;getValue(Lnet/minecraft/world/attribute/EnvironmentAttribute;F)Ljava/lang/Object;"
|
target = "Lnet/minecraft/world/attribute/EnvironmentAttributeProbe;getValue(Lnet/minecraft/world/attribute/EnvironmentAttribute;F)Ljava/lang/Object;"
|
||||||
))
|
))
|
||||||
private <Value> Value isReallyThick(EnvironmentAttributeProbe instance, EnvironmentAttribute<Value> environmentAttribute, float f)
|
private <Value> Value isReallyThick(EnvironmentAttributeProbe instance, EnvironmentAttribute<Value> environmentAttribute, float f)
|
||||||
{
|
{
|
||||||
if (CarpetSettings.fogOff) return (Value) Boolean.FALSE;
|
if (CarpetSettings.fogOff) return environmentAttribute.defaultValue();
|
||||||
return instance.getValue(environmentAttribute, f);
|
return instance.getValue(environmentAttribute, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,15 +7,16 @@ import com.mojang.blaze3d.buffers.GpuBufferSlice;
|
|||||||
import com.mojang.blaze3d.framegraph.FrameGraphBuilder;
|
import com.mojang.blaze3d.framegraph.FrameGraphBuilder;
|
||||||
import com.mojang.blaze3d.framegraph.FramePass;
|
import com.mojang.blaze3d.framegraph.FramePass;
|
||||||
import com.mojang.blaze3d.resource.GraphicsResourceAllocator;
|
import com.mojang.blaze3d.resource.GraphicsResourceAllocator;
|
||||||
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.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;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher;
|
||||||
|
import net.minecraft.client.renderer.chunk.ChunkSectionsToRender;
|
||||||
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.CameraRenderState;
|
||||||
import net.minecraft.client.renderer.state.LevelRenderState;
|
import net.minecraft.client.renderer.state.LevelRenderState;
|
||||||
import org.joml.Matrix4f;
|
import org.joml.Matrix4f;
|
||||||
import org.joml.Vector4f;
|
import org.joml.Vector4f;
|
||||||
@@ -48,7 +49,7 @@ public class LevelRenderer_scarpetRenderMixin
|
|||||||
target = "Lnet/minecraft/client/renderer/LevelRenderer;addLateDebugPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/renderer/state/CameraRenderState;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Matrix4f;)V",
|
target = "Lnet/minecraft/client/renderer/LevelRenderer;addLateDebugPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/renderer/state/CameraRenderState;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Matrix4f;)V",
|
||||||
shift = At.Shift.AFTER
|
shift = At.Shift.AFTER
|
||||||
))
|
))
|
||||||
private void renderStarpetThingsLate(GraphicsResourceAllocator graphicsResourceAllocator, DeltaTracker deltaTracker, boolean bl, Camera camera, Matrix4f matrix4f, Matrix4f arg5, Matrix4f matrix4f3, GpuBufferSlice gpuBufferSlice, Vector4f vector4f, boolean bl2, CallbackInfo ci, @Local FrameGraphBuilder frameGraphBuilder)
|
private void renderScarpetThinsLate(GraphicsResourceAllocator resourceAllocator, DeltaTracker deltaTracker, boolean renderOutline, CameraRenderState cameraState, Matrix4f modelViewMatrix, GpuBufferSlice terrainFog, Vector4f fogColor, boolean shouldRenderSky, ChunkSectionsToRender chunkSectionsToRender, CallbackInfo ci, @Local FrameGraphBuilder frameGraphBuilder)
|
||||||
{
|
{
|
||||||
// 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.
|
||||||
@@ -58,7 +59,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(renderBuffers, levelRenderState, matrix4f, deltaPartialTick));
|
pass.executes(() -> CarpetClient.shapes.render(renderBuffers, levelRenderState, modelViewMatrix, deltaPartialTick));
|
||||||
featureRenderDispatcher.renderAllFeatures();
|
featureRenderDispatcher.renderAllFeatures();
|
||||||
renderBuffers.bufferSource().endLastBatch();
|
renderBuffers.bufferSource().endLastBatch();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,9 +34,8 @@ public abstract class MinecraftServer_scarpetMixin extends ReentrantBlockableEve
|
|||||||
{
|
{
|
||||||
private CarpetScriptServer scriptServer;
|
private CarpetScriptServer scriptServer;
|
||||||
|
|
||||||
public MinecraftServer_scarpetMixin(String string_1)
|
public MinecraftServer_scarpetMixin(String name, boolean propagatesCrashes) {
|
||||||
{
|
super(name, propagatesCrashes);
|
||||||
super(string_1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Shadow protected abstract void tickServer(BooleanSupplier booleanSupplier_1);
|
@Shadow protected abstract void tickServer(BooleanSupplier booleanSupplier_1);
|
||||||
|
|||||||
@@ -13,13 +13,14 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|||||||
@Mixin(value = MinecraftServer.class, priority = Integer.MAX_VALUE - 10)
|
@Mixin(value = MinecraftServer.class, priority = Integer.MAX_VALUE - 10)
|
||||||
public abstract class MinecraftServer_tickspeedMixin extends ReentrantBlockableEventLoop<TickTask> implements MinecraftServerInterface
|
public abstract class MinecraftServer_tickspeedMixin extends ReentrantBlockableEventLoop<TickTask> implements MinecraftServerInterface
|
||||||
{
|
{
|
||||||
public MinecraftServer_tickspeedMixin(String name)
|
|
||||||
{
|
|
||||||
super(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
CarpetProfiler.ProfilerToken currentSection;
|
CarpetProfiler.ProfilerToken currentSection;
|
||||||
|
|
||||||
|
public MinecraftServer_tickspeedMixin(String name, boolean propagatesCrashes) {
|
||||||
|
super(name, propagatesCrashes);
|
||||||
|
}
|
||||||
|
|
||||||
// Replaced the above cancelled while statement with this one
|
// Replaced the above cancelled while statement with this one
|
||||||
// could possibly just inject that mspt selection at the beginning of the loop, but then adding all mspt's to
|
// could possibly just inject that mspt selection at the beginning of the loop, but then adding all mspt's to
|
||||||
// replace 50L will be a hassle
|
// replace 50L will be a hassle
|
||||||
|
|||||||
@@ -420,21 +420,7 @@ public class ShapesRenderer
|
|||||||
// draw the block itself
|
// draw the block itself
|
||||||
if (blockState.getRenderShape() == RenderShape.MODEL)
|
if (blockState.getRenderShape() == RenderShape.MODEL)
|
||||||
{
|
{
|
||||||
|
client.getBlockRenderer().renderSingleBlock(blockState, matrices, immediate, light, OverlayTexture.NO_OVERLAY);
|
||||||
var bakedModel = client.getBlockRenderer().getBlockModel(blockState);
|
|
||||||
int color = client.getBlockColors().getColor(blockState, client.level, blockPos, 0);
|
|
||||||
//dont know why there is a 0.
|
|
||||||
//see https://github.com/senseiwells/EssentialClient/blob/4db1f291936f502304791ee323f369c206b3021d/src/main/java/me/senseiwells/essentialclient/utils/render/RenderHelper.java#L464
|
|
||||||
float red = (color >> 16 & 0xFF) / 255.0F;
|
|
||||||
float green = (color >> 8 & 0xFF) / 255.0F;
|
|
||||||
float blue = (color & 0xFF) / 255.0F;
|
|
||||||
RenderType type;
|
|
||||||
if (blockState.getBlock() instanceof LeavesBlock && !Minecraft.getInstance().options.cutoutLeaves().get()) {
|
|
||||||
type = RenderTypes.solidMovingBlock();
|
|
||||||
} else {
|
|
||||||
type = ItemBlockRenderTypes.getRenderType(blockState);
|
|
||||||
}
|
|
||||||
client.getBlockRenderer().getModelRenderer().renderModel(matrices.last(), immediate.getBuffer(type), bakedModel, red, green, blue, light, OverlayTexture.NO_OVERLAY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw the block`s entity part
|
// draw the block`s entity part
|
||||||
@@ -461,10 +447,19 @@ public class ShapesRenderer
|
|||||||
BlockEntityRenderState state = client.getBlockEntityRenderDispatcher().tryExtractRenderState(BlockEntity, partialTick, null);
|
BlockEntityRenderState state = client.getBlockEntityRenderDispatcher().tryExtractRenderState(BlockEntity, partialTick, null);
|
||||||
|
|
||||||
|
|
||||||
|
// levelRenderer;;submitBlockEntities does a weird transpose
|
||||||
|
|
||||||
if (blockEntityRenderer != null && state != null)
|
if (blockEntityRenderer != null && state != null)
|
||||||
{
|
{
|
||||||
// testme partial positions
|
// testme partial positions
|
||||||
|
//final Vec3 cameraPos = levelRenderState.cameraRenderState.pos;
|
||||||
|
//final double camX = cameraPos.x();
|
||||||
|
//final double camY = cameraPos.y();
|
||||||
|
//final double camZ = cameraPos.z();
|
||||||
|
//matrices.translate(blockPos.getX() - camX, blockPos.getY() - camY, blockPos.getZ() - camZ);
|
||||||
|
//matrices.mulPose(levelRenderState.cameraRenderState.);
|
||||||
|
|
||||||
|
|
||||||
blockEntityRenderer.submit(state, matrices,client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage(), levelRenderState.cameraRenderState);
|
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());
|
||||||
@@ -477,6 +472,7 @@ public class ShapesRenderer
|
|||||||
if (shape.item != null)
|
if (shape.item != null)
|
||||||
{
|
{
|
||||||
// draw the item
|
// draw the item
|
||||||
|
// this seems to not work now
|
||||||
|
|
||||||
final ItemStackRenderState itemState = new ItemStackRenderState();
|
final ItemStackRenderState itemState = new ItemStackRenderState();
|
||||||
client.getItemModelResolver().updateForTopItem(itemState, shape.item, ItemDisplayContext.FIXED, client.level, null, 0);
|
client.getItemModelResolver().updateForTopItem(itemState, shape.item, ItemDisplayContext.FIXED, client.level, null, 0);
|
||||||
|
|||||||
Reference in new issue
Block a user