feat: add multi-world hub system with lobby portals and hub-return addon
Lobby addon detects players in portal zones at X: -15/0/15 and transfers them to Jamie/Lyla/Mya survival worlds. Hub-return addon gives players a recovery compass and chat commands (!hub, !lobby) to return to the lobby. Includes docker-compose.yml for 4 Bedrock servers (lobby + 3 child worlds), spark pet behavior/resource packs, and updated .gitignore. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
396
addon/spark_pet_BP/entities/dragon_egg.json
Normal file
396
addon/spark_pet_BP/entities/dragon_egg.json
Normal file
@@ -0,0 +1,396 @@
|
||||
{
|
||||
"format_version": "1.21.0",
|
||||
"minecraft:entity": {
|
||||
"description": {
|
||||
"identifier": "silverlabs:dragon_egg",
|
||||
"is_spawnable": false,
|
||||
"is_summonable": true,
|
||||
"is_experimental": false,
|
||||
"properties": {
|
||||
"silverlabs:egg_stage": {
|
||||
"type": "int",
|
||||
"default": 0,
|
||||
"range": [0, 3],
|
||||
"client_sync": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"component_groups": {
|
||||
"silverlabs:egg_cold": {
|
||||
"minecraft:damage_sensor": {
|
||||
"triggers": [
|
||||
{
|
||||
"cause": "fire",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_warming",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "fire_tick",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_warming",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "lava",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_warming",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "magma",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_warming",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "entity_attack",
|
||||
"deals_damage": true
|
||||
},
|
||||
{
|
||||
"cause": "all",
|
||||
"deals_damage": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:timer": {
|
||||
"time": 120,
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:advance_to_warming",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
"minecraft:interact": {
|
||||
"interactions": [
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "blaze_powder" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:advance_to_warming",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": true,
|
||||
"interact_text": "Warm Egg",
|
||||
"play_sounds": "fire.fire"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" }
|
||||
]
|
||||
},
|
||||
"event": "",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false,
|
||||
"interact_text": "The egg feels cold..."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:egg_warming": {
|
||||
"minecraft:damage_sensor": {
|
||||
"triggers": [
|
||||
{
|
||||
"cause": "fire",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_hot",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "fire_tick",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_hot",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "lava",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_hot",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "magma",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_hot",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "entity_attack",
|
||||
"deals_damage": true
|
||||
},
|
||||
{
|
||||
"cause": "all",
|
||||
"deals_damage": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:timer": {
|
||||
"time": 120,
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:advance_to_hot",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
"minecraft:interact": {
|
||||
"interactions": [
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "blaze_powder" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:advance_to_hot",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": true,
|
||||
"interact_text": "Heat Egg",
|
||||
"play_sounds": "fire.fire"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" }
|
||||
]
|
||||
},
|
||||
"event": "",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false,
|
||||
"interact_text": "The egg is getting warmer..."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:egg_hot": {
|
||||
"minecraft:damage_sensor": {
|
||||
"triggers": [
|
||||
{
|
||||
"cause": "fire",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_hatching",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "fire_tick",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_hatching",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "lava",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_hatching",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "magma",
|
||||
"deals_damage": false,
|
||||
"on_damage": {
|
||||
"event": "silverlabs:advance_to_hatching",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cause": "entity_attack",
|
||||
"deals_damage": true
|
||||
},
|
||||
{
|
||||
"cause": "all",
|
||||
"deals_damage": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:timer": {
|
||||
"time": 120,
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:advance_to_hatching",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
"minecraft:interact": {
|
||||
"interactions": [
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "blaze_powder" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:advance_to_hatching",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": true,
|
||||
"interact_text": "Ignite Egg",
|
||||
"play_sounds": "fire.fire"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" }
|
||||
]
|
||||
},
|
||||
"event": "",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false,
|
||||
"interact_text": "The egg is almost ready!"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:egg_hatching": {
|
||||
"minecraft:damage_sensor": {
|
||||
"triggers": [
|
||||
{
|
||||
"cause": "all",
|
||||
"deals_damage": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:spawn_entity": {
|
||||
"entities": [
|
||||
{
|
||||
"min_wait_time": 0,
|
||||
"max_wait_time": 1,
|
||||
"spawn_sound": "mob.enderdragon.growl",
|
||||
"spawn_entity": "silverlabs:spark_dragon",
|
||||
"num_to_spawn": 1,
|
||||
"single_use": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:timer": {
|
||||
"time": 3,
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:despawn_egg",
|
||||
"target": "self"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:egg_despawning": {
|
||||
"minecraft:instant_despawn": {}
|
||||
}
|
||||
},
|
||||
|
||||
"components": {
|
||||
"minecraft:type_family": {
|
||||
"family": ["dragon_egg"]
|
||||
},
|
||||
"minecraft:physics": {},
|
||||
"minecraft:collision_box": {
|
||||
"width": 0.5,
|
||||
"height": 0.6
|
||||
},
|
||||
"minecraft:pushable": {
|
||||
"is_pushable": false,
|
||||
"is_pushable_by_piston": false
|
||||
},
|
||||
"minecraft:knockback_resistance": {
|
||||
"value": 1.0
|
||||
},
|
||||
"minecraft:persistent": {},
|
||||
"minecraft:scale": {
|
||||
"value": 1.0
|
||||
},
|
||||
"minecraft:health": {
|
||||
"value": 4,
|
||||
"max": 4
|
||||
},
|
||||
"minecraft:loot": {
|
||||
"table": "loot_tables/gameplay/egg_pickup.json"
|
||||
},
|
||||
"minecraft:behavior.look_at_player": {
|
||||
"priority": 7,
|
||||
"look_distance": 6.0,
|
||||
"probability": 0.02
|
||||
}
|
||||
},
|
||||
|
||||
"events": {
|
||||
"minecraft:entity_spawned": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:egg_cold"]
|
||||
}
|
||||
},
|
||||
"silverlabs:advance_to_warming": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:egg_cold"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:egg_warming"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:egg_stage": 1
|
||||
}
|
||||
},
|
||||
"silverlabs:advance_to_hot": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:egg_warming"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:egg_hot"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:egg_stage": 2
|
||||
}
|
||||
},
|
||||
"silverlabs:advance_to_hatching": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:egg_hot"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:egg_hatching"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:egg_stage": 3
|
||||
}
|
||||
},
|
||||
"silverlabs:despawn_egg": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:egg_despawning"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user