Skip to content

Commit

Permalink
rendering safety dragonapi compat
Browse files Browse the repository at this point in the history
  • Loading branch information
FalsePattern committed Nov 14, 2024
1 parent ed5d47a commit f8a0bdd
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.falsepattern.falsetweaks.mixin.mixins.client.rendersafety.dragonapi;

import Reika.DragonAPI.Instantiable.Event.Client.TileEntityRenderEvent;
import com.falsepattern.falsetweaks.config.RenderingSafetyConfig;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import lombok.val;
import org.lwjgl.opengl.GL11;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;

@Mixin(value = TileEntityRenderEvent.class,
remap = false)
public abstract class TileEntityRenderEventMixin {
@WrapOperation(method = "fire",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer;renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDF)V"),
require = 0)
private static void wrapTESR(TileEntitySpecialRenderer instance, TileEntity entity, double x, double y, double z, float tickDelta, Operation<Void> original) {
val enable = RenderingSafetyConfig.ENABLE_TESR;
if (enable)
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
original.call(instance, entity, x, y, z, tickDelta);
if (enable)
GL11.glPopAttrib();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,8 @@ public enum Mixin implements IMixin {

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

;
// @formatter:on
Expand Down

0 comments on commit f8a0bdd

Please sign in to comment.