aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java14
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java32
3 files changed, 29 insertions, 19 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index 6e702e7b..fb6469cb 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -6,6 +6,7 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.debug.Debug;
import de.hysky.skyblocker.skyblock.*;
import de.hysky.skyblocker.skyblock.dungeon.*;
+import de.hysky.skyblocker.skyblock.dungeon.partyfinder.PartyFinderScreen;
import de.hysky.skyblocker.skyblock.dungeon.puzzle.CreeperBeams;
import de.hysky.skyblocker.skyblock.dungeon.puzzle.DungeonBlaze;
import de.hysky.skyblocker.skyblock.dungeon.puzzle.TicTacToe;
@@ -106,6 +107,7 @@ public class SkyblockerMod implements ClientModInitializer {
DungeonBlaze.init();
Waterboard.init();
DungeonScore.init();
+ PartyFinderScreen.initClass();
ChestValue.init();
FireFreezeStaffTimer.init();
GuardianHealth.init();
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java
index 35180ef3..12b1f972 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java
@@ -10,16 +10,17 @@ import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.PlayerSkinDrawer;
import net.minecraft.client.gui.Selectable;
import net.minecraft.client.gui.widget.ElementListWidget;
+import net.minecraft.client.render.LightmapTextureManager;
import net.minecraft.client.util.DefaultSkinHelper;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.StringNbtReader;
-import net.minecraft.screen.slot.SlotActionType;
import net.minecraft.text.Style;
import net.minecraft.text.Text;
import net.minecraft.text.TextColor;
+import net.minecraft.util.DyeColor;
import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
@@ -85,7 +86,7 @@ public class PartyEntry extends ElementListWidget.Entry<PartyEntry> {
floor = tooltipText.split(":")[1].trim();
if (dungeon.equals("???")) continue;
if (PartyFinderScreen.floorIconsMaster == null || PartyFinderScreen.floorIconsNormal == null) continue;
- if (dungeon.contains("master")) {
+ if (dungeon.contains("Master Mode")) {
try {
floorSkullNBT = StringNbtReader.parse(PartyEntryListWidget.BASE_SKULL_NBT.replace("%TEXTURE%", PartyFinderScreen.floorIconsMaster.getOrDefault(floor.toLowerCase(), "")));
} catch (CommandSyntaxException e) {
@@ -181,13 +182,13 @@ public class PartyEntry extends ElementListWidget.Entry<PartyEntry> {
PlayerSkinDrawer.draw(context, partyMember.skinTexture, 6 + 136 * (i % 2), 24 + 14 * (i / 2), 8, true, false);
}
if (minClassLevel > 0) {
- context.drawText(textRenderer, "Class " + minClassLevel, 277, 25, 0xFFFFFF00, true);
+ context.drawText(textRenderer, "Class " + minClassLevel, 277, 25, 0xFFFFFFFF, true);
if (!isLocked && hovered && mouseXLocal >= 276 && mouseXLocal <= 331 && mouseYLocal >= 22 && mouseYLocal <= 35) {
context.drawTooltip(textRenderer, Text.translatable("skyblocker.partyFinder.partyCard.minClassLevel", minClassLevel), mouseXLocal, mouseYLocal);
}
}
if (minCatacombsLevel > 0) {
- context.drawText(textRenderer, "Cata " + minCatacombsLevel, 277, 43, 0xFFFFFF00, true);
+ context.drawText(textRenderer, "Cata " + minCatacombsLevel, 277, 43, 0xFFFFFFFF, true);
if (!isLocked && hovered && mouseXLocal >= 276 && mouseXLocal <= 331 && mouseYLocal >= 40 && mouseYLocal <= 53) {
context.drawTooltip(textRenderer, Text.translatable("skyblocker.partyFinder.partyCard.minDungeonLevel", minCatacombsLevel), mouseXLocal, mouseYLocal);
}
@@ -195,10 +196,11 @@ public class PartyEntry extends ElementListWidget.Entry<PartyEntry> {
ItemStack stack = new ItemStack(Items.PLAYER_HEAD);
stack.setNbt(floorSkullNBT);
context.drawItem(stack, 317, 3);
+
int textWidth = textRenderer.getWidth(floor);
context.drawText(textRenderer, floor, 316 - textWidth, 7, 0x70000000, false);
- context.drawText(textRenderer, note, 5, 51, 0xFFFFFFFF, true);
+ context.drawText(textRenderer, note, 5, 52, 0xFFFFFFFF, true);
if (isLocked) {
matrices.push();
@@ -237,7 +239,7 @@ public class PartyEntry extends ElementListWidget.Entry<PartyEntry> {
public Text toText() {
char dClass = dungeonClass.isEmpty() ? '?' : dungeonClass.charAt(0);
- return name.copy().append(Text.literal(" " + dClass + classLevel).setStyle(Style.EMPTY.withColor(Formatting.WHITE)));
+ return name.copy().append(Text.literal(" " + dClass + " " + classLevel).formatted(Formatting.YELLOW));
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java
index e6556d15..e7311073 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java
@@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.dungeon.partyfinder;
import com.google.gson.JsonObject;
import de.hysky.skyblocker.SkyblockerMod;
+import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.minecraft.block.entity.SignBlockEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
@@ -34,6 +35,7 @@ import org.slf4j.LoggerFactory;
import java.io.BufferedReader;
import java.util.*;
+import java.util.concurrent.CompletableFuture;
public class PartyFinderScreen extends Screen {
protected static final Logger LOGGER = LoggerFactory.getLogger(PartyFinderScreen.class);
@@ -99,25 +101,29 @@ public class PartyFinderScreen extends Screen {
+ public static void initClass() {
+ ClientLifecycleEvents.CLIENT_STARTED.register(client -> {
+ //Checking when this is loaded probably isn't necessary as the maps are always null checked
+ CompletableFuture.runAsync(() -> {
+ floorIconsNormal = new HashMap<>();
+ floorIconsMaster = new HashMap<>();
+ try (BufferedReader skullTextureReader = client.getResourceManager().openAsReader(new Identifier(SkyblockerMod.NAMESPACE, "dungeons/catacombs/floorskulls.json"))) {
+ JsonObject json = SkyblockerMod.GSON.fromJson(skullTextureReader, JsonObject.class);
+ json.getAsJsonObject("normal").asMap().forEach((s, jsonElement) -> floorIconsNormal.put(s, jsonElement.getAsString()));
+ json.getAsJsonObject("master").asMap().forEach((s, jsonElement) -> floorIconsMaster.put(s, jsonElement.getAsString()));
+ LOGGER.debug("[Skyblocker] Dungeons floor skull textures json loaded");
+ } catch (Exception e) {
+ LOGGER.error("[Skyblocker] Failed to load dungeons floor skull textures json", e);
+ }
+ });
+ });
+ }
public PartyFinderScreen(GenericContainerScreenHandler handler, PlayerInventory inventory, Text title) {
super(title);
this.handler = handler;
this.inventory = inventory;
name = title;
- if (floorIconsNormal == null || floorIconsMaster == null) {
- floorIconsNormal = new HashMap<>();
- floorIconsMaster = new HashMap<>();
- try (BufferedReader skullTextureReader = MinecraftClient.getInstance().getResourceManager().openAsReader(new Identifier(SkyblockerMod.NAMESPACE, "dungeons/catacombs/floorskulls.json"))) {
- JsonObject json = SkyblockerMod.GSON.fromJson(skullTextureReader, JsonObject.class);
- json.getAsJsonObject("normal").asMap().forEach((s, jsonElement) -> floorIconsNormal.put(s, jsonElement.getAsString()));
- json.getAsJsonObject("master").asMap().forEach((s, jsonElement) -> floorIconsMaster.put(s, jsonElement.getAsString()));
- LOGGER.debug("[Skyblocker] Dungeons floor skull textures json loaded");
- } catch (Exception e) {
- LOGGER.error("[Skyblocker] Failed to load dungeons floor skull textures json");
- e.printStackTrace();
- }
- }
}
@Override