From f3da48b42f5490caecbadacf7c9d4a3945a0c296 Mon Sep 17 00:00:00 2001 From: Sollace Date: Sun, 12 Jun 2022 00:39:09 +0200 Subject: [PATCH] Bump mson and ponify the allay --- gradle.properties | 2 +- .../client/model/ModelType.java | 2 + .../client/render/MobRenderers.java | 3 + .../client/render/entity/AllayRenderer.java | 29 +++++++++ .../client/util/render/NativeUtil.java | 2 +- .../assets/minelittlepony/models/allay.json | 59 ++++++++++++++++++ .../textures/entity/allay/allay_pony.png | Bin 0 -> 3766 bytes 7 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/minelittlepony/client/render/entity/AllayRenderer.java create mode 100644 src/main/resources/assets/minelittlepony/models/allay.json create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/allay/allay_pony.png diff --git a/gradle.properties b/gradle.properties index 44f07f50..b33d2341 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,4 +23,4 @@ org.gradle.daemon=false modmenu_version=4.0.0 kirin_version=1.11.0-beta.2 hd_skins_version=6.6.0 - mson_version=1.6.0-beta.3 + mson_version=1.6.0-beta.4 diff --git a/src/main/java/com/minelittlepony/client/model/ModelType.java b/src/main/java/com/minelittlepony/client/model/ModelType.java index 1a337db2..b380e6a9 100644 --- a/src/main/java/com/minelittlepony/client/model/ModelType.java +++ b/src/main/java/com/minelittlepony/client/model/ModelType.java @@ -2,6 +2,7 @@ package com.minelittlepony.client.model; import net.minecraft.client.model.Model; import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.entity.model.AllayEntityModel; import net.minecraft.client.render.entity.model.ArmorStandEntityModel; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.mob.VexEntity; @@ -70,6 +71,7 @@ public final class ModelType { public static final ModelKey ENDERMAN = register("enderman", EnderStallionModel::new); public static final ModelKey> BREEZIE = register("breezie", BreezieModel::new); public static final ModelKey PARASPRITE = register("parasprite", ParaspriteModel::new); + public static final ModelKey ALLAY = register("allay", AllayEntityModel::new); public static final ModelKey> ELYTRA = register("elytra", PonyElytra::new); diff --git a/src/main/java/com/minelittlepony/client/render/MobRenderers.java b/src/main/java/com/minelittlepony/client/render/MobRenderers.java index fcbcec6a..9f9d29f3 100644 --- a/src/main/java/com/minelittlepony/client/render/MobRenderers.java +++ b/src/main/java/com/minelittlepony/client/render/MobRenderers.java @@ -59,6 +59,9 @@ public final class MobRenderers { public static final MobRenderers STRIDER = register("striders", (state, pony) -> { pony.switchRenderer(state, EntityType.STRIDER, ParaspriteRenderer::new); }); + public static final MobRenderers ALLAY = register("allays", (state, pony) -> { + pony.switchRenderer(state, EntityType.ALLAY, AllayRenderer::new); + }); private final BiConsumer changer; diff --git a/src/main/java/com/minelittlepony/client/render/entity/AllayRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/AllayRenderer.java new file mode 100644 index 00000000..37cf04fc --- /dev/null +++ b/src/main/java/com/minelittlepony/client/render/entity/AllayRenderer.java @@ -0,0 +1,29 @@ +package com.minelittlepony.client.render.entity; + +import net.minecraft.client.render.entity.*; +import net.minecraft.client.render.entity.feature.HeldItemFeatureRenderer; +import net.minecraft.client.render.entity.model.AllayEntityModel; +import net.minecraft.entity.passive.AllayEntity; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.BlockPos; + +import com.minelittlepony.client.model.ModelType; + +public class AllayRenderer extends MobEntityRenderer { + private static final Identifier TEXTURE = new Identifier("minelittlepony", "textures/entity/allay/allay_pony.png"); + + public AllayRenderer(EntityRendererFactory.Context context) { + super(context, ModelType.ALLAY.createModel(), 0.4f); + addFeature(new HeldItemFeatureRenderer(this, context.getHeldItemRenderer())); + } + + @Override + public Identifier getTexture(AllayEntity allayEntity) { + return TEXTURE; + } + + @Override + protected int getBlockLight(AllayEntity allayEntity, BlockPos blockPos) { + return 15; + } +} diff --git a/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java b/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java index a627eb22..4099fe6c 100644 --- a/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java +++ b/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java @@ -112,7 +112,7 @@ public class NativeUtil { int height = _getTexLevelParameter(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT); if (width * height == 0) { - throw new IllegalStateException("GL texture not uploaded yet"); + throw new IllegalStateException("GL texture not uploaded yet: " + resource); } try (NativeImage image = new NativeImage(InternalFormat.valueOf(format).getClassification(), width, height, false)) { diff --git a/src/main/resources/assets/minelittlepony/models/allay.json b/src/main/resources/assets/minelittlepony/models/allay.json new file mode 100644 index 00000000..3d0fd463 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/models/allay.json @@ -0,0 +1,59 @@ +{ + "texture": {"w": 32, "h": 32}, + "data": { + "root": { + "pivot": [0, 23.5, 0], + "children": { + "head": { + "pivot": [ 0, -3.99, 0 ], + "cubes": [ + { "from": [-2.5, -5, -2.5], "size": [ 5, 5, 5] }, + + { "from": [-2.7, -6.6, -0.5], "size": [ 2, 2, 2], "texture": {"u": 10, "v": 10}, "dilate": -0.4 }, + { "from": [ 0.7, -6.6, -0.5], "size": [ 2, 2, 2], "texture": {"u": 10, "v": 14}, "dilate": -0.4 }, + + { "from": [-1, -1, -3.3], "size": [ 2, 1, 1], "texture": {"u": 18, "v": 15} } + ] + }, + "body": { + "texture": { "u": 0, "v": 10 }, + "pivot": [ 0, -4, 0 ], + "cubes": [ + { "from": [-1.5, 0, -1], "size": [ 3, 4, 2] }, + { "from": [-1.5, 0, -1], "size": [ 3, 5, 2], "texture": {"u": 0, "v": 16}, "dilate": -0.2 } + ], + "children": { + "right_arm": { + "texture": { "u": 23, "v": 0 }, + "pivot": [ -1.75, 0.5, 0 ], + "cubes": [ + { "from": [-0.75, -0.5, -1], "size": [ 1, 4, 2], "dilate": -0.01 } + ] + }, + "left_arm": { + "texture": { "u": 23, "v": 6 }, + "pivot": [ 1.75, 0.5, 0 ], + "cubes": [ + { "from": [-0.25, -0.5, -1], "size": [ 1, 4, 2], "dilate": -0.01 } + ] + }, + "right_wing": { + "texture": { "u": 16, "v": 14 }, + "pivot": [ -0.5, 0, 0.65 ], + "cubes": [ + { "from": [0, 1, 0], "size": [ 0, 5, 8] } + ] + }, + "left_wing": { + "texture": { "u": 16, "v": 14 }, + "pivot": [ 0.5, 0, 0.65 ], + "cubes": [ + { "from": [0, 1, 0], "size": [ 0, 5, 8] } + ] + } + } + } + } + } + } +} diff --git a/src/main/resources/assets/minelittlepony/textures/entity/allay/allay_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/allay/allay_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..852c7b491a90dbd6041bde3aa7ca1fe334314c76 GIT binary patch literal 3766 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