diff --git a/build.gradle b/build.gradle index d67007de..daec8c4e 100644 --- a/build.gradle +++ b/build.gradle @@ -158,6 +158,8 @@ dependencies { modCompileOnly "worldedit:worldedit:7.2.3" modRuntime "worldedit:worldedit:7.2.3" + modImplementation "geckolib:geckolib:3.0.31" + datagenImplementation sourceSets.main.output datagenImplementation sourceSets.main.compileClasspath datagenRuntimeOnly sourceSets.main.runtimeClasspath diff --git a/libs/geckolib/geckolib/3.0.31/geckolib-3.0.31-sources-dev.jar b/libs/geckolib/geckolib/3.0.31/geckolib-3.0.31-sources-dev.jar new file mode 100644 index 00000000..5a7e9a36 Binary files /dev/null and b/libs/geckolib/geckolib/3.0.31/geckolib-3.0.31-sources-dev.jar differ diff --git a/libs/geckolib/geckolib/3.0.31/geckolib-3.0.31-sources.jar b/libs/geckolib/geckolib/3.0.31/geckolib-3.0.31-sources.jar new file mode 100644 index 00000000..9c86f75e Binary files /dev/null and b/libs/geckolib/geckolib/3.0.31/geckolib-3.0.31-sources.jar differ diff --git a/libs/geckolib/geckolib/3.0.31/geckolib-3.0.31.jar b/libs/geckolib/geckolib/3.0.31/geckolib-3.0.31.jar new file mode 100644 index 00000000..67be569e Binary files /dev/null and b/libs/geckolib/geckolib/3.0.31/geckolib-3.0.31.jar differ diff --git a/src/main/java/org/dimdev/dimdoors/client/MaskModel.java b/src/main/java/org/dimdev/dimdoors/client/MaskModel.java new file mode 100644 index 00000000..7490cf52 --- /dev/null +++ b/src/main/java/org/dimdev/dimdoors/client/MaskModel.java @@ -0,0 +1,23 @@ +package org.dimdev.dimdoors.client; + +import net.minecraft.util.Identifier; + +import org.dimdev.dimdoors.entity.MaskEntity; +import software.bernie.geckolib3.model.AnimatedGeoModel; + +public class MaskModel extends AnimatedGeoModel { + @Override + public Identifier getModelLocation(MaskEntity object) { + return new Identifier("dimdoors:geo/mob/mask/mask.geo.json"); + } + + @Override + public Identifier getTextureLocation(MaskEntity object) { + return new Identifier("dimdoors:textures/mob/mask/mask.png"); + } + + @Override + public Identifier getAnimationFileLocation(MaskEntity animatable) { + return new Identifier("dimdoors:animations/mob/mask/mask.animation.json"); + } +} diff --git a/src/main/java/org/dimdev/dimdoors/client/MaskRenderer.java b/src/main/java/org/dimdev/dimdoors/client/MaskRenderer.java index a01c1661..d445bacd 100644 --- a/src/main/java/org/dimdev/dimdoors/client/MaskRenderer.java +++ b/src/main/java/org/dimdev/dimdoors/client/MaskRenderer.java @@ -1,24 +1,17 @@ package org.dimdev.dimdoors.client; +import net.minecraft.client.render.entity.EntityRendererFactory; + import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import org.dimdev.dimdoors.entity.MaskEntity; - -import net.minecraft.client.render.entity.EntityRenderDispatcher; -import net.minecraft.client.render.entity.EntityRenderer; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.util.Identifier; - -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; +import software.bernie.geckolib3.model.AnimatedGeoModel; +import software.bernie.geckolib3.renderer.geo.GeoEntityRenderer; @Environment(EnvType.CLIENT) -public class MaskRenderer extends EntityRenderer { - public MaskRenderer(EntityRendererFactory.Context ctx) { - super(ctx); - } - - @Override - public Identifier getTexture(MaskEntity entity) { - return new Identifier("dimdoors:mask"); +public class MaskRenderer extends GeoEntityRenderer { + public MaskRenderer(EntityRendererFactory.Context ctx) { + super(ctx, new MaskModel()); + this.shadowRadius = 0.7f; } } diff --git a/src/main/java/org/dimdev/dimdoors/entity/MaskEntity.java b/src/main/java/org/dimdev/dimdoors/entity/MaskEntity.java index ae972270..c4e4162e 100644 --- a/src/main/java/org/dimdev/dimdoors/entity/MaskEntity.java +++ b/src/main/java/org/dimdev/dimdoors/entity/MaskEntity.java @@ -2,10 +2,36 @@ package org.dimdev.dimdoors.entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.mob.MobEntity; +import net.minecraft.entity.mob.PathAwareEntity; import net.minecraft.world.World; -public class MaskEntity extends MobEntity { // TODO - protected MaskEntity(EntityType entityType, World world) { +import software.bernie.geckolib3.core.IAnimatable; +import software.bernie.geckolib3.core.PlayState; +import software.bernie.geckolib3.core.builder.AnimationBuilder; +import software.bernie.geckolib3.core.controller.AnimationController; +import software.bernie.geckolib3.core.event.predicate.AnimationEvent; +import software.bernie.geckolib3.core.manager.AnimationData; +import software.bernie.geckolib3.core.manager.AnimationFactory; + +public class MaskEntity extends PathAwareEntity implements IAnimatable { // TODO + private AnimationFactory factory = new AnimationFactory(this); + + protected MaskEntity(EntityType entityType, World world) { super(entityType, world); } -} + + private PlayState predicate(AnimationEvent event) { + event.getController().setAnimation(new AnimationBuilder().addAnimation("animation.mask.hover", true)); + return PlayState.CONTINUE; + } + + @Override + public void registerControllers(AnimationData data) { + data.addAnimationController(new AnimationController(this, "controller", 0, this::predicate)); + } + + @Override + public AnimationFactory getFactory() { + return this.factory; + } +} \ No newline at end of file diff --git a/src/main/resources/assets/dimdoors/animations/mob/mask/mask.animation.json b/src/main/resources/assets/dimdoors/animations/mob/mask/mask.animation.json new file mode 100644 index 00000000..aaf38939 --- /dev/null +++ b/src/main/resources/assets/dimdoors/animations/mob/mask/mask.animation.json @@ -0,0 +1,764 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.mask.hover": { + "loop": true, + "animation_length": 3.6, + "bones": { + "mask": { + "position": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0.5, 0], + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, 1.5, 0], + "lerp_mode": "catmullrom" + }, + "1.5": { + "vector": [0, 2, 0], + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 2, 0], + "lerp_mode": "catmullrom" + }, + "2.5": { + "vector": [0, 1.5, 0], + "lerp_mode": "catmullrom" + }, + "3.0": { + "vector": [0, 0.5, 0], + "lerp_mode": "catmullrom" + }, + "3.5": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + } + } + }, + "toprightlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, 7.66, 7.5], + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [0, -0.16, 5], + "lerp_mode": "catmullrom" + }, + "1.5": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "1.5417": { + "vector": [0, 2.5, 0], + "lerp_mode": "catmullrom" + }, + "1.5833": { + "vector": [0, 5, 0], + "lerp_mode": "catmullrom" + }, + "1.625": { + "vector": [0, 10, 0], + "lerp_mode": "catmullrom" + }, + "1.6667": { + "vector": [0, 15, 0], + "lerp_mode": "catmullrom" + }, + "1.7083": { + "vector": [0, 17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.7917": { + "vector": [0, 15, 0], + "lerp_mode": "catmullrom" + }, + "1.8333": { + "vector": [0, 10, 0], + "lerp_mode": "catmullrom" + }, + "1.875": { + "vector": [0, 5, 0], + "lerp_mode": "catmullrom" + }, + "1.9167": { + "vector": [0, 2.5, 0], + "lerp_mode": "catmullrom" + }, + "1.9583": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [2.5, -0.16, -7.5], + "lerp_mode": "catmullrom" + }, + "3.1667": { + "vector": [2.5, -0.16, -7.5], + "lerp_mode": "catmullrom" + }, + "3.5833": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + } + } + }, + "middlerightlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, 7.66, 7.5], + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [0, 0, 5], + "lerp_mode": "catmullrom" + }, + "1.5417": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "1.5833": { + "vector": [0, 2.5, 0], + "lerp_mode": "catmullrom" + }, + "1.625": { + "vector": [0, 5, 0], + "lerp_mode": "catmullrom" + }, + "1.6667": { + "vector": [0, 10, 0], + "lerp_mode": "catmullrom" + }, + "1.7083": { + "vector": [0, 15, 0], + "lerp_mode": "catmullrom" + }, + "1.75": { + "vector": [0, 17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.7917": { + "vector": [0, 17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.8333": { + "vector": [0, 15, 0], + "lerp_mode": "catmullrom" + }, + "1.875": { + "vector": [0, 10, 0], + "lerp_mode": "catmullrom" + }, + "1.9167": { + "vector": [0, 5, 0], + "lerp_mode": "catmullrom" + }, + "1.9583": { + "vector": [0, 2.5, 0], + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [2.5, -0.16, -7.5], + "lerp_mode": "catmullrom" + }, + "3.1667": { + "vector": [2.5, -0.16, -7.5], + "lerp_mode": "catmullrom" + }, + "3.5833": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + } + } + }, + "bottomrightlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, 7.66, 7.5], + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [0, -0.16, 5], + "lerp_mode": "catmullrom" + }, + "1.625": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "1.6667": { + "vector": [0, 2.5, 0], + "lerp_mode": "catmullrom" + }, + "1.7083": { + "vector": [0, 5, 0], + "lerp_mode": "catmullrom" + }, + "1.75": { + "vector": [0, 10, 0], + "lerp_mode": "catmullrom" + }, + "1.7917": { + "vector": [0, 15, 0], + "lerp_mode": "catmullrom" + }, + "1.8333": { + "vector": [0, 17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.875": { + "vector": [0, 17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.9167": { + "vector": [0, 15, 0], + "lerp_mode": "catmullrom" + }, + "1.9583": { + "vector": [0, 10, 0], + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 5, 0], + "lerp_mode": "catmullrom" + }, + "2.0417": { + "vector": [0, 2.5, 0], + "lerp_mode": "catmullrom" + }, + "2.0833": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [2.5, -0.16, -7.5], + "lerp_mode": "catmullrom" + }, + "3.1667": { + "vector": [2.5, -0.16, -7.5], + "lerp_mode": "catmullrom" + }, + "3.5833": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + } + }, + "position": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + } + }, + "Topleftlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, -7.66, -7.5], + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [0, -0.16, -5], + "lerp_mode": "catmullrom" + }, + "1.5": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "1.5417": { + "vector": [0, -2.5, 0], + "lerp_mode": "catmullrom" + }, + "1.5833": { + "vector": [0, -5, 0], + "lerp_mode": "catmullrom" + }, + "1.625": { + "vector": [0, -10, 0], + "lerp_mode": "catmullrom" + }, + "1.6667": { + "vector": [0, -15, 0], + "lerp_mode": "catmullrom" + }, + "1.7083": { + "vector": [0, -17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.7917": { + "vector": [0, -15, 0], + "lerp_mode": "catmullrom" + }, + "1.8333": { + "vector": [0, -10, 0], + "lerp_mode": "catmullrom" + }, + "1.875": { + "vector": [0, -5, 0], + "lerp_mode": "catmullrom" + }, + "1.9167": { + "vector": [0, -2.5, 0], + "lerp_mode": "catmullrom" + }, + "1.9583": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [2.5, -0.16, 7.5], + "lerp_mode": "catmullrom" + }, + "3.1667": { + "vector": [2.5, -0.16, 7.5], + "lerp_mode": "catmullrom" + }, + "3.5833": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + } + } + }, + "middleleftlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, -7.66, -7.5], + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [0, -0.16, -5], + "lerp_mode": "catmullrom" + }, + "1.5417": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "1.5833": { + "vector": [0, -2.5, 0], + "lerp_mode": "catmullrom" + }, + "1.625": { + "vector": [0, -5, 0], + "lerp_mode": "catmullrom" + }, + "1.6667": { + "vector": [0, -10, 0], + "lerp_mode": "catmullrom" + }, + "1.7083": { + "vector": [0, -15, 0], + "lerp_mode": "catmullrom" + }, + "1.75": { + "vector": [0, -17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.7917": { + "vector": [0, -17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.8333": { + "vector": [0, -15, 0], + "lerp_mode": "catmullrom" + }, + "1.875": { + "vector": [0, -10, 0], + "lerp_mode": "catmullrom" + }, + "1.9167": { + "vector": [0, -5, 0], + "lerp_mode": "catmullrom" + }, + "1.9583": { + "vector": [0, -2.5, 0], + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [2.5, -0.16, 7.5], + "lerp_mode": "catmullrom" + }, + "3.1667": { + "vector": [2.5, -0.16, 7.5], + "lerp_mode": "catmullrom" + }, + "3.5833": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + } + } + }, + "bottomleftlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, -7.66, -7.5], + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [0, -0.16, -5], + "lerp_mode": "catmullrom" + }, + "1.625": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "1.6667": { + "vector": [0, -2.5, 0], + "lerp_mode": "catmullrom" + }, + "1.7083": { + "vector": [0, -5, 0], + "lerp_mode": "catmullrom" + }, + "1.75": { + "vector": [0, -10, 0], + "lerp_mode": "catmullrom" + }, + "1.7917": { + "vector": [0, -15, 0], + "lerp_mode": "catmullrom" + }, + "1.8333": { + "vector": [0, -17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.875": { + "vector": [0, -17.5, 0], + "lerp_mode": "catmullrom" + }, + "1.9167": { + "vector": [0, -15, 0], + "lerp_mode": "catmullrom" + }, + "1.9583": { + "vector": [0, -10, 0], + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, -5, 0], + "lerp_mode": "catmullrom" + }, + "2.0417": { + "vector": [0, -2.5, 0], + "lerp_mode": "catmullrom" + }, + "2.0833": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [2.5, -0.16, 7.5], + "lerp_mode": "catmullrom" + }, + "3.1667": { + "vector": [2.5, -0.16, 7.5], + "lerp_mode": "catmullrom" + }, + "3.5833": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + } + } + } + } + }, + "animation.mask.spotted": { + "animation_length": 1.66667, + "bones": { + "mask": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.25": { + "vector": [0, 180, 0], + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 360, 0], + "lerp_mode": "catmullrom" + }, + "0.75": [0, 360, 0] + }, + "position": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 2, 0], + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, 2, 0], + "lerp_mode": "catmullrom" + } + } + }, + "toprightlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, -100, -10], + "lerp_mode": "catmullrom" + }, + "0.7917": [0, 45, -10], + "0.8333": [0, 45, -5], + "0.875": [0, 45, -10], + "0.9167": [0, 45, -5], + "0.9583": [0, 45, -10], + "1.0": [0, 45, -5], + "1.0417": [0, 45, -10], + "1.0833": [0, 45, -5], + "1.125": [0, 45, -10], + "1.1667": [0, 45, -5], + "1.2083": [0, 45, -10], + "1.25": [0, 45, -5], + "1.2917": [0, 45, -10], + "1.3333": [0, 45, -5], + "1.375": [0, 45, -10], + "1.4167": [0, 45, -5], + "1.4583": [0, 45, -10], + "1.5": [0, 45, -5], + "1.5417": [0, 45, -10], + "1.5833": [0, 45, -5], + "1.625": [0, 45, -10] + }, + "position": { + "0.0": [0, 0, 0], + "0.5": [1, 0, 1], + "0.7917": [0, 0, 0] + } + }, + "middlerightlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, -100, 0], + "lerp_mode": "catmullrom" + }, + "0.7917": [0, 45, 0], + "0.8333": [0, 50, 0], + "0.875": [0, 45, 0], + "0.9167": [0, 50, 0], + "0.9583": [0, 45, 0], + "1.0": [0, 50, 0], + "1.0417": [0, 45, 0], + "1.0833": [0, 50, 0], + "1.125": [0, 45, 0], + "1.1667": [0, 50, 0], + "1.2083": [0, 45, 0], + "1.25": [0, 50, 0], + "1.2917": [0, 45, 0], + "1.3333": [0, 50, 0], + "1.375": [0, 45, 0], + "1.4167": [0, 50, 0], + "1.4583": [0, 45, 0], + "1.5": [0, 50, 0], + "1.5417": [0, 45, 0], + "1.5833": [0, 50, 0], + "1.625": [0, 45, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.5": [1, 0, 1], + "0.7917": [0, 0, 0] + } + }, + "bottomrightlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, -100, 10], + "lerp_mode": "catmullrom" + }, + "0.7917": [0, 45, 10], + "0.8333": [0, 45, 5], + "0.875": [0, 45, 10], + "0.9167": [0, 45, 5], + "0.9583": [0, 45, 10], + "1.0": [0, 45, 5], + "1.0417": [0, 45, 10], + "1.0833": [0, 45, 5], + "1.125": [0, 45, 10], + "1.1667": [0, 45, 5], + "1.2083": [0, 45, 10], + "1.25": [0, 45, 5], + "1.2917": [0, 45, 10], + "1.3333": [0, 45, 5], + "1.375": [0, 45, 10], + "1.4167": [0, 45, 5], + "1.4583": [0, 45, 10], + "1.5": [0, 45, 5], + "1.5417": [0, 45, 10], + "1.5833": [0, 45, 5], + "1.625": [0, 45, 10] + }, + "position": { + "0.0": [0, 0, 0], + "0.5": [1, 0, 1], + "0.7917": [0, 0, 0] + } + }, + "Topleftlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 100, 10], + "lerp_mode": "catmullrom" + }, + "0.7917": [0, -45, 10], + "0.8333": [0, -45, 5], + "0.875": [0, -45, 10], + "0.9167": [0, -45, 5], + "0.9583": [0, -45, 10], + "1.0": [0, -45, 5], + "1.0417": [0, -45, 10], + "1.0833": [0, -45, 5], + "1.125": [0, -45, 10], + "1.1667": [0, -45, 5], + "1.2083": [0, -45, 10], + "1.25": [0, -45, 5], + "1.2917": [0, -45, 10], + "1.3333": [0, -45, 5], + "1.375": [0, -45, 10], + "1.4167": [0, -45, 5], + "1.4583": [0, -45, 10], + "1.5": [0, -45, 5], + "1.5417": [0, -45, 10], + "1.5833": [0, -45, 5], + "1.625": [0, -45, 10] + }, + "position": { + "0.0": [0, 0, 0], + "0.5": [-1, 0, 1], + "0.7917": [0, 0, 0] + } + }, + "middleleftlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 100, 0], + "lerp_mode": "catmullrom" + }, + "0.7917": [0, -45, 0], + "0.8333": [0, -50, 0], + "0.875": [0, -45, 0], + "0.9167": [0, -50, 0], + "0.9583": [0, -45, 0], + "1.0": [0, -50, 0], + "1.0417": [0, -45, 0], + "1.0833": [0, -50, 0], + "1.125": [0, -45, 0], + "1.1667": [0, -50, 0], + "1.2083": [0, -45, 0], + "1.25": [0, -50, 0], + "1.2917": [0, -45, 0], + "1.3333": [0, -50, 0], + "1.375": [0, -45, 0], + "1.4167": [0, -50, 0], + "1.4583": [0, -45, 0], + "1.5": [0, -50, 0], + "1.5417": [0, -45, 0], + "1.5833": [0, -50, 0], + "1.625": [0, -45, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.5": [-1, 0, 1], + "0.7917": [0, 0, 0] + } + }, + "bottomleftlimb": { + "rotation": { + "0.0": { + "vector": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 100, -10], + "lerp_mode": "catmullrom" + }, + "0.7917": [0, -45, -10], + "0.8333": [0, -45, -5], + "0.875": [0, -45, -10], + "0.9167": [0, -45, -5], + "0.9583": [0, -45, -10], + "1.0": [0, -45, -5], + "1.0417": [0, -45, -10], + "1.0833": [0, -45, -5], + "1.125": [0, -45, -10], + "1.1667": [0, -45, -5], + "1.2083": [0, -45, -10], + "1.25": [0, -45, -5], + "1.2917": [0, -45, -10], + "1.3333": [0, -45, -5], + "1.375": [0, -45, -10], + "1.4167": [0, -45, -5], + "1.4583": [0, -45, -10], + "1.5": [0, -45, -5], + "1.5417": [0, -45, -10], + "1.5833": [0, -45, -5], + "1.625": [0, -45, -10] + }, + "position": { + "0.0": [0, 0, 0], + "0.5": [-1, 0, 1], + "0.7917": [0, 0, 0] + } + } + } + } + }, + "geckolib_format_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/dimdoors/geo/mob/mask/mask.geo.json b/src/main/resources/assets/dimdoors/geo/mob/mask/mask.geo.json new file mode 100644 index 00000000..00b88d87 --- /dev/null +++ b/src/main/resources/assets/dimdoors/geo/mob/mask/mask.geo.json @@ -0,0 +1,161 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.mask", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0] + }, + "bones": [ + { + "name": "mask", + "pivot": [0, 0, -1.6], + "cubes": [ + { + "origin": [-4, 0, -1.6], + "size": [8, 8, 1], + "uv": { + "north": {"uv": [0, 0], "uv_size": [8, 8]}, + "east": {"uv": [8, 0], "uv_size": [1, 8]}, + "south": {"uv": [0, 8], "uv_size": [8, 8]}, + "west": {"uv": [8, 8], "uv_size": [1, 8]}, + "up": {"uv": [9, 0], "uv_size": [8, 1]}, + "down": {"uv": [9, 2], "uv_size": [8, -1]} + } + } + ] + }, + { + "name": "toprightlimb", + "parent": "mask", + "pivot": [4, 7, -1.6], + "cubes": [ + { + "origin": [3, 5.9, -1.6], + "size": [1, 2, 4], + "pivot": [4, 7, -1.6], + "rotation": [0, 42.5, 0], + "uv": { + "north": {"uv": [5, 16], "uv_size": [1, 2]}, + "east": {"uv": [9, 2], "uv_size": [4, 2]}, + "south": {"uv": [6, 16], "uv_size": [1, 2]}, + "west": {"uv": [9, 4], "uv_size": [4, 2]}, + "up": {"uv": [9, 14], "uv_size": [1, 4]}, + "down": {"uv": [10, 18], "uv_size": [1, -4]} + } + } + ] + }, + { + "name": "middlerightlimb", + "parent": "mask", + "pivot": [4, 4, -1.6], + "cubes": [ + { + "origin": [3, 3, -1.6], + "size": [1, 2, 4], + "pivot": [4, 4, -1.6], + "rotation": [0, 42.5, 0], + "uv": { + "north": {"uv": [7, 16], "uv_size": [1, 2]}, + "east": {"uv": [9, 6], "uv_size": [4, 2]}, + "south": {"uv": [8, 16], "uv_size": [1, 2]}, + "west": {"uv": [9, 8], "uv_size": [4, 2]}, + "up": {"uv": [11, 14], "uv_size": [1, 4]}, + "down": {"uv": [12, 18], "uv_size": [1, -4]} + } + } + ] + }, + { + "name": "bottomrightlimb", + "parent": "mask", + "pivot": [4, 1, -1.6], + "cubes": [ + { + "origin": [3, 0.1, -1.6], + "size": [1, 2, 4], + "pivot": [4, 1, -1.6], + "rotation": [0, 42.5, 0], + "uv": { + "north": {"uv": [16, 14], "uv_size": [1, 2]}, + "east": {"uv": [9, 10], "uv_size": [4, 2]}, + "south": {"uv": [16, 16], "uv_size": [1, 2]}, + "west": {"uv": [9, 12], "uv_size": [4, 2]}, + "up": {"uv": [13, 14], "uv_size": [1, 4]}, + "down": {"uv": [14, 18], "uv_size": [1, -4]} + } + } + ] + }, + { + "name": "Topleftlimb", + "parent": "mask", + "pivot": [-4, 7, -1.6], + "cubes": [ + { + "origin": [-5, 5.9, -5.6], + "size": [1, 2, 4], + "pivot": [-4, 7, -1.6], + "rotation": [0, 137.5, 0], + "uv": { + "north": {"uv": [17, 0], "uv_size": [1, 2]}, + "east": {"uv": [13, 2], "uv_size": [4, 2]}, + "south": {"uv": [17, 2], "uv_size": [1, 2]}, + "west": {"uv": [13, 4], "uv_size": [4, 2]}, + "up": {"uv": [15, 14], "uv_size": [1, 4]}, + "down": {"uv": [0, 20], "uv_size": [1, -4]} + } + } + ] + }, + { + "name": "middleleftlimb", + "parent": "mask", + "pivot": [-4, 4, -1.6], + "cubes": [ + { + "origin": [-5, 3, -5.6], + "size": [1, 2, 4], + "pivot": [-4, 4, -1.6], + "rotation": [0, 137.5, 0], + "uv": { + "north": {"uv": [17, 4], "uv_size": [1, 2]}, + "east": {"uv": [13, 6], "uv_size": [4, 2]}, + "south": {"uv": [17, 6], "uv_size": [1, 2]}, + "west": {"uv": [13, 8], "uv_size": [4, 2]}, + "up": {"uv": [1, 16], "uv_size": [1, 4]}, + "down": {"uv": [2, 20], "uv_size": [1, -4]} + } + } + ] + }, + { + "name": "bottomleftlimb", + "parent": "mask", + "pivot": [-4, 1, -1.6], + "cubes": [ + { + "origin": [-5, 0.1, -5.6], + "size": [1, 2, 4], + "pivot": [-4, 1, -1.6], + "rotation": [0, 137.5, 0], + "uv": { + "north": {"uv": [17, 8], "uv_size": [1, 2]}, + "east": {"uv": [13, 10], "uv_size": [4, 2]}, + "south": {"uv": [17, 10], "uv_size": [1, 2]}, + "west": {"uv": [13, 12], "uv_size": [4, 2]}, + "up": {"uv": [3, 16], "uv_size": [1, 4]}, + "down": {"uv": [4, 20], "uv_size": [1, -4]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/dimdoors/textures/mob/mask/mask.png b/src/main/resources/assets/dimdoors/textures/mob/mask/mask.png new file mode 100644 index 00000000..7e90c5ef Binary files /dev/null and b/src/main/resources/assets/dimdoors/textures/mob/mask/mask.png differ