From 0e1ddd2c913656a631e26dd0c560f25179a7dc2d Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Fri, 8 Nov 2024 22:02:10 +0100 Subject: Fix missing tags in REI rendering --- src/main/kotlin/util/MC.kt | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'src/main/kotlin/util/MC.kt') diff --git a/src/main/kotlin/util/MC.kt b/src/main/kotlin/util/MC.kt index 33825f1..1b7739f 100644 --- a/src/main/kotlin/util/MC.kt +++ b/src/main/kotlin/util/MC.kt @@ -3,10 +3,13 @@ package moe.nea.firmament.util import io.github.moulberry.repo.data.Coordinate import java.util.concurrent.ConcurrentLinkedQueue import net.minecraft.client.MinecraftClient +import net.minecraft.client.gui.screen.Screen import net.minecraft.client.gui.screen.ingame.HandledScreen -import net.minecraft.client.option.GameOptions +import net.minecraft.client.network.ClientPlayerEntity import net.minecraft.client.render.WorldRenderer import net.minecraft.client.render.item.ItemRenderer +import net.minecraft.client.world.ClientWorld +import net.minecraft.entity.Entity import net.minecraft.item.Item import net.minecraft.network.packet.c2s.play.CommandExecutionC2SPacket import net.minecraft.registry.BuiltinRegistries @@ -15,7 +18,9 @@ import net.minecraft.registry.RegistryWrapper import net.minecraft.resource.ReloadableResourceManagerImpl import net.minecraft.text.Text import net.minecraft.util.math.BlockPos +import net.minecraft.world.World import moe.nea.firmament.events.TickEvent +import moe.nea.firmament.events.WorldReadyEvent object MC { @@ -30,6 +35,9 @@ object MC { (nextTickTodos.poll() ?: break).invoke() } } + WorldReadyEvent.subscribe("MC:ready") { + this.lastWorld + } } fun sendChat(text: Text) { @@ -81,11 +89,11 @@ object MC { inline val inGameHud get() = instance.inGameHud inline val font get() = instance.textRenderer inline val soundManager get() = instance.soundManager - inline val player get() = instance.player - inline val camera get() = instance.cameraEntity + inline val player: ClientPlayerEntity? get() = instance.player + inline val camera: Entity? get() = instance.cameraEntity inline val guiAtlasManager get() = instance.guiAtlasManager - inline val world get() = instance.world - inline var screen + inline val world: ClientWorld? get() = instance.world + inline var screen: Screen? get() = instance.currentScreen set(value) = instance.setScreen(value) val screenName get() = screen?.title?.unformattedString?.trim() @@ -95,6 +103,12 @@ object MC { val defaultRegistries: RegistryWrapper.WrapperLookup = BuiltinRegistries.createWrapperLookup() inline val currentOrDefaultRegistries get() = currentRegistries ?: defaultRegistries val defaultItems: RegistryWrapper.Impl = defaultRegistries.getOrThrow(RegistryKeys.ITEM) + var lastWorld: World? = null + get() { + field = world ?: field + return field + } + private set } -- cgit