From c176263ec5507d2a99c88b011854a2ee949ee847 Mon Sep 17 00:00:00 2001 From: SysAdmin Date: Mon, 20 Apr 2026 14:19:18 +0100 Subject: [PATCH] feat(monkey): add cheeky banana-throwing monkey addon New silverlabs:cheeky_monkey mob that wanders the lobby watching players and throwing harmless (knockback-only) silverlabs:banana_projectile at them. Drops 1-2 silverlabs:banana (food) on death. Spawn rules target jungle biomes for future deployment to survival worlds; for now the pack is bind-mounted into the lobby service only. Also bundles a stray docker-compose tidy from earlier local work (Jamie's world seed pinned, pet addons dropped from Jamie). Co-Authored-By: Claude Opus 4.7 (1M context) --- docker-compose.yml | 11 +- .../monkey_BP/entities/banana_projectile.json | 41 +++++ .../monkey_BP/entities/cheeky_monkey.json | 118 ++++++++++++++ monkey-addon/monkey_BP/items/banana.json | 32 ++++ .../loot_tables/entities/cheeky_monkey.json | 20 +++ monkey-addon/monkey_BP/manifest.json | 23 +++ monkey-addon/monkey_BP/pack_icon.png | Bin 0 -> 1094 bytes .../monkey_BP/spawn_rules/cheeky_monkey.json | 41 +++++ .../cheeky_monkey.animation_controllers.json | 22 +++ .../banana_projectile.animation.json | 13 ++ .../animations/cheeky_monkey.animation.json | 70 ++++++++ .../entity/banana_projectile.entity.json | 26 +++ .../entity/cheeky_monkey.entity.json | 33 ++++ monkey-addon/monkey_RP/manifest.json | 17 ++ .../models/entity/banana_projectile.geo.json | 41 +++++ .../models/entity/cheeky_monkey.geo.json | 152 ++++++++++++++++++ monkey-addon/monkey_RP/pack_icon.png | Bin 0 -> 1094 bytes .../cheeky_monkey.render_controllers.json | 19 +++ monkey-addon/monkey_RP/texts/en_US.lang | 3 + .../textures/entity/banana_projectile.png | Bin 0 -> 99 bytes .../textures/entity/cheeky_monkey.png | Bin 0 -> 254 bytes .../monkey_RP/textures/item_texture.json | 9 ++ .../monkey_RP/textures/items/banana.png | Bin 0 -> 215 bytes 23 files changed, 683 insertions(+), 8 deletions(-) create mode 100644 monkey-addon/monkey_BP/entities/banana_projectile.json create mode 100644 monkey-addon/monkey_BP/entities/cheeky_monkey.json create mode 100644 monkey-addon/monkey_BP/items/banana.json create mode 100644 monkey-addon/monkey_BP/loot_tables/entities/cheeky_monkey.json create mode 100644 monkey-addon/monkey_BP/manifest.json create mode 100644 monkey-addon/monkey_BP/pack_icon.png create mode 100644 monkey-addon/monkey_BP/spawn_rules/cheeky_monkey.json create mode 100644 monkey-addon/monkey_RP/animation_controllers/cheeky_monkey.animation_controllers.json create mode 100644 monkey-addon/monkey_RP/animations/banana_projectile.animation.json create mode 100644 monkey-addon/monkey_RP/animations/cheeky_monkey.animation.json create mode 100644 monkey-addon/monkey_RP/entity/banana_projectile.entity.json create mode 100644 monkey-addon/monkey_RP/entity/cheeky_monkey.entity.json create mode 100644 monkey-addon/monkey_RP/manifest.json create mode 100644 monkey-addon/monkey_RP/models/entity/banana_projectile.geo.json create mode 100644 monkey-addon/monkey_RP/models/entity/cheeky_monkey.geo.json create mode 100644 monkey-addon/monkey_RP/pack_icon.png create mode 100644 monkey-addon/monkey_RP/render_controllers/cheeky_monkey.render_controllers.json create mode 100644 monkey-addon/monkey_RP/texts/en_US.lang create mode 100644 monkey-addon/monkey_RP/textures/entity/banana_projectile.png create mode 100644 monkey-addon/monkey_RP/textures/entity/cheeky_monkey.png create mode 100644 monkey-addon/monkey_RP/textures/item_texture.json create mode 100644 monkey-addon/monkey_RP/textures/items/banana.png diff --git a/docker-compose.yml b/docker-compose.yml index 8359ff9..4690b28 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,6 +26,8 @@ services: - ./addon/heyhe_pet_RP:/data/resource_packs/heyhe_pet_RP - ./addon/anthrax_cat_BP:/data/behavior_packs/anthrax_cat_BP - ./addon/anthrax_cat_RP:/data/resource_packs/anthrax_cat_RP + - ./monkey-addon/monkey_BP:/data/behavior_packs/monkey_BP + - ./monkey-addon/monkey_RP:/data/resource_packs/monkey_RP restart: unless-stopped networks: - mc-network @@ -42,6 +44,7 @@ services: ONLINE_MODE: "false" SERVER_PORT: "19132" LEVEL_NAME: "Jamie World" + LEVEL_SEED: "-6717666844935858147" MAX_PLAYERS: "10" DEFAULT_PLAYER_PERMISSION_LEVEL: operator OP_PERMISSION_LEVEL: "4" @@ -50,14 +53,6 @@ services: volumes: - jamie-data:/data - ./hub-return-addon/hub_return_transfer_BP:/data/behavior_packs/hub_return_transfer_BP - - ./addon/spark_pet_BP:/data/behavior_packs/spark_pet_BP - - ./addon/spark_pet_RP:/data/resource_packs/spark_pet_RP - - ./addon/heyhe_pet_BP:/data/behavior_packs/heyhe_pet_BP - - ./addon/heyhe_pet_RP:/data/resource_packs/heyhe_pet_RP - - ./addon/anthrax_cat_BP:/data/behavior_packs/anthrax_cat_BP - - ./addon/anthrax_cat_RP:/data/resource_packs/anthrax_cat_RP - - ./village-evolution-addon/village_evolution_BP:/data/behavior_packs/village_evolution_BP - - ./village-evolution-addon/enabled_packs.json:/data/config/default/enabled_packs.json restart: unless-stopped networks: - mc-network diff --git a/monkey-addon/monkey_BP/entities/banana_projectile.json b/monkey-addon/monkey_BP/entities/banana_projectile.json new file mode 100644 index 0000000..cfb2e07 --- /dev/null +++ b/monkey-addon/monkey_BP/entities/banana_projectile.json @@ -0,0 +1,41 @@ +{ + "format_version": "1.21.0", + "minecraft:entity": { + "description": { + "identifier": "silverlabs:banana_projectile", + "is_spawnable": false, + "is_summonable": true, + "is_experimental": false + }, + + "components": { + "minecraft:collision_box": { + "width": 0.25, + "height": 0.25 + }, + "minecraft:physics": {}, + "minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": false + }, + "minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 0, + "knockback": true, + "semi_random_diff_damage": false + }, + "remove_on_hit": {} + }, + "power": 1.3, + "gravity": 0.05, + "inertia": 0.99, + "liquid_inertia": 0.6, + "anchor": 1, + "offset": [0, -0.1, 0], + "should_bounce": false, + "hit_sound": "mob.slime.small" + } + } + } +} diff --git a/monkey-addon/monkey_BP/entities/cheeky_monkey.json b/monkey-addon/monkey_BP/entities/cheeky_monkey.json new file mode 100644 index 0000000..853b0b1 --- /dev/null +++ b/monkey-addon/monkey_BP/entities/cheeky_monkey.json @@ -0,0 +1,118 @@ +{ + "format_version": "1.21.0", + "minecraft:entity": { + "description": { + "identifier": "silverlabs:cheeky_monkey", + "is_spawnable": true, + "is_summonable": true, + "is_experimental": false + }, + + "components": { + "minecraft:type_family": { + "family": ["cheeky_monkey", "monkey", "animal", "mob"] + }, + "minecraft:physics": {}, + "minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true + }, + "minecraft:collision_box": { + "width": 0.5, + "height": 0.9 + }, + "minecraft:health": { + "value": 8, + "max": 8 + }, + "minecraft:movement": { + "value": 0.3 + }, + "minecraft:navigation.walk": { + "can_path_over_water": false, + "avoid_water": true, + "avoid_damage_blocks": true + }, + "minecraft:movement.basic": {}, + "minecraft:jump.static": {}, + "minecraft:can_climb": {}, + "minecraft:breathable": { + "total_supply": 15, + "suffocate_time": -1 + }, + "minecraft:nameable": {}, + "minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { "test": "in_lava", "subject": "self", "operator": "==", "value": true }, + "cause": "lava", + "damage_per_tick": 4 + } + ] + }, + + "minecraft:loot": { + "table": "loot_tables/entities/cheeky_monkey.json" + }, + + "minecraft:shooter": { + "def": "silverlabs:banana_projectile" + }, + + "minecraft:behavior.float": { "priority": 0 }, + + "minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.6 + }, + + "minecraft:behavior.ranged_attack": { + "priority": 3, + "attack_interval_min": 3.0, + "attack_interval_max": 6.0, + "attack_radius": 10.0, + "speed_multiplier": 0.9 + }, + + "minecraft:behavior.nearest_attackable_target": { + "priority": 4, + "within_radius": 16, + "entity_types": [ + { + "filters": { "test": "is_family", "subject": "other", "value": "player" }, + "max_dist": 16 + } + ], + "must_see": false, + "reselect_targets": true, + "must_reach": false + }, + + "minecraft:behavior.move_towards_target": { + "priority": 5, + "speed_multiplier": 0.8, + "within_radius": 10.0 + }, + + "minecraft:behavior.look_at_player": { + "priority": 7, + "target_distance": 14, + "look_time": [3, 7], + "probability": 0.9 + }, + + "minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.7, + "interval": 60, + "xz_dist": 8, + "y_dist": 4 + }, + + "minecraft:behavior.random_look_around": { + "priority": 9, + "look_time": [2, 5] + } + } + } +} diff --git a/monkey-addon/monkey_BP/items/banana.json b/monkey-addon/monkey_BP/items/banana.json new file mode 100644 index 0000000..0096dda --- /dev/null +++ b/monkey-addon/monkey_BP/items/banana.json @@ -0,0 +1,32 @@ +{ + "format_version": "1.21.0", + "minecraft:item": { + "description": { + "identifier": "silverlabs:banana", + "menu_category": { + "category": "nature" + } + }, + "components": { + "minecraft:icon": { + "textures": { + "default": "banana" + } + }, + "minecraft:display_name": { + "value": "Banana" + }, + "minecraft:max_stack_size": 64, + "minecraft:use_animation": "eat", + "minecraft:use_modifiers": { + "use_duration": 1.6, + "movement_modifier": 0.35 + }, + "minecraft:food": { + "nutrition": 4, + "saturation_modifier": 0.6, + "can_always_eat": false + } + } + } +} diff --git a/monkey-addon/monkey_BP/loot_tables/entities/cheeky_monkey.json b/monkey-addon/monkey_BP/loot_tables/entities/cheeky_monkey.json new file mode 100644 index 0000000..64ebd00 --- /dev/null +++ b/monkey-addon/monkey_BP/loot_tables/entities/cheeky_monkey.json @@ -0,0 +1,20 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "silverlabs:banana", + "weight": 1, + "functions": [ + { + "function": "set_count", + "count": { "min": 1, "max": 2 } + } + ] + } + ] + } + ] +} diff --git a/monkey-addon/monkey_BP/manifest.json b/monkey-addon/monkey_BP/manifest.json new file mode 100644 index 0000000..fc7711d --- /dev/null +++ b/monkey-addon/monkey_BP/manifest.json @@ -0,0 +1,23 @@ +{ + "format_version": 2, + "header": { + "name": "Cheeky Monkey", + "description": "Curious banana-throwing monkeys that spawn naturally in jungles.", + "uuid": "c9d1f11c-0eef-4374-81ee-ebde67d7a0a3", + "version": [1, 0, 0], + "min_engine_version": [1, 21, 0] + }, + "modules": [ + { + "type": "data", + "uuid": "48d1d747-0765-49ab-8f50-e9b0236c8e32", + "version": [1, 0, 0] + } + ], + "dependencies": [ + { + "uuid": "7195b65a-171d-4324-a2df-e36ba75ec48a", + "version": [1, 0, 0] + } + ] +} diff --git a/monkey-addon/monkey_BP/pack_icon.png b/monkey-addon/monkey_BP/pack_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd05babecc456df5b037497acc83c01cc60d812 GIT binary patch literal 1094 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVBz(2aSW-L^LDOn-fahg*5i&< z=9;ZnEE^{TE%#tJoSJ27=|1ay8FlX}pTiYbrU}Z7CnhpH@n9%YVXzcxkl}RbV^MG?Tln5}z6B!u zzwbUeKIh!@29FIpvcEoln9Wt!E!LXh)zGoX|6&)0|WCYOC%`Ja1t z55zW{IeMyTIm^1>hOT(F^ETPqGi1yeO@5tzG&NtGG31X`#go`zkeBA1Wm@s~dTRE+ ztLQ#Gm&RyxpYJMD^yl?_Aa5UcW$^613t3Jg>JgWfW)N%gz9yw81-B2xupU;Euvtyey7h>rPT_|N|M=T{aJGRt@$1pYbk+*z@e z!Q1`f&zIF6GT!sWYro7^6+DnrXSBF$|CgV}BKLW|XeZ?vnu)uM*Y*5;+;3jrtx@wN z)WM6f?aG|_-Z836?s4`k`}Szfx7Ycqdl{0XSF$=t)@l^4QQXRqWDN|tE&1$=x87Y* z@uh472PCOzDmCPBN4t0KS;=g2?Dgrtiyo^wB-i}=lz#E!QI-#R=^5LzDvukR#|JCd z<*5g-dz`z{G5B{9B!P?>oD~8;)yP|K(ONHyD>6S^t(Nw9b6PQoRY4 zUuK(LV$6yablJ1+yG(s|)_xhO!u1I!{R9I4NLeqtYUOa`wJo)uai zxry%r`$p*$ts3_zMk@iA6A?f9zA$~!)O3Ef=zFGDgPow!mY^?oXSobgdIfaFYB+is llIDa=Z#*PVLeBfoP;;s%z+|g-3$T1(@O1TaS?83{1OSeY+zbE! literal 0 HcmV?d00001 diff --git a/monkey-addon/monkey_BP/spawn_rules/cheeky_monkey.json b/monkey-addon/monkey_BP/spawn_rules/cheeky_monkey.json new file mode 100644 index 0000000..13a31ea --- /dev/null +++ b/monkey-addon/monkey_BP/spawn_rules/cheeky_monkey.json @@ -0,0 +1,41 @@ +{ + "format_version": "1.8.0", + "minecraft:spawn_rules": { + "description": { + "identifier": "silverlabs:cheeky_monkey", + "population_control": "animal" + }, + "conditions": [ + { + "minecraft:spawns_on_surface": {}, + "minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false + }, + "minecraft:weight": { + "default": 8 + }, + "minecraft:herd": { + "min_size": 2, + "max_size": 4 + }, + "minecraft:density_limit": { + "surface": 4 + }, + "minecraft:biome_filter": { + "any_of": [ + { "test": "has_biome_tag", "value": "jungle" }, + { "test": "has_biome_tag", "value": "bamboo" } + ] + }, + "minecraft:spawns_on_block_filter": [ + "minecraft:grass_block", + "minecraft:dirt", + "minecraft:podzol", + "minecraft:moss_block" + ] + } + ] + } +} diff --git a/monkey-addon/monkey_RP/animation_controllers/cheeky_monkey.animation_controllers.json b/monkey-addon/monkey_RP/animation_controllers/cheeky_monkey.animation_controllers.json new file mode 100644 index 0000000..b86fdad --- /dev/null +++ b/monkey-addon/monkey_RP/animation_controllers/cheeky_monkey.animation_controllers.json @@ -0,0 +1,22 @@ +{ + "format_version": "1.10.0", + "animation_controllers": { + "controller.animation.cheeky_monkey": { + "initial_state": "idle", + "states": { + "idle": { + "animations": ["idle"], + "transitions": [ + { "walk": "query.modified_move_speed > 0.1" } + ] + }, + "walk": { + "animations": ["walk", "idle"], + "transitions": [ + { "idle": "query.modified_move_speed <= 0.1" } + ] + } + } + } + } +} diff --git a/monkey-addon/monkey_RP/animations/banana_projectile.animation.json b/monkey-addon/monkey_RP/animations/banana_projectile.animation.json new file mode 100644 index 0000000..9d35393 --- /dev/null +++ b/monkey-addon/monkey_RP/animations/banana_projectile.animation.json @@ -0,0 +1,13 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.banana_projectile.spin": { + "loop": true, + "bones": { + "banana": { + "rotation": ["query.anim_time * 720", "0", "query.anim_time * 360"] + } + } + } + } +} diff --git a/monkey-addon/monkey_RP/animations/cheeky_monkey.animation.json b/monkey-addon/monkey_RP/animations/cheeky_monkey.animation.json new file mode 100644 index 0000000..f42ebeb --- /dev/null +++ b/monkey-addon/monkey_RP/animations/cheeky_monkey.animation.json @@ -0,0 +1,70 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.cheeky_monkey.idle": { + "loop": true, + "bones": { + "body": { + "rotation": ["0", "math.sin(query.anim_time * 120) * 1.5", "0"] + }, + "head": { + "rotation": ["math.sin(query.anim_time * 90) * 3", "math.sin(query.anim_time * 60) * 5", "0"] + }, + "tail": { + "rotation": ["25 + math.sin(query.anim_time * 180) * 8", "math.sin(query.anim_time * 140) * 10", "0"] + }, + "arm_left": { + "rotation": ["math.sin(query.anim_time * 100) * 3", "0", "0"] + }, + "arm_right": { + "rotation": ["-math.sin(query.anim_time * 100) * 3", "0", "0"] + } + } + }, + + "animation.cheeky_monkey.walk": { + "loop": true, + "anim_time_update": "query.modified_distance_moved * 1.5", + "bones": { + "leg_left": { + "rotation": ["math.sin(query.anim_time * 240) * 30", "0", "0"] + }, + "leg_right": { + "rotation": ["-math.sin(query.anim_time * 240) * 30", "0", "0"] + }, + "arm_left": { + "rotation": ["-math.sin(query.anim_time * 240) * 25", "0", "0"] + }, + "arm_right": { + "rotation": ["math.sin(query.anim_time * 240) * 25", "0", "0"] + }, + "tail": { + "rotation": ["25 + math.sin(query.anim_time * 240) * 15", "0", "0"] + } + } + }, + + "animation.cheeky_monkey.throw": { + "loop": false, + "animation_length": 0.6, + "bones": { + "arm_right": { + "rotation": { + "0.0": [0, 0, 0], + "0.15": [-110, 0, 15], + "0.35": [60, 0, -10], + "0.6": [0, 0, 0] + } + }, + "body": { + "rotation": { + "0.0": [0, 0, 0], + "0.15": [0, -10, 0], + "0.35": [0, 15, 0], + "0.6": [0, 0, 0] + } + } + } + } + } +} diff --git a/monkey-addon/monkey_RP/entity/banana_projectile.entity.json b/monkey-addon/monkey_RP/entity/banana_projectile.entity.json new file mode 100644 index 0000000..abeeb6d --- /dev/null +++ b/monkey-addon/monkey_RP/entity/banana_projectile.entity.json @@ -0,0 +1,26 @@ +{ + "format_version": "1.10.0", + "minecraft:client_entity": { + "description": { + "identifier": "silverlabs:banana_projectile", + "materials": { + "default": "entity_alphatest" + }, + "textures": { + "default": "textures/entity/banana_projectile" + }, + "geometry": { + "default": "geometry.banana_projectile" + }, + "render_controllers": [ + "controller.render.banana_projectile" + ], + "animations": { + "spin": "animation.banana_projectile.spin" + }, + "scripts": { + "animate": ["spin"] + } + } + } +} diff --git a/monkey-addon/monkey_RP/entity/cheeky_monkey.entity.json b/monkey-addon/monkey_RP/entity/cheeky_monkey.entity.json new file mode 100644 index 0000000..d6ea21e --- /dev/null +++ b/monkey-addon/monkey_RP/entity/cheeky_monkey.entity.json @@ -0,0 +1,33 @@ +{ + "format_version": "1.10.0", + "minecraft:client_entity": { + "description": { + "identifier": "silverlabs:cheeky_monkey", + "materials": { + "default": "entity_alphatest" + }, + "textures": { + "default": "textures/entity/cheeky_monkey" + }, + "geometry": { + "default": "geometry.cheeky_monkey" + }, + "render_controllers": [ + "controller.render.cheeky_monkey" + ], + "animations": { + "idle": "animation.cheeky_monkey.idle", + "walk": "animation.cheeky_monkey.walk", + "throw": "animation.cheeky_monkey.throw", + "controller": "controller.animation.cheeky_monkey" + }, + "scripts": { + "animate": ["controller"] + }, + "spawn_egg": { + "base_color": "#6B4423", + "overlay_color": "#F4D03F" + } + } + } +} diff --git a/monkey-addon/monkey_RP/manifest.json b/monkey-addon/monkey_RP/manifest.json new file mode 100644 index 0000000..15b2b6f --- /dev/null +++ b/monkey-addon/monkey_RP/manifest.json @@ -0,0 +1,17 @@ +{ + "format_version": 2, + "header": { + "name": "Cheeky Monkey Resources", + "description": "Textures, models, and animations for the cheeky monkey.", + "uuid": "7195b65a-171d-4324-a2df-e36ba75ec48a", + "version": [1, 0, 0], + "min_engine_version": [1, 21, 0] + }, + "modules": [ + { + "type": "resources", + "uuid": "52b854fe-8b36-4a0d-a94a-d20b8fbca74a", + "version": [1, 0, 0] + } + ] +} diff --git a/monkey-addon/monkey_RP/models/entity/banana_projectile.geo.json b/monkey-addon/monkey_RP/models/entity/banana_projectile.geo.json new file mode 100644 index 0000000..63c2f9a --- /dev/null +++ b/monkey-addon/monkey_RP/models/entity/banana_projectile.geo.json @@ -0,0 +1,41 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.banana_projectile", + "texture_width": 16, + "texture_height": 16, + "visible_bounds_width": 1, + "visible_bounds_height": 1, + "visible_bounds_offset": [0, 0.25, 0] + }, + "bones": [ + { "name": "root", "pivot": [0, 0, 0] }, + { + "name": "banana", + "parent": "root", + "pivot": [0, 0, 0], + "rotation": [0, 0, 25], + "cubes": [ + { + "origin": [-2, 0, -0.5], + "size": [4, 1, 1], + "uv": [0, 0] + }, + { + "origin": [-3, 0.5, -0.5], + "size": [1, 1, 1], + "uv": [0, 2] + }, + { + "origin": [2, 0.5, -0.5], + "size": [1, 1, 1], + "uv": [0, 2] + } + ] + } + ] + } + ] +} diff --git a/monkey-addon/monkey_RP/models/entity/cheeky_monkey.geo.json b/monkey-addon/monkey_RP/models/entity/cheeky_monkey.geo.json new file mode 100644 index 0000000..9a02be3 --- /dev/null +++ b/monkey-addon/monkey_RP/models/entity/cheeky_monkey.geo.json @@ -0,0 +1,152 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.cheeky_monkey", + "texture_width": 64, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 1, 0] + }, + "bones": [ + { "name": "root", "pivot": [0, 0, 0] }, + + { + "name": "body", + "parent": "root", + "pivot": [0, 8, 0], + "cubes": [ + { + "origin": [-3, 4, -2], + "size": [6, 8, 4], + "uv": [0, 0] + } + ] + }, + + { + "name": "head", + "parent": "body", + "pivot": [0, 12, 0], + "cubes": [ + { + "origin": [-3, 12, -3], + "size": [6, 6, 6], + "uv": [20, 0] + } + ] + }, + + { + "name": "muzzle", + "parent": "head", + "pivot": [0, 14, -3], + "cubes": [ + { + "origin": [-1.5, 13, -5], + "size": [3, 2, 2], + "uv": [44, 0] + } + ] + }, + + { + "name": "ear_left", + "parent": "head", + "pivot": [-3, 17, 0], + "cubes": [ + { + "origin": [-4, 16, -1], + "size": [1, 2, 2], + "uv": [50, 0] + } + ] + }, + + { + "name": "ear_right", + "parent": "head", + "pivot": [3, 17, 0], + "mirror": true, + "cubes": [ + { + "origin": [3, 16, -1], + "size": [1, 2, 2], + "uv": [50, 0] + } + ] + }, + + { + "name": "arm_left", + "parent": "body", + "pivot": [-3, 11, 0], + "cubes": [ + { + "origin": [-5, 5, -1], + "size": [2, 6, 2], + "uv": [0, 16] + } + ] + }, + + { + "name": "arm_right", + "parent": "body", + "pivot": [3, 11, 0], + "mirror": true, + "cubes": [ + { + "origin": [3, 5, -1], + "size": [2, 6, 2], + "uv": [0, 16] + } + ] + }, + + { + "name": "leg_left", + "parent": "root", + "pivot": [-1.5, 4, 0], + "cubes": [ + { + "origin": [-2.5, 0, -1], + "size": [2, 4, 2], + "uv": [16, 16] + } + ] + }, + + { + "name": "leg_right", + "parent": "root", + "pivot": [1.5, 4, 0], + "mirror": true, + "cubes": [ + { + "origin": [0.5, 0, -1], + "size": [2, 4, 2], + "uv": [16, 16] + } + ] + }, + + { + "name": "tail", + "parent": "body", + "pivot": [0, 5, 2], + "rotation": [-25, 0, 0], + "cubes": [ + { + "origin": [-0.5, 4.5, 1], + "size": [1, 1, 5], + "uv": [32, 16] + } + ] + } + ] + } + ] +} diff --git a/monkey-addon/monkey_RP/pack_icon.png b/monkey-addon/monkey_RP/pack_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd05babecc456df5b037497acc83c01cc60d812 GIT binary patch literal 1094 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVBz(2aSW-L^LDOn-fahg*5i&< z=9;ZnEE^{TE%#tJoSJ27=|1ay8FlX}pTiYbrU}Z7CnhpH@n9%YVXzcxkl}RbV^MG?Tln5}z6B!u zzwbUeKIh!@29FIpvcEoln9Wt!E!LXh)zGoX|6&)0|WCYOC%`Ja1t z55zW{IeMyTIm^1>hOT(F^ETPqGi1yeO@5tzG&NtGG31X`#go`zkeBA1Wm@s~dTRE+ ztLQ#Gm&RyxpYJMD^yl?_Aa5UcW$^613t3Jg>JgWfW)N%gz9yw81-B2xupU;Euvtyey7h>rPT_|N|M=T{aJGRt@$1pYbk+*z@e z!Q1`f&zIF6GT!sWYro7^6+DnrXSBF$|CgV}BKLW|XeZ?vnu)uM*Y*5;+;3jrtx@wN z)WM6f?aG|_-Z836?s4`k`}Szfx7Ycqdl{0XSF$=t)@l^4QQXRqWDN|tE&1$=x87Y* z@uh472PCOzDmCPBN4t0KS;=g2?Dgrtiyo^wB-i}=lz#E!QI-#R=^5LzDvukR#|JCd z<*5g-dz`z{G5B{9B!P?>oD~8;)yP|K(ONHyD>6S^t(Nw9b6PQoRY4 zUuK(LV$6yablJ1+yG(s|)_xhO!u1I!{R9I4NLeqtYUOa`wJo)uai zxry%r`$p*$ts3_zMk@iA6A?f9zA$~!)O3Ef=zFGDgPow!mY^?oXSobgdIfaFYB+is llIDa=Z#*PVLeBfoP;;s%z+|g-3$T1(@O1TaS?83{1OSeY+zbE! literal 0 HcmV?d00001 diff --git a/monkey-addon/monkey_RP/render_controllers/cheeky_monkey.render_controllers.json b/monkey-addon/monkey_RP/render_controllers/cheeky_monkey.render_controllers.json new file mode 100644 index 0000000..be4cb13 --- /dev/null +++ b/monkey-addon/monkey_RP/render_controllers/cheeky_monkey.render_controllers.json @@ -0,0 +1,19 @@ +{ + "format_version": "1.10.0", + "render_controllers": { + "controller.render.cheeky_monkey": { + "geometry": "geometry.default", + "materials": [ + { "*": "material.default" } + ], + "textures": ["texture.default"] + }, + "controller.render.banana_projectile": { + "geometry": "geometry.default", + "materials": [ + { "*": "material.default" } + ], + "textures": ["texture.default"] + } + } +} diff --git a/monkey-addon/monkey_RP/texts/en_US.lang b/monkey-addon/monkey_RP/texts/en_US.lang new file mode 100644 index 0000000..2084c60 --- /dev/null +++ b/monkey-addon/monkey_RP/texts/en_US.lang @@ -0,0 +1,3 @@ +entity.silverlabs:cheeky_monkey.name=Cheeky Monkey +item.spawn_egg.entity.silverlabs:cheeky_monkey.name=Spawn Cheeky Monkey +item.silverlabs:banana=Banana diff --git a/monkey-addon/monkey_RP/textures/entity/banana_projectile.png b/monkey-addon/monkey_RP/textures/entity/banana_projectile.png new file mode 100644 index 0000000000000000000000000000000000000000..de65d0f0302456e024031c9ee6cdfea2dc34491f GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`TAnVBAr*6y{}ed=v}cx6NGO~x xINwIt&NJzNfkDI5W4--TW*Kt19aLaon7oi}{jHA&Yk;~KJYD@<);T3K0RYEX9g+Y5 literal 0 HcmV?d00001 diff --git a/monkey-addon/monkey_RP/textures/entity/cheeky_monkey.png b/monkey-addon/monkey_RP/textures/entity/cheeky_monkey.png new file mode 100644 index 0000000000000000000000000000000000000000..2e8ace74ef12571ad10a15ece2b9f2319da28125 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQb#>q978JRBDvxnMRB;1$hm zJ9s8NAt7N!bTMQ4LN_f5U&b$M*wke!4gu92nDAVo`H-4u&oTxrCb6ohHksQ`j@alP z=%{Z+KPozS{CWAq zH~;zX{yUs=Je7gl%rV6|Vb(@V`J=32ocR(!y&YG@VrIEBPGw+dVel%cf0lR$=u!qx LS3j3^P6