Skip to content

Commit 5e5e0b6

Browse files
committed
Fix Shader ESP and Chams 2
1 parent f0c7a17 commit 5e5e0b6

File tree

3 files changed

+79
-61
lines changed

3 files changed

+79
-61
lines changed

src/main/java/meteordevelopment/meteorclient/utils/OutlineRenderCommandQueue.java

Lines changed: 76 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import net.minecraft.client.model.ModelPart;
1313
import net.minecraft.client.render.RenderLayer;
1414
import net.minecraft.client.render.block.MovingBlockRenderState;
15+
import net.minecraft.client.render.command.BatchingRenderCommandQueue;
1516
import net.minecraft.client.render.command.ModelCommandRenderer;
1617
import net.minecraft.client.render.command.OrderedRenderCommandQueueImpl;
1718
import net.minecraft.client.render.entity.state.EntityHitboxAndView;
@@ -33,73 +34,88 @@
3334

3435
public class OutlineRenderCommandQueue extends OrderedRenderCommandQueueImpl {
3536
private int color;
37+
private int[] tints;
3638

3739
public void setColor(Color color) {
3840
this.color = color.getPacked();
3941
}
4042

41-
// OrderedRenderCommandQueueImpl
42-
43-
@Override
44-
public void submitDebugHitbox(MatrixStack matrices, EntityRenderState renderState, EntityHitboxAndView debugHitbox) {
45-
}
46-
47-
@Override
48-
public void submitShadowPieces(MatrixStack matrices, float shadowRadius, List<EntityRenderState.ShadowPiece> shadowPieces) {
49-
}
50-
51-
@Override
52-
public void submitLabel(MatrixStack matrices, @Nullable Vec3d nameLabelPos, int y, Text label, boolean notSneaking, int light, double squaredDistanceToCamera, CameraRenderState cameraState) {
53-
}
54-
5543
@Override
56-
public void submitText(MatrixStack matrices, float x, float y, OrderedText text, boolean dropShadow, TextRenderer.TextLayerType layerType, int light, int color, int backgroundColor, int outlineColor) {
44+
public BatchingRenderCommandQueue getBatchingQueue(int i) {
45+
return batchingQueues.computeIfAbsent(i, order -> new OutlineBatchingRenderCommandQueue(this));
5746
}
5847

59-
@Override
60-
public void submitFire(MatrixStack matrices, EntityRenderState renderState, Quaternionf rotation) {
61-
}
62-
63-
@Override
64-
public void submitLeash(MatrixStack matrices, EntityRenderState.LeashData leashData) {
65-
}
66-
67-
@Override
68-
public <S> void submitModel(Model<? super S> model, S state, MatrixStack matrices, RenderLayer renderLayer, int light, int overlay, int tintedColor, @Nullable Sprite sprite, int outlineColor, @Nullable ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlay) {
69-
super.submitModel(model, state, matrices, renderLayer, light, overlay, color, sprite, 0, crumblingOverlay);
70-
}
71-
72-
@Override
73-
public void submitModelPart(ModelPart part, MatrixStack matrices, RenderLayer renderLayer, int light, int overlay, @Nullable Sprite sprite, boolean sheeted, boolean hasGlint, int tintedColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlay, int i) {
74-
super.submitModelPart(part, matrices, renderLayer, light, overlay, sprite, sheeted, hasGlint, color, crumblingOverlay, i);
75-
}
76-
77-
@Override
78-
public void submitBlock(MatrixStack matrices, BlockState state, int light, int overlay, int outlineColor) {
79-
}
80-
81-
@Override
82-
public void submitMovingBlock(MatrixStack matrices, MovingBlockRenderState state) {
83-
}
84-
85-
@Override
86-
public void submitBlockStateModel(MatrixStack matrices, RenderLayer renderLayer, BlockStateModel model, float r, float g, float b, int light, int overlay, int outlineColor) {
87-
r = Color.toRGBAR(color) / 255f;
88-
g = Color.toRGBAG(color) / 255f;
89-
b = Color.toRGBAB(color) / 255f;
90-
91-
super.submitBlockStateModel(matrices, renderLayer, model, r, g, b, light, overlay, 0);
92-
}
93-
94-
@Override
95-
public void submitItem(MatrixStack matrices, ItemDisplayContext displayContext, int light, int overlay, int outlineColors, int[] tintLayers, List<BakedQuad> quads, RenderLayer renderLayer, ItemRenderState.Glint glintType) {
96-
}
97-
98-
@Override
99-
public void submitCustom(MatrixStack matrices, RenderLayer renderLayer, Custom customRenderer) {
100-
}
101-
102-
@Override
103-
public void submitCustom(LayeredCustom customRenderer) {
48+
private class OutlineBatchingRenderCommandQueue extends BatchingRenderCommandQueue {
49+
public OutlineBatchingRenderCommandQueue(OrderedRenderCommandQueueImpl orderedQueueImpl) {
50+
super(orderedQueueImpl);
51+
}
52+
53+
@Override
54+
public void submitDebugHitbox(MatrixStack matrices, EntityRenderState renderState, EntityHitboxAndView debugHitbox) {
55+
}
56+
57+
@Override
58+
public void submitShadowPieces(MatrixStack matrices, float shadowRadius, List<EntityRenderState.ShadowPiece> shadowPieces) {
59+
}
60+
61+
@Override
62+
public void submitLabel(MatrixStack matrices, @Nullable Vec3d nameLabelPos, int y, Text label, boolean notSneaking, int light, double squaredDistanceToCamera, CameraRenderState cameraState) {
63+
}
64+
65+
@Override
66+
public void submitText(MatrixStack matrices, float x, float y, OrderedText text, boolean dropShadow, TextRenderer.TextLayerType layerType, int light, int color, int backgroundColor, int outlineColor) {
67+
}
68+
69+
@Override
70+
public void submitFire(MatrixStack matrices, EntityRenderState renderState, Quaternionf rotation) {
71+
}
72+
73+
@Override
74+
public void submitLeash(MatrixStack matrices, EntityRenderState.LeashData leashData) {
75+
}
76+
77+
@Override
78+
public <S> void submitModel(Model<? super S> model, S state, MatrixStack matrices, RenderLayer renderLayer, int light, int overlay, int tintedColor, @Nullable Sprite sprite, int outlineColor, @Nullable ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlay) {
79+
super.submitModel(model, state, matrices, renderLayer, light, overlay, color, sprite, 0, crumblingOverlay);
80+
}
81+
82+
@Override
83+
public void submitModelPart(ModelPart part, MatrixStack matrices, RenderLayer renderLayer, int light, int overlay, @Nullable Sprite sprite, boolean sheeted, boolean hasGlint, int tintedColor, @Nullable ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlay, int i) {
84+
super.submitModelPart(part, matrices, renderLayer, light, overlay, sprite, sheeted, hasGlint, color, crumblingOverlay, i);
85+
}
86+
87+
@Override
88+
public void submitBlock(MatrixStack matrices, BlockState state, int light, int overlay, int outlineColor) {
89+
}
90+
91+
@Override
92+
public void submitMovingBlock(MatrixStack matrices, MovingBlockRenderState state) {
93+
}
94+
95+
@Override
96+
public void submitBlockStateModel(MatrixStack matrices, RenderLayer renderLayer, BlockStateModel model, float r, float g, float b, int light, int overlay, int outlineColor) {
97+
r = Color.toRGBAR(color) / 255f;
98+
g = Color.toRGBAG(color) / 255f;
99+
b = Color.toRGBAB(color) / 255f;
100+
101+
super.submitBlockStateModel(matrices, renderLayer, model, r, g, b, light, overlay, outlineColor);
102+
}
103+
104+
@Override
105+
public void submitItem(MatrixStack matrices, ItemDisplayContext displayContext, int light, int overlay, int outlineColors, int[] tintLayers, List<BakedQuad> quads, RenderLayer renderLayer, ItemRenderState.Glint glintType) {
106+
if (tints == null || tints[0] != color) {
107+
tints = new int[] { color, color, color, color };
108+
}
109+
110+
super.submitItem(matrices, displayContext, light, overlay, outlineColors, tints, quads, renderLayer, glintType);
111+
}
112+
113+
@Override
114+
public void submitCustom(MatrixStack matrices, RenderLayer renderLayer, Custom customRenderer) {
115+
}
116+
117+
@Override
118+
public void submitCustom(LayeredCustom customRenderer) {
119+
}
104120
}
105121
}

src/main/java/meteordevelopment/meteorclient/utils/render/CustomOutlineVertexConsumerProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public VertexConsumer getBuffer(RenderLayer layer) {
2424
return new CustomVertexConsumer(this.immediate.getBuffer(optional.get()));
2525
}
2626

27-
throw new IllegalStateException("Can't render an outline for this rendertype!");
27+
return NoopVertexConsumer.INSTANCE;
2828
}
2929

3030
public void draw() {

src/main/resources/meteor-client.accesswidener

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ accessible method com/mojang/blaze3d/pipeline/RenderPipeline$Builder withSnip
2222

2323
accessible field net/minecraft/client/render/RenderPhase ITEM_ENTITY_TARGET Lnet/minecraft/client/render/RenderPhase$Target;
2424

25+
accessible field net/minecraft/client/render/command/OrderedRenderCommandQueueImpl batchingQueues Lit/unimi/dsi/fastutil/ints/Int2ObjectAVLTreeMap;
26+
2527
# Auto Fish
2628
accessible class net/minecraft/entity/projectile/FishingBobberEntity$State
2729
accessible field net/minecraft/entity/projectile/FishingBobberEntity state Lnet/minecraft/entity/projectile/FishingBobberEntity$State;

0 commit comments

Comments
 (0)