]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blobdiff - src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java
Performance improvements
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / common / interop / CommonInterop.java
index dd09ffd8dead0239e4e028230f4fa049b867f0a1..321c4c7d2db50a1a995c92c3f0921af27ae5f66b 100644 (file)
@@ -1,5 +1,7 @@
 package com.irtimaled.bbor.common.interop;
 
+import com.irtimaled.bbor.client.ClientRenderer;
+import com.irtimaled.bbor.client.renderers.AbstractRenderer;
 import com.irtimaled.bbor.common.EventBus;
 import com.irtimaled.bbor.common.events.PlayerLoggedIn;
 import com.irtimaled.bbor.common.events.PlayerLoggedOut;
@@ -7,8 +9,11 @@ import com.irtimaled.bbor.common.events.PlayerSubscribed;
 import com.irtimaled.bbor.common.events.ServerTick;
 import com.irtimaled.bbor.common.events.StructuresLoaded;
 import com.irtimaled.bbor.common.events.WorldLoaded;
+import com.irtimaled.bbor.common.models.AbstractBoundingBox;
 import com.irtimaled.bbor.common.models.DimensionId;
 import com.irtimaled.bbor.common.models.ServerPlayer;
+import net.fabricmc.api.EnvType;
+import net.fabricmc.loader.api.FabricLoader;
 import net.minecraft.network.ClientConnection;
 import net.minecraft.server.network.ServerPlayNetworkHandler;
 import net.minecraft.server.network.ServerPlayerEntity;
@@ -19,6 +24,7 @@ import net.minecraft.world.chunk.WorldChunk;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.function.Supplier;
 
 public class CommonInterop {
     public static void chunkLoaded(WorldChunk chunk) {
@@ -59,4 +65,11 @@ public class CommonInterop {
     public static void playerSubscribed(ServerPlayerEntity player) {
         EventBus.publish(new PlayerSubscribed(player.getId(), new ServerPlayer(player)));
     }
+
+    public static <T extends AbstractBoundingBox> AbstractRenderer<T> registerRenderer(Class<? extends T> type, Supplier<AbstractRenderer<T>> renderer) {
+        if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) {
+            return ClientRenderer.registerRenderer(type, renderer);
+        }
+        return null;
+    }
 }