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;
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;
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) {
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;
+ }
}