Fix and restyle the emote wheel
The slot index was taken before the middle slot was skipped, so page one showed emotes 0-4 and 6-8: emote 5 never appeared and emote 8 showed on two pages. Emotes now fill the eight cells around the middle in order, and slots past the last emote aren't drawn, so they can't play a null emote. Emotes show as EmoteTiles: the preview in its own colors (it was tinted, almost black on hover), the name under it, an accent outline on hover, and an icon when an emote has no preview. The middle cell holds the page and its arrows when there's more than one page. Emote names and cosmetic names share Utils.nameFromId. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
package org.saturnclient.ui.resources;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.saturnclient.common.provider.Providers;
|
||||
import org.saturnclient.common.ref.asset.IdentifierRef;
|
||||
|
||||
public class Textures {
|
||||
@@ -43,6 +47,7 @@ public class Textures {
|
||||
.ofSaturn("textures/gui/components/chevron_right.svg");
|
||||
public static final IdentifierRef ICON_CHEVRON_DOWN = IdentifierRef
|
||||
.ofSaturn("textures/gui/components/chevron_down.svg");
|
||||
public static final IdentifierRef ICON_EMOTE = IdentifierRef.ofSaturn("textures/gui/components/emote.svg");
|
||||
public static final IdentifierRef ICON_CHECK = IdentifierRef.ofSaturn("textures/gui/components/check.svg");
|
||||
|
||||
public static final IdentifierRef LOGO = IdentifierRef.ofSaturn("textures/logo/logo.png");
|
||||
@@ -61,6 +66,18 @@ public class Textures {
|
||||
public static final IdentifierRef MOD = IdentifierRef.ofSaturn("textures/gui/components/mod.png");
|
||||
public static final IdentifierRef MOD_BG = IdentifierRef.ofSaturn("textures/gui/components/mod_bg.png");
|
||||
|
||||
/**
|
||||
* Whether a texture file is in the resources, for falling back when an
|
||||
* optional one (like an emote's preview) is missing.
|
||||
*/
|
||||
public static boolean exists(IdentifierRef texture) {
|
||||
try (InputStream in = Providers.saturn.getClient().getResource(texture)) {
|
||||
return in != null;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static IdentifierRef getCloakPreview(String cloak) {
|
||||
return IdentifierRef.ofSaturn("textures/gui/cloak/" + (cloak.isEmpty() ? "none" : cloak) + ".png");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user