From 550fe32e612801daa99493aa0bade083f3330133 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 18 Mar 2020 00:35:36 +0800 Subject: 4.0.14: Better widgets system Signed-off-by: shedaniel --- .../shedaniel/rei/impl/widgets/ButtonWidget.java | 284 +++++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 src/main/java/me/shedaniel/rei/impl/widgets/ButtonWidget.java (limited to 'src/main/java/me/shedaniel/rei/impl/widgets/ButtonWidget.java') diff --git a/src/main/java/me/shedaniel/rei/impl/widgets/ButtonWidget.java b/src/main/java/me/shedaniel/rei/impl/widgets/ButtonWidget.java new file mode 100644 index 000000000..236447ef9 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/impl/widgets/ButtonWidget.java @@ -0,0 +1,284 @@ +package me.shedaniel.rei.impl.widgets; + +import com.mojang.blaze3d.systems.RenderSystem; +import me.shedaniel.math.api.Point; +import me.shedaniel.math.api.Rectangle; +import me.shedaniel.rei.api.REIHelper; +import me.shedaniel.rei.api.widgets.Button; +import me.shedaniel.rei.api.widgets.Tooltip; +import net.minecraft.client.gui.Element; +import net.minecraft.client.sound.PositionedSoundInstance; +import net.minecraft.sound.SoundEvents; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.MathHelper; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.OptionalInt; +import java.util.function.BiFunction; +import java.util.function.Consumer; +import java.util.function.Function; + +public class ButtonWidget extends Button { + private static final Identifier BUTTON_LOCATION = new Identifier("roughlyenoughitems", "textures/gui/button.png"); + private static final Identifier BUTTON_LOCATION_DARK = new Identifier("roughlyenoughitems", "textures/gui/button_dark.png"); + @NotNull + private Rectangle bounds; + private boolean enabled = true; + @NotNull + private String text; + @Nullable + private Integer tint; + @Nullable + private Consumer