1 package me.shedaniel.lightoverlay.fabric;
3 import me.shedaniel.cloth.api.client.events.v0.ClothClientHooks;
4 import me.shedaniel.lightoverlay.common.AbstractPlatform;
5 import me.shedaniel.lightoverlay.common.LightOverlayCore;
6 import net.fabricmc.api.ClientModInitializer;
7 import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
8 import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
9 import net.fabricmc.loader.api.FabricLoader;
10 import net.minecraft.client.KeyMapping;
11 import net.minecraft.client.renderer.culling.Frustum;
13 import java.nio.file.Path;
15 public class LightOverlay implements ClientModInitializer, AbstractPlatform {
17 public void onInitializeClient() {
18 LightOverlayCore.register(this);
22 public Path getConfigDir() {
23 return FabricLoader.getInstance().getConfigDir();
27 public void registerClientTick(Runnable runnable) {
28 ClientTickEvents.END_CLIENT_TICK.register(minecraft -> runnable.run());
32 public void registerDebugRenderer(Runnable runnable) {
33 ClothClientHooks.DEBUG_RENDER_PRE.register(runnable);
37 public KeyMapping registerKeyBinding(KeyMapping keyMapping) {
38 return KeyBindingHelper.registerKeyBinding(keyMapping);
42 public boolean isFrustumVisible(Frustum frustum, double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
43 return FrustumHelper.isVisible(frustum, minX, minY, minZ, maxX, maxY, maxZ);