diff --git a/animation_controllers/panda.animation_controllers.json b/animation_controllers/panda.animation_controllers.json new file mode 100755 index 0000000..259f34e --- /dev/null +++ b/animation_controllers/panda.animation_controllers.json @@ -0,0 +1,17 @@ +{ + "format_version" : "1.10.0", + "animation_controllers" : { + "controller.animation.panda.sneezing" : { + "initial_state" : "baby", + "states" : { + "baby" : { + "animations" : [ + { + "sneezing": false + } + ] + } + } + } + } +} diff --git a/animations/panda.animation.json b/animations/panda.animation.json new file mode 100755 index 0000000..105aa91 --- /dev/null +++ b/animations/panda.animation.json @@ -0,0 +1,30 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.panda.sneezing": { + "loop": true, + "animation_length": 2, + "bones": { + "head": { + "rotation": { + "0.0": [0, 0, 0], + "0.16": [-7.5, 0, 0], + "0.44": [-22.5, 0, 0], + "0.52": [-22.5, 0, 0], + "0.6": [15, 0, 0], + "0.64": [0, 0, 0] + } + } + }, + "particle_effects": { + "0.52": { + "effect": "sneeze", + "locator": "particle" + } + }, + "timeline": { + "1.96": "v.geyser_sneezing = 0;" + } + } + } +} \ No newline at end of file diff --git a/entity/panda.entity.json b/entity/panda.entity.json new file mode 100755 index 0000000..ebd2440 --- /dev/null +++ b/entity/panda.entity.json @@ -0,0 +1,53 @@ +{ + "format_version": "1.10.0", + "minecraft:client_entity": { + "description": { + "identifier": "minecraft:panda", + "materials": { "default": "panda" }, + "textures": { + "default": "textures/entity/panda/panda", + "lazy": "textures/entity/panda/panda_lazy", + "worried": "textures/entity/panda/panda_worried", + "playful": "textures/entity/panda/panda_playful", + "brown": "textures/entity/panda/panda_brown", + "weak": "textures/entity/panda/panda_sneezy", + "aggressive": "textures/entity/panda/panda_aggressive" + }, + "geometry": { + "default": "geometry.panda" + }, + "particle_effects": { + "sneeze": "geyseropt:sneeze" + }, + "animations": { + "unhappy": "animation.panda.unhappy", + "geyser_sneezing": "animation.panda.sneezing", + "walk": "animation.quadruped.walk", + "look_at_target": "animation.common.look_at_target", + "baby_transform": "animation.panda.baby_transform", + "sitting": "animation.panda.sitting", + "rolling": "animation.panda.rolling", + "lying": "animation.panda.lying", + "controller.move": "controller.animation.panda.move", + "controller.unhappy": "controller.animation.panda.unhappy", + "controller.baby": "controller.animation.panda.baby" + }, + "scripts": { + "pre_animation": [ + "v.geyser_sneezing = q.sneeze_counter > 0 ? 1 : (v.geyser_sneezing ?? 0);" + ], + "animate": [ + "controller.move", + "controller.unhappy", + "controller.baby", + {"geyser_sneezing": "v.geyser_sneezing"} + ] + }, + "render_controllers": [ "controller.render.panda" ], + "spawn_egg": { + "texture": "spawn_egg", + "texture_index": 54 + } + } + } +} \ No newline at end of file diff --git a/models/entity/panda.geo.json b/models/entity/panda.geo.json new file mode 100755 index 0000000..2d6fc25 --- /dev/null +++ b/models/entity/panda.geo.json @@ -0,0 +1,66 @@ +{ + "format_version": "1.8.0", + "geometry.panda": { + "texturewidth": 64, + "textureheight": 64, + "visible_bounds_width": 3, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0], + "bones": [ + { + "name": "body", + "pivot": [0, 14, 0], + "cubes": [ + {"origin": [-9.5, 1, -6.5], "size": [19, 26, 13], "uv": [0, 25]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 12.5, -17], + "cubes": [ + {"origin": [-6.5, 7.5, -21], "size": [13, 10, 9], "uv": [0, 6]}, + {"origin": [-3.5, 7.5, -23], "size": [7, 5, 2], "uv": [45, 16]}, + {"origin": [-8.5, 16.5, -18], "size": [5, 4, 1], "uv": [52, 25]}, + {"origin": [3.5, 16.5, -18], "size": [5, 4, 1], "uv": [52, 25]} + ], + "locators": { + "lead": [0, 14, -16], + "particle": [0, 9.5, -24] + } + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-5.5, 9, 9], + "cubes": [ + {"origin": [-8.5, 0, 6], "size": [6, 9, 6], "uv": [40, 0]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [5.5, 9, 9], + "cubes": [ + {"origin": [2.5, 0, 6], "size": [6, 9, 6], "uv": [40, 0]} + ] + }, + { + "name": "leg2", + "parent": "body", + "pivot": [-5.5, 9, -9], + "cubes": [ + {"origin": [-8.5, 0, -12], "size": [6, 9, 6], "uv": [40, 0]} + ] + }, + { + "name": "leg3", + "parent": "body", + "pivot": [5.5, 9, -9], + "cubes": [ + {"origin": [2.5, 0, -12], "size": [6, 9, 6], "uv": [40, 0]} + ] + } + ] + } +} \ No newline at end of file