aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/detrav/gui/OresList.java
diff options
context:
space:
mode:
authorJason Mitchell <mitchej@gmail.com>2021-01-24 00:37:23 -0800
committerJason Mitchell <mitchej@gmail.com>2021-01-24 00:37:23 -0800
commit8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a (patch)
tree6ce989529cb927ff79d2a07cd3e72176d060099a /src/main/java/com/detrav/gui/OresList.java
parentbf8c5581ff93b056a03017f858a8d907a2fa69e2 (diff)
downloadGT5-Unofficial-8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a.tar.gz
GT5-Unofficial-8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a.tar.bz2
GT5-Unofficial-8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a.zip
Selectable ores on electronic prospector
* Cleaned up some class/file names * Removed unused code/comments * Cached other mods being loaded * Various optimizations
Diffstat (limited to 'src/main/java/com/detrav/gui/OresList.java')
-rw-r--r--src/main/java/com/detrav/gui/OresList.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/main/java/com/detrav/gui/OresList.java b/src/main/java/com/detrav/gui/OresList.java
new file mode 100644
index 0000000000..a6af396a1a
--- /dev/null
+++ b/src/main/java/com/detrav/gui/OresList.java
@@ -0,0 +1,61 @@
+package com.detrav.gui;
+
+import cpw.mods.fml.client.GuiScrollingList;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.renderer.Tessellator;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.function.Consumer;
+
+class OresList extends GuiScrollingList {
+ private final HashMap<String, Integer> ores;
+ private final List<String> keys;
+ private final GuiScreen parent;
+ private final Consumer<String> onSelected;
+
+ private int selected = -1;
+
+ public OresList(GuiScreen parent, int width, int height, int top, int bottom, int left, int entryHeight, HashMap<String, Integer> aOres, Consumer<String> onSelected) {
+ super(parent.mc, width, height, top, bottom, left, entryHeight);
+ this.parent = parent;
+ this.onSelected = onSelected;
+ ores = aOres;
+ keys = new ArrayList(ores.keySet());
+ Collections.sort(keys);
+ keys.add(0, "All");
+ selected = 0;
+ }
+
+ @Override
+ protected int getSize() {
+ return ores.size();
+ }
+
+ @Override
+ protected void elementClicked(int index, boolean doubleClick) {
+ selected = index;
+ if(onSelected != null) onSelected.accept(keys.get(index));
+ }
+
+ @Override
+ protected boolean isSelected(int index) {
+ return selected == index;
+ }
+
+ @Override
+ protected void drawBackground() {}
+
+ @Override
+ protected void drawSlot(int slotIdx, int entryRight, int slotTop, int slotBuffer, Tessellator tess) {
+ parent.drawString(
+ parent.mc.fontRenderer,
+ parent.mc.fontRenderer.trimStringToWidth(keys.get(slotIdx), listWidth - 10),
+ this.left + 3,
+ slotTop,
+ ores.getOrDefault(keys.get(slotIdx), 0x7d7b76)
+ );
+ }
+}