package codechicken.lib.render; import codechicken.lib.raytracer.CuboidRayTraceResult; import codechicken.lib.vec.Matrix4; import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.DrawHighlightEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; public class CCRenderEventHandler { public static int renderTime; public static float renderFrame; private static boolean hasInit = false; public static void init() { if (!hasInit) { MinecraftForge.EVENT_BUS.register(new CCRenderEventHandler()); hasInit = true; } } @SubscribeEvent public void clientTick(TickEvent.ClientTickEvent event) { if (event.phase == TickEvent.Phase.END) { renderTime++; } } @SubscribeEvent public void renderTick(TickEvent.RenderTickEvent event) { if (event.phase == TickEvent.Phase.START) { renderFrame = event.renderTickTime; } } @OnlyIn (Dist.CLIENT) @SubscribeEvent (priority = EventPriority.LOW) public void onBlockHighlight(DrawHighlightEvent.HighlightBlock event) { //We have found a CuboidRayTraceResult, Lets render it properly.. BlockRayTraceResult hit = event.getTarget(); if (hit instanceof CuboidRayTraceResult) { CuboidRayTraceResult cuboidHit = (CuboidRayTraceResult) hit; event.setCanceled(true); Matrix4 mat = new Matrix4(event.getMatrix()); mat.translate(cuboidHit.getPos()); RenderUtils.bufferHitbox(mat, event.getBuffers(), event.getInfo(), cuboidHit.cuboid6); } } }