X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Firtimaled%2Fbbor%2Fcommon%2Finterop%2FCommonInterop.java;h=321c4c7d2db50a1a995c92c3f0921af27ae5f66b;hb=45bc97ba0043b6992f2280e25274bae98b1ef8fd;hp=5d8b2b0bff8457df6071a119c3433c61f88781fc;hpb=6b5ec64afde48fba0c8617ad10b028a94315b75d;p=BoundingBoxOutlineReloaded.git diff --git a/src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java b/src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java index 5d8b2b0..321c4c7 100644 --- a/src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java +++ b/src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java @@ -1,23 +1,36 @@ 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.*; +import com.irtimaled.bbor.common.events.PlayerLoggedIn; +import com.irtimaled.bbor.common.events.PlayerLoggedOut; +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.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.ServerPlayNetHandler; -import net.minecraft.world.ServerWorld; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.gen.feature.structure.StructureStart; +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 net.minecraft.server.world.ServerWorld; +import net.minecraft.structure.StructureStart; +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(Chunk chunk) { - DimensionId dimensionId = DimensionId.from(chunk.getWorld().getDimension().getType()); - Map structures = chunk.getStructureStarts(); + public static void chunkLoaded(WorldChunk chunk) { + DimensionId dimensionId = DimensionId.from(chunk.getWorld().getRegistryKey()); + Map> structures = new HashMap<>(); + chunk.getStructureStarts().entrySet().forEach(es -> structures.put(es.getKey().getName(), es.getValue())); if (structures.size() > 0) EventBus.publish(new StructuresLoaded(structures, dimensionId)); } @@ -36,20 +49,27 @@ public class CommonInterop { } public static void playerLoggedIn(ServerPlayerEntity player) { - ServerPlayNetHandler connection = player.connection; + ServerPlayNetworkHandler connection = player.networkHandler; if (connection == null) return; - NetworkManager networkManager = connection.netManager; - if (networkManager.isLocalChannel()) return; + ClientConnection networkManager = connection.connection; + if (networkManager.isLocal()) return; EventBus.publish(new PlayerLoggedIn(new ServerPlayer(player))); } public static void playerLoggedOut(ServerPlayerEntity player) { - EventBus.publish(new PlayerLoggedOut(player.getEntityId())); + EventBus.publish(new PlayerLoggedOut(player.getId())); } public static void playerSubscribed(ServerPlayerEntity player) { - EventBus.publish(new PlayerSubscribed(player.getEntityId(), new ServerPlayer(player))); + EventBus.publish(new PlayerSubscribed(player.getId(), new ServerPlayer(player))); + } + + public static AbstractRenderer registerRenderer(Class type, Supplier> renderer) { + if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) { + return ClientRenderer.registerRenderer(type, renderer); + } + return null; } }