diff --git a/source/behavior/biomes/format/components/climate.json b/source/behavior/biomes/format/components/climate.json index 22b8d80f..6dbddf4d 100644 --- a/source/behavior/biomes/format/components/climate.json +++ b/source/behavior/biomes/format/components/climate.json @@ -5,26 +5,11 @@ "type": "object", "additionalProperties": false, "properties": { - "ash": { - "title": "Ash", - "description": "Density of ash precipitation visuals.", - "type": "number" - }, - "blue_spores": { - "title": "Blue Spores", - "description": "Density of blue spore precipitation visuals.", - "type": "number" - }, "downfall": { "title": "Downfall", "description": "Amount that precipitation affects colors and block changes.", "type": "number" }, - "red_spores": { - "title": "Red Spores", - "description": "Density of blue spore precipitation visuals.", - "type": "number" - }, "snow_accumulation": { "title": "Snow Accumulation", "description": "Minimum and maximum snow level, each multiple of 0.125 is another snow layer.", @@ -42,11 +27,6 @@ "title": "Temperature", "description": "Temperature affects a variety of visual and behavioral things, including snow and ice placement, sponge drying, and sky color.", "type": "number" - }, - "white_ash": { - "title": "White Ash", - "description": "Density of white ash precipitation visuals.", - "type": "number" } } } diff --git a/source/behavior/biomes/format/components/surface_builder.json b/source/behavior/biomes/format/components/surface_builder.json index 8f21060f..8fc90b27 100644 --- a/source/behavior/biomes/format/components/surface_builder.json +++ b/source/behavior/biomes/format/components/surface_builder.json @@ -66,6 +66,57 @@ } } }, + { + "if": { + "properties": { + "type": { + "const": "minecraft:swamp" + } + } + }, + "then": { + "required": [ "top_material", "mid_material", "sea_floor_material", "foundation_material", "sea_material", "sea_floor_depth", "max_puddle_depth_below_sea_level" ], + "properties": { + "top_material": { + "title": "Top Material", + "description": "Controls the block type used for the surface of this biome.", + "$ref": "../../../../general/block/reference.json" + }, + "mid_material": { + "title": "Mid Material", + "description": "Controls the block type used in a layer below the surface of this biome.", + "$ref": "../../../../general/block/reference.json" + }, + "sea_floor_material": { + "title": "Sea Floor Material", + "description": "Controls the block type used as a floor for bodies of water in this biome.", + "$ref": "../../../../general/block/reference.json" + }, + "foundation_material": { + "title": "Foundation Material", + "description": "Controls the block type used deep underground in this biome.", + "$ref": "../../../../general/block/reference.json" + }, + "sea_material": { + "title": "Sea Material", + "description": "Controls the block type used for the bodies of water in this biome.", + "$ref": "../../../../general/block/reference.json" + }, + "sea_floor_depth": { + "title": "Sea Floor Depth", + "description": "Controls how deep below the world water level the floor should occur.", + "type": "integer" + }, + "max_puddle_depth_below_sea_level": { + "title": "Max Puddle Depth Below Sea Level", + "description": "Controls the depth at which surface level blocks can be replaced with water for puddles. The number represents the number of blocks below sea level that we will go down to look for a surface block.", + "type": "integer", + "minimum": 0, + "maximum": 127 + } + } + } + }, { "if": { "properties": { diff --git a/source/behavior/blocks/format/components/embedded_visual.json b/source/behavior/blocks/format/components/embedded_visual.json new file mode 100644 index 00000000..e97fe220 --- /dev/null +++ b/source/behavior/blocks/format/components/embedded_visual.json @@ -0,0 +1,20 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.embedded_visual", + "title": "Embedded Visual", + "description": "When the component is present on the block, it defines which geometry and material_instances to use when the block is embedded into another block, eg. into a Flowerpot", + "type": "object", + "additionalProperties": false, + "required": [ "geometry", "material_instances" ], + "properties": { + "geometry": { + "title": "Geometry", + "description": "The \"minecraft:geometry\" component that will be used for the item.", + "$ref": "./geometry.json" + }, + "material_instances": { + "title": "Geometry", + "description": "The \"minecraft:material_instances\" component that will be used for the item.", + "$ref": "./material_instances.json" + } + } +} \ No newline at end of file diff --git a/source/behavior/blocks/format/components/flower_pottable.json b/source/behavior/blocks/format/components/flower_pottable.json new file mode 100644 index 00000000..20788893 --- /dev/null +++ b/source/behavior/blocks/format/components/flower_pottable.json @@ -0,0 +1,8 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.flower_pottable", + "title": "Flower Pottable", + "description": "Allows a player to interact with an empty flowerpot when holding the block in order to embed it.", + "type": "object", + "additionalProperties": false, + "properties": {} +} \ No newline at end of file diff --git a/source/behavior/blocks/format/components/redstone_producer.json b/source/behavior/blocks/format/components/redstone_producer.json new file mode 100644 index 00000000..0d830a46 --- /dev/null +++ b/source/behavior/blocks/format/components/redstone_producer.json @@ -0,0 +1,41 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.redstone_producer", + "title": "Redstone Producer", + "description": "Allows the block to produce a redstone signal", + "type": "object", + "additionalProperties": false, + "required": [ "power" ], + "properties": { + "power": { + "title": "Power", + "description": "The strength of the redstone signal produced by this block. Valid values are from 0 to 15, where 0 means no signal and 15 is the maximum signal strength.", + "type": "integer", + "minimum": 0, + "maxItems": 15 + }, + "strongly_powered_face": { + "title": "Strongly Powered Face", + "description": "The block touching this face will become strongly powered with the signal level strength of 'power'. Strongly powered blocks will power adjacent blocks. By default, the block will not strongly power any face.", + "type": "array", + "items": { + "type": "string", + "enum": ["up", "down", "north", "south", "east", "west", "side", "all"] + } + }, + "connected_faces": { + "title": "Connected Faces", + "description": "The list of faces that are considered connected to the circuit. If a face is not connected, it will not provide power to the block touching that face. By default, all faces are connected.", + "type": "array", + "items": { + "type": "string", + "enum": ["up", "down", "north", "south", "east", "west", "side", "all"] + } + }, + "transform_relative": { + "title": "Transform Relative", + "description": "If true, the `strongly_powered_face` and `connected_faces` properties will be rotated according to the `minecraft:transformation` component.", + "type": "boolean", + "default": false + } + } +} \ No newline at end of file diff --git a/source/behavior/blocks/format/minecraft.block.json b/source/behavior/blocks/format/minecraft.block.json index 52780283..3c8ed823 100644 --- a/source/behavior/blocks/format/minecraft.block.json +++ b/source/behavior/blocks/format/minecraft.block.json @@ -20,7 +20,9 @@ "minecraft:destructible_by_mining": { "$ref": "./components/destructible_by_mining.json" }, "minecraft:destruction_particles": { "$ref": "./components/destruction_particles.json" }, "minecraft:display_name": { "$ref": "./components/display_name.json" }, + "minecraft:embedded_visual": { "$ref": "./components/embedded_visual.json" }, "minecraft:flammable": { "$ref": "./components/flammable.json" }, + "minecraft:flower_pottable": { "$ref": "./components/flower_pottable.json" }, "minecraft:friction": { "$ref": "./components/friction.json" }, "minecraft:geometry": { "$ref": "./components/geometry.json" }, "minecraft:item_visual": { "$ref": "./components/item_visual.json" }, @@ -34,6 +36,7 @@ "minecraft:placement_filter": { "$ref": "./components/placement_filter.json" }, "minecraft:random_offset": { "$ref": "./components/random_offset.json" }, "minecraft:redstone_conductivity": { "$ref": "./components/redstone_conductivity.json" }, + "minecraft:redstone_producer": { "$ref": "./components/redstone_producer.json" }, "minecraft:replaceable": { "$ref": "./components/replaceable.json" }, "minecraft:selection_box": { "$ref": "./components/selection_box.json" }, "minecraft:transformation": { "$ref": "./components/transformation.json" }, diff --git a/source/behavior/entities/filters/filters.json b/source/behavior/entities/filters/filters.json index 776a2212..787e0a83 100644 --- a/source/behavior/entities/filters/filters.json +++ b/source/behavior/entities/filters/filters.json @@ -171,6 +171,7 @@ { "if": { "properties": { "test": { "const": "trusts" } } }, "then": { "$ref": "./filters/trusts.json" } }, { "if": { "properties": { "test": { "const": "weather_at_position" } } }, "then": { "$ref": "./filters/weather_at_position.json" } }, { "if": { "properties": { "test": { "const": "weather" } } }, "then": { "$ref": "./filters/weather.json" } }, + { "if": { "properties": { "test": { "const": "y_rotation" } } }, "then": { "$ref": "./filters/y_rotation.json" } }, { "not": { "properties": { "test": { "const": "is_weather" } }, "$comment": "DEPRECATED" } } ] } diff --git a/source/behavior/entities/filters/filters/y_rotation.json b/source/behavior/entities/filters/filters/y_rotation.json new file mode 100644 index 00000000..05a31b85 --- /dev/null +++ b/source/behavior/entities/filters/filters/y_rotation.json @@ -0,0 +1,26 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.y_rotation", + "type": "object", + "title": "Y Rotation", + "description": "Returns the Y rotation of this entity.", + "required": ["value"], + "properties": { + "test": { + "type": "string", + "title": "Test", + "description": "The test property." + }, + "operator": { + "$ref": "./types/operator.json" + }, + "subject": { + "$ref": "./types/subject.json" + }, + "value": { + "description": "(Required) A floating point value.", + "type": "number", + "default": true, + "title": "Value" + } + } +} diff --git a/source/behavior/entities/format/behaviors/move_towards_restriction.json b/source/behavior/entities/format/behaviors/move_towards_restriction.json index f5c4c2f4..cb31117e 100644 --- a/source/behavior/entities/format/behaviors/move_towards_restriction.json +++ b/source/behavior/entities/format/behaviors/move_towards_restriction.json @@ -4,7 +4,7 @@ "title": "Move Towards Restriction", "additionalProperties": false, "description": "Allows Guardians, Iron Golems and Villagers to move within their pre-defined area that the mob should be restricted to. Other mobs don't have a restriction defined.", - "required": [], + "required": [ ], "properties": { "priority": { "$ref": "./types/priority.json" @@ -13,20 +13,12 @@ "$ref": "./types/speed_multiplier.json" }, "control_flags": { - "type": "array", - "items": { - "type": "string", - "enum": ["move", "look"], - "description": "UNDOCUMENTED: control flags.", - "title": "Control Flags" - }, - "description": "UNDOCUMENTED: control flags.", - "title": "Control Flags" + "$ref": "./types/control_flags.json" } }, "examples": [ { - "control_flags": [] + "control_flags": [ ] } ] } diff --git a/source/behavior/entities/format/behaviors/roar.json b/source/behavior/entities/format/behaviors/roar.json index 3814bfab..8ca98e8a 100644 --- a/source/behavior/entities/format/behaviors/roar.json +++ b/source/behavior/entities/format/behaviors/roar.json @@ -3,11 +3,14 @@ "additionalProperties": false, "type": "object", "title": "Roar", - "description": "[EXPERIMENTAL BEHAVIOR] Plays the provided sound and activates the `ROARING` actor flag during the specified duration", + "description": "Allows this entity to roar at another entity based on data in minecraft:anger_level. Once the anger threshold specified in minecraft:anger_level has been reached, this entity will roar for the specified amount of time, look at the other entity, apply anger boost towards it, and finally target it.", "properties": { "priority": { "$ref": "./types/priority.json" }, + "control_flags": { + "$ref": "./types/control_flags.json" + }, "duration": { "title": "Duration", "type": "number", diff --git a/source/behavior/entities/format/behaviors/slime_attack.json b/source/behavior/entities/format/behaviors/slime_attack.json index 4b905f83..8af3363c 100644 --- a/source/behavior/entities/format/behaviors/slime_attack.json +++ b/source/behavior/entities/format/behaviors/slime_attack.json @@ -7,6 +7,12 @@ "properties": { "priority": { "$ref": "./types/priority.json" }, "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, + "grow_tired_cooldown_time": { + "title": "Grow Tired Cooldown Time", + "description": "UNDOCUMENTED", + "type": "number" + }, "set_persistent": { "title": "Set Persistent", "type": "boolean", diff --git a/source/behavior/entities/format/behaviors/slime_float.json b/source/behavior/entities/format/behaviors/slime_float.json index a8a4e8f0..c7bf3a24 100644 --- a/source/behavior/entities/format/behaviors/slime_float.json +++ b/source/behavior/entities/format/behaviors/slime_float.json @@ -8,6 +8,7 @@ "properties": { "priority": { "$ref": "types/priority.json" }, "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, "jump_chance_percentage": { "type": "number", "title": "Jump Chance Percentage", diff --git a/source/behavior/entities/format/behaviors/slime_keep_on_jumping.json b/source/behavior/entities/format/behaviors/slime_keep_on_jumping.json index fe3690e0..08b45be8 100644 --- a/source/behavior/entities/format/behaviors/slime_keep_on_jumping.json +++ b/source/behavior/entities/format/behaviors/slime_keep_on_jumping.json @@ -11,6 +11,7 @@ }, "speed_multiplier": { "$ref": "types/speed_multiplier.json" - } + }, + "control_flags": {"$ref": "./types/control_flags.json"} } } diff --git a/source/behavior/entities/format/behaviors/slime_random_direction.json b/source/behavior/entities/format/behaviors/slime_random_direction.json index 588d5ee9..c56415c0 100644 --- a/source/behavior/entities/format/behaviors/slime_random_direction.json +++ b/source/behavior/entities/format/behaviors/slime_random_direction.json @@ -9,6 +9,7 @@ "priority": { "$ref": "./types/priority.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, "add_random_time_range": { "title": "Add Random Time Range", "type": "integer", diff --git a/source/behavior/entities/format/behaviors/sniff.json b/source/behavior/entities/format/behaviors/sniff.json index 32549d1d..d327968a 100644 --- a/source/behavior/entities/format/behaviors/sniff.json +++ b/source/behavior/entities/format/behaviors/sniff.json @@ -8,6 +8,7 @@ "priority": { "$ref": "./types/priority.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, "cooldown_range": { "title": "Cooldown Range", "$ref": "../../../../general/vectors/number2.json", diff --git a/source/behavior/entities/format/behaviors/sonic_boom.json b/source/behavior/entities/format/behaviors/sonic_boom.json index 67df3c26..43a6ca82 100644 --- a/source/behavior/entities/format/behaviors/sonic_boom.json +++ b/source/behavior/entities/format/behaviors/sonic_boom.json @@ -7,6 +7,7 @@ "properties": { "priority": { "$ref": "./types/priority.json" }, "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, "attack_cooldown": { "title": "Attack Cooldown", "type": "number", diff --git a/source/behavior/entities/format/behaviors/stay_near_noteblock.json b/source/behavior/entities/format/behaviors/stay_near_noteblock.json index 822e217c..b53f6d1b 100644 --- a/source/behavior/entities/format/behaviors/stay_near_noteblock.json +++ b/source/behavior/entities/format/behaviors/stay_near_noteblock.json @@ -8,6 +8,7 @@ "priority": { "$ref": "types/priority.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, "listen_time": { "title": "Listen Time", "type": "integer", diff --git a/source/behavior/entities/format/behaviors/swim_idle.json b/source/behavior/entities/format/behaviors/swim_idle.json index 8f1eea12..ea6461b1 100644 --- a/source/behavior/entities/format/behaviors/swim_idle.json +++ b/source/behavior/entities/format/behaviors/swim_idle.json @@ -8,6 +8,7 @@ "priority": { "$ref": "types/priority.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, "idle_time": { "type": "number", "title": "Idle Time", diff --git a/source/behavior/entities/format/behaviors/swim_up_for_breath.json b/source/behavior/entities/format/behaviors/swim_up_for_breath.json index 00690c9f..f4999b25 100644 --- a/source/behavior/entities/format/behaviors/swim_up_for_breath.json +++ b/source/behavior/entities/format/behaviors/swim_up_for_breath.json @@ -8,6 +8,7 @@ "priority": { "$ref": "types/priority.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, "material_type": { "title": "Idle Time", "enum": ["water", "lava","any"], diff --git a/source/behavior/entities/format/behaviors/swim_wander.json b/source/behavior/entities/format/behaviors/swim_wander.json index 68b442ef..541998c9 100644 --- a/source/behavior/entities/format/behaviors/swim_wander.json +++ b/source/behavior/entities/format/behaviors/swim_wander.json @@ -8,6 +8,7 @@ "properties": { "priority": { "$ref": "types/priority.json" }, "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, "interval": { "title": "Interval", "type": "number", diff --git a/source/behavior/entities/format/behaviors/swoop_attack.json b/source/behavior/entities/format/behaviors/swoop_attack.json index 6d0bf2c9..4150dc50 100644 --- a/source/behavior/entities/format/behaviors/swoop_attack.json +++ b/source/behavior/entities/format/behaviors/swoop_attack.json @@ -8,6 +8,7 @@ "properties": { "priority": { "$ref": "types/priority.json" }, "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, + "control_flags": {"$ref": "./types/control_flags.json"}, "damage_reach": { "title": "Damage Reach", "type": "number", diff --git a/source/behavior/entities/format/behaviors/take_flower.json b/source/behavior/entities/format/behaviors/take_flower.json index 5a80a870..27690a37 100644 --- a/source/behavior/entities/format/behaviors/take_flower.json +++ b/source/behavior/entities/format/behaviors/take_flower.json @@ -48,6 +48,11 @@ "default": [6, 2, 6], "description": "The dimensions of the AABB used to search for a potential mob to take a flower from.", "$ref": "../../../../general/vectors/number3.json" + }, + "on_take_flower": { + "title": "On Take Flower", + "$ref": "../types/trigger.json", + "description": "Event triggered when the entity takes a flower from another entity." } } } diff --git a/source/behavior/entities/format/behaviors/timer_flag.json b/source/behavior/entities/format/behaviors/timer_flag.json index 1cadc464..01a3f80b 100644 --- a/source/behavior/entities/format/behaviors/timer_flag.json +++ b/source/behavior/entities/format/behaviors/timer_flag.json @@ -10,12 +10,12 @@ "title": "Cooldown Range", "anyOf": [ { - "type": "number", + "type": "number", "minimum": 0 }, { "$ref": "../../../../general/vectors/number2.json", - "default": [10.0, 10.0] + "default": [ 10.0, 10.0 ] } ], "description": "Goal cooldown range in seconds." @@ -24,26 +24,18 @@ "title": "Duration Range", "anyOf": [ { - "type": "number", + "type": "number", "minimum": 0 }, { "$ref": "../../../../general/vectors/number2.json", - "default": [2.0, 2.0] + "default": [ 2.0, 2.0 ] } ], "description": "Goal duration range in seconds." }, "control_flags": { - "type": "array", - "uniqueItems": true, - "minItems": 1, - "maxItems": 2, - "items": { - "enum": ["move", "look"] - }, - "title": "Control Flags", - "description": "UNDOCUMENTED" + "$ref": "./types/control_flags.json" }, "on_end": { "title": "On End", diff --git a/source/behavior/entities/format/behaviors/types/control_flags.json b/source/behavior/entities/format/behaviors/types/control_flags.json new file mode 100644 index 00000000..644471a5 --- /dev/null +++ b/source/behavior/entities/format/behaviors/types/control_flags.json @@ -0,0 +1,14 @@ +{ + "$id": "blockception.minecraft.behavior.entities.control_flags", + "additionalProperties": false, + "title": "Control Flags", + "minimum": 0, + "description": "UNDOCUMENTED", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "maxItems": 2, + "items": { + "enum": [ "move", "look", "jump" ] + } +} \ No newline at end of file diff --git a/source/behavior/entities/format/components.json b/source/behavior/entities/format/components.json index 1a3118bb..c6d836d5 100644 --- a/source/behavior/entities/format/components.json +++ b/source/behavior/entities/format/components.json @@ -47,7 +47,7 @@ "minecraft:custom_hit_test": { "$ref": "./components/custom_hit_test.json" }, "minecraft:damage_over_time": { "$ref": "./components/damage_over_time.json" }, "minecraft:damage_sensor": { "$ref": "./components/damage_sensor.json" }, - "minecraft:dash": { "$ref": "./components/dash.json" }, + "minecraft:dash_action": { "$ref": "./components/dash_action.json" }, "minecraft:default_look_angle": { "$ref": "./components/default_look_angle.json" }, "minecraft:despawn": { "$ref": "./components/despawn.json" }, "minecraft:dimension_bound": { "$ref": "./components/dimension_bound.json" }, @@ -84,7 +84,7 @@ "minecraft:horse.jump_strength": { "$ref": "./components/horse.jump_strength.json" }, "minecraft:hurt_on_condition": { "$ref": "./components/hurt_on_condition.json" }, "minecraft:hurt_when_wet": { "$ref": "./components/hurt_when_wet.json" }, - "minecraft:input_air_controlled": { "$ref": "./components/input_air_controlled.json" }, + "minecraft:free_camera_controlled": { "$ref": "./components/free_camera_controlled.json" }, "minecraft:input_ground_controlled": { "$ref": "./components/input_ground_controlled.json" }, "minecraft:inside_block_notifier": { "$ref": "./components/inside_block_notifier.json" }, "minecraft:insomnia": { "$ref": "./components/insomnia.json" }, @@ -201,6 +201,7 @@ "minecraft:underwater_movement": { "$ref": "./components/attribute.json" }, "minecraft:variable_max_auto_step": { "$ref": "./components/variable_max_auto_step.json" }, "minecraft:variant": { "$ref": "./components/variant.json" }, + "minecraft:vertical_movement_action": { "$ref": "./components/vertical_movement_action.json" }, "minecraft:vibration_damper": { "$ref": "./components/vibration_damper.json" }, "minecraft:vibration_listener": { "$ref": "./components/vibration_listener.json" }, "minecraft:walk_animation_speed": { "$ref": "./components/walk_animation_speed.json" }, diff --git a/source/behavior/entities/format/components/dash.json b/source/behavior/entities/format/components/dash.json deleted file mode 100644 index f9dc2636..00000000 --- a/source/behavior/entities/format/components/dash.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.entities.minecraft.dash", - "type": "object", - "title": "Dash", - "additionalProperties": false, - "description": "Ability for a ridable entity to dash.", - "required": [], - "properties": { - "cooldown_time": { - "title": "cooldown time", - "type": "number", - "default": 1.0, - "description": "The dash cooldown in seconds." - }, - "horizontal_momentum": { - "title": "horizoontal momentum", - "type": "number", - "default": 1.0, - "description": "Horizontal momentum of the dash." - }, - "vertical_momentum": { - "title": "vertical momentum", - "type": "number", - "default": 1.0, - "description": "Vertical momentum of the dash." - } - }, - "examples": [ - { - "value": 0.0 - } - ] -} diff --git a/source/behavior/entities/format/components/dash_action.json b/source/behavior/entities/format/components/dash_action.json new file mode 100644 index 00000000..2d806877 --- /dev/null +++ b/source/behavior/entities/format/components/dash_action.json @@ -0,0 +1,40 @@ +{ + "$id": "blockception.minecraft.behavior.entities.minecraft.dash_action", + "type": "object", + "title": "Dash Action", + "additionalProperties": false, + "description": "Ability for a ridable entity to dash.", + "required": [], + "properties": { + "cooldown_time": { + "title": "Cooldown Time", + "type": "number", + "default": 1.0, + "description": "The dash cooldown in seconds." + }, + "horizontal_momentum": { + "title": "Horizoontal Momentum", + "type": "number", + "default": 1.0, + "description": "Horizontal momentum of the dash." + }, + "vertical_momentum": { + "title": "Vertical Momentum", + "type": "number", + "default": 1.0, + "description": "Vertical momentum of the dash." + }, + "direction": { + "title": "Direction", + "description": "Should the momentum be applied in the direction of the 'entity' or 'passenger'. When 'entity' is used the momentum is applied horizontally according to the direction the entity is looking, using only the entity's yaw. When 'passenger' is used the momentum will be applied in the direction the controlling passenger is looking, using the passenger's pitch and yaw.", + "type": "string", + "enum": ["entity", "passenger"], + "default": "entity" + } + }, + "examples": [ + { + "value": 0.0 + } + ] +} diff --git a/source/behavior/entities/format/components/input_air_controlled.json b/source/behavior/entities/format/components/free_camera_controlled.json similarity index 82% rename from source/behavior/entities/format/components/input_air_controlled.json rename to source/behavior/entities/format/components/free_camera_controlled.json index cd0cbf45..ad425fe4 100644 --- a/source/behavior/entities/format/components/input_air_controlled.json +++ b/source/behavior/entities/format/components/free_camera_controlled.json @@ -1,8 +1,8 @@ { - "$id": "blockception.minecraft.behavior.entities.minecraft.input_air_controlled", + "$id": "blockception.minecraft.behavior.entities.minecraft.free_camera_controlled", "description": "When configured as a rideable entity, the entity will be controlled using WASD controls and mouse to move in three dimensions.", "type": "object", - "title": "Input Air Controlled", + "title": "Free Camera Controlled", "additionalProperties": false, "properties": { "backwards_movement_modifier": { diff --git a/source/behavior/entities/format/components/interact.json b/source/behavior/entities/format/components/interact.json index 62bfd67e..9e265fcb 100644 --- a/source/behavior/entities/format/components/interact.json +++ b/source/behavior/entities/format/components/interact.json @@ -163,7 +163,7 @@ "drop_item_slot": { "title": "Drop Item Slot", "type": "string", - "examples": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet"], + "enum": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet", "slot.armor.body", "slot.weapon.offhand", "slot.weapon.mainhand"], "description": "The entity's equipment slot to remove and drop the item from, if any, upon successful interaction." }, "drop_item_y_offset": { @@ -176,7 +176,7 @@ "title": "Equip Item Slot", "type": "string", "description": "The entity's equipment slot to equip the item to, if any, upon successful interaction.", - "examples": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet"] + "enum": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet", "slot.armor.body", "slot.weapon.offhand", "slot.weapon.mainhand"] }, "repair_entity_item": { "title": "Repair Entity Item", @@ -193,7 +193,7 @@ "title": "Slot", "description": "The entity's slot containing the item to be repaired.", "type": "string", - "examples": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet"] + "enum": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet", "slot.armor.body", "slot.weapon.offhand", "slot.weapon.mainhand"] } } } diff --git a/source/behavior/entities/format/components/on_death.json b/source/behavior/entities/format/components/on_death.json index 7a6087cb..529b15c9 100644 --- a/source/behavior/entities/format/components/on_death.json +++ b/source/behavior/entities/format/components/on_death.json @@ -1,6 +1,6 @@ { "$id": "blockception.minecraft.behavior.entities.minecraft.on_death", - "description": "Adds a trigger to call on this entity's death. minecraft:on_death can only be used by the `ender_dragon` entity.", + "description": "Adds a trigger to call on this entity's death.", "title": "On Death", "$ref": "../types/trigger.json" } diff --git a/source/behavior/entities/format/components/vertical_movement_action.json b/source/behavior/entities/format/components/vertical_movement_action.json new file mode 100644 index 00000000..6a8a6b9b --- /dev/null +++ b/source/behavior/entities/format/components/vertical_movement_action.json @@ -0,0 +1,14 @@ +{ + "$id": "blockception.minecraft.behavior.entities.minecraft.vertical_movement_action", + "description": "When configured as a rideable entity, the entity will move upwards or downwards when the player uses the jump action.", + "type": "object", + "title": "Vertical Movement Action", + "additionalProperties": false, + "properties": { + "vertical_velocity": { + "title": "Vertical Velocity", + "description": "Vertical velocity to apply when jump action is issued.", + "type": "number" + } + } +} diff --git a/source/behavior/entities/format/events.json b/source/behavior/entities/format/events.json index b09393fe..45173ce2 100644 --- a/source/behavior/entities/format/events.json +++ b/source/behavior/entities/format/events.json @@ -123,6 +123,16 @@ }, "examples": [{ "vibration": "shear" }, { "vibration": "entity_act" }, { "vibration": "entity_interact" }] }, + "drop_item": { + "title": "Drop Item", + "description": "Allows an entity to drop its item in a given slot", + "type": "object", + "properties": { + "slot": { + "enum": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet", "slot.armor.body", "slot.weapon.offhand", "slot.weapon.mainhand"] + } + } + }, "set_property": { "title": "Set Property", "description": "Sets a property on the entity.", diff --git a/source/behavior/items/format/components/entity_placer.json b/source/behavior/items/format/components/entity_placer.json index 9cc021cb..fa8a54b6 100644 --- a/source/behavior/items/format/components/entity_placer.json +++ b/source/behavior/items/format/components/entity_placer.json @@ -11,13 +11,13 @@ "type": "array", "title": "Dispense On", "description": "List of block descriptors that contain blocks that this item can be dispensed on. If left empty, all blocks will be allowed.", - "items": { "title": "Block Descriptor", "description": "Block that item can be dispensed on.", "$comment": "UNDOCUMENTED" } + "items": { "title": "Block Descriptor", "description": "Block that item can be dispensed on.", "$ref": "../../../../general/block/reference.json" } }, "use_on": { "type": "array", "title": "Use On", "description": "List of block descriptors that contain blocks that this item can be used on. If left empty, all blocks will be allowed.", - "items": { "title": "Block Descriptor", "description": "Block that item can be used on", "$comment": "UNDOCUMENTED" } + "items": { "title": "Block Descriptor", "description": "Block that item can be used on", "$ref": "../../../../general/block/reference.json" } } } } diff --git a/source/behavior/items/format/components/fire_resistant.json b/source/behavior/items/format/components/fire_resistant.json new file mode 100644 index 00000000..b5570b00 --- /dev/null +++ b/source/behavior/items/format/components/fire_resistant.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.items.minecraft:fire_resistant", + "title": "Fire Resistant", + "description": "Determines whether an item is immune to burning when dropped in fire or lava", + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "type": "boolean" + } + } + } + ] +} diff --git a/source/behavior/items/format/minecraft.item.json b/source/behavior/items/format/minecraft.item.json index 1385fe6b..5ed22d3b 100644 --- a/source/behavior/items/format/minecraft.item.json +++ b/source/behavior/items/format/minecraft.item.json @@ -1,7 +1,7 @@ { "$id": "blockception.minecraft.behavior.items", "additionalProperties": false, - "required": ["description"], + "required": [ "description" ], "type": "object", "description": "An item definition.", "$comment": "UNDOCUMENTED", @@ -72,6 +72,7 @@ "minecraft:dyeable": { "$ref": "./components/dyeable.json" }, "minecraft:enchantable": { "$ref": "./components/enchantable.json" }, "minecraft:entity_placer": { "$ref": "./components/entity_placer.json" }, + "minecraft:fire_resistant": { "$ref": "./components/fire_resistant.json" }, "minecraft:food": { "$ref": "./components/food.json" }, "minecraft:fuel": { "$ref": "./components/fuel.json" }, "minecraft:glint": { "$ref": "./components/glint.json" }, diff --git a/source/behavior/loot_tables/conditions.json b/source/behavior/loot_tables/conditions.json index 14ce76fe..d6ed124c 100644 --- a/source/behavior/loot_tables/conditions.json +++ b/source/behavior/loot_tables/conditions.json @@ -46,6 +46,14 @@ { "if": { "properties": { "condition": { "type": "string", "const": "random_regional_difficulty_chance" } } }, "then": { "$ref": "./conditions/random_regional_difficulty_chance.json" } + }, + { + "if": { "properties": { "condition": { "type": "string", "const": "passenger_of_entity" } } }, + "then": { "$ref": "./conditions/passenger_of_entity.json" } + }, + { + "if": { "properties": { "condition": { "type": "string", "const": "is_baby" } } }, + "then": { "$ref": "./conditions/is_baby.json" } } ] } diff --git a/source/behavior/loot_tables/conditions/is_baby.json b/source/behavior/loot_tables/conditions/is_baby.json new file mode 100644 index 00000000..cb4b0b62 --- /dev/null +++ b/source/behavior/loot_tables/conditions/is_baby.json @@ -0,0 +1,10 @@ +{ + "$id": "blockception.minecraft.behavior.condition.is_baby", + "type": "object", + "additionalProperties": false, + "description": "Allows checking if the entity that is dropping loot is a baby", + "title": "Is Baby", + "properties": { + "condition": { "type": "string", "title": "Condition", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED" } + } +} diff --git a/source/behavior/loot_tables/conditions/passenger_of_entity.json b/source/behavior/loot_tables/conditions/passenger_of_entity.json new file mode 100644 index 00000000..f6f9947f --- /dev/null +++ b/source/behavior/loot_tables/conditions/passenger_of_entity.json @@ -0,0 +1,15 @@ +{ + "$id": "blockception.minecraft.behavior.condition.passenger_of_entity", + "type": "object", + "additionalProperties": false, + "description": "Allows checking which vehicle entity type is being ridden by the damaged entity that is dropping loot", + "title": "Passenger Of Entity", + "properties": { + "condition": { "type": "string", "title": "Condition", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED" }, + "entity_type": { + "title": "Entity Type", + "description": "The entity type to match", + "type": "string" + } + } +} diff --git a/source/behavior/recipes/recipes.json b/source/behavior/recipes/recipes.json index 80392fc9..cde83128 100644 --- a/source/behavior/recipes/recipes.json +++ b/source/behavior/recipes/recipes.json @@ -1,6 +1,5 @@ { "$id": "blockception.minecraft.behavior.1.12.0.recipe", - "description": "Minecraft recipe", "required": ["format_version"], "additionalProperties": false, "minProperties": 2, diff --git a/source/behavior/recipes/types/base types/tags.json b/source/behavior/recipes/types/base types/tags.json index d52b74e8..a586768f 100644 --- a/source/behavior/recipes/types/base types/tags.json +++ b/source/behavior/recipes/types/base types/tags.json @@ -3,8 +3,20 @@ "description": "Recipe Tags", "title": "Tags", "type": "array", - "items": { "type": "string", "title": "Tag", "examples": [ - "crafting_table", "furnace", "smoker", "blast_furnace", "campfire", "soul_campfire", "brewing_stand", "smithing_table", "deprecated" - ] + "items": { + "type": "string", + "title": "Tag", + "examples": [ + "crafting_table", + "furnace", + "smoker", + "blast_furnace", + "campfire", + "soul_campfire", + "brewing_stand", + "smithing_table", + "stonecutter", + "deprecated" + ] } } \ No newline at end of file diff --git a/source/general/manifest.json b/source/general/manifest.json index 3cf5a448..1ca84412 100644 --- a/source/general/manifest.json +++ b/source/general/manifest.json @@ -4,22 +4,22 @@ "type": "object", "title": "Manifest Schema", "description": "The minecraft manifest schema.", - "required": ["format_version", "header"], + "required": [ "format_version", "header" ], "examples": [ { - "format_version": 2, + "format_version": 3, "header": { "description": "pack.description", "name": "pack.name", "uuid": "UUID2", - "min_engine_version": [1, 20, 40], - "version": [1, 0, 0] + "min_engine_version": [ 1, 20, 40 ], + "version": [ 1, 0, 0 ] }, "modules": [ { "type": "data", "uuid": "UUID2", - "version": [1, 0, 0] + "version": [ 1, 0, 0 ] } ] } @@ -28,19 +28,19 @@ { "label": "New Manifest", "body": { - "format_version": 2, + "format_version": 3, "header": { "description": "pack.description", "name": "pack.name", "uuid": "$UUID", - "min_engine_version": [1, 20, 10], - "version": [1, 0, 0] + "min_engine_version": [ 1, 20, 10 ], + "version": [ 1, 0, 0 ] }, "modules": [ { "type": "data", "uuid": "$UUID", - "version": [1, 0, 0] + "version": [ 1, 0, 0 ] } ] } @@ -70,6 +70,18 @@ } }, "then": { "$ref": "./manifest/manifest.2.json" } + }, + { + "if": { + "properties": { + "format_version": { + "const": 3, + "type": "number", + "title": "Format Version" + } + } + }, + "then": { "$ref": "./manifest/manifest.3.json" } } ] } diff --git a/source/general/manifest/manifest.3.json b/source/general/manifest/manifest.3.json new file mode 100644 index 00000000..a649e9b7 --- /dev/null +++ b/source/general/manifest/manifest.3.json @@ -0,0 +1,464 @@ +{ + "$id": "blockception.minecraft.manifest.3", + "type": "object", + "title": "Manifest V3 Schema", + "description": "The manifest file contains all the basic information about the pack that Minecraft needs to identify it. The tables below contain all the components of the manifest, their individual properties, and what they mean.", + "required": [ "format_version", "header" ], + "additionalProperties": false, + "properties": { + "format_version": { + "title": "Format Version", + "type": "number", + "description": "This defines the current version of the manifest. Don't change this unless you have a good reason to" + }, + "capabilities": { + "title": "Capabilities", + "description": "These are the different features that the pack makes use of that aren't necessarily enabled by default.", + "oneOf": [ + { + "type": "array", + "minItems": 1, + "items": { + "enum": [ "raytraced", "pbr", "script_eval", "editorExtension", "experimental_custom_ui", "chemistry" ] + } + }, + { + "type": "object", + "properties": { + "chemistry": { + "type": "boolean", + "description": "Allows the pack to add, change or replace Chemistry functionality.", + "title": "Chemistry" + }, + "editorExtension": { + "type": "boolean", + "description": "Indicates that this pack contains extensions for editing.", + "title": "Editor Extension" + }, + "experimental_custom_ui": { + "type": "boolean", + "description": "Allows HTML files in the pack to be used for custom UI, and scripts in the pack to call and manipulate custom UI.", + "title": "Experimental Custom Ui" + }, + "raytraced": { + "type": "boolean", + "description": "Indicates that this pack contains Raytracing Enhanced or Physical Based Materials for rendering.", + "title": "Raytraced" + } + } + } + ] + }, + "dependencies": { + "type": "array", + "title": "Dependencies", + "description": "Section containing definitions for any other packs or modules that are required in order for this manifest.json file to work.", + "items": { + "oneOf": [ + { + "additionalProperties": false, + "type": "object", + "title": "Dependency", + "description": "Section containing definitions for any other packs that are required in order for this manifest.json file to work.", + "properties": { + "uuid": { + "type": "string", + "$ref": "../UUIDV4.json", + "description": "This is the unique identifier of the pack that this pack depends on. It needs to be the exact same UUID that the pack has defined in the header section of it's manifest file", + "title": "Uuid" + }, + "version": { + "title": "Version", + "description": "This is the specific version of the pack that your pack depends on. Should match the version the other pack has in its manifest file", + "oneOf": [ { "$ref": "../Version.json" }, { "$ref": "../format_version.json" } ] + } + } + }, + { + "additionalProperties": false, + "type": "object", + "title": "Dependency", + "description": "Section containing definitions for any other packs or modules that are required in order for this manifest.json file to work.", + "properties": { + "module_name": { + "type": "string", + "description": "This is the name of the module that this pack depends on.", + "title": "Module Name", + "examples": [ + "@minecraft/server", + "@minecraft/server-editor", + "@minecraft/server-ui", + "@minecraft/server-gametest", + "@minecraft/server-admin", + "@minecraft/server-net" + ] + }, + "version": { + "title": "Version", + "description": "This is the specific version of the module that your pack depends on.", + "$ref": "../semver.json", + "default": "1.9.0", + "examples": [ "1.10.0-beta", "1.10.0", "1.9.0", "1.8.0", "1.7.0", "1.6.0", "1.5.0", "1.4.0", "1.3.0", "1.2.0", "1.2.0-beta", "1.1.0", "1.0.0" ] + } + } + } + ] + } + }, + "header": { + "description": "Section containing information regarding the name of the pack, description, and other features that are public facing.", + "title": "Header", + "required": [ "description", "name", "uuid", "version" ], + "properties": { + "allow_random_seed": { + "title": "Allow Random Seed", + "type": "boolean", + "description": "This option is required for any world templates. This will allow the player to use a random seed when creating a new world from your template." + }, + "base_game_version": { + "$ref": "../Version.json", + "title": "Base Game Version", + "description": "This is the version of the base game your world template requires, specified as [majorVersion, minorVersion, revision]. We use this to determine what version of the base game resource and behavior packs to apply when your content is used." + }, + "description": { + "title": "Description", + "type": "string", + "default": "", + "description": "This is a short description of the pack. It will appear in the game below the name of the pack. We recommend keeping it to 1-2 lines." + }, + "lock_template_options": { + "title": "Lock Template Options", + "type": "boolean", + "description": "This option is required for any world templates. This will lock the player from modifying the options of the world." + }, + "min_engine_version": { + "title": "Minimum Engine Version", + "$ref": "../Version.json", + "description": "This is the minimum version of the game that this pack was written for. This is a required field for resource and behavior packs. This helps the game identify whether any backwards compatibility is needed for your pack. You should always use the highest version currently available when creating packs" + }, + "name": { + "title": "Name", + "type": "string", + "description": "This is the name of the pack as it appears within Minecraft. This is a required field." + }, + "pack_scope": { + "title": "Pack Scope", + "type": "string", + "description": "This is the scope of the pack. This is only for resource packs", + "enum": [ "global", "world", "any" ] + }, + "uuid": { + "title": "UUID", + "$ref": "../UUIDV4.json", + "description": "This is a special type of identifier that uniquely identifies this pack from any other pack. UUIDs are written in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx where each x is a hexadecimal value (0-9 or a-f). We recommend using an online service to generate this and guarantee their uniqueness (just bing UUID Generator to find some)" + }, + "version": { + "title": "Version", + "description": "This is the version of your pack in the format [majorVersion, minorVersion, revision].", + "oneOf": [ { "$ref": "../Version.json" }, { "$ref": "../semver.json" } ] + } + } + }, + "modules": { + "type": "array", + "title": "Modules", + "description": "Section containing information regarding the type of content that is being brought in.", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Section containing information regarding the type of content that is being brought in.", + "title": "Module", + "required": [ "type", "uuid", "version" ], + "properties": { + "description": { + "type": "string", + "description": "This is a short description of the module. This is not user-facing at the moment but is a good place to remind yourself why the module is defined", + "title": "Description" + }, + "type": { + "type": "string", + "enum": [ "resources", "data", "client_data", "interface", "world_template", "javascript", "script" ], + "description": "This is the type of the module.", + "title": "Type" + }, + "language": { + "type": "string", + "title": "Language", + "description": "The programming language to use.", + "enum": [ "javascript", "Javascript" ] + }, + "uuid": { + "$ref": "../UUIDV4.json", + "description": "This is a unique identifier for the module in the same format as the pack's UUID in the header. This should be different from the pack's UUID, and different for every module", + "title": "Uuid" + }, + "version": { + "title": "Version", + "description": "This is the version of your pack in the format [majorVersion, minorVersion, revision]. The version number is used when importing a pack that has been imported before. The new pack will replace the old one if the version is higher, and ignored if it's the same or lower", + "oneOf": [ { "$ref": "../Version.json" }, { "$ref": "../semver.json" } ] + }, + "entry": { + "type": "string", + "title": "Entry", + "description": "The javascript entry point for tests, only works if types has been set to `javascript`." + } + } + } + }, + "metadata": { + "additionalProperties": false, + "type": "object", + "description": "Section containing the metadata about the file such as authors and licensing information.", + "title": "Metadata", + "properties": { + "authors": { + "title": "Authors", + "description": "Name of the author(s) of the pack.", + "type": "array", + "items": { "type": "string", "title": "Name", "description": "Name of the author of the pack." } + }, + "generated_with": { + "title": "Generated With", + "description": "A list of tools and their version that have modified this pack.", + "type": "object", + "propertyNames": { + "pattern": "^[a-zA-Z0-9\\_\\-]+$", + "maxLength": 32 + }, + "additionalProperties": { + "type": "array", + "examples": [ [ "1.0.0" ] ], + "title": "Tool", + "description": "The tool and the version used to modified this pack.", + "items": { + "title": "Version", + "$ref": "../semver.json" + } + } + }, + "license": { "type": "string", "title": "License", "description": "The license of the pack." }, + "product_type": { + "type": "string", + "title": "Product Type", + "description": "The type of product this pack is. This is used to determine how the pack is displayed in the store.", + "enum": [ "", "addon" ] + }, + "url": { "type": "string", "format": "uri", "title": "Url", "description": "The home website of your pack." } + } + }, + "subpacks": { + "type": "array", + "title": "Subpacks", + "description": "A list of subpacks that are applied per memory tier.", + "items": { + "type": "object", + "additionalProperties": false, + "description": "A single definition of a subpack.", + "title": "Subpacks", + "required": [ "folder_name", "name", "memory_tier" ], + "example": [ { "folder_name": "tier1", "name": "low", "memory_tier": 1 } ], + "properties": { + "folder_name": { + "type": "string", + "description": "This represents the folder name located in \"subpacks\" folder. When user select this resolution Minecraft loads the content inside the folder.", + "title": "Folder Name" + }, + "name": { + "type": "string", + "description": "This is the name of the pack resolution. This lets user know what resolution they are choosing.", + "title": "Name" + }, + "memory_tier": { + "type": "number", + "title": "Memory Tier", + "description": "This creates a requirement on the capacity of memory needed to select the resolution. Each tier increases memory requirement by 256 MB." + } + } + } + }, + "settings": { + "title": "Settings", + "description": "UNDOCUMENTED", + "type": "array", + "items": { + "oneOf": [ + { + "title": "Label Setting", + "description": "UNDOCUMENTED", + "type": "object", + "properties": { + "text": { + "title": "Text", + "description": "UNDOCUMENTED", + "type": "string" + }, + "type": { + "title": "Setting Type", + "description": "UNDOCUMENTED", + "type": "string", + "const": "label" + } + }, + "required": [ + "text", + "type" + ] + }, + { + "title": "Slider Setting", + "type": "object", + "properties": { + "default": { + "title": "Default", + "description": "UNDOCUMENTED", + "type": "number" + }, + "max": { + "title": "Max", + "description": "UNDOCUMENTED", + "type": "number" + }, + "min": { + "title": "Min", + "description": "UNDOCUMENTED", + "type": "number" + }, + "name": { + "title": "Name", + "description": "UNDOCUMENTED", + "type": "string", + "pattern": "^(?:(?!^(minecraft):).)+:(?:.)+$" + }, + "step": { + "title": "Step", + "description": "UNDOCUMENTED", + "type": "number", + "exclusiveMinimum": 0.0 + }, + "text": { + "title": "Text", + "description": "UNDOCUMENTED", + "type": "string" + }, + "type": { + "title": "Setting Type", + "description": "UNDOCUMENTED", + "type": "string", + "const": "slider" + } + }, + "required": [ + "default", + "max", + "min", + "name", + "step", + "text", + "type" + ] + }, + { + "title": "Toggle Setting", + "type": "object", + "properties": { + "default": { + "title": "Default", + "description": "UNDOCUMENTED", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "UNDOCUMENTED", + "type": "string", + "pattern": "^(?:(?!^(minecraft):).)+:(?:.)+$" + }, + "text": { + "title": "Text", + "description": "UNDOCUMENTED", + "type": "string" + }, + "type": { + "title": "Setting Type", + "description": "UNDOCUMENTED", + "type": "string", + "const": "toggle" + } + }, + "required": [ + "default", + "name", + "text", + "type" + ] + }, + { + "title": "Dropdown Setting", + "type": "object", + "properties": { + "default": { + "title": "Default", + "description": "UNDOCUMENTED", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "UNDOCUMENTED", + "type": "string", + "pattern": "^(?:(?!^(minecraft):).)+:(?:.)+$" + }, + "options": { + "title": "Options", + "description": "UNDOCUMENTED", + "type": "array", + "items": { + "title": "Dropdown Option", + "description": "UNDOCUMENTED", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "UNDOCUMENTED", + "type": "string", + "minLength": 1 + }, + "text": { + "title": "Text", + "description": "UNDOCUMENTED", + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "text" + ] + }, + "minItems": 2 + }, + "text": { + "title": "Text", + "description": "UNDOCUMENTED", + "type": "string" + }, + "type": { + "title": "Setting Type", + "description": "UNDOCUMENTED", + "type": "string", + "const": "dropdown" + } + }, + "required": [ + "default", + "name", + "options", + "text", + "type" + ] + } + ] + }, + "minItems": 1 + } + } +} diff --git a/source/resource/biomes/format/components/biome_music.json b/source/resource/biomes/format/components/biome_music.json index a43d37cf..0af7645d 100644 --- a/source/resource/biomes/format/components/biome_music.json +++ b/source/resource/biomes/format/components/biome_music.json @@ -10,6 +10,11 @@ "description": "Music to be played when inside this biome. If left off or not found the default music will be determined by the dimension. Empty string will result in no music.", "type": "string" }, + "underwater_music": { + "title": "Underwater Music", + "description": "Enables underwater music", + "type": "boolean" + }, "volume_multiplier": { "title": "Volume Multiplier", "description": "Multiplier temporarily and gradually applied to music volume when within this biome.", diff --git a/source/resource/biomes/format/components/precipitation.json b/source/resource/biomes/format/components/precipitation.json new file mode 100644 index 00000000..af5d5804 --- /dev/null +++ b/source/resource/biomes/format/components/precipitation.json @@ -0,0 +1,29 @@ +{ + "$id": "blockception.minecraft.resource.biomes.minecraft.precipitation", + "title": "Precipitation", + "description": "Describes the visuals for a biome's precipitation. Biomes without this component will have default values. At most one precipitation type can be set for a biome.", + "type": "object", + "additionalProperties": false, + "properties": { + "ash": { + "title": "Ash", + "description": "Density of ash precipitation visuals.", + "type": "number" + }, + "blue_spores": { + "title": "Blue Spores", + "description": "Density of blue spore precipitation visuals.", + "type": "number" + }, + "red_spores": { + "title": "Red Spores", + "description": "Density of blue spore precipitation visuals.", + "type": "number" + }, + "white_ash": { + "title": "White Ash", + "description": "Density of white ash precipitation visuals.", + "type": "number" + } + } +} diff --git a/source/resource/biomes/format/minecraft.client_biome.json b/source/resource/biomes/format/minecraft.client_biome.json index 30724044..a8bd28a7 100644 --- a/source/resource/biomes/format/minecraft.client_biome.json +++ b/source/resource/biomes/format/minecraft.client_biome.json @@ -24,6 +24,7 @@ "minecraft:grass_appearance": { "$ref": "./components/grass_appearance.json" }, "minecraft:lighting_identifier": { "$ref": "./components/lighting_identifier.json" }, "minecraft:sky_color": { "$ref": "./components/sky_color.json" }, + "minecraft:precipitation": { "$ref": "./components/precipitation.json" }, "minecraft:water_appearance": { "$ref": "./components/water_appearance.json" }, "minecraft:water_identifier": { "$ref": "./components/water_identifier.json" } } diff --git a/source/resource/models/entity/1.16.0/model_entity.json b/source/resource/models/entity/1.16.0/model_entity.json index c3f0d583..bb9ef04f 100644 --- a/source/resource/models/entity/1.16.0/model_entity.json +++ b/source/resource/models/entity/1.16.0/model_entity.json @@ -376,7 +376,7 @@ "poly_mesh": { "additionalProperties": false, "type": "object", - "description": "***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.", + "description": "A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.", "required": [ "polys" ], @@ -497,7 +497,7 @@ "texture_meshes": { "type": "array", "title": "Texture Meshes", - "description": "***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes.", + "description": "Adds a mesh to the bone's geometry by converting texels in a texture into boxes.", "items": { "type": "object", "additionalProperties": false, @@ -548,6 +548,12 @@ "texture": { "type": "string", "description": "The friendly-named texture to use." + }, + "use_pixel_depth": { + "title": "Use Pixel Depth", + "description": "Controls how geometry depth relates to texture resolution", + "type": "boolean", + "default": false } } } diff --git a/source/resource/models/entity/1.21.0/model_entity.json b/source/resource/models/entity/1.21.0/model_entity.json index 3b751460..37eddc14 100644 --- a/source/resource/models/entity/1.21.0/model_entity.json +++ b/source/resource/models/entity/1.21.0/model_entity.json @@ -499,7 +499,7 @@ "poly_mesh": { "additionalProperties": false, "type": "object", - "description": "***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.", + "description": "A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.", "required": [ "polys" ], @@ -620,7 +620,7 @@ "texture_meshes": { "type": "array", "title": "Texture Meshes", - "description": "***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes.", + "description": "Adds a mesh to the bone's geometry by converting texels in a texture into boxes.", "items": { "type": "object", "additionalProperties": false, @@ -671,6 +671,12 @@ "texture": { "type": "string", "description": "The friendly-named texture to use." + }, + "use_pixel_depth": { + "title": "Use Pixel Depth", + "description": "Controls how geometry depth relates to texture resolution", + "type": "boolean", + "default": false } } } @@ -712,6 +718,9 @@ }, "head": { "$ref": "#/definitions/display_transform" + }, + "embedded": { + "$ref": "#/definitions/display_transform" } } } diff --git a/source/resource/models/entity/1.8.0/model_entity.json b/source/resource/models/entity/1.8.0/model_entity.json index 0d63d156..b6441ca3 100644 --- a/source/resource/models/entity/1.8.0/model_entity.json +++ b/source/resource/models/entity/1.8.0/model_entity.json @@ -323,6 +323,12 @@ "type": "number" } ] + }, + "use_pixel_depth": { + "title": "Use Pixel Depth", + "description": "Controls how geometry depth relates to texture resolution", + "type": "boolean", + "default": false } } }