package net.shadowfacts.phycon.screen.console import net.minecraft.block.entity.BlockEntity import net.minecraft.client.MinecraftClient import net.minecraft.text.TranslatableText import net.shadowfacts.cacao.util.Color import net.shadowfacts.cacao.view.Label import net.shadowfacts.cacao.view.textfield.NumberField import net.shadowfacts.cacao.viewcontroller.ViewController import net.shadowfacts.kiwidsl.dsl import net.shadowfacts.phycon.component.NetworkStackProvider import net.shadowfacts.phycon.networking.C2SConfigureDevice /** * @author shadowfacts */ class ProviderViewController( private val device: T ): ViewController() where T: BlockEntity, T: NetworkStackProvider { override fun viewDidLoad() { super.viewDidLoad() val label = Label(TranslatableText("gui.phycon.console.provider.priority")).apply { textColor = Color.TEXT } view.addSubview(label) val field = NumberField(device.providerPriority) { if (it.number != null) { device.providerPriority = it.number!! MinecraftClient.getInstance().player!!.networkHandler.sendPacket(C2SConfigureDevice(device)) } } view.addSubview(field) val desc = Label(TranslatableText("gui.phycon.console.provider.priority_desc")).apply { textColor = Color.TEXT } view.addSubview(desc) view.solver.dsl { field.widthAnchor equalTo 100 field.heightAnchor equalTo 20 field.rightAnchor equalTo view.rightAnchor field.topAnchor equalTo view.topAnchor label.centerYAnchor equalTo field.centerYAnchor label.rightAnchor equalTo (field.leftAnchor - 4) desc.topAnchor equalTo (field.bottomAnchor + 4) desc.leftAnchor equalTo view.leftAnchor desc.rightAnchor equalTo view.rightAnchor } } }