From aa0cd4f42a1a565c3adf1297a6ec11456a3a2537 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Tue, 1 Apr 2025 16:26:21 +0200 Subject: [PATCH] Hat selector --- .../saturnclient/auth/SaturnSocket.java | 13 + .../saturnclient/cosmetics/Hats.java | 17 ++ .../saturnclient/menus/HatsMenu.java | 9 +- .../saturnclient/items/hat_halo_black.json | 2 +- .../saturnclient/models/item/halo_black.json | 240 ++++++++++++++++++ .../assets/saturnclient/textures/gui/hat/.png | Bin 0 -> 14652 bytes .../saturnclient/textures/gui/hat/halo.png | Bin 0 -> 2556 bytes .../textures/gui/hat/halo_black.png | Bin 0 -> 3287 bytes .../saturnclient/textures/item/halo_black.png | Bin 0 -> 86 bytes 9 files changed, 275 insertions(+), 6 deletions(-) create mode 100644 src/main/resources/assets/saturnclient/models/item/halo_black.json create mode 100644 src/main/resources/assets/saturnclient/textures/gui/hat/.png create mode 100644 src/main/resources/assets/saturnclient/textures/gui/hat/halo.png create mode 100644 src/main/resources/assets/saturnclient/textures/gui/hat/halo_black.png create mode 100644 src/main/resources/assets/saturnclient/textures/item/halo_black.png diff --git a/src/main/java/org/saturnclient/saturnclient/auth/SaturnSocket.java b/src/main/java/org/saturnclient/saturnclient/auth/SaturnSocket.java index dfe2802..cf73279 100644 --- a/src/main/java/org/saturnclient/saturnclient/auth/SaturnSocket.java +++ b/src/main/java/org/saturnclient/saturnclient/auth/SaturnSocket.java @@ -9,6 +9,7 @@ import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; import net.minecraft.client.MinecraftClient; import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.saturnclient.cosmetics.Hats; import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks; public class SaturnSocket { @@ -61,6 +62,10 @@ public class SaturnSocket { Cloaks.availableCloaks.add(availableCloak); } + for (String availableHat : parser.getArray("hats")) { + Hats.availableHats.add(availableHat); + } + players.put(uuid, new SaturnPlayer(cloak, hat)); playerNames.put(client.getSession().getUsername(), uuid); @@ -147,6 +152,14 @@ public class SaturnSocket { } } + public static void setHat(String hatName) { + try { + writer.println("set_hat@hat=" + hatName); + } catch (Exception e) { + SaturnClient.LOGGER.error("Request failed", e); + } + } + public static void player(String name, String uuid) { try { playerNames.put(name, uuid.replaceAll("-", "")); diff --git a/src/main/java/org/saturnclient/saturnclient/cosmetics/Hats.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/Hats.java index 9d2a519..cffbe43 100644 --- a/src/main/java/org/saturnclient/saturnclient/cosmetics/Hats.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/Hats.java @@ -3,10 +3,27 @@ package org.saturnclient.saturnclient.cosmetics; import java.util.ArrayList; import java.util.List; +import org.saturnclient.saturnclient.auth.SaturnPlayer; +import org.saturnclient.saturnclient.auth.SaturnSocket; + public class Hats { public static List availableHats = new ArrayList<>(); public static void initialize() { availableHats.add(0, ""); } + + public static void setHat(String uuid, String hatName) { + setHatSilent(uuid, hatName); + SaturnSocket.setHat(hatName); + } + + public static void setHatSilent(String uuid, String hatName) { + SaturnPlayer player = SaturnSocket.players.get(uuid); + if (player == null) { + SaturnSocket.players.put(uuid, new SaturnPlayer("", hatName)); + } else { + player.hat = hatName; + } + } } diff --git a/src/main/java/org/saturnclient/saturnclient/menus/HatsMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/HatsMenu.java index d7b4a02..be6adfd 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/HatsMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/HatsMenu.java @@ -2,6 +2,7 @@ package org.saturnclient.saturnclient.menus; import net.minecraft.text.Text; import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.saturnclient.auth.SaturnSocket; import org.saturnclient.saturnclient.cosmetics.Hats; import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.Textures; @@ -87,22 +88,20 @@ public class HatsMenu extends SaturnUi { for (String hat : Hats.availableHats) { modsScroll.draw( new SaturnClickableSprite(Textures.BUTTON_BORDER, () -> { - // Hats.setHat(SaturnSocket.uuid, hat); + Hats.setHat(SaturnSocket.uuid, hat); }) .setColor(10526880) .setX(modX) .setY(modY) .setWidth(hatSize + 6) - .setHeight(hatSize + 6) - .setAnimations(SaturnClient.getAnimations())); + .setHeight(hatSize + 6)); modsScroll.draw( new SaturnImage(Textures.getHatPreview(hat)) .setX(modX + 3) .setY(modY + 3) .setWidth(hatSize) - .setHeight(hatSize) - .setAnimations(SaturnClient.getAnimations())); + .setHeight(hatSize)); col++; diff --git a/src/main/resources/assets/saturnclient/items/hat_halo_black.json b/src/main/resources/assets/saturnclient/items/hat_halo_black.json index b33d02a..be1f7ad 100644 --- a/src/main/resources/assets/saturnclient/items/hat_halo_black.json +++ b/src/main/resources/assets/saturnclient/items/hat_halo_black.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "saturnclient:item/halo" + "model": "saturnclient:item/halo_black" } } diff --git a/src/main/resources/assets/saturnclient/models/item/halo_black.json b/src/main/resources/assets/saturnclient/models/item/halo_black.json new file mode 100644 index 0000000..b03fef1 --- /dev/null +++ b/src/main/resources/assets/saturnclient/models/item/halo_black.json @@ -0,0 +1,240 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "saturnclient:item/halo_black" + }, + "elements": [ + { + "name": "hexadecagon", + "from": [7.40326, 10, 5], + "to": [8.59674, 11, 6], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [7.40326, 10, 5], + "to": [8.59674, 11, 6], + "rotation": {"angle": -22.5, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [7.40326, 10, 5], + "to": [8.59674, 11, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [7.40326, 10, 5], + "to": [8.59674, 11, 6], + "rotation": {"angle": 22.5, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [7.40326, 10, 5], + "to": [8.59674, 11, 6], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [7.40326, 10, 10], + "to": [8.59674, 11, 11], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [7.40326, 10, 10], + "to": [8.59674, 11, 11], + "rotation": {"angle": -22.5, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [7.40326, 10, 10], + "to": [8.59674, 11, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [7.40326, 10, 10], + "to": [8.59674, 11, 11], + "rotation": {"angle": 22.5, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [7.40326, 10, 10], + "to": [8.59674, 11, 11], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [5, 10, 7.40326], + "to": [6, 11, 8.59674], + "rotation": {"angle": -22.5, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [5, 10, 7.40326], + "to": [6, 11, 8.59674], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [5, 10, 7.40326], + "to": [6, 11, 8.59674], + "rotation": {"angle": 22.5, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [10, 10, 7.40326], + "to": [11, 11, 8.59674], + "rotation": {"angle": -22.5, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [10, 10, 7.40326], + "to": [11, 11, 8.59674], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + }, + { + "name": "hexadecagon", + "from": [10, 10, 7.40326], + "to": [11, 11, 8.59674], + "rotation": {"angle": 22.5, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "hexadecagon", + "origin": [8, 8, 8], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/saturnclient/textures/gui/hat/.png b/src/main/resources/assets/saturnclient/textures/gui/hat/.png new file mode 100644 index 0000000000000000000000000000000000000000..16c2bbe20ef544fe29f8029232f3e199edc62238 GIT binary patch literal 14652 zcmdUW_dlEO7k88rDkLberKq-MT6=F&vud?!MNw+2y$OOCwOdqM6hXn8}004jxx|${c0EODW3rJ1= zW|e^(PJW~CHPKP0_%$FBLHtTSYcs-; zEuR1ib>kgcSA0CyxH#rYHPF(=*zFeZ&dFbU3fps$!s9R|W8ytnyO2P!J_mvo{f;&< z@qHwV8WlbGaXJi@CjaVH+j?O=!;w?2&&o)%bD_firPAo-uJ`AmcIOMs;HxZK~A`=h*heIvHoHHkQroHh~(ulW6#U|ZjgW$cH$u<_n1G&e9+ zDhoFCi(lg)L}9Ct5jyJk)%smM30+uWQ-?79OG`hjYbkLibrBrl5UxeiA>?7H&5B&B z)}#m|tkU0`fKoPI_G54(MyKNT-WIar(cD++}r-crW1m#p|)Kv&qu_{dzlf*bXplv{^ zmx@?2VtPk#N0ksL6X~A3Y7%3Vnvx+3tKjFwwoYR|) znF5Gy+lk1W23{7WMg*gjAhyy^);#f2+|Z8fI550hO%f%*NHzFOR)k2c8%8U>ulYRm zEJE(^UK+-macABi8OdG#i)I4I8;XIX-#Q*VlO>4QUI}m_t32*kJf>6X=25?e2k-(n z`vH0n{(Fvb1O`m#exORC;9-_eq3{X z;VvN9Olk-OOC`Si519SctIbtiSB0AR(ra%q2YZ2=h{{ax=Rxu9*{b`$vD4ECw0^6j z`=t{!ON%Y#U`Y>d?etUj|4%w{*dx$B^2oT? zgK6BXj=2%kAo9toUVi+ox|$vy$T*jmRTrC*?5+-@Zo1oTIrWFy>q$)uimPHO*6wfg z3Tltxb*T%m+E+t2HO);M%}c3oF4{vZgI1Fk$6Ij-!Mho$`hW?{bO~cS z00k_KWqHnv_EdvKek6jY^^vY1Fg7zr4g#`g;xE?GO^5PjzqzO02IXU_>8BC~^}~Nn z(Z+^Ax9D~qP)*=??;M`{HPG33b!B9v>=OQWu2O7TA#@H*co}+ns5l9D!zDu9C>gyg zoI=q}IeFJVFAYP>%CGp)�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