diff options
| author | Daniel She <shekwancheung0528@gmail.com> | 2019-02-14 14:38:18 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-14 14:38:18 +0100 |
| commit | 4d3930cd1d0cb022c0f4908fd8bbc2df55cb21fd (patch) | |
| tree | 063961a16d01e45461b61e22c9d71659a99bff05 /src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java | |
| parent | b84a30d39b0f070c418b33ade4d295fee651ea47 (diff) | |
| download | RoughlyEnoughItems-4d3930cd1d0cb022c0f4908fd8bbc2df55cb21fd.tar.gz RoughlyEnoughItems-4d3930cd1d0cb022c0f4908fd8bbc2df55cb21fd.tar.bz2 RoughlyEnoughItems-4d3930cd1d0cb022c0f4908fd8bbc2df55cb21fd.zip | |
REI Update v2.3 (#35)
* Fixes #33
* Fixes #32
* Fix #29
* Highlight Cursor
* Fix #15
* Remove Unwanted Imports
* Making it actually v2.3
* LOLCATS & Upside Down Lanuage + Credits Screen
* better credits
* Better Config
* Better Config Button Handling + Campfire text using container sub-colour
* Better Plugin Handling
* Split ItemRegisterer out from ClientHelper
* Option to disable default plugin.
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java b/src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java new file mode 100644 index 000000000..013dd9cbe --- /dev/null +++ b/src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java @@ -0,0 +1,70 @@ +package me.shedaniel.rei.gui.config; + +import me.shedaniel.rei.client.ClientHelper; +import me.shedaniel.rei.gui.widget.ButtonWidget; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.audio.PositionedSoundInstance; +import net.minecraft.client.gui.widget.EntryListWidget; +import net.minecraft.client.util.Window; +import net.minecraft.sound.SoundEvents; +import net.minecraft.text.TextComponent; + +import java.awt.*; + +public class ConfigEntry extends EntryListWidget.Entry<ConfigEntry> { + + private TextComponent nameComponent; + private ConfigEntryButtonProvider buttonProvider; + private ButtonWidget buttonWidget; + + public ConfigEntry(TextComponent nameComponent, ConfigEntryButtonProvider buttonProvider) { + this.nameComponent = nameComponent; + this.buttonProvider = buttonProvider; + this.buttonWidget = new ButtonWidget(0, 0, 150, 20, "") { + @Override + public boolean onMouseClick(int button, double mouseX, double mouseY) { + if (getBounds().contains(mouseX, mouseY) && enabled) + if (buttonProvider.onPressed(button, mouseX, mouseY)) { + MinecraftClient.getInstance().getSoundLoader().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F)); + return true; + } + return false; + } + + @Override + public void onPressed(int button, double mouseX, double mouseY) {} + }; + } + + @Override + public void draw(int entryWidth, int height, int i3, int i4, boolean isSelected, float delta) { + int x = getX(); + int y = getY(); + Window window = MinecraftClient.getInstance().window; + Point mouse = ClientHelper.getMouseLocation(); + MinecraftClient.getInstance().fontRenderer.drawWithShadow(nameComponent.getFormattedText(), x + 5, y + 5, -1); + this.buttonWidget.text = buttonProvider.getText(); + this.buttonWidget.getBounds().setLocation(window.getScaledWidth() - 190, y + 2); + buttonProvider.draw(buttonWidget, mouse, delta); + } + + @Override + public boolean mouseClicked(double double_1, double double_2, int int_1) { + if (buttonWidget.mouseClicked(double_1, double_2, int_1)) + return true; + return false; + } + + interface ConfigEntryButtonProvider { + + public boolean onPressed(int button, double mouseX, double mouseY); + + public String getText(); + + default public void draw(ButtonWidget button, Point mouse, float delta) { + button.draw(mouse.x, mouse.y, delta); + } + + } + +} |
