PhysicalConnectivity/src/main/kotlin/net/shadowfacts/phycon/PhysicalConnectivityClient.kt

54 lines
1.9 KiB
Kotlin
Raw Normal View History

package net.shadowfacts.phycon
import net.fabricmc.api.ClientModInitializer
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking
2021-02-10 23:55:49 +00:00
import net.fabricmc.fabric.api.client.screenhandler.v1.ScreenRegistry
2021-03-15 23:58:53 +00:00
import net.fabricmc.fabric.api.renderer.v1.RendererAccess
import net.fabricmc.fabric.api.renderer.v1.material.RenderMaterial
2021-02-28 22:56:25 +00:00
import net.shadowfacts.phycon.block.inserter.InserterScreen
2021-03-03 03:20:25 +00:00
import net.shadowfacts.phycon.block.redstone_emitter.RedstoneEmitterScreen
2021-02-10 23:55:49 +00:00
import net.shadowfacts.phycon.init.PhyScreens
2021-02-28 18:48:39 +00:00
import net.shadowfacts.phycon.block.terminal.TerminalScreen
2021-03-15 23:58:53 +00:00
import net.shadowfacts.phycon.client.PhyExtendedModelProvider
import net.shadowfacts.phycon.client.PhyModelProvider
import net.shadowfacts.phycon.networking.ClientReceiver
import net.shadowfacts.phycon.networking.S2CTerminalUpdateDisplayedItems
2021-03-24 21:28:03 +00:00
import net.shadowfacts.phycon.util.TerminalSettings
/**
* @author shadowfacts
*/
object PhysicalConnectivityClient: ClientModInitializer {
2021-03-24 21:28:03 +00:00
val terminalSettings = TerminalSettings()
2021-03-15 23:58:53 +00:00
var screenMaterial: RenderMaterial? = null
private set
override fun onInitializeClient() {
ModelLoadingRegistry.INSTANCE.registerResourceProvider(::PhyModelProvider)
2021-03-15 23:58:53 +00:00
RendererAccess.INSTANCE.renderer?.also { renderer ->
screenMaterial = renderer.materialFinder()
.emissive(0, true)
.disableAo(0, true)
.disableDiffuse(0, true)
.find()
ModelLoadingRegistry.INSTANCE.registerResourceProvider(::PhyExtendedModelProvider)
}
2021-03-02 02:30:13 +00:00
ScreenRegistry.register(PhyScreens.TERMINAL, ::TerminalScreen)
ScreenRegistry.register(PhyScreens.INSERTER, ::InserterScreen)
2021-03-03 03:20:25 +00:00
ScreenRegistry.register(PhyScreens.REDSTONE_EMITTER, ::RedstoneEmitterScreen)
registerGlobalReceiver(S2CTerminalUpdateDisplayedItems)
}
private fun registerGlobalReceiver(receiver: ClientReceiver) {
ClientPlayNetworking.registerGlobalReceiver(receiver.CHANNEL, receiver)
}
}