aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-03-30 20:21:18 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-03-30 20:21:18 +0800
commit16e35bc7ddb5924008be5be1b60db29d461d72b5 (patch)
tree6b4405a47f6a902f4900e72d140304e3524ee0b5 /src/main/java
parentd5b270a829f5488ba6ab72778745da1f64769ff8 (diff)
downloadRoughlyEnoughItems-16e35bc7ddb5924008be5be1b60db29d461d72b5.tar.gz
RoughlyEnoughItems-16e35bc7ddb5924008be5be1b60db29d461d72b5.tar.bz2
RoughlyEnoughItems-16e35bc7ddb5924008be5be1b60db29d461d72b5.zip
Using Cloth events instead of overwriting methods
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/shedaniel/rei/api/TabGetter.java5
-rw-r--r--src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java6
-rw-r--r--src/main/java/me/shedaniel/rei/client/ScreenHelper.java14
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java43
-rw-r--r--src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java30
-rw-r--r--src/main/java/me/shedaniel/rei/gui/config/ItemListOrderingEntry.java12
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsEntry.java20
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java24
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsItem.java24
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java4
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java95
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java15
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java15
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/DraggableWidget.java6
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/HighlightableWidget.java15
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java16
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java12
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/LabelWidget.java7
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java12
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java3
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java7
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/TextFieldWidget.java9
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/Widget.java9
-rw-r--r--src/main/java/me/shedaniel/rei/listeners/CreativePlayerInventoryScreenHooks.java9
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java20
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinCraftingTableScreen.java8
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java37
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinPlayerInventoryScreen.java8
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinTabGetter.java19
-rw-r--r--src/main/java/me/shedaniel/rei/utils/ClothRegistry.java39
30 files changed, 263 insertions, 280 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/TabGetter.java b/src/main/java/me/shedaniel/rei/api/TabGetter.java
deleted file mode 100644
index 8afe43f30..000000000
--- a/src/main/java/me/shedaniel/rei/api/TabGetter.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package me.shedaniel.rei.api;
-
-public interface TabGetter {
- int rei_getSelectedTab();
-}
diff --git a/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java b/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java
index 539897376..52f5721a8 100644
--- a/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java
+++ b/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java
@@ -167,7 +167,7 @@ public class RecipeHelperImpl implements RecipeHelper {
plugins.sort((first, second) -> {
return second.getPriority() - first.getPriority();
});
- RoughlyEnoughItemsCore.LOGGER.info("Loading %d REI plugins: %s", plugins.size(), String.join(", ", plugins.stream().map(plugin -> {
+ RoughlyEnoughItemsCore.LOGGER.info("[REI] Loading %d plugins: %s", plugins.size(), String.join(", ", plugins.stream().map(plugin -> {
return RoughlyEnoughItemsCore.getPluginIdentifier(plugin).map(Identifier::toString).orElseGet(() -> "null");
}).collect(Collectors.toList())));
Collections.reverse(plugins);
@@ -184,8 +184,8 @@ public class RecipeHelperImpl implements RecipeHelper {
if (pluginDisabler.isFunctionEnabled(identifier, PluginFunction.REGISTER_SPEED_CRAFT))
plugin.registerSpeedCraft(this);
});
- RoughlyEnoughItemsCore.LOGGER.info("Registered REI Categories: " + String.join(", ", categories.stream().map(RecipeCategory::getCategoryName).collect(Collectors.toList())));
- RoughlyEnoughItemsCore.LOGGER.info("Registered %d recipes for REI.", recipeCount.get());
+ RoughlyEnoughItemsCore.LOGGER.info("[REI] Registered Categories: " + String.join(", ", categories.stream().map(RecipeCategory::getCategoryName).collect(Collectors.toList())));
+ RoughlyEnoughItemsCore.LOGGER.info("[REI] Registered %d recipes.", recipeCount.get());
}
@Override
diff --git a/src/main/java/me/shedaniel/rei/client/ScreenHelper.java b/src/main/java/me/shedaniel/rei/client/ScreenHelper.java
index fa109b98d..a0bb52ae4 100644
--- a/src/main/java/me/shedaniel/rei/client/ScreenHelper.java
+++ b/src/main/java/me/shedaniel/rei/client/ScreenHelper.java
@@ -1,7 +1,6 @@
package me.shedaniel.rei.client;
import com.google.common.collect.Lists;
-import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.gui.ContainerScreenOverlay;
import me.shedaniel.rei.gui.widget.TextFieldWidget;
import me.shedaniel.rei.listeners.ContainerScreenHooks;
@@ -9,9 +8,6 @@ import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.event.client.ClientTickCallback;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.ContainerScreen;
-import net.minecraft.client.gui.InputListener;
-import net.minecraft.client.gui.widget.ButtonWidget;
-import net.minecraft.client.gui.widget.RecipeBookButtonWidget;
import net.minecraft.client.util.Window;
import net.minecraft.item.ItemStack;
import org.apache.logging.log4j.util.TriConsumer;
@@ -47,16 +43,6 @@ public class ScreenHelper implements ClientModInitializer {
return getLastOverlay(false, false);
}
- public static void disableRecipeBook(ContainerScreen lastContainerScreen, List<InputListener> listeners, List<ButtonWidget> buttonWidgets) {
- RoughlyEnoughItemsCore.LOGGER.info("%d %d", listeners.size(), buttonWidgets.size());
- for(InputListener listener : listeners)
- if (listener instanceof RecipeBookButtonWidget)
- listeners.remove(listener);
- for(ButtonWidget buttonWidget : buttonWidgets)
- if (buttonWidget instanceof RecipeBookButtonWidget)
- buttonWidgets.remove(buttonWidget);
- }
-
public static ContainerScreen getLastContainerScreen() {
return lastContainerScreen;
}
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index ecbd9c481..1963f7f4c 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -10,10 +10,7 @@ import me.shedaniel.rei.client.Weather;
import me.shedaniel.rei.gui.widget.*;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.audio.PositionedSoundInstance;
-import net.minecraft.client.gui.ContainerScreen;
-import net.minecraft.client.gui.InputListener;
-import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.ScreenComponent;
+import net.minecraft.client.gui.*;
import net.minecraft.client.render.GuiLighting;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.util.Window;
@@ -32,7 +29,7 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
-public class ContainerScreenOverlay extends ScreenComponent {
+public class ContainerScreenOverlay extends AbstractParentElement implements Drawable {
private static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png");
private static final List<QueuedTooltip> QUEUED_TOOLTIPS = Lists.newArrayList();
@@ -189,10 +186,11 @@ public class ContainerScreenOverlay extends ScreenComponent {
page = MathHelper.clamp(page, 0, getTotalPage());
this.text = String.format("%s/%s", page + 1, getTotalPage() + 1);
super.render(mouseX, mouseY, partialTicks);
- if (isHighlighted(mouseX, mouseY))
- addTooltip(QueuedTooltip.create(I18n.translate("text.rei.go_back_first_page").split("\n")));
- else if (focused)
- ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(new Point(x, y), I18n.translate("text.rei.go_back_first_page").split("\n")));
+ }
+
+ @Override
+ public Optional<String> getTooltips() {
+ return Optional.ofNullable(I18n.translate("text.rei.go_back_first_page"));
}
@Override
@@ -311,7 +309,8 @@ public class ContainerScreenOverlay extends ScreenComponent {
return rectangle;
}
- public void drawOverlay(int mouseX, int mouseY, float partialTicks) {
+ @Override
+ public void render(int mouseX, int mouseY, float partialTicks) {
List<ItemStack> currentStacks = ClientHelper.getInventoryItemsTypes();
if (getLeft() != lastLeft)
onInitialized(true);
@@ -321,7 +320,7 @@ public class ContainerScreenOverlay extends ScreenComponent {
}
GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
GuiLighting.disable();
- this.draw(mouseX, mouseY, partialTicks);
+ this.renderWidgets(mouseX, mouseY, partialTicks);
GuiLighting.disable();
Screen currentScreen = MinecraftClient.getInstance().currentScreen;
if (!(currentScreen instanceof RecipeViewingScreen) || !((RecipeViewingScreen) currentScreen).choosePageActivated)
@@ -353,11 +352,11 @@ public class ContainerScreenOverlay extends ScreenComponent {
QUEUED_TOOLTIPS.add(queuedTooltip);
}
- public void draw(int int_1, int int_2, float float_1) {
+ public void renderWidgets(int int_1, int int_2, float float_1) {
if (!ScreenHelper.isOverlayVisible())
return;
- buttonLeft.enabled = itemListOverlay.getWidgets().size() > 0;
- buttonRight.enabled = itemListOverlay.getWidgets().size() > 0;
+ buttonLeft.enabled = itemListOverlay.children().size() > 0;
+ buttonRight.enabled = itemListOverlay.children().size() > 0;
widgets.forEach(widget -> {
GuiLighting.disable();
widget.render(int_1, int_2, float_1);
@@ -415,7 +414,7 @@ public class ContainerScreenOverlay extends ScreenComponent {
@Override
public boolean keyPressed(int int_1, int int_2, int int_3) {
if (ScreenHelper.isOverlayVisible())
- for(InputListener listener : widgets)
+ for(Element listener : widgets)
if (listener.keyPressed(int_1, int_2, int_3))
return true;
if (ClientHelper.HIDE.matchesKey(int_1, int_2)) {
@@ -442,14 +441,14 @@ public class ContainerScreenOverlay extends ScreenComponent {
public boolean charTyped(char char_1, int int_1) {
if (!ScreenHelper.isOverlayVisible())
return false;
- for(InputListener listener : children())
+ for(Element listener : children())
if (listener.charTyped(char_1, int_1))
return true;
return super.charTyped(char_1, int_1);
}
@Override
- public List<? extends InputListener> children() {
+ public List<? extends Element> children() {
return widgets;
}
@@ -457,7 +456,15 @@ public class ContainerScreenOverlay extends ScreenComponent {
public boolean mouseClicked(double double_1, double double_2, int int_1) {
if (!ScreenHelper.isOverlayVisible())
return false;
- return super.mouseClicked(double_1, double_2, int_1);
+ for(Element element : this.children()) {
+ if (element.mouseClicked(double_1, double_2, int_1)) {
+ this.method_20084(element);
+ if (int_1 == 0)
+ this.setDragging(true);
+ return true;
+ }
+ }
+ return false;
}
}
diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
index 876e6391e..06ed3f6ec 100644
--- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
+++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
@@ -11,7 +11,7 @@ import me.shedaniel.rei.gui.widget.*;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.audio.PositionedSoundInstance;
import net.minecraft.client.gui.ContainerScreen;
-import net.minecraft.client.gui.InputListener;
+import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.render.GuiLighting;
import net.minecraft.client.resource.language.I18n;
@@ -144,10 +144,11 @@ public class RecipeViewingScreen extends Screen {
public void render(int mouseX, int mouseY, float partialTicks) {
this.text = selectedCategory.getCategoryName();
super.render(mouseX, mouseY, partialTicks);
- if (isHighlighted(mouseX, mouseY))
- ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(I18n.translate("text.rei.view_all_categories").split("\n")));
- else if (focused)
- ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(new Point(x, y), I18n.translate("text.rei.view_all_categories").split("\n")));
+ }
+
+ @Override
+ public Optional<String> getTooltips() {
+ return Optional.ofNullable(I18n.translate("text.rei.view_all_categories"));
}
@Override
@@ -196,10 +197,11 @@ public class RecipeViewingScreen extends Screen {
public void render(int mouseX, int mouseY, float partialTicks) {
this.text = String.format("%d/%d", page + 1, getTotalPages(selectedCategory));
super.render(mouseX, mouseY, partialTicks);
- if (isHighlighted(mouseX, mouseY))
- ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(I18n.translate("text.rei.choose_page").split("\n")));
- else if (focused)
- ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(new Point(x, y), I18n.translate("text.rei.choose_page").split("\n")));
+ }
+
+ @Override
+ public Optional<String> getTooltips() {
+ return Optional.ofNullable(I18n.translate("text.rei.choose_page"));
}
@Override
@@ -331,7 +333,7 @@ public class RecipeViewingScreen extends Screen {
GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
GuiLighting.disable();
tabs.stream().filter(TabWidget::isSelected).forEach(tabWidget -> tabWidget.render(mouseX, mouseY, delta));
- ScreenHelper.getLastOverlay().drawOverlay(mouseX, mouseY, delta);
+ ScreenHelper.getLastOverlay().render(mouseX, mouseY, delta);
if (choosePageActivated) {
blitOffset = 500.0f;
this.fillGradient(0, 0, this.width, this.height, -1072689136, -804253680);
@@ -355,7 +357,7 @@ public class RecipeViewingScreen extends Screen {
return true;
return false;
}
- for(InputListener listener : children())
+ for(Element listener : children())
if (listener.charTyped(char_1, int_1))
return true;
return super.charTyped(char_1, int_1);
@@ -383,7 +385,7 @@ public class RecipeViewingScreen extends Screen {
@Override
public boolean mouseScrolled(double i, double j, double amount) {
- for(InputListener listener : children())
+ for(Element listener : children())
if (listener.mouseScrolled(i, j, amount))
return true;
if (getBounds().contains(ClientUtils.getMouseLocation())) {
@@ -413,7 +415,7 @@ public class RecipeViewingScreen extends Screen {
init();
return false;
}
- for(InputListener entry : children())
+ for(Element entry : children())
if (entry.mouseClicked(double_1, double_2, int_1)) {
method_20084(entry);
if (int_1 == 0)
@@ -424,7 +426,7 @@ public class RecipeViewingScreen extends Screen {
}
@Override
- public InputListener getFocused() {
+ public Element getFocused() {
if (choosePageActivated)
return recipeChoosePageWidget;
return super.getFocused();
diff --git a/src/main/java/me/shedaniel/rei/gui/config/ItemListOrderingEntry.java b/src/main/java/me/shedaniel/rei/gui/config/ItemListOrderingEntry.java
index 11b6a344d..118668bb7 100644
--- a/src/main/java/me/shedaniel/rei/gui/config/ItemListOrderingEntry.java
+++ b/src/main/java/me/shedaniel/rei/gui/config/ItemListOrderingEntry.java
@@ -7,7 +7,7 @@ import me.shedaniel.cloth.gui.ClothConfigScreen.ListWidget;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.client.ItemListOrdering;
import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.InputListener;
+import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.util.Window;
@@ -21,7 +21,7 @@ public class ItemListOrderingEntry extends ListEntry {
private AtomicReference<Pair<ItemListOrdering, Boolean>> value;
private ButtonWidget buttonWidget;
private ButtonWidget resetButton;
- private List<InputListener> widgets;
+ private List<Element> widgets;
public ItemListOrderingEntry(String fieldName, Pair<ItemListOrdering, Boolean> val) {
super(fieldName);
@@ -53,7 +53,7 @@ public class ItemListOrderingEntry extends ListEntry {
}
@Override
- public void draw(int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) {
+ public void render(int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) {
Window window = MinecraftClient.getInstance().window;
this.resetButton.active = this.getDefaultValue().isPresent() && (((Pair<ItemListOrdering, Boolean>) this.getDefaultValue().get()).getKey() != this.value.get().getKey() || ((Pair<ItemListOrdering, Boolean>) this.getDefaultValue().get()).getValue().booleanValue() != this.value.get().getValue().booleanValue());
this.resetButton.y = y;
@@ -79,7 +79,7 @@ public class ItemListOrderingEntry extends ListEntry {
}
@Override
- public List<? extends InputListener> children() {
+ public List<? extends Element> children() {
return widgets;
}
@@ -90,11 +90,11 @@ public class ItemListOrderingEntry extends ListEntry {
public void setDragging(boolean b) {
}
- public InputListener getFocused() {
+ public Element getFocused() {
return null;
}
- public void setFocused(InputListener inputListener) {
+ public void setFocused(Element inputListener) {
}
public boolean mouseClicked(double double_1, double double_2, int int_1) {
diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntry.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntry.java
deleted file mode 100644
index 63ec352a5..000000000
--- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntry.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package me.shedaniel.rei.gui.credits;
-
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.widget.EntryListWidget;
-import net.minecraft.text.TextComponent;
-
-public class CreditsEntry extends EntryListWidget.Entry<CreditsEntry> {
-
- private TextComponent textComponent;
-
- public CreditsEntry(TextComponent textComponent) {
- this.textComponent = textComponent;
- }
-
- @Override
- public void draw(int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) {
- MinecraftClient.getInstance().textRenderer.drawWithShadow(textComponent.getFormattedText(), x + 5, y + 5, -1);
- }
-
-}
diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java
index 4deac886b..2ef5e7a39 100644
--- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java
@@ -1,37 +1,35 @@
package me.shedaniel.rei.gui.credits;
import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.widget.EntryListWidget;
+import net.minecraft.client.gui.widget.ItemListWidget;
-public class CreditsEntryListWidget extends EntryListWidget<CreditsEntry> {
+public class CreditsEntryListWidget extends ItemListWidget<CreditsItem> {
public CreditsEntryListWidget(MinecraftClient client, int width, int height, int startY, int endY, int entryHeight) {
super(client, width, height, startY, endY, entryHeight);
- field_19091 = false; // showSelection
+ visible = false; // showSelection
}
public void creditsClearEntries() {
- clearEntries();
+ clearItems();
}
- private CreditsEntry getEntry(int int_1) {
+ private CreditsItem getEntry(int int_1) {
return this.children().get(int_1);
}
- public void creditsAddEntry(CreditsEntry entry) {
- addEntry(entry);
+ public void creditsAddEntry(CreditsItem entry) {
+ addItem(entry);
}
@Override
- // getRowWidth
- public int method_20053() {
- return field_19083 - 80; // width
+ public int getItemWidth() {
+ return width - 80;
}
@Override
- // getScrollbarPosition
- protected int method_20078() {
- return field_19083 - 40; // width
+ protected int getScrollbarPosition() {
+ return width - 40;
}
}
diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsItem.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsItem.java
new file mode 100644
index 000000000..0c7c1f8ce
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsItem.java
@@ -0,0 +1,24 @@
+package me.shedaniel.rei.gui.credits;
+
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.widget.ItemListWidget;
+import net.minecraft.text.TextComponent;
+
+public class CreditsItem extends ItemListWidget.Item<CreditsItem> {
+
+ private String text;
+
+ public CreditsItem(TextComponent textComponent) {
+ this(textComponent.getFormattedText());
+ }
+
+ public CreditsItem(String text) {
+ this.text = text;
+ }
+
+ @Override
+ public void render(int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) {
+ MinecraftClient.getInstance().textRenderer.drawWithShadow(text, x + 5, y + 5, -1);
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java
index c8da3f5a2..56eeceb4e 100644
--- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java
+++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java
@@ -34,8 +34,8 @@ public class CreditsScreen extends Screen {
children.add(entryListWidget = new CreditsEntryListWidget(minecraft, width, height, 32, height - 32, 12));
entryListWidget.creditsClearEntries();
for(String line : I18n.translate("text.rei.credit.text").split("\n"))
- entryListWidget.creditsAddEntry(new CreditsEntry(new StringTextComponent(line)));
- entryListWidget.creditsAddEntry(new CreditsEntry(new StringTextComponent("")));
+ entryListWidget.creditsAddEntry(new CreditsItem(new StringTextComponent(line)));
+ entryListWidget.creditsAddEntry(new CreditsItem(new StringTextComponent("")));
children.add(buttonDone = new ButtonWidget(width / 2 - 100, height - 26, 200, 20, I18n.translate("gui.done")) {
@Override
public void onPressed() {
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
index b16e38187..0578e8bf6 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
@@ -2,10 +2,9 @@ package me.shedaniel.rei.gui.widget;
import com.mojang.blaze3d.platform.GlStateManager;
import me.shedaniel.rei.client.ScreenHelper;
-import net.minecraft.client.MinecraftClient;
import net.minecraft.client.audio.PositionedSoundInstance;
import net.minecraft.client.font.TextRenderer;
-import net.minecraft.client.gui.InputListener;
+import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
import net.minecraft.sound.SoundEvents;
import net.minecraft.text.TextComponent;
@@ -20,7 +19,6 @@ public abstract class ButtonWidget extends HighlightableWidget {
public String text;
public boolean enabled;
- public boolean visible;
public boolean focused;
private Rectangle bounds;
@@ -31,7 +29,6 @@ public abstract class ButtonWidget extends HighlightableWidget {
public ButtonWidget(Rectangle rectangle, String text) {
this.bounds = rectangle;
this.enabled = true;
- this.visible = true;
this.text = text;
}
@@ -60,72 +57,68 @@ public abstract class ButtonWidget extends HighlightableWidget {
@Override
public void render(int mouseX, int mouseY, float partialTicks) {
- if (this.visible) {
- int x = bounds.x, y = bounds.y, width = bounds.width, height = bounds.height;
- MinecraftClient client = MinecraftClient.getInstance();
- TextRenderer textRenderer = client.textRenderer;
- client.getTextureManager().bindTexture(AbstractButtonWidget.WIDGETS_LOCATION);
- GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
- int textureOffset = this.getTextureId(isHovered(mouseX, mouseY));
- GlStateManager.enableBlend();
- GlStateManager.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
- GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
- //Four Corners
- this.blit(x, y, 0, 46 + textureOffset * 20, 4, 4);
- this.blit(x + width - 4, y, 196, 46 + textureOffset * 20, 4, 4);
- this.blit(x, y + height - 4, 0, 62 + textureOffset * 20, 4, 4);
- this.blit(x + width - 4, y + height - 4, 196, 62 + textureOffset * 20, 4, 4);
-
- //Sides
- this.blit(x + 4, y, 4, 46 + textureOffset * 20, width - 8, 4);
- this.blit(x + 4, y + height - 4, 4, 62 + textureOffset * 20, width - 8, 4);
-
- for(int i = y + 4; i < y + height - 4; i += 4) {
- this.blit(x, i, 0, 50 + textureOffset * 20, width / 2, MathHelper.clamp(y + height - 4 - i, 0, 4));
- this.blit(x + width / 2, i, 200 - width / 2, 50 + textureOffset * 20, width / 2, MathHelper.clamp(y + height - 4 - i, 0, 4));
- }
-
- int colour = 14737632;
- if (!this.enabled) {
- colour = 10526880;
- } else if (isHovered(mouseX, mouseY)) {
- colour = 16777120;
- }
-
- this.drawCenteredString(textRenderer, this.text, x + width / 2, y + (height - 8) / 2, colour);
-
- if (getTooltips().isPresent())
- if (isHighlighted(mouseX, mouseY))
- ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltips().get().split("\n")));
- else if (focused)
- ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(new Point(x + width / 2, y + h