From 1b1c9899a258dc7837031e59bd919161db876a69 Mon Sep 17 00:00:00 2001 From: Sollace Date: Wed, 22 Mar 2023 04:02:29 +0000 Subject: [PATCH] Added hippogriff and gryphon models (wip) --- .../models/entity/components/beak.json | 28 ++++ .../models/entity/components/cube.json | 49 ++++++ .../models/entity/components/fins.json | 37 +++++ .../entity/components/gryphon_wings.json | 92 +++++++++++ .../entity/components/pegasus_wings.json | 2 +- .../models/entity/races/alex/gryphon.json | 7 +- .../models/entity/races/alex/hippogriff.json | 7 +- .../models/entity/races/steve/gryphon.json | 8 +- .../models/entity/races/steve/hippogriff.json | 146 +++++++++++++++++- .../races/steve/reformed_changeling.json | 31 +--- 10 files changed, 372 insertions(+), 35 deletions(-) create mode 100644 src/main/resources/assets/minelittlepony/models/entity/components/beak.json create mode 100644 src/main/resources/assets/minelittlepony/models/entity/components/cube.json create mode 100644 src/main/resources/assets/minelittlepony/models/entity/components/fins.json create mode 100644 src/main/resources/assets/minelittlepony/models/entity/components/gryphon_wings.json diff --git a/src/main/resources/assets/minelittlepony/models/entity/components/beak.json b/src/main/resources/assets/minelittlepony/models/entity/components/beak.json new file mode 100644 index 00000000..a92735b8 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/models/entity/components/beak.json @@ -0,0 +1,28 @@ +{ + "texture": {"w": 64, "h": 64, "u": 16, "v": 8}, + "locals": { + "x": 0, + "y": 0, + "z": 0 + }, + "data": { + "stallion": { + "type": "mson:planar", + "pivot": ["#x", "#y", "#z"], + "north": [-1, 0, -7, 2, 2, 11, 14], + "up": [-1, 0, -7, 2, 1, 11, 14], + "down": [-1, 2, -7, 2, 1, 19, 7], + "west": [-1, 0, -7, 1, 2, 11, 13], + "east": [ 1, 0, -7, 1, 2, 12, 13] + }, + "mare": { + "type": "mson:planar", + "pivot": ["#x", "#y", "#z"], + "north": [-1, 0, -7, 2, 2, 11, 14], + "up": [-1, 0, -7, 2, 1, 11, 14], + "down": [-1, 2, -7, 2, 1, 19, 7], + "west": [-1, 0, -7, 1, 2, 11, 13], + "east": [ 1, 0, -7, 1, 2, 12, 13] + } + } +} diff --git a/src/main/resources/assets/minelittlepony/models/entity/components/cube.json b/src/main/resources/assets/minelittlepony/models/entity/components/cube.json new file mode 100644 index 00000000..a278ee85 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/models/entity/components/cube.json @@ -0,0 +1,49 @@ +{ + "texture": { "w": 64, "h": 64 }, + "locals": { + "x": 0, + "y": 0, + "z": 0, + "u": 0, + "v": 0, + + "width": 10, + "depth": 10, + "height": 10, + + "side_v": ["#v", "+", "#depth"], + + "west_face_u": "#u", + "north_face_u": [ "#west_face_u", "+", "#depth" ], + "east_face_u": [ "#north_face_u", "+", "#width"], + "south_face_u": [ "#east_face_u", "+", "#depth"], + + "south_face_z": [ "#z", "+", "#depth"], + "east_face_x": [ "#x", "+", "#width"], + "bottom_face_y": [ "#y", "+", "#height"], + + "dilate_x": 0, + "dilate_y": 0, + "dilate_z": 0, + + "rotate_x": 0, + "rotate_y": 0, + "rotate_z": 0 + }, + "data": { + "part": { + "type": "mson:planar", + "dilate": [ "#dilate_x", "#dilate_y", "#dilate_z" ], + "rotate": [ "#rotate_x", "#rotate_y", "#rotate_z" ], + + "up": ["#x", "#y", "#z", "#width", "#depth", "#north_face_u", "#v"], + "down": ["#x", "#bottom_face_y", "#z", "#width", "#depth", "#east_face_u", "#v"], + + "north": ["#x", "#y", "#z", "#width", "#height", "#north_face_u", "#side_v"], + "west": ["#x", "#y", "#z", "#depth", "#height", "#west_face_u", "#side_v"], + + "south": ["#x", "#y", "#south_face_z", "#width", "#height", "#south_face_u", "#side_v"], + "east": ["#east_face_x", "#y", "#z", "#depth", "#height", "#east_face_u", "#side_v"] + } + } +} diff --git a/src/main/resources/assets/minelittlepony/models/entity/components/fins.json b/src/main/resources/assets/minelittlepony/models/entity/components/fins.json new file mode 100644 index 00000000..547d9043 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/models/entity/components/fins.json @@ -0,0 +1,37 @@ +{ + "texture": {"w": 64, "h": 64}, + "locals": { + "ear_angle": 45, + "ear_angle_neg": [180, "-", "#ear_angle"] + }, + "data": { + "right": { + "type": "mson:planar", + "pivot": [-3, -4, 0], + "rotate": [-90, 40, "#ear_angle"], + "west": [0, 0, 0, 4, 2, 12, 16], + "children": { + "inner": { + "type": "mson:planar", + "pivot": [0, 2, 0], + "rotate": [0, 0, -40], + "west": [0, 0, 0, 4, 2, 12, 18] + } + } + }, + "left": { + "type": "mson:planar", + "pivot": [6, -1, 0], + "rotate": [-90, 40, "#ear_angle_neg"], + "west": [0, 0, 0, 4, 2, 16, 16, false, false], + "children": { + "inner": { + "type": "mson:planar", + "pivot": [0, 2, 0], + "rotate": [0, 0, -40], + "west": [0, 0, 0, 4, 2, 16, 18, false, false] + } + } + } + } +} diff --git a/src/main/resources/assets/minelittlepony/models/entity/components/gryphon_wings.json b/src/main/resources/assets/minelittlepony/models/entity/components/gryphon_wings.json new file mode 100644 index 00000000..549345ef --- /dev/null +++ b/src/main/resources/assets/minelittlepony/models/entity/components/gryphon_wings.json @@ -0,0 +1,92 @@ +{ + "locals": { + "wing_scale": 1.25 + }, + "data": { + "left_wing": { + "implementation": "com.minelittlepony.client.model.part.PonyWings$Wing", + "data": { + "folded": { + "texture": {"u": 56, "v": 32, "w": 64, "h": 64}, + "dilate": [-0.125, 0.5, 0], + "pivot": [-1.5, 11, -1], + "rotate": [100, 0, 0], + "cubes": [ + {"from": [4.1, 5, 1.999], "size": [2, 6, 2] }, + {"from": [4.1, 5, 4.001], "size": [2, 8, 2] }, + {"from": [4.1, 5, 6.002], "size": [2, 6, 2] } + ] + }, + "extended": { + "texture": {"u": 57, "v": 35, "w": 64, "h": 64}, + "pivot": [3.5, 5, 6], + "rotate": [-30, 180, 0], + "children": { + "feather_1": { "cubes": [ {"from": [-0.5, 6, 0], "size": [1, 9, 2], "dilate": [0.1, 2, 0.1] } ] }, + "feather_2": { "cubes": [ {"from": [-0.5,-1, -0.3], "size": [1, 8, 2], "dilate": 0.1 } ], "rotate": [-48, 0, 0] }, + "feather_3": { "cubes": [ {"from": [-0.5, 1.8, 1.3], "size": [1, 8, 2], "dilate": -0.1 } ], "rotate": [-42, 0, 0] }, + "feather_4": { "cubes": [ {"from": [-0.5, 5, 2], "size": [1, 8, 2] } ], "rotate": [-28, 0, 0] }, + "feather_5": { "cubes": [ {"from": [-0.5, 0, -0.2], "size": [1, 6, 2], "dilate": 0.3 } ] }, + "feather_6": { "cubes": [ {"from": [-0.5, 0, 0], "size": [1, 3, 2], "dilate": 0.19 } ], "rotate": [-48, 0, 0] } + } + } + } + }, + "right_wing": { + "implementation": "com.minelittlepony.client.model.part.PonyWings$Wing", + "data": { + "folded": { + "texture": {"u": 56, "v": 16, "w": 64, "h": 64}, + "pivot": [1.5, 11, -1], + "rotate": [100, 0, 0], + "cubes": [ + {"from": [-6.001, 5, 1.999], "size": [2, 6, 2] }, + {"from": [-6.001, 5, 4.001], "size": [2, 8, 2] }, + {"from": [-6.001, 5, 6.002], "size": [2, 6, 2] } + ] + }, + "extended": { + "texture": {"u": 56, "v": 19, "w": 64, "h": 64}, + "pivot": [-3.5, 5, 6], + "rotate": [-30, 180, 0], + "children": { + "feather_1": { "cubes": [ {"from": [-0.5, 6, 0], "size": [1, 9, 2], "dilate": [0.1, 2, 0.1] } ] }, + "feather_2": { "cubes": [ {"from": [-0.5,-1, -0.3], "size": [1, 8, 2], "dilate": 0.1 } ], "rotate": [-48, 0, 0] }, + "feather_3": { "cubes": [ {"from": [-0.5, 1.8, 1.3], "size": [1, 8, 2], "dilate": -0.1 } ], "rotate": [-42, 0, 0] }, + "feather_4": { "cubes": [ {"from": [-0.5, 5, 2], "size": [1, 8, 2] } ], "rotate": [-28, 0, 0] }, + "feather_5": { "cubes": [ {"from": [-0.5, 0, -0.2], "size": [1, 6, 2], "dilate": 0.3 } ] }, + "feather_6": { "cubes": [ {"from": [-0.5, 0, 0], "size": [1, 3, 2], "dilate": 0.19 } ], "rotate": [-48, 0, 0] } + } + } + } + }, + "legacy_right_wing": { + "implementation": "com.minelittlepony.client.model.part.PonyWings$Wing", + "data": { + "folded": { + "texture": {"u": 56, "v": 32, "w": 64, "h": 64}, + "pivot": [1.5, 11, -1], + "rotate": [100, 0, 0], + "cubes": [ + {"from": [-6.001, 5, 1.999], "size": [2, 6, 2] }, + {"from": [-6.001, 5, 4.001], "size": [2, 8, 2] }, + {"from": [-6.001, 5, 6.002], "size": [2, 6, 2] } + ] + }, + "extended": { + "texture": {"u": 57, "v": 35, "w": 64, "h": 64}, + "pivot": [-3.5, 5, 6], + "rotate": [-30, 180, 0], + "children": { + "feather_1": { "cubes": [ {"from": [-0.5, 6, 0], "size": [1, 9, 2], "dilate": [0.1, 2, 0.1] } ], "mirror": true }, + "feather_2": { "cubes": [ {"from": [-0.5,-1, -0.3], "size": [1, 8, 2], "dilate": 0.1 } ], "rotate": [-48, 0, 0], "mirror": true }, + "feather_3": { "cubes": [ {"from": [-0.5, 1.8, 1.3], "size": [1, 8, 2], "dilate": -0.1 } ], "rotate": [-42, 0, 0], "mirror": true }, + "feather_4": { "cubes": [ {"from": [-0.5, 5, 2], "size": [1, 8, 2] } ], "rotate": [-28, 0, 0], "mirror": true }, + "feather_5": { "cubes": [ {"from": [-0.5, 0, -0.2], "size": [1, 6, 2], "dilate": 0.3 } ] }, + "feather_6": { "cubes": [ {"from": [-0.5, 0, 0], "size": [1, 3, 2], "dilate": 0.19 } ], "rotate": [-48, 0, 0], "mirror": true } + } + } + } + } + } +} diff --git a/src/main/resources/assets/minelittlepony/models/entity/components/pegasus_wings.json b/src/main/resources/assets/minelittlepony/models/entity/components/pegasus_wings.json index 56b084e6..4822dd0c 100644 --- a/src/main/resources/assets/minelittlepony/models/entity/components/pegasus_wings.json +++ b/src/main/resources/assets/minelittlepony/models/entity/components/pegasus_wings.json @@ -1,5 +1,5 @@ { - "data": { + "data": { "left_wing": { "implementation": "com.minelittlepony.client.model.part.PonyWings$Wing", "data": { diff --git a/src/main/resources/assets/minelittlepony/models/entity/races/alex/gryphon.json b/src/main/resources/assets/minelittlepony/models/entity/races/alex/gryphon.json index c51776c8..6d26b586 100644 --- a/src/main/resources/assets/minelittlepony/models/entity/races/alex/gryphon.json +++ b/src/main/resources/assets/minelittlepony/models/entity/races/alex/gryphon.json @@ -1,3 +1,8 @@ { - "parent": "minelittlepony:races/alex/pegasus" + "parent": "minelittlepony:races/steve/gryphon", + "locals": { + "arm_width": 3, + "arm_rotation_x": 2, + "arm_rotation_y": 8.5 + } } diff --git a/src/main/resources/assets/minelittlepony/models/entity/races/alex/hippogriff.json b/src/main/resources/assets/minelittlepony/models/entity/races/alex/hippogriff.json index c51776c8..a438d745 100644 --- a/src/main/resources/assets/minelittlepony/models/entity/races/alex/hippogriff.json +++ b/src/main/resources/assets/minelittlepony/models/entity/races/alex/hippogriff.json @@ -1,3 +1,8 @@ { - "parent": "minelittlepony:races/alex/pegasus" + "parent": "minelittlepony:races/steve/hippogriff", + "locals": { + "arm_width": 3, + "arm_rotation_x": 2, + "arm_rotation_y": 8.5 + } } diff --git a/src/main/resources/assets/minelittlepony/models/entity/races/steve/gryphon.json b/src/main/resources/assets/minelittlepony/models/entity/races/steve/gryphon.json index 5c99b53c..70569b7f 100644 --- a/src/main/resources/assets/minelittlepony/models/entity/races/steve/gryphon.json +++ b/src/main/resources/assets/minelittlepony/models/entity/races/steve/gryphon.json @@ -1,3 +1,9 @@ { - "parent": "minelittlepony:races/steve/pegasus" + "parent": "minelittlepony:races/steve/hippogriff", + "data": { + "tail": { + "implementation": "com.minelittlepony.client.model.part.LionTail", + "data": "minelittlepony:components/lion_tail" + } + } } diff --git a/src/main/resources/assets/minelittlepony/models/entity/races/steve/hippogriff.json b/src/main/resources/assets/minelittlepony/models/entity/races/steve/hippogriff.json index 5c99b53c..43f94d4f 100644 --- a/src/main/resources/assets/minelittlepony/models/entity/races/steve/hippogriff.json +++ b/src/main/resources/assets/minelittlepony/models/entity/races/steve/hippogriff.json @@ -1,3 +1,147 @@ { - "parent": "minelittlepony:races/steve/pegasus" + "parent": "minelittlepony:races/steve/pegasus", + "locals": { + "tight_arm_width": [ "#arm_width", "-", 1 ], + "knee_point": [ "#arm_length", "/", 2 ], + "elbow_point": [ "#arm_length", "/", 3 ], + "fore_arm_length": [ "#arm_length", "-", "#elbow_point" ], + "back_leg_outset_z": [ "#arm_z", "-", 0.5 ], + "front_leg_outset_z": [ "#arm_z", "+", 0.5 ], + + "claws_z": [ "#arm_z", "-", 1 ] + }, + "data": { + "head": { + "pivot": [ 0, "#head_pivot_y", 0 ], + "cubes": [ + { "from": [-4, -6, -6], "size": [ 8, 8, 8] } + ], + "children": { + "snout": { + "implementation": "com.minelittlepony.client.model.part.PonySnout", + "data": "minelittlepony:components/beak" + }, + "ears": { + "implementation": "com.minelittlepony.client.model.part.PonyEars", + "data": "minelittlepony:components/ears" + } + } + }, + "wings": { + "data": "minelittlepony:components/gryphon_wings", + "implementation": "com.minelittlepony.client.model.part.PonyWings" + }, + "left_arm": { + "pivot": ["#arm_rotation_x", "#arm_rotation_y", 0], + "texture": { "u": 32, "v": 49 }, + "cubes": [ + { + "from": [ "#arm_x", 4, "#back_leg_outset_z"], + "size": [ "#arm_width", "#elbow_point", "#arm_depth" ], + "dilate": [0, 0, -0.5] + } + ], + "children": { + "left_forearm": { + "type": "mson:import", + "data": "minelittlepony:components/cube", + "locals": { + "x": "#arm_x", + "y": 8, + "z": "#arm_z", + "u": 32, + "v": 48, + "side_v": 56, + "width": "#arm_width", + "height": "#fore_arm_length", + "depth": "#arm_depth" + } + } + } + }, + "right_arm": { + "pivot": ["#arm_rotation_x_neg", "#arm_rotation_y", 0], + "texture": { "u": 40, "v": 17 }, + "cubes": [ + { + "from": [ "#arm_x_neg", 4, "#back_leg_outset_z"], + "size": [ "#arm_width", "#elbow_point", "#arm_depth" ], + "dilate": [0, 0, -0.5] + } + ], + "children": { + "right_forearm": { + "type": "mson:import", + "data": "minelittlepony:components/cube", + "locals": { + "x": "#arm_x_neg", + "y": 8, + "z": "#arm_z", + "u": 40, + "v": 16, + "side_v": 24, + "width": "#arm_width", + "height": "#fore_arm_length", + "depth": "#arm_depth" + } + } + } + }, + "left_leg": { + "pivot": ["#arm_rotation_x", "#arm_rotation_y", 11], + "texture": { "u": 16, "v": 49 }, + "cubes": [ + { + "from": [ "#arm_x", 4, "#back_leg_outset_z"], + "size": [ "#arm_width", "#knee_point", "#arm_depth" ], + "dilate": [0, 0, -0.5] + } + ], + "children": { + "left_thigh": { + "type": "mson:import", + "data": "minelittlepony:components/cube", + "locals": { + "x": "#arm_x", + "y": 10, + "z": "#arm_z", + "u": 16, + "v": 48, + "side_v": 58, + "width": "#arm_width", + "height": "#knee_point", + "depth": "#arm_depth" + } + } + } + }, + "right_leg": { + "pivot": ["#arm_rotation_x_neg", "#arm_rotation_y", 11], + "texture": { "u": 0, "v": 17 }, + "cubes": [ + { + "from": [ "#arm_x_neg", 4, "#back_leg_outset_z"], + "size": [ "#arm_width", "#knee_point", "#arm_depth" ], + "dilate": [0, 0, -0.5] + } + ], + "children": { + "right_thigh": { + "type": "mson:import", + "data": "minelittlepony:components/cube", + "locals": { + "x": "#arm_x_neg", + "y": 10, + "z": "#arm_z", + "u": 0, + "v": 16, + "side_v": 26, + "width": "#arm_width", + "height": "#knee_point", + "depth": "#arm_depth" + } + } + } + } + } } diff --git a/src/main/resources/assets/minelittlepony/models/entity/races/steve/reformed_changeling.json b/src/main/resources/assets/minelittlepony/models/entity/races/steve/reformed_changeling.json index 4c8e29b9..1651fe4d 100644 --- a/src/main/resources/assets/minelittlepony/models/entity/races/steve/reformed_changeling.json +++ b/src/main/resources/assets/minelittlepony/models/entity/races/steve/reformed_changeling.json @@ -13,36 +13,7 @@ "ears": { "texture": {"w": 64, "h": 64 }, "implementation": "com.minelittlepony.client.model.part.PonyEars", - "data": { - "right": { - "type": "mson:planar", - "pivot": [-3, -4, 0], - "rotate": [-90, 40, 45], - "west": [0, 0, 0, 4, 2, 12, 16], - "children": { - "inner": { - "type": "mson:planar", - "pivot": [0, 2, 0], - "rotate": [0, 0, -40], - "west": [0, 0, 0, 4, 2, 12, 18] - } - } - }, - "left": { - "type": "mson:planar", - "pivot": [6, -1, 0], - "rotate": [-90, 40, 135], - "west": [0, 0, 0, 4, 2, 16, 16, false, false], - "children": { - "inner": { - "type": "mson:planar", - "pivot": [0, 2, 0], - "rotate": [0, 0, -40], - "west": [0, 0, 0, 4, 2, 16, 18, false, false] - } - } - } - } + "data": "minelittlepony:components/fins" }, "horn": { "data": "minelittlepony:components/horn",