1
0
forked from Clones/Controlify

refactor binding api (sorry enjarai)

This commit is contained in:
isXander
2023-04-14 20:11:57 +01:00
parent 07b57d5637
commit abe6b27cef
16 changed files with 183 additions and 109 deletions

View File

@ -1,11 +1,10 @@
package dev.isxander.controlify.gui;
import dev.isxander.controlify.api.bind.ControllerBinding;
import dev.isxander.controlify.api.buttonguide.ButtonGuidePredicate;
import dev.isxander.controlify.api.buttonguide.ButtonRenderPosition;
import dev.isxander.controlify.bindings.ControllerBinding;
import dev.isxander.controlify.bindings.ControllerBindings;
import net.minecraft.client.gui.components.AbstractButton;
import net.minecraft.client.gui.screens.Screen;
import java.util.function.Function;
@ -15,10 +14,10 @@ import java.util.function.Function;
public interface ButtonGuideRenderer<T extends AbstractButton> {
void setButtonGuide(RenderData<T> renderData);
static <T extends AbstractButton> void registerBindingForButton(T button, Function<ControllerBindings<?>, ControllerBinding<?>> binding, ButtonRenderPosition position, ButtonGuidePredicate<T> renderPredicate) {
static <T extends AbstractButton> void registerBindingForButton(T button, Function<ControllerBindings<?>, ControllerBinding> binding, ButtonRenderPosition position, ButtonGuidePredicate<T> renderPredicate) {
((ButtonGuideRenderer<T>) button).setButtonGuide(new RenderData<>(binding, position, renderPredicate));
}
record RenderData<T extends AbstractButton>(Function<ControllerBindings<?>, ControllerBinding<?>> binding, ButtonRenderPosition position, ButtonGuidePredicate<T> renderPredicate) {
record RenderData<T extends AbstractButton>(Function<ControllerBindings<?>, ControllerBinding> binding, ButtonRenderPosition position, ButtonGuidePredicate<T> renderPredicate) {
}
}