Skip to content

Commit

Permalink
Merge pull request #84 from ImUrX/update-1.21
Browse files Browse the repository at this point in the history
  • Loading branch information
enjarai authored Jun 23, 2024
2 parents 82e832f + 9553e68 commit 6598edc
Show file tree
Hide file tree
Showing 9 changed files with 62 additions and 50 deletions.
18 changes: 9 additions & 9 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,26 @@ org.gradle.jvmargs=-Xmx1G

# Fabric Properties
# check these on https://fabricmc.net/develop
deps.minecraft=1.20.6
deps.yarn=1.20.6+build.3
deps.fabricloader=0.15.10
deps.minecraft=1.21
deps.yarn=1.21+build.2
deps.fabricloader=0.15.11

# Mod Properties
mod_version = 1.11.0
maven_group = nl.enjarai
archives_base_name = show-me-your-skin

publish_target_min=1.20.5
publish_target_max=1.20.6
publish_target_min=1.21
publish_target_max=1.21
mod_modrinth=bD7YqcA3
mod_curseforge=622010
mod_github=enjarai/show-me-your-skin
git_branch=master

# Dependencies
deps.fabric-api=0.99.4+1.20.6
deps.fabric-api=0.100.3+1.21
# https://modrinth.com/mod/modmenu/versions
deps.modmenu=10.0.0-beta.1
deps.cicada=0.7.2+1.20.5-and-above
deps.modmenu=11.0.1
deps.cicada=0.8.0+1.21-and-above
# https://github.com/OnyxStudios/Cardinal-Components-API/releases
deps.cardinal-components-api=6.0.0
deps.cardinal-components-api=6.1.0
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,6 @@ private static void startListeningForUpdates(ServerPlayNetworkHandler handler) {
}

public static Identifier id(String path) {
return new Identifier(MODID, path);
return Identifier.of(MODID, path);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import net.minecraft.item.trim.ArmorTrim;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import nl.enjarai.showmeyourskin.client.ModRenderLayers;
import nl.enjarai.showmeyourskin.compat.armored_elytra.ArmoredElytraCompat;
import nl.enjarai.showmeyourskin.config.HideableEquipment;
Expand Down Expand Up @@ -72,7 +73,7 @@ public abstract class ArmorFeatureRendererMixin<T extends LivingEntity, M extend
at = @At(value = "HEAD"),
cancellable = true
)
private void showmeyourskin$armorTransparency(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, A model, float red, float green, float blue, Identifier overlay, CallbackInfo ci) {
private void showmeyourskin$armorTransparency(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, A model, int i, Identifier overlay, CallbackInfo ci) {
var ctx = MixinContext.ARMOR.getContext();
if (ctx == null) throw new IllegalStateException("ArmorContext is null");

Expand All @@ -90,7 +91,9 @@ public abstract class ArmorFeatureRendererMixin<T extends LivingEntity, M extend
if (t > 0) {
VertexConsumer vertexConsumer = vertexConsumers.getBuffer(
ModRenderLayers.ARMOR_TRANSLUCENT_NO_CULL.apply(overlay));
model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, red, green, blue, t);
model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV,
ColorHelper.Argb.withAlpha(ColorHelper.channelFromFloat(t), i)
);
}

ci.cancel();
Expand All @@ -116,7 +119,7 @@ public abstract class ArmorFeatureRendererMixin<T extends LivingEntity, M extend
Sprite sprite = this.armorTrimsAtlas.getSprite(leggings ? trim.getLeggingsModelId(armorMaterial) : trim.getGenericModelId(armorMaterial));
VertexConsumer vertexConsumer = sprite.getTextureSpecificVertexConsumer(vertexConsumers
.getBuffer(ModRenderLayers.ARMOR_TRANSLUCENT_NO_CULL.apply(TexturedRenderLayers.ARMOR_TRIMS_ATLAS_TEXTURE)));
model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, 1, 1, 1, t);
model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, ColorHelper.Argb.fromFloats(t, 1.0f, 1.0f, 1.0f));
}

