Skip to content

Commit 29e45d1

Browse files
committed
Fix resources and EMI plugin on Forge (close #58)
1 parent dbb5004 commit 29e45d1

File tree

8 files changed

+45
-38
lines changed

8 files changed

+45
-38
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
3131
### Fixed
3232

3333
- Fixed a few bugs allowing arbitrary items to be inserted into the Splicing Table and Focal Frame using hoppers or modded item transportation ([#38](https://github.com/object-Object/HexDebug/issues/38), [#53](https://github.com/object-Object/HexDebug/issues/38)).
34+
- Fixed the EMI integration failing to load on Forge.
35+
- Fixed Splicing Table iota renderer resources not being loaded when the game launches on Forge.
3436

3537
### Removed
3638

Common/src/main/kotlin/gay/object/hexdebug/HexDebugClient.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import gay.`object`.hexdebug.config.HexDebugServerConfig
1414
import gay.`object`.hexdebug.gui.splicing.renderers.*
1515
import gay.`object`.hexdebug.gui.splicing.renderers.conditional.IfPathExistsRendererProvider
1616
import gay.`object`.hexdebug.registry.HexDebugBlocks
17-
import gay.`object`.hexdebug.resources.splicing.SplicingTableIotasResourceReloadListener
1817
import gay.`object`.hexdebug.utils.styledHoverName
1918
import gay.`object`.hexdebug.utils.toComponent
2019
import me.shedaniel.autoconfig.AutoConfig
@@ -40,7 +39,6 @@ object HexDebugClient {
4039
DebugProxyClient.init()
4140
addScryingLensOverlays()
4241
registerSplicingTableIotaRenderers()
43-
registerClientResourceReloadListener(HexDebug.id("splicing_iotas"), SplicingTableIotasResourceReloadListener)
4442
}
4543

4644
fun getConfigScreen(parent: Screen): Screen {

Common/src/main/kotlin/gay/object/hexdebug/HexDebugClientAbstractions.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,6 @@ package gay.`object`.hexdebug
55

66
import dev.architectury.injectables.annotations.ExpectPlatform
77
import net.minecraft.client.Minecraft
8-
import net.minecraft.resources.ResourceLocation
9-
import net.minecraft.server.packs.resources.PreparableReloadListener
10-
11-
@ExpectPlatform
12-
fun registerClientResourceReloadListener(id: ResourceLocation, listener: PreparableReloadListener) {
13-
throw AssertionError()
14-
}
158

169
@ExpectPlatform
1710
fun sendHexicalKeyEvent(client: Minecraft, keyCode: Int, scanCode: Int, isPressed: Boolean) {
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,45 @@
11
package gay.`object`.hexdebug.fabric
22

3+
import gay.`object`.hexdebug.HexDebug
34
import gay.`object`.hexdebug.HexDebugClient
5+
import gay.`object`.hexdebug.resources.splicing.SplicingTableIotasResourceReloadListener
46
import net.fabricmc.api.ClientModInitializer
7+
import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener
8+
import net.fabricmc.fabric.api.resource.ResourceManagerHelper
9+
import net.minecraft.resources.ResourceLocation
10+
import net.minecraft.server.packs.PackType
11+
import net.minecraft.server.packs.resources.PreparableReloadListener
12+
import net.minecraft.server.packs.resources.ResourceManager
13+
import net.minecraft.util.profiling.ProfilerFiller
14+
import java.util.concurrent.CompletableFuture
15+
import java.util.concurrent.Executor
516

617
object FabricHexDebugClient : ClientModInitializer {
718
override fun onInitializeClient() {
819
HexDebugClient.init()
20+
21+
registerClientResourceListener(
22+
HexDebug.id("hexdebug_splicing_iotas"),
23+
SplicingTableIotasResourceReloadListener,
24+
)
925
}
1026
}
27+
28+
private fun registerClientResourceListener(id: ResourceLocation, listener: PreparableReloadListener) {
29+
ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(
30+
object : IdentifiableResourceReloadListener {
31+
override fun reload(
32+
preparationBarrier: PreparableReloadListener.PreparationBarrier,
33+
resourceManager: ResourceManager,
34+
preparationsProfiler: ProfilerFiller,
35+
reloadProfiler: ProfilerFiller,
36+
backgroundExecutor: Executor,
37+
gameExecutor: Executor
38+
): CompletableFuture<Void> {
39+
return listener.reload(preparationBarrier, resourceManager, preparationsProfiler, reloadProfiler, backgroundExecutor, gameExecutor)
40+
}
41+
42+
override fun getFabricId() = id
43+
}
44+
)
45+
}

Fabric/src/main/kotlin/gay/object/hexdebug/fabric/HexDebugClientAbstractionsImpl.kt

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,8 @@
33
package gay.`object`.hexdebug.fabric
44

55
import gay.`object`.hexdebug.fabric.interop.FabricHexDebugHexicalInterop
6-
import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener
7-
import net.fabricmc.fabric.api.resource.ResourceManagerHelper
86
import net.fabricmc.loader.api.FabricLoader
97
import net.minecraft.client.Minecraft
10-
import net.minecraft.resources.ResourceLocation
11-
import net.minecraft.server.packs.PackType
12-
import net.minecraft.server.packs.resources.PreparableReloadListener
13-
import net.minecraft.server.packs.resources.ResourceManager
14-
import net.minecraft.util.profiling.ProfilerFiller
15-
import java.util.concurrent.CompletableFuture
16-
import java.util.concurrent.Executor
17-
18-
fun registerClientResourceReloadListener(id: ResourceLocation, listener: PreparableReloadListener) {
19-
ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(
20-
object : IdentifiableResourceReloadListener {
21-
override fun reload(
22-
preparationBarrier: PreparableReloadListener.PreparationBarrier,
23-
resourceManager: ResourceManager,
24-
preparationsProfiler: ProfilerFiller,
25-
reloadProfiler: ProfilerFiller,
26-
backgroundExecutor: Executor,
27-
gameExecutor: Executor
28-
): CompletableFuture<Void> {
29-
return listener.reload(preparationBarrier, resourceManager, preparationsProfiler, reloadProfiler, backgroundExecutor, gameExecutor)
30-
}
31-
32-
override fun getFabricId() = id
33-
}
34-
)
35-
}
368

379
fun sendHexicalKeyEvent(client: Minecraft, keyCode: Int, scanCode: Int, isPressed: Boolean) {
3810
if (FabricLoader.getInstance().isModLoaded("hexical")) {

Forge/src/main/kotlin/gay/object/hexdebug/forge/ForgeHexDebug.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class HexDebugForge {
3131
MOD_BUS.apply {
3232
EventBuses.registerModEventBus(HexDebug.MODID, this)
3333
addListener(ForgeHexDebugClient::init)
34+
addListener(ForgeHexDebugClient::registerClientReloadListeners)
3435
addListener(::initServer)
3536
addListener(::gatherData)
3637
}

Forge/src/main/kotlin/gay/object/hexdebug/forge/ForgeHexDebugClient.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package gay.`object`.hexdebug.forge
22

33
import gay.`object`.hexdebug.HexDebugClient
4+
import gay.`object`.hexdebug.resources.splicing.SplicingTableIotasResourceReloadListener
45
import net.minecraftforge.client.ConfigScreenHandler.ConfigScreenFactory
6+
import net.minecraftforge.client.event.RegisterClientReloadListenersEvent
57
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
68
import thedarkcolour.kotlinforforge.forge.LOADING_CONTEXT
79

@@ -13,4 +15,8 @@ object ForgeHexDebugClient {
1315
ConfigScreenFactory { _, parent -> HexDebugClient.getConfigScreen(parent) }
1416
}
1517
}
18+
19+
fun registerClientReloadListeners(event: RegisterClientReloadListenersEvent) {
20+
event.registerReloadListener(SplicingTableIotasResourceReloadListener)
21+
}
1622
}

Forge/src/main/kotlin/gay/object/hexdebug/forge/interop/ForgeHexDebugEmiPlugin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import dev.emi.emi.api.EmiRegistry
66
import gay.`object`.hexdebug.interop.HexDebugEmiPlugin
77

88
@EmiEntrypoint
9-
object ForgeHexDebugEmiPlugin : EmiPlugin {
9+
class ForgeHexDebugEmiPlugin : EmiPlugin {
1010
override fun register(registry: EmiRegistry) {
1111
HexDebugEmiPlugin.register(registry)
1212
}

0 commit comments

Comments
 (0)