Skip to content

Commit 1b74ab2

Browse files
committed
Capes for Fabric 1.21
This is a port of Capes for 1.21. This currently only supports Fabric, as Architectury's NeoForge Yarn mappings aren't yet updated for 1.21
1 parent d76eeb3 commit 1b74ab2

File tree

8 files changed

+41
-19
lines changed

8 files changed

+41
-19
lines changed

common/src/main/java/me/cael/capes/mixins/MixinPlayerListEntry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ private void getCapeTexture(CallbackInfoReturnable<SkinTextures> cir) {
3232
CapeConfig config = Capes.INSTANCE.getCONFIG();
3333
SkinTextures oldTextures = cir.getReturnValue();
3434
Identifier capeTexture = handler.getCape();
35-
Identifier elytraTexture = handler.getHasElytraTexture() && config.getEnableElytraTexture() ? capeTexture : new Identifier("textures/entity/elytra.png");
35+
Identifier elytraTexture = handler.getHasElytraTexture() && config.getEnableElytraTexture() ? capeTexture : Identifier.of("textures/entity/elytra.png");
3636
SkinTextures newTextures = new SkinTextures(
3737
oldTextures.texture(), oldTextures.textureUrl(),
3838
capeTexture, elytraTexture,

common/src/main/java/me/cael/capes/mixins/MixinSkinOptionsScreen.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44
import net.minecraft.client.gui.screen.Screen;
55
import net.minecraft.client.gui.screen.option.GameOptionsScreen;
66
import net.minecraft.client.gui.screen.option.SkinOptionsScreen;
7+
import net.minecraft.client.gui.widget.ClickableWidget;
8+
import net.minecraft.client.gui.widget.CyclingButtonWidget;
79
import net.minecraft.client.gui.widget.TextIconButtonWidget;
810
import net.minecraft.client.option.GameOptions;
11+
import net.minecraft.entity.player.PlayerModelPart;
912
import net.minecraft.text.Text;
1013
import net.minecraft.util.Identifier;
1114
import org.spongepowered.asm.mixin.Mixin;
@@ -14,20 +17,35 @@
1417
import org.spongepowered.asm.mixin.injection.Inject;
1518
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1619

20+
import java.util.ArrayList;
21+
import java.util.List;
22+
1723
@Mixin(SkinOptionsScreen.class)
1824
public class MixinSkinOptionsScreen extends GameOptionsScreen {
1925

2026
@Unique
21-
private static final Identifier CAPE_OPTIONS_ICON_TEXTURE = new Identifier("capes","icon/cape_options");
27+
private static final Identifier CAPE_OPTIONS_ICON_TEXTURE = Identifier.of("capes","icon/cape_options");
2228
@Unique
2329
private final SelectorMenu selectorMenu = new SelectorMenu(this, this.gameOptions);
2430

2531
public MixinSkinOptionsScreen(Screen parent, GameOptions gameOptions, Text title) {
2632
super(parent, gameOptions, title);
2733
}
2834

29-
@Inject(method = "init", at = @At("RETURN"))
30-
protected void init(CallbackInfo info) {
35+
@Override
36+
public void addOptions() {
37+
List<ClickableWidget> list = new ArrayList<>();
38+
PlayerModelPart[] var2 = PlayerModelPart.values();
39+
40+
for (PlayerModelPart playerModelPart : var2) {
41+
list.add(CyclingButtonWidget.onOffBuilder(this.gameOptions.isPlayerModelPartEnabled(playerModelPart)).build(playerModelPart.getOptionName(), (cyclingButtonWidget, boolean_) -> {
42+
this.gameOptions.togglePlayerModelPart(playerModelPart, boolean_);
43+
}));
44+
}
45+
46+
list.add(this.gameOptions.getMainArm().createWidget(this.gameOptions));
47+
this.body.addAll(list);
3148
this.addDrawableChild(TextIconButtonWidget.builder(Text.empty(), (buttonWidget) -> this.client.setScreen(selectorMenu), true).dimension(20, 20).texture(CAPE_OPTIONS_ICON_TEXTURE, 16, 16).build()).setPosition(this.width / 2 - 179, this.height / 6);
49+
3250
}
3351
}

common/src/main/kotlin/me/cael/capes/Capes.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@ object Capes {
4444
finalConfig
4545
}
4646

47-
fun identifier(id: String) = Identifier(MOD_ID, id)
47+
fun identifier(id: String) = Identifier.of(MOD_ID, id)
4848

4949
}

common/src/main/kotlin/me/cael/capes/menu/MainMenu.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ open class MainMenu(parent: Screen, gameOptions: GameOptions) : GameOptionsScree
3131

3232
}
3333

34+
override fun addOptions() {
35+
TODO("Not yet implemented")
36+
}
37+
3438
override fun render(context: DrawContext, mouseX: Int, mouseY: Int, delta: Float) {
3539
this.renderBackground(context, mouseX, mouseY, delta)
3640
context.drawCenteredTextWithShadow(textRenderer, title, width / 2, 20, 16777215)

common/src/main/kotlin/me/cael/capes/render/DisplayPlayerEntityRenderer.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ import net.minecraft.client.render.RenderLayer
66
import net.minecraft.client.render.VertexConsumerProvider
77
import net.minecraft.client.render.entity.EntityRendererFactory
88
import net.minecraft.client.render.entity.LivingEntityRenderer
9-
import net.minecraft.client.render.entity.PlayerModelPart
109
import net.minecraft.client.render.entity.model.ElytraEntityModel
1110
import net.minecraft.client.render.entity.model.EntityModelLayers
1211
import net.minecraft.client.render.entity.model.PlayerEntityModel
1312
import net.minecraft.client.render.item.ItemRenderer
1413
import net.minecraft.client.util.DefaultSkinHelper
1514
import net.minecraft.client.util.math.MatrixStack
1615
import net.minecraft.entity.LivingEntity
16+
import net.minecraft.entity.player.PlayerModelPart
1717
import net.minecraft.util.Identifier
1818
import net.minecraft.util.math.MathHelper
1919
import net.minecraft.util.math.RotationAxis
@@ -54,7 +54,7 @@ class DisplayPlayerEntityRenderer(val ctx: EntityRendererFactory.Context, slim:
5454
val renderLayer = this.model.getLayer(PlaceholderEntity.getSkinTexture())
5555
val vertexConsumer = vertexConsumerProvider.getBuffer(renderLayer)
5656
val overlay = OverlayTexture.packUv(OverlayTexture.getU(0f), OverlayTexture.getV(false))
57-
model.render(matrixStack, vertexConsumer, light, overlay, 1.0f, 1.0f, 1.0f, 1.0f)
57+
model.render(matrixStack, vertexConsumer, light, overlay)
5858
}
5959

6060
if (!PlaceholderEntity.showElytra) {
@@ -76,8 +76,8 @@ class DisplayPlayerEntityRenderer(val ctx: EntityRendererFactory.Context, slim:
7676

7777
this.model.copyStateTo(this.elytra)
7878

79-
val vertexConsumer = ItemRenderer.getArmorGlintConsumer(vertexConsumerProvider, RenderLayer.getArmorCutoutNoCull(identifier), false, false)
80-
this.elytra.render(matrixStack, vertexConsumer, light, OverlayTexture.DEFAULT_UV, 1.0f, 1.0f, 1.0f, 1.0f)
79+
val vertexConsumer = ItemRenderer.getArmorGlintConsumer(vertexConsumerProvider, RenderLayer.getArmorCutoutNoCull(identifier), false)
80+
this.elytra.render(matrixStack, vertexConsumer, light, OverlayTexture.DEFAULT_UV)
8181
matrixStack.pop()
8282
}
8383

common/src/main/kotlin/me/cael/capes/render/PlaceholderEntity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ object PlaceholderEntity {
5656
fun getElytraTexture(): Identifier {
5757
val handler = PlayerHandler.fromProfile(gameProfile)
5858
val capeTexture = getCapeTexture()
59-
return if (handler.hasElytraTexture && Capes.CONFIG.enableElytraTexture && capeTexture != null) capeTexture else Identifier("textures/entity/elytra.png")
59+
return if (handler.hasElytraTexture && Capes.CONFIG.enableElytraTexture && capeTexture != null) capeTexture else Identifier.of("textures/entity/elytra.png")
6060
}
6161

6262
fun getSkinTexture(): Identifier = skin.texture

gradle.properties

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
org.gradle.jvmargs=-Xmx8G
22

3-
minecraft_version=1.20.5
4-
yarn_mappings=1.20.5+build.1
3+
minecraft_version=1.21
4+
yarn_mappings=1.21+build.1
55
enabled_platforms=fabric
66

77
archives_base_name=capes
8-
mod_version=1.5.4+1.20.5
8+
mod_version=1.5.4+1.21
99
maven_group=me.capes
1010

11-
fabric_loader_version=0.15.10
12-
fabric_api_version=0.97.6+1.20.5
11+
fabric_loader_version=0.15.11
12+
fabric_api_version=0.100.1+1.21
1313

14-
forge_version=20.5.3-beta
14+
forge_version=21.0.0-beta
1515

1616
# Other APIs
17-
fabric_kotlin_version=1.10.19+kotlin.1.9.23
17+
fabric_kotlin_version=1.11.0+kotlin.2.0.0
1818
forge_kotlin_version=4.+
19-
modmenu_version=10.+
19+
modmenu_version=11.+
2020

2121
# Publishing
2222
curseforge_id=408481

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ pluginManagement {
99

1010
include("common")
1111
include("fabric")
12-
include("forge")
12+
//include("forge")
1313

1414
rootProject.name = "Capes"

0 commit comments

Comments
 (0)