diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index c2c1ab5..3fb6d39 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -5,9 +5,10 @@ import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; import net.minecraft.client.font.TextRenderer; import net.minecraft.util.math.ColorHelper; import org.saturnclient.saturnclient.auth.SaturnSocket; -import org.saturnclient.saturnclient.cloaks.Cloaks; import org.saturnclient.saturnclient.config.ConfigManager; import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.cosmetics.Hats; +import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks; import org.saturnclient.saturnclient.event.KeyInputHandler; import org.saturnclient.saturnmods.ModManager; import org.saturnclient.ui.SaturnAnimation; @@ -61,6 +62,7 @@ public class SaturnClient implements ModInitializer { KeyInputHandler.register(); if (SaturnSocket.authenticate()) { Cloaks.initialize(); + Hats.initialize(); LOGGER.info(MOD_ID + " initialization complete"); } else { LOGGER.error("Failed to authenticate with the server"); diff --git a/src/main/java/org/saturnclient/saturnclient/auth/SaturnPlayer.java b/src/main/java/org/saturnclient/saturnclient/auth/SaturnPlayer.java index 586af6b..8ffe19e 100644 --- a/src/main/java/org/saturnclient/saturnclient/auth/SaturnPlayer.java +++ b/src/main/java/org/saturnclient/saturnclient/auth/SaturnPlayer.java @@ -2,8 +2,10 @@ package org.saturnclient.saturnclient.auth; public class SaturnPlayer { public String cloak = ""; + public String hat = ""; - public SaturnPlayer(String cloak) { + public SaturnPlayer(String cloak, String hat) { this.cloak = cloak; + this.hat = hat; } } diff --git a/src/main/java/org/saturnclient/saturnclient/auth/SaturnSocket.java b/src/main/java/org/saturnclient/saturnclient/auth/SaturnSocket.java index 341b21a..68f702d 100644 --- a/src/main/java/org/saturnclient/saturnclient/auth/SaturnSocket.java +++ b/src/main/java/org/saturnclient/saturnclient/auth/SaturnSocket.java @@ -7,7 +7,7 @@ import java.util.Map; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; import net.minecraft.client.MinecraftClient; import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.saturnclient.cloaks.Cloaks; +import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks; public class SaturnSocket { @@ -42,8 +42,7 @@ public class SaturnSocket { // Establish a persistent connection socket = new Socket(server, port); reader = new BufferedReader( - new InputStreamReader(socket.getInputStream()) - ); + new InputStreamReader(socket.getInputStream())); writer = new PrintWriter(socket.getOutputStream(), true); // Send authentication request @@ -56,21 +55,14 @@ public class SaturnSocket { uuid = parser.getString("uuid"); String cloak = parser.getString("cloak"); + String hat = parser.getString("hat"); for (String availableCloak : parser.getArray("cloaks")) { SaturnClient.LOGGER.info("Available cloak: " + availableCloak); Cloaks.availableCloaks.add(availableCloak); } - players.put(uuid, new SaturnPlayer(cloak)); - - if (cloak != null) { - SaturnClient.LOGGER.info( - "Setting cloak to " + cloak + " for " + uuid - ); - MinecraftClient.getInstance() - .execute(() -> Cloaks.setCloak(uuid, cloak)); - } + players.put(uuid, new SaturnPlayer(cloak, hat)); playerNames.put(client.getSession().getUsername(), uuid); diff --git a/src/main/java/org/saturnclient/saturnclient/cosmetics/CustomHeadFeatureRenderer.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/HatFeatureRenderer.java similarity index 61% rename from src/main/java/org/saturnclient/saturnclient/cosmetics/CustomHeadFeatureRenderer.java rename to src/main/java/org/saturnclient/saturnclient/cosmetics/HatFeatureRenderer.java index 6a62199..c7a57e6 100644 --- a/src/main/java/org/saturnclient/saturnclient/cosmetics/CustomHeadFeatureRenderer.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/HatFeatureRenderer.java @@ -1,5 +1,7 @@ package org.saturnclient.saturnclient.cosmetics; +import org.saturnclient.saturnclient.auth.SaturnSocket; + import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.VertexConsumerProvider; @@ -10,13 +12,15 @@ import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.component.DataComponentTypes; +import net.minecraft.component.type.EquippableComponent; +import net.minecraft.entity.EquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.item.ModelTransformationMode; import net.minecraft.util.Identifier; -public class CustomHeadFeatureRenderer extends FeatureRenderer { - public CustomHeadFeatureRenderer(FeatureRendererContext context) { +public class HatFeatureRenderer extends FeatureRenderer { + public HatFeatureRenderer(FeatureRendererContext context) { super(context); } @@ -24,29 +28,29 @@ public class CustomHeadFeatureRenderer extends FeatureRenderer availableHats = new ArrayList<>(); + + public static void initialize() { + availableHats.add(0, ""); + } +} diff --git a/src/main/java/org/saturnclient/saturnclient/cloaks/Cloaks.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java similarity index 96% rename from src/main/java/org/saturnclient/saturnclient/cloaks/Cloaks.java rename to src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java index 07f32ff..7ad1b8a 100644 --- a/src/main/java/org/saturnclient/saturnclient/cloaks/Cloaks.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java @@ -1,11 +1,11 @@ -package org.saturnclient.saturnclient.cloaks; +package org.saturnclient.saturnclient.cosmetics.cloaks; import net.minecraft.util.Identifier; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.auth.SaturnSocket; +import org.saturnclient.saturnclient.cosmetics.cloaks.utils.AnimatedCloakData; +import org.saturnclient.saturnclient.cosmetics.cloaks.utils.IdentifierUtils; import org.saturnclient.saturnclient.auth.SaturnPlayer; -import org.saturnclient.saturnclient.cloaks.utils.AnimatedCloakData; -import org.saturnclient.saturnclient.cloaks.utils.IdentifierUtils; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; @@ -55,7 +55,7 @@ public class Cloaks { public static void setCloakSilent(String uuid, String cloakName) { SaturnPlayer player = SaturnSocket.players.get(uuid); if (player == null) { - SaturnSocket.players.put(uuid, new SaturnPlayer(cloakName)); + SaturnSocket.players.put(uuid, new SaturnPlayer(cloakName, null)); } else { player.cloak = cloakName; } diff --git a/src/main/java/org/saturnclient/saturnclient/cloaks/GifDecoder.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/GifDecoder.java similarity index 99% rename from src/main/java/org/saturnclient/saturnclient/cloaks/GifDecoder.java rename to src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/GifDecoder.java index 0bcf25e..4ac2bfa 100644 --- a/src/main/java/org/saturnclient/saturnclient/cloaks/GifDecoder.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/GifDecoder.java @@ -1,4 +1,4 @@ -package org.saturnclient.saturnclient.cloaks; +package org.saturnclient.saturnclient.cosmetics.cloaks; import java.awt.*; import java.awt.image.BufferedImage; diff --git a/src/main/java/org/saturnclient/saturnclient/cloaks/utils/AnimatedCloakData.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/utils/AnimatedCloakData.java similarity index 93% rename from src/main/java/org/saturnclient/saturnclient/cloaks/utils/AnimatedCloakData.java rename to src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/utils/AnimatedCloakData.java index 01e490c..a38296c 100644 --- a/src/main/java/org/saturnclient/saturnclient/cloaks/utils/AnimatedCloakData.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/utils/AnimatedCloakData.java @@ -1,4 +1,4 @@ -package org.saturnclient.saturnclient.cloaks.utils; +package org.saturnclient.saturnclient.cosmetics.cloaks.utils; import net.minecraft.util.Identifier; diff --git a/src/main/java/org/saturnclient/saturnclient/cloaks/utils/IdentifierUtils.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/utils/IdentifierUtils.java similarity index 94% rename from src/main/java/org/saturnclient/saturnclient/cloaks/utils/IdentifierUtils.java rename to src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/utils/IdentifierUtils.java index 62a82e1..5171a07 100644 --- a/src/main/java/org/saturnclient/saturnclient/cloaks/utils/IdentifierUtils.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/utils/IdentifierUtils.java @@ -1,4 +1,4 @@ -package org.saturnclient.saturnclient.cloaks.utils; +package org.saturnclient.saturnclient.cosmetics.cloaks.utils; import net.minecraft.client.MinecraftClient; import net.minecraft.client.texture.NativeImage; diff --git a/src/main/java/org/saturnclient/saturnclient/cloaks/utils/RandomUtils.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/utils/RandomUtils.java similarity index 95% rename from src/main/java/org/saturnclient/saturnclient/cloaks/utils/RandomUtils.java rename to src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/utils/RandomUtils.java index 3ffcfa4..0e20412 100644 --- a/src/main/java/org/saturnclient/saturnclient/cloaks/utils/RandomUtils.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/utils/RandomUtils.java @@ -1,4 +1,4 @@ -package org.saturnclient.saturnclient.cloaks.utils; +package org.saturnclient.saturnclient.cosmetics.cloaks.utils; import java.util.Random; diff --git a/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java index 1c5e460..7638821 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java @@ -3,7 +3,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.cloaks.Cloaks; +import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks; import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.Textures; import org.saturnclient.ui.widgets.SaturnClickableSprite; diff --git a/src/main/java/org/saturnclient/saturnclient/mixin/CapeRenderer.java b/src/main/java/org/saturnclient/saturnclient/mixin/CapeRenderer.java index 1d9ccba..233dbf9 100644 --- a/src/main/java/org/saturnclient/saturnclient/mixin/CapeRenderer.java +++ b/src/main/java/org/saturnclient/saturnclient/mixin/CapeRenderer.java @@ -6,7 +6,7 @@ import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.util.SkinTextures; import net.minecraft.util.Identifier; -import org.saturnclient.saturnclient.cloaks.Cloaks; +import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; diff --git a/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java b/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java index 4e72a1f..c770261 100644 --- a/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java +++ b/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java @@ -7,7 +7,7 @@ import net.minecraft.client.render.entity.model.PlayerEntityModel; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.entity.player.PlayerEntity; -import org.saturnclient.saturnclient.cosmetics.CustomHeadFeatureRenderer; +import org.saturnclient.saturnclient.cosmetics.HatFeatureRenderer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -23,6 +23,6 @@ public abstract class PlayerEntityRendererMixin @Inject(method = "", at = @At("TAIL")) private void addCustomFeatureRenderer(EntityRendererFactory.Context context, boolean slim, CallbackInfo ci) { - this.addFeature(new CustomHeadFeatureRenderer(this)); + this.addFeature(new HatFeatureRenderer(this)); } } \ No newline at end of file diff --git a/src/main/resources/assets/saturnclient/items/hat.json b/src/main/resources/assets/saturnclient/items/hat.json deleted file mode 100644 index f74fe0c..0000000 --- a/src/main/resources/assets/saturnclient/items/hat.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "saturnclient:item/hat" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/saturnclient/items/hat_halo.json b/src/main/resources/assets/saturnclient/items/hat_halo.json new file mode 100644 index 0000000..b33d02a --- /dev/null +++ b/src/main/resources/assets/saturnclient/items/hat_halo.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "saturnclient:item/halo" + } +} diff --git a/src/main/resources/assets/saturnclient/items/hat_halo_black.json b/src/main/resources/assets/saturnclient/items/hat_halo_black.json new file mode 100644 index 0000000..b33d02a --- /dev/null +++ b/src/main/resources/assets/saturnclient/items/hat_halo_black.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "saturnclient:item/halo" + } +} diff --git a/src/main/resources/assets/saturnclient/models/item/halo.json b/src/main/resources/assets/saturnclient/models/item/halo.json new file mode 100644 index 0000000..de175db --- /dev/null +++ b/src/main/resources/assets/saturnclient/models/item/halo.json @@ -0,0 +1,240 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "saturnclient:item/halo" + }, + "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] + } + ] +} diff --git a/src/main/resources/assets/saturnclient/models/item/hat.json b/src/main/resources/assets/saturnclient/models/item/hat.json deleted file mode 100644 index 38a2183..0000000 --- a/src/main/resources/assets/saturnclient/models/item/hat.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "credit": "Made with Blockbench", - "texture_size": [32, 32], - "textures": { - "0": "saturnclient:item/hat", - "particle": "saturnclient:item/hat" - }, - "elements": [ - { - "from": [3, 0, 3], - "to": [13, 1, 13], - "rotation": {"angle": 0, "axis": "x", "origin": [4, 0, 4]}, - "faces": { - "north": {"uv": [8, 0, 16, 1], "texture": "#0"}, - "east": {"uv": [8, 1, 16, 2], "texture": "#0"}, - "south": {"uv": [8, 2, 16, 3], "texture": "#0"}, - "west": {"uv": [8, 3, 16, 4], "texture": "#0"}, - "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, - "down": {"uv": [8, 8, 0, 16], "texture": "#0"} - } - }, - { - "from": [4, 1, 4], - "to": [12, 8, 12], - "rotation": {"angle": 0, "axis": "x", "origin": [4, 1, 4]}, - "faces": { - "north": {"uv": [8, 0, 16, 1], "texture": "#0"}, - "east": {"uv": [8, 1, 16, 2], "texture": "#0"}, - "south": {"uv": [8, 2, 16, 3], "texture": "#0"}, - "west": {"uv": [8, 3, 16, 4], "texture": "#0"}, - "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, - "down": {"uv": [8, 8, 0, 16], "texture": "#0"} - } - } - ], - "display": { - "head": { - "translation": [0, 18.25, 0], - "scale": [1.5, 1.5, 1.5] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/saturnclient/textures/item/halo.png b/src/main/resources/assets/saturnclient/textures/item/halo.png new file mode 100644 index 0000000..341eb3a Binary files /dev/null and b/src/main/resources/assets/saturnclient/textures/item/halo.png differ diff --git a/src/main/resources/assets/saturnclient/textures/item/hat.png b/src/main/resources/assets/saturnclient/textures/item/hat.png deleted file mode 100644 index 84cfaec..0000000 Binary files a/src/main/resources/assets/saturnclient/textures/item/hat.png and /dev/null differ