ci.cancel();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import nl.enjarai.showmeyourskin.client.ModRenderLayers;
import nl.enjarai.showmeyourskin.util.MixinContext;
import org.spongepowered.asm.mixin.Mixin;
Expand All @@ -33,9 +34,9 @@ public interface ArmorRendererMixin {
if (t > 0) {
VertexConsumer vertexConsumer = ItemRenderer.getArmorGlintConsumer(
vertexConsumers, ModRenderLayers.ARMOR_TRANSLUCENT_NO_CULL.apply(texture),
false, stack.hasGlint() && ctx.getApplicableGlintTransparency() > 0
stack.hasGlint() && ctx.getApplicableGlintTransparency() > 0
);
model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, 1, 1, 1, t);
model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, ColorHelper.Argb.fromFloats(t, 1.0f, 1.0f, 1.0f));
}

ci.cancel();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
import net.minecraft.client.render.entity.feature.ElytraFeatureRenderer;
import net.minecraft.client.render.entity.feature.FeatureRenderer;
import net.minecraft.client.render.entity.feature.FeatureRendererContext;
import net.minecraft.client.render.entity.model.ElytraEntityModel;
import net.minecraft.client.render.entity.model.EntityModel;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import nl.enjarai.showmeyourskin.config.HideableEquipment;
import nl.enjarai.showmeyourskin.config.ModConfig;
import org.spongepowered.asm.mixin.Mixin;
Expand Down Expand Up @@ -50,9 +52,9 @@ public ElytraFeatureRendererMixin(FeatureRendererContext<T, M> context) {
method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/entity/LivingEntity;FFFFFF)V",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/render/item/ItemRenderer;getArmorGlintConsumer(Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/render/RenderLayer;ZZ)Lnet/minecraft/client/render/VertexConsumer;"
target = "Lnet/minecraft/client/render/item/ItemRenderer;getArmorGlintConsumer(Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/render/RenderLayer;Z)Lnet/minecraft/client/render/VertexConsumer;"
),
index = 3
index = 2
)
private boolean showmeyourskin$hideElytraGlint(boolean original, @Local(argsOnly = true) LivingEntity entity) {
if (entity instanceof PlayerEntity player) {
Expand All @@ -66,22 +68,21 @@ public ElytraFeatureRendererMixin(FeatureRendererContext<T, M> context) {
method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/entity/LivingEntity;FFFFFF)V",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/render/item/ItemRenderer;getArmorGlintConsumer(Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/render/RenderLayer;ZZ)Lnet/minecraft/client/render/VertexConsumer;"
target = "Lnet/minecraft/client/render/item/ItemRenderer;getArmorGlintConsumer(Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/render/RenderLayer;Z)Lnet/minecraft/client/render/VertexConsumer;"
)
)
private VertexConsumer showmeyourskin$enableElytraTransparency1(
VertexConsumerProvider vertexConsumerProvider, RenderLayer renderLayer, boolean solid, boolean hasGlint,
Operation<VertexConsumer> original, @Local(argsOnly = true) LivingEntity entity) {
VertexConsumerProvider vertexConsumerProvider, RenderLayer renderLayer, boolean solid, Operation<VertexConsumer> original, @Local(argsOnly = true) LivingEntity entity) {
if (entity instanceof PlayerEntity player) {
if (!player.isFallFlying() || !ModConfig.INSTANCE.getApplicable(player.getUuid()).forceElytraWhenFlying) {
var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA);
if (transparency < 1) {
return ItemRenderer.getDirectItemGlintConsumer(vertexConsumerProvider, renderLayer, solid, hasGlint);
return ItemRenderer.getDirectItemGlintConsumer(vertexConsumerProvider, renderLayer, solid, solid);
}
}
}

