Skip to content

Commit ed5d47a

Browse files
committed
consistent fix for the Z fighting bug
1 parent 4f3e9ce commit ed5d47a

5 files changed

Lines changed: 22 additions & 94 deletions

File tree

build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,6 @@ dependencies {
8282

8383
compileOnly(deobfCurse("redstone-paste-67508:2211249"))
8484

85-
//V33a
86-
compileOnly(deobfCurse("chromaticraft-235590:4721192"))
87-
8885
//V33b
8986
compileOnly(deobfCurse("dragonapi-235591:4722480"))
9087

src/main/java/com/falsepattern/falsetweaks/mixin/mixins/client/triangulator/RenderBlocksUltraMixin.java

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,13 @@ public abstract class RenderBlocksUltraMixin implements IRenderBlocksMixin {
123123
private Vector3ic frontDir;
124124
private boolean[] states;
125125
private double[] bounds;
126-
@Setter
127-
private boolean reusePreviousStates;
126+
private boolean[] reusePreviousStates;
127+
128+
@Override
129+
public void reusePreviousStates(boolean state) {
130+
Arrays.fill(reusePreviousStates, state);
131+
}
132+
128133
@Setter
129134
private boolean enableMultiRenderReuse;
130135
private boolean disableCrackFix;
@@ -586,9 +591,6 @@ public boolean renderWithAO(Block block, int x, int y, int z, float r, float g,
586591
drewSomething |= renderFace(Facing.XPOS);
587592

588593
this.enableAO = false;
589-
if (drewSomething && enableMultiRenderReuse) {
590-
reusePreviousStates = true;
591-
}
592594
return drewSomething;
593595
}
594596

@@ -597,18 +599,23 @@ public boolean renderWithAO(Block block, int x, int y, int z, float r, float g,
597599
require = 2)
598600
private void setupStates(CallbackInfo ci) {
599601
states = new boolean[6];
602+
reusePreviousStates = new boolean[6];
600603
}
601604

602605
private void reuse(Facing.Direction dir) {
603-
if (reusePreviousStates) {
604-
((ITriangulatorTessellator) Compat.tessellator()).alternativeTriangulation(states[dir.ordinal()]);
606+
val ord = dir.ordinal();
607+
if (reusePreviousStates[ord]) {
608+
((ITriangulatorTessellator) Compat.tessellator()).alternativeTriangulation(states[ord]);
605609
} else {
606610
states[dir.ordinal()] = ((ITriangulatorTessellator) Compat.tessellator()).alternativeTriangulation();
607611
}
612+
if (enableMultiRenderReuse) {
613+
reusePreviousStates[ord] = true;
614+
}
608615
}
609616

610-
private void aoFix() {
611-
if (reusePreviousStates) {
617+
private void aoFix(Facing.Direction dir) {
618+
if (reusePreviousStates[dir.ordinal()]) {
612619
return;
613620
}
614621
var avgTopLeft = avg(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft);
@@ -643,7 +650,7 @@ private void aoFix() {
643650
at = @At(value = "HEAD"),
644651
require = 1)
645652
private void reuseXNeg(Block p_147798_1_, double p_147798_2_, double p_147798_4_, double p_147798_6_, IIcon p_147798_8_, CallbackInfo ci) {
646-
aoFix();
653+
aoFix(Facing.Direction.FACE_XNEG);
647654
reuse(Facing.Direction.FACE_XNEG);
648655
}
649656

@@ -661,7 +668,7 @@ private double xNegBounds(RenderBlocks instance) {
661668
at = @At(value = "HEAD"),
662669
require = 1)
663670
private void reuseXPos(Block p_147798_1_, double p_147798_2_, double p_147798_4_, double p_147798_6_, IIcon p_147798_8_, CallbackInfo ci) {
664-
aoFix();
671+
aoFix(Facing.Direction.FACE_XPOS);
665672
reuse(Facing.Direction.FACE_XPOS);
666673
}
667674

@@ -679,7 +686,7 @@ private double xPosBounds(RenderBlocks instance) {
679686
at = @At(value = "HEAD"),
680687
require = 1)
681688
private void reuseYNeg(Block p_147798_1_, double p_147798_2_, double p_147798_4_, double p_147798_6_, IIcon p_147798_8_, CallbackInfo ci) {
682-
aoFix();
689+
aoFix(Facing.Direction.FACE_YNEG);
683690
reuse(Facing.Direction.FACE_YNEG);
684691
}
685692

@@ -698,7 +705,7 @@ private double yNegBounds(RenderBlocks instance) {
698705
at = @At(value = "HEAD"),
699706
require = 1)
700707
private void reuseYPos(Block p_147798_1_, double p_147798_2_, double p_147798_4_, double p_147798_6_, IIcon p_147798_8_, CallbackInfo ci) {
701-
aoFix();
708+
aoFix(Facing.Direction.FACE_YPOS);
702709
reuse(Facing.Direction.FACE_YPOS);
703710
}
704711

@@ -717,7 +724,7 @@ private double yPosBounds(RenderBlocks instance) {
717724
at = @At(value = "HEAD"),
718725
require = 1)
719726
private void reuseZNeg(Block p_147798_1_, double p_147798_2_, double p_147798_4_, double p_147798_6_, IIcon p_147798_8_, CallbackInfo ci) {
720-
aoFix();
727+
aoFix(Facing.Direction.FACE_ZNEG);
721728
reuse(Facing.Direction.FACE_ZNEG);
722729
}
723730

@@ -735,7 +742,7 @@ private double zNegBounds(RenderBlocks instance) {
735742
at = @At(value = "HEAD"),
736743
require = 1)
737744
private void reuseZPos(Block p_147798_1_, double p_147798_2_, double p_147798_4_, double p_147798_6_, IIcon p_147798_8_, CallbackInfo ci) {
738-
aoFix();
745+
aoFix(Facing.Direction.FACE_ZPOS);
739746
reuse(Facing.Direction.FACE_ZPOS);
740747
}
741748

src/main/java/com/falsepattern/falsetweaks/mixin/mixins/client/triangulator/chromaticraft/RuneRendererMixin.java

Lines changed: 0 additions & 70 deletions
This file was deleted.

src/main/java/com/falsepattern/falsetweaks/mixin/plugin/standard/Mixin.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,6 @@ public enum Mixin implements IMixin {
7979
TRIANGULATOR.and(REQUIRE_OPTIFINE_WITH_SHADERS),
8080
"triangulator.optifine.TessellatorOptiFineMixin"),
8181

82-
//ChromatiCraft
83-
Tri_CCRuneRendererMixin(Side.CLIENT,
84-
TRIANGULATOR.and(require(TargetedMod.CHROMATICRAFT)),
85-
"triangulator.chromaticraft.RuneRendererMixin"),
86-
8782
//RedstonePaste
8883
Tri_RedstonePasteHighlighterMixin(Side.CLIENT,
8984
TRIANGULATOR.and(require(TargetedMod.REDSTONEPASTE)),

src/main/java/com/falsepattern/falsetweaks/mixin/plugin/standard/TargetedMod.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ public enum TargetedMod implements ITargetedMod {
4343
OPTIFINE_WITH_SHADERS("OptiFine with shaders", false, contains("optifine").and(OPTIFINE_SHADERSMOD_VERSIONS)),
4444
OPTIFINE_WITH_DYNAMIC_LIGHTS("OptiFine with dynamic lights", false, contains("optifine").and(OPTIFINE_DYNAMIC_LIGHTS_VERSIONS)),
4545
FASTCRAFT("FastCraft", false, contains("fastcraft")),
46-
CHROMATICRAFT("ChromatiCraft", false, contains("chromaticraft")),
4746
REDSTONEPASTE("RedstonePaste", false, contains("redstonepaste")),
4847
APPARATUS("Apparatus", false, contains("apparatus")),
4948
RAILCRAFT("Railcraft", true, contains("railcraft")),

0 commit comments

Comments
 (0)