package dev.isxander.controlify.gui; import dev.isxander.controlify.api.bind.BindingSupplier; import dev.isxander.controlify.api.buttonguide.ButtonGuidePredicate; import dev.isxander.controlify.api.buttonguide.ButtonRenderPosition; import net.minecraft.client.gui.components.AbstractButton; /** * @see dev.isxander.controlify.mixins.feature.guide.screen.AbstractButtonMixin */ public interface ButtonGuideRenderer { void setButtonGuide(RenderData renderData); static void registerBindingForButton(T button, BindingSupplier binding, ButtonRenderPosition position, ButtonGuidePredicate renderPredicate) { ((ButtonGuideRenderer) button).setButtonGuide(new RenderData<>(binding, position, renderPredicate)); } record RenderData(BindingSupplier binding, ButtonRenderPosition position, ButtonGuidePredicate renderPredicate) { } }