2019-10-29 19:15:27 +00:00
|
|
|
package net.shadowfacts.phycon
|
|
|
|
|
|
|
|
import net.fabricmc.api.ClientModInitializer
|
2021-03-06 19:23:41 +00:00
|
|
|
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry
|
2021-02-21 17:00:32 +00:00
|
|
|
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-03-28 17:50:11 +00:00
|
|
|
import net.shadowfacts.phycon.block.terminal.CraftingTerminalScreen
|
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
|
2021-03-06 19:23:41 +00:00
|
|
|
import net.shadowfacts.phycon.client.PhyModelProvider
|
2021-02-21 17:00:32 +00:00
|
|
|
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
|
2019-10-29 19:15:27 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @author shadowfacts
|
|
|
|
*/
|
|
|
|
object PhysicalConnectivityClient: ClientModInitializer {
|
2021-02-21 17:00:32 +00:00
|
|
|
|
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
|
|
|
|
|
2019-10-29 19:15:27 +00:00
|
|
|
override fun onInitializeClient() {
|
2021-03-06 19:23:41 +00:00
|
|
|
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)
|
2021-03-28 17:50:11 +00:00
|
|
|
ScreenRegistry.register(PhyScreens.CRAFTING_TERMINAL, ::CraftingTerminalScreen)
|
2021-03-02 02:30:13 +00:00
|
|
|
ScreenRegistry.register(PhyScreens.INSERTER, ::InserterScreen)
|
2021-03-03 03:20:25 +00:00
|
|
|
ScreenRegistry.register(PhyScreens.REDSTONE_EMITTER, ::RedstoneEmitterScreen)
|
2021-02-21 17:00:32 +00:00
|
|
|
|
|
|
|
registerGlobalReceiver(S2CTerminalUpdateDisplayedItems)
|
2019-10-29 19:15:27 +00:00
|
|
|
}
|
2021-02-21 17:00:32 +00:00
|
|
|
|
|
|
|
private fun registerGlobalReceiver(receiver: ClientReceiver) {
|
|
|
|
ClientPlayNetworking.registerGlobalReceiver(receiver.CHANNEL, receiver)
|
|
|
|
}
|
|
|
|
|
2019-10-29 19:15:27 +00:00
|
|
|
}
|