PK ZJydd,Advanced Movement Add-on BP/texts/en_US.langpack.name=Advanced Movement Add-on §6by Panda's pack.description=§5https://t.me/+mCz6wDOded40YzU1 PK Z^Nt)Advanced Movement Add-on BP/manifest.json{"format_version":2,"metadata":{"product_type":"addon"},"header":{"name":"pack.name","description":"pack.description","uuid":"28b2653e-d20a-4b0d-b906-f8c8834f06cc","pack_scope":"world","version":[1,0,2],"min_engine_version":[1,20,80]},"modules":[{"type":"data","uuid":"854b41f5-c9cd-4c0f-9346-5939d6cfd2a2","version":[1,0,2]},{"type":"script","language":"javascript","uuid":"e3a32563-453f-42e3-b687-b30672d95133","entry":"scripts/index.js","version":[1,0,1]}],"dependencies":[{"version":[1,0,2],"uuid":"6a8eeb8f-3798-4d32-b92f-63d38a46dc97"},{"module_name":"@minecraft/server","version":"1.14.0"},{"module_name":"@minecraft/server-ui","version":"1.1.0"}], "settings": [ { "type": "label", "text": " §6Panda's Community" }, { "type": "label", "text": " " }, { "type": "label", "text": "-----------------------------------------------------------------------------------------------------------------" }, { "type": "label", "text": " \u00a75\u00a7l@Panda's Community" }, { "type": "label", "text": "Info" }, { "type": "label", "text": "Given §6by Panda's" }, { "type": "label", "text": "-----------------------------------------------------------------------------------------------------------------" } ] } PKekY{$Advanced Movement Add-on BP/info.txts,KS8,R! 1/%QPK ZvZAdvanced Movement Add-on RP/ui/PK7Yȉ0Advanced Movement Add-on RP/ui/debug_screen.jsonU͎0SDfl`=!-Gp@,'6![ydMTA.Ɍg|U$D3XȚpȪ-h8<DU67JIJ-͍v]%]p ץnߋ{I$&wÕiÛ¹77.UpR=>pௗ>ȹFY̤Y`dlr狶AP1)/h.˂jߡ\0I-hv^μB]C{(*%Ӿ%Эz%Ҽ`da<_j|>V1+r5C~W 9O$i8<;׎%F{I Ŷp=w hf ׇC_R@g|cYyf53 ݆Aw@W:l6BHS{ tt p&'j?T ʠ;)F*Y0Y4 ~ ]VS.FG.HcϼwR#NΘ{퓤Ұ"cLݿPK Zg!  ,Advanced Movement Add-on RP/texts/en_US.langpack.name=Advanced Movement Add-on §6by Panda's pack.description=§5https://t.me/+mCz6wDOded40YzU1 action.hint.exit.ns_mvt:cannon=Press the sneak button to exit action.hint.exit.ns_mvt:spring=Press the sneak button to exit action.hint.exit.ns_mvt:rocket=Press the sneak button to exit item.spawn_egg.entity.ns_mvt:cannon.name=Cannon item.spawn_egg.entity.ns_mvt:spring.name=Spring item.spawn_egg.entity.ns_mvt:rocket.name=Rocket item.ns_mvt:rocket.name=Rocket item.spawn_egg.entity.ns_mvt:platform.name=Rocket Platform PK Z"d T)Advanced Movement Add-on RP/manifest.json{"format_version":2,"metadata":{"product_type":"addon"},"header":{"name":"pack.name","description":"pack.description","uuid":"6a8eeb8f-3798-4d32-b92f-63d38a46dc97","pack_scope":"world","version":[1,0,2],"min_engine_version":[1,20,80]},"dependencies":[{"version":[1,0,2],"uuid":"28b2653e-d20a-4b0d-b906-f8c8834f06cc"}],"modules":[{"type":"resources","uuid":"f3c1ac2e-340a-4956-931b-9fd1e0b09018","version":[1,0,2]}], "settings": [ { "type": "label", "text": " §6Panda's Community" }, { "type": "label", "text": " " }, { "type": "label", "text": "-----------------------------------------------------------------------------------------------------------------" }, { "type": "label", "text": " \u00a75\u00a7l@Panda's Community" }, { "type": "label", "text": "Info" }, { "type": "label", "text": "Given §6by Panda's" }, { "type": "label", "text": "-----------------------------------------------------------------------------------------------------------------" } ] } PKekY{$Advanced Movement Add-on RP/info.txts,KS8,R! 1/%QPK eZ$)Advanced Movement Add-on BP/pack_icon.pngPNG  IHDRaIDATxc`6蓖«P0L|qr-EhpHI b r00>L3g/;uΒ` @jD ./m@kThȑÈ|(Q0Q=OIENDB`PK eZsv:mm2Advanced Movement Add-on BP/dialogue/tutorial.json{ "format_version": "1.14.0", "minecraft:npc_dialogue": { "scenes": [ { "scene_tag": "ns_mvt:tutorial", "npc_name": "§lAdvanced Movement Add-on Guidebook", "text": { "rawtext": [ { "text": "Welcome to the §9§lAdvanced Movement Add-on§r! This guidebook will give you a brief overview of this Add-on and how to use it. To navigate through this guidebook, use the buttons below." } ] }, "buttons": [ { "name": { "rawtext": [ { "text": "Skills" } ] }, "commands": [ "/scriptevent ns_mvt:skills" ] }, { "name": { "rawtext": [ { "text": "Entities" } ] }, "commands": [ "/scriptevent ns_mvt:entities" ] }, { "name": { "rawtext": [ { "text": "Gunpowder" } ] }, "commands": [ "/scriptevent ns_mvt:gunpowder" ] }, { "name": { "rawtext": [ { "text": "Options" } ] }, "commands": [ "/scriptevent ns_mvt:options" ] } ] }, { "scene_tag": "ns_mvt:skills", "npc_name": "§lAdvanced Movement Add-on", "text": { "rawtext": [ { "text": "Unleash powerful abilities that enhance your mobility and take your adventures to the next level! From dashing through the air to scaling walls, these skills will make every move count!\n\n§l§9Double Jump§r\nSoar higher by pressing §8jump§r while mid-air\n\n§l§9Dash§r\nPress §8sneak§r mid-air to propel yourself forward with speed and precision\n\n§l§9Climb§r\nHold §8jump§r while facing a wall to scale it with ease\n\n§l§9Water Run§r\nSprint onto water to run across its surface\n\n§l§9Wall Run§r\nSprint alongside a wall to traverse it like an expert\n\n§l§9Wall Jump§r\nPress §8jump§r while wall running to leap off and change direction\n\n§l§9Roll§r\nWhile falling, sprint to roll and reduce fall damage" } ] }, "buttons": [ { "name": { "rawtext": [ { "text": "Home" } ] }, "commands": [ "/scriptevent ns_mvt:tutorial" ] }, { "name": { "rawtext": [ { "text": "Entities" } ] }, "commands": [ "/scriptevent ns_mvt:entities" ] }, { "name": { "rawtext": [ { "text": "Gunpowder" } ] }, "commands": [ "/scriptevent ns_mvt:gunpowder" ] }, { "name": { "rawtext": [ { "text": "Options" } ] }, "commands": [ "/scriptevent ns_mvt:options" ] } ] }, { "scene_tag": "ns_mvt:entities", "npc_name": "§lAdvanced Movement Add-on", "text": { "rawtext": [ { "text": "These tools will launch you to new possibilities; literally! You can interact with these entities to insert gunpoweder, set their rotation, pick them up, etc...\n\n§l§9Spring§r\nStep inside to bounce yourself in its direction\n\n§l§9Cannon§r\nLoad it with §8gunpowder§r and hop in; More §8gunpowder§r means more power, launching you farther across the land\n\n§l§9Rocket§r\nCan be placed on §8Rocket Platforms§r to travel between platforms you've set up, making it easy to reach common areas. You can also use it to freely roam around, at the cost of gunpowder!\n\n§l§9Rocket Platform§r\nPlace a §8Rocket§r here to launch you rocket" } ] }, "buttons": [ { "name": { "rawtext": [ { "text": "Home" } ] }, "commands": [ "/scriptevent ns_mvt:tutorial" ] }, { "name": { "rawtext": [ { "text": "Skills" } ] }, "commands": [ "/scriptevent ns_mvt:skills" ] }, { "name": { "rawtext": [ { "text": "Gunpowder" } ] }, "commands": [ "/scriptevent ns_mvt:gunpowder" ] }, { "name": { "rawtext": [ { "text": "Options" } ] }, "commands": [ "/scriptevent ns_mvt:options" ] } ] }, { "scene_tag": "ns_mvt:gunpowder", "npc_name": "§lAdvanced Movement Add-on", "text": { "rawtext": [ { "text": "To power your cannons and rockets, you'll need plenty of §8gunpowder§r. It can be crafted from 4 coal items to fuel your travels!" } ] }, "buttons": [ { "name": { "rawtext": [ { "text": "Home" } ] }, "commands": [ "/scriptevent ns_mvt:tutorial" ] }, { "name": { "rawtext": [ { "text": "Skills" } ] }, "commands": [ "/scriptevent ns_mvt:skills" ] }, { "name": { "rawtext": [ { "text": "Entities" } ] }, "commands": [ "/scriptevent ns_mvt:entities" ] }, { "name": { "rawtext": [ { "text": "Options" } ] }, "commands": [ "/scriptevent ns_mvt:options" ] } ] } ] } }PK eZ@U#2Advanced Movement Add-on BP/entities/tutorial.json{ "format_version": "1.21.0", "minecraft:entity": { "description": { "identifier": "ns_mvt:tutorial", "is_spawnable": false, "is_summonable": true, "properties": { "ns_mvt:type": { "client_sync": true, "type": "int", "default": 0, "range": [ 0, 3 ] } } }, "components": { "minecraft:npc": {}, "minecraft:push_through": { "value": 1 }, "minecraft:fire_immune": {}, "minecraft:knockback_resistance": { "value": 1 }, "minecraft:collision_box": { "width": 0, "height": 0 }, "minecraft:damage_sensor": { "triggers": [ { "deals_damage": false } ] } } } }PK eZv9u9Advanced Movement Add-on BP/entities/movement/cannon.json{ "format_version": "1.16.0", "minecraft:entity": { "description": { "identifier": "ns_mvt:cannon", "is_spawnable": true, "is_summonable": true, "is_experimental": false, "properties": { "ns_mvt:is_loaded": { "type": "bool", "client_sync": true, "default": false }, "ns_mvt:rot_x": { "type": "int", "client_sync": true, "default": 0, "range": [ 0, 360 ] }, "ns_mvt:rot_y": { "type": "int", "client_sync": true, "default": 0, "range": [ 0, 360 ] } } }, "component_groups": { "ns_mvt:despawn": { "minecraft:instant_despawn": {} } }, "components": { "minecraft:is_tamed": {}, "minecraft:interact": { "interactions": [ { "swing": true } ] }, "minecraft:rideable": { "controlling_seat": 0, "family_types": [ "player" ], "interact_text": "Interact", "crouching_skip_interact": true, "pull_in_entities": true, "rider_can_interact": false, "seat_count": 1, "seats": [ { "position": [ 0, 0, 0 ] } ] }, "minecraft:type_family": { "family": [ "static" ] }, "minecraft:collision_box": { "width": 0.7, "height": 1.5 }, "minecraft:health": { "value": 8, "max": 8 }, "minecraft:damage_sensor": { "triggers": [ { "deals_damage": false } ] }, "minecraft:navigation.generic": {}, "minecraft:movement.generic": { "max_turn": 30 }, "minecraft:can_climb": {}, "minecraft:physics": {}, "minecraft:push_through": { "value": 1 } }, "events": { "ns_mvt:despawn": { "add": { "component_groups": [ "ns_mvt:despawn" ] } } } } }PK eZ*;Advanced Movement Add-on BP/entities/movement/platform.json{ "format_version": "1.16.0", "minecraft:entity": { "description": { "identifier": "ns_mvt:platform", "is_spawnable": true, "is_summonable": true, "is_experimental": false }, "component_groups": { "ns_mvt:despawn": { "minecraft:instant_despawn": {} } }, "components": { "minecraft:tick_world": { "never_despawn": true, "radius": 0 }, "minecraft:nameable": { "allow_name_tag_renaming": false, "always_show": true }, "minecraft:interact": { "interactions": [ { "swing": true } ] }, "minecraft:type_family": { "family": [ "static" ] }, "minecraft:collision_box": { "width": 0.9, "height": 0.7 }, "minecraft:health": { "value": 8, "max": 8 }, "minecraft:damage_sensor": { "triggers": [ { "deals_damage": false } ] }, "minecraft:navigation.generic": {}, "minecraft:movement.generic": { "max_turn": 30 }, "minecraft:can_climb": {}, "minecraft:physics": {}, "minecraft:push_through": { "value": 1 } }, "events": { "ns_mvt:despawn": { "add": { "component_groups": [ "ns_mvt:despawn" ] } } } } }PK eZS9Advanced Movement Add-on BP/entities/movement/rocket.json{ "format_version": "1.16.0", "minecraft:entity": { "description": { "identifier": "ns_mvt:rocket", "is_spawnable": false, "is_summonable": true, "is_experimental": false, "properties": { "ns_mvt:is_loaded": { "type": "bool", "client_sync": true, "default": false }, "ns_mvt:rot_x": { "type": "int", "client_sync": true, "default": 0, "range": [ 0, 360 ] }, "ns_mvt:rot_y": { "type": "int", "client_sync": true, "default": 0, "range": [ 0, 360 ] }, "ns_mvt:old": { "type": "bool", "client_sync": true, "default": false } } }, "component_groups": { "ns_mvt:despawn": { "minecraft:instant_despawn": {} }, "ns_mvt:break_blocks": { "minecraft:break_blocks": {} }, "ns_mvt:locked": { "minecraft:rideable": { "controlling_seat": 0, "family_types": [ "player" ], "interact_text": "Interact", "crouching_skip_interact": true, "pull_in_entities": false, "rider_can_interact": false, "seat_count": 1, "seats": [ { "position": [ 0, 0, 0 ], "lock_rider_rotation": 60 } ] } }, "ns_mvt:unlocked": { "minecraft:rideable": { "controlling_seat": 0, "family_types": [ "player" ], "interact_text": "Interact", "crouching_skip_interact": true, "pull_in_entities": false, "rider_can_interact": false, "seat_count": 1, "seats": [ { "position": [ 0, 0, 0 ] } ] } } }, "components": { "minecraft:nameable": { "allow_name_tag_renaming": false, "always_show": true }, "minecraft:interact": { "interactions": [ { "swing": true } ] }, "minecraft:rideable": { "controlling_seat": 0, "family_types": [ "player" ], "interact_text": "Interact", "crouching_skip_interact": true, "pull_in_entities": false, "rider_can_interact": false, "seat_count": 1, "seats": [ { "position": [ 0, 0, 0 ] } ] }, "minecraft:horse.jump_strength": { "value": 0 }, "minecraft:can_power_jump": {}, "minecraft:type_family": { "family": [ "static" ] }, "minecraft:collision_box": { "width": 0, "height": 0.2 }, "minecraft:custom_hit_test": { "hitboxes": [ { "width": 0.8, "height": 1.2, "pivot": [ 0, 0.6, 0 ] } ] }, "minecraft:health": { "value": 8, "max": 8 }, "minecraft:damage_sensor": { "triggers": [ { "deals_damage": false } ] }, "minecraft:navigation.generic": {}, "minecraft:movement.generic": { "max_turn": 30 }, "minecraft:can_climb": {}, "minecraft:physics": {}, "minecraft:push_through": { "value": 1 } }, "events": { "ns_mvt:despawn": { "add": { "component_groups": [ "ns_mvt:despawn" ] } }, "ns_mvt:add_break_blocks": { "add": { "component_groups": [ "ns_mvt:break_blocks" ] } }, "ns_mvt:locked": { "remove": { "component_groups": [ "ns_mvt:unlocked" ] }, "add": { "component_groups": [ "ns_mvt:locked" ] } }, "ns_mvt:unlocked": { "remove": { "component_groups": [ "ns_mvt:locked" ] }, "add": { "component_groups": [ "ns_mvt:unlocked" ] } }, "ns_mvt:remove_break_blocks": { "remove": { "component_groups": [ "ns_mvt:break_blocks" ] } } } } }PK eZI>>9Advanced Movement Add-on BP/entities/movement/spring.json{ "format_version": "1.16.0", "minecraft:entity": { "description": { "identifier": "ns_mvt:spring", "is_spawnable": true, "is_summonable": true, "is_experimental": false, "properties": { "ns_mvt:is_loaded": { "type": "bool", "client_sync": true, "default": false }, "ns_mvt:rot_x": { "type": "int", "client_sync": true, "default": 0, "range": [ 0, 360 ] }, "ns_mvt:rot_y": { "type": "int", "client_sync": true, "default": 0, "range": [ 0, 360 ] } } }, "component_groups": { "ns_mvt:despawn": { "minecraft:instant_despawn": {} } }, "components": { "minecraft:interact": { "interactions": [ { "swing": true } ] }, "minecraft:type_family": { "family": [ "static" ] }, "minecraft:collision_box": { "width": 0.7, "height": 1 }, "minecraft:health": { "value": 8, "max": 8 }, "minecraft:damage_sensor": { "triggers": [ { "deals_damage": false } ] }, "minecraft:physics": { "has_gravity": false }, "minecraft:push_through": { "value": 1 } }, "events": { "ns_mvt:despawn": { "add": { "component_groups": [ "ns_mvt:despawn" ] } } } } }PK eZc~ZZ-Advanced Movement Add-on BP/items/rocket.json{ "format_version": "1.20.70", "minecraft:item": { "description": { "identifier": "ns_mvt:rocket" }, "components": { "minecraft:max_stack_size": { "value": 64 }, "minecraft:icon": { "textures": { "default": "ninja_squirrel_mvt_rocket" } }, "minecraft:display_name": { "value": "Rocket" } } } }PK eZ?_/Advanced Movement Add-on BP/items/tutorial.json{ "format_version": "1.20.70", "minecraft:item": { "description": { "identifier": "ns_mvt:tutorial" }, "components": { "minecraft:max_stack_size": { "value": 1 }, "minecraft:glint": { "value": true }, "minecraft:use_modifiers": { "use_duration": 0.05, "movement_modifier": 1 }, "minecraft:icon": { "textures": { "default": "ninja_squirrel_mvt_tutorial" } }, "minecraft:display_name": { "value": "Advanced Movement Guidebook" } } } }PK eZ\x/Advanced Movement Add-on BP/recipes/cannon.json{ "format_version": "1.17.41", "minecraft:recipe_shaped": { "description": { "identifier": "ns_mvt:cannon" }, "tags": [ "crafting_table" ], "unlock": [{ "item": "minecraft:iron_block" }, { "item": "minecraft:redstone_block" }], "pattern": [ " ", "GBG", "GGG" ], "key": { "G": "minecraft:iron_block", "B": "minecraft:redstone_block" }, "result": { "item": "ns_mvt:cannon_spawn_egg" } } }PK eZV}oo2Advanced Movement Add-on BP/recipes/gunpowder.json{ "format_version": "1.17.41", "minecraft:recipe_shapeless": { "description": { "identifier": "ns_mvt:gunpowder" }, "tags": [ "crafting_table" ], "unlock": [{ "item": "minecraft:coal" }], "ingredients": [{ "item": "minecraft:coal", "count": 4 }], "result": { "item": "minecraft:gunpowder", "count": 3 } } }PK eZ21Advanced Movement Add-on BP/recipes/platform.json{ "format_version": "1.17.41", "minecraft:recipe_shaped": { "description": { "identifier": "ns_mvt:platform" }, "tags": [ "crafting_table" ], "unlock": [{ "item": "minecraft:iron_block" }], "pattern": [ " ", " ", "GGG" ], "key": { "G": "minecraft:iron_block" }, "result": { "item": "ns_mvt:platform_spawn_egg" } } }PK eZŅ7/Advanced Movement Add-on BP/recipes/rocket.json{ "format_version": "1.17.41", "minecraft:recipe_shaped": { "description": { "identifier": "ns_mvt:rocket" }, "tags": [ "crafting_table" ], "unlock": [{ "item": "minecraft:iron_block" }, { "item": "minecraft:redstone_block" }, { "item": "minecraft:glass" }], "pattern": [ " G ", "ABA", "GGG" ], "key": { "G": "minecraft:iron_block", "B": "minecraft:redstone_block", "A": "minecraft:glass" }, "result": { "item": "ns_mvt:rocket" } } }PK eZ4X/Advanced Movement Add-on BP/recipes/spring.json{ "format_version": "1.17.41", "minecraft:recipe_shaped": { "description": { "identifier": "ns_mvt:spring" }, "tags": [ "crafting_table" ], "unlock": [{ "item": "minecraft:iron_block" }, { "item": "minecraft:slime" }], "pattern": [ " ", "GBG", "GGG" ], "key": { "G": "minecraft:iron_block", "B": "minecraft:slime" }, "result": { "item": "ns_mvt:spring_spawn_egg" } } }PK eZ{1Advanced Movement Add-on BP/recipes/tutorial.json{ "format_version": "1.17.41", "minecraft:recipe_shapeless": { "description": { "identifier": "ns_mvt:tutorial" }, "tags": [ "crafting_table" ], "unlock": [{ "item": "minecraft:gunpowder" }, { "item": "minecraft:book" }], "ingredients": [{ "item": "minecraft:gunpowder", "count": 1 }, { "item": "minecraft:book", "count": 1 }], "result": { "item": "ns_mvt:tutorial", "count": 1 } } }PK eZn:E%%,Advanced Movement Add-on BP/scripts/index.jsimport { Entity, Player, system, world } from "@minecraft/server"; import { ModalFormData } from "@minecraft/server-ui"; import cannon from "mobs/cannon"; import platform from "mobs/platform"; import player from "mobs/player"; import rocket from "mobs/rocket"; import spring from "mobs/spring"; import { point } from "point"; import { util } from "util"; globalThis.accessible = accessible; globalThis.getEntities = getEntities; globalThis.point = point; Entity.prototype.getComp = function(mobIds) { const comp = comps[this.id]; return comp; }; Entity.prototype.loc = function() { return point.fromVector3(this.location); }; Entity.prototype.rot = function() { return point.fromVector3(this.getViewDirection()); }; Player.prototype.getHeldItem = function() { return util.selectedItem(this); }; Player.prototype.setHeldItem = function(item) { util.setSelectedSlot(this, item); }; let isWorldInit = false; world.afterEvents.playerSpawn.subscribe(()=>{ if (isWorldInit) return; isWorldInit = true; }); export function accessible(entity) { try { // @ts-ignore return entity?.isValid(); } catch (e) { return false; } } export const propertyDefaults = { ammo: 0, targetId: "", origin: "", destination: "", hasTakenOff: false, hasForced3rdCamera: false, power: 1, freeRidingTime: 0 }; export function getProperty(entity, property) { const val = entity.getDynamicProperty(property) ?? propertyDefaults[property]; return val; } export function setProperty(entity, property, value) { entity.setDynamicProperty(property, value); } export const comps = {}; const regs = new Set(); const compDefs = { "minecraft:player": player, "ns_mvt:spring": spring, "ns_mvt:cannon": cannon, "ns_mvt:rocket": rocket, "ns_mvt:platform": platform }; world.afterEvents.playerSpawn.subscribe(({ player })=>init(player)); world.afterEvents.entitySpawn.subscribe(({ entity })=>init(entity)); world.afterEvents.entityLoad.subscribe(({ entity })=>init(entity)); [ ...world.getDimension("overworld").getEntities(), ...world.getDimension("nether").getEntities(), ...world.getDimension("the_end").getEntities() ].forEach((entity)=>{ if (entity.typeId == "ns_mvt:tutorial") entity.remove(); else init(entity); }); system.runInterval(()=>cleanup(), 40); world.beforeEvents.playerInteractWithBlock.subscribe((eventData)=>{ if (!eventData.isFirstEvent) return; system.run(()=>{ if (eventData.itemStack?.typeId !== "ns_mvt:rocket") return; eventData.player.onScreenDisplay.setActionBar("§cRockets must be placed on §iRocket Platforms§r"); }); }); function init(entity) { if (!accessible(entity)) return; if (regs.has(entity.id)) return; regs.add(entity.id); for(const key in compDefs){ if (entity.typeId == key) { comps[entity.id] = new compDefs[key](entity); return; } } } export function getEntities(query) { return [ ...new Set([ ...world.getDimension("overworld").getEntities(query), ...world.getDimension("nether").getEntities(query), ...world.getDimension("the_end").getEntities(query) ]) ]; } function cleanup() { for(const entityId in comps){ const entity = world.getEntity(entityId); if (!accessible(entity)) { comps[entityId].remove(); delete comps[entityId]; regs.delete(entityId); } } } world.afterEvents.playerInteractWithEntity.subscribe((eventData)=>{ for(const entityId in comps){ const entity = world.getEntity(entityId); if (!accessible(entity)) continue; if (entity.id == eventData.target.id) { comps[entityId].onInteract(eventData.player); return; } } }); world.afterEvents.itemStartUse.subscribe((eventData)=>{ if (eventData.itemStack.typeId !== "ns_mvt:tutorial") return; const oldEntities = getEntities({ type: "ns_mvt:tutorial", tags: [ eventData.source.name ] }); for (const entity of oldEntities){ entity.remove(); } const spawnLocation = new point(eventData.source.location.x + 1, -64, eventData.source.location.z); const newEntity = eventData.source.dimension.spawnEntity("ns_mvt:tutorial", spawnLocation); newEntity.addTag(eventData.source.name); eventData.source.dimension.playSound("item.book.page_turn", eventData.source.location); system.runTimeout(()=>{ if (!accessible(eventData.source)) return; const cmd = `dialogue open @e[type=ns_mvt:tutorial,x=${spawnLocation.x},y=${spawnLocation.y},z=${spawnLocation.z},c=1] @s ns_mvt:tutorial`; eventData.source.runCommand(cmd); }, 4); }); function onTick() { // const entities = getEntities({ excludeFamilies: ["player"] }); // for (const entity of entities) { // if (entity.typeId !== "minecraft:player") { // entity.addEffect("slowness", 40, { amplifier: 20, showParticles: false }); // entity.teleport(entity.loc(), { facingLocation: point.fromString("-246 76 623") }); // } // } return; } system.runInterval(onTick, 1); const allIds = world.getDynamicPropertyIds(); if (!allIds.includes("configDoubleJump")) world.setDynamicProperty("configDoubleJump", true); if (!allIds.includes("configDash")) world.setDynamicProperty("configDash", true); if (!allIds.includes("configClimb")) world.setDynamicProperty("configClimb", true); if (!allIds.includes("configWaterRun")) world.setDynamicProperty("configWaterRun", true); if (!allIds.includes("configWallRun")) world.setDynamicProperty("configWallRun", true); if (!allIds.includes("configWallJump")) world.setDynamicProperty("configWallJump", true); if (!allIds.includes("configRoll")) world.setDynamicProperty("configRoll", true); if (!allIds.includes("configAbilitiesConsumeHunger")) world.setDynamicProperty("configAbilitiesConsumeHunger", true); const configCache = { DoubleJump: world.getDynamicProperty("configDoubleJump"), Dash: world.getDynamicProperty("configDash"), Climb: world.getDynamicProperty("configClimb"), WaterRun: world.getDynamicProperty("configWaterRun"), WallRun: world.getDynamicProperty("configWallRun"), WallJump: world.getDynamicProperty("configWallJump"), Roll: world.getDynamicProperty("configRoll"), AbilitiesConsumeHunger: world.getDynamicProperty("configAbilitiesConsumeHunger") }; export function isConfigEnabled(config) { return configCache[config]; } system.afterEvents.scriptEventReceive.subscribe((eventData)=>{ const message = eventData.id; if (!message.startsWith("ns_mvt:")) return; const player = eventData.initiator; const npc = eventData.sourceEntity; let id; if (message == "ns_mvt:tutorial") { npc.playAnimation("animation.ninja_squirrel_mvt.spring_reverse", { controller: "spring" }); id = 0; } else if (message == "ns_mvt:skills") { npc.playAnimation("animation.ninja_squirrel_mvt.spring", { controller: "spring" }); id = 0; } else if (message == "ns_mvt:entities") { id = 1; } else if (message == "ns_mvt:gunpowder") { id = 2; } else if (message == "ns_mvt:options") { system.runTimeout(()=>{ const form = new ModalFormData(); form.title("Options"); form.toggle("Enable Double Jump", world.getDynamicProperty("configDoubleJump")); form.toggle("Enable Dash", world.getDynamicProperty("configDash")); form.toggle("Enable Climb", world.getDynamicProperty("configClimb")); form.toggle("Enable Water Run", world.getDynamicProperty("configWaterRun")); form.toggle("Enable Wall Run", world.getDynamicProperty("configWallRun")); form.toggle("Enable Wall Jump", world.getDynamicProperty("configWallJump")); form.toggle("Enable Roll", world.getDynamicProperty("configRoll")); form.toggle("Abilities Consume Hunger", world.getDynamicProperty("configAbilitiesConsumeHunger")); form.show(player).then((data)=>{ if (!data.formValues) return; world.setDynamicProperty("configDoubleJump", data.formValues[0]); world.setDynamicProperty("configDash", data.formValues[1]); world.setDynamicProperty("configClimb", data.formValues[2]); world.setDynamicProperty("configWaterRun", data.formValues[3]); world.setDynamicProperty("configWallRun", data.formValues[4]); world.setDynamicProperty("configWallJump", data.formValues[5]); world.setDynamicProperty("configRoll", data.formValues[6]); world.setDynamicProperty("configAbilitiesConsumeHunger", data.formValues[7]); configCache.DoubleJump = data.formValues[0]; configCache.Dash = data.formValues[1]; configCache.Climb = data.formValues[2]; configCache.WaterRun = data.formValues[3]; configCache.WallRun = data.formValues[4]; configCache.WallJump = data.formValues[5]; configCache.Roll = data.formValues[6]; configCache.AbilitiesConsumeHunger = data.formValues[7]; }); }, 10); return; } else return; const cmd = `dialogue open @e[type=ns_mvt:tutorial,x=${npc.location.x},y=${npc.location.y},z=${npc.location.z},c=1] @s ${message}`; player.runCommand(cmd); player.playSound("item.book.page_turn"); npc.setProperty("ns_mvt:type", id); }); PK eZnyRR,Advanced Movement Add-on BP/scripts/point.jsexport class point { static fromVector3(vector) { const x = vector.x ?? 0; const y = vector.y ?? 0; const z = vector.z ?? 0; const xSafe = isNaN(x) ? 0 : x; const ySafe = isNaN(y) ? 0 : y; const zSafe = isNaN(z) ? 0 : z; return new point(xSafe, ySafe, zSafe); } static fromRotation(pitch, yaw) { const yawRad = yaw * Math.PI / 180; const pitchRad = pitch * Math.PI / 180; // Calculate vector components const z = Math.sin(pitchRad) * Math.sin(yawRad); const y = Math.cos(pitchRad); // Upward/downward component based on pitch const x = -Math.sin(pitchRad) * Math.cos(yawRad); return new point(x, y, z); } static fromString(data) { const parts = data.split(" "); return new point(parseFloat(parts[0]), parseFloat(parts[1]), parseFloat(parts[2])); } static midpoint(a, b) { return new point((a.x + b.x) / 2, (a.y + b.y) / 2, (a.z + b.z) / 2); } static lerp(a, b, t) { return new point(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t, a.z + (b.z - a.z) * t); } serialize() { return `${this.x},${this.y},${this.z}`; } setY(y) { return new point(this.x, y, this.z); } static serialize(point) { return `${point.x},${point.y},${point.z}`; } static deserialize(data) { const parts = data.split(","); return new point(parseFloat(parts[0]), parseFloat(parts[1]), parseFloat(parts[2])); } floor() { return new point(Math.floor(this.x), Math.floor(this.y), Math.floor(this.z)); } cross(other) { return new point(this.y * other.z - this.z * other.y, this.z * other.x - this.x * other.z, this.x * other.y - this.y * other.x); } horizontal() { return new point(this.x, 0, this.z); } add(x, y, z) { return new point(this.x + x, this.y + y, this.z + z); } grid() { return new point(Math.floor(this.x) + 0.5, Math.floor(this.y), Math.floor(this.z) + 0.5); } normalize() { const length = this.length(); return new point(this.x / length, this.y / length, this.z / length).safe(); } safe() { return new point(isNaN(this.x) ? 0 : this.x, isNaN(this.y) ? 0 : this.y, isNaN(this.z) ? 0 : this.z); } multiply(number) { return new point(this.x * number, this.y * number, this.z * number); } static sumVectors(a, b) { return new point(a.x + b.x, a.y + b.y, a.z + b.z); } length() { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); } lengthFlat() { return Math.sqrt(this.x * this.x + this.z * this.z); } getDistance(other) { return Math.sqrt(Math.pow(this.x - other.x, 2) + Math.pow(this.y - other.y, 2) + Math.pow(this.z - other.z, 2)); } flat() { return new point(this.x, 0, this.z); } addVector3(other) { return new point(this.x + other.x, this.y + other.y, this.z + other.z); } subtractVector3(other) { return new point(this.x - other.x, this.y - other.y, this.z - other.z); } scale(other) { return new point(this.x * other, this.y * other, this.z * other); } static getDistance(a, b) { return new point(a.x - b.x, a.y - b.y, a.z - b.z).length(); } static getDistanceFlat(a, b) { return new point(a.x - b.x, 0, a.z - b.z).length(); } static vLength(a) { return Math.sqrt(a.x * a.x + a.y * a.y + a.z * a.z); } constructor(x, y, z){ this.x = x; this.y = y; this.z = z; } } PK eZ=]:K +Advanced Movement Add-on BP/scripts/util.jsexport class util { static getInventory(entity) { const inventoryComponent = entity.getComponent("minecraft:inventory"); return inventoryComponent?.container; } static getEquipment(entity) { const equipmentComponent = entity.getComponent("equippable"); return equipmentComponent; } static getItemCount(entity, itemTypeId) { const items = this.getItems(entity, itemTypeId); const count = items.reduce((acc, { itemStack })=>acc + itemStack.amount, 0); return count; } static getItems(entity, itemTypeId) { const itemsFound = []; const inventory = this.getInventory(entity); if (inventory) { for(let i = 0; i < inventory.size; i++){ const itemStack = inventory.getItem(i); if (itemStack && itemStack.typeId === itemTypeId) { itemsFound.push({ itemStack, slot: i }); } } } return itemsFound; } static removeItem(entity, itemTypeId, amount) { const ammoInInventory = this.getItems(entity, itemTypeId); let itemsCountToRemove = amount; for (const { itemStack, slot } of ammoInInventory){ if (itemsCountToRemove <= 0) break; if (itemStack.amount <= itemsCountToRemove) { util.setInventoryItem(entity, undefined, slot); itemsCountToRemove -= itemStack.amount; } else { itemStack.amount -= itemsCountToRemove; util.setInventoryItem(entity, itemStack, slot); itemsCountToRemove = 0; } } } static clearEquipmentSlot(entity, slot) { const equipment = this.getEquipment(entity); if (!equipment) return; equipment.setEquipment(slot); } static setInventoryItem(entity, itemStack, slot) { const inventory = this.getInventory(entity); if (!inventory) return; inventory.setItem(slot, itemStack); } static setSelectedSlot(player, itemStack) { const inventory = this.getInventory(player); if (!inventory) return; inventory.setItem(player.selectedSlotIndex, itemStack); } static setEquipmentItem(entity, slot, itemStack) { const equipment = this.getEquipment(entity); equipment.setEquipment(slot, itemStack); } static giveItem(entity, itemStack) { const inventory = this.getInventory(entity); if (!inventory) return; inventory.addItem(itemStack); } static selectedItem(player) { const inventory = this.getInventory(player); if (!inventory) return; const selectedItem = inventory.getItem(player.selectedSlotIndex); return selectedItem; } static emptySlotsCount(entity) { const inventory = this.getInventory(entity); return inventory?.emptySlotsCount ?? 0; } } PK eZ\yy2Advanced Movement Add-on BP/scripts/mobs/cannon.jsimport { system } from "@minecraft/server"; import { ActionFormData, ModalFormData } from "@minecraft/server-ui"; import { util } from "util"; import mob from "./mob"; class cannon extends mob { onTick() { const rider = this.getRider(); this.rideTicks = rider ? this.rideTicks + 1 : 0; if (this.rideTicks == 2) { this.queueAnimation("animation.ninja_squirrel_mvt.cannon.shoot", { controller: "shoot", nextState: "default2" }); rider.getComp("minecraft:player").queueAnimation("animation.ninja_squirrel_mvt.hide", { controller: "hide" }); rider.getComp("minecraft:player").force3rdPersonCamera(); } if (this.rideTicks > 21) { system.runTimeout(()=>{ if (!accessible(rider)) return; this.throw(rider); }, 1); system.runTimeout(()=>{ if (!accessible(rider)) return; rider.getComp("minecraft:player").queueAnimation("animation.ninja_squirrel_mvt.jump2", { controller: "mvt", blendOutTime: 0.2, nextState: "animation.ninja_squirrel_mvt.double_jump", stopExpression: "q.is_on_ground" }); }, 2); this.rideTicks = 0; } } throw(rider) { rider.teleport(this.mob.loc().add(0, 1, 0)); const xRot = this.mob.getProperty("ns_mvt:rot_x"); const yRot = 90 - this.mob.getProperty("ns_mvt:rot_y"); const dir = point.fromRotation(xRot, yRot); const xz = dir.flat().length(); const power = this.getProperty("power"); let rideDuration = [ 3, 5, 9, 14, 25 ][power - 1]; const xzPower = [ 2, 3, 3.3, 3.6, 4 ][power - 1]; const yPower = [ 1, 1.5, 1.7, 1.9, 2.1 ][power - 1]; const applyKnockback = ()=>{ rider.getComp("minecraft:player").landedFromCannon = false; rider.applyKnockback(dir.x, dir.z, xz * xzPower, dir.y * yPower); rideDuration--; if (rideDuration > 0) { system.runTimeout(applyKnockback, 1); } }; applyKnockback(); this.playSfx("ns_mvt.cannon", 0.4, 1.4); } onInteract(player) { const form = new ActionFormData(); form.title("Cannon"); form.body("Current gunpowder: " + this.ammo); const buttons = []; buttons.push(`Ride (${this.getProperty("power") - 1} gunpowder)`); buttons.push("Insert Gunpowder"); buttons.push("Set Rotation"); buttons.push("Set Power"); buttons.push("Pick Up"); for (const button of buttons){ form.button(button); } form.show(player).then((data)=>{ if (typeof data.selection != "number") return; if (!accessible(this.mob)) return; switch(buttons[data.selection]){ case `Ride (${this.getProperty("power") - 1} gunpowder)`: this.ride(player); break; case "Pick Up": this.pickUp(); break; case "Set Power": this.setPower(player); break; case "Insert Gunpowder": this.insertAmmo(player); break; case "Set Rotation": this.setDirection(player); break; } }); } insertAmmo(player) { const ammoInInventoryCount = util.getItemCount(player, "minecraft:gunpowder"); if (ammoInInventoryCount == 0) { player.sendMessage("You need gunpowder in your inventory."); return; } const form = new ModalFormData(); form.title("Insert Gunpowder"); form.slider("Amount", 1, ammoInInventoryCount, 1); form.show(player).then((data)=>{ if (!data.formValues) return; if (!accessible(this.mob)) return; const amount = data.formValues[0]; const ammoInInventory = util.getItems(player, "minecraft:gunpowder"); let itemsCountToRemove = amount; for (const { itemStack, slot } of ammoInInventory){ if (itemsCountToRemove <= 0) break; if (itemStack.amount <= itemsCountToRemove) { util.setInventoryItem(player, undefined, slot); itemsCountToRemove -= itemStack.amount; } else { itemStack.amount -= itemsCountToRemove; util.setInventoryItem(player, itemStack, slot); itemsCountToRemove = 0; } } this.ammo += amount; }); } setPower(player) { const power = this.getProperty("power"); const form = new ModalFormData(); form.title("Set Power"); form.slider("Power", 1, 5, 1, power); form.show(player).then((data)=>{ if (!data.formValues) return; if (!accessible(this.mob)) return; const power = data.formValues[0]; this.setProperty("power", power); }); } setDirection(player) { const form = new ModalFormData(); form.title("Set Rotation"); form.slider("X Rotation", 0, 45, 1, this.mob.getProperty("ns_mvt:rot_x")); form.slider("Y Rotation", 0, 360, 1, this.mob.getProperty("ns_mvt:rot_y")); form.show(player).then((data)=>{ if (!data.formValues) return; if (!accessible(this.mob)) return; const x = data.formValues[0]; const y = data.formValues[1]; this.mob.setProperty("ns_mvt:rot_x", x); this.mob.setProperty("ns_mvt:rot_y", y); }); } ride(player) { const hasRider = this.getRider(); if (hasRider) return; if (this.ammo < this.getProperty("power") - 1) { player.sendMessage("Not enough gunpowder."); return; } this.ammo = this.ammo - this.getProperty("power") + 1; this.mob.getComponent("rideable")?.addRider(player); } dejectRiders() { this.mob.getComponent("rideable")?.ejectRiders(); } getRider() { return this.mob.getComponent("rideable")?.getRiders()[0]; } constructor(entity){ super(entity); this.rideTicks = 0; const nearbyCannons = entity.dimension.getEntities({ type: "ns_mvt:cannon", maxDistance: 0.5, location: entity.location }); if (nearbyCannons.length > 1) { this.pickUp(); } } } export { cannon as default }; PK eZNhv"v"/Advanced Movement Add-on BP/scripts/mobs/mob.jsimport { ItemStack, system } from "@minecraft/server"; import { accessible, getEntities, getProperty as mainGetProperty } from "index"; import { point } from "point"; const AirBlocks = [ "minecraft:air", "minecraft:pink_tulip", "minecraft:carrots", "minecraft:brown_mushroom", "minecraft:large_fern", "minecraft:cherry_sapling", "minecraft:torchflower", "minecraft:cave_vines", "minecraft:weeping_vines", "minecraft:red_tulip", "minecraft:wheat", "minecraft:spruce_sapling", "minecraft:cave_vines_body_with_berries", "minecraft:waterlily", "minecraft:sunflower", "minecraft:jungle_sapling", "minecraft:cave_vines_head_with_berries", "minecraft:birch_sapling", "minecraft:wither_rose", "minecraft:pale_hanging_moss", "minecraft:dark_oak_sapling", "minecraft:oak_sapling", "minecraft:cocoa", "minecraft:peony", "minecraft:pitcher_crop", "minecraft:short_grass", "minecraft:pale_oak_sapling", "minecraft:chorus_flower", "minecraft:reeds", "minecraft:allium", "minecraft:torchflower_crop", "minecraft:acacia_sapling", "minecraft:fern", "minecraft:deadbush", "minecraft:bamboo_sapling", "minecraft:azure_bluet", "minecraft:oxeye_daisy", "minecraft:lilac", "minecraft:flowering_azalea", "minecraft:poppy", "minecraft:cornflower", "minecraft:orange_tulip", "minecraft:resin_clump", "minecraft:azalea", "minecraft:nether_wart", "minecraft:warped_fungus", "minecraft:white_tulip", "minecraft:tall_grass", "minecraft:rose_bush", "minecraft:red_mushroom" ]; const sfx = [ "ns_mvt.land", "ns_mvt.spring", "ns_mvt.whoosh1", "ns_mvt.whoosh2", "ns_mvt.cannon", "ns_mvt.rocketstart", "ns_mvt.rocketloop" ]; class mob { onTick() {} getProperty(property) { return mainGetProperty(this.mob, property); } setProperty(property, value) { this.mob.setDynamicProperty(property, value); } get ammo() { return this.getProperty("ammo"); } set ammo(value) { this.mob.setDynamicProperty("ammo", value); } runInterval(callback, interval) { if (!accessible(this.mob)) return 0; const runnerId = system.runInterval(callback, interval); this.clearRuns.push(runnerId); return runnerId; } particleLine(from, to) { const distance = point.getDistance(from, to); const direction = to.subtractVector3(from).normalize(); const step = 0.5; for(let i = 0; i < distance; i += step){ this.particle(from.addVector3(direction.scale(i))); } } particle(location) { // this.mob.dimension.spawnParticle("ns_mvt:soul", point.fromVector3(location)); this.mob.runCommand(`particlelegacy flame ${location.x} ${location.y} ${location.z}`); } pickUp() { let itemTypeId = this.mob.typeId + "_spawn_egg"; if (this.mob.typeId === "ns_mvt:rocket") { itemTypeId = "ns_mvt:rocket"; } const itemStack = new ItemStack(itemTypeId); this.mob.dimension.spawnItem(itemStack, this.mob.location); while(this.ammo){ const ammoMax64 = Math.min(this.ammo, 64); const ammoStack = new ItemStack("minecraft:gunpowder", ammoMax64); this.mob.dimension.spawnItem(ammoStack, this.mob.location); this.ammo -= ammoMax64; } this.mob.remove(); } runIimeout(callback, delay) { if (!accessible(this.mob)) return 0; const runnerId = system.runTimeout(callback, delay); this.clearRuns.push(runnerId); return runnerId; } playSound(sound) { this.mob.dimension.playSound(sound, this.mob.location); } playSfx(sound, volume = 1, pitch = 1, player) { if (player) player.playSound(sound, { volume, pitch }); else this.mob.dimension.playSound(sound, this.mob.location, { volume, pitch }); } remove() { this.clearRuns.forEach((runnerId)=>system.clearRun(runnerId)); system.clearRun(this.ticker); } logFinal() { if (!this.stuffToLog.length) return; getEntities({ type: "minecraft:player" }).forEach((e)=>{ const msg = this.stuffToLog.map((s)=>{ if (s.startsWith(",")) { s = s.slice(1); } return s; }); e.onScreenDisplay.setActionBar(msg.join("")); }); // console.warn(this.stuffToLog.join("\n")); this.stuffToLog = []; } // eslint-disable-next-line @typescript-eslint/no-explicit-any log(msg) { if (!mob.enableLogging) return; let str = ""; if (msg === null) { str = "null"; } else if (Array.isArray(msg)) { for (const item of msg){ str += this.decipherObject(item); } } else if (typeof msg === "string") { str = msg; } else if (typeof msg === "number") { str = msg.toFixed(2); } else if (typeof msg === "boolean") { str = msg ? "true" : "false"; } else if (typeof msg === "undefined") { str = "undefined"; } else if (typeof msg === "function") { str = "function"; } else if (typeof msg === "object") { str = this.decipherObject(msg); } else if (isNaN(msg)) { str = "NaN"; } this.stuffToLog.push(str); } timeSince(timestamp) { return system.currentTick - timestamp; } queueAnimation(animation, options, skipIfCantPlayInstantly = false, skipIfLastMolangIsSame = false) { // console.warn(this.mob.typeId, animation); if (skipIfCantPlayInstantly && this.animationQueue.length) { return; } if (skipIfLastMolangIsSame && lastMolang === options?.stopExpression) { return; } this.animationQueue.push({ animation, options }); } isSolid(blockTypeId) { if (!blockTypeId) return false; return !AirBlocks.includes(blockTypeId); } onInteract(player) { return; } processAnimationQueue() { if (this.animationQueue.length) { const { animation, options } = this.animationQueue.shift(); // console.warn(this.mob.typeId, animation); this.mob.playAnimation(animation, { ...options, controller: options?.controller }); // console.warn(animation); lastMolang = options?.stopExpression ?? ""; this.playedAnimationTimestamp.set(animation, system.currentTick); // if (this.animationQueue.length >= 2) { // console.warn(this.animationQueue.map((a) => a.animation)); // } } } timeSincePlayedAnimation(animation) { if (!this.playedAnimationTimestamp.has(animation)) return Infinity; return system.currentTick - this.playedAnimationTimestamp.get(animation); } // eslint-disable-next-line @typescript-eslint/no-explicit-any decipherObject(obj) { return Object.entries(obj).map(([key, value])=>{ if (value === null) { return `${key}: null\n`; } else if (typeof value === "object") { if (Array.isArray(value)) { return `${key}: [${value.join("\n")}]\n`; } if (value.x !== undefined && value.y !== undefined && value.z !== undefined) { return `${key}: (${value.x.toFixed(2)}, ${value.y.toFixed(2)}, ${value.z.toFixed(2)})\n`; } if (value.x !== undefined && value.y !== undefined) { return `${key}: (${value.x.toFixed(2)}, ${value.y.toFixed(2)})\n`; } return `${key}:\n${this.decipherObject(value)}\n`; } else if (typeof value === "number") { return `${key}: ${value.toFixed(2)}\n`; } return `${key}: ${value}\n`; }).join(""); } constructor(entity){ this.clearRuns = []; this.stuffToLog = []; this.animationQueue = []; this.playedAnimationTimestamp = new Map(); this.mob = entity; this.startLoc = entity.loc(); this.ticker = this.runInterval(()=>{ if (!accessible(this.mob)) return; this.onTick(); this.logFinal(); this.processAnimationQueue(); }, 1); } } mob.enableLogging = false; export { mob as default }; export let lastMolang = ""; PK eZ5(m4Advanced Movement Add-on BP/scripts/mobs/platform.jsimport { system, world } from "@minecraft/server"; import { ActionFormData, ModalFormData } from "@minecraft/server-ui"; import { getProperty, setProperty } from "index"; import { util } from "util"; import mob from "./mob"; class platform extends mob { onInteract(player) { const selectedItem = util.selectedItem(player); if (selectedItem?.typeId == "ns_mvt:rocket") { if (this.rocket) { return world.sendMessage("Rocket already exists."); } this.mob.dimension.spawnEntity("ns_mvt:rocket", this.mob.loc().add(0, 0.2, 0)); util.removeItem(player, "ns_mvt:rocket", 1); return; } const form = new ActionFormData(); form.title("Rocket Platform - " + this.mob.nameTag); form.body("Current gunpowder: " + (this.rocket?.getComp("ns_mvt:rocket")?.ammo ?? "No Rocket")); const buttons = []; const rideText = `Travel to ${this.selectedDestination?.entity.nameTag} (${this.selectedDestination?.cost} gunpowder)`; if (this.rocket && this.selectedDestination) buttons.push(rideText); if (this.rocket) buttons.push("Free Ride"); if (this.rocket) buttons.push("Insert gunpowder"); buttons.push("Set name"); buttons.push("Set destination"); if (this.rocket) buttons.push("Pick up Rocket"); buttons.push("Pick Up Platform"); for (const button of buttons){ form.button(button); } form.show(player).then((data)=>{ if (typeof data.selection != "number") return; if (!accessible(this.mob)) return; switch(buttons[data.selection]){ case rideText: this.ride(player); break; case "Pick Up Platform": this.pickUpRocket(); this.pickUp(); break; case "Pick up Rocket": this.pickUpRocket(); break; case "Insert gunpowder": this.insertAmmo(player); break; case "Set name": this.setName(player); break; case "Set destination": this.setDestination(player); break; case "Free Ride": this.freeRide(player); break; } }); } pickUpRocket() { if (!this.rocket) return; this.rocket.getComp("ns_mvt:rocket")?.pickUp(); } setDestination(player) { const destinations = this.getDestinations(); if (destinations.length == 0) return player.sendMessage("No destinations found. Place down another platform in the world."); const form = new ModalFormData(); form.title("Set Destination"); let selectedIndex = destinations.findIndex((d)=>d.entity.id == getProperty(this.mob, "targetId")); if (selectedIndex == -1) selectedIndex = 0; form.dropdown("Destination", destinations.map((d)=>d.entity.nameTag), selectedIndex); form.show(player).then((data)=>{ if (!data.formValues) return; if (!accessible(this.mob)) return; const destination = destinations[data.formValues[0]]; setProperty(this.mob, "targetId", destination.entity.id); }); } get rocket() { return this.mob.dimension.getEntities({ closest: 1, maxDistance: 2, type: "ns_mvt:rocket", location: this.mob.location })[0]; } getDestinations() { const otherPlatforms = this.mob.dimension.getEntities({ type: "ns_mvt:platform" }).filter((e)=>e.id != this.mob.id); const destinations = []; for (const platform of otherPlatforms){ const destinationData = this.getDestinationData(platform); destinations.push(destinationData); } return destinations; } getDestinationData(platform) { const distance = this.mob.loc().getDistance(platform.loc()); const cost = Math.ceil(Math.pow(distance, 0.5)); // const cost = 0; return { entity: platform, distance, cost }; } insertAmmo(player) { this.rocket?.getComp("ns_mvt:rocket")?.insertAmmo(player); } setName(player) { const form = new ModalFormData(); form.title("Set Name"); form.textField("Name", "New name...", this.mob.nameTag); form.show(player).then((data)=>{ if (!data.formValues) return; if (!accessible(this.mob)) return; const name = data.formValues[0]; this.mob.nameTag = name; }); } get selectedDestination() { const targetId = getProperty(this.mob, "targetId"); const destinations = this.getDestinations(); const destination = destinations.find((d)=>d.entity.id == targetId) ?? destinations[0]; return destination; } ride(player) { if (!this.rocket) return; const cost = this.selectedDestination.cost; this.rocket.triggerEvent("ns_mvt:locked"); system.runTimeout(()=>{ if (this.rocket.getComp("ns_mvt:rocket").ammo < cost) return player.sendMessage("Not enough gunpowder."); this.rocket.getComp("ns_mvt:rocket").ammo -= cost; this.rocket.getComp("ns_mvt:rocket").destination = this.selectedDestination.entity.loc(); this.rocket.getComp("ns_mvt:rocket").origin = this.mob.loc(); this.rocket.getComp("ns_mvt:rocket").ride(player); this.rocket.setProperty("ns_mvt:old", true); this.playSfx("ns_mvt.rocketstart"); }); } freeRide(player) { if (!this.rocket) return; const minCost = 10; this.rocket.triggerEvent("ns_mvt:unlocked"); system.runTimeout(()=>{ if (this.rocket.getComp("ns_mvt:rocket").ammo < minCost) return player.sendMessage(`You need at least ${minCost} gunpowder.`); this.rocket.getComp("ns_mvt:rocket").freeRide(player); this.rocket.setProperty("ns_mvt:old", false); this.playSfx("ns_mvt.rocketstart"); }); } dejectRiders() { this.mob.getComponent("rideable")?.ejectRiders(); } getRider() { return this.mob.getComponent("rideable")?.getRiders()[0]; } constructor(entity){ super(entity); entity.teleport(entity.loc().grid(), { rotation: { x: 0, y: 0 } }); for(let i = 1; i < 50; i++){ if (this.mob.nameTag == "" && entity.dimension.getEntities({ type: "ns_mvt:platform", name: "Platform " + i }).length == 0) { this.mob.nameTag = "Platform " + i; break; } } const nearbyPlatforms = entity.dimension.getEntities({ type: "ns_mvt:platform", maxDistance: 0.5, location: entity.location }); if (nearbyPlatforms.length > 1) { this.pickUp(); } } } export { platform as default }; PK eZx]]2Advanced Movement Add-on BP/scripts/mobs/player.jsimport { GameMode, ItemStack, system } from "@minecraft/server"; import { comps, isConfigEnabled } from "index"; import { point } from "point"; import mob from "./mob"; import spring from "./spring"; class player extends mob { force3rdPersonCamera() { this.mob.camera.setCamera("minecraft:third_person"); this.setProperty("hasForced3rdCamera", true); } onTick() { // const gamemode = GameMode.survival as string; const gamemode = this.mob.getGameMode(); const velocity = point.fromVector3(this.mob.getVelocity()); const yVelocity = velocity.y; const heavyAirTimeWas = this.heavyAirTime; const wasInWallMode = this.isInWallMode; this.crouchingTime = this.mob.isSneaking ? this.crouchingTime + 1 : 0; this.onGroundTime = this.mob.isOnGround ? this.onGroundTime + 1 : 0; this.jumpingTime = this.mob.isJumping ? this.jumpingTime + 1 : 0; this.sprintingTime = this.mob.isSprinting ? this.sprintingTime + 1 : 0; this.airTime = this.mob.isOnGround ? 0 : this.airTime + 1; this.fallingTime = yVelocity < 0 ? this.fallingTime + 1 : 0; this.heavyAirTime = yVelocity < -0.35 ? this.heavyAirTime + 1 : 0; this.viewDirection = point.fromVector3(this.mob.getViewDirection()); if (this.getProperty("hasForced3rdCamera")) { const ride = this.mob.getComponent("riding")?.entityRidingOn; if (!ride && this.onGroundTime > 1) { this.mob.camera.clear(); this.setProperty("hasForced3rdCamera", false); } } if (isConfigEnabled("Roll") && !this.isInWallMode && !this.wasWallRunning && heavyAirTimeWas == 4 && this.landedFromCannon && this.mob.isFlying && gamemode != GameMode.spectator && this.sprintingTime) { this.queueAnimation("animation.ninja_squirrel_mvt.double_jump", { controller: "mvt", nextState: "animation.ninja_squirrel_mvt.walk", blendOutTime: 0.2 }); this.queueAnimation("animation.ninja_squirrel_mvt.jump3", { controller: "mvt", blendOutTime: 0.2, nextState: "animation.ninja_squirrel_mvt.double_jump", stopExpression: "q.is_on_ground" }); } if (heavyAirTimeWas >= 4 && this.onGroundTime && !this.heavyAirTime && this.mob.isFlying && gamemode != GameMode.spectator && this.sprintingTime) { this.mob.dimension.playSound("ns_mvt.land", this.mob.location, { volume: 0.5, pitch: 1.5 }); } if (this.onGroundTime) { this.onGroundResetValues(); } const wallRunningDirectionWas = this.wallRunningDirection; if (!this.isInWallMode) { this.climbingYaw = null; } if (this.isInWallMode || this.isWallRunning) { if (this.timeSince(this.wallJumpTimestamp) > 8) { this.hasWallJumpedSinceAirTime = false; } } const yRotation = this.mob.getRotation().y; this.closeness = (yRotation + 900) % 90; if (this.closeness > 45) this.closeness = 90 - this.closeness; const springs = Object.values(comps).filter((comp)=>comp instanceof spring); for (const spring of springs){ const inRange = spring.startLoc.getDistance(this.mob.location) < 1; if (inRange) { if (accessible(spring.mob)) spring.trigger(this.mob); } } if (this.mob.isFlying || gamemode == GameMode.spectator) return; if (isConfigEnabled("Dash")) this.dash(); if (isConfigEnabled("DoubleJump")) this.doubleJump(); if (!this.isInWallMode && !this.isWallRunning && isConfigEnabled("WaterRun")) { this.waterRun(); } let eval1 = 0; if (!this.isInWallMode) { this.wallMode(); if (!this.isInWallMode) this.wallRun(); eval1 = 1; } else { const rotToClimb = Math.abs(yRotation - this.climbingYaw); if (this.closeness < 5 && this.jumpingTime) { this.wallMode(); if (!this.isInWallMode) this.wallRun(); eval1 = 2; } else if (rotToClimb > 30 && this.sprintingTime) { this.wallRun(); if (!this.isWallRunning) this.wallMode(); eval1 = 3; } else { this.wallMode(); if (!this.isInWallMode) this.wallRun(); eval1 = 4; } } this.wallJump(); this.log({ eval1, wallRunning: this.isWallRunning, wallMode: this.isInWallMode }); this.wallSlide(); this.dampenFallDamage(); if (wasInWallMode != this.isInWallMode) { if (this.isInWallMode) { this.queueAnimation("animation.ninja_squirrel_mvt.climb", { controller: "mvt", blendOutTime: 0.2, nextState: "animation.ninja_squirrel_mvt.walk", stopExpression: "q.is_on_ground" }); } } else if (wallRunningDirectionWas != this.wallRunningDirection) { if (this.wallRunningDirection == "left") { this.queueAnimation("animation.ninja_squirrel_mvt.rot_left", { controller: "mvt", blendOutTime: 0.2, nextState: "animation.ninja_squirrel_mvt.walk", stopExpression: "0" }); } else if (this.wallRunningDirection == "right") { this.queueAnimation("animation.ninja_squirrel_mvt.rot_right", { controller: "mvt", blendOutTime: 0.2, nextState: "animation.ninja_squirrel_mvt.walk", stopExpression: "0" }); } else { this.queueAnimation("animation.ninja_squirrel_mvt.walk", { controller: "mvt", stopExpression: "0" }); } } if (!this.isWallRunning) { this.wallRunningDirection = "none"; } this.wasWallRunning = this.isWallRunning; this.isWallRunning = false; } onGroundResetValues() { this.hasWallRanSinceAirTime = false; this.hasDoubleJumpedSinceAirTime = false; this.hasDashedSinceAirTime = false; this.hasWallJumpedSinceAirTime = false; this.landedFromCannon = true; } dash() { if (this.hasDashedSinceAirTime) return; if (this.isWallRunning || this.isInWallMode) return; if (this.airTime < 2) return; if (this.crouchingTime != 1) return; const viewDirection = point.fromVector3(this.mob.getViewDirection()); this.mob.applyKnockback(viewDirection.x, viewDirection.z, 1.4, 0); this.mob.addEffect("speed", 5, { amplifier: 3, showParticles: false }); this.mob.addEffect("slow_falling", 6, { amplifier: 1, showParticles: false }); this.hasDashedSinceAirTime = true; this.queueAnimation("animation.ninja_squirrel_mvt.jump", { controller: "mvt", blendOutTime: 0.2, nextState: "animation.ninja_squirrel_mvt.walk" }); let ticksRan = 0; const fnToRun = ()=>{ this.mob.dimension.spawnParticle("ns_mvt:dash", this.mob.loc().addVector3(viewDirection.multiply(1))); this.mob.dimension.spawnParticle("ns_mvt:dash", this.mob.loc().addVector3(viewDirection.multiply(0.5))); this.mob.dimension.spawnParticle("ns_mvt:dash", this.mob.loc().addVector3(viewDirection.multiply(-0.5))); this.mob.dimension.spawnParticle("ns_mvt:dash", this.mob.loc().addVector3(viewDirection.multiply(-1))); if (ticksRan > 2) { this.mob.applyKnockback(-viewDirection.x, -viewDirection.z, 0.2, 0); return; } this.mob.applyKnockback(viewDirection.x, viewDirection.z, 2.4, 0); ticksRan++; system.runTimeout(()=>fnToRun(), 1); }; system.runTimeout(()=>fnToRun()); this.playSfx("ns_mvt.whoosh2"); this.addHunger(5, 100); } addHunger(duration, amplifier) { if (!isConfigEnabled("AbilitiesConsumeHunger")) return; this.mob.addEffect("hunger", duration, { showParticles: false, amplifier }); } wallJump() { if (!isConfigEnabled("WallJump")) return; if (!this.isWallRunning) return; if (this.airTime < 2) return; if (this.jumpingTime != 1) return; this.log({ closeness: this.closeness }); let viewDirection = point.fromVector3(this.mob.getViewDirection()); if (this.isInWallMode) { if (this.closeness < 20) viewDirection = this.climbingRotation.multiply(-1); } else if (this.isWallRunning) { const left = viewDirection.cross(new point(0, -1, 0)).normalize(); viewDirection = this.wallRunningDirection == "right" ? left : left.multiply(-1); } // viewDirection = point.lerp(this.mob.getViewDirection(), viewDirection, 0.7); this.wallJumpTimestamp = system.currentTick; this.mob.applyKnockback(viewDirection.x, viewDirection.z, 1.8, 0.5); this.mob.addEffect("slow_falling", 6, { amplifier: 1, showParticles: false }); this.hasWallJumpedSinceAirTime = true; this.queueAnimation("animation.ninja_squirrel_mvt.jump", { controller: "mvt", blendOutTime: 0.2, nextState: "animation.ninja_squirrel_mvt.walk" }); } wallSlide() { this.isWallSliding = false; if (!this.airTime) return; if (this.hasWallJumpedSinceAirTime) return; const location = point.fromVector3(this.mob.getHeadLocation()); const playerViewDirection = point.fromVector3(this.mob.getViewDirection()); const left = playerViewDirection.cross(new point(0, -0.7, 0)).normalize(); const blockLeft = this.mob.dimension.getBlock(location.addVector3(left)); const blockRight = this.mob.dimension.getBlock(location.subtractVector3(left)); const blockInFront = this.mob.dimension.getBlock(location.addVector3(playerViewDirection.multiply(1.6))); // if (blockLeft.isAir && blockRight.isAir && blockInFront.isAir) return; if (!this.isSolid(blockLeft.typeId) && !this.isSolid(blockRight.typeId) && !this.isSolid(blockInFront.typeId)) return; this.isWallSliding = true; if (system.currentTick % 2 == 0) this.mob.addEffect("slow_falling", 2, { amplifier: 0, showParticles: false }); } wallRun() { const exit = ()=>{ this.isWallRunning = false; this.wallRunningDirection = "none"; }; if (!isConfigEnabled("WallRun")) return exit(); if (!this.airTime) return exit(); const headLocation = point.fromVector3(this.mob.getHeadLocation()); const location = point.fromVector3(this.mob.location); const blockBelow1 = this.mob.dimension.getBlock(location.add(0, -1, 0)); if (this.isSolid(blockBelow1.typeId)) return exit(); const playerViewDirection = point.fromVector3(this.mob.getViewDirection()); const left = playerViewDirection.cross(new point(0, -0.5, 0)).normalize(); const blockLeft = this.mob.dimension.getBlock(headLocation.addVector3(left)); const blockRight = this.mob.dimension.getBlock(headLocation.subtractVector3(left)); if (!this.isSolid(blockLeft.typeId) && !this.isSolid(blockRight.typeId)) return exit(); const wallRunningDirectionWas = this.wallRunningDirection; this.wallRunningDirection = !this.isSolid(blockLeft.typeId) ? "right" : "left"; if (this.hasWallJumpedSinceAirTime && this.wallRunningDirection == wallRunningDirectionWas) return exit(); const velocity = point.fromVector3(this.mob.getVelocity()); const xzVelocity = velocity.flat().length(); this.log({ u: this.viewDirection.y }); const lookingDir = this.viewDirection.y > 0.3 || this.jumpingTime ? "up" : this.viewDirection.y < -0.3 ? "down" : "middle"; const verticalForce = lookingDir == "up" ? 0.1 : lookingDir == "down" ? -0.1 : 0.03; if (xzVelocity > 0.03 && this.sprintingTime) { this.mob.applyKnockback(playerViewDirection.x, playerViewDirection.z, this.sprintingTime ? 0.3 : 0.15, verticalForce); } else { this.mob.applyKnockback(0, 0, 0, -0.1); } if (point.getDistance(this.wallRunLocTs, location) > 1.2) { this.playSound("step.stone"); this.wallRunLocTs = location; } this.isWallRunning = true; this.hasWallRanSinceAirTime = true; } wallMode() { if (!isConfigEnabled("Climb")) return; const rotation = this.mob.getRotation(); let snappedRotation = Math.round(rotation.y / 90) * 90; if (snappedRotation == -180) snappedRotation = 180; let rotationAsVector; switch(snappedRotation){ case 0: rotationAsVector = new point(0, 0, 1); break; case 90: rotationAsVector = new point(-1, 0, 0); break; case -90: rotationAsVector = new point(1, 0, 0); break; case 180: rotationAsVector = new point(0, 0, -1); break; default: rotationAsVector = new point(0, 0, 1); break; } if (this.climbingRotation && this.isInWallMode) rotationAsVector = this.climbingRotation; const headLocation = point.fromVector3(this.mob.getHeadLocation()); const blockInViewDir = this.mob.dimension.getBlockFromRay(headLocation, rotationAsVector, { maxDistance: 10 }); // this.log({ blockInViewDir: blockInViewDir?.block.typeId }); let blockAbove; const playerLocation = point.fromVector3(this.mob.location); if (!blockInViewDir?.block || !this.isSolid(blockInViewDir.block.typeId)) { if (this.isInWallMode) { this.queueAnimation("animation.ninja_squirrel_mvt.walk", { stopExpression: "0", controller: "mvt" }); this.mob.applyKnockback(rotationAsVector.x, rotationAsVector.z, 0.3, 0.7); } this.isInWallMode = false; return; } const blockLocation = point.fromVector3(blockInViewDir.block.location).floor().addVector3(blockInViewDir.faceLocation); const horizontalDistance = blockLocation.subtractVector3(playerLocation).flat().length(); if (horizontalDistance > 0.8) { blockAbove = blockAbove ?? this.mob.dimension.getBlock(playerLocation.add(0, 2.5, 0).addVector3(rotationAsVector.multiply(0.5))); if (!this.isSolid(blockAbove?.typeId)) { if (this.isInWallMode) { this.queueAnimation("animation.ninja_squirrel_mvt.walk", { stopExpression: "0", controller: "mvt" }); this.mob.applyKnockback(rotationAsVector.x, rotationAsVector.z, 0.3, 0.7); } this.isInWallMode = false; return; } } // if (!this.isInWallMode) { // const blockAbove = blockInViewDir.block.above()!; // if (blockAbove.isAir) return; // } if (this.isInWallMode && this.jumpingTime == 1 || this.onGroundTime) { this.isInWallMode = false; return; } if (!this.isInWallMode && !this.jumpingTime) { this.isInWallMode = false; return; } if (!this.isInWallMode) { this.climbingRotation = rotationAsVector; this.climbingYaw = snappedRotation; } let direction = null; let correctDir = false; const shadow = false; // if (horizontalDistance > 0.45) { // direction = "down"; // } else if (horizontalDistance < 0.35) { // direction = "up"; // } else if (this.timeSince(this.wallModeTimestamp) < 3 && this.wallModeLastDirection == "up") { // direction = "up"; // shadow = true; // } else if (this.timeSince(this.wallModeTimestamp) < 3 && this.wallModeLastDirection == "down") { // direction = "down"; // shadow = true; // } else if (horizontalDistance > 0.35 && horizontalDistance < 0.65) { // direction = "center"; // } direction = this.jumpingTime ? "up" : "down"; if (direction == "up") { blockAbove = blockAbove ?? this.mob.dimension.getBlock(playerLocation.add(0, 2.5, 0).addVector3(rotationAsVector.multiply(0.5))); if (this.isSolid(blockAbove?.typeId)) { direction = "back"; } } if (horizontalDistance > 0.65) { correctDir = true; } this.log({ horizontalDistance, correctDir, direction }); if (direction == "up") { this.mob.applyKnockback(rotationAsVector.x, rotationAsVector.z, correctDir ? 0.04 : 0, 0.3); } else if (direction == "down") { this.mob.applyKnockback(rotationAsVector.x, rotationAsVector.z, correctDir ? 0.04 : 0, -0.2); } else if (direction == "back") { this.mob.applyKnockback(rotationAsVector.x, rotationAsVector.z, -0.2, 0.1); } if (!shadow && (direction == "up" || direction == "down")) this.wallModeTimestamp = system.currentTick; if (direction) this.wallModeLastDirection = direction; if (Math.floor(this.wallModeLastblockLocY / 2) != Math.floor(blockLocation.y / 2)) { this.playSound("step.stone"); this.wallModeLastblockLocY = blockLocation.y; } this.addHunger(5, 0); this.isInWallMode = true; } doubleJump() { if (this.hasWallJumpedSinceAirTime || this.isInWallMode || this.isWallRunning) return; if (this.airTime > 3 && !this.hasDoubleJumpedSinceAirTime && this.jumpingTime == 1) { this.hasDoubleJumpedSinceAirTime = true; const horizontalVelocity = point.fromVector3(this.mob.getVelocity()).horizontal().multiply(1).length(); const viewDirection = point.fromVector3(this.mob.getViewDirection()); this.mob.applyKnockback(viewDirection.x, viewDirection.z, horizontalVelocity, 0.7); this.mob.applyKnockback(viewDirection.x, viewDirection.z, horizontalVelocity, 0.7); this.queueAnimation("animation.ninja_squirrel_mvt.double_jump", { controller: "mvt", blendOutTime: 0.2, nextState: "animation.ninja_squirrel_mvt.walk" }); this.playSfx("ns_mvt.whoosh1"); this.mob.dimension.spawnParticle("ns_mvt:jump", this.mob.loc().add(0, 0.5, 0)); this.addHunger(5, 100); } } waterRun() { if (!this.sprintingTime) return; const block1 = this.mob.dimension.getBlock(this.mob.loc().add(0, 0.05, 0)); const block1p5 = this.mob.dimension.getBlock(this.mob.loc().add(0, -0.03, 0)); const block2 = this.mob.dimension.getBlock(this.mob.loc().add(0, -0.15, 0)); const blockTop = this.mob.dimension.getBlock(this.mob.loc().add(0, 0.6, 0)); if ((block1?.isLiquid || block2?.isLiquid) && !blockTop?.isLiquid && !this.mob.isSwimming) { const viewDirection = point.fromVector3(this.mob.getViewDirection()); this.mob.applyKnockback(viewDirection.x, viewDirection.z, 0.5, block1p5?.isLiquid ? 0.07 : 0.03); const location = this.mob.loc(); this.mob.dimension.spawnParticle("minecraft:water_splash_particle_manual", location); this.mob.dimension.spawnParticle("minecraft:water_splash_particle_manual", location.add(0, 0.2, 0)); this.mob.dimension.spawnParticle("minecraft:water_splash_particle_manual", location.add(0.2, 0.2, 0.2)); this.mob.dimension.spawnParticle("minecraft:water_splash_particle_manual", location.add(0.2, 0.2, -0.2)); this.mob.dimension.spawnParticle("minecraft:water_splash_particle_manual", location.add(-0.2, 0.2, 0.2)); this.mob.dimension.spawnParticle("minecraft:water_splash_particle_manual", location.add(-0.2, 0.2, -0.2)); if (system.currentTick % 8 == 0) this.playSound("mob.axolotl.splash"); } } dampenFallDamage() { if (!isConfigEnabled("Roll")) return; if (this.heavyAirTime > 5) return; if (this.heavyAirTime > 1 && !this.sprintingTime) return; const velocity = point.fromVector3(this.mob.getVelocity()); if (velocity.y < -0.35) this.mob.addEffect("slow_falling", 1, { amplifier: 0, showParticles: false }); } constructor(entity){ super(entity); this.crouchingTime = 0; this.onGroundTime = 0; this.jumpingTime = 0; this.sprintingTime = 0; this.airTime = 0; this.fallingTime = 0; this.heavyAirTime = 0; this.viewDirection = new point(0, 0, 0); this.isWallRunning = false; this.hasDoubleJumpedSinceAirTime = false; this.hasWallRanSinceAirTime = false; this.hasDashedSinceAirTime = false; this.isInWallMode = false; this.climbingRotation = null; this.climbingYaw = null; this.wallRunningDirection = "none"; this.hasWallJumpedSinceAirTime = false; this.wallModeLastDirection = null; this.wallModeTimestamp = 0; this.isWallSliding = false; this.closeness = 0; this.landedFromCannon = true; this.wasWallRunning = false; this.wallJumpTimestamp = 0; this.wallRunLocTs = new point(0, 0, 0); this.wallModeLastblockLocY = 0; const isInit = entity.getDynamicProperty("isInit"); if (!isInit) { entity.setDynamicProperty("isInit", true); const item = new ItemStack("ns_mvt:tutorial"); entity.dimension.spawnItem(item, entity.location); } this.queueAnimation("animation.ninja_squirrel_mvt.walk", { stopExpression: "0", controller: "mvt" }); this.queueAnimation("animation.ninja_squirrel_mvt.cancel_walk", { stopExpression: "0", controller: "cancel_walk" }); this.runInterval(()=>{ this.queueAnimation("animation.ninja_squirrel_mvt.cancel_walk", { stopExpression: "0", controller: "cancel_walk" }); if (!this.isWallRunning && !this.isInWallMode && this.landedFromCannon && this.timeSincePlayedAnimation("animation.ninja_squirrel_mvt.jump") > 15 && this.timeSincePlayedAnimation("animation.ninja_squirrel_mvt.double_jump") > 15 && this.timeSincePlayedAnimation("animation.ninja_squirrel_mvt.jump2") > 50 && this.timeSincePlayedAnimation("animation.ninja_squirrel_mvt.jump3") > 50 && this.timeSincePlayedAnimation("animation.ninja_squirrel_mvt.spring") > 15) { this.queueAnimation("animation.ninja_squirrel_mvt.walk", { stopExpression: "0", controller: "mvt" }); } }, 50); } } export { player as default }; PK eZjq442Advanced Movement Add-on BP/scripts/mobs/rocket.jsimport { system } from "@minecraft/server"; import { ActionFormData, ModalFormData } from "@minecraft/server-ui"; import { getProperty, setProperty } from "index"; import { point } from "point"; import { util } from "util"; import mob from "./mob"; export function clamp(min, value, max = Infinity) { return Math.min(Math.max(min, value), max); } class rocket extends mob { get origin() { if (this.originData) return this.originData; const origin = getProperty(this.mob, "origin"); return origin.length ? point.deserialize(origin) : undefined; } set origin(value) { this.originData = value; if (value) this.takenOff = false; else this.takenOff = true; if (value) setProperty(this.mob, "origin", value.serialize()); else setProperty(this.mob, "origin", ""); } get destination() { if (this.destinationData) return this.destinationData; const destination = getProperty(this.mob, "destination"); return destination.length ? point.deserialize(destination) : undefined; } set destination(value) { this.destinationData = value; if (value) setProperty(this.mob, "destination", value.serialize()); else setProperty(this.mob, "destination", ""); if (value) { const directionToDestination = value.subtractVector3(this.mob.location).normalize(); const angle = Math.atan2(directionToDestination.x, directionToDestination.z); let yRotation = 360 - angle * (180 / Math.PI); yRotation = yRotation % 360; this.mob.setProperty("ns_mvt:rot_y", 0); this.mob.setRotation({ x: 0, y: yRotation }); } } get takenOff() { return getProperty(this.mob, "hasTakenOff"); } set takenOff(value) { setProperty(this.mob, "hasTakenOff", value); } freeRideTick() { const player = this.getRider(); const remainingAmmo = this.ammo; player?.onScreenDisplay.setActionBar("§6Remaining Rocket Fuel: §l" + remainingAmmo); if (system.currentTick % 40 == 0) { this.ammo -= 1; } if (remainingAmmo <= 0) { this.dejectRiders(); this.mob.clearVelocity(); this.mob.setRotation({ x: 0, y: 0 }); this.mob.setProperty("ns_mvt:rot_x", 0); this.setProperty("freeRidingTime", 0); return; } if (!player) { this.mob.clearVelocity(); this.mob.setRotation({ x: 0, y: 0 }); this.mob.setProperty("ns_mvt:rot_x", 0); this.setProperty("freeRidingTime", 0); return; } this.setProperty("freeRidingTime", this.getProperty("freeRidingTime") + 1); if (this.getProperty("freeRidingTime") < 40) { const rider = this.getRider(); rider?.getComp("minecraft:player")?.queueAnimation(`animation.ninja_squirrel_mvt.ride_rocket.${0}`, { controller: "ride_rocket", stopExpression: "!q.is_riding" }, true); this.mob.clearVelocity(); this.mob.applyImpulse({ x: 0, y: 0.1 + this.getProperty("freeRidingTime") * 0.02, z: 0 }); return; } let viewDir = point.fromVector3(player.getViewDirection()).add(0, 0.2, 0).normalize(); // const minYDir = Math.max((100 - this.getProperty("freeRidingTime")) * 0.06, -1); // console.warn(viewDir.y, minYDir); // viewDir.y = Math.max(minYDir, viewDir.y); // console.warn(viewDir.y, minYDir); // viewDir = viewDir.normalize(); // if (viewDir.y < -0.4) { // viewDir = viewDir.multiply(0.6); // const nearbyPlatform = this.mob.dimension.getEntities({ // closest: 1, // maxDistance: 1, // location: this.mob.location, // type: "ns_mvt:platform", // })[0]; // if (nearbyPlatform) this.mob.teleport(nearbyPlatform.location); // } const isLookingDown = viewDir.y < -0.3; const groundBlock = this.mob.dimension.getBlockFromRay(this.mob.location, new point(0, -1, 0)); if (groundBlock?.block.isValid()) { const heightFromGround = this.mob.location.y - groundBlock.block.location.y; if (heightFromGround < 15 && isLookingDown) { viewDir = viewDir.multiply(0.7); } if (heightFromGround < 8 && isLookingDown) { viewDir = viewDir.multiply(0.6); } if (heightFromGround < 3) { viewDir = viewDir.multiply(0.6); } } this.mob.clearVelocity(); this.mob.applyImpulse(viewDir); const velocity = point.fromVector3(this.mob.getVelocity()); const yaw = Math.atan2(velocity.z, velocity.x) * (180 / Math.PI); this.mob.setRotation({ x: 0, y: yaw - 90 }); let xRotation = clamp(0, velocity.lengthFlat() * 85, 90); if (xRotation < 4 || velocity.y < 0 && velocity.length() < 0.5) xRotation = 0; this.mob.setProperty("ns_mvt:rot_x", xRotation); const rider = this.getRider(); const xRotRound = Math.max(0, Math.min(90, Math.round(xRotation))); if (system.currentTick % 5 == 0) { const player = this.getRider(); this.playSfx("ns_mvt.rocketloop", 0.35, 1.2, player); } system.runTimeout(()=>{ if (this.getRider()?.id !== rider?.id) return; rider?.getComp("minecraft:player")?.queueAnimation(`animation.ninja_squirrel_mvt.ride_rocket.${xRotRound}`, { controller: "ride_rocket", stopExpression: "!q.is_riding", blendOutTime: 0.2 }, true); }, 1); } onTick() { if (!accessible(this.mob)) return; if (this.canBreakBlocks) { const goingDownwards = this.mob.getVelocity().y <= 0 && this.destination && point.getDistance(this.mob.location, this.destination) > 2; const origLoc = point.fromVector3(this.mob.location); const locs = [ origLoc.add(-0.3, goingDownwards ? -0.7 : 0.7, -0.3), origLoc.add(-0.3, goingDownwards ? -0.7 : 0.7, 0.3), origLoc.add(0.3, goingDownwards ? -0.7 : 0.7, 0.3), origLoc.add(0.3, goingDownwards ? -0.7 : 0.7, 0.3) ]; for (const loc of locs){ const block = this.mob.dimension.getBlock(loc); if (!block?.isAir) { this.mob.dimension.runCommand(`setblock ${loc.x} ${loc.y} ${loc.z} air destroy`); this.blocksBroken++; } } } else { this.blocksBroken = 0; } if (this.blocksBroken > 5) { this.dejectRiders(); this.destination = undefined; this.origin = undefined; this.blocksBroken = 0; this.canBreakBlocks = false; return; } if (this.getProperty("freeRidingTime") > 0) { this.freeRideTick(); return; } if (!this.destination || !this.origin) { this.canBreakBlocks = false; return; } this.canBreakBlocks = true; const velocity = point.fromVector3(this.mob.getVelocity()); const pitch = Math.max(1, velocity.lengthFlat() * 3); const int = pitch == 1 ? 10 : 2; if (system.currentTick % int == 0) { const player = this.getRider(); this.playSfx("ns_mvt.rocketloop", pitch == 1 ? 1 : 0.35, pitch, player); } const location = this.mob.location; const distanceToDestination = point.getDistance(location, this.destination); const distanceToDestinationFlat = point.getDistanceFlat(location, this.destination); let direction = new point(0, 1, 0); if (velocity.length() > 0.8 || this.takenOff) { const dirToDestination = this.destination.subtractVector3(location).normalize(); direction = dirToDestination; direction.y = direction.y + 0.6; this.takenOff = true; if (distanceToDestinationFlat > 8) { direction = direction.setY(0).normalize(); direction.y = 0.75; this.log({ num: 1 }); } else { direction = direction.subtractVector3(velocity).normalize(); this.log({ num: 2 }); } } this.log({ velocity, flat: velocity.length(), distanceToDestinationFlat }); this.mob.applyImpulse(direction.scale(0.1)); if (distanceToDestination < 0.5) { this.mob.teleport(this.destination); this.destination = undefined; this.origin = undefined; this.mob.setProperty("ns_mvt:rot_x", 0); this.mob.setProperty("ns_mvt:rot_y", 0); } else { let xRotation = clamp(0, velocity.lengthFlat() * 85, 90); if (xRotation < 4 || velocity.y < 0 && velocity.length() < 0.5) xRotation = 0; this.mob.setProperty("ns_mvt:rot_x", xRotation); const rider = this.getRider(); // const id = Math.floor(Math.random() * 1000000); const xRotRound = Math.max(0, Math.min(90, Math.round(xRotation))); rider?.getComp("minecraft:player")?.queueAnimation(`animation.ninja_squirrel_mvt.ride_rocket.${xRotRound}.old`, { controller: "ride_rocket", stopExpression: "!q.is_riding" }, true); } } onInteract(player) { const platform = this.platform; if (platform) { platform.getComp("ns_mvt:platform")?.onInteract(player); return; } const form = new ActionFormData(); form.title("Rocket"); const buttons = []; buttons.push("Insert gunpowder"); buttons.push("Pick Up"); for (const button of buttons){ form.button(button); } form.show(player).then((data)=>{ if (typeof data.selection != "number") return; if (!accessible(this.mob)) return; switch(buttons[data.selection]){ case "Pick Up": this.pickUp(); break; case "Insert gunpowder": this.insertAmmo(player); break; } }); } get platform() { return this.mob.dimension.getEntities({ closest: 1, maxDistance: 1, type: "ns_mvt:platform", location: this.mob.location })[0]; } insertAmmo(player) { const ammoInInventoryCount = util.getItemCount(player, "minecraft:gunpowder"); if (ammoInInventoryCount == 0) { player.sendMessage("You need gunpowder in your inventory."); return; } const form = new ModalFormData(); form.title("Insert Gunpowder"); form.slider("Amount", 1, ammoInInventoryCount, 1); form.show(player).then((data)=>{ if (!data.formValues) return; if (!accessible(this.mob)) return; const amount = data.formValues[0]; const ammoInInventory = util.getItems(player, "minecraft:gunpowder"); let itemsCountToRemove = amount; for (const { itemStack, slot } of ammoInInventory){ if (itemsCountToRemove <= 0) break; if (itemStack.amount <= itemsCountToRemove) { util.setInventoryItem(player, undefined, slot); itemsCountToRemove -= itemStack.amount; } else { itemStack.amount -= itemsCountToRemove; util.setInventoryItem(player, itemStack, slot); itemsCountToRemove = 0; } } this.ammo += amount; }); } ride(player) { const hasRider = this.getRider(); if (hasRider) return; // this.mob.triggerEvent("ns_mvt:locked"); this.mob.getComponent("rideable")?.addRider(player); player.getComp("minecraft:player").force3rdPersonCamera(); } freeRide(player) { const hasRider = this.getRider(); if (hasRider) return; this.setProperty("freeRidingTime", 1); // this.mob.triggerEvent("ns_mvt:unlocked"); this.mob.getComponent("rideable")?.addRider(player); player.getComp("minecraft:player").force3rdPersonCamera(); } dejectRiders() { this.mob.getComponent("rideable")?.ejectRiders(); } getRider() { return this.mob.getComponent("rideable")?.getRiders()[0]; } constructor(entity){ super(entity); this.canBreakBlocks = false; this.blocksBroken = 0; entity.addEffect("slow_falling", 1000000, { showParticles: false }); } } export { rocket as default }; PK eZr:~ ~ 2Advanced Movement Add-on BP/scripts/mobs/spring.jsimport { system } from "@minecraft/server"; import { ActionFormData, ModalFormData } from "@minecraft/server-ui"; import mob from "./mob"; class spring extends mob { trigger(player) { if (this.timeSince(this.activeTimestamp) < 20) return; this.throw(player); player.getComp("minecraft:player").onGroundResetValues(); this.queueAnimation("animation.ninja_squirrel_mvt.spring.active"); this.activeTimestamp = system.currentTick; } throw(player) { const xRot = this.mob.getProperty("ns_mvt:rot_x"); const yRot = 90 - this.mob.getProperty("ns_mvt:rot_y"); const dir = point.fromRotation(xRot, yRot).add(0, 0.2, 0); const xz = dir.flat().length(); player.getComp("minecraft:player").queueAnimation("animation.ninja_squirrel_mvt.spring", { controller: "mvt", nextState: "animation.ninja_squirrel_mvt.walk" }); player.applyKnockback(dir.x, dir.z, xz * 1.8, dir.y * 0.7); player.applyKnockback(dir.x, dir.z, xz * 1.8, dir.y * 0.7); this.playSfx("ns_mvt.spring"); } onInteract(player) { const form = new ActionFormData(); form.title("Spring"); const buttons = []; buttons.push("Set Rotation"); buttons.push("Pick Up"); for (const button of buttons){ form.button(button); } form.show(player).then((data)=>{ if (typeof data.selection != "number") return; if (!accessible(this.mob)) return; switch(buttons[data.selection]){ case "Pick Up": this.pickUp(); break; case "Set Rotation": this.setDirection(player); break; } }); } setDirection(player) { const form = new ModalFormData(); form.title("Set Rotation"); form.slider("X Rotation", 0, 90, 45, this.mob.getProperty("ns_mvt:rot_x")); form.slider("Y Rotation", 0, 360, 45, this.mob.getProperty("ns_mvt:rot_y")); form.show(player).then((data)=>{ if (!data.formValues) return; if (!accessible(this.mob)) return; const x = data.formValues[0]; const y = data.formValues[1]; this.mob.setProperty("ns_mvt:rot_x", x); this.mob.setProperty("ns_mvt:rot_y", y); }); } constructor(entity){ super(entity); this.activeTimestamp = 0; entity.teleport(entity.loc().grid(), { rotation: { x: 0, y: 0 } }); const nearbySprings = entity.dimension.getEntities({ type: "ns_mvt:spring", maxDistance: 0.5, location: entity.location }); if (nearbySprings.length > 1) { this.pickUp(); } } } export { spring as default }; PK eZX0Advanced Movement Add-on BP/texts/languages.json[ "en_US" ]PK eZ$)Advanced Movement Add-on RP/pack_icon.pngPNG  IHDRaIDATxc`6蓖«P0L|qr-EhpHI b r00>L3g/;uΒ` @jD ./m@kThȑÈ|(Q0Q=OIENDB`PK eZ00/Advanced Movement Add-on RP/animations/mvt.json{ "format_version": "1.8.0", "animations": { "animation.ninja_squirrel_mvt.spring.default": { "loop": true, "animation_length": 1, "bones": { "root2": { "position": [0, "v.rot_x * -8 / 90", 0] }, "root": { "rotation": ["v.rot_x", "v.rot_y - q.body_y_rotation", 0], "position": [0, "v.rot_x * 6 / 90", 0] } } }, "animation.ninja_squirrel_mvt.platform.default": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [0, "-q.body_y_rotation", 0] } } }, "animation.ninja_squirrel_mvt.spring.active": { "loop": "hold_on_last_frame", "animation_length": 1, "bones": { "spring": { "scale": { "0.0": [1, 1, 1], "0.0833": [1, 4, 1], "0.5": [1, 4, 1], "1.0": [1, 1, 1] } }, "spring_head": { "position": { "0.0": [0, 0, 0], "0.0833": [0, 11, 0], "0.5": [0, 11, 0], "1.0": [0, 0, 0] } } } }, "animation.ninja_squirrel_mvt.cannon.default": { "loop": true, "animation_length": 1, "bones": { "body": { "rotation": ["v.rot_x", "v.rot_y - q.body_y_rotation", 0] } } }, "animation.ninja_squirrel_mvt.rocket.default": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": ["v.rot_x", "q.property('ns_mvt:old') ? 0 : (query.has_rider ? (-q.body_y_rotation + q.rider_body_y_rotation(0)) : 0)", 0], "position": ["q.property('ns_mvt:old') ? 0 : (query.has_rider ? 0 : 0)", "-v.rot_x/7", "q.property('ns_mvt:old') ? 0 : (query.has_rider ? 0 : 0)"] }, "body": { "position": [0, "q.property('ns_mvt:old') ? 0 : (query.has_rider ? 3 : 0)", "q.property('ns_mvt:old') ? 0 : (query.has_rider ? -4 : 0)"] } } }, "animation.ninja_squirrel_mvt.tutorial.static": { "loop": true, "bones": { "root": { "rotation": [0, 0, 0] } } }, "animation.ninja_squirrel_mvt.tutorial.recipe1": { "loop": "hold_on_last_frame", "animation_length": 2, "bones": { "recipe1": { "rotation": { "0.0": [0, 0, 0], "0.0833": [4.1898, 0, 0], "0.1667": [9.92264, 0, 0], "0.25": [16.03795, 0, 0], "0.3333": [22.34164, 0, 0], "0.8333": [61.24628, 0, 0], "0.9167": [67.65836, 0, 0], "1.0": [73.96205, 0, 0], "1.0833": [80.07736, 0, 0], "1.1667": [85.8102, 0, 0], "1.25": [90, 0, 0], "2.0": [90, 0, 0] }, "scale": { "1.0": [1, 1, 1], "1.0833": [1.04555, 1, 1.04555], "1.75": [1.61968, 1, 1.61968], "1.9167": [1.75445, 1, 1.75445], "2.0": [1.8, 1, 1.8] } }, "root5": { "rotation": [0, 30, 0], "position": [34, 64, 0] } } }, "animation.ninja_squirrel_mvt.cannon.shoot": { "animation_length": 3, "bones": { "body": { "scale": { "0.0": [1, 1, 1], "1.0417": [1, "(math.sin(q.anim_time*5000)/45)+0.65", 1], "1.3333": [1, "(math.sin(1/(0.28+(-1+q.anim_time)*0.5)*200)/1.5)+1.1", 1], "1.5": [1, "(math.sin(1/(0.28+(-1+q.anim_time)*0.5)*200)/3)+1.1", 1], "1.5833": [1, "(((math.sin(180+(-1+q.anim_time)*720))/(5+math.pow((-0.8+q.anim_time),7)))/1.3)+1", 1] } } }, "particle_effects": { "1.0833": { "effect": "cannon", "locator": "smoke" } } }, "animation.ninja_squirrel_mvt.tutorial.recipe1_loop": { "loop": true, "animation_length": 12, "bones": { "r1": { "scale": { "0.0": [1, 1, 1], "2.75": [1, 1, 1], "3.0": [0, 0, 0], "5.75": [0, 0, 0], "6.0": [0, 0, 0], "8.75": [0, 0, 0], "9.0": [0, 0, 0], "11.75": [0, 0, 0], "12.0": [1, 1, 1] } }, "r2": { "scale": { "0.0": [0, 0, 0], "2.75": [0, 0, 0], "3.0": [1, 1, 1], "5.75": [1, 1, 1], "6.0": [0, 0, 0], "8.75": [0, 0, 0], "9.0": [0, 0, 0], "11.75": [0, 0, 0], "12.0": [0, 0, 0] } }, "r3": { "scale": { "0.0": [0, 0, 0], "2.75": [0, 0, 0], "3.0": [0, 0, 0], "5.75": [0, 0, 0], "6.0": [1, 1, 1], "8.75": [1, 1, 1], "9.0": [0, 0, 0], "11.75": [0, 0, 0], "12.0": [0, 0, 0] } }, "r4": { "scale": { "0.0": [0, 0, 0], "2.75": [0, 0, 0], "3.0": [0, 0, 0], "5.75": [0, 0, 0], "6.0": [0, 0, 0], "8.75": [0, 0, 0], "9.0": [1, 1, 1], "11.75": [1, 1, 1], "12.0": [0, 0, 0] } }, "r0": { "rotation": { "2.75": [0, 0, 0], "3.0": [0, 360, 0], "5.75": [0, 360, 0], "6.0": [0, "360*2", 0], "8.75": [0, "360*2", 0], "9.0": [0, "360*3", 0], "11.75": [0, "360*3", 0], "12.0": [0, "360*4", 0] } } } }, "animation.ninja_squirrel_mvt.prop.rot": { "loop": true, "animation_length": 2, "bones": { "root": { "rotation": [0, 0, 0] } } }, "animation.ninja_squirrel_mvt.prop1.rot": { "loop": true, "animation_length": 2, "bones": { "root": { "rotation": [0, 0, 0] } } }, "animation.ninja_squirrel_mvt.tutorial.recipe2": { "loop": "hold_on_last_frame", "animation_length": 2, "bones": { "recipe2": { "rotation": { "0.0": [0, 0, 0], "0.0833": [4.1898, 0, 0], "0.1667": [9.92264, 0, 0], "0.25": [16.03795, 0, 0], "0.3333": [22.34164, 0, 0], "0.8333": [61.24628, 0, 0], "0.9167": [67.65836, 0, 0], "1.0": [73.96205, 0, 0], "1.0833": [80.07736, 0, 0], "1.1667": [85.8102, 0, 0], "1.25": [90, 0, 0], "2.0": [90, 0, 0] }, "scale": { "1.0": [1, 1, 1], "1.0833": [1.04555, 1, 1.04555], "1.75": [1.61968, 1, 1.61968], "1.9167": [1.75445, 1, 1.75445], "2.0": [1.8, 1, 1.8] } }, "root5": { "rotation": [0, 30, 0], "position": [-34, 64, 0] } } } } }PK eZ>KK2Advanced Movement Add-on RP/animations/player.json{ "format_version": "1.8.0", "animations": { "animation.ninja_squirrel_mvt.cancel_walk": { "blend_weight": "v.is_first_person ? 0 : 1", "loop": true, "bones": { "leftarm": { "rotation": [ "-variable.tcos0", 0, 0 ]}, "leftleg": { "rotation": [ "-variable.tcos0 * -1.4", 0.1, 0.1 ]}, "rightarm": { "rotation": [ "variable.tcos0", 0, 0 ]}, "rightleg": { "rotation": [ "-variable.tcos0 * 1.4", -0.1, -0.1 ]} } }, "animation.ninja_squirrel_mvt.bob": { "loop": true, "bones": { "leftarm": { "rotation": [ 0, 0, "-((math.cos(query.life_time * 103.2) * 2.865) + 2.865)" ]}, "rightarm": { "rotation": [ 0, 0, "(math.cos(query.life_time * 103.2) * 2.865) + 2.865" ]} } }, "animation.ninja_squirrel_mvt.double_jump": { "animation_length": 0.6, "anim_time_update": "v.can_walk = q.anim_time ? (v.can_walk??0) : 0;return q.anim_time + q.delta_time * 1.7;", "bones": { "body": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ 20, 0, 0 ], "0.15": [ 0, 0, 0 ], "0.3": [ 12.5, 0, 0 ], "0.37": [ 12.5, 0, 0 ], "0.54": [ 10, 0, 0 ], "0.7": [ 12.5, 0, 0 ], "0.8": [ 0, 0, 0 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, -5, -1.8 ], "0.15": [ 0, 0, 0 ], "0.3": [ 0, -9.45, -2.7 ], "0.37": [ 0, -10.7, 0.3 ], "0.54": [ 0, -10.25, -1.7 ], "0.61": [ 0, -7.5, -2.2 ], "0.7": [ 0, -0.75, -2.7 ], "0.8": [ 0, 0, 0 ] } }, "rightArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, 0, 28 ], "0.12": [ 0, 0, 40.3 ], "0.26": [ -93.26206, -39.95426, 72.09615 ], "0.46": [ -93.26206, -39.95426, 72.09615 ], "0.61": [ -70.66206, -39.95426, 72.09615 ], "0.76": [ 0, 0, 0 ] } }, "leftArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, 0, -28 ], "0.12": [ 0, 0, -40.3 ], "0.26": [ -93.26206, 39.95426, -72.09615 ], "0.46": [ -93.26206, 39.95426, -72.09615 ], "0.61": [ -70.66206, 39.95426, -72.09615 ], "0.76": [ 0, 0, 0 ] } }, "root": { "rotation": { "0.03": [ 0, 0, 0 ], "0.15": [ 0, 0, 0 ], "0.34": [ 75, 0, 0 ], "0.58": [ 292.6, 0, 0 ], "0.74": [ 360, 0, 0 ], "0.78": { "pre": [ 360, 0, 0 ], "post": [ 0, 0, 0 ]} }, "position": { "0.03": [ 0, 0, 0 ], "0.15": [ 0, 0, 0 ], "0.37": [ 0, 8.5, 0 ], "0.74": [ 0, 0, 0 ]} }, "leftLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ -17.5, 0, 0 ], "0.15": [ -13.5, 0, 0 ], "0.26": [ -41, 0, 0 ], "0.46": [ 0, 0, 0 ], "0.58": [ -17.35932, -2.24944, -7.15656 ], "0.65": [ -14.48678, -0.62576, -2.42047 ], "0.76": [ 0, 0, 0 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, -1.9, 2 ], "0.15": [ 0, 3.5, -2.5 ], "0.26": [ 0, -5.5, -2.75 ], "0.37": [ 0, -4.5, -2.57 ], "0.46": [ 0, 0, -2 ], "0.54": [ 0, -9.5, 0 ], "0.65": [ 0, -3, 0 ], "0.76": [ 0, 0, 0 ] } }, "rightLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ -5.5, 0, 0 ], "0.12": [ -5.5, 0, 0 ], "0.26": [ 35, 0, 0 ], "0.46": [ 0, 0, 0 ], "0.54": [ -11.62348, 1.00986, 4.89721 ], "0.58": [ -17.43745, 1.50179, 4.76968 ], "0.65": [ -14.48678, 0.62576, 2.42047 ], "0.76": [ 0, 0, 0 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, -1.25, 1 ], "0.15": [ 0, 0.34, -0.34 ], "0.26": [ 0, -5, -5 ], "0.34": [ 0, -2, -4.5 ], "0.42": [ 0, -4, -3 ], "0.46": [ 0, -0.17, -2 ], "0.54": [ 0, -9.5, 0 ], "0.65": [ 0, -3, 0 ], "0.76": [ 0, 0, 0 ] }, "scale": { "0.0": [ 1, 1, 1 ], "0.08": [ 1.1, 0.9, 1.1 ], "0.12": [ 0.9, 1.1, 0.9 ], "0.2": [ 1, 1, 1 ]} }, "head": { "rotation": { "0.0": [ 5, 0, 0 ], "0.12": [ 17.5, 0, 0 ], "0.2": [ 17.5, 0, 0 ], "0.58": [ 17.5, 0, 0 ], "0.8": [ 0, 0, 0 ] } } } }, "animation.ninja_squirrel_mvt.double_jump_tut": { "loop": "hold_on_last_frame", "animation_length": 1.94, "anim_time_update": "v.can_walk = q.anim_time ? (v.can_walk??0) : 0;return q.anim_time + q.delta_time * 1.7;", "bones": { "body": { "rotation": { "0.52": [ 0, 0, 0 ], "0.61": [ 0, 0, 0 ], "0.69": [ 20, 0, 0 ], "0.76": [ 0, 0, 0 ], "0.91": [ 12.5, 0, 0 ], "0.98": [ 12.5, 0, 0 ], "1.15": [ 10, 0, 0 ], "1.31": [ 12.5, 0, 0 ], "1.61": [ 0, 0, 0 ] }, "position": { "0.52": [ 0, 0, 0 ], "0.61": [ 0, 0, 0 ], "0.69": [ 0, -5, -1.8 ], "0.76": [ 0, 0, 0 ], "0.91": [ 0, -9.45, -2.7 ], "0.98": [ 0, -10.7, 0.3 ], "1.15": [ 0, -10.25, -1.7 ], "1.22": [ 0, -10.5, -2.2 ], "1.31": [ 0, -8.75, -2.7 ], "1.61": [ 0, 0, 0 ] } }, "rightArm": { "rotation": { "0.52": [ 0, 0, 0 ], "0.61": [ 0, 0, 0 ], "0.69": [ 0, 0, 28 ], "0.73": [ 0, 0, 40.3 ], "0.87": [ -93.26206, -39.95426, 72.09615 ], "1.07": [ -93.26206, -39.95426, 72.09615 ], "1.22": [ -70.66206, -39.95426, 72.09615 ], "1.37": [ 0, 0, 0 ] } }, "leftArm": { "rotation": { "0.52": [ 0, 0, 0 ], "0.61": [ 0, 0, 0 ], "0.69": [ 0, 0, -28 ], "0.73": [ 0, 0, -40.3 ], "0.87": [ -93.26206, 39.95426, -72.09615 ], "1.07": [ -93.26206, 39.95426, -72.09615 ], "1.22": [ -70.66206, 39.95426, -72.09615 ], "1.37": [ 0, 0, 0 ] } }, "root": { "rotation": { "0.52": [ 0, 0, 0 ], "0.64": [ 0, 0, 0 ], "0.76": [ 0, 0, 0 ], "0.95": [ 75, 0, 0 ], "1.19": [ 292.6, 0, 0 ], "1.35": [ 360, 0, 0 ], "1.39": { "pre": [ 360, 0, 0 ], "post": [ 0, 0, 0 ]} }, "position": { "0.52": [ 0, 0, 0 ], "0.64": [ 0, 0, 0 ], "0.76": [ 0, 0, 0 ], "0.98": [ 0, 8.5, 0 ], "1.35": [ 0, 0, 0 ] } }, "leftLeg": { "rotation": { "0.52": [ 0, 0, 0 ], "0.61": [ 0, 0, 0 ], "0.69": [ -32.5, 0, 0 ], "0.76": [ -41, 0, 0 ], "0.87": [ -41, 0, 0 ], "1.07": [ 0, 0, 0 ], "1.19": [ -15, 0, 0 ], "1.61": [ 0, 0, 0 ] }, "position": { "0.52": [ 0, 0, 0 ], "0.61": [ 0, 0, 0 ], "0.69": [ 0, -1.9, 2 ], "0.76": [ 0, 3.5, -2.5 ], "0.87": [ 0, -5.5, -2.75 ], "0.98": [ 0, -4.5, -2.57 ], "1.07": [ 0, 0, -2 ], "1.15": [ 0, -9.5, 0 ], "1.26": [ 0, -7.5, 0 ], "1.37": [ 0, -8.17, 0 ], "1.61": [ 0, 0, 0 ] } }, "rightLeg": { "rotation": { "0.52": [ 0, 0, 0 ], "0.61": [ 0, 0, 0 ], "0.69": [ -5.5, 0, 0 ], "0.73": [ -5.5, 0, 0 ], "0.87": [ 35, 0, 0 ], "1.07": [ 0, 0, 0 ], "1.19": [ -17.5, 0, 0 ], "1.26": [ -14.5, 0, 0 ], "1.37": [ 0, 0, 0 ] }, "position": { "0.52": [ 0, 0, 0 ], "0.61": [ 0, 0, 0 ], "0.69": [ 0, -1.25, 1 ], "0.76": [ 0, 0.34, -0.34 ], "0.87": [ 0, -5, -5 ], "0.95": [ 0, -2, -4.5 ], "1.03": [ 0, -4, -3 ], "1.07": [ 0, -0.17, -2 ], "1.15": [ 0, -9.5, 0 ], "1.26": [ 0, -8, 0 ], "1.37": [ 0, 0, 0 ] }, "scale": { "0.52": [ 1, 1, 1 ], "0.61": [ 1, 1, 1 ], "0.69": [ 1.1, 0.9, 1.1 ], "0.73": [ 0.9, 1.1, 0.9 ], "0.81": [ 1, 1, 1 ] } }, "head": { "rotation": { "0.52": [ 0, 0, 0 ], "0.61": [ 5, 0, 0 ], "0.73": [ 17.5, 0, 0 ], "0.81": [ 17.5, 0, 0 ], "1.19": [ 17.5, 0, 0 ], "1.61": [ 0, 0, 0 ] } }, "root6": { "position": { "0.0": [ 0, 40, 0 ], "0.13": [ 0, 40.01619, 0 ], "0.26": [ 0, 40.03331, 0 ], "0.39": [ 0, 40.03963, 0 ], "0.52": [ 0, 40.0288, 0 ], "0.63": [ 0, 40, 0 ], "0.64": [ 0, 39.97975, 0 ], "0.65": [ 0, 39.93061, 0 ], "0.66": [ 0, 39.85579, 0 ], "0.67": [ 0, 39.75804, 0 ], "0.68": [ 0, 39.63971, 0 ], "0.69": [ 0, 39.50324, 0 ], "0.7": [ 0, 39.3497, 0 ], "0.71": [ 0, 39.18056, 0 ], "0.72": [ 0, 38.99732, 0 ], "0.73": [ 0, 38.80096, 0 ], "0.74": [ 0, 38.59233, 0 ], "0.75": [ 0, 38.37221, 0 ], "0.76": [ 0, 38.1413, 0 ], "0.8": [ 0, 37.12129, 0 ], "0.84": [ 0, 35.96871, 0 ], "0.89": [ 0, 34.37153, 0 ], "0.94": [ 0, 32.62495, 0 ], "1.0": [ 0, 30.3558, 0 ], "1.06": [ 0, 27.91288, 0 ], "1.12": [ 0, 25.30378, 0 ], "1.18": [ 0, 22.52634, 0 ], "1.23": [ 0, 20.07444, 0 ], "1.28": [ 0, 17.48182, 0 ], "1.32": [ 0, 15.28796, 0 ], "1.36": [ 0, 12.96204, 0 ], "1.37": [ 0, 12.35517, 0 ], "1.38": [ 0, 11.73675, 0 ], "1.39": [ 0, 11.10532, 0 ], "1.4": [ 0, 10.45948, 0 ], "1.41": [ 0, 9.79742, 0 ], "1.42": [ 0, 9.11723, 0 ], "1.43": [ 0, 8.41585, 0 ], "1.44": [ 0, 7.68932, 0 ], "1.45": [ 0, 6.93246, 0 ], "1.46": [ 0, 6.13831, 0 ], "1.47": [ 0, 5.29512, 0 ], "1.48": [ 0, 4.38428, 0 ], "1.49": [ 0, 3.36836, 0 ], "1.5": [ 0, 2.15392, 0 ], "1.51": [ 0, 0, 0 ] } } } }, "animation.ninja_squirrel_mvt.flip": { "loop": false, "animation_length": 0.6, "anim_time_update": "v.can_walk = q.anim_time ? (v.can_walk??0) : 0; return q.anim_time + q.delta_time * 1.7;", "bones": { "body": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ 20, 0, 0 ], "0.15": [ 0, 0, 0 ], "0.3": [ 12.5, 0, 0 ], "0.37": [ 12.5, 0, 0 ], "0.54": [ 10, 0, 0 ], "0.7": [ 12.5, 0, 0 ], "0.8": [ 0, 0, 0 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, -5, -1.8 ], "0.15": [ 0, 0, 0 ], "0.3": [ 0, -9.45, -2.7 ], "0.37": [ 0, -10.7, 0.3 ], "0.54": [ 0, -10.25, -1.7 ], "0.61": [ 0, -7.5, -2.2 ], "0.7": [ 0, -0.75, -2.7 ], "0.8": [ 0, 0, 0 ] } }, "rightArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, 0, 28 ], "0.12": [ 0, 0, 40.3 ], "0.26": [ -93.26206, -39.95426, 72.09615 ], "0.46": [ -93.26206, -39.95426, 72.09615 ], "0.61": [ -70.66206, -39.95426, 72.09615 ], "0.76": [ 0, 0, 0 ] } }, "leftArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, 0, -28 ], "0.12": [ 0, 0, -40.3 ], "0.26": [ -93.26206, 39.95426, -72.09615 ], "0.46": [ -93.26206, 39.95426, -72.09615 ], "0.61": [ -70.66206, 39.95426, -72.09615 ], "0.76": [ 0, 0, 0 ] } }, "root": { "rotation": { "0.03": [ 0, 0, 0 ], "0.15": [ 0, 0, 0 ], "0.34": [ 75, 0, 0 ], "0.58": [ 292.6, 0, 0 ], "0.74": [ 360, 0, 0 ], "0.78": { "pre": [ 360, 0, 0 ], "post": [ 0, 0, 0 ]} }, "position": { "0.03": [ 0, 0, 0 ], "0.15": [ 0, 0, 0 ], "0.37": [ 0, 8.5, 0 ], "0.74": [ 0, 0, 0 ]} }, "leftLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ -17.5, 0, 0 ], "0.15": [ -13.5, 0, 0 ], "0.26": [ -41, 0, 0 ], "0.46": [ 0, 0, 0 ], "0.58": [ -17.35932, -2.24944, -7.15656 ], "0.65": [ -14.48678, -0.62576, -2.42047 ], "0.76": [ 0, 0, 0 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, -1.9, 2 ], "0.15": [ 0, 3.5, -2.5 ], "0.26": [ 0, -5.5, -2.75 ], "0.37": [ 0, -4.5, -2.57 ], "0.46": [ 0, 0, -2 ], "0.54": [ 0, -9.5, 0 ], "0.65": [ 0, -3, 0 ], "0.76": [ 0, 0, 0 ] } }, "rightLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.08": [ -5.5, 0, 0 ], "0.12": [ -5.5, 0, 0 ], "0.26": [ 35, 0, 0 ], "0.46": [ 0, 0, 0 ], "0.54": [ -11.62348, 1.00986, 4.89721 ], "0.58": [ -17.43745, 1.50179, 4.76968 ], "0.65": [ -14.48678, 0.62576, 2.42047 ], "0.76": [ 0, 0, 0 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.08": [ 0, -1.25, 1 ], "0.15": [ 0, 0.34, -0.34 ], "0.26": [ 0, -5, -5 ], "0.34": [ 0, -2, -4.5 ], "0.42": [ 0, -4, -3 ], "0.46": [ 0, -0.17, -2 ], "0.54": [ 0, -9.5, 0 ], "0.65": [ 0, -3, 0 ], "0.76": [ 0, 0, 0 ] }, "scale": { "0.0": [ 1, 1, 1 ], "0.08": [ 1.1, 0.9, 1.1 ], "0.12": [ 0.9, 1.1, 0.9 ], "0.2": [ 1, 1, 1 ]} }, "head": { "rotation": { "0.0": [ 5, 0, 0 ], "0.12": [ 17.5, 0, 0 ], "0.2": [ 17.5, 0, 0 ], "0.58": [ 17.5, 0, 0 ], "0.8": [ 0, 0, 0 ] } } } }, "animation.ninja_squirrel_mvt.spring": { "animation_length": 0.75, "anim_time_update": "q.anim_time + q.delta_time * 1.4", "bones": { "head": { "rotation": { "0.0": [ 5, "math.sin(q.anim_time*360*0.5*0.7)*360", 0 ], "0.12": [ -17.5, "math.sin(q.anim_time*360*0.5*0.7)*360", 0 ], "0.32": [ -2.5, "math.sin(q.anim_time*360*0.5*0.7)*360", 0 ], "0.7": [ 0, "math.sin(q.anim_time*360*0.5*0.7)*360", 0 ] } }, "rightArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.31": [ 0, 0, 84 ], "0.46": [ 0, 0, 64.4 ], "0.7": [ 0, 0, 0 ]} }, "leftArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.31": [ 0, 0, -84 ], "0.46": [ 0, 0, -64.4 ], "0.7": [ 0, 0, 0 ]} }, "leftLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.3": [ 0, -10, -50 ], "0.45": [ 0, -8, -45 ], "0.7": [ 0, 0, 0 ]} }, "rightLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.3": [ 9, -10, 50 ], "0.45": [ 9, -8, 45 ], "0.7": [ 0, 0, 0 ]} }, "root": { "rotation": [ 0, "math.sin(q.anim_time*360*0.5*0.7)*360", 0 ]} } }, "animation.ninja_squirrel_mvt.spring_reverse": { "animation_length": 0.75, "anim_time_update": "q.anim_time + q.delta_time * 1.4", "bones": { "head": { "rotation": { "0.0": [ 5, "-math.sin(q.anim_time*360*0.5*0.7)*360", 0 ], "0.12": [ -17.5, "-math.sin(q.anim_time*360*0.5*0.7)*360", 0 ], "0.32": [ -2.5, "-math.sin(q.anim_time*360*0.5*0.7)*360", 0 ], "0.7": [ 0, "-math.sin(q.anim_time*360*0.5*0.7)*360", 0 ] } }, "rightArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.31": [ 0, 0, 84 ], "0.46": [ 0, 0, 64.4 ], "0.7": [ 0, 0, 0 ]} }, "leftArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.31": [ 0, 0, -84 ], "0.46": [ 0, 0, -64.4 ], "0.7": [ 0, 0, 0 ]} }, "leftLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.3": [ 0, -10, -50 ], "0.45": [ 0, -8, -45 ], "0.7": [ 0, 0, 0 ]} }, "rightLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.3": [ 9, -10, 50 ], "0.45": [ 9, -8, 45 ], "0.7": [ 0, 0, 0 ]} }, "root": { "rotation": [ 0, "-math.sin(q.anim_time*360*0.5*0.7)*360", 0 ]} } }, "animation.ninja_squirrel_mvt.jump": { "animation_length": 0.6, "anim_time_update": "q.anim_time + q.delta_time * 1.4", "bones": { "head": { "rotation": { "0.0": [ 5, 0, 0 ], "0.12": [ 17.5, 0, 0 ], "0.32": [ -2.5, 0, 0 ], "0.52": [ 0, 0, 0 ]}}, "rightArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 0, 0, 182 ], "0.21": [ 0, 0, 66.3 ], "0.31": [ 0, 0, 24 ], "0.46": [ 0, 0, 14.4 ], "0.62": [ 0, 0, 7 ], "0.7": [ 0, 0, 0 ] } }, "leftArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 0, 0, -182 ], "0.21": [ 0, 0, -66.3 ], "0.31": [ 0, 0, -24 ], "0.46": [ 0, 0, -14.4 ], "0.62": [ 0, 0, -7 ], "0.7": [ 0, 0, 0 ] } }, "body": { "rotation": { "0.0": [ 0, 0, 0 ], "0.2": [ 90, 0, 0 ], "0.65": [ 80, 0, 0 ], "0.7": [ 0, 0, 0 ]}, "position": { "0.0": [ 0, 0, 0 ], "0.2": [ 0, -8, -15 ], "0.65": [ 0, -8, -15 ], "0.7": [ 0, 0, 0 ]} }, "leftLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 77.5, 36, -4 ], "0.3": [ 84.86, 3.55, -7 ], "0.54": [ 104.5, 2, -15 ], "0.62": [ 74.5, 0, -10 ], "0.7": [ 0, 0, 0 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.17": [ 0, 2, -1 ], "0.2": [ 0, 4, -3 ], "0.3": [ 0, 3.6, -3 ], "0.59": [ 0, 2, -3 ], "0.66": [ 0, 1.5, -3 ], "0.7": [ 0, 0, 0 ] } }, "rightLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 77.5, -36, 4 ], "0.3": [ 84.86, -3.55, 7 ], "0.54": [ 104.5, -2, 15 ], "0.62": [ 74.5, 0, 10 ], "0.7": [ 0, 0, 0 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.17": [ 0, 2, -1 ], "0.2": [ 0, 4, -3 ], "0.3": [ 0, 3.6, -3 ], "0.59": [ 0, 2, -3 ], "0.66": [ 0, 1.5, -3 ], "0.7": [ 0, 0, 0 ] } } } }, "animation.ninja_squirrel_mvt.jump2": { "loop": "hold_on_last_frame", "animation_length": 0.8, "anim_time_update": "q.anim_time + q.delta_time * 1.4", "bones": { "head": { "rotation": { "0.0": [ 5, 0, 0 ], "0.12": [ 17.5, 0, 0 ], "0.32": [ -2.5, 0, 0 ], "0.52": [ 0, 0, 0 ]}}, "rightArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 0, 0, 182 ], "0.21": [ 0, 0, 66.3 ], "0.31": [ 0, 0, 24 ], "0.46": [ 0, 0, 14.4 ] } }, "leftArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 0, 0, -182 ], "0.21": [ 0, 0, -66.3 ], "0.31": [ 0, 0, -24 ], "0.46": [ 0, 0, -14.4 ] } }, "body": { "rotation": { "0.0": [ 0, 0, 0 ], "0.2": [ 90, 0, 0 ]}, "position": { "0.0": [ 0, 0, 0 ], "0.2": [ 0, -8, -15 ]} }, "leftLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 77.5, 36, -4 ], "0.3": [ 84.86, 3.55, -7 ], "0.54": [ 104.5, 2, -15 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.17": [ 0, 2, -1 ], "0.2": [ 0, 4, -3 ], "0.3": [ 0, 3.6, -3 ]} }, "rightLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 77.5, -36, 4 ], "0.3": [ 84.86, -3.55, 7 ], "0.54": [ 104.5, -2, 15 ] }, "position": { "0.0": [ 0, 0, 0 ], "0.17": [ 0, 2, -1 ], "0.2": [ 0, 4, -3 ], "0.3": [ 0, 3.6, -3 ]} } } }, "animation.ninja_squirrel_mvt.jump3": { "loop": "hold_on_last_frame", "animation_length": 0.8, "anim_time_update": "q.anim_time + q.delta_time * 1.4", "bones": { "head": { "rotation": { "0.0": [ 5, 0, 0 ], "0.12": [ 17.5, 0, 0 ], "0.32": [ -2.5, 0, 0 ], "0.52": [ 0, 0, 0 ]}}, "rightArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.31": [ 10, 0, 24 ], "0.46": [ 12, 0, 4.4 ]}}, "leftArm": { "rotation": { "0.0": [ 0, 0, 0 ], "0.31": [ 10, 0, -24 ], "0.46": [ 12, 0, -4.4 ]}}, "body": { "rotation": { "0.0": [ 0, 0, 0 ], "0.2": [ 90, 0, 0 ]}, "position": { "0.0": [ 0, 0, 0 ], "0.2": [ 0, -8, -15 ]} }, "leftLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 77.5, 36, -4 ], "0.54": [ 104.5, 2, -15 ]}, "position": { "0.0": [ 0, 0, 0 ], "0.17": [ 0, 2, -1 ], "0.2": [ 0, 4, -3 ]} }, "rightLeg": { "rotation": { "0.0": [ 0, 0, 0 ], "0.12": [ 77.5, -36, 4 ], "0.54": [ 104.5, -2, 15 ]}, "position": { "0.0": [ 0, 0, 0 ], "0.17": [ 0, 2, -1 ], "0.2": [ 0, 4, -3 ]} } } }, "animation.ninja_squirrel_mvt.can_walk_0": { "animation_length": 1, "anim_time_update": "v.can_walk = 0; return 1;" }, "animation.ninja_squirrel_mvt.can_walk_1": { "animation_length": 1, "anim_time_update": "v.can_walk = 1; return 1;" }, "animation.ninja_squirrel_mvt.walk": { "loop": true, "animation_length": 0.5, "anim_time_update": "v.walk_anim_time = v.walk_anim_time ?? 0; v.walk_anim_time = ((q.is_sprinting ? 0.8 : 0.7)*q.delta_time) + query.anim_time; (v.walk_anim_time > q.anim_time ? (return v.walk_anim_time;) : 0); v.walk_anim_time = v.walk_anim_time > 0.5 ? v.walk_anim_time-0.5 : v.walk_anim_time; return v.walk_anim_time;", "blend_weight": "v.is_first_person ? 0 : q.modified_move_speed*1.2", "bones": { "root": { "position": [ 0, "-0.5-math.cos(query.anim_time*720*2)*1.5", 0 ]}, "head": { "rotation": [ "math.sin(query.anim_time*720)*10", 0, 0 ]}, "leftArm": { "rotation": [ "math.sin(query.anim_time*700+10)*50 ", "math.sin(query.anim_time*700)*10", 0 ] }, "rightArm": { "rotation": [ "-math.sin(query.anim_time*720)*50", "math.sin(query.anim_time*720)*10 ", 0 ], "position": [ 0, "-math.cos(query.anim_time*1450)*0.5 ", 0 ], "scale": [ 1, "0.95+math.cos(query.anim_time*1450)*0.05", 1 ] }, "leftLeg": { "rotation": [ "-math.sin(query.anim_time*720)*50 ", 0, 0 ], "position": { "0.0": [ 0, 3.7, 0 ], "0.0417": [ 0, 3.3, 0 ], "0.0833": [ 0, 0.4, 0 ], "0.125": [ 0, -1.3, 0 ], "0.1667": [ 0, -2.3, 0 ], "0.2083": [ 0, -0.6, 0 ], "0.25": [ 0, 1.6, 0 ], "0.2917": [ 0, -0.3, 0 ], "0.3333": [ 0, -2.1, 0 ], "0.375": [ 0, -0.7, 0 ], "0.4167": [ 0, 1.1, 0 ], "0.4583": [ 0, 3.1, 0 ], "0.5": [ 0, 4.1, 0 ] } }, "rightLeg": { "rotation": [ "math.sin(query.anim_time*720)*50 ", 0, 0 ], "position": { "0.0": [ 0, 1.1, 0 ], "0.0417": [ 0, 0.1, 0 ], "0.0833": [ 0, -1.2, 0 ], "0.125": [ 0, -0.7, 0 ], "0.1667": [ 0, 1.1, 0 ], "0.2083": [ 0, 3.1, 0 ], "0.25": [ 0, 3.7, 0 ], "0.2917": [ 0, 3.3, 0 ], "0.3333": [ 0, 0.4, 0 ], "0.375": [ 0, -1.3, 0 ], "0.4167": [ 0, -1.7, 0 ], "0.4583": [ 0, -0.8, 0 ], "0.5": [ 0, 1, 0 ] } } } }, "animation.ninja_squirrel_mvt.rot_left": { "loop": true, "animation_length": 0.5, "anim_time_update": "v.can_walk = q.anim_time ? (v.can_walk??0) : 1; return ((q.is_sprinting ? 0.8 : 0.5)*q.delta_time)+q.anim_time;", "bones": { "root": { "rotation": [ 0, 0, -20 ], "position": [ 0, "-0.5-math.cos(query.anim_time*720*2)*1.5", 0 ]}, "head": { "rotation": [ "22.5+math.sin(query.anim_time*720)*5", 0, 0 ]}, "rightArm": { "rotation": [ "32.5-math.sin(query.anim_time*720)*20", "math.sin(query.anim_time*720)*10 ", 30 ], "position": [ 0, "-math.cos(query.anim_time*1450)*0.5 ", 0 ], "scale": [ 1, "0.95+math.cos(query.anim_time*1450)*0.05", 1 ] }, "leftArm": { "rotation": [ 54, -8, -73 ]}, "leftLeg": { "rotation": [ "math.sin(query.anim_time*720)*50 ", 0, 0 ], "position": { "0.0": [ 0, 1.1, 0 ], "0.0417": [ 0, 0.1, 0 ], "0.0833": [ 0, -1.2, 0 ], "0.125": [ 0, -0.7, 0 ], "0.1667": [ 0, 1.1, 0 ], "0.2083": [ 0, 3.1, 0 ], "0.25": [ 0, 3.7, 0 ], "0.2917": [ 0, 3.3, 0 ], "0.3333": [ 0, 0.4, 0 ], "0.375": [ 0, -1.3, 0 ], "0.4167": [ 0, -1.7, 0 ], "0.4583": [ 0, -0.8, 0 ], "0.5": [ 0, 1, 0 ] } }, "rightLeg": { "rotation": [ "-math.sin(query.anim_time*720)*50 ", 0, "-10+math.cos(query.anim_time*720*2)*10" ], "position": { "0.0": [ 0, 3.7, 0 ], "0.0417": [ 0, 3.3, 0 ], "0.0833": [ 0, 0.4, 0 ], "0.125": [ 0, -1.3, 0 ], "0.1667": [ 0, -2.3, 0 ], "0.2083": [ 0, -0.6, 0 ], "0.25": [ 0, 1.6, 0 ], "0.2917": [ 0, -0.3, 0 ], "0.3333": [ 0, -2.1, 0 ], "0.375": [ 0, -0.7, 0 ], "0.4167": [ 0, 1.1, 0 ], "0.4583": [ 0, 3.1, 0 ], "0.5": [ 0, 4.1, 0 ] } } } }, "animation.ninja_squirrel_mvt.rot_right": { "loop": true, "animation_length": 0.5, "anim_time_update": "v.can_walk = q.anim_time ? (v.can_walk??0) : 1; return ((q.is_sprinting ? 0.8 : 0.5)*q.delta_time)+q.anim_time;", "bones": { "root": { "rotation": [ 0, 0, 20 ], "position": [ 0, "-0.5-math.cos(query.anim_time*720*2)*1.5", 0 ]}, "head": { "rotation": [ "22.5+math.sin(query.anim_time*720)*5", 0, 0 ]}, "lrftArm": { "rotation": [ "32.5-math.sin(query.anim_time*720)*20", "math.sin(query.anim_time*720)*10 ", 30 ], "position": [ 0, "-math.cos(query.anim_time*1450)*0.5 ", 0 ], "scale": [ 1, "0.95+math.cos(query.anim_time*1450)*0.05", 1 ] }, "rightArm": { "rotation": [ 54, -8, 73 ]}, "rightLeg": { "rotation": [ "math.sin(query.anim_time*720)*50 ", 0, 0 ], "position": { "0.0": [ 0, 1.1, 0 ], "0.0417": [ 0, 0.1, 0 ], "0.0833": [ 0, -1.2, 0 ], "0.125": [ 0, -0.7, 0 ], "0.1667": [ 0, 1.1, 0 ], "0.2083": [ 0, 3.1, 0 ], "0.25": [ 0, 3.7, 0 ], "0.2917": [ 0, 3.3, 0 ], "0.3333": [ 0, 0.4, 0 ], "0.375": [ 0, -1.3, 0 ], "0.4167": [ 0, -1.7, 0 ], "0.4583": [ 0, -0.8, 0 ], "0.5": [ 0, 1, 0 ] } }, "leftLeg": { "rotation": [ "-math.sin(query.anim_time*720)*50 ", 0, "-10+math.cos(query.anim_time*720*2)*10" ], "position": { "0.0": [ 0, 3.7, 0 ], "0.0417": [ 0, 3.3, 0 ], "0.0833": [ 0, 0.4, 0 ], "0.125": [ 0, -1.3, 0 ], "0.1667": [ 0, -2.3, 0 ], "0.2083": [ 0, -0.6, 0 ], "0.25": [ 0, 1.6, 0 ], "0.2917": [ 0, -0.3, 0 ], "0.3333": [ 0, -2.1, 0 ], "0.375": [ 0, -0.7, 0 ], "0.4167": [ 0, 1.1, 0 ], "0.4583": [ 0, 3.1, 0 ], "0.5": [ 0, 4.1, 0 ] } }, "leftArm": { "rotation": [ "32.5-math.sin(query.anim_time*720)*20", "math.sin(query.anim_time*720)*10 ", -30 ], "position": [ 0, "-math.cos(query.anim_time*1450)*0.5 ", 0 ], "scale": [ 1, "0.95+math.cos(query.anim_time*1450)*0.05", 1 ] } } }, "animation.ninja_squirrel_mvt.blank": { "loop": true, "animation_length": 100 }, "animation.ninja_squirrel_mvt.climb": { "loop": true, "animation_length": 1, "bones": { "head": { "rotation": [ "math.sin(query.anim_time*360)*5 ", 0, 0 ]}, "leftArm": { "rotation": { "0.0": [ -110, 0, -10 ], "0.375": [ -148.5, 0, -10 ], "0.5": [ -137.5, 0, -10 ], "0.7917": [ -121.5, 0, -10 ], "1.0": [ -110, 0, -10 ] }, "position": { "0.0": [ 0, 0, 0.7 ], "0.5": [ 0, 2.3, 0.7 ], "0.75": [ 0, -1, 0 ], "1.0": [ 0, 0, 1 ]} }, "rightArm": { "rotation": { "0.0": [ -137.5, 0, 10 ], "0.2917": [ -121.5, 0, 10 ], "0.5": [ -110, 0, 10 ], "0.875": [ -149.5, 0, 10 ], "1.0": [ -137.5, 0, 10 ] }, "position": { "0.0": [ 0, 2.3, -0.7 ], "0.2917": [ 0, -1, 0 ], "0.5": [ 0, 0, -1 ], "0.875": [ 0, 2.3, -0.7 ], "1.0": [ 0, 2.3, -0.7 ] } }, "leftLeg": { "rotation": [ "-math.abs(math.sin(query.anim_time*180)*50)", 0, 0 ], "position": { "0.0": [ 0, 0, 0.7 ], "0.5": [ 0, 2.3, 0.7 ], "0.75": [ 0, -1, 0 ], "1.0": [ 0, 0, 1 ]} }, "rightLeg": { "rotation": [ "-math.abs(math.cos(query.anim_time*180)*50)", 0, 0 ], "position": { "0.0": [ 0, 2.3, -0.7 ], "0.2917": [ 0, -1, 0 ], "0.5": [ 0, 0, -1 ], "0.875": [ 0, 2.3, -0.7 ], "1.0": [ 0, 2.3, -0.7 ] } } } }, "animation.ninja_squirrel_mvt.hide": { "animation_length": 1, "loop": true, "bones": { "root": { "position": [ 0, -10000, 0 ]} } }, "animation.ninja_squirrel_mvt.ride_rocket.0": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 0, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.1": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 1, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.2": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 2, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.3": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 3, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.4": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 4, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.5": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 5, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.6": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 6, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.7": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 7, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.8": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 8, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.9": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 9, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.10": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 10, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.11": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 11, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.12": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 12, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.13": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 13, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.14": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 14, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.15": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 15, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.16": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 16, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.17": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 17, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.18": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 18, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.19": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 19, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.20": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 20, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.21": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 21, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.22": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 22, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.23": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 23, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.24": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 24, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.25": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 25, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.26": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 26, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.27": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 27, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.28": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 28, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.29": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 29, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.30": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 30, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.31": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 31, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.32": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 32, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.33": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 33, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.34": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 34, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.35": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 35, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.36": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 36, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.37": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 37, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.38": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 38, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.39": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 39, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.40": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 40, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.41": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 41, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.42": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 42, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.43": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 43, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.44": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 44, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.45": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 45, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.46": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 46, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.47": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 47, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.48": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 48, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.49": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 49, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.50": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 50, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.51": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 51, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.52": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 52, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.53": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 53, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.54": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 54, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.55": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 55, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.56": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 56, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.57": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 57, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.58": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 58, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.59": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 59, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.60": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 60, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.61": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 61, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.62": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 62, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.63": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 63, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.64": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 64, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.65": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 65, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.66": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 66, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.67": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 67, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.68": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 68, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.69": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 69, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.70": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 70, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.71": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 71, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.72": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 72, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.73": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 73, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.74": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 74, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.75": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 75, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.76": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 76, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.77": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 77, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.78": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 78, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.79": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 79, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.80": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 80, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.81": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 81, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.82": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 82, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.83": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 83, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.84": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 84, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.85": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 85, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.86": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 86, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.87": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 87, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.88": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 88, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.89": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 89, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.90": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 90, "q.target_y_rotation", 0 ], "position": [ 0, 0, 0 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.0.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 0, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.1.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 1, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.2.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 2, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.3.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 3, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.4.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 4, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.5.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 5, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.6.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 6, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.7.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 7, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.8.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 8, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.9.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 9, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.10.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 10, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.11.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 11, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.12.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 12, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.13.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 13, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.14.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 14, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.15.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 15, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.16.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 16, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.17.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 17, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.18.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 18, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.19.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 19, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.20.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 20, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.21.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 21, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.22.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 22, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.23.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 23, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.24.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 24, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.25.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 25, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.26.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 26, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.27.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 27, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.28.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 28, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.29.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 29, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.30.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 30, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.31.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 31, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.32.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 32, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.33.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 33, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.34.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 34, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.35.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 35, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.36.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 36, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.37.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 37, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.38.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 38, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.39.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 39, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.40.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 40, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.41.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 41, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.42.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 42, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.43.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 43, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.44.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 44, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.45.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 45, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.46.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 46, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.47.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 47, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.48.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 48, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.49.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 49, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.50.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 50, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.51.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 51, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.52.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 52, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.53.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 53, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.54.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 54, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.55.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 55, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.56.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 56, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.57.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 57, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.58.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 58, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.59.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 59, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.60.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 60, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.61.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 61, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.62.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 62, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.63.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 63, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.64.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 64, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.65.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 65, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.66.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 66, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.67.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 67, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.68.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 68, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.69.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 69, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.70.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 70, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.71.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 71, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.72.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 72, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.73.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 73, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.74.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 74, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.75.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 75, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.76.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 76, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.77.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 77, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.78.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 78, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.79.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 79, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.80.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 80, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.81.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 81, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.82.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 82, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.83.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 83, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.84.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 84, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.85.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 85, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.86.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 86, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.87.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 87, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.88.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 88, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.89.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 89, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}}, "animation.ninja_squirrel_mvt.ride_rocket.90.old": { "loop": true, "animation_length": 1, "bones": { "root": { "rotation": [ 90, 0, 0 ], "position": [ 0, 0, 10 ]}, "rightArm": { "rotation": [ -45, 0, 0 ]}, "leftLeg": {"rotation": [-20,0,-20]}, "rightLeg": {"rotation": [-20,0,20]}, "leftArm": { "rotation": [ -45, 0, 0 ]}}} } }PK eZVJ:Advanced Movement Add-on RP/animation_controllers/mvt.json{ "format_version": "1.10.0", "animation_controllers": { "controller.animation.ninja_squirrel_mvt.tutorial": { "states": { "default": { "animations": [ "intro" ], "transitions": [ { "recipe1": "q.property('ns_mvt:type') == 1" }, { "recipe2": "q.property('ns_mvt:type') == 2" } ], "blend_transition": 0.25 }, "recipe1": { "animations": [ "recipe1", "recipe1_loop" ], "transitions": [ { "default": "q.property('ns_mvt:type') == 0" }, { "recipe2": "q.property('ns_mvt:type') == 2" } ], "blend_transition": 0.25 }, "recipe2": { "animations": [ "recipe2" ], "transitions": [ { "default": "q.property('ns_mvt:type') == 0" }, { "recipe1": "q.property('ns_mvt:type') == 1" } ], "blend_transition": 0.25 } } }, "controller.animation.ninja_squirrel_mvt.rocket": { "states": { "default": { "transitions": [{ "flying": "q.modified_move_speed > 0.02 || q.vertical_speed > 0.02" }]}, "flying": { "particle_effects": [{ "effect": "rocket", "locator": "locator" }], "transitions": [{ "default": "q.modified_move_speed < 0.02 && q.vertical_speed < 0.02" }] } } } } }PK eZÑ.Advanced Movement Add-on RP/entity/cannon.json{ "format_version": "1.10.0", "minecraft:client_entity": { "description": { "identifier": "ns_mvt:cannon", "materials": { "default": "entity_alphatest" }, "textures": { "default": "textures/ninja_squirrel/mvt/entity/cannon" }, "geometry": { "default": "geometry.ninja_squirrel_mvt.cannon" }, "scripts": { "animate": [ "default" ], "pre_animation": [ "v.rot_x = q.property('ns_mvt:rot_x');", "v.rot_y = q.property('ns_mvt:rot_y');" ] }, "particle_effects": { "cannon": "ns_mvt:cannon" }, "animations": { "default": "animation.ninja_squirrel_mvt.cannon.default" }, "render_controllers": [ "controller.render.ninja_squirrel_mvt.default" ], "spawn_egg": { "texture": "ninja_squirrel_mvt_cannon" } } } }PK eZ0Advanced Movement Add-on RP/entity/platform.json{ "format_version": "1.10.0", "minecraft:client_entity": { "description": { "identifier": "ns_mvt:platform", "materials": { "default": "entity_alphatest" }, "textures": { "default": "textures/ninja_squirrel/mvt/entity/platform" }, "geometry": { "default": "geometry.ninja_squirrel_mvt.platform" }, "animations": { "rot": "animation.ninja_squirrel_mvt.platform.default" }, "scripts": { "animate": [ "rot" ]}, "render_controllers": [ "controller.render.ninja_squirrel_mvt.default" ], "spawn_egg": { "texture": "ninja_squirrel_mvt_platform" } } } }PK eZ'bX.Advanced Movement Add-on RP/entity/rocket.json{ "format_version": "1.10.0", "minecraft:client_entity": { "description": { "identifier": "ns_mvt:rocket", "materials": { "default": "entity_alphatest" }, "textures": { "default": "textures/ninja_squirrel/mvt/entity/rocket" }, "geometry": { "default": "geometry.ninja_squirrel_mvt.rocket" }, "scripts": { "animate": [ "default", "ac" ], "pre_animation": [ "v.rot_x_cache = v.rot_x ?? q.property('ns_mvt:rot_x');", "v.rot_y_cache = v.rot_y ?? q.property('ns_mvt:rot_y');", "v.rot_x = q.property('ns_mvt:rot_x');", "v.rot_y = q.property('ns_mvt:rot_y');", "v.rot_x = math.lerp(v.rot_x_cache, v.rot_x, 0.05);", "v.rot_y = math.lerp(v.rot_y_cache, v.rot_y, 0.05);" ] }, "particle_effects": { "rocket": "ns_mvt:rocket" }, "sound_effects": { "rocket": "ns_mvt.rocketloop" }, "animations": { "default": "animation.ninja_squirrel_mvt.rocket.default", "ac": "controller.animation.ninja_squirrel_mvt.rocket" }, "render_controllers": [ "controller.render.ninja_squirrel_mvt.default" ], "spawn_egg": { "texture": "ninja_squirrel_mvt_platform" } } } }PK eZq~$88.Advanced Movement Add-on RP/entity/spring.json{ "format_version": "1.10.0", "minecraft:client_entity": { "description": { "identifier": "ns_mvt:spring", "materials": { "default": "entity_alphatest" }, "textures": { "default": "textures/ninja_squirrel/mvt/entity/spring" }, "geometry": { "default": "geometry.ninja_squirrel_mvt.spring" }, "animations": { "rot": "animation.ninja_squirrel_mvt.spring.default" }, "scripts": { "animate": [ "rot" ], "pre_animation": [ "v.rot_x = q.property('ns_mvt:rot_x');", "v.rot_y = q.property('ns_mvt:rot_y');" ] }, "render_controllers": [ "controller.render.ninja_squirrel_mvt.default" ], "spawn_egg": { "texture": "ninja_squirrel_mvt_spring" } } } }PK eZ*!0Advanced Movement Add-on RP/entity/tutorial.json{ "format_version": "1.10.0", "minecraft:client_entity": { "description": { "identifier": "ns_mvt:tutorial", "materials": { "default": "entity_alphatest" }, "geometry": { "default": "geometry.ninja_squirrel_mvt.tutorial" }, "textures": { "default": "textures/ninja_squirrel/mvt/entity/tutorial" }, "scripts": { "initialize": [ "variable.item_use_max = query.item_max_use_duration;", "variable.anim_time = 0;", "v.cancel = 0;" ], "animate": [ "static", "ac" ] }, "render_controllers": [ "controller.render.ninja_squirrel_mvt.attachable_default" ], "animations": { "ac": "controller.animation.ninja_squirrel_mvt.tutorial", "intro": "animation.ninja_squirrel_mvt.double_jump_tut", "static": "animation.ninja_squirrel_mvt.tutorial.static", "recipe1": "animation.ninja_squirrel_mvt.tutorial.recipe1", "recipe1_loop": "animation.ninja_squirrel_mvt.tutorial.recipe1_loop", "recipe2": "animation.ninja_squirrel_mvt.tutorial.recipe2" } } } }PK eZx3X9Advanced Movement Add-on RP/models/entity/cannon.geo.json{ "format_version": "1.12.0", "minecraft:geometry": [ { "description": { "identifier": "geometry.ninja_squirrel_mvt.cannon", "texture_width": 128, "texture_height": 128, "visible_bounds_width": 3, "visible_bounds_height": 2.5, "visible_bounds_offset": [0, 0.75, 0] }, "bones": [ { "name": "root", "pivot": [0, 2.5, 0], "cubes": [ {"origin": [-6, 0, -6], "size": [12, 3, 12], "uv": [0, 26]} ] }, { "name": "body", "parent": "root", "pivot": [0, 0.5, 0], "locators": { "smoke": [0, 22, 0] } }, { "name": "cannon", "parent": "body", "pivot": [0, 3, 0] }, { "name": "cannon_head", "parent": "body", "pivot": [0, 3, 0], "cubes": [ {"origin": [-5, 5.5, -5], "size": [10, 16, 10], "uv": [0, 0]}, {"origin": [-6, 18.6, -6], "size": [12, 3, 12], "inflate": -0.01, "uv": [40, 0]}, {"origin": [-7, 9, -1], "size": [14, 2, 2], "uv": [40, 15]}, {"origin": [-1.5, 7.5, 5], "size": [3, 3, 1], "uv": [40, 19]}, {"origin": [-0.5, 9, 6], "size": [1, 0, 2], "pivot": [0.5, 9, 6], "rotation": [-45, 0, 0], "uv": [7, 72]}, {"origin": [-0.5, 3.58579, 7.41321], "size": [1, 4, 0], "uv": [34, 65]}, {"origin": [-6, 3, -2], "size": [1, 7, 4], "uv": [48, 19]}, {"origin": [5, 3, -2], "size": [1, 7, 4], "uv": [40, 41]}, {"origin": [-4.999, 11.5, -5], "size": [0, 4, 10], "pivot": [-4.999, 15.5, 0], "rotation": [0, 0, 27.5], "uv": [20, 41]}, {"origin": [5, 11.5, -5], "size": [0, 4, 10], "pivot": [5, 15.5, 0], "rotation": [0, 0, -25], "uv": [0, 41]} ] } ] } ] }PK eZt~;Advanced Movement Add-on RP/models/entity/platform.geo.json{ "format_version": "1.12.0", "minecraft:geometry": [ { "description": { "identifier": "geometry.ninja_squirrel_mvt.platform", "texture_width": 128, "texture_height": 128, "visible_bounds_width": 3, "visible_bounds_height": 2.5, "visible_bounds_offset": [ 0, 0.75, 0 ] }, "bones": [ { "name": "root", "pivot": [ 0, 2, 0 ], "cubes": [ { "origin": [ -4, 0, -4 ], "size": [ 8, 3, 8 ], "inflate": -0.1, "uv": [ 0, 40 ]}, { "origin": [ -5, 0, -5 ], "size": [ 10, 2, 10 ], "inflate": 0.1, "uv": [ 0, 0 ]}, { "origin": [ -7, 0, 5 ], "size": [ 14, 3, 2 ], "uv": [ 40, 0 ]}, { "origin": [ -7, 0, -7 ], "size": [ 14, 3, 2 ], "uv": [ 40, 5 ]}, { "origin": [ 5, 0, -5 ], "size": [ 2, 3, 10 ], "uv": [ 32, 46 ]}, { "origin": [ -7, 0, -5 ], "size": [ 2, 3, 10 ], "uv": [ 0, 51 ]} ] } ] } ] }PK eZsۿ9Advanced Movement Add-on RP/models/entity/rocket.geo.json{ "format_version": "1.12.0", "minecraft:geometry": [ { "description": { "identifier": "geometry.ninja_squirrel_mvt.rocket", "texture_width": 128, "texture_height": 128, "visible_bounds_width": 3, "visible_bounds_height": 5, "visible_bounds_offset": [0, 0.5, 0] }, "bones": [ { "name": "root", "pivot": [0, 0, 0] }, { "name": "body", "parent": "root", "pivot": [0, 0, 0], "locators": { "locator": [0, 0, 0] } }, { "name": "rocket", "parent": "body", "pivot": [0, 2.5, 0], "cubes": [ {"origin": [-4, 2, -4], "size": [8, 3, 8], "uv": [40, 43]} ] }, { "name": "rocket_head", "parent": "body", "pivot": [0, 2.5, 0], "cubes": [ {"origin": [-5, 5, -5], "size": [10, 15, 10], "uv": [0, 0]}, {"origin": [-5, 10, -5], "size": [10, 15, 10], "inflate": -2, "uv": [0, 25]}, {"origin": [0, 0, -7], "size": [0, 11, 14], "uv": [40, 18]}, {"origin": [-7, 0, 0], "size": [14, 11, 0], "uv": [0, 50]}, {"origin": [-3, 12, -6], "size": [6, 6, 12], "inflate": 0.001, "uv": [40, 0]}, {"origin": [1.06725, 19.02374, -3], "size": [2, 4, 6], "inflate": -0.01, "pivot": [3.09331, 22.84282, 0], "rotation": [0, 0, -22.5], "uv": [14, 69]}, {"origin": [-3.22346, 18.23843, -3], "size": [2, 4, 6], "inflate": -0.01, "pivot": [-1.1974, 22.05751, 0], "rotation": [0, 0, 22.5], "uv": [33, 69]} ] } ] } ] }PK eZ@S29Advanced Movement Add-on RP/models/entity/spring.geo.json{ "format_version": "1.12.0", "minecraft:geometry": [ { "description": { "identifier": "geometry.ninja_squirrel_mvt.spring", "texture_width": 64, "texture_height": 64, "visible_bounds_width": 3, "visible_bounds_height": 2.5, "visible_bounds_offset": [0, 0.75, 0] }, "bones": [ { "name": "root", "pivot": [0, 0.5, 0] }, { "name": "root2", "parent": "root", "pivot": [0, 0.5, 0], "cubes": [ {"origin": [-6, 0, -6], "size": [12, 3, 12], "uv": [0, 19]} ] }, { "name": "spring", "parent": "root2", "pivot": [0, 3.5, 0], "cubes": [ {"origin": [-4, 3, -4], "size": [8, 5, 8], "uv": [0, 34]} ] }, { "name": "spring_head", "parent": "root2", "pivot": [0, 7, 0], "cubes": [ {"origin": [-8, 8, -8], "size": [16, 3, 16], "uv": [0, 0]} ] } ] } ] }PK eZ,Td**;Advanced Movement Add-on RP/models/entity/tutorial.geo.json{ "format_version": "1.12.0", "minecraft:geometry": [ { "description": { "identifier": "geometry.ninja_squirrel_mvt.tutorial", "texture_width": 256, "texture_height": 256, "visible_bounds_width": 12, "visible_bounds_height": 13, "visible_bounds_offset": [0, 0.5, 0] }, "bones": [ { "name": "root5", "pivot": [0, 0, 0] }, { "name": "recipe1", "parent": "root5", "pivot": [-30, -48.77778, 0] }, { "name": "r0", "parent": "recipe1", "pivot": [-30, -56, 0], "cubes": [ { "origin": [-38, -64, -8], "size": [16, 16, 16], "inflate": 0.05, "uv": { "north": {"uv": [16, 0], "uv_size": [16, 16]}, "east": {"uv": [32, 0], "uv_size": [16, 16]}, "south": {"uv": [32, 0], "uv_size": [16, 16]}, "west": {"uv": [32, 0], "uv_size": [16, 16]}, "up": {"uv": [48, 0], "uv_size": [16, 16]}, "down": {"uv": [64, 16], "uv_size": [-16, -16]} } } ] }, { "name": "r1", "parent": "recipe1", "pivot": [-30, -47.375, -0.14286], "cubes": [ { "origin": [-28, -47, -1], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, 7], "size": [2, -0.75, 2], "inflate": 2.05, "uv": { "up": {"uv": [32, 32], "uv_size": [16, 16]} } }, { "origin": [-34, -47, -1], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-34, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, -1], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 64], "uv_size": [16, 16]} } }, { "origin": [-28, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } } ] }, { "name": "r2", "parent": "recipe1", "pivot": [-30, -47.375, -0.14286], "cubes": [ { "origin": [-28, -47, -1], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, 7], "size": [2, -0.75, 2], "inflate": 2.05, "uv": { "up": {"uv": [16, 32], "uv_size": [16, 16]} } }, { "origin": [-34, -47, -1], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-34, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, -1], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [16, 48], "uv_size": [16, 16]} } }, { "origin": [-28, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } } ] }, { "name": "r3", "parent": "recipe1", "pivot": [-30, -47.375, 0.25], "cubes": [ { "origin": [-28, -47, -1], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [0, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, 7], "size": [2, -0.75, 2], "inflate": 2.05, "uv": { "up": {"uv": [48, 49], "uv_size": [16, 16]} } }, { "origin": [-34, -47, -1], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [0, 48], "uv_size": [16, 16]} } }, { "origin": [-34, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, -1], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [16, 48], "uv_size": [16, 16]} } }, { "origin": [-28, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, 2], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } } ] }, { "name": "r4", "parent": "recipe1", "pivot": [-30, -47.375, -0.25], "cubes": [ { "origin": [-31, -47, 7], "size": [2, -0.75, 2], "inflate": 2.05, "uv": { "up": {"uv": [48, 32], "uv_size": [16, 16]} } }, { "origin": [-34, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-28, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } }, { "origin": [-31, -47, -4], "size": [2, -0.75, 2], "inflate": 0.05, "uv": { "up": {"uv": [32, 48], "uv_size": [16, 16]} } } ] }, { "name": "recipe2", "parent": "root5", "pivot": [30, -48.6875, 0], "cubes": [ { "origin": [22, -64, -8], "size": [16, 16, 16], "inflate": 0.05, "uv": { "north": {"uv": [16, 0], "uv_size": [16, 16]}, "east": {"uv": [32, 0], "uv_size": [16, 16]}, "south": {"uv": [32, 0], "uv_size": [16, 16]}, "west": {"uv": [32, 0], "uv_size": [16, 16]}, "up": {"uv": [48, 0], "uv_size": [16, 16]}, "down": {"uv": [64, 16], "uv_size": [-16, -16]} } }, { "origin": [29, -47, 7], "size": [2, -0.75, 2], "inflate": 2.05, "uv": { "up": {"uv": [0, 64], "uv_size": [16, 16]} } }, { "origin": [26, -48, 2], "size": [2, 0.25, 2], "inflate": 0.05, "uv": { "up": {"uv": [16, 64], "uv_size": [16, 16]} } }, { "origin": [29, -48, -1], "size": [2, 0.25, 2], "inflate": 0.05, "uv": { "up": {"uv": [16, 64], "uv_size": [16, 16]} } }, { "origin": [26, -48, -1], "size": [2, 0.25, 2], "inflate": 0.05, "uv": { "up": {"uv": [16, 64], "uv_size": [16, 16]} } }, { "origin": [29, -48, 2], "size": [2, 0.25, 2], "inflate": 0.05, "uv": { "up": {"uv": [16, 64], "uv_size": [16, 16]} } } ] }, { "name": "root6", "parent": "root5", "pivot": [0, 0, 0] }, { "name": "head", "parent": "root6", "pivot": [0, 24, 0], "cubes": [ {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [80, 140]} ] }, { "name": "hat2", "parent": "head", "pivot": [0, 24, 0], "cubes": [ {"origin": [-4, 24, -4], "size": [8, 8, 8], "inflate": 0.5, "uv": [112, 140]} ] }, { "name": "root", "parent": "root6", "pivot": [0, 0, 0] }, { "name": "waist", "parent": "root", "pivot": [0, 12, 0] }, { "name": "body", "parent": "waist", "pivot": [0, 24, 0], "cubes": [ {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [96, 156]} ] }, { "name": "cape", "parent": "body", "pivot": [0, 24, 3] }, { "name": "leftArm", "parent": "body", "pivot": [5, 22, 0], "cubes": [ {"origin": [4, 12, -2], "size": [3, 12, 4], "uv": [112, 188]} ] }, { "name": "leftSleeve", "parent": "leftArm", "pivot": [5, 22, 0], "cubes": [ {"origin": [4, 12, -2], "size": [3, 12, 4], "inflate": 0.25, "uv": [128, 188]} ] }, { "name": "leftItem", "parent": "leftArm", "pivot": [6, 15, 1] }, { "name": "rightArm", "parent": "body", "pivot": [-5, 22, 0], "cubes": [ {"origin": [-7, 12, -2], "size": [3, 12, 4], "uv": [120, 156]} ] }, { "name": "rightSleeve", "parent": "rightArm", "pivot": [-5, 22, 0], "cubes": [ {"origin": [-7, 12, -2], "size": [3, 12, 4], "inflate": 0.25, "uv": [120, 172]} ] }, { "name": "rightItem", "parent": "rightArm", "pivot": [-6, 15, 1] }, { "name": "jacket", "parent": "body", "pivot": [0, 24, 0], "cubes": [ {"origin": [-4, 12, -2], "size": [8, 12, 4], "inflate": 0.25, "uv": [96, 172]} ] }, { "name": "leftLeg", "parent": "root", "pivot": [1.9, 12, 0], "cubes": [ {"origin": [-0.1, 0, -2], "size": [4, 12, 4], "uv": [96, 188]} ] }, { "name": "leftPants", "parent": "leftLeg", "pivot": [1.9, 12, 0], "cubes": [ {"origin": [-0.1, 0, -2], "size": [4, 12, 4], "inflate": 0.25, "uv": [80, 188]} ] }, { "name": "rightLeg", "parent": "root", "pivot": [-1.9, 12, 0], "cubes": [ {"origin": [-3.9, 0, -2], "size": [4, 12, 4], "uv": [80, 156]} ] }, { "name": "rightPants", "parent": "rightLeg", "pivot": [-1.9, 12, 0], "cubes": [ {"origin": [-3.9, 0, -2], "size": [4, 12, 4], "inflate": 0.25, "uv": [80, 172]} ] } ] } ] }PK eZT:Advanced Movement Add-on RP/particles/cannon.particle.json{ "format_version": "1.10.0", "particle_effect": { "description": { "identifier": "ns_mvt:cannon", "basic_render_parameters": { "material": "particles_alpha", "texture": "textures/ninja_squirrel/mvt/particle/particles" } }, "components": { "minecraft:emitter_rate_instant": { "num_particles": 15 }, "minecraft:emitter_lifetime_once": { "active_time": 1 }, "minecraft:emitter_shape_sphere": { "radius": 0.5, "direction": [ "math.random(-0.5,0.5)", -2, "math.random(-0.5,0.5)" ] }, "minecraft:particle_lifetime_expression": { "max_lifetime": "math.random(0.6,1.2)" }, "minecraft:particle_initial_spin": { "rotation_rate": "math.random(-80,80)" }, "minecraft:particle_initial_speed": "(v.particle_random_1*10)+5", "minecraft:particle_motion_dynamic": { "linear_drag_coefficient": 3, "rotation_acceleration": 1, "rotation_drag_coefficient": 1 }, "minecraft:particle_appearance_billboard": { "size": [ 0.5, 0.5 ], "facing_camera_mode": "rotate_xyz", "uv": { "texture_width": 16, "texture_height": 128, "flipbook": { "base_UV": [ 0, 0 ], "size_UV": [ 16, 16 ], "step_UV": [ 0, 16 ], "frames_per_second": 12, "max_frame": 8, "stretch_to_lifetime": true } } } } } }PK eZ8Advanced Movement Add-on RP/particles/dash.particle.json{ "format_version": "1.10.0", "particle_effect": { "description": { "identifier": "ns_mvt:dash", "basic_render_parameters": { "material": "particles_blend", "texture": "textures/ninja_squirrel/mvt/particle/particles" } }, "components": { "minecraft:emitter_rate_instant": { "num_particles": 15 }, "minecraft:emitter_lifetime_once": { "active_time": 1 }, "minecraft:emitter_shape_disc": { "offset": [ 0, "v.particle_random_2*0.5", 0 ], "radius": 0.1, "direction": [ "(v.particle_random_1-0.5)*2", 0, "(v.particle_random_2-0.5)*2" ] }, "minecraft:particle_lifetime_expression": { "max_lifetime": 0.7 }, "minecraft:particle_initial_spin": { "rotation": "math.random(0,360)", "rotation_rate": 100 }, "minecraft:particle_initial_speed": "math.random(1,4)", "minecraft:particle_motion_dynamic": { "linear_acceleration": [ 0, 10, 0 ], "linear_drag_coefficient": 4 }, "minecraft:particle_appearance_billboard": { "size": [ 0.5, 0.5 ], "facing_camera_mode": "rotate_xyz", "uv": { "texture_width": 16, "texture_height": 128, "flipbook": { "base_UV": [ 0, 0 ], "size_UV": [ 16, 16 ], "step_UV": [ 0, 16 ], "frames_per_second": 12, "max_frame": 8, "stretch_to_lifetime": true } } }, "minecraft:particle_appearance_tinting": { "color": { "interpolant": "v.particle_age/v.particle_lifetime", "gradient": { "0.0": "#FFFFFFFF", "0.56": "#8CC4C4C4", "1.0": "#00999999" } } } } } }PK eZւYY8Advanced Movement Add-on RP/particles/jump.particle.json{ "format_version": "1.10.0", "particle_effect": { "description": { "identifier": "ns_mvt:jump", "basic_render_parameters": { "material": "particles_blend", "texture": "textures/ninja_squirrel/mvt/particle/particles" } }, "components": { "minecraft:emitter_rate_instant": { "num_particles": 100 }, "minecraft:emitter_lifetime_once": { "active_time": 3 }, "minecraft:emitter_shape_disc": { "offset": [ 0, "v.particle_random_1*0.5", 0 ], "radius": 0.3, "direction": [ "(v.particle_random_1-0.5)*2", -0.6, "(v.particle_random_2-0.5)*2" ] }, "minecraft:particle_lifetime_expression": { "max_lifetime": 0.7 }, "minecraft:particle_initial_spin": { "rotation": "math.random(0,360)", "rotation_rate": 100 }, "minecraft:particle_initial_speed": "math.random(6,12)", "minecraft:particle_motion_dynamic": { "linear_acceleration": [ 0, 8, 0 ], "linear_drag_coefficient": 3 }, "minecraft:particle_appearance_billboard": { "size": [ 0.5, 0.5 ], "facing_camera_mode": "rotate_xyz", "uv": { "texture_width": 16, "texture_height": 128, "flipbook": { "base_UV": [ 0, 0 ], "size_UV": [ 16, 16 ], "step_UV": [ 0, 16 ], "frames_per_second": 12, "max_frame": 8, "stretch_to_lifetime": true } } }, "minecraft:particle_motion_collision": { "collision_radius": 0.2 }, "minecraft:particle_appearance_tinting": { "color": { "interpolant": "v.particle_age/v.particle_lifetime", "gradient": { "0.0": "#FFFFFFFF", "1.0": "#00FFFFFF" } } } } } }PK eZvG:Advanced Movement Add-on RP/particles/rocket.particle.json{ "format_version": "1.10.0", "particle_effect": { "description": { "identifier": "ns_mvt:rocket", "basic_render_parameters": { "material": "particles_alpha", "texture": "textures/ninja_squirrel/mvt/particle/particles" } }, "components": { "minecraft:emitter_local_space": { "position": true, "rotation": true, "velocity": true }, "minecraft:emitter_rate_steady": { "spawn_rate": "math.max(3,math.max(q.modified_move_speed*15, q.vertical_speed*1.6))", "max_particles": 100 }, "minecraft:emitter_lifetime_looping": { "active_time": 1 }, "minecraft:emitter_shape_sphere": { "radius": 0.5, "direction": [ "math.random(-0.5,0.5)", 2, "math.random(-0.5,0.5)" ] }, "minecraft:particle_lifetime_expression": { "max_lifetime": "math.random(0.6,1.2)" }, "minecraft:particle_initial_spin": { "rotation_rate": "math.random(-80,80)" }, "minecraft:particle_initial_speed": "(v.particle_random_1*10)+5", "minecraft:particle_motion_dynamic": { "linear_drag_coefficient": 3, "rotation_acceleration": 1, "rotation_drag_coefficient": 1 }, "minecraft:particle_appearance_billboard": { "size": [ 0.5, 0.5 ], "facing_camera_mode": "rotate_xyz", "uv": { "texture_width": 16, "texture_height": 128, "flipbook": { "base_UV": [ 0, 0 ], "size_UV": [ 16, 16 ], "step_UV": [ 0, 16 ], "frames_per_second": 12, "max_frame": 8, "stretch_to_lifetime": true } } } } } }PK eZm<8Advanced Movement Add-on RP/particles/soul.particle.json{ "format_version": "1.10.0", "particle_effect": { "description": { "identifier": "ns_mvt:soul", "basic_render_parameters": { "material": "particles_blend", "texture": "textures/particle/particles" } }, "components": { "minecraft:emitter_initialization": { "creation_expression": "v.color1 = v.color1 ?? 1;v.color2 = v.color2 ?? 0.7;v.color3 = v.color3 ?? 0.4;v.alpha = 5;" }, "minecraft:emitter_local_space": { "position": true, "rotation": true }, "minecraft:emitter_rate_steady": { "spawn_rate": 100, "max_particles": 200 }, "minecraft:emitter_lifetime_once": { "active_time": 0.2 }, "minecraft:emitter_shape_box": { "offset": [0, 1, 0], "half_dimensions": [0.4, 0.6, 0.4], "direction": "outwards" }, "minecraft:particle_lifetime_expression": { "max_lifetime": 0.7 }, "minecraft:particle_initial_spin": { "rotation_rate": "Math.random(-100, 100)" }, "minecraft:particle_initial_speed": 2, "minecraft:particle_motion_dynamic": { "linear_acceleration": [0, 1, 0], "linear_drag_coefficient": "v.particle_age+1" }, "minecraft:particle_appearance_billboard": { "size": ["0.04+variable.particle_random_2/8", "0.04+variable.particle_random_2/8"], "facing_camera_mode": "rotate_xyz", "uv": { "texture_width": 128, "texture_height": 128, "flipbook": { "base_UV": [64, 96], "size_UV": [8, 8], "step_UV": [-8, 0], "max_frame": 8, "stretch_to_lifetime": true } } }, "minecraft:particle_appearance_tinting": { "color": ["v.color1", "v.color2", "v.color3", "v.particle_lifetime-v.particle_age"] } } } }PK eZ;  7Advanced Movement Add-on RP/render_controllers/mvt.json{ "format_version": "1.20.70", "render_controllers": { "controller.render.ninja_squirrel_mvt.default": { "geometry": "Geometry.default", "materials": [{ "*": "Material.default" }], "textures": [ "Texture.default" ] }, "controller.render.ninja_squirrel_mvt.attachable_default": { "geometry": "Geometry.default", "materials": [{ "*": "Material.default" }], "textures": [ "Texture.default" ] } } }PK eZ&19Advanced Movement Add-on RP/sounds/sound_definitions.json// @prettier-ignore { "format_version": "1.14.0", "sound_definitions": { "ns_mvt.land": { "category": "neutral", "sounds": [{"volume": 0.8, "name": "sounds/ninja_squirrel/mvt/land" }]}, "ns_mvt.spring": { "category": "neutral", "sounds": [{ "volume": 1, "name": "sounds/ninja_squirrel/mvt/spring" }]}, "ns_mvt.whoosh1": { "category": "neutral", "sounds": [{ "volume": 1, "name": "sounds/ninja_squirrel/mvt/whoosh" }]}, "ns_mvt.whoosh2": { "category": "neutral", "sounds": [{ "volume": 1,"pitch": 1.5, "name": "sounds/ninja_squirrel/mvt/whoosh" }]}, "ns_mvt.cannon": { "category": "music", "sounds": [{ "volume": 1, "name": "sounds/ninja_squirrel/mvt/cannon" }]}, "ns_mvt.rocketstart": { "category": "neutral", "sounds": [{ "volume": 1, "name": "sounds/ninja_squirrel/mvt/rocketstart" }]}, "ns_mvt.rocketloop": { "category": "music", "sounds": [{ "volume": 1, "name": "sounds/ninja_squirrel/mvt/rocketloop" }]} } }PK eZ@imH@H@@Advanced Movement Add-on RP/sounds/ninja_squirrel/mvt/cannon.oggOggSa@"ưKvorbisqOggSa@3I9Dvorbis4Xiph.Org libVorbis I 20200704 (Reducing Environment)vorbis)BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s@BDFHJLNP@OggS'a@0&HDGFE[ke]_jVNENN4oՅ<[tӼU 0 A~s_0 4s7\ ӼكFxNTwl: <܉uָRNw_?R0jL0s0iB8CMP)guSۉ>Tf?dߦН׷ 0=eIVPz`xC3Bd h*װ/8ԗ7WA&~7l9;A#80=D&ǡO1Df$Fzh%U|yQ?U+V%(.e*M9I+^Dat7ӳ{~ZQ&џ9WN lk+p(uV_h J-#8lXj9k5.ܖ_t{1_$~/-_clJ*Ex YS osz/(?kfQˣ]>zI5?~}//'׿ dzYÃ:k "6]\}Vbќ [ v 0MےIoWͱk4 = pm?YLF"U7 ~u.tb s 5x^{hMKÌuV#ek.X}5]mJA8WQ( {UoŪ̆@7KWY߱e{m57sguιWS<dti1i/?(a~D3_ݩgn)շvmSt,z^,`ӷUdE;H:^2p9P7bsxm洎\tT"uw\5|ѬI+tޕ'N 3ݽ9j)FLnY55FL;j9!vӥY,咉MA)VZ=Pk'&"HX,nޔdwe Y9pY Z8r(;~7A3YoT8夝ͺ轙ǓVTS]YL]ӏ9\mH^2 [۔ֶ`dYNh48x}C$1n2xY=% b^XM_A˴9m`Y.8uڬA,&x,#n̛/vf+J?\^Ei8ok! 7W&mZ!jLjccvp`8jnq/>EhyS^g;y1l2u?}WmIeDj UުNG[,TN gҳ=$ m)ՓsdeHҐL5hu(T*3S6Cd4a*T&R©hMR0 r.jQ_|k43E1 ȅ?GB5ڲ F Lg2@iӑ/ G&<[J?FHMdE5*6^cT߫GɗQ̖ՒE[( lXaK6ˁM(?~97Mr9A{/c{W{p N@ MƤbA!8ۣl oLBlfmm/! XwC3߳=%ּ.57UVT+RR}<ĮД:HaTA&)T=G0/lBK|pY&DhE0 A5w~Pm[S03%@vN^$;:x] a=]x(yU?5Β6k)68Lƭ>6 E Y RS$eE{^Z]θʝohnboW[ xG9E}ILDɦf1",|Swl!irOϴD=F$7{k~ڿyYYn]x |B !vO9  ʦc`d(JdWH̅, .m>?k [ylFQZ&45o-Z߬!3֫YVkHJ+knN?Wuʹ%>F,#u%e"+X9QK/}U%gDVt`͐E9Ԉfe^25IV5Θj ⋊txDvܼvfAg@7,WCizg'Ll+3=a: PdQ׭Ady2ThhD)5qQ(k vv=30S0S+]{&@J@kCvWK-4R} 4@^H& ITtQuCelºs}m+0ٵ xꣀ>nXMT 0EY?j:! |Qo>BHM9wEr7Wy̚:>Melnc4n'~0xwچ% wLױ!b{c7mtK,ueW {v_eZ7ZZ_DsPUQhZc[, ٤=Gj5N#Z&q Lhju Q m<h<9=i:[f jd.tƹk KCjf 6=4T@O[[ + 0] S`OLʉwhTTꢙs'c+t>߽iaFIYfz DI~[T5[Z&A5*Z=n*!`pJ|~޻=9mѼnr]c7m"xо#rۆ \@l6w[*/Z;.^ p/MYkJ/45rX6$ZL*CD~gUܕ4H]hHB;E@AGSOHD_kӓVe=Şxh9|;}4j ǐ؟NsۍfH1g?4y}Vxh~#߻RsJ*C+UVb&z.! v7F jJlU^]eE%Q^*Ǒb#*a #xRniMX3CC{mj2@mY~Nn^bc1OU"AaVfpI3I=95U[RY,@a䅀_RxeUXV@+S )Kڴl Xk8-n` 6G-7U2A̔]§WC 6O6/9^n}q|Ӌd3u+QZ r쐰Y"U,X x!ΞО)UOFH_#W9q0WE5`fUf9Q:LmdX7FYW~aE<.g, 3sʵTDWf8(ɦt1 M*=?TMj+*KI5[s۰jn emA'He{N虅؋6enTB PȂgy3"AAd橤13ܝ7}Y45rM2A!$ÌŢg1S(ahzkл[ۛ\ZQ6!-ӫdM !Q>ϵӓ۔> n㖥Bd3@4> #E3KԔ>e pCe:ɰvF֛6("hya{32sdAGQf)CYgxtң`i*8Yx%Q)oфU+hHk2 S' %w9y UAZtqT\]0-2x{F3e ϫ\R0cYӫ&"j1ОkrDmbFNj$-#(g11X;s+%@90d善 H(N`Z$4f1ڬ ךMki+@qW/Ԁq6qamT)$Y'Tw4os>ٌjc)(M=^H섅vP+%,A,#Vġ*mIRUĪzZ.LvLT/AT>k@9URt 8D8e6,ŒԢcr MNrlXV6Ia/M$?Nq@`eث[W4z%es[ogI!o/5y 4cV( J |i"@4k#^ HōZ܄rE1~FǬFTp OJR}Ќm tUcCX.>X\4^uX7yS5gBQ%J`F', dTLE:"uT c[٩$m).-U2 I 1ETm [|7nRt{qO҅5zD7B.G1_:+QM6denk6mj(^Ut2}&0Ю jx gnC#I@_,IAj/ъn^ݺET39u&w\8P#zOb~5 dy +Ijkf ._;<9">uH4oeym&IED(h}Qu2J/'Asm A6BI7H:]i[ֈV^V sX24Y2WGEBT6.XGŰ^==$] $l>f"ܮݜqHuo*k]q{wx6MN,ގA * t :RRs XF.2 Z/o#a՘~\3&6DyZ1&0^}蒶f֚+U 7ecucނHbtގ*OKtsi_]WR]; M[T(q![/Hb,*^UE<D@3έz-\VK44z`n) H^+$01p*:Ş^yqQU7P3P5d΄byw1cwA㫘)ӷf0w@B2a ;go7f#j)ͤؔ܅DڵV S@~i@ 0T9oɻbZh︘`׼JJc߆~:Ż{i02k mv+y[MKIgYwPA48;L=VdêWQg = u O>CKAmAD@OHEJClOpW7ޞxjQLqNBc2}}$6DXMI+`iXJae%-PĈ=v=v/~lY. 4n` 4{jP0Q(vc9vmDq FIFP *މ3c9`@ #b r}l>?ulBR$SƂ376*G@%n26u%V錽\Z2Qk,[N01= SH ~hB4BƋtDI(cXC/%Ue`Ɍ\zUt{'72-Le_1\g ,krSg&ilՏ"5S\nOoØOGEdW>Pw7Vl7t62k 5Hd^ʱ\@L ȋlzu^m[kUTc.h<"vogfO?:Vn' þkk.adV~P(l+βQJ\$IʵJf1W(tu.PGqK$ U]! K#AAsbRZtYopj|cm[K*uf6tJo'^^|_<6%C~m|e 9ZalTw7ğ5?=z屗ZdjLg`Vͦ,vΈ)ל<馆yDE'+?.0B_I9ȮK76 *;;JT$D@'kR-uM~S|pbjljocߑ+2IV :g&DC@LpMdCb4&&ik5ڞP /s56a6-᜻RBaɨuh{yy6xрrI0@>ӻȊ0FGr0Q#|S׏Py9KwZ~ĶlW{=TVnߟ6ެX86U|ǭzy| {jL(kZtv 0CB2EgTh{x&:֪x05$4ʹ._1YNg9;kcj"+tM'k *fg֚4pd_QXso0{q|θssr{}M'5]MJg22@FE$wlȞȟ ^,^W nj.@@y9F|2Y?FiJQ.T?޼]nf_C۵ɫ^w]^i݉?,R>Rxg{YMaZUeᛓCy4! XGz: r`2 .Ib|$:q96T׬g*OdL})6m݇N1w{eIl聙I٦Nx Tg$Ga":[:B3ng߯b>3]R:зʍoQTi@2">ttۀR6 j!m pzmoU5hK߼-|ͼ}|'~jp`0>l6fOt]䖳Ve?PUSv,-\. iCԝ#dzr$ =d:(QU1(ˆc8QLp/^),9^IV-S 6\t -\3 ;ۊ H 3"'&z igbT<лieeBq ~915Zs۫3c%8=`!d4fD֚6`S60{fQ?!4B@JEDb($8tf g l80x$lX6ZJ)uXýYoIvWf}q1W.oW9^<8;?[YPzꕾ\‡9r$I23.& 8WV'IB@q/?7"yEy]>E7ݸ2>;{h)$7ѹa*\8>1C$o8gM]& ʳUOQݬԴ7>?@-{ٗ30ƀ@\$`Dk\4D+&0T^(Ia/ އ=Cc0될dmM{h{{)[춵mU5(SJ]9}x焐޹G?C͇yYx\r)6twϖQu)-#7dI>P%Z'+[xyjg{XbTr,rYd 8]Ym&P:1q}$UYe3 yݣ3 ͦ??N̙=]y(dt]e5{b_!z@clGcF)3fkg,:c0sW0xaJPY #O.'ihO8`H0RvTtx. 3iP%VPlHbj:dc0ʨ_xWrm:ֆj5\i9O8?|,LjۈWh1s-}eX~=Zڒ}s~KqW-dԮ=t󇗻vdU3s1:^~N)3MWPYUHʚu;M]nz85If}R3nxOZPTբ`qaPur 1=d ›͞u} hd Y{~}V67rGV­~6 P30n@ `+pm ( @a`P8(/Yh&ԆoȾ1o|^amVM-L% `zڨ95g1itxv'OI*F=s"U{;YfAdvanced Movement Add-on RP/sounds/ninja_squirrel/mvt/land.oggOggS5bnvorbis]WOggS5DžDvorbis4Xiph.Org libVorbis I 20200704 (Reducing Environment)vorbis$BCV@B*c:!B)B!$C:5cGdBɁАU@WPrI-sWq s gq %s9r1sWr)-sGqsGqsm1r9s Rr5sgr %s gq s5r9s9s9s1s9sn1s9s9s9s 4d(( @qGK$  YHHXfi&z(*iʲ,˲. HPQp Yd`(8XYP GM$<<<<<<<  Y (dBCV@!CR\ BCBC)%cSA!|={АUa8$!b'Dq !$Xy$݃B{˹{ 4d B!B)RH)b)s1 2蠓N:ɤN:$Rk)SLc֜sA)c1c1c1# YdA!RH)r1BCVER$Gr$G$ɒ,I<˳<˳!2Z{>!Bb˱ B!ރ>!Bs! ȍp@\0:˰҈O  00 veVm7u}، zZ;,4d%@0{dbAB1(-g 1bPZƘBH1is! u:rTRk)Z9R 0@P0 F:2BLx  ]B" 'n@BDF@OggS45~Q~rC9\rgDw*@$֚DD$LJ Y \6#8~D,VVR2lkX Ǣ=']N2gO|u5~ײX&,q|_fwDH==`Z)X;G|#9Q`̩ EgAH"hbbSӚ(ciDH$,4cT^ѠJ!uL#/i,\QBPRi1p4N ǼXL AVRȒBm[cBJB! R!(4K+V,JJ Hb1JV[,X,VeIr̋\6!f1NLJwk91|?\}?\5Eef$1G08Aa1 L$Y8-iZh&s2ͱQs!!dPLc4i ;IDe"VWs9J1Ef0HM,rŐc%bh+5眝+A0 8A`6(NI%C9ġ"$X"EDD$4*.ι:Ӳ,$yD0jN1!ĐɰB-FN\fL1uN1cI!.KTCpf(;X1GPHd:B't@ eƎHIH bPĄi"SQi%%1&+]ffΆɋbjXd9X(c9WRXj9JbX.˕D;\ZK5h4t]97A*I!bfҚV EʕbgXb1.*Qݨ]]hv{ҘyyY^{ }@ɜ " hju1r!lbfjbN΁$X"" 8)&IEJ 4icCI s\ΪF`Kr3\DolKZOzgѶ>.m\Q]!no:UN绎i0<78SJzU p2T)2H'H#"bE@+MbX1:昋cFq!l?O!,VC4ipw΋;m۝$3پ/̦*r0jiHO@~y5?Vĝ?)Af V;RdNF Rf9Y֢%TbD$ #(Y޻'ܺ͹EmO )I5R"G8r.aӥdm 'Afpp ;ЊC*HcRJE ;LEq*,IfX=sBFDKmvp95=>liGo$='. '}HN=FzsN.XΩ1B-:"#$#"""R$XcNɘd)R2)#>s|D\#gz=iwg:Cx!kvkSJ8ũt8Hf4ͪ2%a1f=eFg7ZYV$9sץ_:ciژ\wS)Kqvh/'U|/Q;p:;s>0%3SLQ&ٚR2ŔJI!R%1fS)Ƃb08q*"E*R&g9cJJM*b'{GO97wv{Soϗ7ޛ z_23y@54x".+#} >s/eBL%H !@"4˅^hc4zcHڷ6f={OC;iX-͡?177Ѷ.떛C8Xq̗ 1J#\kz" 6; a~pu݂R$$EĀ4S8rʎ Fu֧:ɊoX=-OrjLyZaF**;$u5d-4^Tׄ~2?'מ$%$ޑo fp@^b [1d1""") 򬴬fivt1eN `)oHˀ>o0"Ozg`3O~:w9j}LntWn[r39-ycGׁL=^R @: *2b%1DDR%a*vj:V`d nhSŰߛC< x8z?w1gͼ 0 `MN.l8 bLxjjwLcv8;ØgE@܃}3ܾv OggS@85^ڀ?Dm"DDDH\L,X.V9Fr4PDžYy8{e1{@BDFHJLNP@OggS@R 0cƷ޼څbg#vj*bM.' ],oJPSBsMPS&>Hƹ Ur=_vOΥDBپ_ʘO}kS"Z>5Ile-HcxCMq !𖖚pյtrDpzW6Bq?TN?Vj`ƒ#`{X{ (c) }<̪1zA `CSG[g. XއxCMy<1 jƯ[BUPF{8*M*/×_Fܾ{/WǗ&܇oN˚*5.n)sXhYq-(! 6%,RȻjl!`l00!$)XWx`a6CʧG[=[X`ƙv xH8#7}Wm8TUT6v8k8 UTՇy~&gY~l%nTuVlF)ԳeQU@!!pDhrDQ]W=7JZ7HP6(:dlPᔦQHo ?{ Wbݱ _)0)$+hkRUq]yN]t~0c_]{}FlD.VJD&Y\.e*сd04H[DhMȁŊBd Q TEݤ@>LQtqpEhTJ?˂Y,87>A7~ع/=kClC|۶Q]ԗXaQ Քm^ jg 3RU(r PUUGR/#e) Db"JK'#d@vLׯmɿLwo!4QF`\C 6H2*]LW?̒ ɓm TZk1e#y)uh&O@M= 7M" llqj_!À1jWN* )#ںؕwsؓ=kg<;[b1c4üU]DI*B T$s Hxc#^ʿD#`$#MA6YYĿy}O> g (@VR'_ o Yn"3J*kPd AFYE֚_y>J_~ oKmA;*PS|{rU2\e&N't[BckFc3Xbo:fVW1eԹmR.\$XJE@Bn@AJ^!b!a]a,!#a_Ø|ʙs>9]=Js"տœm7L}hgp- 7/S{ AG bk ?(n_ߣNH:`bw* wCs\nTrl U1fe77`ĠURAEUIfQD& Cc}KQp !eYB bD]k%܃eg`@>H2_q!Z{2; 7@pغ~(x<9 gxX>g7[x"ّUjA0J[OIC f1O]ړ巳g'wF5c[ݱTB^ZYnN7[e,豍C4F oږ1qNޖQzHcffR_]W׌]=lEDb(#COaLNة4㠷cF%"Dd;m{7A4_)bmw0BMnu6>F84mz{݆bsxx^a7V hIWu3 д (CPm QŇ4`e bhZ׎6j,GetTkOq{a?Ϥ4}qx)q3 (îBpJS;A>g~qzcdw5Lau|-C 900^kh7j/`W5 A^]53 687n5-CVm2m}-._c>aX٬]kVVID ✲ƬjB_BYD1Q9neY$40 i Հ DMC_`'fMw M_^/xCnh>  ^J7>G; 5 f{kD7m8ikasX^0[ElOרayޚ9 κK~Z䀳N6(ǠU$#NN@vHekH"p)~6wf},T; ٹΛLXTYfl0Jpg> h)(fB_@>; 5\7LxmP!#A #i[ %L7?2󿣡f̯!yZ.x92_˞A[^#D;rDX``ǜB*kX"W,V֭lvSrU,@2@>\``~3v1P n`> <  _)~7'p}D_q`\EoDUf?ݼPi3O:}ޤ}?їbhU+Eek_0\Qh Ya`dab_!TpLq(  oDTΪL]{ZDP= J@_(P\ t,Ix[؏mK͘ݼ@ o 5Żc5VF^ۡ|𣤦v }v3ki;IE԰ac=VbZ`M(*2X"%`*(X!H[mB| *`M0/_ 0"GQ4UסKX=`Zp u#d=psJ==}{3mZSܭUtVoP8^GΎX7m;hކ)Ue ֠Oz SU`[1Ԕ3VKkU { Zn޻cJiG$hLqhXd\#Wd &,M ilҶNdE?s-&31Tv*~t}al. HtzYs ] 7,tbaCz x ~;Gu&)PSCZA+ZUa~dЩ< 4yqW_Z,=lz˫*#\LjP[T`$N,NPD"2޼zAh;@6dq(0++4E؆9dh`Y2A O׺}B j-(4@ :+o~:lO_+'F=PAVB* 07 M7tL#oEuv?j[iblK]EɺJ-`UxAcDX=8+h D6BtK38L~E?Ϝ"λ'$XdE2v,` g7so 5wyĴaln2ZZq }sgmk74i[򡍏؟ʧzTbTRE "h0`p F !{@2)I`q#R~}5;K?c6󜬽}0KR;%ajfw=I_;_ī,I!ʻ =/)L}SDOggS@ ޾Ż> yYV@Mr f?yCM TTCJ` g) vFT <~c\eu6F>K3rxq]˾ڠc=R+CB@ $ǀ Bm? 0 m޶޸?9 MuRqg{!.&Ϭy L(Ꭱ JADac qk첀wl7k˛ؾPSzVU >$gQ]5'_֭U-DfmlV[s#eoO4\Tt߮1˵i  [Va xU"giŪ$:4U 3,l[ |` [wpj `/lxUUB d֭ńiGH>Yef)n o4㋅٪"Bf0h^l##BcHZHvP,g53.뛧=VngiϜH<[V)^/kO}DM+ַJ ȋ Q&x aَp:ˍ6 )P5E/0 B Qu-ԨĚ%GVĺsFq@mUo6ëm[0@:x.$珹&G˶. z#g3O f.;?`s /C>7L_)z7.d;8PS ѨqSA꽍Qj38OqUif?ŭjhaumc.6Nˬ3ƫF AhaBA;Y%PFY2R2 r)3gA+e; ;k~uFod@Nn qO!L +Xm h% 1PSn^ NiF 2BNFV ڏ;QFVKƌ=nBYGWL^cBE:BLĮ*

Orx? ~"ht[bsk Ysx@NN -H޺mAlo5W?fNggs_ug8n vHZU]AedzLTO$簫<_ciOL& 4'as~Ա_\Y>`jb,nـ5B|MO܁PS|YV )FXf '[m?3dLMDJMI{q,6?Vi׵A,;ӘP %llE2@WZD#Z. 6Rܔw+׉'Nǯq$uMOc::?$8>a*q 0@ځ@b`^[8;(ox@5Q3ޓmI÷ބ VFZfB6Coh_gr:.ewnѳھ~h@mU)uSL#lؠFWL{X#͘;3i ,O=MqO,Rs9}_K#Ht?e0pA {C@B`uKHSws`&8(ŭ;e8jn0@M2VfHlj۶: nݎ;`s^ki%qp7S7.ޏ<˹ey*՘:69S6" CBXԵ\ yωA05g_R鴬butQ?ދUR3hk_ p{Dk̞l@~L׽?vϤO"XbE4 tTשM~`X 7RfKն) пڿoHڹ톭2b2qA&|C˷m.ydX:T`[:jk$e sSDAv@n!xU%HCh:IS{W]|:4ڕr||Xco?U.a5lSv `LJHj uW~@B.hm26xSG+Olccx8"~g߾oc߷>w* d"X#eXb YvÙOv_ٹ3FX(KIaT~hXG9yXN^}ֶCuP3S%MȡU`-@'ݪ?n#p6Iޫt1]Ws_v'ul)oj|`0Ã}0T.R,o&f`Abe9~@Uf|ME1V^ߎƪc/ɂ=߷\rfoL߱q UVC*5+W!!& @QL"t [>B!Q;I, %9 _) - D4@6 d λ<{RSMqڙKe42.<- ,~.$o)2#9_)~ئ5 @,ۖ1Ȁ osbSwsAVV|.-C˥GD'XXIY1lq-#S WKW0  *xZUȤT\*F+Dm!QbcZpyp#P9$%4_@W?Җr DȍN`l OggS( )qiũrV;!. BFHm|xE+aHik*wzWﭻDBi`u F?7o7 "|YbDE[#{D1$KOBQqY$IDKn躜Oy}=1฀ۜ3?%p{- ÝQ`< ]48po@e7bb<`wo@ZkP$}84l/~f!3իXǗnǶ\2Ӂ[fiNp}EH+!Դ[Ė$}/雄J}%F`J `|8?@΄7_qZ3hcS;\3)&2<W >]׏7jV^KnG=@ӛ4ޅ0xCM 3a&rG+%f\Õ;o1Yo>;obAxޅbg#vj 㑤Dq++EycwO<xCM1 x"PK eZ^XR܃܃EAdvanced Movement Add-on RP/sounds/ninja_squirrel/mvt/rocketstart.oggOggS:EsµvorbisqOggS:E,,/Dvorbis4Xiph.Org libVorbis I 20200704 (Reducing Environment)vorbis)BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s@BDFHJLNP@OggS@<:Et$-9=?>?AD >AMPK  օP*E..y |,̾Uq|rl5a}?Kj H (h `T oFΠjRʷR٨%pڳ\5e\?:BU3:Cf|B)rĜAg}qw*zN45tRSMs]!3<V [EC99]訫L d8=33d5٤K|OMxr`>JĪ@[Vzݺήmd5,}!$Xj<V:NZĉ{,s DӞݞ6y06u?<$S^, QHmڲ̔p|":DkV&a(<]:#,Nbl?`5bm>sj$f>`**+aE-q80ԟ /ZtA@ΐF9`oN9g`7Lь2@ܯ9YĸYY,2\7ll?4f u*#U$jh5QTC7!JSqbSE& 0)a$a5D-3xcYg`uhh=^MTDv;]exΫMh 3uk-La# T/04lUv{ iԍ˳ :SD dM<Xgs5؃|a};㛇~f9 ϶ݬ6~_\By]ʹn t.- ""Z1^>N2&,+Z,e\ΞcY>5Nuf뺊K •hՎPZ܎ ѲРW1DUR]+R#Y\QeK -`ah. 0Ғ< @P ]ȡ璢"r)uMJ &. Lb  R $3q` =db@41G)!~9mҠQ~V:O+>k ?3Mrؒefgm쒥YhFE&I[ RGnqe^=.W y,M $q@dh*5=,l8\ xȋu`\m@"$ɮǀjS` LM3 *P@3Y@̂ ~S@,:Sϒ5URI%\r'&I)N*ӗ/2<|v H^Tv T|t%Mԧ o69  Hu61s$^[Ԯ_̴(GQ+ordXYXɢ;`f;ң\Q_j P[$\!d#e;LcA'#ɥ$V `bnq ˋ`FmA-J#JPjzXH1( dz`)q<&@vՆb4~WϚǖ ~<=?qвR^ s^ 0WM x: dRXXk2,.OVfL ۵6th$6/%PI:H@`sWq۵JC-7ӎB-R7YW*c"n,fYrEp5 FÀ y  mͩ` &?~~W,^<xgzyolhE'r:?@K <L١Gʼ/eNEϓٿY>륷GDћWg8R݆J|A@,EC[1;I@ Boֹ*I6"za=Lz4YerPPS\Bw(oh}}\0ZCfz;r;25-çq/ٯW`Դ%>xzNkTa=gk?e騥({!4aH d[MMA 83H-g g&ڼ*9rQDb\e7iKc}*t AiKg l%@f|vD0T OzCc;\8 ( `0[c) ۭn Հ^ֈpzR0OoݬfNu* P[w/fYL>> U:T|=-/_sZR1fѽs,uSQgH,ٸh܎"6􄎥,J$Fd=kw6DW%2 *anp0 p !)IbȷLp@@ FHR8K+" ZPD >KnmOrҡ^[o{&qP}NZS"4$\~ ڗkSBfr`kuMowXl4PEhZUl@bYd`1mF$bJ i F c57 tיP $!`W@5 @!'!;)hYb<xpI $c"~@k[TbF fv >˭fiD5ᬶ5CyB=)S mxm[XՒuwOq7ƻ11_e[̻(ڀViVL9aNLF}z?U&.۶(؇ׁχ`AN'{ĈI&YE EP ӅH$, 8[@9z" K4(P[`qfqCBtY9U^% AhqCyC5`l%B*&ك9=Ɣ}{֦$ \6&HCuO>?U}rS8^4"Ԫ-زYq7ɜyBP+gez=PI+`PR. =0gm I¹P++L9bWtQDDPb,B`5MFQ㔖MlA H @ĬDKV0*B ~ vb aPvsc0h4L`5̑Su]!%M`; O3fo~g;1/^qm_vf?yըG䴵ڥ(m[ӆUlD&E$4 K4L2%T#JsdlYz 44r hDC =9GV5ӂT &;j`v>=-24uB$T@lDF E~i Pnb-!jo^I="=s(l~XOq{|O)LOF~c4}1:8-w}G\B4䃥jOdƧl.0\d> y$x5Ex.`bE$CsaHwb QX4$dұH*-bnt|&6@ 2@%Pv+*Ŋ*VE[k" X7Jv Pv"lK} .f7Wm̶cXh@J& 纩^GͣN:Mz?ŝ=7}0˺K1 'n7hXqVǗlirbρR||kuFjbÚ{JZ**a6Գ| I~ JS1.dz:&B#T 媔!I2p; uq)5hyn.eԛe_2qH([ 5S=^4l b²YT ~zG~;NitV:ԫ @cx;|)G˅"qNƛu4<] _8iΏ%jyvLf:qggwd<7-Jj}yvH6 -Cbjjڣ|dL wH-reiw @0wY M}r@ @pqBR#5Jj`:jC }NrтBF[4elXF/H*hI3(E *kX`zX-;-4RPS z %P&6fo1Bu;^>=me=Vay20}$& [}iPFL^ ` XZp=@[6fͧvY"i.}=; 2iأE U-FA }inod%'=*bߊTP4 42O !gS7 -\0Nnq!M:FFFXy,O'@ 49t@ݞ}E{dTHzbib7늈IR @%]C7bPW/nf} ۳ӸbeyZ铿nWk9^ Aq5In0J2 ƝzV "lhQ!qD (I!ValJzn @PYI1LSx1z+h[/IƀiP(hXF3`C y"]ؑ䞗"YQ!*.b^ Bq) JP&Ty'1zfhh ݦЇ5ǟskC/bϹ'b2yJؾ5BFC9Js r,5~v艌,t!}Ū[T3xQ? hkjf9 |/Lֻ2]Eys eϊ%zD3hPǖ‡Mgc`"Ϭe0 #LEK*%$G( ^3B4S3&r˗Wζ%s`7l?{Oh »rٴ֭g;kŁG+O3YeL^/ ^h"k JB9wxb {ݸ]XSS,z}_={O֣'om7"q!8Y(W ٙ"XtS\ ĠupX)ê0F=p`)@ U1ljJjT 9QC-8QP BU׳b*Ă㜜 \_Yy|'r "Q)RP'S : 3*39ps9 =:ᄉH]+p墳@E|ֱ2G1[K9PHUm){[i~42 46tGQ<L|ӈLZsLE 4* ^ Z!By)aĴXp#^Ubj71k@Ј4&`Kn/YWw;ƯLh|g&lwa%&pcoWuߖ_Թ[럨{deT{)b%EJ#F鐁6d(dA']SG6^da¬` Be8xh Mv@C$)1B n.ƈ + P:U.3[6LZU^=WhX֧]gL}𷄰mC ͑S _49iTFpOx_ }|7,ٛҲx^jvf RJ.j 0+IXq2C 1u7,R6Ixq')Fj=ۤ%:nA J+=0Zl 45ݖ\ p!JFj$@Pm/J*^L?q})tō)rʛzpwg$O|*u v5G^C+ᱞije?Qi~y\ӽ|_V(!t`d-I1cE(y:IH,y(z5I7IX:Kdn_}W|p*NA"EɼFYsj3$@ٟrMvǤ{ȶp( D՞&<"Zi`Z8>/suXo`BM+mJ@J&"z'/iѓ[s;H,f1qS׃: uJOYaĢ@%IgʢNeQzxg8z{Nuy֪R.=@7LfGr}Wԧ|s/ ܳL D:  ,{ey8+՘жiD iOggS@:EF K@BMqX́z@oPGfr:L'" _f(n8qmB+6џlnYb.s;y[iMhCDO"SULˑ-K$Ą2,xjj5Y"FP d4$RiJ1V2ZDX¯HxX.X T1R* (8!pT9Z ?`= oK[oC_ -u+'N>] cH"U3*wFz{8a֞{ld:;ܻ6qp'Vݸr.NjӽbE " YZbbe *iCo` KoA(Xåvn>kmۢ)73 . S&DFP&,`Has E \(UEE(Z@>ݦ|r"~&W2Cr;Qi- h3;ڡ8yþ(n99})ù4^|:d(9<ש\*#GB@351 Dj%3K h#Xc/d ʖ̱p,_A=y/CTEqd$PD1~.am/ouS*z @u ۞40&D !-& >Ko`>@ڸ[_߀)~̩Hюvv$?{8uq_\fD>u*^4걬= ї/+YeMǓ)ys}q=UЈiåLS Dq0Ov3 iMkh<?]˳&ȶ*[gq8ٕx`W9S?J 2PV9 2!6@fs=dM,j)qȝmC$+_L C6o8VH^]Q~ԥx9.gmqSy9NءDL^J7T;GfqᘗݷTwCя\=q3 K ܧ2Ijfd@Ӽd3/w1@)NG?318<4@ffLJe K0 K 605;>_`݀)/_xCMU9;!DËj{Z>}Gu=6CkmZOzힵz'ZI1U)NI!숖8]X#~ث*W;I %@\=4|ӓ3+dw#A; qy }xW4˂l*Eq"@@,{^ 56f h%$`iY2 Jqz"OgOoLU"k^khٟ#ڻ0eݸ@cři1dIiͲֲ4OdGC0K _fc'ՐdžTW,͸go=Ґ;_!J$ {r7%6жB1i6w~ xCMq oHm@MElk}JL\%Mbwr-2{ykF|nfͷwGdgXdoW) <R4fue_L0,g 0,-P7]Xܝ=3A3VMyɞ=Ukq7=5 4kM ts`X4}/$zT.- !r!RiQ@s5>ӿ BM|}_)޽Ioz>65XOѤ}%> ԌZ6Wcy~OܽܜFtb6_HXp[=1/q+-,O߯Jd&*Hiq4P sSw 4=^j< @86n@ETԀ k1*9@k%1 aڭ,r_ΧP"%D4"=!_k\ f5UbVcO@^^kϖy}/7Yk=KnƳa݇֘oOMi\!ez<tFVED2]&dE! Fn\.Q EBO$=(S_*yh}ыڲIH"'z@aBX 5\(f`@EDh`{k^hj^n`@M+6ch]Zhj 'U"HɼqWWӎvgA,gK9Yݏ##FMr lX9$]ђb b[P *mJBPI!Sڃ2ܛOhPIIÒT. =h"K1 t,TWDVQ2T  `KLỎzOA̮ۊû$ArsVZ`ZeR<.-^{>7gjm/l~D!H x!Cݬ_q|YvcޫMs2n>!g2c,@zҩJTdQr5fiyj,a)Ь8fMh-uiD#h b0bV^ц:d|㋷ר{}(̋_qoF'4ܧ=pf``fj~3+?B.gq OggS@ :E~~l~_PS%o/0 5m2 Sdk}hQqI1l?wM}?pP9o%կ"?\9 ו@@H[!r ta;ƀ&=!C:+ EDraj}`UݿӓOrv]jjӌ?JwbY z^@Ng#1 T.rⅳw_H~2zZ|7w˧-j_T^2o5Զ)\bFǟ]uc7jӜm k\?'U]OŒB= KX"!sc,a<3kXY󨾑 yB)ŘrR~~zOEviǶ*wY'sМh}}ډ.\ #.HrwI X`Tދb/!}; 5ůUfwDe0jaSڍFlqь5~={wJd./u0vZ[bUB~QfeƆmԊP#(54!@E؅%](AT S0ד {}"o^ɞŗuNo"!L</mSeὧܙgW _?МƕЧj(w H>LPZ){@_35Y+"ph4j`H~ 6J_]?L eHb+rf_ AO4J&Wlۖ &;O{]\ӴpwP mw r(Q2"BQ {$Y`+Ya:;wV@M|I(xPS|׻&##d{A aI2 Vi.7:TwlΏ_5q9jdSE-ŚFۊ{2Jʳ g6Vh9`yYBBhTe*^%@ LG;hL@?f`PVL?@֌%Tl@ق b~IR4e10 - 1 !w Yc _Bw,\S|u"iAɶ?Y8+x4ꤪENWWق&[y"*nF#ݝDܢD,2Abܨ:VuW ǃ,'I# lSה2aZ7aMl&%#ɦ"W" F]Fͼ `h~+0@($$-*Ƃ @J  ~ߘw;BMw{K(>z{mvnjZZ GYߣ;%v5\jAg1~}㱥meΟZCqYPDb;:H5G`z]"9 d6"1 xeUaEe( 60"`7V`@ ~x@` ;CȤF@5 yL,@Q!T&Bq}.;hcپ$|84^bu8if1*7\o36f}gs gfMxF)@VdeTWF WwZa5hJ;da 4% B + d.fboe#h 0`0`Os~F@X+N1d@뗇įm4 Gz}ojk+: )O)̳J;}i ] sI3tٕ5߿j4~9t{"]flu3Ӗi5r.E\S Hƚ+ĚVάHЦ-!oT!DvN /xy.;n/me{` kz  +s,@_ `b@  :>̏do%\S &ڏC;M]4aFJI($.||t_ƫhU#zxԭk;K'Kkbo֑9 "y:ooc6'{Z,B&1\Nau-K ¡nC[lvdI1 aŲ 20;eb+D) P,QMժ* ,` ̾R,6TqX?1t"pHNKфBeL|7; |`X.XY0^~MH< zjM鿄XAjW akd(QNEd|N(7ި-l~}vWUdeLݲ4*r l0+,p%( Pl m8 rhnDjBP0~ٟ.+w0Xo}_؀eoi@b~~oȞxk PFYqM}xˌqdXPxRJۆ~@ h8Z6>=ܯ*F!nܼi?c `<:Om@H"Qm`/QH#d0 VJ8k!+k1B!CN~[ޕD%,s6MZsSX a @A7cBdoJd Eit>}/?Pc>?_xضO7Z!B)BUGbY\''|*/6-',WٍmgU~JDRRES`;0E{U:"b4b@v`!y *Dd1~zW3귖™W2IEMv+51 CFQ )[_RuSlAЩ# p6l[;l6}_B/[_jw#n)ЍW>Ũdy5va2h޶r˳ZNC7~ؓʆ0ߞU$6錆!X &ŀKH+Z(c/BxQW R\# .aI95Tgixn$\9fh+~O! 5bpl<560i~K52+@IRaJ!`,jb A F OVHM^3C* 8JZqrr|-o#SY.̻4~nʸULen(OggS@T:EN͞ 1@>;225ūuQ5 x6fw]ҝUi,>qʏXsqs*77RWOLT=,E,@hXBA)t@ "`Ul0*Vl bh@ȖEؗL=aCv}3Y]\c'2BJcg3vi:!$$c9ebg?/##eva}pgsO^N~̅vh䖍,:Ki It,g/~/_]⧕yyE6N>>_PCE, ][ LյJ9SXV, Z1"RSJYW>/FΛ1$pܵ tDyvbo6wg!nX>CZT_ЀZP7ps.l`a<5~`@ߐ1QB,}Lh~z G)6sTVHT#5yZm9;0+PZތ|E4fd0/ĪB&3v+h 0M1FHi` h#R Ȫ6Y+3Jʆ1_ߠ>B b(HPJ*ٿ ກ]4 r|_{ [S0}w`S;@\,?BtkO[ěBgn;rW(Ѫ ?;}7ӝS-۽U!wm',\;pZ;بMT= *+Eb #:[fIA6 B XP ;fk/~3xiwNw__ws{1|z!7{ۼ!> rL]DaS`EMws|.e^ow_-D֎ DkbY Ɯ˫~sqOgcf {>=~.9ɻKm_>nb>-X"K],r.CR.,t A ,X-=6#W݂TW-hy ԰@Sbp$~}'H`,~C- V 8b@efF ePbdWT[q/T'k C>bpK޴+勻K~76PS"TQvE" MM:mCK%l¾^5lMJ437M1BbUcHsa%G±mSB{ҀaqXq³C3dVq~=Թ9~f090D9S0~?95` q<E}X` >K~o|Z~w *f愈%.0LR[n<k:~ǚ|ԱvǤ ~h<Q<`"V# hnh0V7%(Iˠ+FM2A/#S2@9yS0~p[u50t%p)R2 }otMcKMJo!J?4p[?8OaGnb[SR̫Ys1Xix5Vo͡l?5C²qXZ{ JKH0l@‚U&E--} X`Z夵2L a*  PJf9Ik ȴH5 ,."cB+[YR>9̺}dS/ʋ۵\9 AɖZ!7~[n/ $kۏ$ݺdxi[ׂ:YچF0aa-Ι0?98_]zW{C>K"Z/h4 F#B㑌gCV0 TFqvD(ŘA-`7PGy0` @$;Jk0 MpssQzT*C~3k/$`x,5=?̼^&H>! >;(`BMYB,@B㭌> HTÔj>[6kIn=y&ׂ榍xXf=kD]#Z.~ ^W ("Hhk:0`A*-zDN"ʒ$Q:6x>P=9du@D~Q`L lڰԜaYvy0Eo2 zH倦hQ6HӕeȌ~7пd`! y tO! 5Wz Qx@+ަIUUA@p" /I9eWϏr>=kie.L=`)v6)2X0D5TyQ0PEmlЌĢdA@Ql " ,2 .yi]p j_݅e*had7͊BJh ˜ux `[oʄWW=@OxoN&l1QqD?!z[D+`$BlOSskZig`?lD EC~.`UP3J*fOc F xdbס%f /!Bv_KfTS<S3Wm}:&*`xl[kqTQYT={؝'>2{ˬrxGLfr }rQO.ugj 1",IZ%,EjV0jӐ}.ǵfM e6<k9 '(>]oB2܁K&TS.w!<&)N=edf@up*xLAU ?zۺy_^-FggV#ǽ{3,ԶutڃVɣZ%$e[`ӣ5NG۝"ET4 #AaC>Iٹ<R%`( ^y& l/@XOggS@:EM~!JX}_d.*Ր@cӛwp_;JVemLdDP|dqiUZ2-~[R6 7B`Pc  QD"^C!`,E05O kI6hvEs Ý~Q)26Y>{ D_)Z7jHEmkUY|"c:GvQ3ڪs"o&P9 s #_wGYUMXWF& 콰 a2VZO8V-"(Ʊ,u6 o wGG!mj4? &810Y,2 `g߇3۝5-` j*e`jϷ|~(>Y`ڶޚUu>+s;L{Qej ֌yاghj[/նB0b8 F:dw!a b"& hţ%B`'&Si|+|sr:]34c  e6QtكT5=kc^C3 $@mN <'`"_'AD [ ~:6/σTLG 2–9鰐F0~qԳic:.cƽ9d7vca;hoQnV0դeB㖂}`[[Z 0}ٮQ(BBX2 )(i`٘%@ K7M jDR/laduAzӂ엪Mր"rDt&$H6Rd^ blov |_di?JreFic=nj<+y3KTʶϜGˀC`A DiB cqc;'D`qdGl>VL_9˼?U$[9k"!b3kט|6(dHyJ>=&1R?7F<틨jz!3"bm$FFĥ>5bov̔h&v^ۗc;vɎ0 ~yy]D&yVx](tc/ w y˿\Qk^L7`-Ct - h[UUU 2;oaog Bgڰ%ll˒YwKŬǦTD@Tյ=90oѧz=~=n59!OUլu+aߪGpa]M^C}︗]&?MdCƧk]uܛ13o+@z9;XIOBMq<@v"*<ֶK \ҍc$uks9oϾ?~tq.Ci2ߵ"$R[TV HqS @kP`zDG) ]4%/oO 3gPu5?7Q|揗i{fj's5;LOYS3=YLcji, >Zo}0.8W; /?_ =X _)~eh* ؍n;jե=Wo9{Rtk554`1Y|5>lܖoSf~g@1sd0%d+E޵0$Hckv'^W͛;%E uTǧaxgǘnnбz{H9y~k;Vjx\"= p2ZUAJ$];qysM.T^d7Ijo{ZĊDZꁪ#,}MŊQ(t  H)v|\jScQŹnqA: wғ'{ }ub<<p7^Bm8B uo)~hFۡzL& l`/`UO MTtL5HAvU`y''k?.(2Ji4VPґ 0 B -VCkʱXԪC$ KY,P,t?b ٛZ8/i.޸D8H/I6f2~Z^ M+(=d5׵kSۨ<&P 7mwY4Ĵ3s=IǪ y'Xɣj)QDv X4^,=R@Aůt-"kݟ$>{lMW`\dž p <(@ۯ˯sp > `(ؤ4 v?mć TE+֥*PSr!Dw7K,a+ Q~Yڰb ,bqE!'}'E??o?4iX`( <gI %x 5oǙB: @!Pq~#j_WLߍhs޺=Ms56 W)"]WiU,#gd("%*Ɛ X̠!"jAmp"q13n,t7*`ٓE  ]6aAD0Nռi Mzw(zGUYoXI_A[0|zIiC@nuRQFV1Dϴ&sLg^dv 5^(q(b㜰2 BjŒ-al"#c9Z2h :=$h؄ ==q'af|F3Ly'tz`9NW9];rAzEYes, a)OggSb:Ey޸ɼg;9<]w|/ =; 5o0pB[҆P@9hmUj~?"wH龫ڍXjomqe;FJ[a@ˢP%0(AIBQH0&OgVQ 2&Tgh't&QߕTfat5&w5`v 8sqx0ָ- > BMqtq/ ÒC?l#8W]75W?oյ۫qPc^zêe<)>Tf#FZRx f"&j7J= @`pS :9;ͯc;$ W uI̡ ]f}vX j̞|,:g?i=O5kW(lmX%;Ⱦ>|GzոX7\0R^I&Qc`*&   cpK#@@)Tā<P}94e"RW&Mow?w5 3כj\iG+W* {gkjjv: ^݁ɏ!j;? wm*٨pY5cb}MD6jr%Gvw>⦊QZV Zc 'GVH[#`6lKP,,2U +UNIL,9|?tT(e y20`z>݂*#]vY q>߮$bA>5O~/}j7]o.bܒbr-Q?ťFQƙJ^ҟHGhqJ)N}ƶrkQY0+87a.֚~Nr1wiC+)ͯID6{'g.GB ޲4D⌷ P   w  <]?/Ԍ[Y$֑"l%HpRs̿λ|JmFd'Aof !GzZED?L?6-԰`!, -Al]W-Dqg_w,{&L5`sOe1 .? @O0f>g; 5H;hPS|iZSD!-kŷU ̘ !(ɺtkOW}\hLFk;V" RY{gɒG)Qݝ8` (@q&@"C_^S= nh;?&OЇݜsmLw9բ`4vۼ; Xh.`x1s@~⋴/ _5ů KPT4Lw2A7*Ĵ,wz[~houk}lws2ܼm'FEK5.C& `,.( (Xs!cfrՀ5HEVLs1H8 MC1\,,x޴q~8O bny`{CM@_J ƃuW6qL7."m2:Z1=W~Tw(VS^`BD0h)k"6`$@!deu-?'"w/] "$yW T-E4'._)6( V~`J@vv.¹B:L'9u:̟ Ӯo*GeL@?~7wځw,RB7A$P]L^Ec帹/lg !NGxD{(J1q&`D>H ɜ+LZF#P٧9P9=96B%xkX "އ7 [-5@? ۑ\_=#BwuH-`cF{Mv@6`x>{|jaE/Y;A8öꌚ]_8qKv$ۺK+8yT5ET$qr< wOxCM 3; 5š ,,OQ%*+ VMOOOOMQ PK eZyˆOO@Advanced Movement Add-on RP/sounds/ninja_squirrel/mvt/spring.oggOggS7)~kevorbisDqOggS7)kDvorbis4Xiph.Org libVorbis I 20200704 (Reducing Environment)vorbis)BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s@BDFHJLNP@OggS87)'ZGEN?OHTa3;MVE\BDCDBPPPNL em_옠k;}QѶBHVJH_qeUTU?mRׯ˥̤ћ7oNe.#" sgfޟT=y]{\I;3;L^u]WyW}<i/}ߏe 3s.`fff 늴 yZ<˲<@U`Yx- 0 g?,xe|\oIF2>/~amaLyi 1{qxcINof}v[/m]/=Lfϔ#.# 0C\Z\֜M3906N$4{Ҭd=S&q-$n]q,|zߘwgwͻ'g2;QS( [}W\Ű3P3PS0I!;]MegOUUU$yMU(3KIP[[֑10h0ϾlsCA2u"3f'DwRVimWFR88$@I+X{9CS'Bݣ bpuw9KK~{o_ZO fF*.3eүxT#1 .Wc8Ez:N%]SYغ 3gMIle|hB\顀Q1|z>P)I{^Bwd_ w8~w~NQ"l+ˊ/G=D8ri&l06,]UZpwv 1Z `tX> ebtG=/͎A a5EHR tXE/"c8 vjH؆}!+VtVzz8f j$h)`F{NY;BXit (XZ7>yٖ& t.2K}!P=CeԫNV[VC[1FUG)EÚbMU F;j.alPSP@ ZTU#꾑(]YE 2nU99}cHZXesU8/-ȅ4ጢ3Rؙv @D4Z" [,;lbz[c-~MI1zFn$ "ZM| eJ ኄKE"FQ@+bu@ KURPP$ֲj1 hd LBm,0VK% ["U\D@ 0YT'RA$URt M*Ev簷йFd`@trR`e2jT7+LcAƶ2m} X0@PeYeDt2UL$2i>=5t$.J4"PQ ͨ7%&  \ԐT ActYq( 1>sU EZ#V 9,2@,JIK,q`Duma"d0 *F07ȪVPb]#(1ˈh dQƂk,#P H8MQD |];q;iCaB40yPCq@wnЖ 2 lhm1/I©qY, > vF'wbx}zE̬@41c3Ps*@@" @eeǸMEmVwl@)Uɽf'l" B@A.Kb5z HUXo^ U hQ (jE$* Љ FDh؁ P`64<`avF+ac!vX,cEh P2I J- 0.?c35I0@[f,F,$@eZ*X@'ce %1َzPɤ[!v΋lRzVc\;^Y: y%y~Ps dT2Ȫѩ0*h!2.IoY0HEoѨ)1jB5 M@ B[PcoJ0bf AA,F]YPU@U21HSX$]11`TQ oZe `( ӬNah\[3ZNB@T?NSZ3P3ґ~vQJډJ# h afBGߔ^b?}8G1H,,Y$)@ ?%Ph& 2bFʮ hb΁kq92AJjPs0gBåH(Hs(֫@d*D)wH-0~ CɚB=3#%"va-UZR¢UE4tdF $UZXnP@ UcH(-cT"p2 Bx |Q$P !Hjvӓw̝&ðM^ԴiyB*y^"l.x`Zӻ]3r@WΎȞM3,Oxyt T*Ҁe?S~S~>$PHE *S'ږEhZH:۪[*)ߑrǬZfSyz* ؉b{},VAw`@F; Lр,„((k -RQ\⏧kHJ"Ead823q(o;`R ijF5 T2K^ŬiyY ɇ(귈)iHI-+x<gqE-[^YuT!Qs?2`2zP硶['V֨ۇػ%I׵?7DDDS"%d Zf*\P@H/B+]:ޘ۶K#wtr%̋FugJJ4Zkڟ63ͧiH F2B`X3U} TQ%BN$ (*Yxi؉0:5@7b qU˖v @x ׻`Ls@Ѱ&H0}qz{|t yhW8z,s Y"Ow߃e!x2ҌGs IL :}[my JuꑖsidFd v#Q ǒp7]UV#UW9 1?P{ _Sd[98mM55r M8r Ԧ޾-'G@,.։bnkLr4A9]ŴPRI1]%Q'?7#vsH) s]t)= B?FePf#Rlp$ <; p_h ~,$>uoz'~3ՅcY($Bt)J* W:"VCRb0X$2uO&lcSyۇ9 P|aD ,ZYVԖH,/(WJ(.+\-х.Q~,.vq52gz넳u2#ج+v jҬb1i`keOm,ͭCw ȹ0xau_1 [yƛ2#Zi%71!-׮="JQs⼘k8"4P6*OOf]tL \jA.uu/f "3 VQSZ"PŕJ(*]&U2.v=bZvU?Iť&* o1d|ۏuzue5)+2RUUF[kjl^ir(:S-,%}5`~OggS@k7)IUSK7J9+*:0-2>-:1=,oc|y12>je k6u낙mi4Aq>t.4x!I=.ZQ/:gU?ƃzwU?}-hZmHU$TH -)!QTL p( ɸP ڳ,y &OP3vabyER0AXkLQS%cUF*UP< !VL*^,BEe ˴Xۡ p[`EN+ dV`A`=\gOx1ڴ}`23Xj**adjCb!e'Z)5RU $U m’ X C)(J{04 _x5o>2 GT >hJu4=wwJ M\kiD OIm[ԴĮc$ːgp7I%Z(*/,uhI^q`"@f~ʴ l/P adӫ*,pТ*+@Tf@ (@܉ 4%4S.A1 z6 4@pOvqcq+S.h,W\p3'KzŴ;aHhԸA,#ag.0 iI `I#`^gѻ9B:'aijG'N$wVӖ@ęئUGΐ ދajv`I@VRfv&nb0S.`V5@W~# \8VC=d BBG :h)A@+A0(;1P G3:ӰA`*"ez-%~pCTTȂ*4f:(]`"2 MKp!x .qh@cծT)".K"z\5 {E6Y+C!H*BPmeS3(gT#iX!}F܋?, )0uT,M@J5 HdEIu!MA!Pb5$#Zi)WP'`bC@` gH$p-0.! DeNjr Whd"A%B lqUZMDFLt(u0'@ 9+LYM2AZUN]{( }50+Y(U 5QKE1҃"bf"$0 $ !zpʲM)~hjC#V) gQojiJcs?0ϲLU&*3Y3L[;*2%GWН "DIUI .3|$ZPa% 6cmk (EP $ ʰ`PG#lY) Hjc=1p[f{ChHhs$))(,~g}+"gg.EDM Iَj+EJ@@9:+t'M"2_oTlq81D£ǀXT%i)0H/   JT(M `K 8G؍f-J 0ddnv2S,FڄaSGx{S {ً"aT "0Ή@HIۆ`wlA x@{@`%$ $\l{̌㚀+}{€E d$az6!$Q~gTE7zo7pgTEKqښ"HdKqzy>FM'bjL1 m@:^` B9~EbcE(&k Hň* VA! e $H,i!` nHRMPʰ` yYO!]j $ Հ UQxyT69 Php;a wƪ__NNt" ɳz3Sf f`O( pۍP%teʫP@9p@^gȯDwFMz g `jp3bSȿ46 1ėW "CB@%AHZ$dto Tn*h2@H*N nIY AS0 0: @ 4(q( +0<:c* !@1U(&p@b g椳f1tF 7 P--џ F͢N뀡 4P8cd|_|2rjw^Y=(@E RJm8Me9R @>g#F; ϵTD%:ķmhqTB%Igu&*9j>8kQ4(54DI G!D10֩GF"@U,B8 qѭ$P(H [` Pn0F ՞V"7eTI'$Vd(R'骴(2H Ne! $5“TYXMu2\I Ú54j3KWcF $ZnDL+iM& *0ʣNj EKô[d,j؂dʬ(A@;CX|V,-F3JV/]ZhBI: FR F43)FV} *NBbhXF=]!CpDLq ijc-Acpl]Oo;Q1h˿Yls)r?B~fDSEiFl><"OEK|mE4EIT Qӛ.M 4l 尠Լ@2ˢƀ2a (ccEU,Xl@HFI@@P , Q:aT^$+f@YB#XmO,Cr,TCL TBQ%Dw؛zI#4 ba71$Tfr\YQe*$&"P!Ƒ[TF+4`\ @L }0Ksx~\3<{q $n@HX2*<f'svߑ=mxML`K2Z}񀽤x5NW>U)& !i̩e . URǬS+(P\E')e]aab@/ E+omihd</Ǹ60^j~ޞdIGCIDRIC+<!f#Ku Ûєɓ5ej3%*_\ H2kV h$ճV"ͨ&'[`@*DUQSBϰ- ( vbݚ!@6PXRM5ݐbtڮ$. ]UW7d+< 2qOogN_}|&% n.IWd):YE XL B0%wY&BZI D(奌 N(0oaaן3gOg0Cn8jpB&ywLbZB{-lC EfLQoatK6cdowܒn"_m[-^L*IN` bkP1 m5cXfg5*.@+\5{ j a- ԅ!f,H/^'!jlbBej$3q1TvPEtya KWȸ0UT]w1E27`p JehG f,'^-i閄SS# !!ARKu*DF2 觲"Q*Fh$ V -⡬49`0Q^0Hm` @l((,$:7Ɲ 0 b^F`jԒX Ǐ+21G8 E"fV(Sp'Ey)>4 zVSmlz:NfQwɵ{3p.Lv ˽Dm'9[eU@L7B"ex\xx ?*o 3l`"p}-3VTŷ , J jA >fl/nOk(3x+xyZ3D!>f<ǵ41I"`!7WŏJ74Be,4i)V:CD@@YbXX+VsEj}@ ]2Up2d6K1"ZJDߠk. pH @-1̚8)!a9#raA2JzNdUjg BPl}8+~euw&,\ -A-"[J  b| b+.h/\PC7i$@im)G`H~@"^f& i<5V.lpl` lԷi`RuagHUĂZ 0!)U:=j$ +VaTO^Fax]ȚepWJNEsС "` q$YՎLC>Pȸ )BBGS3hY. {= S-^[{I 2.3H : Y)zC<{V=-Ÿٹv]'6 Dmp 4/ Uf@ti!fs!eŔ1,/L୨hDV Ua^MJa Fle*2j䙳hSEC 0{Z#R*A[T r5UK!C:R{ UC M6X! Y3yiKFm 1J,I:2/,H;O ʩg@]}P.`qgH  dEȊE2"Hjq]00\Ϻgl1oAGLB$&[PΣ HfsHn5u;%\_EdҜTbBU0V|X1-NyDl%jju$̧kXW QH[:D-C#)'`!a*`θGhwsWbzZ; /u0TLf,@eHnT)MRwvM% ܃cR&乌)ƽZC-]W`QiW>%BC qku(_,WЕa(؏~Mv?N0Xd"E|[1%@foO64 wLW0,hжj8ZLwT[itT5;dfްf,Gl"xCFEEhA F4N)!^< II JwujT f*fV"Iٴ&:TpDoGwVޏOsBZ}SVǏ3 zv;9%Y N ^ #vݙX&DhdF0mYP&6 [L!tch<ꃸe(_Y,^ M_0AQ1AmN ^f|c2h+eѫ1NP9`GFhZk-PfLKLbѶn춰*YG+4 UP+JP!"Fۡ {sY\tep2ZǮYf;WnBv6BtLS WE p3[QĪY7Srk/";P>5jʓ < B$V¶ "ib0a^ld6 5md%\ݜW`C=p 3@o.0C HyyP? H҂^fn6#4όf'སFfFJm,.g!]6Zu ɼX>1`*m9VO(Zţ#-PrLD4̌MFFn{mIӁR bULhBp ;AL$&3_1~z 'M 5٢6=˝c\'7h՛ _3o!2Z{>!Bb˱ B!ރ>!Bs! ȍp@\0:˰҈O  00 veVm7u}، zZ;,4d%@0{dbAB1(-g 1bPZƘBH1is! u:rTRk)Z9R 0@P0 F:2BLx  ]B" 'n@BDF@OggS36Dbz V: ADL"ĜA3"RCʇ$d'=MZF2Jd;zu$G\^]q-ln+/* -hwVZa'$뤤Hm!"dB0_Ө!զ{*lCH&PF%ű%KDN#5m׶]=s͛圫u8'k[e;{-9QsRw6֣2@O6iO8mi>_ aGm9~Sf]YigyB-ƕL#*,8AnbTi*D9(h Ml " GĒB*gX6]$ƬdI۩s왑bȘ H"G+ sK'!"T–Yz %UuA$-4'[כ:j $pH`$.sV1I1FN=Q@<uY0JNs?8ͱX~Ew[B{p$Hy"bH|V!0FNw|f w u*! u ?8 VO嚱4߿sl9)ɵ*s\#`%DD$BAIq=W8P/Ӆn:̄\ Y<МYijcPwMg}~vZ+왯$r% 5l9v,*(={|w2G:Dw|W>{+ 5z]g#" 5:nQR9uILEΙ3)i8ZwU0&?^~y=׋fr)$G͙μ;ͺ}fyմb'Ýa+0p@iwtk 0T9v)SdZ1.IbĈ)0&0,nˣ9ڢfPhGi(iXOg/S'1t˟-U0]kʞJ剩穐R0[kj]FqV@_SdX/Ebȴ?Wxyj>PWQ 4Ob(lc4`όHI.Z*1 õ}_"ϬE;r#>H>ml.@!ܸ1[Jl3:x`hIo.e4N밖1}][J?1si3ìО󦅙MD@ߤ `6޷qaB%_AkڸY2EG9<ƿxz~=\$uŢ#O-|Zo2$DqÛ _ ('"Ww-GK棍Mjؘ!flW~Vi$ Ip1AO]ta~8(IZD B׏. oCB(^$0Q~ѓM-AW00֎D⇦?3ȹQ$&T[BtO'RupjnMBGК cVur;ĒF@xr~wI*]\w=Mn%$IWmK뉿^΁71E7떿_6>Q)?hBq@IMy[\ZSX~\WlxsıpI\\0F^θy+~9\~wi .ixꊑv^%ɈI"+㕊eĕTax`$"D@Ei9'{O[rI>ϦTaZ gAR6KJf'˜5:W˭5=w}xaqY]B>r}2j7^,N NMqLm9,Y#Lس '>%ޒ|v?\GMYˡC_CP˝cQ#\{]oj$s?]μ=ܪ"c#QkU&HW)Ϲrgu}O^Y 'D$$L&4m)',-K۟>ilD|FO@?4P<.Z;?[j)=oMۮklE,X&D?6Mp)~ eO, UCUpQTqTvB+9+<iD|Ak3+R |㩓BhZKJ\|Frx²k5ڻp\btѼ{~w9 %Y vvI2XwǯS 5u=boWm|1fcNYpt [S y^o0 "j R\~W'Wa $)_N닣==Շ$<;/g12>ٝc'/o\nzIeؼ37d8:um_[g m~1N cPK eZX0Advanced Movement Add-on RP/texts/languages.json[ "en_US" ]PK eZR6Advanced Movement Add-on RP/textures/item_texture.json{ "resource_pack_name": "ns_mvt", "texture_name": "atlas.items", "texture_data": { "ninja_squirrel_mvt_rocket": { "textures": { "path": "textures/ninja_squirrel/mvt/items/rocket" } }, "ninja_squirrel_mvt_spring": { "textures": { "path": "textures/ninja_squirrel/mvt/items/spring" } }, "ninja_squirrel_mvt_platform": { "textures": { "path": "textures/ninja_squirrel/mvt/items/platform" } }, "ninja_squirrel_mvt_tutorial": { "textures": { "path": "textures/ninja_squirrel/mvt/items/tutorial" } }, "ninja_squirrel_mvt_cannon": { "textures": { "path": "textures/ninja_squirrel/mvt/items/cannon" } } } }PK eZP7Advanced Movement Add-on RP/textures/textures_list.json["textures/ninja_squirrel/mvt/entity/cannon","textures/ninja_squirrel/mvt/entity/platform","textures/ninja_squirrel/mvt/entity/rocket","textures/ninja_squirrel/mvt/entity/slim","textures/ninja_squirrel/mvt/entity/spring","textures/ninja_squirrel/mvt/entity/tutorial","textures/ninja_squirrel/mvt/items/cannon","textures/ninja_squirrel/mvt/items/platform","textures/ninja_squirrel/mvt/items/rocket","textures/ninja_squirrel/mvt/items/spring","textures/ninja_squirrel/mvt/items/tutorial","textures/ninja_squirrel/mvt/particle/particles"]PK eZ?g!]]IAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/entity/cannon.pngPNG  IHDR>asRGBIDATxALUoa-. 4m@r f4jƃ4{^=rl1zd7&P9cڅ]E.nβ;awg 0ʹ}fQfYݮJMz-۾2ڦ|'c;."r:^ݟZg&wD}ak] lrɮ+;}h, #B9?֕j[QYSqPm2ܮb%0 f(DdL/Zw܇UР<; fD{C>@Y{%m:`?ȥ驊?3{H}x_gPw0oՏjW*u?*7Tj>:v^8W <3~ҋRkWGH ;,n;?>)i-%~U*'m Bq?uli-))]<7$Zȭ!ԵBAr b .8]I|/~P)+c& wވ;,Kc>Qc3Tj+1YF4d 1h[ $+\=B9ZǬh, k[W{@f5t !}} вh @ #mߞQVZKSSqm'{o ါ d7<;=5 !޾S@#z @:.sp n-IENDB`PK eZHHKAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/entity/platform.pngPNG  IHDR>asRGBIDATxOkG񟊠9,|0&C!#iNL=`ȱ%1ͭ{-!B Q0>$k/=m(v^Ysֿggvgjt뇻asVs篚wKғ?~c_p`SRcm]tzҵ|$INۑ$T+P$<={MWM!jne"_/%I[ǃs(K%I͍ACIzJg2m(۔eGRU޽=<ߓvtzrU 6c"/M~})~=e>,\ .^Wu9+B/?n#E2AFPKatN[ނ.ëj`KhA'iZ1WhWnt߻Ե|b[qv%Y׿rgu-BpQ2xܽkaL壧FJ0: Ő]ʼ({yݝF`˼ _wY_gܗ^fVœX 5-v:r:6/3 ME>S_AhF2~̴Y6}$}Z[Q?Xm^2 ۹`gT._TYel~)<ӝ?汩<fO\\=Ya"zpԁ+!3n[L7nwFF2X8KVawI*xl͆ղC٘!Itc/Q68<=,sx&/HYK3<$]eư8=ʤbYZM̦ڏ^܁)()NLi_?IAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/entity/rocket.pngPNG  IHDR>asRGByIDATxkggQQM BRJK=^l$aV9lZnTO]D/* z-ʠ""{6z(G(=ۙev>,F԰]ssmżV 29yK Esf9+f?<5X`D-:6^Yݜ*wPֻ׳tL}q&^@2W7'dz3rs{}o~C>A`zm\9!GgˤC>p0]*-˵;8U3R`5P{AxpW ~Mvef { U;ypzhPk4|t$r_ 1_R>_YmETM`V;rOm/- qaU*.OLN4-"}g\};AoSٖyMX5"h%24`FX[+DZN (giYv$ }@ 8mUM=MF^nE*m=m%s2??4:L }$a>t|Wt](Nn'ЙPki.%`t߮r_5]_;gkd r:.hlؗ+ta Nk5[,t *N .{Aϒ›zɣKO0~ shzKv .,Jl ^Q!ug3?R'Hݐ R7(ZvҜUtNPAe.%IJtdj%tEXtdate:create2024-11-29T19:44:38+00:007%tEXtdate:modify2024-11-29T19:44:38+00:00j(tEXtdate:timestamp2024-11-29T19:44:38+00:008tIENDB`PK eZ]IAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/entity/spring.pngPNG  IHDR@@iqsRGBIDATxo0ǿ![BRM۝+;\8: N q 3¦EfPasIcv4ggǂ"͓4ZKo//[=k R1 2qYU{DJO{nW{be+tgsKZ%@bVd͟ufJ OMpTû;O$˜wq|nJ2< A4;.-hbxS%p=?@)5 |Z gx^xy#h3@wEr{.ϣ;[W,(U~Q 7M^?Ny̍ kLI/;m;Q~IHdc;t%KM`<!_jh|5:Q8 AÉ;!W&Japo^}yVļ`VR(:KQPuVT!Tt8"[b(Bઓ CNHOQ Ml>LCd4 Rc֯0Y4U^ Hc^    y!y4XIENDB`PK eZ!KAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/entity/tutorial.pngPNG  IHDR\rfIDATx VUǙgL@{H4CT&SDt4(k$Ԍ6iZRLBjTtURRƩDr[ws8{yͽߙk? k|utYqt́'SK&sv]n;3 Im߽5` V-S}eUZ̿aV& %Ji+um0n5pU0c̛27N~(3 YGg[.2ٱIϙo[۷ӏ9$tk,¤O-,{f-n}l}U>gؾwM] (KխX6 V_ච/2h,譅7Y[.[.m 165pc}xtvvf}xk~22@|_{]絮ncc06 Z4Vw]ۦu~O"V,@AR`AXZ>?3fk+@d-bkugM7[L-z8||;7X!M?Pz2U=/5Z_s+-=@ nTzdu]zgk Zkm+&m*0<ЀkwnNՎ3~䝪 T&5U&f6?@h략N}_ );V34[5m[#/ִvmsnϺN8@WV\ [~?u:U=Aa}BʏϹY-Ozl*YzErb7^8[20݀ ']=5նBsU]_(z &/1Z+c 2v"{D c:o< k $ҽܚzfL`gO "3YfQrz̸c ayf۟yF^y~޸?yҽAL PV P+[qE-߆b_V k=noοC^~QZ9]$ݫ /!;^ȟ/Wt`,cYAdeje}@kPY df3k5]lw`0iLzV̭;MW=O*?&=Kgm?_ΒG~> n[;৪OZZYfeMYu/΂{McggZi~z/& S ~X--o cfc B|`]-#XU~jj?9řϒ0Vq2@mmxԏuBP`yzo 3?,C LѠ NT)H(R L@hЇ5)hD)(# buŦ}?6PrG(`WYy-=&k֬ɤyr}{c.@ (<LzH=I@Wy_[抻j᡼G0&]KLUQ?0`q{Y?Im?O ?//h[cl$ n՟&T49]ut@?fb݀ͽYXw(ЭwHM= ̣?,#F|WQh& Эe ^~f 0 3g[kM@eg_ n@l L>o5ɓ&`&o yNbom/4,g>Mzl@,@8%ȝhʇoU^Z{ |?ַf*OT`oMv=fy~l@&`h@Z| /Y]`e?e>|y fk}[1AJ^|=% `KSqK+o9b3`y M @5AWw L=>]zX'u6|5hnjy,hsD>zή?gB3"33vA1:2kz h~LEg4P#-wM߉e8zzEpLTzhe" "qi3*10A6`ZE2mPj12~qMP|U+ v{t -2l6- ]1߮sgJ2"91ȓ}Fh) \ZgyAhz+e %Z//m@E%Ai~d@U@Ѭw~?TA"qgZ4[ʗid̼jTT+eʼ%52;g)%(3]7Ӫ70(_e繳m[~_/.Z.1.S? pm>N7j!}e  qH%0P^y~OL;1/ۗ9Qw4?9vJw愃25yVO?C?o`7'[.3HuBCE D>^0İ7#o*c05} ` T }P w l }l}=̯i u!;NF0)d״lя~4o*]h*#-y?]7X`u2ݸ ȯ #}@c~N?eop&(Z6ek* 1e1i b@]4Ӈ}f*)k-oz#< C8Ÿ~IENDB`PK eZ$HAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/items/cannon.pngPNG  IHDRaIDATxc`6蓖«P0L|qr-EhpHI b r00>L3g/;uΒ` @jD ./m@kThȑÈ|(Q0Q=OIENDB`PK eZVDJAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/items/platform.pngPNG  IHDRayIDATxc`4st\ZDZQ33+4c5=( 0A@΄y&N mL1̩ >r@2d# @|RlL!D#k&b0N/ ;xdBޏ>;JIENDB`PK eZ&!HAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/items/rocket.pngPNG  IHDRaIDATxc`a'W)Of&F#ΐ節54PU(:e` h@?'_7$`6qK L0C@ I6 D i&hsp⁹ppA4@T-%İjj4m}A N2XMXRM@ddu\+eHd2/:Y3; [kIENDB`PK eZsv:mm2FAdvanced Movement Add-on BP/dialogue/tutorial.jsonPK eZv9u9,Advanced Movement Add-on BP/entities/movement/cannon.jsonPK eZ*;y3Advanced Movement Add-on BP/entities/movement/platform.jsonPK eZS98Advanced Movement Add-on BP/entities/movement/rocket.jsonPK eZI>>9GAdvanced Movement Add-on BP/entities/movement/spring.jsonPK eZ@U#2)Advanced Movement Add-on BP/entities/tutorial.jsonPKekY{$Advanced Movement Add-on BP/info.txtPK eZc~ZZ-7MAdvanced Movement Add-on BP/items/rocket.jsonPK eZ?_/NAdvanced Movement Add-on BP/items/tutorial.jsonPK Z^Nt)Advanced Movement Add-on BP/manifest.jsonPK eZ$)CAdvanced Movement Add-on BP/pack_icon.pngPK eZ\x/&QAdvanced Movement Add-on BP/recipes/cannon.jsonPK eZV}oo2;SAdvanced Movement Add-on BP/recipes/gunpowder.jsonPK eZ21TAdvanced Movement Add-on BP/recipes/platform.jsonPK eZŅ7/VAdvanced Movement Add-on BP/recipes/rocket.jsonPK eZ4X/YAdvanced Movement Add-on BP/recipes/spring.jsonPK eZ{1[Advanced Movement Add-on BP/recipes/tutorial.jsonPK eZn:E%%,]Advanced Movement Add-on BP/scripts/index.jsPK eZ\yy2Advanced Movement Add-on BP/scripts/mobs/cannon.jsPK eZNhv"v"/ѹAdvanced Movement Add-on BP/scripts/mobs/mob.jsPK eZ5(m4Advanced Movement Add-on BP/scripts/mobs/platform.jsPK eZx]]2Advanced Movement Add-on BP/scripts/mobs/player.jsPK eZjq442WAdvanced Movement Add-on BP/scripts/mobs/rocket.jsPK eZr:~ ~ 2Advanced Movement Add-on BP/scripts/mobs/spring.jsPK eZnyRR,aAdvanced Movement Add-on BP/scripts/point.jsPK eZ=]:K +Advanced Movement Add-on BP/scripts/util.jsPK ZJydd,Advanced Movement Add-on BP/texts/en_US.langPK eZX0Advanced Movement Add-on BP/texts/languages.jsonPK eZVJ:DAdvanced Movement Add-on RP/animation_controllers/mvt.jsonPK eZ00/Advanced Movement Add-on RP/animations/mvt.jsonPK eZ>KK2bAdvanced Movement Add-on RP/animations/player.jsonPK eZÑ.+LAdvanced Movement Add-on RP/entity/cannon.jsonPK eZ0OAdvanced Movement Add-on RP/entity/platform.jsonPK eZ'bX.RAdvanced Movement Add-on RP/entity/rocket.jsonPK eZq~$88.XAdvanced Movement Add-on RP/entity/spring.jsonPK eZ*!0_\Advanced Movement Add-on RP/entity/tutorial.jsonPKekY{$Advanced Movement Add-on RP/info.txtPK Z"d T) Advanced Movement Add-on RP/manifest.jsonPK eZx3X9aAdvanced Movement Add-on RP/models/entity/cannon.geo.jsonPK eZt~;hAdvanced Movement Add-on RP/models/entity/platform.geo.jsonPK eZsۿ9mAdvanced Movement Add-on RP/models/entity/rocket.geo.jsonPK eZ@S29tAdvanced Movement Add-on RP/models/entity/spring.geo.jsonPK eZ,Td**;/xAdvanced Movement Add-on RP/models/entity/tutorial.geo.jsonPK eZ$)Advanced Movement Add-on RP/pack_icon.pngPK eZT:Advanced Movement Add-on RP/particles/cannon.particle.jsonPK eZ8zAdvanced Movement Add-on RP/particles/dash.particle.jsonPK eZւYY8Advanced Movement Add-on RP/particles/jump.particle.jsonPK eZvG:Advanced Movement Add-on RP/particles/rocket.particle.jsonPK eZm<8Advanced Movement Add-on RP/particles/soul.particle.jsonPK eZ;  7.Advanced Movement Add-on RP/render_controllers/mvt.jsonPK eZ@imH@H@@Advanced Movement Add-on RP/sounds/ninja_squirrel/mvt/cannon.oggPK eZI>mAdvanced Movement Add-on RP/sounds/ninja_squirrel/mvt/land.oggPK eZ bS55Dj1Advanced Movement Add-on RP/sounds/ninja_squirrel/mvt/rocketloop.oggPK eZ^XR܃܃EgAdvanced Movement Add-on RP/sounds/ninja_squirrel/mvt/rocketstart.oggPK eZyˆOO@Advanced Movement Add-on RP/sounds/ninja_squirrel/mvt/spring.oggPK eZ'k@;Advanced Movement Add-on RP/sounds/ninja_squirrel/mvt/whoosh.oggPK eZ&19Advanced Movement Add-on RP/sounds/sound_definitions.jsonPK Zg!  ,Q Advanced Movement Add-on RP/texts/en_US.langPK eZX0 XAdvanced Movement Add-on RP/texts/languages.jsonPK eZR6gXAdvanced Movement Add-on RP/textures/item_texture.jsonPK eZ?g!]]I]Advanced Movement Add-on RP/textures/ninja_squirrel/mvt/entity/cannon.pngPK eZHHKcAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/entity/platform.pngPK eZ>_?IAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/items/spring.pngPK eZ;CJLAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/items/tutorial.pngPK eZa" NAdvanced Movement Add-on RP/textures/ninja_squirrel/mvt/particle/particles.pngPK eZP7[[Advanced Movement Add-on RP/textures/textures_list.jsonPK ZvZ=Advanced Movement Add-on RP/ui/PK7Yȉ0zAdvanced Movement Add-on RP/ui/debug_screen.jsonPKKKz