return original.call(vertexConsumerProvider, renderLayer, solid, hasGlint);
return original.call(vertexConsumerProvider, renderLayer, solid);
}

@WrapOperation(
Expand All @@ -105,24 +106,26 @@ public ElytraFeatureRendererMixin(FeatureRendererContext<T, M> context) {
return original.call(texture);
}

@ModifyArg(
@WrapOperation(
method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/entity/LivingEntity;FFFFFF)V",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/render/entity/model/ElytraEntityModel;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;IIFFFF)V"
),
index = 7
target = "Lnet/minecraft/client/render/entity/model/ElytraEntityModel;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;II)V"
)
)
private float showmeyourskin$applyElytraTransparency(float original, @Local(argsOnly = true) LivingEntity entity) {
private void showmeyourskin$applyElytraTransparency(ElytraEntityModel instance, MatrixStack matrixStack, VertexConsumer vertexConsumer, int i, int uv, Operation<Void> original, @Local(argsOnly = true) LivingEntity entity) {
if (entity instanceof PlayerEntity player) {
if (!player.isFallFlying() || !ModConfig.INSTANCE.getApplicable(player.getUuid()).forceElytraWhenFlying) {
var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA);
if (transparency < 1) {
return transparency;
instance.render(matrixStack, vertexConsumer, i, uv,
ColorHelper.Argb.withAlpha(ColorHelper.channelFromFloat(transparency), -1)
);
return;
}
}
}

return original;
original.call(instance, matrixStack, vertexConsumer, i, uv);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.client.render.block.entity.SkullBlockEntityRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import nl.enjarai.showmeyourskin.config.HideableEquipment;
import nl.enjarai.showmeyourskin.config.ModConfig;
import nl.enjarai.showmeyourskin.util.MixinContext;
Expand All @@ -20,10 +21,10 @@ public abstract class SkullBlockEntityRendererMixin {
method = "renderSkull",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/render/block/entity/SkullBlockEntityModel;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;IIFFFF)V"
target = "Lnet/minecraft/client/render/block/entity/SkullBlockEntityModel;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;II)V"
)
)
private static void modifySkullTransparency(SkullBlockEntityModel instance, MatrixStack matrixStack, VertexConsumer vertexConsumer, int light, int uv, float r, float g, float b, float a, Operation<Void> original) {
private static void modifySkullTransparency(SkullBlockEntityModel instance, MatrixStack matrixStack, VertexConsumer vertexConsumer, int light, int uv, Operation<Void> original) {
var wearingEntity = MixinContext.ENTITY.getContext();

if (wearingEntity != null) {
Expand All @@ -32,7 +33,9 @@ private static void modifySkullTransparency(SkullBlockEntityModel instance, Matr
if (transparency < 1) {
if (transparency > 0) {
// If transparency is below one but above 0, we *should* call the original but modify the alpha
original.call(instance, matrixStack, vertexConsumer, light, uv, r, g, b, transparency);
instance.render(matrixStack, vertexConsumer, light, uv,
ColorHelper.Argb.withAlpha(ColorHelper.channelFromFloat(transparency), -1)
);
}

// If transparency is below 1, we potentially don't want to call the original
Expand All @@ -41,7 +44,7 @@ private static void modifySkullTransparency(SkullBlockEntityModel instance, Matr
}

// Continue as usual
original.call(instance, matrixStack, vertexConsumer, light, uv, r, g, b, a);
original.call(instance, matrixStack, vertexConsumer, light, uv);
}

@WrapOperation(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package nl.enjarai.showmeyourskin.mixin.shield;

import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
import com.mojang.datafixers.util.Pair;
import net.minecraft.block.entity.BannerPattern;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.VertexConsumer;
Expand All @@ -12,9 +10,9 @@
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.component.type.BannerPatternsComponent;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.util.DyeColor;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import nl.enjarai.showmeyourskin.config.HideableEquipment;
import nl.enjarai.showmeyourskin.config.ModConfig;
import nl.enjarai.showmeyourskin.util.MixinContext;
Expand Down Expand Up @@ -95,7 +93,7 @@ public abstract class BannerBlockEntityRendererMixin {
canvas.render(
matrices, vertexConsumer,
light, overlay,
1.0f, 1.0f, 1.0f, t
ColorHelper.Argb.fromFloats(t, 1.0f, 1.0f, 1.0f)
);
}

Expand Down Expand Up @@ -135,19 +133,19 @@ public abstract class BannerBlockEntityRendererMixin {
method = "renderLayer",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/model/ModelPart;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;IIFFFF)V"
target = "Lnet/minecraft/client/model/ModelPart;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;III)V"
),
index = 7
index = 4
)
private static float showmeyourskin$modifyBannerPatternTransparency(float original) {
private static int showmeyourskin$modifyBannerPatternTransparency(int original) {
if (showmeyourskin$isShield.get()) {
var ctx = MixinContext.ENTITY.getContext();

if (ctx instanceof PlayerEntity) {
var t = ModConfig.INSTANCE.getApplicablePieceTransparency(ctx.getUuid(), HideableEquipment.SHIELD);

if (t < 1) {
return t;
return ColorHelper.Argb.withAlpha(ColorHelper.channelFromFloat(t), original);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.model.ShieldEntityModel;
import net.minecraft.client.render.item.BuiltinModelItemRenderer;
Expand All @@ -11,13 +13,15 @@
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import nl.enjarai.showmeyourskin.config.HideableEquipment;
import nl.enjarai.showmeyourskin.config.ModConfig;
import nl.enjarai.showmeyourskin.util.MixinContext;
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.ModifyArg;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(BuiltinModelItemRenderer.class)
Expand Down Expand Up @@ -61,7 +65,7 @@ public abstract class BuiltinModelItemRendererMixin {
method = "render",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/item/ItemStack;getOrDefault(Lnet/minecraft/component/DataComponentType;Ljava/lang/Object;)Ljava/lang/Object;"
target = "Lnet/minecraft/item/ItemStack;getOrDefault(Lnet/minecraft/component/ComponentType;Ljava/lang/Object;)Ljava/lang/Object;"
),
cancellable = true
)
Expand Down Expand Up @@ -95,21 +99,21 @@ public abstract class BuiltinModelItemRendererMixin {
return original.call(model, texture);
}

@ModifyArg(
@WrapOperation(
method = "render",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/model/ModelPart;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;IIFFFF)V"
),
index = 7
target = "Lnet/minecraft/client/model/ModelPart;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;II)V"
)
)
private float showmeyourskin$modifyShieldTransparency(float original) {
private void showmeyourskin$modifyShieldTransparency(ModelPart instance, MatrixStack matrices, VertexConsumer vertices, int light, int overlay, Operation<Void> original) {
var ctx = MixinContext.ENTITY.getContext();

if (ctx instanceof PlayerEntity) {
return ModConfig.INSTANCE.getApplicablePieceTransparency(ctx.getUuid(), HideableEquipment.SHIELD);
instance.render(matrices, vertices, light, overlay, ColorHelper.Argb.withAlpha(ColorHelper.channelFromFloat(ModConfig.INSTANCE.getApplicablePieceTransparency(ctx.getUuid(), HideableEquipment.SHIELD)), -1));
return;
}

return original;
original.call(instance, matrices, vertices, light, overlay);
}
}
2 changes: 1 addition & 1 deletion src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
"depends": {
"fabricloader": ">=0.15.0",
"fabric-api": "*",
"minecraft": ">=1.20.5- <=1.20.6",
"minecraft": ">=1.21.0- <=1.21.0",
"cicada": ">=0.7.0 <1.0.0",
"cardinal-components-base": "*",
"cardinal-components-entity": "*"
Expand Down

0 comments on commit 6598edc

Please sign in to comment.