From 6d9e384781e835577eaa070732d91f5c2478faba Mon Sep 17 00:00:00 2001 From: Xterionix <72647213+Xterionix@users.noreply.github.com> Date: Wed, 15 Oct 2025 12:51:49 -0500 Subject: [PATCH] 1.21.120 (#392) * - Fix typo "torse" -> "torso" * - Added "main_hand" as an equipment location * - Added support for "beta" version of script modules * - Update point lights to local light * - Added precipitation_interactions * - Added control flags field to more goals * - Update fire_resistant to not accept direct values * - Added swing_duration component * - Added emissive block rendering * - Added emit_vibrations field to use_modifiers * - Added underwater ambient sounds - Added chance field to ambient sound addition * - Added alpha_masked_tint * - Added apply_knockback_to_blocking_targets field to projectile --- .../format/components/material_instances.json | 12 ++++++ .../precipitation_interactions.json | 16 ++++++++ .../blocks/format/minecraft.block.json | 1 + .../filters/types/equipment_location.json | 2 +- .../format/behaviors/avoid_block.json | 3 ++ .../format/behaviors/avoid_mob_type.json | 3 ++ .../entities/format/behaviors/dig.json | 3 ++ .../entities/format/behaviors/drink_milk.json | 3 ++ .../format/components/projectile.json | 6 +++ .../format/components/fire_resistant.json | 17 +++------ .../format/components/swing_duration.json | 15 ++++++++ .../format/components/use_modifiers.json | 6 +++ .../behavior/items/format/minecraft.item.json | 1 + source/general/manifest/manifest.2.json | 11 ++++-- source/general/manifest/manifest.3.json | 11 ++++-- .../format/components/ambient_sounds.json | 38 ++++++++++++++++++- .../local_lighting/local_lighting.json | 34 +++++++++++++++++ source/resource/point_lights/global.json | 31 --------------- vscode-settings.json | 12 +++--- 19 files changed, 168 insertions(+), 57 deletions(-) create mode 100644 source/behavior/blocks/format/components/precipitation_interactions.json create mode 100644 source/behavior/items/format/components/swing_duration.json create mode 100644 source/resource/local_lighting/local_lighting.json delete mode 100644 source/resource/point_lights/global.json diff --git a/source/behavior/blocks/format/components/material_instances.json b/source/behavior/blocks/format/components/material_instances.json index e9394191..938419cf 100644 --- a/source/behavior/blocks/format/components/material_instances.json +++ b/source/behavior/blocks/format/components/material_instances.json @@ -25,6 +25,12 @@ "type": "object", "additionalProperties": false, "properties": { + "alpha_masked_tint": { + "title": "Alpha Masked Tint", + "description": "Should the tint be multiplied by the alpha channel of texture (similar to grass_block's sides)?", + "type": "boolean", + "default": false + }, "ambient_occlusion": { "title": "Ambient Occlusion", "description": "Should this material have ambient occlusion applied when lighting? If true, shadows will be created around and underneath the block.", @@ -39,6 +45,12 @@ } ] }, + "emissive": { + "title": "Emissive", + "description": "[Experimental] Should this material be rendered as emissive", + "type": "boolean", + "default": false + }, "face_dimming": { "title": "Face Dimming", "type": "boolean", diff --git a/source/behavior/blocks/format/components/precipitation_interactions.json b/source/behavior/blocks/format/components/precipitation_interactions.json new file mode 100644 index 00000000..fef3158d --- /dev/null +++ b/source/behavior/blocks/format/components/precipitation_interactions.json @@ -0,0 +1,16 @@ +{ + "$id": "blockception.minecraft.behavior.blocks.minecraft.precipitation_interactions", + "title": "Precipitation Interactions", + "description": "Component that determines how the block will interact with rain and snow", + "type": "object", + "additionalProperties": false, + "required": [ "precipitation_behavior" ], + "properties": { + "precipitation_behavior": { + "title": "Precipitation Behavior", + "description": "What behavior should the block have.", + "type": "string", + "enum": [ "obstruct_rain", "obstruct_rain_accumulate_snow", "none" ] + } + } +} \ 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 3c8ed823..e224c830 100644 --- a/source/behavior/blocks/format/minecraft.block.json +++ b/source/behavior/blocks/format/minecraft.block.json @@ -34,6 +34,7 @@ "minecraft:material_instances": { "$ref": "./components/material_instances.json" }, "minecraft:movable": { "$ref": "./components/movable.json" }, "minecraft:placement_filter": { "$ref": "./components/placement_filter.json" }, + "minecraft:precipitation_interactions": { "$ref": "./components/precipitation_interactions.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" }, diff --git a/source/behavior/entities/filters/filters/types/equipment_location.json b/source/behavior/entities/filters/filters/types/equipment_location.json index 1e29ecf7..7ce430d6 100644 --- a/source/behavior/entities/filters/filters/types/equipment_location.json +++ b/source/behavior/entities/filters/filters/types/equipment_location.json @@ -4,5 +4,5 @@ "type": "string", "description": "The equipment location to test.", "default": "self", - "enum": ["any", "armor", "feet", "hand", "head", "inventory", "leg", "torse"] + "enum": ["any", "armor", "feet", "main_hand", "hand", "head", "inventory", "leg", "torso"] } diff --git a/source/behavior/entities/format/behaviors/avoid_block.json b/source/behavior/entities/format/behaviors/avoid_block.json index 11a8eba3..f5e589a1 100644 --- a/source/behavior/entities/format/behaviors/avoid_block.json +++ b/source/behavior/entities/format/behaviors/avoid_block.json @@ -12,6 +12,9 @@ "default": 1, "description": "Should start tick interval." }, + "control_flags": { + "$ref": "./types/control_flags.json" + }, "search_range": { "type": "integer", "title": "Search Range", diff --git a/source/behavior/entities/format/behaviors/avoid_mob_type.json b/source/behavior/entities/format/behaviors/avoid_mob_type.json index 1c9898d5..1703fd93 100644 --- a/source/behavior/entities/format/behaviors/avoid_mob_type.json +++ b/source/behavior/entities/format/behaviors/avoid_mob_type.json @@ -9,6 +9,9 @@ "priority": { "$ref": "./types/priority.json" }, + "control_flags": { + "$ref": "./types/control_flags.json" + }, "avoid_mob_sound": { "title": "Avoid Mob Sound", "default": "", diff --git a/source/behavior/entities/format/behaviors/dig.json b/source/behavior/entities/format/behaviors/dig.json index 6a4b093e..57b966ff 100644 --- a/source/behavior/entities/format/behaviors/dig.json +++ b/source/behavior/entities/format/behaviors/dig.json @@ -8,6 +8,9 @@ "priority": { "$ref": "./types/priority.json" }, + "control_flags": { + "$ref": "./types/control_flags.json" + }, "allow_dig_when_named": { "title": "Allow Dig When Named", "type": "boolean", diff --git a/source/behavior/entities/format/behaviors/drink_milk.json b/source/behavior/entities/format/behaviors/drink_milk.json index f992a5e3..7643e61d 100644 --- a/source/behavior/entities/format/behaviors/drink_milk.json +++ b/source/behavior/entities/format/behaviors/drink_milk.json @@ -6,6 +6,9 @@ "additionalProperties": false, "properties": { "priority": { "$ref": "./types/priority.json" }, + "control_flags": { + "$ref": "./types/control_flags.json" + }, "cooldown_seconds": { "title": "Cooldown Seconds", "type": "number", diff --git a/source/behavior/entities/format/components/projectile.json b/source/behavior/entities/format/components/projectile.json index fa534275..697f5eca 100644 --- a/source/behavior/entities/format/components/projectile.json +++ b/source/behavior/entities/format/components/projectile.json @@ -297,6 +297,12 @@ "description": "Defines the damage that an entity may receive on being hit by this projectile. See the table below for all impact_damage parameters.", "additionalProperties": false, "properties": { + "apply_knockback_to_blocking_targets": { + "title": "Apply Knockback To Blocking Targets", + "description": "UNDOCUMENTED", + "type": "boolean", + "default": false + }, "catch_fire": { "title": "Catch Fire", "description": "Determines if the struck object is set on fire.", diff --git a/source/behavior/items/format/components/fire_resistant.json b/source/behavior/items/format/components/fire_resistant.json index b5570b00..169540cd 100644 --- a/source/behavior/items/format/components/fire_resistant.json +++ b/source/behavior/items/format/components/fire_resistant.json @@ -2,18 +2,11 @@ "$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": "object", + "additionalProperties": false, + "properties": { + "value": { "type": "boolean" - }, - { - "type": "object", - "additionalProperties": false, - "properties": { - "value": { - "type": "boolean" - } - } } - ] + } } diff --git a/source/behavior/items/format/components/swing_duration.json b/source/behavior/items/format/components/swing_duration.json new file mode 100644 index 00000000..7acd3c7d --- /dev/null +++ b/source/behavior/items/format/components/swing_duration.json @@ -0,0 +1,15 @@ +{ + "$id": "blockception.minecraft.behavior.items.minecraft:swing_duration", + "title": "Swing Duration", + "description": "Duration, in seconds, of the item's swing animation played when mining or attacking. Affects visuals only and does not impact attack frequency or other gameplay mechanics.", + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "description": "Duration, in seconds, of the item's swing animation played when mining or attacking. Affects visuals only and does not impact attack frequency or other gameplay mechanics.", + "minimum": 0, + "type": "number", + "default": 0.3 + } + } +} diff --git a/source/behavior/items/format/components/use_modifiers.json b/source/behavior/items/format/components/use_modifiers.json index 9fc51500..a3114ade 100644 --- a/source/behavior/items/format/components/use_modifiers.json +++ b/source/behavior/items/format/components/use_modifiers.json @@ -17,6 +17,12 @@ "description": "How long the item takes to use in seconds.", "type": "number", "minimum": 0 + }, + "emit_vibrations": { + "title": "Emit Vibrations", + "description": "Whether vibrations are emitted when the item starts or stops being used.", + "type": "boolean", + "default": true } } } diff --git a/source/behavior/items/format/minecraft.item.json b/source/behavior/items/format/minecraft.item.json index 5ed22d3b..e8e49bd3 100644 --- a/source/behavior/items/format/minecraft.item.json +++ b/source/behavior/items/format/minecraft.item.json @@ -90,6 +90,7 @@ "minecraft:storage_item": { "$ref": "./components/storage_item.json" }, "minecraft:storage_weight_limit": { "$ref": "./components/storage_weight_limit.json" }, "minecraft:storage_weight_modifier": { "$ref": "./components/storage_weight_modifier.json" }, + "minecraft:swing_duration": { "$ref": "./components/swing_duration.json" }, "minecraft:tags": { "$ref": "./components/tags.json" }, "minecraft:throwable": { "$ref": "./components/throwable.json" }, "minecraft:use_animation": { "$ref": "./components/use_animation.json" }, diff --git a/source/general/manifest/manifest.2.json b/source/general/manifest/manifest.2.json index bf56b0c7..1b16ee72 100644 --- a/source/general/manifest/manifest.2.json +++ b/source/general/manifest/manifest.2.json @@ -96,9 +96,14 @@ "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"] + "oneOf": [ + { + "$ref": "../semver.json", + "default": "1.9.0", + "examples": ["2.4.0-beta", "2.3.0-beta", "2.3.0", "2.2.0", "2.1.0", "2.0.0", "1.19.0", "1.18.0", "1.17.0", "1.16.0", "1.15.0", "1.14.0", "1.13.0", "1.12.0", "1.11.0", "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.1.0", "1.0.0"] + }, + {"const": "beta"} + ] } } } diff --git a/source/general/manifest/manifest.3.json b/source/general/manifest/manifest.3.json index a649e9b7..aec16415 100644 --- a/source/general/manifest/manifest.3.json +++ b/source/general/manifest/manifest.3.json @@ -96,9 +96,14 @@ "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" ] + "oneOf": [ + { + "$ref": "../semver.json", + "default": "1.9.0", + "examples": ["2.4.0-beta", "2.3.0-beta", "2.3.0", "2.2.0", "2.1.0", "2.0.0", "1.19.0", "1.18.0", "1.17.0", "1.16.0", "1.15.0", "1.14.0", "1.13.0", "1.12.0", "1.11.0", "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.1.0", "1.0.0"] + }, + {"const": "beta"} + ] } } } diff --git a/source/resource/biomes/format/components/ambient_sounds.json b/source/resource/biomes/format/components/ambient_sounds.json index 045b2593..b33793ea 100644 --- a/source/resource/biomes/format/components/ambient_sounds.json +++ b/source/resource/biomes/format/components/ambient_sounds.json @@ -4,11 +4,31 @@ "description": "Sets the ambient sounds for the biome. These sounds must be in the 'individual_named_sounds' in a 'sounds.json' file.", "type": "object", "additionalProperties": false, + "definitions": { + "sound_addition": { + "type": "object", + "additionalProperties": false, + "properties": { + "asset": { + "title": "Asset", + "description": "Name of the sound asset to play", + "type": "string" + }, + "chance": { + "title": "Chance", + "description": "Probability of the sound playing each interval, between 0.0 and 1.0", + "type": "number", + "minimum": 0, + "maximum": 1 + } + } + } + }, "properties": { "addition": { "title": "Addition", "description": "Named sound that occasionally plays at the listener position.", - "type": "string" + "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/sound_addition" } ] //TODO: Check if this is dependent on format version and flag through diagnoser accordingly }, "loop": { "title": "Loop", @@ -20,6 +40,22 @@ "description": "Named sound that rarely plays at a nearby air block position when the light level is low.", "type": "string", "default": "ambient.cave" + }, + "underwater_addition": { + "title": "Underwater Addition", + "description": "Named sound that occasionally plays at the listener position when underwater.", + "$ref": "#/definitions/sound_addition" + }, + "underwater_loop": { + "title": "Underwater Loop", + "description": "Named sound that loops while the listener position is inside the biome and underwater.", + "type": "string" + }, + "underwater_mood": { + "title": "Underwater Mood", + "description": "Named sound that rarely plays at a nearby water block position when the light level is low.", + "type": "string", + "default": "ambient.underwater.loop" } } } diff --git a/source/resource/local_lighting/local_lighting.json b/source/resource/local_lighting/local_lighting.json new file mode 100644 index 00000000..fcfcb8bc --- /dev/null +++ b/source/resource/local_lighting/local_lighting.json @@ -0,0 +1,34 @@ +{ + "$id": "blockception.minecraft.behavior.local_lighting.local_lighting", + "type": "object", + "additionalProperties": false, + "properties": { + "format_version": { "$ref": "../../general/format_version.json" }, + "minecraft:local_light_settings": { + "title": "Local Light Settings", + "description": "UNDOCUMENTED", + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[0-9a-zA-Z:_\\.\\-]+$": { + "title": "Block", + "description": "Namespace-qualified block name", + "type": "object", + "additionalProperties": false, + "required": ["light_type"], + "properties": { + "light_type": { + "title": "Light Type", + "description": "`static_light` is currently unused", + "type": "string", + "enum": ["static_light", "point_light"] + }, + "light_color": { + "$ref": "../lighting/format/color.json" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/source/resource/point_lights/global.json b/source/resource/point_lights/global.json deleted file mode 100644 index 11bc369d..00000000 --- a/source/resource/point_lights/global.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.point_lights.global", - "type": "object", - "additionalProperties": false, - "properties": { - "format_version": { "$ref": "../../general/format_version.json" }, - "minecraft:point_light_settings": { - "title": "Point Light Settings", - "description": "UNDOCUMENTED", - "type": "object", - "additionalProperties": false, - "required": [ "colors" ], - "properties": { - "colors": { - "title": "Colors", - "description": " List of key-value pairs where the key is a namespace-qualified block name and the value is a color", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^[0-9a-zA-Z:_\\.\\-]+$": { - "$ref": "../lighting/format/color.json" - }, - "tile.[\\w.]+.name": { - "$ref": "../lighting/format/color.json" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/vscode-settings.json b/vscode-settings.json index 95fe9756..4dfabca2 100644 --- a/vscode-settings.json +++ b/vscode-settings.json @@ -652,13 +652,13 @@ }, { "fileMatch": [ - "resource_packs/*/point_lights/global.{json,jsonc,json5}", - "*resource*pack*/point_lights/global.{json,jsonc,json5}", - "*Resource*Pack*/point_lights/global.{json,jsonc,json5}", - "*RP*/point_lights/global.{json,jsonc,json5}", - "*rp*/point_lights/global.{json,jsonc,json5}" + "resource_packs/*/local_lighting/local_lighting.{json,jsonc,json5}", + "*resource*pack*/local_lighting/local_lighting.{json,jsonc,json5}", + "*Resource*Pack*/local_lighting/local_lighting.{json,jsonc,json5}", + "*RP*/local_lighting/local_lighting.{json,jsonc,json5}", + "*rp*/local_lighting/local_lighting.{json,jsonc,json5}" ], - "url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/resource/point_lights/point_lights.json" + "url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/resource/local_lighting/local_lighting.json" }, { "fileMatch": [