package net.shadowfacts.phycon.plugin.rei import me.shedaniel.math.Rectangle import me.shedaniel.rei.api.client.REIRuntime import me.shedaniel.rei.api.client.plugins.REIClientPlugin import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry import net.fabricmc.api.ClientModInitializer import net.minecraft.client.MinecraftClient import net.shadowfacts.phycon.block.terminal.AbstractTerminalScreen /** * @author shadowfacts */ object PhyConPlugin: ClientModInitializer, REIClientPlugin { const val MODID = "phycon_rei" override fun onInitializeClient() { AbstractTerminalScreen.registerClickHandler { mouseX, mouseY, button -> REIRuntime.getInstance().searchTextField?.also { if (it.isFocused) { this.terminalVC.searchField.resignFirstResponder() } else { this.terminalVC.searchField.becomeFirstResponder() } } null } } override fun registerScreens(registry: ScreenRegistry) { registry.exclusionZones().register(AbstractTerminalScreen::class.java) { val screen = MinecraftClient.getInstance().currentScreen as AbstractTerminalScreen<*, *> val view = screen.terminalVC.settingsView val rect = view.convert(view.bounds, to = null) listOf( Rectangle(rect.left.toInt(), rect.top.toInt(), 20, 20) ) } } }