42 lines
1.8 KiB
Java
42 lines
1.8 KiB
Java
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);
|
|
}
|
|
} |