diff --git a/addon/spark_pet_BP/blocks/dragon_nest_crimson.json b/addon/spark_pet_BP/blocks/dragon_nest_crimson.json new file mode 100644 index 0000000..6defb5d --- /dev/null +++ b/addon/spark_pet_BP/blocks/dragon_nest_crimson.json @@ -0,0 +1,20 @@ +{ + "format_version": "1.21.0", + "minecraft:block": { + "description": { + "identifier": "silverlabs:dragon_nest_crimson", + "menu_category": { "category": "items", "group": "itemGroup.name.bed" } + }, + "components": { + "minecraft:geometry": "geometry.dragon_basket", + "minecraft:material_instances": { + "*": { "texture": "dragon_nest_crimson", "render_method": "alpha_test" } + }, + "minecraft:collision_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:selection_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:destructible_by_mining": { "seconds_to_destroy": 1.0 }, + "minecraft:destructible_by_explosion": { "explosion_resistance": 2.0 }, + "minecraft:map_color": "#9B2323" + } + } +} diff --git a/addon/spark_pet_BP/blocks/dragon_nest_jungle.json b/addon/spark_pet_BP/blocks/dragon_nest_jungle.json new file mode 100644 index 0000000..0b85d5f --- /dev/null +++ b/addon/spark_pet_BP/blocks/dragon_nest_jungle.json @@ -0,0 +1,20 @@ +{ + "format_version": "1.21.0", + "minecraft:block": { + "description": { + "identifier": "silverlabs:dragon_nest_jungle", + "menu_category": { "category": "items", "group": "itemGroup.name.bed" } + }, + "components": { + "minecraft:geometry": "geometry.dragon_basket", + "minecraft:material_instances": { + "*": { "texture": "dragon_nest_jungle", "render_method": "alpha_test" } + }, + "minecraft:collision_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:selection_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:destructible_by_mining": { "seconds_to_destroy": 1.0 }, + "minecraft:destructible_by_explosion": { "explosion_resistance": 2.0 }, + "minecraft:map_color": "#5A8A3C" + } + } +} diff --git a/addon/spark_pet_BP/blocks/dragon_nest_oak.json b/addon/spark_pet_BP/blocks/dragon_nest_oak.json new file mode 100644 index 0000000..e562303 --- /dev/null +++ b/addon/spark_pet_BP/blocks/dragon_nest_oak.json @@ -0,0 +1,20 @@ +{ + "format_version": "1.21.0", + "minecraft:block": { + "description": { + "identifier": "silverlabs:dragon_nest_oak", + "menu_category": { "category": "items", "group": "itemGroup.name.bed" } + }, + "components": { + "minecraft:geometry": "geometry.dragon_basket", + "minecraft:material_instances": { + "*": { "texture": "dragon_nest_oak", "render_method": "alpha_test" } + }, + "minecraft:collision_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:selection_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:destructible_by_mining": { "seconds_to_destroy": 1.0 }, + "minecraft:destructible_by_explosion": { "explosion_resistance": 2.0 }, + "minecraft:map_color": "#C8A87A" + } + } +} diff --git a/addon/spark_pet_BP/blocks/dragon_nest_obsidian.json b/addon/spark_pet_BP/blocks/dragon_nest_obsidian.json new file mode 100644 index 0000000..2b365fb --- /dev/null +++ b/addon/spark_pet_BP/blocks/dragon_nest_obsidian.json @@ -0,0 +1,20 @@ +{ + "format_version": "1.21.0", + "minecraft:block": { + "description": { + "identifier": "silverlabs:dragon_nest_obsidian", + "menu_category": { "category": "items", "group": "itemGroup.name.bed" } + }, + "components": { + "minecraft:geometry": "geometry.dragon_basket", + "minecraft:material_instances": { + "*": { "texture": "dragon_nest_obsidian", "render_method": "alpha_test" } + }, + "minecraft:collision_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:selection_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:destructible_by_mining": { "seconds_to_destroy": 3.0 }, + "minecraft:destructible_by_explosion": { "explosion_resistance": 6.0 }, + "minecraft:map_color": "#1A1022" + } + } +} diff --git a/addon/spark_pet_BP/blocks/dragon_nest_spruce.json b/addon/spark_pet_BP/blocks/dragon_nest_spruce.json new file mode 100644 index 0000000..7092a4b --- /dev/null +++ b/addon/spark_pet_BP/blocks/dragon_nest_spruce.json @@ -0,0 +1,20 @@ +{ + "format_version": "1.21.0", + "minecraft:block": { + "description": { + "identifier": "silverlabs:dragon_nest_spruce", + "menu_category": { "category": "items", "group": "itemGroup.name.bed" } + }, + "components": { + "minecraft:geometry": "geometry.dragon_basket", + "minecraft:material_instances": { + "*": { "texture": "dragon_nest_spruce", "render_method": "alpha_test" } + }, + "minecraft:collision_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:selection_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:destructible_by_mining": { "seconds_to_destroy": 1.0 }, + "minecraft:destructible_by_explosion": { "explosion_resistance": 2.0 }, + "minecraft:map_color": "#7B5B3A" + } + } +} diff --git a/addon/spark_pet_BP/blocks/dragon_nest_warped.json b/addon/spark_pet_BP/blocks/dragon_nest_warped.json new file mode 100644 index 0000000..7bad4ba --- /dev/null +++ b/addon/spark_pet_BP/blocks/dragon_nest_warped.json @@ -0,0 +1,20 @@ +{ + "format_version": "1.21.0", + "minecraft:block": { + "description": { + "identifier": "silverlabs:dragon_nest_warped", + "menu_category": { "category": "items", "group": "itemGroup.name.bed" } + }, + "components": { + "minecraft:geometry": "geometry.dragon_basket", + "minecraft:material_instances": { + "*": { "texture": "dragon_nest_warped", "render_method": "alpha_test" } + }, + "minecraft:collision_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:selection_box": { "origin": [-7, 0, -7], "size": [14, 5, 14] }, + "minecraft:destructible_by_mining": { "seconds_to_destroy": 1.0 }, + "minecraft:destructible_by_explosion": { "explosion_resistance": 2.0 }, + "minecraft:map_color": "#2A8A7B" + } + } +} diff --git a/addon/spark_pet_BP/entities/dragon_egg.json b/addon/spark_pet_BP/entities/dragon_egg.json index da2190a..0594391 100644 --- a/addon/spark_pet_BP/entities/dragon_egg.json +++ b/addon/spark_pet_BP/entities/dragon_egg.json @@ -10,7 +10,13 @@ "silverlabs:egg_stage": { "type": "int", "default": 0, - "range": [0, 3], + "range": [0, 2], + "client_sync": true + }, + "silverlabs:egg_color": { + "type": "int", + "default": 0, + "range": [0, 5], "client_sync": true } } @@ -19,55 +25,18 @@ "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 - } + { "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, + "time": 180, "looping": false, - "time_down_event": { - "event": "silverlabs:advance_to_warming", - "target": "self" - } + "time_down_event": { "event": "silverlabs:advance_to_warming", "target": "self" } }, "minecraft:interact": { "interactions": [ @@ -76,23 +45,19 @@ "filters": { "all_of": [ { "test": "is_family", "subject": "other", "value": "player" }, - { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "blaze_powder" } + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bone_meal" } ] }, "event": "silverlabs:advance_to_warming", "target": "self" }, "use_item": true, - "interact_text": "Warm Egg", - "play_sounds": "fire.fire" + "interact_text": "Warm Egg (Bonemeal)", + "play_sounds": "block.bone_block.place" }, { "on_interact": { - "filters": { - "all_of": [ - { "test": "is_family", "subject": "other", "value": "player" } - ] - }, + "filters": { "all_of": [{ "test": "is_family", "subject": "other", "value": "player" }] }, "event": "", "target": "self" }, @@ -106,142 +71,18 @@ "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 - } + { "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_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" - } + "time_down_event": { "event": "silverlabs:advance_to_hatching", "target": "self" } }, "minecraft:interact": { "interactions": [ @@ -257,21 +98,17 @@ "target": "self" }, "use_item": true, - "interact_text": "Ignite Egg", + "interact_text": "Ignite Egg (Blaze Powder)", "play_sounds": "fire.fire" }, { "on_interact": { - "filters": { - "all_of": [ - { "test": "is_family", "subject": "other", "value": "player" } - ] - }, + "filters": { "all_of": [{ "test": "is_family", "subject": "other", "value": "player" }] }, "event": "", "target": "self" }, "use_item": false, - "interact_text": "The egg is almost ready!" + "interact_text": "The egg is warming up..." } ] } @@ -279,12 +116,7 @@ "silverlabs:egg_hatching": { "minecraft:damage_sensor": { - "triggers": [ - { - "cause": "all", - "deals_damage": false - } - ] + "triggers": [{ "cause": "all", "deals_damage": false }] }, "minecraft:spawn_entity": { "entities": [ @@ -293,18 +125,16 @@ "max_wait_time": 1, "spawn_sound": "mob.enderdragon.growl", "spawn_entity": "silverlabs:spark_dragon", + "spawn_event": "silverlabs:born_color_0", "num_to_spawn": 1, "single_use": true } ] }, "minecraft:timer": { - "time": 3, + "time": [60, 90], "looping": false, - "time_down_event": { - "event": "silverlabs:despawn_egg", - "target": "self" - } + "time_down_event": { "event": "silverlabs:despawn_egg", "target": "self" } } }, @@ -349,47 +179,20 @@ "events": { "minecraft:entity_spawned": { - "add": { - "component_groups": ["silverlabs:egg_cold"] - } + "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 - } + "remove": { "component_groups": ["silverlabs:egg_cold"] }, + "add": { "component_groups": ["silverlabs:egg_warming"] }, + "set_property": { "silverlabs:egg_stage": 1 } }, "silverlabs:advance_to_hatching": { - "remove": { - "component_groups": ["silverlabs:egg_hot"] - }, - "add": { - "component_groups": ["silverlabs:egg_hatching"] - }, - "set_property": { - "silverlabs:egg_stage": 3 - } + "remove": { "component_groups": ["silverlabs:egg_warming"] }, + "add": { "component_groups": ["silverlabs:egg_hatching"] }, + "set_property": { "silverlabs:egg_stage": 2 } }, "silverlabs:despawn_egg": { - "add": { - "component_groups": ["silverlabs:egg_despawning"] - } + "add": { "component_groups": ["silverlabs:egg_despawning"] } } } } diff --git a/addon/spark_pet_BP/entities/dragon_egg_color_0.json b/addon/spark_pet_BP/entities/dragon_egg_color_0.json new file mode 100644 index 0000000..33ae27b --- /dev/null +++ b/addon/spark_pet_BP/entities/dragon_egg_color_0.json @@ -0,0 +1,127 @@ +{ + "format_version": "1.21.0", + "minecraft:entity": { + "description": { + "identifier": "silverlabs:dragon_egg_color_0", + "is_spawnable": false, + "is_summonable": true, + "is_experimental": false, + "properties": { + "silverlabs:egg_stage": { "type": "int", "default": 0, "range": [0, 2], "client_sync": true }, + "silverlabs:egg_color": { "type": "int", "default": 0, "range": [0, 5], "client_sync": true } + } + }, + "component_groups": { + "silverlabs:egg_cold": { + "minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bone_meal" } + ] + }, + "event": "silverlabs:advance_to_warming", "target": "self" + }, + "use_item": true, "interact_text": "Warm with Bonemeal", "play_sounds": "block.bone_block.place" + }, + { + "on_interact": { + "filters": { "all_of": [{ "test": "is_family", "subject": "other", "value": "player" }] }, + "event": "", "target": "self" + }, + "use_item": false, "interact_text": "The egg feels cold... (use Bonemeal)" + } + ] + }, + "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": "entity_attack", "deals_damage": true }, + { "cause": "all", "deals_damage": false } + ] + }, + "minecraft:timer": { "time": 180, "looping": false, "time_down_event": { "event": "silverlabs:advance_to_warming", "target": "self" } } + }, + "silverlabs:egg_warming": { + "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 with Blaze Powder", "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 warming up... (use Blaze Powder)" + } + ] + }, + "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": "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" } } + }, + "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", + "spawn_event": "silverlabs:born_color_0", + "num_to_spawn": 1, "single_use": true + }] + }, + "minecraft:timer": { "time": [60, 90], "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_hatching": { + "remove": { "component_groups": ["silverlabs:egg_warming"] }, + "add": { "component_groups": ["silverlabs:egg_hatching"] }, + "set_property": { "silverlabs:egg_stage": 2 } + }, + "silverlabs:despawn_egg": { "add": { "component_groups": ["silverlabs:egg_despawning"] } } + } + } +} diff --git a/addon/spark_pet_BP/entities/dragon_egg_color_1.json b/addon/spark_pet_BP/entities/dragon_egg_color_1.json new file mode 100644 index 0000000..cdb7ba5 --- /dev/null +++ b/addon/spark_pet_BP/entities/dragon_egg_color_1.json @@ -0,0 +1,127 @@ +{ + "format_version": "1.21.0", + "minecraft:entity": { + "description": { + "identifier": "silverlabs:dragon_egg_color_1", + "is_spawnable": false, + "is_summonable": true, + "is_experimental": false, + "properties": { + "silverlabs:egg_stage": { "type": "int", "default": 0, "range": [0, 2], "client_sync": true }, + "silverlabs:egg_color": { "type": "int", "default": 1, "range": [0, 5], "client_sync": true } + } + }, + "component_groups": { + "silverlabs:egg_cold": { + "minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bone_meal" } + ] + }, + "event": "silverlabs:advance_to_warming", "target": "self" + }, + "use_item": true, "interact_text": "Warm with Bonemeal", "play_sounds": "block.bone_block.place" + }, + { + "on_interact": { + "filters": { "all_of": [{ "test": "is_family", "subject": "other", "value": "player" }] }, + "event": "", "target": "self" + }, + "use_item": false, "interact_text": "The egg has a warm brown glow... (use Bonemeal)" + } + ] + }, + "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": "entity_attack", "deals_damage": true }, + { "cause": "all", "deals_damage": false } + ] + }, + "minecraft:timer": { "time": 180, "looping": false, "time_down_event": { "event": "silverlabs:advance_to_warming", "target": "self" } } + }, + "silverlabs:egg_warming": { + "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 with Blaze Powder", "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 warming to brown... (use Blaze Powder)" + } + ] + }, + "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": "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" } } + }, + "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", + "spawn_event": "silverlabs:born_color_1", + "num_to_spawn": 1, "single_use": true + }] + }, + "minecraft:timer": { "time": [60, 90], "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_hatching": { + "remove": { "component_groups": ["silverlabs:egg_warming"] }, + "add": { "component_groups": ["silverlabs:egg_hatching"] }, + "set_property": { "silverlabs:egg_stage": 2 } + }, + "silverlabs:despawn_egg": { "add": { "component_groups": ["silverlabs:egg_despawning"] } } + } + } +} diff --git a/addon/spark_pet_BP/entities/dragon_egg_color_2.json b/addon/spark_pet_BP/entities/dragon_egg_color_2.json new file mode 100644 index 0000000..ec9d25a --- /dev/null +++ b/addon/spark_pet_BP/entities/dragon_egg_color_2.json @@ -0,0 +1,127 @@ +{ + "format_version": "1.21.0", + "minecraft:entity": { + "description": { + "identifier": "silverlabs:dragon_egg_color_2", + "is_spawnable": false, + "is_summonable": true, + "is_experimental": false, + "properties": { + "silverlabs:egg_stage": { "type": "int", "default": 0, "range": [0, 2], "client_sync": true }, + "silverlabs:egg_color": { "type": "int", "default": 2, "range": [0, 5], "client_sync": true } + } + }, + "component_groups": { + "silverlabs:egg_cold": { + "minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bone_meal" } + ] + }, + "event": "silverlabs:advance_to_warming", "target": "self" + }, + "use_item": true, "interact_text": "Warm with Bonemeal", "play_sounds": "block.bone_block.place" + }, + { + "on_interact": { + "filters": { "all_of": [{ "test": "is_family", "subject": "other", "value": "player" }] }, + "event": "", "target": "self" + }, + "use_item": false, "interact_text": "The egg glows with forest green... (use Bonemeal)" + } + ] + }, + "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": "entity_attack", "deals_damage": true }, + { "cause": "all", "deals_damage": false } + ] + }, + "minecraft:timer": { "time": 180, "looping": false, "time_down_event": { "event": "silverlabs:advance_to_warming", "target": "self" } } + }, + "silverlabs:egg_warming": { + "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 with Blaze Powder", "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 shimmers greener... (use Blaze Powder)" + } + ] + }, + "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": "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" } } + }, + "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", + "spawn_event": "silverlabs:born_color_2", + "num_to_spawn": 1, "single_use": true + }] + }, + "minecraft:timer": { "time": [60, 90], "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_hatching": { + "remove": { "component_groups": ["silverlabs:egg_warming"] }, + "add": { "component_groups": ["silverlabs:egg_hatching"] }, + "set_property": { "silverlabs:egg_stage": 2 } + }, + "silverlabs:despawn_egg": { "add": { "component_groups": ["silverlabs:egg_despawning"] } } + } + } +} diff --git a/addon/spark_pet_BP/entities/dragon_egg_color_3.json b/addon/spark_pet_BP/entities/dragon_egg_color_3.json new file mode 100644 index 0000000..9308bb3 --- /dev/null +++ b/addon/spark_pet_BP/entities/dragon_egg_color_3.json @@ -0,0 +1,127 @@ +{ + "format_version": "1.21.0", + "minecraft:entity": { + "description": { + "identifier": "silverlabs:dragon_egg_color_3", + "is_spawnable": false, + "is_summonable": true, + "is_experimental": false, + "properties": { + "silverlabs:egg_stage": { "type": "int", "default": 0, "range": [0, 2], "client_sync": true }, + "silverlabs:egg_color": { "type": "int", "default": 3, "range": [0, 5], "client_sync": true } + } + }, + "component_groups": { + "silverlabs:egg_cold": { + "minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bone_meal" } + ] + }, + "event": "silverlabs:advance_to_warming", "target": "self" + }, + "use_item": true, "interact_text": "Warm with Bonemeal", "play_sounds": "block.bone_block.place" + }, + { + "on_interact": { + "filters": { "all_of": [{ "test": "is_family", "subject": "other", "value": "player" }] }, + "event": "", "target": "self" + }, + "use_item": false, "interact_text": "The egg pulses deep red... (use Bonemeal)" + } + ] + }, + "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": "entity_attack", "deals_damage": true }, + { "cause": "all", "deals_damage": false } + ] + }, + "minecraft:timer": { "time": 180, "looping": false, "time_down_event": { "event": "silverlabs:advance_to_warming", "target": "self" } } + }, + "silverlabs:egg_warming": { + "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 with Blaze Powder", "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 grows hotter red... (use Blaze Powder)" + } + ] + }, + "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": "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" } } + }, + "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", + "spawn_event": "silverlabs:born_color_3", + "num_to_spawn": 1, "single_use": true + }] + }, + "minecraft:timer": { "time": [60, 90], "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_hatching": { + "remove": { "component_groups": ["silverlabs:egg_warming"] }, + "add": { "component_groups": ["silverlabs:egg_hatching"] }, + "set_property": { "silverlabs:egg_stage": 2 } + }, + "silverlabs:despawn_egg": { "add": { "component_groups": ["silverlabs:egg_despawning"] } } + } + } +} diff --git a/addon/spark_pet_BP/entities/dragon_egg_color_4.json b/addon/spark_pet_BP/entities/dragon_egg_color_4.json new file mode 100644 index 0000000..a065905 --- /dev/null +++ b/addon/spark_pet_BP/entities/dragon_egg_color_4.json @@ -0,0 +1,127 @@ +{ + "format_version": "1.21.0", + "minecraft:entity": { + "description": { + "identifier": "silverlabs:dragon_egg_color_4", + "is_spawnable": false, + "is_summonable": true, + "is_experimental": false, + "properties": { + "silverlabs:egg_stage": { "type": "int", "default": 0, "range": [0, 2], "client_sync": true }, + "silverlabs:egg_color": { "type": "int", "default": 4, "range": [0, 5], "client_sync": true } + } + }, + "component_groups": { + "silverlabs:egg_cold": { + "minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bone_meal" } + ] + }, + "event": "silverlabs:advance_to_warming", "target": "self" + }, + "use_item": true, "interact_text": "Warm with Bonemeal", "play_sounds": "block.bone_block.place" + }, + { + "on_interact": { + "filters": { "all_of": [{ "test": "is_family", "subject": "other", "value": "player" }] }, + "event": "", "target": "self" + }, + "use_item": false, "interact_text": "The egg shimmers teal... (use Bonemeal)" + } + ] + }, + "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": "entity_attack", "deals_damage": true }, + { "cause": "all", "deals_damage": false } + ] + }, + "minecraft:timer": { "time": 180, "looping": false, "time_down_event": { "event": "silverlabs:advance_to_warming", "target": "self" } } + }, + "silverlabs:egg_warming": { + "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 with Blaze Powder", "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 glows teal bright... (use Blaze Powder)" + } + ] + }, + "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": "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" } } + }, + "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", + "spawn_event": "silverlabs:born_color_4", + "num_to_spawn": 1, "single_use": true + }] + }, + "minecraft:timer": { "time": [60, 90], "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_hatching": { + "remove": { "component_groups": ["silverlabs:egg_warming"] }, + "add": { "component_groups": ["silverlabs:egg_hatching"] }, + "set_property": { "silverlabs:egg_stage": 2 } + }, + "silverlabs:despawn_egg": { "add": { "component_groups": ["silverlabs:egg_despawning"] } } + } + } +} diff --git a/addon/spark_pet_BP/entities/dragon_egg_color_5.json b/addon/spark_pet_BP/entities/dragon_egg_color_5.json new file mode 100644 index 0000000..1306eee --- /dev/null +++ b/addon/spark_pet_BP/entities/dragon_egg_color_5.json @@ -0,0 +1,127 @@ +{ + "format_version": "1.21.0", + "minecraft:entity": { + "description": { + "identifier": "silverlabs:dragon_egg_color_5", + "is_spawnable": false, + "is_summonable": true, + "is_experimental": false, + "properties": { + "silverlabs:egg_stage": { "type": "int", "default": 0, "range": [0, 2], "client_sync": true }, + "silverlabs:egg_color": { "type": "int", "default": 5, "range": [0, 5], "client_sync": true } + } + }, + "component_groups": { + "silverlabs:egg_cold": { + "minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bone_meal" } + ] + }, + "event": "silverlabs:advance_to_warming", "target": "self" + }, + "use_item": true, "interact_text": "Warm with Bonemeal", "play_sounds": "block.bone_block.place" + }, + { + "on_interact": { + "filters": { "all_of": [{ "test": "is_family", "subject": "other", "value": "player" }] }, + "event": "", "target": "self" + }, + "use_item": false, "interact_text": "The egg radiates dark energy... (use Bonemeal)" + } + ] + }, + "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": "entity_attack", "deals_damage": true }, + { "cause": "all", "deals_damage": false } + ] + }, + "minecraft:timer": { "time": 180, "looping": false, "time_down_event": { "event": "silverlabs:advance_to_warming", "target": "self" } } + }, + "silverlabs:egg_warming": { + "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 with Blaze Powder", "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 dark egg simmers... (use Blaze Powder)" + } + ] + }, + "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": "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" } } + }, + "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", + "spawn_event": "silverlabs:born_color_5", + "num_to_spawn": 1, "single_use": true + }] + }, + "minecraft:timer": { "time": [60, 90], "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_hatching": { + "remove": { "component_groups": ["silverlabs:egg_warming"] }, + "add": { "component_groups": ["silverlabs:egg_hatching"] }, + "set_property": { "silverlabs:egg_stage": 2 } + }, + "silverlabs:despawn_egg": { "add": { "component_groups": ["silverlabs:egg_despawning"] } } + } + } +} diff --git a/addon/spark_pet_BP/entities/spark_dragon.json b/addon/spark_pet_BP/entities/spark_dragon.json index 3228c10..73f7066 100644 --- a/addon/spark_pet_BP/entities/spark_dragon.json +++ b/addon/spark_pet_BP/entities/spark_dragon.json @@ -23,21 +23,39 @@ "default": 1, "range": [0, 2], "client_sync": true + }, + "silverlabs:trait": { + "type": "int", + "default": 0, + "range": [0, 4], + "client_sync": true + }, + "silverlabs:firing": { + "type": "bool", + "default": false, + "client_sync": true + }, + "silverlabs:dragon_color": { + "type": "int", + "default": 0, + "range": [0, 5], + "client_sync": true } } }, "component_groups": { + "silverlabs:wild": { "minecraft:behavior.tempt": { "priority": 3, - "speed_multiplier": 0.8, + "speed_multiplier": 0.5, "items": ["fish", "salmon"], "can_tempt_vertically": true }, "minecraft:behavior.avoid_mob_type": { "priority": 4, "max_dist": 8, - "walk_speed_multiplier": 1.0, + "walk_speed_multiplier": 0.8, "entity_types": [ { "filters": { @@ -46,7 +64,7 @@ "value": "monster" }, "max_dist": 8, - "walk_speed_multiplier": 1.0 + "walk_speed_multiplier": 0.8 } ] } @@ -56,13 +74,13 @@ "minecraft:is_tamed": {}, "minecraft:behavior.follow_owner": { "priority": 4, - "speed_multiplier": 0.8, - "start_distance": 8, - "stop_distance": 3 + "speed_multiplier": 0.35, + "start_distance": 6, + "stop_distance": 4 }, "minecraft:behavior.tempt": { - "priority": 3, - "speed_multiplier": 0.8, + "priority": 5, + "speed_multiplier": 0.4, "items": ["fish", "salmon"], "can_tempt_vertically": true }, @@ -96,7 +114,7 @@ }, "minecraft:behavior.melee_attack": { "priority": 2, - "speed_multiplier": 1.0, + "speed_multiplier": 0.8, "reach_multiplier": 1.0, "track_target": true }, @@ -113,27 +131,27 @@ "minecraft:is_tamed": {}, "minecraft:behavior.follow_owner": { "priority": 2, - "speed_multiplier": 0.8, - "start_distance": 8, - "stop_distance": 3 + "speed_multiplier": 0.3, + "start_distance": 6, + "stop_distance": 5 }, "minecraft:sittable": {}, "minecraft:persistent": {}, "minecraft:teleport": { "dark_teleport_chance": 0.0, - "light_teleport_chance": 0.1, - "max_random_teleport_time": 10, - "min_random_teleport_time": 5, - "random_teleport_cube_size": [10, 5, 10], + "light_teleport_chance": 0.01, + "max_random_teleport_time": 60, + "min_random_teleport_time": 30, + "random_teleport_cube_size": [8, 4, 8], "target_distance": 64, - "target_teleport_chance": 0.3 + "target_teleport_chance": 0.04 } }, "silverlabs:returning_fetch": { "minecraft:behavior.follow_owner": { "priority": 1, - "speed_multiplier": 1.0, + "speed_multiplier": 0.7, "start_distance": 15, "stop_distance": 2 }, @@ -143,7 +161,7 @@ "cooldown": 60, "drop_item_chance": 1.0, "offering_distance": 5.0, - "speed_multiplier": 1.0, + "speed_multiplier": 0.7, "search_range": 20, "search_height": 4, "target_range": [5, 5, 5], @@ -182,7 +200,7 @@ "filters": { "all_of": [ { "test": "hourly_clock_time", "operator": ">=", "value": 0 }, - { "test": "hourly_clock_time", "operator": "<", "value": 12000 } + { "test": "hourly_clock_time", "operator": "<", "value": 7000 } ] }, "event": "silverlabs:start_exploring" @@ -190,8 +208,8 @@ { "filters": { "all_of": [ - { "test": "hourly_clock_time", "operator": ">=", "value": 12000 }, - { "test": "hourly_clock_time", "operator": "<", "value": 13000 } + { "test": "hourly_clock_time", "operator": ">=", "value": 7000 }, + { "test": "hourly_clock_time", "operator": "<", "value": 9000 } ] }, "event": "silverlabs:go_home" @@ -199,8 +217,8 @@ { "filters": { "all_of": [ - { "test": "hourly_clock_time", "operator": ">=", "value": 13000 }, - { "test": "hourly_clock_time", "operator": "<", "value": 23000 } + { "test": "hourly_clock_time", "operator": ">=", "value": 9000 }, + { "test": "hourly_clock_time", "operator": "<", "value": 22000 } ] }, "event": "silverlabs:start_sleeping" @@ -208,7 +226,7 @@ { "filters": { "all_of": [ - { "test": "hourly_clock_time", "operator": ">=", "value": 23000 } + { "test": "hourly_clock_time", "operator": ">=", "value": 22000 } ] }, "event": "silverlabs:start_exploring" @@ -220,8 +238,8 @@ "silverlabs:exploring": { "minecraft:behavior.random_stroll": { "priority": 6, - "speed_multiplier": 0.5, - "xz_dist": 12, + "speed_multiplier": 0.3, + "xz_dist": 10, "y_dist": 2 }, "minecraft:behavior.random_look_around": { @@ -232,7 +250,7 @@ "silverlabs:going_home": { "minecraft:behavior.go_home": { "priority": 2, - "speed_multiplier": 0.8, + "speed_multiplier": 0.5, "interval": 1, "goal_radius": 2, "on_home": [ @@ -271,7 +289,7 @@ "minecraft:is_tamed": {}, "minecraft:behavior.follow_owner": { "priority": 1, - "speed_multiplier": 1.0, + "speed_multiplier": 0.9, "start_distance": 200, "stop_distance": 3 }, @@ -301,7 +319,7 @@ "cooldown": 99999, "drop_item_chance": 1.0, "offering_distance": 5.0, - "speed_multiplier": 1.0, + "speed_multiplier": 0.5, "search_range": 10, "search_height": 4, "target_range": [5, 5, 5], @@ -369,14 +387,14 @@ } }, "minecraft:scale": { - "value": 0.4 + "value": 0.65 }, "minecraft:collision_box": { - "width": 0.35, - "height": 0.3 + "width": 0.5, + "height": 0.45 }, "minecraft:movement": { - "value": 0.15 + "value": 0.10 }, "minecraft:health": { "value": 10, @@ -389,7 +407,7 @@ "drop_item_chance": 0.6, "offering_distance": 5.0, "minimum_teleport_distance": 2.0, - "speed_multiplier": 1.0, + "speed_multiplier": 0.5, "search_range": 10, "search_height": 2, "target_range": [5, 5, 5], @@ -409,7 +427,7 @@ }, "minecraft:behavior.play": { "priority": 5, - "speed_multiplier": 0.7, + "speed_multiplier": 0.5, "friend_types": [ { "filters": { @@ -424,14 +442,14 @@ "silverlabs:stage_juvenile": { "minecraft:scale": { - "value": 0.7 + "value": 0.9 }, "minecraft:collision_box": { - "width": 0.5, - "height": 0.4 + "width": 0.6, + "height": 0.5 }, "minecraft:movement": { - "value": 0.2 + "value": 0.14 }, "minecraft:health": { "value": 20, @@ -455,7 +473,7 @@ "drop_item_chance": 0.7, "offering_distance": 5.0, "minimum_teleport_distance": 2.0, - "speed_multiplier": 1.0, + "speed_multiplier": 0.6, "search_range": 12, "search_height": 2, "target_range": [5, 5, 5], @@ -475,7 +493,7 @@ }, "minecraft:behavior.play": { "priority": 5, - "speed_multiplier": 0.8, + "speed_multiplier": 0.6, "friend_types": [ { "filters": { @@ -488,7 +506,7 @@ }, "minecraft:behavior.raid_garden": { "priority": 6, - "speed_multiplier": 1.0, + "speed_multiplier": 0.5, "search_range": 12, "search_height": 2, "goal_radius": 1.0, @@ -499,14 +517,14 @@ "silverlabs:stage_adult": { "minecraft:scale": { - "value": 1.0 + "value": 1.3 }, "minecraft:collision_box": { - "width": 0.6, - "height": 0.5 + "width": 0.8, + "height": 0.65 }, "minecraft:movement": { - "value": 0.25 + "value": 0.18 }, "minecraft:health": { "value": 30, @@ -519,7 +537,46 @@ }, "minecraft:movement.fly": {}, "minecraft:flying_speed": { - "value": 0.04 + "value": 0.06 + }, + "minecraft:rideable": { + "seat_count": 1, + "family_types": ["player"], + "interact_text": "action.interact.mount", + "seats": [ + { + "position": [0, 0.9, -0.3], + "lock_rider_rotation": 90, + "min_rider_count": 0, + "max_rider_count": 1 + } + ] + }, + "minecraft:input_ground_controlled": {}, + "minecraft:behavior.nearest_attackable_target": { + "priority": 5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "monster" + }, + "max_dist": 12 + } + ], + "must_see": true, + "reselect_targets": true + }, + "minecraft:shooter": { + "def": "minecraft:small_fireball" + }, + "minecraft:behavior.ranged_attack": { + "priority": 3, + "attack_interval_min": 2.0, + "attack_interval_max": 4.0, + "attack_radius": 12.0, + "speed_multiplier": 0.8 }, "minecraft:behavior.drop_item_for": { "priority": 5, @@ -528,7 +585,7 @@ "drop_item_chance": 0.8, "offering_distance": 5.0, "minimum_teleport_distance": 2.0, - "speed_multiplier": 1.0, + "speed_multiplier": 0.5, "search_range": 16, "search_height": 4, "target_range": [5, 5, 5], @@ -546,6 +603,109 @@ } ] } + }, + + "silverlabs:fire_breathing": { + "minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "monster" + }, + "max_dist": 20 + } + ], + "must_see": false, + "reselect_targets": true + }, + "minecraft:behavior.ranged_attack": { + "priority": 1, + "attack_interval_min": 0.8, + "attack_interval_max": 1.5, + "attack_radius": 18.0, + "speed_multiplier": 0.5 + }, + "minecraft:timer": { + "time": [4, 6], + "looping": false, + "time_down_event": { + "event": "silverlabs:fire_breath_end", + "target": "self" + } + } + }, + + "silverlabs:trait_relaxed": { + "minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.12, + "xz_dist": 3, + "y_dist": 1 + }, + "minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 7.0, + "probability": 0.03 + } + }, + + "silverlabs:trait_explorer": { + "minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.22, + "xz_dist": 14, + "y_dist": 3 + }, + "minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 8.0, + "probability": 0.01 + } + }, + + "silverlabs:trait_affectionate": { + "minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.14, + "xz_dist": 4, + "y_dist": 1 + }, + "minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 14.0, + "probability": 0.10 + } + }, + + "silverlabs:trait_playful": { + "minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.20, + "xz_dist": 8, + "y_dist": 2 + }, + "minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 9.0, + "probability": 0.05 + } + }, + + "silverlabs:trait_independent": { + "minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.18, + "xz_dist": 12, + "y_dist": 3 + }, + "minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 5.0, + "probability": 0.005 + } } }, @@ -565,7 +725,7 @@ "avoid_damage_blocks": true }, "minecraft:movement.basic": { - "max_turn": 20.0 + "max_turn": 12.0 }, "minecraft:jump.static": {}, "minecraft:tameable": { @@ -599,6 +759,14 @@ { "cause": "fall", "deals_damage": false + }, + { + "cause": "fire", + "deals_damage": false + }, + { + "cause": "fire_tick", + "deals_damage": false } ] }, @@ -615,8 +783,8 @@ }, "minecraft:behavior.random_stroll": { "priority": 8, - "speed_multiplier": 0.4, - "xz_dist": 7, + "speed_multiplier": 0.2, + "xz_dist": 5, "y_dist": 2 }, "minecraft:interact": { @@ -680,6 +848,109 @@ "interact_text": "Request Guide", "play_sounds": "random.orb" }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "chicken" }, + { "test": "is_sneaking", "subject": "other", "value": true }, + { "test": "has_component", "value": "minecraft:is_tamed" } + ] + }, + "event": "silverlabs:set_trait_relaxed", + "target": "self" + }, + "use_item": true, + "interact_text": "Teach: Relaxed", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "beef" }, + { "test": "is_sneaking", "subject": "other", "value": true }, + { "test": "has_component", "value": "minecraft:is_tamed" } + ] + }, + "event": "silverlabs:set_trait_explorer", + "target": "self" + }, + "use_item": true, + "interact_text": "Teach: Explorer", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "cooked_salmon" }, + { "test": "is_sneaking", "subject": "other", "value": true }, + { "test": "has_component", "value": "minecraft:is_tamed" } + ] + }, + "event": "silverlabs:set_trait_affectionate", + "target": "self" + }, + "use_item": true, + "interact_text": "Teach: Affectionate", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "melon_slice" }, + { "test": "is_sneaking", "subject": "other", "value": true }, + { "test": "has_component", "value": "minecraft:is_tamed" } + ] + }, + "event": "silverlabs:set_trait_playful", + "target": "self" + }, + "use_item": true, + "interact_text": "Teach: Playful", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bamboo" }, + { "test": "is_sneaking", "subject": "other", "value": true }, + { "test": "has_component", "value": "minecraft:is_tamed" } + ] + }, + "event": "silverlabs:set_trait_independent", + "target": "self" + }, + "use_item": true, + "interact_text": "Teach: Independent", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "fire_charge" }, + { "test": "is_sneaking", "subject": "other", "value": true }, + { "test": "has_component", "value": "minecraft:is_tamed" }, + { "test": "has_component", "value": "minecraft:can_fly" } + ] + }, + "event": "silverlabs:fire_breath_start", + "target": "self" + }, + "use_item": true, + "interact_text": "Breathe Fire", + "play_sounds": "fire.fire" + }, { "on_interact": { "filters": { @@ -798,25 +1069,36 @@ "component_groups": ["silverlabs:wild", "silverlabs:stage_baby"] } }, + "silverlabs:on_tamed": { "remove": { "component_groups": ["silverlabs:wild"] }, "add": { - "component_groups": ["silverlabs:tamed", "silverlabs:tamed_loot", "silverlabs:guide_drop", "silverlabs:mood_happy"] + "component_groups": [ + "silverlabs:tamed", + "silverlabs:tamed_loot", + "silverlabs:guide_drop", + "silverlabs:mood_happy", + "silverlabs:trait_relaxed" + ] }, "set_property": { - "silverlabs:mood": 2 + "silverlabs:mood": 2, + "silverlabs:trait": 0 } }, + "silverlabs:request_guide": { "add": { "component_groups": ["silverlabs:guide_drop"] } }, + "silverlabs:guide_dropped": { "remove": { "component_groups": ["silverlabs:guide_drop"] } }, + "silverlabs:mood_boost": { "remove": { "component_groups": ["silverlabs:mood_happy", "silverlabs:mood_content", "silverlabs:mood_needy"] @@ -828,6 +1110,7 @@ "silverlabs:mood": 2 } }, + "silverlabs:mood_decay_to_content": { "remove": { "component_groups": ["silverlabs:mood_happy"] @@ -839,6 +1122,7 @@ "silverlabs:mood": 1 } }, + "silverlabs:mood_decay_to_needy": { "remove": { "component_groups": ["silverlabs:mood_content"] @@ -850,9 +1134,13 @@ "silverlabs:mood": 0 } }, + "silverlabs:grow_to_juvenile": { "remove": { - "component_groups": ["silverlabs:stage_baby", "silverlabs:mood_happy", "silverlabs:mood_content", "silverlabs:mood_needy"] + "component_groups": [ + "silverlabs:stage_baby", + "silverlabs:mood_happy", "silverlabs:mood_content", "silverlabs:mood_needy" + ] }, "add": { "component_groups": ["silverlabs:stage_juvenile"] @@ -862,6 +1150,7 @@ "silverlabs:mood": 1 } }, + "silverlabs:grow_to_adult": { "remove": { "component_groups": ["silverlabs:stage_juvenile"] @@ -874,14 +1163,19 @@ "silverlabs:mood": 1 } }, + "silverlabs:ball_caught": { "add": { "component_groups": ["silverlabs:returning_fetch"] } }, + "silverlabs:fetch_complete": { "remove": { - "component_groups": ["silverlabs:returning_fetch", "silverlabs:mood_happy", "silverlabs:mood_content", "silverlabs:mood_needy"] + "component_groups": [ + "silverlabs:returning_fetch", + "silverlabs:mood_happy", "silverlabs:mood_content", "silverlabs:mood_needy" + ] }, "add": { "component_groups": ["silverlabs:tamed_following", "silverlabs:mood_happy"] @@ -890,28 +1184,37 @@ "silverlabs:mood": 2 } }, + "silverlabs:command_follow": { "add": { "component_groups": ["silverlabs:tamed_following", "silverlabs:beacon_on"] }, "remove": { - "component_groups": ["silverlabs:exploring", "silverlabs:sleeping", "silverlabs:going_home", "silverlabs:sitting", "silverlabs:returning_fetch", "silverlabs:tamed_called"] + "component_groups": [ + "silverlabs:exploring", "silverlabs:sleeping", "silverlabs:going_home", + "silverlabs:sitting", "silverlabs:returning_fetch", "silverlabs:tamed_called" + ] }, "set_property": { "silverlabs:beacon_active": true } }, + "silverlabs:whistle_called": { "add": { "component_groups": ["silverlabs:tamed_called", "silverlabs:beacon_on"] }, "remove": { - "component_groups": ["silverlabs:exploring", "silverlabs:sleeping", "silverlabs:going_home", "silverlabs:sitting", "silverlabs:returning_fetch", "silverlabs:tamed_following"] + "component_groups": [ + "silverlabs:exploring", "silverlabs:sleeping", "silverlabs:going_home", + "silverlabs:sitting", "silverlabs:returning_fetch", "silverlabs:tamed_following" + ] }, "set_property": { "silverlabs:beacon_active": true } }, + "silverlabs:activate_beacon": { "add": { "component_groups": ["silverlabs:beacon_on"] @@ -920,6 +1223,7 @@ "silverlabs:beacon_active": true } }, + "silverlabs:beacon_off": { "remove": { "component_groups": ["silverlabs:beacon_on", "silverlabs:tamed_called"] @@ -931,54 +1235,77 @@ "silverlabs:beacon_active": false } }, + "silverlabs:command_go_home": { "add": { "component_groups": ["silverlabs:going_home"] }, "remove": { - "component_groups": ["silverlabs:exploring", "silverlabs:tamed_following", "silverlabs:sitting", "silverlabs:returning_fetch"] + "component_groups": [ + "silverlabs:exploring", "silverlabs:tamed_following", + "silverlabs:sitting", "silverlabs:returning_fetch" + ] } }, + "silverlabs:set_home": { "add": { "component_groups": ["silverlabs:has_home", "silverlabs:exploring"] }, "remove": { - "component_groups": ["silverlabs:tamed_following", "silverlabs:sleeping", "silverlabs:going_home", "silverlabs:sitting", "silverlabs:returning_fetch"] + "component_groups": [ + "silverlabs:tamed_following", "silverlabs:sleeping", + "silverlabs:going_home", "silverlabs:sitting", "silverlabs:returning_fetch" + ] } }, + "silverlabs:start_exploring": { "add": { "component_groups": ["silverlabs:exploring"] }, "remove": { - "component_groups": ["silverlabs:sleeping", "silverlabs:going_home", "silverlabs:sitting", "silverlabs:returning_fetch"] + "component_groups": [ + "silverlabs:sleeping", "silverlabs:going_home", + "silverlabs:sitting", "silverlabs:returning_fetch" + ] } }, + "silverlabs:go_home": { "add": { "component_groups": ["silverlabs:going_home"] }, "remove": { - "component_groups": ["silverlabs:exploring", "silverlabs:sleeping", "silverlabs:returning_fetch"] + "component_groups": [ + "silverlabs:exploring", "silverlabs:sleeping", "silverlabs:returning_fetch" + ] } }, + "silverlabs:start_sleeping": { "add": { "component_groups": ["silverlabs:sleeping"] }, "remove": { - "component_groups": ["silverlabs:exploring", "silverlabs:going_home", "silverlabs:returning_fetch"] + "component_groups": [ + "silverlabs:exploring", "silverlabs:going_home", "silverlabs:returning_fetch" + ] } }, + "silverlabs:on_sit": { "add": { "component_groups": ["silverlabs:sitting"] }, "remove": { - "component_groups": ["silverlabs:exploring", "silverlabs:going_home", "silverlabs:tamed_following", "silverlabs:returning_fetch"] + "component_groups": [ + "silverlabs:exploring", "silverlabs:going_home", + "silverlabs:tamed_following", "silverlabs:returning_fetch" + ] } }, + "silverlabs:on_stand": { "remove": { "component_groups": ["silverlabs:sitting", "silverlabs:sleeping", "silverlabs:returning_fetch"] @@ -986,6 +1313,95 @@ "add": { "component_groups": ["silverlabs:tamed_following"] } + }, + + "silverlabs:set_trait_relaxed": { + "remove": { + "component_groups": [ + "silverlabs:trait_relaxed", "silverlabs:trait_explorer", + "silverlabs:trait_affectionate", "silverlabs:trait_playful", + "silverlabs:trait_independent" + ] + }, + "add": { "component_groups": ["silverlabs:trait_relaxed"] }, + "set_property": { "silverlabs:trait": 0 } + }, + + "silverlabs:set_trait_explorer": { + "remove": { + "component_groups": [ + "silverlabs:trait_relaxed", "silverlabs:trait_explorer", + "silverlabs:trait_affectionate", "silverlabs:trait_playful", + "silverlabs:trait_independent" + ] + }, + "add": { "component_groups": ["silverlabs:trait_explorer"] }, + "set_property": { "silverlabs:trait": 1 } + }, + + "silverlabs:set_trait_affectionate": { + "remove": { + "component_groups": [ + "silverlabs:trait_relaxed", "silverlabs:trait_explorer", + "silverlabs:trait_affectionate", "silverlabs:trait_playful", + "silverlabs:trait_independent" + ] + }, + "add": { "component_groups": ["silverlabs:trait_affectionate"] }, + "set_property": { "silverlabs:trait": 2 } + }, + + "silverlabs:set_trait_playful": { + "remove": { + "component_groups": [ + "silverlabs:trait_relaxed", "silverlabs:trait_explorer", + "silverlabs:trait_affectionate", "silverlabs:trait_playful", + "silverlabs:trait_independent" + ] + }, + "add": { "component_groups": ["silverlabs:trait_playful"] }, + "set_property": { "silverlabs:trait": 3 } + }, + + "silverlabs:set_trait_independent": { + "remove": { + "component_groups": [ + "silverlabs:trait_relaxed", "silverlabs:trait_explorer", + "silverlabs:trait_affectionate", "silverlabs:trait_playful", + "silverlabs:trait_independent" + ] + }, + "add": { "component_groups": ["silverlabs:trait_independent"] }, + "set_property": { "silverlabs:trait": 4 } + }, + + "silverlabs:fire_breath_start": { + "add": { "component_groups": ["silverlabs:fire_breathing"] }, + "set_property": { "silverlabs:firing": true } + }, + + "silverlabs:fire_breath_end": { + "remove": { "component_groups": ["silverlabs:fire_breathing"] }, + "set_property": { "silverlabs:firing": false } + }, + + "silverlabs:born_color_0": { + "set_property": { "silverlabs:dragon_color": 0 } + }, + "silverlabs:born_color_1": { + "set_property": { "silverlabs:dragon_color": 1 } + }, + "silverlabs:born_color_2": { + "set_property": { "silverlabs:dragon_color": 2 } + }, + "silverlabs:born_color_3": { + "set_property": { "silverlabs:dragon_color": 3 } + }, + "silverlabs:born_color_4": { + "set_property": { "silverlabs:dragon_color": 4 } + }, + "silverlabs:born_color_5": { + "set_property": { "silverlabs:dragon_color": 5 } } } } diff --git a/addon/spark_pet_BP/items/dragon_egg_crimson.json b/addon/spark_pet_BP/items/dragon_egg_crimson.json new file mode 100644 index 0000000..b212e8a --- /dev/null +++ b/addon/spark_pet_BP/items/dragon_egg_crimson.json @@ -0,0 +1,16 @@ +{ + "format_version": "1.21.120", + "minecraft:item": { + "description": { + "identifier": "silverlabs:dragon_egg_crimson", + "menu_category": { "category": "items" } + }, + "components": { + "minecraft:icon": "dragon_egg_crimson", + "minecraft:display_name": { "value": "item.silverlabs:dragon_egg_crimson.name" }, + "minecraft:max_stack_size": 1, + "minecraft:glint": true, + "minecraft:entity_placer": { "entity": "silverlabs:dragon_egg_color_3" } + } + } +} diff --git a/addon/spark_pet_BP/items/dragon_egg_jungle.json b/addon/spark_pet_BP/items/dragon_egg_jungle.json new file mode 100644 index 0000000..e1b5981 --- /dev/null +++ b/addon/spark_pet_BP/items/dragon_egg_jungle.json @@ -0,0 +1,16 @@ +{ + "format_version": "1.21.120", + "minecraft:item": { + "description": { + "identifier": "silverlabs:dragon_egg_jungle", + "menu_category": { "category": "items" } + }, + "components": { + "minecraft:icon": "dragon_egg_jungle", + "minecraft:display_name": { "value": "item.silverlabs:dragon_egg_jungle.name" }, + "minecraft:max_stack_size": 1, + "minecraft:glint": true, + "minecraft:entity_placer": { "entity": "silverlabs:dragon_egg_color_2" } + } + } +} diff --git a/addon/spark_pet_BP/items/dragon_egg_oak.json b/addon/spark_pet_BP/items/dragon_egg_oak.json new file mode 100644 index 0000000..c77d20c --- /dev/null +++ b/addon/spark_pet_BP/items/dragon_egg_oak.json @@ -0,0 +1,16 @@ +{ + "format_version": "1.21.120", + "minecraft:item": { + "description": { + "identifier": "silverlabs:dragon_egg_oak", + "menu_category": { "category": "items" } + }, + "components": { + "minecraft:icon": "dragon_egg_oak", + "minecraft:display_name": { "value": "item.silverlabs:dragon_egg_oak.name" }, + "minecraft:max_stack_size": 1, + "minecraft:glint": true, + "minecraft:entity_placer": { "entity": "silverlabs:dragon_egg_color_0" } + } + } +} diff --git a/addon/spark_pet_BP/items/dragon_egg_obsidian.json b/addon/spark_pet_BP/items/dragon_egg_obsidian.json new file mode 100644 index 0000000..822f36b --- /dev/null +++ b/addon/spark_pet_BP/items/dragon_egg_obsidian.json @@ -0,0 +1,16 @@ +{ + "format_version": "1.21.120", + "minecraft:item": { + "description": { + "identifier": "silverlabs:dragon_egg_obsidian", + "menu_category": { "category": "items" } + }, + "components": { + "minecraft:icon": "dragon_egg_obsidian", + "minecraft:display_name": { "value": "item.silverlabs:dragon_egg_obsidian.name" }, + "minecraft:max_stack_size": 1, + "minecraft:glint": true, + "minecraft:entity_placer": { "entity": "silverlabs:dragon_egg_color_5" } + } + } +} diff --git a/addon/spark_pet_BP/items/dragon_egg_spruce.json b/addon/spark_pet_BP/items/dragon_egg_spruce.json new file mode 100644 index 0000000..bc2405d --- /dev/null +++ b/addon/spark_pet_BP/items/dragon_egg_spruce.json @@ -0,0 +1,16 @@ +{ + "format_version": "1.21.120", + "minecraft:item": { + "description": { + "identifier": "silverlabs:dragon_egg_spruce", + "menu_category": { "category": "items" } + }, + "components": { + "minecraft:icon": "dragon_egg_spruce", + "minecraft:display_name": { "value": "item.silverlabs:dragon_egg_spruce.name" }, + "minecraft:max_stack_size": 1, + "minecraft:glint": true, + "minecraft:entity_placer": { "entity": "silverlabs:dragon_egg_color_1" } + } + } +} diff --git a/addon/spark_pet_BP/items/dragon_egg_warped.json b/addon/spark_pet_BP/items/dragon_egg_warped.json new file mode 100644 index 0000000..3393d56 --- /dev/null +++ b/addon/spark_pet_BP/items/dragon_egg_warped.json @@ -0,0 +1,16 @@ +{ + "format_version": "1.21.120", + "minecraft:item": { + "description": { + "identifier": "silverlabs:dragon_egg_warped", + "menu_category": { "category": "items" } + }, + "components": { + "minecraft:icon": "dragon_egg_warped", + "minecraft:display_name": { "value": "item.silverlabs:dragon_egg_warped.name" }, + "minecraft:max_stack_size": 1, + "minecraft:glint": true, + "minecraft:entity_placer": { "entity": "silverlabs:dragon_egg_color_4" } + } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_egg_crimson.json b/addon/spark_pet_BP/recipes/dragon_egg_crimson.json new file mode 100644 index 0000000..1639fb9 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_egg_crimson.json @@ -0,0 +1,12 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shapeless": { + "description": { "identifier": "silverlabs:dragon_egg_crimson_recipe" }, + "tags": ["crafting_table"], + "ingredients": [ + { "item": "silverlabs:dragon_egg" }, + { "item": "silverlabs:dragon_nest_crimson" } + ], + "result": { "item": "silverlabs:dragon_egg_crimson" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_egg_jungle.json b/addon/spark_pet_BP/recipes/dragon_egg_jungle.json new file mode 100644 index 0000000..be1d85a --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_egg_jungle.json @@ -0,0 +1,12 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shapeless": { + "description": { "identifier": "silverlabs:dragon_egg_jungle_recipe" }, + "tags": ["crafting_table"], + "ingredients": [ + { "item": "silverlabs:dragon_egg" }, + { "item": "silverlabs:dragon_nest_jungle" } + ], + "result": { "item": "silverlabs:dragon_egg_jungle" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_egg_oak.json b/addon/spark_pet_BP/recipes/dragon_egg_oak.json new file mode 100644 index 0000000..ad913a2 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_egg_oak.json @@ -0,0 +1,12 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shapeless": { + "description": { "identifier": "silverlabs:dragon_egg_oak_recipe" }, + "tags": ["crafting_table"], + "ingredients": [ + { "item": "silverlabs:dragon_egg" }, + { "item": "silverlabs:dragon_nest_oak" } + ], + "result": { "item": "silverlabs:dragon_egg_oak" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_egg_obsidian.json b/addon/spark_pet_BP/recipes/dragon_egg_obsidian.json new file mode 100644 index 0000000..2e42aa5 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_egg_obsidian.json @@ -0,0 +1,12 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shapeless": { + "description": { "identifier": "silverlabs:dragon_egg_obsidian_recipe" }, + "tags": ["crafting_table"], + "ingredients": [ + { "item": "silverlabs:dragon_egg" }, + { "item": "silverlabs:dragon_nest_obsidian" } + ], + "result": { "item": "silverlabs:dragon_egg_obsidian" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_egg_spruce.json b/addon/spark_pet_BP/recipes/dragon_egg_spruce.json new file mode 100644 index 0000000..dbe75c1 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_egg_spruce.json @@ -0,0 +1,12 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shapeless": { + "description": { "identifier": "silverlabs:dragon_egg_spruce_recipe" }, + "tags": ["crafting_table"], + "ingredients": [ + { "item": "silverlabs:dragon_egg" }, + { "item": "silverlabs:dragon_nest_spruce" } + ], + "result": { "item": "silverlabs:dragon_egg_spruce" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_egg_warped.json b/addon/spark_pet_BP/recipes/dragon_egg_warped.json new file mode 100644 index 0000000..1f9401c --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_egg_warped.json @@ -0,0 +1,12 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shapeless": { + "description": { "identifier": "silverlabs:dragon_egg_warped_recipe" }, + "tags": ["crafting_table"], + "ingredients": [ + { "item": "silverlabs:dragon_egg" }, + { "item": "silverlabs:dragon_nest_warped" } + ], + "result": { "item": "silverlabs:dragon_egg_warped" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_nest_crimson.json b/addon/spark_pet_BP/recipes/dragon_nest_crimson.json new file mode 100644 index 0000000..ba2d9a6 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_nest_crimson.json @@ -0,0 +1,19 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shaped": { + "description": { "identifier": "silverlabs:dragon_nest_crimson_recipe" }, + "tags": ["crafting_table"], + "pattern": [ + "S S", + "WLW", + "PPP" + ], + "key": { + "S": { "item": "minecraft:stick" }, + "W": { "item": "minecraft:red_wool" }, + "L": { "item": "minecraft:leather" }, + "P": { "item": "minecraft:crimson_planks" } + }, + "result": { "item": "silverlabs:dragon_nest_crimson" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_nest_jungle.json b/addon/spark_pet_BP/recipes/dragon_nest_jungle.json new file mode 100644 index 0000000..6206fc1 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_nest_jungle.json @@ -0,0 +1,19 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shaped": { + "description": { "identifier": "silverlabs:dragon_nest_jungle_recipe" }, + "tags": ["crafting_table"], + "pattern": [ + "S S", + "WLW", + "PPP" + ], + "key": { + "S": { "item": "minecraft:stick" }, + "W": { "item": "minecraft:lime_wool" }, + "L": { "item": "minecraft:leather" }, + "P": { "item": "minecraft:jungle_planks" } + }, + "result": { "item": "silverlabs:dragon_nest_jungle" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_nest_oak.json b/addon/spark_pet_BP/recipes/dragon_nest_oak.json new file mode 100644 index 0000000..6eb6c75 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_nest_oak.json @@ -0,0 +1,19 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shaped": { + "description": { "identifier": "silverlabs:dragon_nest_oak_recipe" }, + "tags": ["crafting_table"], + "pattern": [ + "S S", + "WLW", + "PPP" + ], + "key": { + "S": { "item": "minecraft:stick" }, + "W": { "item": "minecraft:white_wool" }, + "L": { "item": "minecraft:leather" }, + "P": { "item": "minecraft:oak_planks" } + }, + "result": { "item": "silverlabs:dragon_nest_oak" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_nest_obsidian.json b/addon/spark_pet_BP/recipes/dragon_nest_obsidian.json new file mode 100644 index 0000000..82e49a2 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_nest_obsidian.json @@ -0,0 +1,18 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shaped": { + "description": { "identifier": "silverlabs:dragon_nest_obsidian_recipe" }, + "tags": ["crafting_table"], + "pattern": [ + "O O", + "WLW", + "OOO" + ], + "key": { + "O": { "item": "minecraft:obsidian" }, + "W": { "item": "minecraft:black_wool" }, + "L": { "item": "minecraft:leather" } + }, + "result": { "item": "silverlabs:dragon_nest_obsidian" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_nest_spruce.json b/addon/spark_pet_BP/recipes/dragon_nest_spruce.json new file mode 100644 index 0000000..50b11d1 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_nest_spruce.json @@ -0,0 +1,19 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shaped": { + "description": { "identifier": "silverlabs:dragon_nest_spruce_recipe" }, + "tags": ["crafting_table"], + "pattern": [ + "S S", + "WLW", + "PPP" + ], + "key": { + "S": { "item": "minecraft:stick" }, + "W": { "item": "minecraft:brown_wool" }, + "L": { "item": "minecraft:leather" }, + "P": { "item": "minecraft:spruce_planks" } + }, + "result": { "item": "silverlabs:dragon_nest_spruce" } + } +} diff --git a/addon/spark_pet_BP/recipes/dragon_nest_warped.json b/addon/spark_pet_BP/recipes/dragon_nest_warped.json new file mode 100644 index 0000000..a0f8165 --- /dev/null +++ b/addon/spark_pet_BP/recipes/dragon_nest_warped.json @@ -0,0 +1,19 @@ +{ + "format_version": "1.21.0", + "minecraft:recipe_shaped": { + "description": { "identifier": "silverlabs:dragon_nest_warped_recipe" }, + "tags": ["crafting_table"], + "pattern": [ + "S S", + "WLW", + "PPP" + ], + "key": { + "S": { "item": "minecraft:stick" }, + "W": { "item": "minecraft:cyan_wool" }, + "L": { "item": "minecraft:leather" }, + "P": { "item": "minecraft:warped_planks" } + }, + "result": { "item": "silverlabs:dragon_nest_warped" } + } +} diff --git a/addon/spark_pet_RP/animation_controllers/spark_dragon.animation_controllers.json b/addon/spark_pet_RP/animation_controllers/spark_dragon.animation_controllers.json index 95c6d22..d7ecb65 100644 --- a/addon/spark_pet_RP/animation_controllers/spark_dragon.animation_controllers.json +++ b/addon/spark_pet_RP/animation_controllers/spark_dragon.animation_controllers.json @@ -1,6 +1,7 @@ { "format_version": "1.10.0", "animation_controllers": { + "controller.animation.spark_dragon.beacon": { "initial_state": "inactive", "states": { @@ -19,22 +20,30 @@ } } }, + "controller.animation.spark_dragon": { "initial_state": "idle", "states": { "idle": { "animations": ["idle"], "transitions": [ + { "fire_breathing": "query.property('silverlabs:firing')" }, { "flying": "!query.is_on_ground && query.property('silverlabs:growth_stage') == 2" }, { "walking": "query.modified_move_speed > 0.1" }, { "sleeping": "query.is_sitting && (query.day_light_level < 4)" }, - { "sitting": "query.is_sitting" } + { "sitting": "query.is_sitting" }, + { "grooming": "query.is_on_ground && query.modified_move_speed <= 0.05 && math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) == 1" }, + { "sniffing": "query.is_on_ground && query.modified_move_speed <= 0.15 && math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) == 2" }, + { "happy_bounce": "query.is_on_ground && query.modified_move_speed <= 0.05 && query.property('silverlabs:mood') == 2 && math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) == 3" }, + { "stretching": "query.is_on_ground && query.modified_move_speed <= 0.05 && math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) == 4" } ] }, "walking": { "animations": ["walk"], "transitions": [ + { "fire_breathing": "query.property('silverlabs:firing')" }, { "flying": "!query.is_on_ground && query.property('silverlabs:growth_stage') == 2" }, + { "sniffing": "query.is_on_ground && query.modified_move_speed <= 0.15 && math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) == 2" }, { "idle": "query.modified_move_speed <= 0.1" }, { "sitting": "query.is_sitting" } ] @@ -56,12 +65,51 @@ "flying": { "animations": ["fly"], "transitions": [ + { "fire_breathing": "query.property('silverlabs:firing')" }, { "idle": "query.is_on_ground && query.modified_move_speed <= 0.1" }, { "walking": "query.is_on_ground && query.modified_move_speed > 0.1" } ] + }, + "grooming": { + "animations": ["groom"], + "transitions": [ + { "fire_breathing": "query.property('silverlabs:firing')" }, + { "idle": "query.modified_move_speed > 0.05 || query.is_sitting || math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) != 1" } + ] + }, + "sniffing": { + "animations": ["sniff"], + "transitions": [ + { "fire_breathing": "query.property('silverlabs:firing')" }, + { "idle": "query.modified_move_speed > 0.15 || query.is_sitting || math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) != 2" }, + { "walking": "query.modified_move_speed > 0.1 && math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) == 2" } + ] + }, + "happy_bounce": { + "animations": ["happy_bounce"], + "transitions": [ + { "fire_breathing": "query.property('silverlabs:firing')" }, + { "idle": "query.modified_move_speed > 0.05 || query.is_sitting || query.property('silverlabs:mood') != 2 || math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) != 3" } + ] + }, + "stretching": { + "animations": ["stretch"], + "transitions": [ + { "fire_breathing": "query.property('silverlabs:firing')" }, + { "idle": "query.modified_move_speed > 0.05 || query.is_sitting || math.mod(math.floor((query.life_time + math.mod(math.abs(math.floor(query.position(0) + query.position(2))), 5) * 36.0) / 36.0), 5) != 4" } + ] + }, + "fire_breathing": { + "animations": ["fire_breath"], + "transitions": [ + { "flying": "!query.property('silverlabs:firing') && !query.is_on_ground && query.property('silverlabs:growth_stage') == 2" }, + { "idle": "!query.property('silverlabs:firing') && query.is_on_ground" }, + { "walking": "!query.property('silverlabs:firing') && query.modified_move_speed > 0.1" } + ] } } }, + "controller.animation.spark_dragon.mood": { "initial_state": "content", "states": { @@ -91,5 +139,6 @@ } } } + } } diff --git a/addon/spark_pet_RP/animations/spark_dragon.animation.json b/addon/spark_pet_RP/animations/spark_dragon.animation.json index 9fdfc7a..951b494 100644 --- a/addon/spark_pet_RP/animations/spark_dragon.animation.json +++ b/addon/spark_pet_RP/animations/spark_dragon.animation.json @@ -32,9 +32,17 @@ "1.0": [0, 5, 0], "2.0": [0, -5, 0] } + }, + "head": { + "rotation": { + "0.0": [0, 0, 0], + "1.0": [3, 2, 0], + "2.0": [0, 0, 0] + } } } }, + "animation.spark_dragon.walk": { "loop": true, "animation_length": 0.8, @@ -77,20 +85,16 @@ }, "wing_left": { "rotation": { - "0.0": [0, 0, -10], - "0.2": [0, 0, -30], - "0.4": [0, 0, -10], - "0.6": [0, 0, -30], - "0.8": [0, 0, -10] + "0.0": [0, 0, -8], + "0.4": [0, 0, -18], + "0.8": [0, 0, -8] } }, "wing_right": { "rotation": { - "0.0": [0, 0, 10], - "0.2": [0, 0, 30], - "0.4": [0, 0, 10], - "0.6": [0, 0, 30], - "0.8": [0, 0, 10] + "0.0": [0, 0, 8], + "0.4": [0, 0, 18], + "0.8": [0, 0, 8] } }, "tail": { @@ -103,14 +107,15 @@ "body": { "position": { "0.0": [0, 0, 0], - "0.2": [0, 0.5, 0], + "0.2": [0, 0.4, 0], "0.4": [0, 0, 0], - "0.6": [0, 0.5, 0], + "0.6": [0, 0.4, 0], "0.8": [0, 0, 0] } } } }, + "animation.spark_dragon.sit": { "loop": true, "animation_length": 2.0, @@ -147,6 +152,7 @@ } } }, + "animation.spark_dragon.sleep": { "loop": true, "animation_length": 4.0, @@ -188,6 +194,7 @@ } } }, + "animation.spark_dragon.fly": { "loop": true, "animation_length": 0.6, @@ -241,6 +248,315 @@ "rotation": [10, 0, 0] } } + }, + + "animation.spark_dragon.groom": { + "loop": true, + "animation_length": 3.0, + "bones": { + "body": { + "position": [0, -1.5, 0] + }, + "head": { + "rotation": { + "0.0": [0, 20, 5], + "0.5": [5, 30, 8], + "1.0": [0, 22, 5], + "1.5": [8, 28, 5], + "2.0": [0, 20, 5], + "2.5": [5, 32, 8], + "3.0": [0, 20, 5] + } + }, + "leg_front_left": { + "rotation": { + "0.0": [-60, 0, 0], + "0.4": [-30, 15, 20], + "0.8": [-50, 5, 10], + "1.2": [-30, 15, 20], + "1.6": [-50, 5, 10], + "2.0": [-30, 15, 20], + "2.4": [-50, 5, 10], + "3.0": [-60, 0, 0] + } + }, + "leg_front_right": { + "rotation": [-60, 0, 0] + }, + "leg_back_left": { + "rotation": [-90, 20, 0] + }, + "leg_back_right": { + "rotation": [-90, -20, 0] + }, + "wing_left": { + "rotation": [0, 0, 5], + "position": [0, 0, 1] + }, + "wing_right": { + "rotation": [0, 0, -5], + "position": [0, 0, 1] + }, + "tail": { + "rotation": { + "0.0": [5, -35, 0], + "1.5": [5, -20, 0], + "3.0": [5, -35, 0] + } + } + } + }, + + "animation.spark_dragon.sniff": { + "loop": true, + "animation_length": 2.4, + "bones": { + "head": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [30, 5, 0], + "0.8": [25, -5, 0], + "1.2": [32, 3, 0], + "1.6": [20, 0, 0], + "2.0": [28, -4, 0], + "2.4": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, -0.8, 1], + "1.2": [0, -0.6, 1], + "2.4": [0, 0, 0] + } + }, + "body": { + "rotation": { + "0.0": [0, 0, 0], + "0.6": [5, 0, 0], + "1.8": [5, 0, 0], + "2.4": [0, 0, 0] + } + }, + "tail": { + "rotation": { + "0.0": [0, -8, 0], + "0.6": [-10, 0, 0], + "1.2": [-15, 5, 0], + "1.8": [-10, -3, 0], + "2.4": [0, -8, 0] + } + }, + "wing_left": { + "rotation": { + "0.0": [0, 0, -5], + "1.2": [0, 0, -8], + "2.4": [0, 0, -5] + } + }, + "wing_right": { + "rotation": { + "0.0": [0, 0, 5], + "1.2": [0, 0, 8], + "2.4": [0, 0, 5] + } + } + } + }, + + "animation.spark_dragon.stretch": { + "loop": false, + "animation_length": 3.0, + "bones": { + "body": { + "position": { + "0.0": [0, 0, 0], + "0.4": [0, -0.5, 0], + "1.2": [0, -0.8, 0], + "2.0": [0, -0.3, 0], + "3.0": [0, 0, 0] + }, + "rotation": { + "0.0": [0, 0, 0], + "0.6": [8, 0, 0], + "1.5": [5, 0, 0], + "3.0": [0, 0, 0] + } + }, + "head": { + "rotation": { + "0.0": [0, 0, 0], + "0.6": [-5, 0, 0], + "1.2": [-15, 0, 0], + "2.0": [-20, 0, 0], + "2.6": [-5, 0, 3], + "3.0": [0, 0, 0] + } + }, + "leg_front_left": { + "rotation": { + "0.0": [0, 0, 0], + "0.5": [30, 0, 0], + "1.2": [45, 0, 0], + "2.2": [20, 0, 0], + "3.0": [0, 0, 0] + } + }, + "leg_front_right": { + "rotation": { + "0.0": [0, 0, 0], + "0.5": [30, 0, 0], + "1.2": [45, 0, 0], + "2.2": [20, 0, 0], + "3.0": [0, 0, 0] + } + }, + "leg_back_left": { + "rotation": { + "0.0": [0, 0, 0], + "0.8": [-15, 10, 0], + "1.5": [-25, 15, 0], + "2.5": [-10, 5, 0], + "3.0": [0, 0, 0] + } + }, + "leg_back_right": { + "rotation": { + "0.0": [0, 0, 0], + "0.8": [-15, -10, 0], + "1.5": [-25, -15, 0], + "2.5": [-10, -5, 0], + "3.0": [0, 0, 0] + } + }, + "wing_left": { + "rotation": { + "0.0": [0, 0, -5], + "1.0": [5, 0, -25], + "1.8": [10, 0, -40], + "2.4": [5, 0, -20], + "3.0": [0, 0, -5] + } + }, + "wing_right": { + "rotation": { + "0.0": [0, 0, 5], + "1.0": [5, 0, 25], + "1.8": [10, 0, 40], + "2.4": [5, 0, 20], + "3.0": [0, 0, 5] + } + }, + "tail": { + "rotation": { + "0.0": [0, -5, 0], + "0.8": [-5, 0, 0], + "1.5": [-15, 0, 0], + "2.5": [-20, 10, 0], + "3.0": [0, -5, 0] + } + } + } + }, + + "animation.spark_dragon.happy_bounce": { + "loop": true, + "animation_length": 0.7, + "bones": { + "body": { + "position": { + "0.0": [0, 0, 0], + "0.175": [0, 0.7, 0], + "0.35": [0, 0, 0], + "0.525": [0, 0.7, 0], + "0.7": [0, 0, 0] + } + }, + "tail": { + "rotation": { + "0.0": [0, -20, 0], + "0.175": [0, 20, 0], + "0.35": [0, -20, 0], + "0.525": [0, 20, 0], + "0.7": [0, -20, 0] + } + }, + "wing_left": { + "rotation": { + "0.0": [0, 0, -10], + "0.175": [0, 0, -30], + "0.35": [0, 0, -10], + "0.525": [0, 0, -30], + "0.7": [0, 0, -10] + } + }, + "wing_right": { + "rotation": { + "0.0": [0, 0, 10], + "0.175": [0, 0, 30], + "0.35": [0, 0, 10], + "0.525": [0, 0, 30], + "0.7": [0, 0, 10] + } + }, + "head": { + "rotation": { + "0.0": [0, 0, 0], + "0.175": [-5, 0, 0], + "0.35": [0, 0, 0], + "0.525": [-5, 0, 0], + "0.7": [0, 0, 0] + } + } + } + }, + + "animation.spark_dragon.fire_breath": { + "loop": false, + "animation_length": 1.2, + "bones": { + "body": { + "rotation": { + "0.0": [0, 0, 0], + "0.3": [-8, 0, 0], + "0.7": [-10, 0, 0], + "1.0": [-5, 0, 0], + "1.2": [0, 0, 0] + } + }, + "head": { + "rotation": { + "0.0": [0, 0, 0], + "0.2": [10, 0, 0], + "0.4": [-5, 0, 0], + "0.8": [-8, 0, 0], + "1.0": [5, 0, 0], + "1.2": [0, 0, 0] + } + }, + "wing_left": { + "rotation": { + "0.0": [0, 0, -5], + "0.4": [15, 0, -50], + "0.8": [15, 0, -50], + "1.2": [0, 0, -5] + } + }, + "wing_right": { + "rotation": { + "0.0": [0, 0, 5], + "0.4": [15, 0, 50], + "0.8": [15, 0, 50], + "1.2": [0, 0, 5] + } + }, + "tail": { + "rotation": { + "0.0": [0, -5, 0], + "0.5": [-20, 0, 0], + "1.0": [-25, 0, 0], + "1.2": [0, -5, 0] + } + } + } } } } diff --git a/addon/spark_pet_RP/entity/spark_dragon.entity.json b/addon/spark_pet_RP/entity/spark_dragon.entity.json index 34ad70a..5aafc07 100644 --- a/addon/spark_pet_RP/entity/spark_dragon.entity.json +++ b/addon/spark_pet_RP/entity/spark_dragon.entity.json @@ -7,7 +7,12 @@ "default": "entity_alphatest" }, "textures": { - "default": "textures/entity/spark_dragon" + "color_0": "textures/entity/spark_dragon_white", + "color_1": "textures/entity/spark_dragon_brown", + "color_2": "textures/entity/spark_dragon_green", + "color_3": "textures/entity/spark_dragon_red", + "color_4": "textures/entity/spark_dragon_teal", + "color_5": "textures/entity/spark_dragon_black" }, "geometry": { "default": "geometry.spark_dragon" @@ -21,6 +26,11 @@ "sit": "animation.spark_dragon.sit", "sleep": "animation.spark_dragon.sleep", "fly": "animation.spark_dragon.fly", + "groom": "animation.spark_dragon.groom", + "sniff": "animation.spark_dragon.sniff", + "stretch": "animation.spark_dragon.stretch", + "happy_bounce": "animation.spark_dragon.happy_bounce", + "fire_breath": "animation.spark_dragon.fire_breath", "controller": "controller.animation.spark_dragon", "beacon_controller": "controller.animation.spark_dragon.beacon", "mood_controller": "controller.animation.spark_dragon.mood" diff --git a/addon/spark_pet_RP/render_controllers/spark_dragon.render_controllers.json b/addon/spark_pet_RP/render_controllers/spark_dragon.render_controllers.json index e470538..2fc8bea 100644 --- a/addon/spark_pet_RP/render_controllers/spark_dragon.render_controllers.json +++ b/addon/spark_pet_RP/render_controllers/spark_dragon.render_controllers.json @@ -4,11 +4,23 @@ "controller.render.spark_dragon": { "geometry": "Geometry.default", "materials": [ - { - "*": "Material.default" - } + { "*": "Material.default" } ], - "textures": ["Texture.default"] + "textures": [ + "Array.textures[query.property('silverlabs:dragon_color')]" + ], + "arrays": { + "textures": { + "Array.textures": [ + "Texture.color_0", + "Texture.color_1", + "Texture.color_2", + "Texture.color_3", + "Texture.color_4", + "Texture.color_5" + ] + } + } } } } diff --git a/addon/spark_pet_RP/texts/en_US.lang b/addon/spark_pet_RP/texts/en_US.lang index b3c8bc8..f5a1f66 100644 --- a/addon/spark_pet_RP/texts/en_US.lang +++ b/addon/spark_pet_RP/texts/en_US.lang @@ -2,11 +2,48 @@ entity.silverlabs:spark_dragon.name=Spark Dragon item.spawn_egg.entity.silverlabs:spark_dragon.name=Spawn Spark Dragon item.silverlabs:dragon_whistle.name=Dragon Whistle tile.silverlabs:dragon_basket.name=Dragon Basket + +## Dragon Nests +tile.silverlabs:dragon_nest_oak.name=Oak Dragon Nest +tile.silverlabs:dragon_nest_spruce.name=Spruce Dragon Nest +tile.silverlabs:dragon_nest_jungle.name=Jungle Dragon Nest +tile.silverlabs:dragon_nest_crimson.name=Crimson Dragon Nest +tile.silverlabs:dragon_nest_warped.name=Warped Dragon Nest +tile.silverlabs:dragon_nest_obsidian.name=Obsidian Dragon Nest + +## Dragon Eggs item.silverlabs:dragon_egg.name=Spark Dragon Egg entity.silverlabs:dragon_egg.name=Spark Dragon Egg +item.silverlabs:dragon_egg_oak.name=Oak Nest Egg (White Dragon) +item.silverlabs:dragon_egg_spruce.name=Spruce Nest Egg (Brown Dragon) +item.silverlabs:dragon_egg_jungle.name=Jungle Nest Egg (Green Dragon) +item.silverlabs:dragon_egg_crimson.name=Crimson Nest Egg (Red Dragon) +item.silverlabs:dragon_egg_warped.name=Warped Nest Egg (Teal Dragon) +item.silverlabs:dragon_egg_obsidian.name=Obsidian Nest Egg (Black Dragon) +entity.silverlabs:dragon_egg_color_0.name=Spark Dragon Egg (White) +entity.silverlabs:dragon_egg_color_1.name=Spark Dragon Egg (Brown) +entity.silverlabs:dragon_egg_color_2.name=Spark Dragon Egg (Green) +entity.silverlabs:dragon_egg_color_3.name=Spark Dragon Egg (Red) +entity.silverlabs:dragon_egg_color_4.name=Spark Dragon Egg (Teal) +entity.silverlabs:dragon_egg_color_5.name=Spark Dragon Egg (Black) + +## Dragon Items item.silverlabs:dragon_bones.name=Dragon Bones item.silverlabs:dragon_gravestone.name=Dragon Gravestone entity.silverlabs:dragon_gravestone.name=Dragon Gravestone item.silverlabs:dragon_toy.name=Spark Ball entity.silverlabs:dragon_toy.name=Spark Ball entity.silverlabs:whistle_signal.name=Whistle Signal + +## Dragon Interactions — Traits +action.interact.silverlabs.teach_relaxed=Teach: Relaxed (Raw Chicken + Sneak) +action.interact.silverlabs.teach_explorer=Teach: Explorer (Raw Beef + Sneak) +action.interact.silverlabs.teach_affectionate=Teach: Affectionate (Cooked Salmon + Sneak) +action.interact.silverlabs.teach_playful=Teach: Playful (Melon Slice + Sneak) +action.interact.silverlabs.teach_independent=Teach: Independent (Bamboo + Sneak) + +## Dragon Interactions — Fire +action.interact.silverlabs.breathe_fire=Breathe Fire (Fire Charge + Sneak) + +## Riding +action.interact.mount=Ride Dragon diff --git a/addon/spark_pet_RP/textures/blocks/dragon_nest_crimson.png b/addon/spark_pet_RP/textures/blocks/dragon_nest_crimson.png new file mode 100644 index 0000000..5f3afa3 Binary files /dev/null and b/addon/spark_pet_RP/textures/blocks/dragon_nest_crimson.png differ diff --git a/addon/spark_pet_RP/textures/blocks/dragon_nest_jungle.png b/addon/spark_pet_RP/textures/blocks/dragon_nest_jungle.png new file mode 100644 index 0000000..ce54d8c Binary files /dev/null and b/addon/spark_pet_RP/textures/blocks/dragon_nest_jungle.png differ diff --git a/addon/spark_pet_RP/textures/blocks/dragon_nest_oak.png b/addon/spark_pet_RP/textures/blocks/dragon_nest_oak.png new file mode 100644 index 0000000..a42f6b1 Binary files /dev/null and b/addon/spark_pet_RP/textures/blocks/dragon_nest_oak.png differ diff --git a/addon/spark_pet_RP/textures/blocks/dragon_nest_obsidian.png b/addon/spark_pet_RP/textures/blocks/dragon_nest_obsidian.png new file mode 100644 index 0000000..97d17e8 Binary files /dev/null and b/addon/spark_pet_RP/textures/blocks/dragon_nest_obsidian.png differ diff --git a/addon/spark_pet_RP/textures/blocks/dragon_nest_spruce.png b/addon/spark_pet_RP/textures/blocks/dragon_nest_spruce.png new file mode 100644 index 0000000..2be112d Binary files /dev/null and b/addon/spark_pet_RP/textures/blocks/dragon_nest_spruce.png differ diff --git a/addon/spark_pet_RP/textures/blocks/dragon_nest_warped.png b/addon/spark_pet_RP/textures/blocks/dragon_nest_warped.png new file mode 100644 index 0000000..605c3d0 Binary files /dev/null and b/addon/spark_pet_RP/textures/blocks/dragon_nest_warped.png differ diff --git a/addon/spark_pet_RP/textures/entity/spark_dragon_black.png b/addon/spark_pet_RP/textures/entity/spark_dragon_black.png new file mode 100644 index 0000000..9be4850 Binary files /dev/null and b/addon/spark_pet_RP/textures/entity/spark_dragon_black.png differ diff --git a/addon/spark_pet_RP/textures/entity/spark_dragon_brown.png b/addon/spark_pet_RP/textures/entity/spark_dragon_brown.png new file mode 100644 index 0000000..af2617e Binary files /dev/null and b/addon/spark_pet_RP/textures/entity/spark_dragon_brown.png differ diff --git a/addon/spark_pet_RP/textures/entity/spark_dragon_green.png b/addon/spark_pet_RP/textures/entity/spark_dragon_green.png new file mode 100644 index 0000000..8abdce6 Binary files /dev/null and b/addon/spark_pet_RP/textures/entity/spark_dragon_green.png differ diff --git a/addon/spark_pet_RP/textures/entity/spark_dragon_red.png b/addon/spark_pet_RP/textures/entity/spark_dragon_red.png new file mode 100644 index 0000000..d013b0b Binary files /dev/null and b/addon/spark_pet_RP/textures/entity/spark_dragon_red.png differ diff --git a/addon/spark_pet_RP/textures/entity/spark_dragon_teal.png b/addon/spark_pet_RP/textures/entity/spark_dragon_teal.png new file mode 100644 index 0000000..28493c2 Binary files /dev/null and b/addon/spark_pet_RP/textures/entity/spark_dragon_teal.png differ diff --git a/addon/spark_pet_RP/textures/entity/spark_dragon_white.png b/addon/spark_pet_RP/textures/entity/spark_dragon_white.png new file mode 100644 index 0000000..acc497e Binary files /dev/null and b/addon/spark_pet_RP/textures/entity/spark_dragon_white.png differ diff --git a/addon/spark_pet_RP/textures/item_texture.json b/addon/spark_pet_RP/textures/item_texture.json index 95a9ac2..909c4b0 100644 --- a/addon/spark_pet_RP/textures/item_texture.json +++ b/addon/spark_pet_RP/textures/item_texture.json @@ -8,6 +8,24 @@ "dragon_egg": { "textures": "textures/items/dragon_egg" }, + "dragon_egg_oak": { + "textures": "textures/items/dragon_egg_oak" + }, + "dragon_egg_spruce": { + "textures": "textures/items/dragon_egg_spruce" + }, + "dragon_egg_jungle": { + "textures": "textures/items/dragon_egg_jungle" + }, + "dragon_egg_crimson": { + "textures": "textures/items/dragon_egg_crimson" + }, + "dragon_egg_warped": { + "textures": "textures/items/dragon_egg_warped" + }, + "dragon_egg_obsidian": { + "textures": "textures/items/dragon_egg_obsidian" + }, "dragon_toy": { "textures": "textures/items/dragon_toy" }, diff --git a/addon/spark_pet_RP/textures/items/dragon_egg_crimson.png b/addon/spark_pet_RP/textures/items/dragon_egg_crimson.png new file mode 100644 index 0000000..8434e58 Binary files /dev/null and b/addon/spark_pet_RP/textures/items/dragon_egg_crimson.png differ diff --git a/addon/spark_pet_RP/textures/items/dragon_egg_jungle.png b/addon/spark_pet_RP/textures/items/dragon_egg_jungle.png new file mode 100644 index 0000000..4153c56 Binary files /dev/null and b/addon/spark_pet_RP/textures/items/dragon_egg_jungle.png differ diff --git a/addon/spark_pet_RP/textures/items/dragon_egg_oak.png b/addon/spark_pet_RP/textures/items/dragon_egg_oak.png new file mode 100644 index 0000000..b3ce945 Binary files /dev/null and b/addon/spark_pet_RP/textures/items/dragon_egg_oak.png differ diff --git a/addon/spark_pet_RP/textures/items/dragon_egg_obsidian.png b/addon/spark_pet_RP/textures/items/dragon_egg_obsidian.png new file mode 100644 index 0000000..c753e01 Binary files /dev/null and b/addon/spark_pet_RP/textures/items/dragon_egg_obsidian.png differ diff --git a/addon/spark_pet_RP/textures/items/dragon_egg_spruce.png b/addon/spark_pet_RP/textures/items/dragon_egg_spruce.png new file mode 100644 index 0000000..44c49c8 Binary files /dev/null and b/addon/spark_pet_RP/textures/items/dragon_egg_spruce.png differ diff --git a/addon/spark_pet_RP/textures/items/dragon_egg_warped.png b/addon/spark_pet_RP/textures/items/dragon_egg_warped.png new file mode 100644 index 0000000..b10339d Binary files /dev/null and b/addon/spark_pet_RP/textures/items/dragon_egg_warped.png differ diff --git a/addon/spark_pet_RP/textures/terrain_texture.json b/addon/spark_pet_RP/textures/terrain_texture.json index ad69b0b..8177835 100644 --- a/addon/spark_pet_RP/textures/terrain_texture.json +++ b/addon/spark_pet_RP/textures/terrain_texture.json @@ -6,6 +6,24 @@ "texture_data": { "dragon_basket": { "textures": "textures/blocks/dragon_basket" + }, + "dragon_nest_oak": { + "textures": "textures/blocks/dragon_nest_oak" + }, + "dragon_nest_spruce": { + "textures": "textures/blocks/dragon_nest_spruce" + }, + "dragon_nest_jungle": { + "textures": "textures/blocks/dragon_nest_jungle" + }, + "dragon_nest_crimson": { + "textures": "textures/blocks/dragon_nest_crimson" + }, + "dragon_nest_warped": { + "textures": "textures/blocks/dragon_nest_warped" + }, + "dragon_nest_obsidian": { + "textures": "textures/blocks/dragon_nest_obsidian" } } }