Changed version of the origin one

This commit is contained in:
Leo Codes
2025-02-22 18:12:21 +01:00
parent 47d76ab0a6
commit a153a8c730
12 changed files with 88 additions and 118 deletions
@@ -1,42 +0,0 @@
package me.iipho3nix.iicapemod.mixin;
import me.iipho3nix.iicapemod.CapesMod;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.TitleScreen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(TitleScreen.class)
@Environment(EnvType.CLIENT)
public class TitleScreenMixin extends Screen {
protected TitleScreenMixin(Text title) {
super(title);
}
@Inject(at = @At("TAIL"), method = "init")
private void init(CallbackInfo ci) {
this.addDrawableChild(ButtonWidget.builder(Text.literal("Change Cape"), (button) -> {
if (CapesMod.list.indexOf(CapesMod.cape) + 1 == CapesMod.list.size()) {
CapesMod.cape = CapesMod.list.get(0);
CapesMod.capeCacheIdentifier = null;
}else{
CapesMod.cape = CapesMod.list.get(CapesMod.list.indexOf(CapesMod.cape) + 1);
};
}).dimensions((this.width / 2) - 205, (this.height / 4) + 96, 100, 20).build());
}
@Inject(at = @At("TAIL"), method = "render")
private void render(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
context.drawText(textRenderer, "Cape: " + CapesMod.cape, 10, 10, 0xffffffff, true);
}
}
@@ -1,9 +1,10 @@
package me.iipho3nix.iicapemod;
package org.auraclient.auracloaks;
import at.dhyan.open_imaging.GifDecoder;
import me.iipho3nix.iicapemod.utils.AnimatedCapeData;
import me.iipho3nix.iicapemod.utils.IdentifierUtils;
import me.iipho3nix.iicapemod.utils.RandomUtils;
import org.auraclient.auracloaks.event.KeyInputHandler;
import org.auraclient.auracloaks.utils.AnimatedCapeData;
import org.auraclient.auracloaks.utils.IdentifierUtils;
import org.auraclient.auracloaks.utils.RandomUtils;
import net.fabricmc.api.ModInitializer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.Identifier;
@@ -18,9 +19,14 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
public class CapesMod implements ModInitializer {
public static final String MOD_ID = "iicapemod";
/*
* Massive thank you to IIpho3nix for making this mod, i (leo) have modified it to fit Aura Client
*/
public class AuraCloaks implements ModInitializer {
public static final String MOD_ID = "auracloaks";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
private static final File capesFolder = new File(MinecraftClient.getInstance().runDirectory, "Capes");
public static final List<String> list = new ArrayList<>();
@@ -29,38 +35,42 @@ public class CapesMod implements ModInitializer {
private static long mili = System.currentTimeMillis();
private static String lastCache = "NotCached";
public static Identifier capeCacheIdentifier = null;
public static String cape = "None";
public static String cape = "";
@Override
public void onInitialize() {
list.clear();
list.add("None");
list.add("");
if (capesFolder.mkdir()) {
LOGGER.info("New Cape Folder Created");
downloadCloakTextures();
} else {
LOGGER.info("Cape Folder Already Exists");
listFilesForFolder(capesFolder);
}
LOGGER.info("IIpho3nix's capes mod loaded!");
loadCloakTextures();
KeyInputHandler.register();
}
private static void listFilesForFolder(File folder) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry);
} else if (
fileEntry.getName().endsWith(".png") ||
fileEntry.getName().endsWith(".gif")
) {
list.add(fileEntry.getName());
public void downloadCloakTextures() {
// Todo: Download the cloak textures and put them in the Capes folder
}
private static void loadCloakTextures() {
if (capesFolder.isDirectory()) {
for (final File fileEntry : Objects.requireNonNull(capesFolder.listFiles())) {
if (
fileEntry.getName().endsWith(".png") || fileEntry.getName().endsWith(".gif")
) {
list.add(fileEntry.getName());
}
}
}
}
public static void tick() {
if (!lastCache.equals(cape)) {
if (!cape.equals("None")) {
if (!cape.isEmpty()) {
if (cape.endsWith(".gif")) {
try {
anicape.clear();
@@ -103,9 +113,9 @@ public class CapesMod implements ModInitializer {
if (cape.endsWith(".gif")) {
if (capeindex > (anicape.size() - 1)) {
capeindex = 0;
}
if (System.currentTimeMillis() > mili + anicape.get(capeindex).getDelay()) {
mili = System.currentTimeMillis();
}
if (System.currentTimeMillis() > mili + anicape.get(capeindex).getDelay()) {
mili = System.currentTimeMillis();
capeCacheIdentifier = anicape.get(capeindex).getId();
capeindex++;
}
@@ -0,0 +1,33 @@
package org.auraclient.auracloaks.event;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.option.KeyBinding;
import org.auraclient.auracloaks.AuraCloaks;
import net.minecraft.client.util.InputUtil;
import org.lwjgl.glfw.GLFW;
public class KeyInputHandler {
public static final String KEY_CATEGORY_CAPES = "key.category.auracloaks";
public static final String KEY_CHANGE_CAPE = "key.auracloaks.change_cape";
public static KeyBinding changeCapeKey;
public static void register() {
changeCapeKey = KeyBindingHelper.registerKeyBinding(new KeyBinding(
KEY_CHANGE_CAPE, InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_N, KEY_CATEGORY_CAPES
));
ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (changeCapeKey.wasPressed()) {
if (AuraCloaks.list.indexOf(AuraCloaks.cape) + 1 == AuraCloaks.list.size()) {
AuraCloaks.cape = AuraCloaks.list.get(0);
AuraCloaks.capeCacheIdentifier = null;
}else{
AuraCloaks.cape = AuraCloaks.list.get(AuraCloaks.list.indexOf(AuraCloaks.cape) + 1);
};
}
});
}
}
@@ -1,6 +1,6 @@
package me.iipho3nix.iicapemod.mixin;
package org.auraclient.auracloaks.mixin;
import me.iipho3nix.iicapemod.CapesMod;
import org.auraclient.auracloaks.AuraCloaks;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.network.AbstractClientPlayerEntity;
@@ -16,12 +16,12 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
public class AbstractClientPlayerEntityMixin {
@Inject(at = @At("RETURN"), method = "getSkinTextures", cancellable = true)
private void getSkinTextures(CallbackInfoReturnable<SkinTextures> cir) {
if (((AbstractClientPlayerEntity) (Object) this) instanceof ClientPlayerEntity && CapesMod.capeCacheIdentifier != null) {
if (((AbstractClientPlayerEntity) (Object) this) instanceof ClientPlayerEntity && AuraCloaks.capeCacheIdentifier != null) {
SkinTextures textures = cir.getReturnValue();
cir.setReturnValue(new SkinTextures(
textures.texture(),
textures.textureUrl(),
CapesMod.capeCacheIdentifier,
AuraCloaks.capeCacheIdentifier,
textures.elytraTexture(),
textures.model(),
textures.secure()
@@ -1,6 +1,6 @@
package me.iipho3nix.iicapemod.mixin;
package org.auraclient.auracloaks.mixin;
import me.iipho3nix.iicapemod.CapesMod;
import org.auraclient.auracloaks.AuraCloaks;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
@@ -14,6 +14,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
public class MinecraftClientMixin {
@Inject(at = @At("HEAD"), method = "tick")
private void tick(CallbackInfo ci) {
CapesMod.tick();
AuraCloaks.tick();
}
}
@@ -1,4 +1,4 @@
package me.iipho3nix.iicapemod.utils;
package org.auraclient.auracloaks.utils;
import net.minecraft.util.Identifier;
@@ -1,4 +1,4 @@
package me.iipho3nix.iicapemod.utils;
package org.auraclient.auracloaks.utils;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.texture.NativeImage;
@@ -1,4 +1,4 @@
package me.iipho3nix.iicapemod.utils;
package org.auraclient.auracloaks.utils;
import java.util.Random;