Skip to content

Commit f8a0bdd

Browse files
committed
rendering safety dragonapi compat
1 parent ed5d47a commit f8a0bdd

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.falsepattern.falsetweaks.mixin.mixins.client.rendersafety.dragonapi;
2+
3+
import Reika.DragonAPI.Instantiable.Event.Client.TileEntityRenderEvent;
4+
import com.falsepattern.falsetweaks.config.RenderingSafetyConfig;
5+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
6+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
7+
import lombok.val;
8+
import org.lwjgl.opengl.GL11;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
12+
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
13+
import net.minecraft.tileentity.TileEntity;
14+
15+
@Mixin(value = TileEntityRenderEvent.class,
16+
remap = false)
17+
public abstract class TileEntityRenderEventMixin {
18+
@WrapOperation(method = "fire",
19+
at = @At(value = "INVOKE",
20+
target = "Lnet/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer;renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDF)V"),
21+
require = 0)
22+
private static void wrapTESR(TileEntitySpecialRenderer instance, TileEntity entity, double x, double y, double z, float tickDelta, Operation<Void> original) {
23+
val enable = RenderingSafetyConfig.ENABLE_TESR;
24+
if (enable)
25+
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
26+
original.call(instance, entity, x, y, z, tickDelta);
27+
if (enable)
28+
GL11.glPopAttrib();
29+
}
30+
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,8 @@ public enum Mixin implements IMixin {
342342

343343
//region Render Safety
344344
RenderingSafety_RenderingRegistryMixin(Side.CLIENT, condition(() -> ModuleConfig.RENDERING_SAFETY), "rendersafety.RenderingRegistryMixin"),
345-
RenderingSafety_TileEntityRendererDispatcherMixin(Side.CLIENT, condition(() -> ModuleConfig.RENDERING_SAFETY), "rendersafety.TileEntityRendererDispatcherMixin"),
345+
RenderingSafety_TileEntityRendererDispatcherMixin(Side.CLIENT, condition(() -> ModuleConfig.RENDERING_SAFETY).and(avoid(TargetedMod.DRAGONAPI)), "rendersafety.TileEntityRendererDispatcherMixin"),
346+
RenderingSafety_DragonAPI_TileEntityRenderEventMixin(Side.CLIENT, condition(() -> ModuleConfig.RENDERING_SAFETY).and(require(TargetedMod.DRAGONAPI)), "rendersafety.dragonapi.TileEntityRenderEventMixin"),
346347

347348
;
348349
// @formatter:on

0 commit comments

Comments
 (0)