diff --git a/addon/anthrax_cat_BP/entities/anthrax_cat.json b/addon/anthrax_cat_BP/entities/anthrax_cat.json new file mode 100644 index 0000000..b1c95fc --- /dev/null +++ b/addon/anthrax_cat_BP/entities/anthrax_cat.json @@ -0,0 +1,79 @@ +{ + "format_version": "1.21.0", + "minecraft:entity": { + "description": { + "identifier": "silverlabs:anthrax_cat", + "is_spawnable": true, + "is_summonable": true, + "is_experimental": false + }, + "component_groups": { + "silverlabs:active": { + "minecraft:interact": { + "interactions": [ + { + "interact_text": "action.interact.fortune", + "play_sounds": "note.bell", + "event": "silverlabs:interacted" + } + ] + } + } + }, + "components": { + "minecraft:type_family": { + "family": ["anthrax_cat", "decoration"] + }, + "minecraft:physics": { + "has_gravity": true, + "has_collision": true + }, + "minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": false + }, + "minecraft:collision_box": { + "width": 0.7, + "height": 0.95 + }, + "minecraft:knockback_resistance": { + "value": 1.0 + }, + "minecraft:damage_sensor": { + "triggers": [ + { + "cause": "all", + "deals_damage": false + }, + { + "cause": "override", + "deals_damage": true + } + ] + }, + "minecraft:health": { + "value": 20, + "max": 20 + }, + "minecraft:persistent": {}, + "minecraft:nameable": {}, + "minecraft:behavior.look_at_player": { + "priority": 1, + "target_distance": 8.0, + "look_time": [2, 6], + "probability_per_distance": 0.02 + }, + "minecraft:behavior.random_look_around": { + "priority": 2 + } + }, + "events": { + "minecraft:entity_spawned": { + "add": { + "component_groups": ["silverlabs:active"] + } + }, + "silverlabs:interacted": {} + } + } +} diff --git a/addon/anthrax_cat_BP/manifest.json b/addon/anthrax_cat_BP/manifest.json new file mode 100644 index 0000000..debda4f --- /dev/null +++ b/addon/anthrax_cat_BP/manifest.json @@ -0,0 +1,34 @@ +{ + "format_version": 2, + "header": { + "name": "Anthrax Cat BP", + "description": "Anthrax Cat (Maneki-neko) lucky cat decoration — waving paw, fortune on interact", + "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "version": [1, 0, 0], + "min_engine_version": [1, 21, 0] + }, + "modules": [ + { + "type": "data", + "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901", + "version": [1, 0, 0] + }, + { + "type": "script", + "language": "javascript", + "uuid": "e5f6a7b8-c9d0-1234-efab-345678901234", + "version": [1, 0, 0], + "entry": "scripts/main.js" + } + ], + "dependencies": [ + { + "module_name": "@minecraft/server", + "version": "1.17.0" + }, + { + "uuid": "c3d4e5f6-a7b8-9012-cdef-123456789012", + "version": [1, 0, 0] + } + ] +} diff --git a/addon/anthrax_cat_BP/scripts/main.js b/addon/anthrax_cat_BP/scripts/main.js new file mode 100644 index 0000000..258d5f7 --- /dev/null +++ b/addon/anthrax_cat_BP/scripts/main.js @@ -0,0 +1,23 @@ +import { world } from "@minecraft/server"; + +const FORTUNES = [ + "Great fortune smiles upon you today!", + "Your builds will be legendary.", + "A lucky find awaits you soon.", + "Adventure and treasure lie ahead!", + "The cat's blessing brings you luck.", + "Today is a perfect day to explore.", + "Fortune favors the bold builder!", + "Something wonderful is about to happen.", + "The paw that waves beckons prosperity your way.", + "Keep going — great things await you!", +]; + +world.afterEvents.playerInteractWithEntity.subscribe((event) => { + if (event.target.typeId !== "silverlabs:anthrax_cat") return; + + const player = event.player; + const fortune = FORTUNES[Math.floor(Math.random() * FORTUNES.length)]; + + player.sendMessage(`§6[✦ Anthrax Cat] §e${fortune}`); +}); diff --git a/addon/anthrax_cat_RP/animation_controllers/anthrax_cat.animation_controllers.json b/addon/anthrax_cat_RP/animation_controllers/anthrax_cat.animation_controllers.json new file mode 100644 index 0000000..ae54bad --- /dev/null +++ b/addon/anthrax_cat_RP/animation_controllers/anthrax_cat.animation_controllers.json @@ -0,0 +1,13 @@ +{ + "format_version": "1.10.0", + "animation_controllers": { + "controller.animation.anthrax_cat": { + "initial_state": "default", + "states": { + "default": { + "animations": ["idle", "wave"] + } + } + } + } +} diff --git a/addon/anthrax_cat_RP/animations/anthrax_cat.animation.json b/addon/anthrax_cat_RP/animations/anthrax_cat.animation.json new file mode 100644 index 0000000..a7fb06e --- /dev/null +++ b/addon/anthrax_cat_RP/animations/anthrax_cat.animation.json @@ -0,0 +1,40 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.anthrax_cat.wave": { + "loop": true, + "animation_length": 2.0, + "bones": { + "left_arm": { + "rotation": { + "0.0": [0, 0, 0], + "0.5": [-25, 0, 0], + "1.0": [0, 0, 0], + "1.5": [-25, 0, 0], + "2.0": [0, 0, 0] + } + } + } + }, + "animation.anthrax_cat.idle": { + "loop": true, + "animation_length": 3.0, + "bones": { + "body": { + "position": { + "0.0": [0, 0, 0], + "1.5": [0, 0.3, 0], + "3.0": [0, 0, 0] + } + }, + "head": { + "rotation": { + "0.0": [0, 3, 0], + "1.5": [0, -3, 0], + "3.0": [0, 3, 0] + } + } + } + } + } +} diff --git a/addon/anthrax_cat_RP/entity/anthrax_cat.entity.json b/addon/anthrax_cat_RP/entity/anthrax_cat.entity.json new file mode 100644 index 0000000..cec2b0b --- /dev/null +++ b/addon/anthrax_cat_RP/entity/anthrax_cat.entity.json @@ -0,0 +1,32 @@ +{ + "format_version": "1.10.0", + "minecraft:client_entity": { + "description": { + "identifier": "silverlabs:anthrax_cat", + "materials": { + "default": "entity_alphatest" + }, + "textures": { + "default": "textures/entity/anthrax_cat" + }, + "geometry": { + "default": "geometry.anthrax_cat" + }, + "render_controllers": [ + "controller.render.anthrax_cat" + ], + "animations": { + "idle": "animation.anthrax_cat.idle", + "wave": "animation.anthrax_cat.wave", + "controller": "controller.animation.anthrax_cat" + }, + "scripts": { + "animate": ["controller"] + }, + "spawn_egg": { + "base_color": "#F5F5F0", + "overlay_color": "#CC1111" + } + } + } +} diff --git a/addon/anthrax_cat_RP/manifest.json b/addon/anthrax_cat_RP/manifest.json new file mode 100644 index 0000000..2f2bc15 --- /dev/null +++ b/addon/anthrax_cat_RP/manifest.json @@ -0,0 +1,17 @@ +{ + "format_version": 2, + "header": { + "name": "Anthrax Cat RP", + "description": "Anthrax Cat (Maneki-neko) textures, model, and animations", + "uuid": "c3d4e5f6-a7b8-9012-cdef-123456789012", + "version": [1, 0, 0], + "min_engine_version": [1, 21, 0] + }, + "modules": [ + { + "type": "resources", + "uuid": "d4e5f6a7-b8c9-0123-defa-234567890123", + "version": [1, 0, 0] + } + ] +} diff --git a/addon/anthrax_cat_RP/models/entity/anthrax_cat.geo.json b/addon/anthrax_cat_RP/models/entity/anthrax_cat.geo.json new file mode 100644 index 0000000..de98015 --- /dev/null +++ b/addon/anthrax_cat_RP/models/entity/anthrax_cat.geo.json @@ -0,0 +1,143 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.anthrax_cat", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 1.5, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.5, 0] + }, + "bones": [ + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "body", + "parent": "root", + "pivot": [0, 4, 0], + "cubes": [ + { + "origin": [-4, 0, -3], + "size": [8, 8, 7], + "uv": [0, 0] + } + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 8, 0], + "cubes": [ + { + "origin": [-4, 8, -4], + "size": [8, 7, 8], + "uv": [0, 22] + } + ] + }, + { + "name": "ear_left", + "parent": "head", + "pivot": [-2, 15, 0], + "cubes": [ + { + "origin": [-4, 15, -0.5], + "size": [2, 3, 1], + "uv": [34, 22] + } + ] + }, + { + "name": "ear_right", + "parent": "head", + "pivot": [2, 15, 0], + "cubes": [ + { + "origin": [2, 15, -0.5], + "size": [2, 3, 1], + "uv": [34, 27] + } + ] + }, + { + "name": "left_arm", + "parent": "body", + "pivot": [-3.5, 7, 0], + "cubes": [ + { + "origin": [-4.5, 7, -1], + "size": [2, 5, 2], + "uv": [0, 47] + } + ] + }, + { + "name": "right_arm", + "parent": "body", + "pivot": [3.5, 5, 0], + "cubes": [ + { + "origin": [2.5, 1, -1], + "size": [2, 4, 2], + "uv": [8, 47] + } + ] + }, + { + "name": "tail", + "parent": "body", + "pivot": [0, 3, 3], + "rotation": [-40, 0, 15], + "cubes": [ + { + "origin": [-1, 3, 3], + "size": [2, 5, 2], + "uv": [16, 47] + } + ] + }, + { + "name": "tail_tip", + "parent": "tail", + "pivot": [0, 8, 4], + "rotation": [60, 0, -10], + "cubes": [ + { + "origin": [-1, 8, 4], + "size": [2, 3, 2], + "uv": [24, 47] + } + ] + }, + { + "name": "bib", + "parent": "body", + "pivot": [0, 7, -3], + "cubes": [ + { + "origin": [-3, 5, -4], + "size": [6, 3, 1], + "uv": [0, 56] + } + ] + }, + { + "name": "coin", + "parent": "bib", + "pivot": [0, 6, -4], + "cubes": [ + { + "origin": [-1, 5.5, -5], + "size": [2, 2, 1], + "uv": [14, 56] + } + ] + } + ] + } + ] +} diff --git a/addon/anthrax_cat_RP/render_controllers/anthrax_cat.render_controllers.json b/addon/anthrax_cat_RP/render_controllers/anthrax_cat.render_controllers.json new file mode 100644 index 0000000..db3b761 --- /dev/null +++ b/addon/anthrax_cat_RP/render_controllers/anthrax_cat.render_controllers.json @@ -0,0 +1,10 @@ +{ + "format_version": "1.8.0", + "render_controllers": { + "controller.render.anthrax_cat": { + "geometry": "Geometry.default", + "materials": [{ "*": "Material.default" }], + "textures": ["Texture.default"] + } + } +} diff --git a/addon/anthrax_cat_RP/texts/en_US.lang b/addon/anthrax_cat_RP/texts/en_US.lang new file mode 100644 index 0000000..8045dc1 --- /dev/null +++ b/addon/anthrax_cat_RP/texts/en_US.lang @@ -0,0 +1,2 @@ +entity.silverlabs:anthrax_cat.name=Anthrax Cat +action.interact.fortune=Consult the Anthrax Cat diff --git a/addon/anthrax_cat_RP/textures/entity/anthrax_cat.png b/addon/anthrax_cat_RP/textures/entity/anthrax_cat.png new file mode 100644 index 0000000..0c17727 Binary files /dev/null and b/addon/anthrax_cat_RP/textures/entity/anthrax_cat.png differ diff --git a/docker-compose.yml b/docker-compose.yml index 45021ec..83eda98 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,7 +24,8 @@ services: - ./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 - - ./easter-egg-addon/easter_egg_lobby_BP:/data/behavior_packs/easter_egg_lobby_BP + - ./addon/anthrax_cat_BP:/data/behavior_packs/anthrax_cat_BP + - ./addon/anthrax_cat_RP:/data/resource_packs/anthrax_cat_RP restart: unless-stopped networks: - mc-network @@ -53,7 +54,8 @@ services: - ./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 - - ./easter-egg-addon/easter_egg_child_BP:/data/behavior_packs/easter_egg_child_BP + - ./addon/anthrax_cat_BP:/data/behavior_packs/anthrax_cat_BP + - ./addon/anthrax_cat_RP:/data/resource_packs/anthrax_cat_RP restart: unless-stopped networks: - mc-network @@ -82,7 +84,8 @@ services: - ./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 - - ./easter-egg-addon/easter_egg_child_BP:/data/behavior_packs/easter_egg_child_BP + - ./addon/anthrax_cat_BP:/data/behavior_packs/anthrax_cat_BP + - ./addon/anthrax_cat_RP:/data/resource_packs/anthrax_cat_RP restart: unless-stopped networks: - mc-network @@ -111,7 +114,8 @@ services: - ./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 - - ./easter-egg-addon/easter_egg_child_BP:/data/behavior_packs/easter_egg_child_BP + - ./addon/anthrax_cat_BP:/data/behavior_packs/anthrax_cat_BP + - ./addon/anthrax_cat_RP:/data/resource_packs/anthrax_cat_RP restart: unless-stopped networks: - mc-network