From b7ada2e6b2208c1b5798b13019984821d2013620 Mon Sep 17 00:00:00 2001 From: DaanV2 Date: Thu, 3 Jun 2021 14:01:38 +0200 Subject: [PATCH] Added universal filters --- source/behavior/entities/filters/filters.json | 129 ++++++++++++++++++ .../entities/filters/filters/clock_time.json | 27 ++++ .../filters/distance_to_nearest_player.json | 13 ++ .../entities/filters/filters/has_ability.json | 18 +++ .../filters/filters/has_biome_tag.json | 13 ++ .../filters/filters/has_component.json | 13 ++ .../filters/filters/has_container_open.json | 19 +++ .../entities/filters/filters/has_damage.json | 13 ++ .../filters/filters/has_equipment.json | 29 ++++ .../filters/filters/has_mob_effect.json | 13 ++ .../filters/filters/has_ranged_weapon.json | 19 +++ .../entities/filters/filters/has_tag.json | 13 ++ .../entities/filters/filters/has_target.json | 19 +++ .../filters/filters/has_trade_supply.json | 23 ++++ .../filters/filters/hourly_clock_time.json | 18 +++ .../entities/filters/filters/in_block.json | 26 ++++ .../entities/filters/filters/in_caravan.json | 19 +++ .../entities/filters/filters/in_clouds.json | 19 +++ .../filters/in_contact_with_water.json | 23 ++++ .../entities/filters/filters/in_lava.json | 19 +++ .../entities/filters/filters/in_nether.json | 19 +++ .../entities/filters/filters/in_water.json | 19 +++ .../filters/filters/in_water_or_rain.json | 19 +++ .../filters/filters/inactivity_timer.json | 13 ++ .../entities/filters/filters/is_altitude.json | 17 +++ .../filters/filters/is_avoiding_mobs.json | 19 +++ .../entities/filters/filters/is_biome.json | 37 +++++ .../entities/filters/filters/is_block.json | 13 ++ .../filters/filters/is_brightness.json | 17 +++ .../entities/filters/filters/is_climbing.json | 19 +++ .../entities/filters/filters/is_color.json | 35 +++++ .../entities/filters/filters/is_daytime.json | 19 +++ .../filters/filters/is_difficulty.json | 18 +++ .../entities/filters/filters/is_family.json | 13 ++ .../filters/filters/is_game_rule.json | 13 ++ .../entities/filters/filters/is_humid.json | 19 +++ .../entities/filters/filters/is_immobile.json | 19 +++ .../filters/filters/is_in_village.json | 19 +++ .../entities/filters/filters/is_leashed.json | 19 +++ .../filters/filters/is_leashed_to.json | 19 +++ .../filters/filters/is_mark_variant.json | 13 ++ .../entities/filters/filters/is_moving.json | 19 +++ .../entities/filters/filters/is_owner.json | 19 +++ .../filters/filters/is_persistent.json | 19 +++ .../entities/filters/filters/is_riding.json | 19 +++ .../entities/filters/filters/is_skin_id.json | 12 ++ .../entities/filters/filters/is_sleeping.json | 19 +++ .../entities/filters/filters/is_sneaking.json | 19 +++ .../filters/filters/is_snow_covered.json | 19 +++ .../entities/filters/filters/is_target.json | 19 +++ .../filters/filters/is_temperature_type.json | 18 +++ .../filters/filters/is_temperature_value.json | 13 ++ .../filters/filters/is_underground.json | 19 +++ .../filters/filters/is_underwater.json | 19 +++ .../entities/filters/filters/is_variant.json | 13 ++ .../entities/filters/filters/is_visible.json | 19 +++ .../entities/filters/filters/light_level.json | 13 ++ .../filters/filters/moon_intensity.json | 13 ++ .../entities/filters/filters/moon_phase.json | 13 ++ .../entities/filters/filters/on_ground.json | 19 +++ .../entities/filters/filters/on_ladder.json | 19 +++ .../filters/filters/random_chance.json | 13 ++ .../entities/filters/filters/rider_count.json | 13 ++ .../entities/filters/filters/surface_mob.json | 19 +++ .../entities/filters/filters/trusts.json | 19 +++ .../filters/filters/types/operator.json | 8 ++ .../filters/filters/types/subject.json | 8 ++ .../entities/filters/filters/types/test.json | 58 ++++++++ .../entities/filters/filters/weather.json | 13 ++ .../filters/filters/weather_at_position.json | 13 ++ 70 files changed, 1389 insertions(+) create mode 100644 source/behavior/entities/filters/filters.json create mode 100644 source/behavior/entities/filters/filters/clock_time.json create mode 100644 source/behavior/entities/filters/filters/distance_to_nearest_player.json create mode 100644 source/behavior/entities/filters/filters/has_ability.json create mode 100644 source/behavior/entities/filters/filters/has_biome_tag.json create mode 100644 source/behavior/entities/filters/filters/has_component.json create mode 100644 source/behavior/entities/filters/filters/has_container_open.json create mode 100644 source/behavior/entities/filters/filters/has_damage.json create mode 100644 source/behavior/entities/filters/filters/has_equipment.json create mode 100644 source/behavior/entities/filters/filters/has_mob_effect.json create mode 100644 source/behavior/entities/filters/filters/has_ranged_weapon.json create mode 100644 source/behavior/entities/filters/filters/has_tag.json create mode 100644 source/behavior/entities/filters/filters/has_target.json create mode 100644 source/behavior/entities/filters/filters/has_trade_supply.json create mode 100644 source/behavior/entities/filters/filters/hourly_clock_time.json create mode 100644 source/behavior/entities/filters/filters/in_block.json create mode 100644 source/behavior/entities/filters/filters/in_caravan.json create mode 100644 source/behavior/entities/filters/filters/in_clouds.json create mode 100644 source/behavior/entities/filters/filters/in_contact_with_water.json create mode 100644 source/behavior/entities/filters/filters/in_lava.json create mode 100644 source/behavior/entities/filters/filters/in_nether.json create mode 100644 source/behavior/entities/filters/filters/in_water.json create mode 100644 source/behavior/entities/filters/filters/in_water_or_rain.json create mode 100644 source/behavior/entities/filters/filters/inactivity_timer.json create mode 100644 source/behavior/entities/filters/filters/is_altitude.json create mode 100644 source/behavior/entities/filters/filters/is_avoiding_mobs.json create mode 100644 source/behavior/entities/filters/filters/is_biome.json create mode 100644 source/behavior/entities/filters/filters/is_block.json create mode 100644 source/behavior/entities/filters/filters/is_brightness.json create mode 100644 source/behavior/entities/filters/filters/is_climbing.json create mode 100644 source/behavior/entities/filters/filters/is_color.json create mode 100644 source/behavior/entities/filters/filters/is_daytime.json create mode 100644 source/behavior/entities/filters/filters/is_difficulty.json create mode 100644 source/behavior/entities/filters/filters/is_family.json create mode 100644 source/behavior/entities/filters/filters/is_game_rule.json create mode 100644 source/behavior/entities/filters/filters/is_humid.json create mode 100644 source/behavior/entities/filters/filters/is_immobile.json create mode 100644 source/behavior/entities/filters/filters/is_in_village.json create mode 100644 source/behavior/entities/filters/filters/is_leashed.json create mode 100644 source/behavior/entities/filters/filters/is_leashed_to.json create mode 100644 source/behavior/entities/filters/filters/is_mark_variant.json create mode 100644 source/behavior/entities/filters/filters/is_moving.json create mode 100644 source/behavior/entities/filters/filters/is_owner.json create mode 100644 source/behavior/entities/filters/filters/is_persistent.json create mode 100644 source/behavior/entities/filters/filters/is_riding.json create mode 100644 source/behavior/entities/filters/filters/is_skin_id.json create mode 100644 source/behavior/entities/filters/filters/is_sleeping.json create mode 100644 source/behavior/entities/filters/filters/is_sneaking.json create mode 100644 source/behavior/entities/filters/filters/is_snow_covered.json create mode 100644 source/behavior/entities/filters/filters/is_target.json create mode 100644 source/behavior/entities/filters/filters/is_temperature_type.json create mode 100644 source/behavior/entities/filters/filters/is_temperature_value.json create mode 100644 source/behavior/entities/filters/filters/is_underground.json create mode 100644 source/behavior/entities/filters/filters/is_underwater.json create mode 100644 source/behavior/entities/filters/filters/is_variant.json create mode 100644 source/behavior/entities/filters/filters/is_visible.json create mode 100644 source/behavior/entities/filters/filters/light_level.json create mode 100644 source/behavior/entities/filters/filters/moon_intensity.json create mode 100644 source/behavior/entities/filters/filters/moon_phase.json create mode 100644 source/behavior/entities/filters/filters/on_ground.json create mode 100644 source/behavior/entities/filters/filters/on_ladder.json create mode 100644 source/behavior/entities/filters/filters/random_chance.json create mode 100644 source/behavior/entities/filters/filters/rider_count.json create mode 100644 source/behavior/entities/filters/filters/surface_mob.json create mode 100644 source/behavior/entities/filters/filters/trusts.json create mode 100644 source/behavior/entities/filters/filters/types/operator.json create mode 100644 source/behavior/entities/filters/filters/types/subject.json create mode 100644 source/behavior/entities/filters/filters/types/test.json create mode 100644 source/behavior/entities/filters/filters/weather.json create mode 100644 source/behavior/entities/filters/filters/weather_at_position.json diff --git a/source/behavior/entities/filters/filters.json b/source/behavior/entities/filters/filters.json new file mode 100644 index 00000000..54b2b33f --- /dev/null +++ b/source/behavior/entities/filters/filters.json @@ -0,0 +1,129 @@ +{ + "$id": "blockception.minecraft.behavior.entities.minecraft.filters", + "title": "Filters", + "definitions": { + "filters_spec": { + "oneOf": [ + { + "propertyNames": { "enum": ["all_of", "any_of", "none_of"] }, + "properties": { + "all_of": { + "title": "All Of", + "description": "All tests in an 'all_of' group must pass in order for the group to pass.", + "$ref": "#/definitions/groups_spec" + }, + "any_of": { + "title": "Any Of", + "description": "One or more tests in an 'any_of' group must pass in order for the group to pass.", + "$ref": "#/definitions/groups_spec" + }, + "none_of": { + "title": "None Of", + "description": "All tests in a 'none_of' group must fail in order for the group to pass.", + "$ref": "#/definitions/groups_spec" + } + } + }, + { + "required": ["test"], + "properties": { + "all_of": { + "title": "All Of", + "description": "All tests in an 'all_of' group must pass in order for the group to pass.", + "$ref": "#/definitions/groups_spec" + }, + "any_of": { + "title": "Any Of", + "description": "One or more tests in an 'any_of' group must pass in order for the group to pass.", + "$ref": "#/definitions/groups_spec" + }, + "none_of": { + "title": "None Of", + "description": "All tests in a 'none_of' group must fail in order for the group to pass.", + "$ref": "#/definitions/groups_spec" + } + }, + "allOf": [ + { "if": { "properties": { "test": { "const": "clock_time" } } }, "then": { "$ref": "./filters/clock_time.json" } }, + { + "if": { "properties": { "test": { "const": "distance_to_nearest_player" } } }, + "then": { "$ref": "./filters/distance_to_nearest_player.json" } + }, + { "if": { "properties": { "test": { "const": "has_ability" } } }, "then": { "$ref": "./filters/has_ability.json" } }, + { "if": { "properties": { "test": { "const": "has_biome_tag" } } }, "then": { "$ref": "./filters/has_biome_tag.json" } }, + { "if": { "properties": { "test": { "const": "has_component" } } }, "then": { "$ref": "./filters/has_component.json" } }, + { "if": { "properties": { "test": { "const": "has_container_open" } } }, "then": { "$ref": "./filters/has_container_open.json" } }, + { "if": { "properties": { "test": { "const": "has_damage" } } }, "then": { "$ref": "./filters/has_damage.json" } }, + { "if": { "properties": { "test": { "const": "has_equipment" } } }, "then": { "$ref": "./filters/has_equipment.json" } }, + { "if": { "properties": { "test": { "const": "has_mob_effect" } } }, "then": { "$ref": "./filters/has_mob_effect.json" } }, + { "if": { "properties": { "test": { "const": "has_ranged_weapon" } } }, "then": { "$ref": "./filters/has_ranged_weapon.json" } }, + { "if": { "properties": { "test": { "const": "has_tag" } } }, "then": { "$ref": "./filters/has_tag.json" } }, + { "if": { "properties": { "test": { "const": "has_target" } } }, "then": { "$ref": "./filters/has_target.json" } }, + { "if": { "properties": { "test": { "const": "has_trade_supply" } } }, "then": { "$ref": "./filters/has_trade_supply.json" } }, + { "if": { "properties": { "test": { "const": "hourly_clock_time" } } }, "then": { "$ref": "./filters/hourly_clock_time.json" } }, + { "if": { "properties": { "test": { "const": "in_block" } } }, "then": { "$ref": "./filters/in_block.json" } }, + { "if": { "properties": { "test": { "const": "in_caravan" } } }, "then": { "$ref": "./filters/in_caravan.json" } }, + { "if": { "properties": { "test": { "const": "in_clouds" } } }, "then": { "$ref": "./filters/in_clouds.json" } }, + { "if": { "properties": { "test": { "const": "in_lava" } } }, "then": { "$ref": "./filters/in_lava.json" } }, + { "if": { "properties": { "test": { "const": "in_nether" } } }, "then": { "$ref": "./filters/in_nether.json" } }, + { "if": { "properties": { "test": { "const": "in_water" } } }, "then": { "$ref": "./filters/in_water.json" } }, + { "if": { "properties": { "test": { "const": "in_water_or_rain" } } }, "then": { "$ref": "./filters/in_water_or_rain.json" } }, + { "if": { "properties": { "test": { "const": "in_contact_with_water" } } }, "then": { "$ref": "./filters/in_contact_with_water.json" } }, + { "if": { "properties": { "test": { "const": "inactivity_timer" } } }, "then": { "$ref": "./filters/inactivity_timer.json" } }, + { "if": { "properties": { "test": { "const": "is_altitude" } } }, "then": { "$ref": "./filters/is_altitude.json" } }, + { "if": { "properties": { "test": { "const": "is_avoiding_mobs" } } }, "then": { "$ref": "./filters/is_avoiding_mobs.json" } }, + { "if": { "properties": { "test": { "const": "is_biome" } } }, "then": { "$ref": "./filters/is_biome.json" } }, + { "if": { "properties": { "test": { "const": "is_block" } } }, "then": { "$ref": "./filters/is_block.json" } }, + { "if": { "properties": { "test": { "const": "is_brightness" } } }, "then": { "$ref": "./filters/is_brightness.json" } }, + { "if": { "properties": { "test": { "const": "is_climbing" } } }, "then": { "$ref": "./filters/is_climbing.json" } }, + { "if": { "properties": { "test": { "const": "is_color" } } }, "then": { "$ref": "./filters/is_color.json" } }, + { "if": { "properties": { "test": { "const": "is_daytime" } } }, "then": { "$ref": "./filters/is_daytime.json" } }, + { "if": { "properties": { "test": { "const": "is_difficulty" } } }, "then": { "$ref": "./filters/is_difficulty.json" } }, + { "if": { "properties": { "test": { "const": "is_family" } } }, "then": { "$ref": "./filters/is_family.json" } }, + { "if": { "properties": { "test": { "const": "is_game_rule" } } }, "then": { "$ref": "./filters/is_game_rule.json" } }, + { "if": { "properties": { "test": { "const": "is_humid" } } }, "then": { "$ref": "./filters/is_humid.json" } }, + { "if": { "properties": { "test": { "const": "is_immobile" } } }, "then": { "$ref": "./filters/is_immobile.json" } }, + { "if": { "properties": { "test": { "const": "is_in_village" } } }, "then": { "$ref": "./filters/is_in_village.json" } }, + { "if": { "properties": { "test": { "const": "is_leashed" } } }, "then": { "$ref": "./filters/is_leashed.json" } }, + { "if": { "properties": { "test": { "const": "is_leashed_to" } } }, "then": { "$ref": "./filters/is_leashed_to.json" } }, + { "if": { "properties": { "test": { "const": "is_mark_variant" } } }, "then": { "$ref": "./filters/is_mark_variant.json" } }, + { "if": { "properties": { "test": { "const": "is_moving" } } }, "then": { "$ref": "./filters/is_moving.json" } }, + { "if": { "properties": { "test": { "const": "is_owner" } } }, "then": { "$ref": "./filters/is_owner.json" } }, + { "if": { "properties": { "test": { "const": "is_persistent" } } }, "then": { "$ref": "./filters/is_persistent.json" } }, + { "if": { "properties": { "test": { "const": "is_riding" } } }, "then": { "$ref": "./filters/is_riding.json" } }, + { "if": { "properties": { "test": { "const": "is_skin_id" } } }, "then": { "$ref": "./filters/is_skin_id.json" } }, + { "if": { "properties": { "test": { "const": "is_sleeping" } } }, "then": { "$ref": "./filters/is_sleeping.json" } }, + { "if": { "properties": { "test": { "const": "is_sneaking" } } }, "then": { "$ref": "./filters/is_sneaking.json" } }, + { "if": { "properties": { "test": { "const": "is_snow_covered" } } }, "then": { "$ref": "./filters/is_snow_covered.json" } }, + { "if": { "properties": { "test": { "const": "is_target" } } }, "then": { "$ref": "./filters/is_target.json" } }, + { "if": { "properties": { "test": { "const": "is_temperature_type" } } }, "then": { "$ref": "./filters/is_temperature_type.json" } }, + { "if": { "properties": { "test": { "const": "is_temperature_value" } } }, "then": { "$ref": "./filters/is_temperature_value.json" } }, + { "if": { "properties": { "test": { "const": "is_underground" } } }, "then": { "$ref": "./filters/is_underground.json" } }, + { "if": { "properties": { "test": { "const": "is_underwater" } } }, "then": { "$ref": "./filters/is_underwater.json" } }, + { "if": { "properties": { "test": { "const": "is_variant" } } }, "then": { "$ref": "./filters/is_variant.json" } }, + { "if": { "properties": { "test": { "const": "is_visible" } } }, "then": { "$ref": "./filters/is_visible.json" } }, + { "if": { "properties": { "test": { "const": "light_level" } } }, "then": { "$ref": "./filters/light_level.json" } }, + { "if": { "properties": { "test": { "const": "moon_intensity" } } }, "then": { "$ref": "./filters/moon_intensity.json" } }, + { "if": { "properties": { "test": { "const": "moon_phase" } } }, "then": { "$ref": "./filters/moon_phase.json" } }, + { "if": { "properties": { "test": { "const": "on_ground" } } }, "then": { "$ref": "./filters/on_ground.json" } }, + { "if": { "properties": { "test": { "const": "on_ladder" } } }, "then": { "$ref": "./filters/on_ladder.json" } }, + { "if": { "properties": { "test": { "const": "random_chance" } } }, "then": { "$ref": "./filters/random_chance.json" } }, + { "if": { "properties": { "test": { "const": "rider_count" } } }, "then": { "$ref": "./filters/rider_count.json" } }, + { "if": { "properties": { "test": { "const": "surface_mob" } } }, "then": { "$ref": "./filters/surface_mob.json" } }, + { "if": { "properties": { "test": { "const": "trusts" } } }, "then": { "$ref": "./filters/trusts.json" } }, + { "if": { "properties": { "test": { "const": "weather" } } }, "then": { "$ref": "./filters/weather.json" } }, + { "if": { "properties": { "test": { "const": "weather_at_position" } } }, "then": { "$ref": "./filters/weather_at_position.json" } }, + { "not": { "properties": { "test": { "const": "is_weather" } }, "$comment": "DEPRECATED" } } + ] + } + ] + }, + "groups_spec": { + "oneOf": [ + { "type": "array", "items": { "$ref": "#/definitions/groups_spec" } }, + { "type": "object", "$ref": "#/definitions/filters_spec" } + ] + } + }, + "$ref": "#/definitions/groups_spec" +} diff --git a/source/behavior/entities/filters/filters/clock_time.json b/source/behavior/entities/filters/filters/clock_time.json new file mode 100644 index 00000000..345405c0 --- /dev/null +++ b/source/behavior/entities/filters/filters/clock_time.json @@ -0,0 +1,27 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.clock_time", + "type": "object", + "title": "Filters Clock Time", + "description": "Compares the current 24 hour time with an int value in the range[0, 24000]", + "required": ["value"], + "properties": { + "test": { + "type": "string", + "title": "Test Property", + "description": "Compares the current 24 hour time with an int value in the range[0, 24000]" + }, + "operator": { + "$ref": "./types/base_operator.json", + "description": "(Optional) The comparison to apply with 'value'.", + "default": "equals", + "title": "Operator" + }, + "subject": { + "$ref": "./types/base_subject.json", + "description": "(Optional) The subject of this filter test.", + "default": "self", + "title": "Subject" + }, + "value": { "type": "number", "minimum": 0, "maximum": 240000, "description": "(Required) An integer value.", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/distance_to_nearest_player.json b/source/behavior/entities/filters/filters/distance_to_nearest_player.json new file mode 100644 index 00000000..37381ef1 --- /dev/null +++ b/source/behavior/entities/filters/filters/distance_to_nearest_player.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.distance_to_nearest_player", + "type": "object", + "title": "Filters Distance To Nearest Player", + "description": "Compares the distance to the nearest Player with a float value.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Compares the distance to the nearest Player with a float value." }, + "operator": { "$ref": "./types/base_operator.json", "description": "(Optional) The comparison to apply with 'value'.", "title": "Operator" }, + "subject": { "$ref": "./types/base_subject.json", "description": "(Optional) The subject of this filter test.", "title": "Subject" }, + "value": { "type": "number", "description": "(Required) A floating point value.", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/has_ability.json b/source/behavior/entities/filters/filters/has_ability.json new file mode 100644 index 00000000..5706a547 --- /dev/null +++ b/source/behavior/entities/filters/filters/has_ability.json @@ -0,0 +1,18 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_ability", + "type": "object", + "title": "Filters Has Ability", + "description": "Returns true when the subject entity has the named ability.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true when the subject entity has the named ability." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "type": "string", + "description": "(Required) The Ability type to test", + "enum": ["flySpeed", "flying", "instabuild", "invulnerable", "lightning", "mayfly", "mute", "noclip", "walkSpeed", "worldbuilder"], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/has_biome_tag.json b/source/behavior/entities/filters/filters/has_biome_tag.json new file mode 100644 index 00000000..4f229fb1 --- /dev/null +++ b/source/behavior/entities/filters/filters/has_biome_tag.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_biome_tag", + "type": "object", + "title": "Filters Has Biome Tag", + "description": "Tests whether the biome the subject is in has the specified tag.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Tests whether the biome the subject is in has the specified tag." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "(Required) The tag to look for", "type": "string", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/has_component.json b/source/behavior/entities/filters/filters/has_component.json new file mode 100644 index 00000000..86ca2a81 --- /dev/null +++ b/source/behavior/entities/filters/filters/has_component.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_component", + "type": "object", + "title": "Filters Has Component", + "description": "Returns true when the subject entity contains the named component.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true when the subject entity contains the named component." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "string", "description": "TODO description: value", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/has_container_open.json b/source/behavior/entities/filters/filters/has_container_open.json new file mode 100644 index 00000000..3cadc472 --- /dev/null +++ b/source/behavior/entities/filters/filters/has_container_open.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_container_open", + "type": "object", + "title": "Filters Has Container Open", + "description": "Returns true when the subject Player entity has opened a container.", + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "enum": ["true", "false"] } + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/has_damage.json b/source/behavior/entities/filters/filters/has_damage.json new file mode 100644 index 00000000..f2325f39 --- /dev/null +++ b/source/behavior/entities/filters/filters/has_damage.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_damage", + "type": "object", + "title": "Filters Has Damage", + "description": "Returns true when the subject entity receives the named damage type.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true when the subject entity receives the named damage type." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "string", "description": "The Damage type to test", "$ref": "../../../../general/entity/damage_source.json", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/has_equipment.json b/source/behavior/entities/filters/filters/has_equipment.json new file mode 100644 index 00000000..9295d98a --- /dev/null +++ b/source/behavior/entities/filters/filters/has_equipment.json @@ -0,0 +1,29 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_equipment", + "type": "object", + "title": "Filters Has Equipment", + "description": "Tests for the presence of a named item in the designated slot of the subject entity.", + "required": ["value"], + "properties": { + "test": { + "type": "string", + "const": "has_equipment", + "description": "Tests for the presence of a named item in the designated slot of the subject entity.", + "title": "Test" + }, + "domain": { + "description": "The equipment location to test", + "default": "any", + "enum": ["any", "armor", "feet", "hand", "head", "leg", "torso"], + "title": "Domain" + }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "The item name to look for", + "type": "string", + "$ref": "../../../../general/item/identifier.json", + "title": "TODO Title" + } + } +} diff --git a/source/behavior/entities/filters/filters/has_mob_effect.json b/source/behavior/entities/filters/filters/has_mob_effect.json new file mode 100644 index 00000000..2904f7e0 --- /dev/null +++ b/source/behavior/entities/filters/filters/has_mob_effect.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_mob_effect", + "type": "object", + "title": "Filters Has Mob Effect", + "description": "Tests whether the Subject has the specified mob effect.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Tests whether the Subject has the specified mob effect." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "string", "description": "TODO description: value", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/has_ranged_weapon.json b/source/behavior/entities/filters/filters/has_ranged_weapon.json new file mode 100644 index 00000000..d2819105 --- /dev/null +++ b/source/behavior/entities/filters/filters/has_ranged_weapon.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_ranged_weapon", + "type": "object", + "title": "Filters Has Ranged Weapon", + "description": "Returns true when the subject entity is holding a ranged weapon like a bow or crossbow.", + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "enum": ["true", "false"] } + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/has_tag.json b/source/behavior/entities/filters/filters/has_tag.json new file mode 100644 index 00000000..e894022e --- /dev/null +++ b/source/behavior/entities/filters/filters/has_tag.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_tag", + "type": "object", + "title": "Filters Has Tag", + "description": "Returns true if the subject entity has the tag provided.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true if the subject entity has the tag provided." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "string", "description": "The tag as a string", "pattern": "[a-zA-Z0-9_]+", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/has_target.json b/source/behavior/entities/filters/filters/has_target.json new file mode 100644 index 00000000..1ba9261c --- /dev/null +++ b/source/behavior/entities/filters/filters/has_target.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_target", + "type": "object", + "title": "Filters Has Target", + "description": "Returns true if the subject entity has a valid target.", + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "enum": ["true", "false"] } + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/has_trade_supply.json b/source/behavior/entities/filters/filters/has_trade_supply.json new file mode 100644 index 00000000..6b1d0b9a --- /dev/null +++ b/source/behavior/entities/filters/filters/has_trade_supply.json @@ -0,0 +1,23 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.has_trade_supply", + "type": "object", + "title": "Filters Has Trade Supply", + "description": "Tests whether the target has any trade supply left. Will return false if the target cannot be traded with.", + "properties": { + "test": { + "type": "string", + "title": "Test Property", + "description": "Tests whether the target has any trade supply left. Will return false if the target cannot be traded with." + }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/hourly_clock_time.json b/source/behavior/entities/filters/filters/hourly_clock_time.json new file mode 100644 index 00000000..71f13123 --- /dev/null +++ b/source/behavior/entities/filters/filters/hourly_clock_time.json @@ -0,0 +1,18 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.hourly_clock_time", + "type": "object", + "title": "Filters Hourly Clock Time", + "description": "Compares the current 24 hour time with an int value in the range[0, 24000]", + "required": ["value"], + "properties": { + "test": { + "type": "string", + "title": "Test Property", + "description": "Compares the current 24 hour time with an int value in the range[0, 24000]", + "const": "hourly_clock_time" + }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "integer", "description": "An integer value.", "minimum": 0, "maximum": 24000, "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/in_block.json b/source/behavior/entities/filters/filters/in_block.json new file mode 100644 index 00000000..021174c5 --- /dev/null +++ b/source/behavior/entities/filters/filters/in_block.json @@ -0,0 +1,26 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.in_block", + "type": "object", + "title": "In block", + "description": "Returns true when the subject entity is inside a specified Block type.", + "properties": { + "test": { + "type": "string", + "title": "Test Property", + "description": "Returns true when the subject entity is inside a specified Block type." + }, + "operator": { + "$ref": "./types/base_operator.json", + "description": "(Optional) The comparison to apply with 'value'.", + "default": "equals", + "title": "Operator" + }, + "subject": { + "$ref": "./types/base_subject.json", + "description": "(Optional) The subject of this filter test.", + "default": "self", + "title": "Subject" + }, + "value": { "type": "string", "description": "(Optional) A string value.", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/in_caravan.json b/source/behavior/entities/filters/filters/in_caravan.json new file mode 100644 index 00000000..3bd0959f --- /dev/null +++ b/source/behavior/entities/filters/filters/in_caravan.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.in_caravan", + "type": "object", + "title": "Filters In Caravan", + "description": "Returns true if the subject entity is in a caravan.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true if the subject entity is in a caravan." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/in_clouds.json b/source/behavior/entities/filters/filters/in_clouds.json new file mode 100644 index 00000000..1b0c6fc8 --- /dev/null +++ b/source/behavior/entities/filters/filters/in_clouds.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.in_clouds", + "type": "object", + "title": "Filters In Clouds", + "description": "Returns true when the subject entity is in the clouds.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true when the subject entity is in the clouds." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/in_contact_with_water.json b/source/behavior/entities/filters/filters/in_contact_with_water.json new file mode 100644 index 00000000..27094592 --- /dev/null +++ b/source/behavior/entities/filters/filters/in_contact_with_water.json @@ -0,0 +1,23 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.in_contact_with_water", + "type": "object", + "title": "In contact with water", + "description": "Returns true when the subject entity in contact with any water: water, rain, splash water bottle.", + "properties": { + "test": { + "type": "string", + "title": "Test Property", + "description": "Returns true when the subject entity in contact with any water: water, rain, splash water bottle." + }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "(Optional) true or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/in_lava.json b/source/behavior/entities/filters/filters/in_lava.json new file mode 100644 index 00000000..48689af0 --- /dev/null +++ b/source/behavior/entities/filters/filters/in_lava.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.in_lava", + "type": "object", + "title": "Filters In Lava", + "description": "Returns true when the subject entity is in lava.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true when the subject entity is in lava." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/in_nether.json b/source/behavior/entities/filters/filters/in_nether.json new file mode 100644 index 00000000..fd7de590 --- /dev/null +++ b/source/behavior/entities/filters/filters/in_nether.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.in_nether", + "type": "object", + "title": "Filters In Nether", + "description": "Returns true when the subject entity is in Nether.", + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "enum": ["true", "false"] } + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/in_water.json b/source/behavior/entities/filters/filters/in_water.json new file mode 100644 index 00000000..4c9d88cf --- /dev/null +++ b/source/behavior/entities/filters/filters/in_water.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.in_water", + "type": "object", + "title": "Filters In Water", + "description": "Returns true when the subject entity is in water.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true when the subject entity is in water." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/in_water_or_rain.json b/source/behavior/entities/filters/filters/in_water_or_rain.json new file mode 100644 index 00000000..5a4bf735 --- /dev/null +++ b/source/behavior/entities/filters/filters/in_water_or_rain.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.in_water_or_rain", + "type": "object", + "title": "Filters In Water Or Rain", + "description": "Returns true when the subject entity is in water or rain.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true when the subject entity is in water or rain." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/inactivity_timer.json b/source/behavior/entities/filters/filters/inactivity_timer.json new file mode 100644 index 00000000..1c8ac457 --- /dev/null +++ b/source/behavior/entities/filters/filters/inactivity_timer.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.inactivity_timer", + "type": "object", + "title": "Filters Inactivity Timer", + "description": "Tests if the specified duration in seconds of inactivity for despawning has been reached.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "The Family name to look for", "type": "integer", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/is_altitude.json b/source/behavior/entities/filters/filters/is_altitude.json new file mode 100644 index 00000000..353c3dfe --- /dev/null +++ b/source/behavior/entities/filters/filters/is_altitude.json @@ -0,0 +1,17 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_altitude", + "type": "object", + "title": "Filters Is Altitude", + "description": "Tests the current altitude against a provided value. 0= bedrock elevation.", + "required": ["value"], + "properties": { + "test": { + "type": "string", + "title": "Test Property", + "description": "Tests the current altitude against a provided value. 0= bedrock elevation." + }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "integer", "description": "The altitude value to compare with", "minimum": 0, "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/is_avoiding_mobs.json b/source/behavior/entities/filters/filters/is_avoiding_mobs.json new file mode 100644 index 00000000..8cf4cd1c --- /dev/null +++ b/source/behavior/entities/filters/filters/is_avoiding_mobs.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_avoiding_mobs", + "type": "object", + "title": "Filters Is Avoiding Mobs", + "description": "Returns true if the subject entity is fleeing from other mobs.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true if the subject entity is fleeing from other mobs." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_biome.json b/source/behavior/entities/filters/filters/is_biome.json new file mode 100644 index 00000000..b01e633c --- /dev/null +++ b/source/behavior/entities/filters/filters/is_biome.json @@ -0,0 +1,37 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_biome", + "type": "object", + "title": "Filters Is Biome", + "description": "Tests whether the Subject is currently in the named biome.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Tests whether the Subject is currently in the named biome." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "The Biome type to test", + "type": "string", + "enum": [ + "beach", + "desert", + "extreme_hills", + "flat", + "forest", + "ice", + "jungle", + "mesa", + "mushroom_island", + "ocean", + "plain", + "river", + "savanna", + "stone_beach", + "swamp", + "taiga", + "the_end", + "the_nethe" + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/is_block.json b/source/behavior/entities/filters/filters/is_block.json new file mode 100644 index 00000000..ea5d8021 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_block.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_block", + "type": "object", + "title": "Filters Is Block", + "description": "Returns true when the block has the given name.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "The Family name to look for", "type": "string", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/is_brightness.json b/source/behavior/entities/filters/filters/is_brightness.json new file mode 100644 index 00000000..e947e230 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_brightness.json @@ -0,0 +1,17 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_brightness", + "type": "object", + "title": "Filters Is Brightness", + "description": "Tests the current brightness against a provided value in the range (0.0f, 1.0f).", + "required": ["value"], + "properties": { + "test": { + "type": "string", + "title": "Test Property", + "description": "Tests the current brightness against a provided value in the range (0.0f, 1.0f)." + }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "The brightness value to compare with.", "type": "number", "minimum": 0.0, "maximum": 1.0, "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/is_climbing.json b/source/behavior/entities/filters/filters/is_climbing.json new file mode 100644 index 00000000..119a77dd --- /dev/null +++ b/source/behavior/entities/filters/filters/is_climbing.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_climbing", + "type": "object", + "title": "Filters Is Climbing", + "description": "Returns true if the subject entity is climbing.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true if the subject entity is climbing." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_color.json b/source/behavior/entities/filters/filters/is_color.json new file mode 100644 index 00000000..aa664e55 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_color.json @@ -0,0 +1,35 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_color", + "type": "object", + "title": "Filters Is Color", + "description": "Returns true if the subject entity is the named color.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true if the subject entity is the named color." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "The Palette Color to test", + "type": "string", + "enum": [ + "black", + "blue", + "brown", + "cyan", + "gray", + "green", + "light_blue", + "light_green", + "magenta", + "orange", + "pink", + "purple", + "red", + "silver", + "white", + "yello" + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/is_daytime.json b/source/behavior/entities/filters/filters/is_daytime.json new file mode 100644 index 00000000..80d7087d --- /dev/null +++ b/source/behavior/entities/filters/filters/is_daytime.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_daytime", + "type": "object", + "title": "Filters Is Daytime", + "description": "Returns true during the daylight hours.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true during the daylight hours." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_difficulty.json b/source/behavior/entities/filters/filters/is_difficulty.json new file mode 100644 index 00000000..83d379a8 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_difficulty.json @@ -0,0 +1,18 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_difficulty", + "type": "object", + "title": "Filters Is Difficulty", + "description": "Tests the current difficulty level of the game.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Tests the current difficulty level of the game." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "The game's difficulty level to test", + "type": "string", + "enum": ["easy", "hard", "normal", "peaceful"], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/is_family.json b/source/behavior/entities/filters/filters/is_family.json new file mode 100644 index 00000000..e8dd201e --- /dev/null +++ b/source/behavior/entities/filters/filters/is_family.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_family", + "type": "object", + "title": "Filters Is Family", + "description": "Returns true when the subject entity is a member of the named family.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Returns true when the subject entity is a member of the named family." }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "The Family name to look for", "type": "string", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/is_game_rule.json b/source/behavior/entities/filters/filters/is_game_rule.json new file mode 100644 index 00000000..76f5ff27 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_game_rule.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_game_rule", + "type": "object", + "title": "Filters Is Game Rule", + "description": "TODO description:", + "required": ["domain"], + "properties": { + "domain": { "description": "The Game Rule to test.", "title": "Domain" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "Tests whether a named game rule is active.", "default": true, "type": "boolean", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/is_humid.json b/source/behavior/entities/filters/filters/is_humid.json new file mode 100644 index 00000000..94df05e6 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_humid.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_humid", + "type": "object", + "title": "Filters Is Humid", + "description": "Tests whether the Subject is in an area with humidity", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "Tests whether the Subject is in an area with humidity" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_immobile.json b/source/behavior/entities/filters/filters/is_immobile.json new file mode 100644 index 00000000..12e88bdc --- /dev/null +++ b/source/behavior/entities/filters/filters/is_immobile.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_immobile", + "type": "object", + "title": "Filters Is Immobile", + "description": "Returns true if the subject entity is immobile. An entity is immobile if it lacks AI goals, has just changed dimensions or if it is a mob and has no health.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_in_village.json b/source/behavior/entities/filters/filters/is_in_village.json new file mode 100644 index 00000000..a7f4e87d --- /dev/null +++ b/source/behavior/entities/filters/filters/is_in_village.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_in_village", + "type": "object", + "title": "Filters Is In Village", + "description": "Tests whether the Subject is inside the bounds of a village.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_leashed.json b/source/behavior/entities/filters/filters/is_leashed.json new file mode 100644 index 00000000..16225440 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_leashed.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_leashed", + "type": "object", + "title": "Filters Is Leashed", + "description": "Returns true if the subject entity is leashed.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_leashed_to.json b/source/behavior/entities/filters/filters/is_leashed_to.json new file mode 100644 index 00000000..b30c5565 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_leashed_to.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_leashed_to", + "type": "object", + "title": "Filters Is Leashed To", + "description": "Returns true if the subject entity leashed to the calling entity.", + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "enum": ["true", "false"] } + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/is_mark_variant.json b/source/behavior/entities/filters/filters/is_mark_variant.json new file mode 100644 index 00000000..ea3a62a5 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_mark_variant.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_mark_variant", + "type": "object", + "title": "Filters Is Mark Variant", + "description": "Returns true if the subject entity is the mark variant number provided.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "integer", "description": "The altitude value to compare with", "minimum": 0, "title": "Value" } + }, + "additionalProperties": false +} diff --git a/source/behavior/entities/filters/filters/is_moving.json b/source/behavior/entities/filters/filters/is_moving.json new file mode 100644 index 00000000..dbbee40a --- /dev/null +++ b/source/behavior/entities/filters/filters/is_moving.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_moving", + "type": "object", + "title": "Filters Is Moving", + "description": "Returns true if the subject entity is moving.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_owner.json b/source/behavior/entities/filters/filters/is_owner.json new file mode 100644 index 00000000..fcb63acf --- /dev/null +++ b/source/behavior/entities/filters/filters/is_owner.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_owner", + "type": "object", + "title": "Filters Is Owner", + "description": "Returns true if the subject entity is the owner of the calling entity.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_persistent.json b/source/behavior/entities/filters/filters/is_persistent.json new file mode 100644 index 00000000..e866fef0 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_persistent.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_persistent", + "type": "object", + "title": "Filters Is Persistent", + "description": "Tests if the subject's persistence matches the bool value passed in.", + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "enum": ["true", "false"] } + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/is_riding.json b/source/behavior/entities/filters/filters/is_riding.json new file mode 100644 index 00000000..77d3344e --- /dev/null +++ b/source/behavior/entities/filters/filters/is_riding.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_riding", + "type": "object", + "title": "Filters Is Riding", + "description": "Returns true if the subject entity is riding on another entity.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_skin_id.json b/source/behavior/entities/filters/filters/is_skin_id.json new file mode 100644 index 00000000..26057f8e --- /dev/null +++ b/source/behavior/entities/filters/filters/is_skin_id.json @@ -0,0 +1,12 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_skin_id", + "type": "object", + "title": "Filters Is Skin Id", + "description": "Returns true if the subject entity is the skin id number provided.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "integer", "description": "The altitude value to compare with", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/is_sleeping.json b/source/behavior/entities/filters/filters/is_sleeping.json new file mode 100644 index 00000000..ad09cb96 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_sleeping.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_sleeping", + "type": "object", + "title": "Filters Is Sleeping", + "description": "Tests whether the Subject is sleeping.", + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "enum": ["true", "false"] } + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/is_sneaking.json b/source/behavior/entities/filters/filters/is_sneaking.json new file mode 100644 index 00000000..a77be711 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_sneaking.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_sneaking", + "type": "object", + "title": "Filters Is Sneaking", + "description": "Returns true if the subject entity is sneaking.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_snow_covered.json b/source/behavior/entities/filters/filters/is_snow_covered.json new file mode 100644 index 00000000..c915426a --- /dev/null +++ b/source/behavior/entities/filters/filters/is_snow_covered.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_snow_covered", + "type": "object", + "title": "Filters Is Snow Covered", + "description": "Tests whether the Subject is in an area with snow cover", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_target.json b/source/behavior/entities/filters/filters/is_target.json new file mode 100644 index 00000000..39a90bd4 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_target.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_target", + "type": "object", + "title": "Filters Is Target", + "description": "Returns true if the subject entity is the target of the calling entity.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_temperature_type.json b/source/behavior/entities/filters/filters/is_temperature_type.json new file mode 100644 index 00000000..a2b1c16b --- /dev/null +++ b/source/behavior/entities/filters/filters/is_temperature_type.json @@ -0,0 +1,18 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_target", + "type": "object", + "title": "Filters Is Target", + "description": "Tests whether the current temperature is a given type.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "The Biome temperature catagory to test", + "type": "string", + "enum": ["cold", "mild", "ocean", "warm"], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/is_temperature_value.json b/source/behavior/entities/filters/filters/is_temperature_value.json new file mode 100644 index 00000000..68d4001d --- /dev/null +++ b/source/behavior/entities/filters/filters/is_temperature_value.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_temperature_value", + "type": "object", + "title": "Filters Is Temperature Value", + "description": "Tests the current temperature against a provided value in the range (0.0, 1.0) where 0.0f is the coldest temp and 1.0f is the hottest.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "The Biome temperature value to compare with.", "type": "number", "minimum": 0.0, "maximum": 1.0, "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/is_underground.json b/source/behavior/entities/filters/filters/is_underground.json new file mode 100644 index 00000000..65510b5f --- /dev/null +++ b/source/behavior/entities/filters/filters/is_underground.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_underground", + "type": "object", + "title": "Filters Is Underground", + "description": "Returns true when the subject entity is underground. An entity is considered underground if there are non-solid blocks above it.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_underwater.json b/source/behavior/entities/filters/filters/is_underwater.json new file mode 100644 index 00000000..97c696f7 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_underwater.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_underwater", + "type": "object", + "title": "Filters Is Underwater", + "description": "Returns true when the subject entity is under water. An entity is considered underwater if it is completely submerged in water blocks.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/is_variant.json b/source/behavior/entities/filters/filters/is_variant.json new file mode 100644 index 00000000..d598fa64 --- /dev/null +++ b/source/behavior/entities/filters/filters/is_variant.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_variant", + "type": "object", + "title": "Filters Is Variant", + "description": "Returns true if the subject entity is the variant number provided.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "integer", "description": "The altitude value to compare with", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/is_visible.json b/source/behavior/entities/filters/filters/is_visible.json new file mode 100644 index 00000000..ac41164e --- /dev/null +++ b/source/behavior/entities/filters/filters/is_visible.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.is_visible", + "type": "object", + "title": "Filters Is Visible", + "description": "Returns true if the subject entity is visible.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/light_level.json b/source/behavior/entities/filters/filters/light_level.json new file mode 100644 index 00000000..4130281d --- /dev/null +++ b/source/behavior/entities/filters/filters/light_level.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.light_level", + "type": "object", + "title": "Filters Light Level", + "description": "Tests is the mob is outside of the specified light level range (0, 16).", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "An integer value.", "type": "integer", "title": "Value", "minimum": 0, "maximum": 16 } + } +} diff --git a/source/behavior/entities/filters/filters/moon_intensity.json b/source/behavior/entities/filters/filters/moon_intensity.json new file mode 100644 index 00000000..85e77c0b --- /dev/null +++ b/source/behavior/entities/filters/filters/moon_intensity.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.moon_intensity", + "type": "object", + "title": "Filters Moon Intensity", + "description": "Compares the current moon intensity with a float value in the range (0.0, 1.0)", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "A floating point value.", "type": "number", "minimum": 0, "maximum": 1, "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/moon_phase.json b/source/behavior/entities/filters/filters/moon_phase.json new file mode 100644 index 00000000..12bb0fd3 --- /dev/null +++ b/source/behavior/entities/filters/filters/moon_phase.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.moon_phase", + "type": "object", + "title": "Filters Moon Phase", + "description": "Compares the current moon phase with an integer value in the range (0, 7).", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "type": "integer", "description": "An integer value.", "minimum": 0, "maximum": 7, "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/on_ground.json b/source/behavior/entities/filters/filters/on_ground.json new file mode 100644 index 00000000..00109e6d --- /dev/null +++ b/source/behavior/entities/filters/filters/on_ground.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.on_ground", + "type": "object", + "title": "Filters On Ground", + "description": "Returns true when the subject entity is on ground.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/on_ladder.json b/source/behavior/entities/filters/filters/on_ladder.json new file mode 100644 index 00000000..305380c9 --- /dev/null +++ b/source/behavior/entities/filters/filters/on_ladder.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.on_ladder", + "type": "object", + "title": "Filters On Ladder", + "description": "Returns true when the subject entity is on a ladder.", + "properties": { + "test": { "type": "string", "title": "Test Property", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "title": "Value", + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "default": "true", "enum": ["true", "false"] } + ] + } + } +} diff --git a/source/behavior/entities/filters/filters/random_chance.json b/source/behavior/entities/filters/filters/random_chance.json new file mode 100644 index 00000000..39e99bf3 --- /dev/null +++ b/source/behavior/entities/filters/filters/random_chance.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.random_chance", + "type": "object", + "title": "Filters Random Chance", + "description": "Returns true if the random chance rolls 0 out of a specified max range.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "An integer value.", "type": "integer", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/rider_count.json b/source/behavior/entities/filters/filters/rider_count.json new file mode 100644 index 00000000..462e5782 --- /dev/null +++ b/source/behavior/entities/filters/filters/rider_count.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.rider_count", + "type": "object", + "title": "Filters Rider Count", + "description": "Returns the number of riders on this entity.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "An integer value.", "type": "integer", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/surface_mob.json b/source/behavior/entities/filters/filters/surface_mob.json new file mode 100644 index 00000000..99623bb9 --- /dev/null +++ b/source/behavior/entities/filters/filters/surface_mob.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.surface_mob", + "type": "object", + "title": "Filters Surface Mob", + "description": "Tests if the subject is a surface mob.", + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "enum": ["true", "false"] } + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/trusts.json b/source/behavior/entities/filters/filters/trusts.json new file mode 100644 index 00000000..d7a6b3c8 --- /dev/null +++ b/source/behavior/entities/filters/filters/trusts.json @@ -0,0 +1,19 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.trusts", + "type": "object", + "title": "Filters Trusts", + "description": "Returns true if the subject is trusted by entity.", + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { + "description": "True or false.", + "oneOf": [ + { "type": "boolean", "default": true }, + { "type": "string", "enum": ["true", "false"] } + ], + "title": "Value" + } + } +} diff --git a/source/behavior/entities/filters/filters/types/operator.json b/source/behavior/entities/filters/filters/types/operator.json new file mode 100644 index 00000000..95f7653e --- /dev/null +++ b/source/behavior/entities/filters/filters/types/operator.json @@ -0,0 +1,8 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.base_operator", + "title": "Filters Operator", + "type": "string", + "description": "The comparison to apply with 'value'.", + "default": "equals", + "enum": ["!=", "<", "<=", "<>", "=", "==", ">", ">=", "equals", "not"] +} diff --git a/source/behavior/entities/filters/filters/types/subject.json b/source/behavior/entities/filters/filters/types/subject.json new file mode 100644 index 00000000..679aaf63 --- /dev/null +++ b/source/behavior/entities/filters/filters/types/subject.json @@ -0,0 +1,8 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.base_subject", + "title": "Filters Subject", + "type": "string", + "description": "The subject of this filter test.", + "default": "self", + "enum": ["block", "other", "parent", "player", "self", "target", "damager"] +} diff --git a/source/behavior/entities/filters/filters/types/test.json b/source/behavior/entities/filters/filters/types/test.json new file mode 100644 index 00000000..075c7611 --- /dev/null +++ b/source/behavior/entities/filters/filters/types/test.json @@ -0,0 +1,58 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.base_test", + "title": "Filters Test", + "type": "string", + "description": "The test operation", + "enum": [ + "clock_time", + "distance_to_nearest_player", + "has_ability", + "has_biome_tag", + "has_component", + "has_damage", + "has_equipment", + "has_mob_effect", + "has_tag", + "has_trade_supply", + "hourly_clock_time", + "in_block", + "in_caravan", + "in_clouds", + "in_lava", + "in_water", + "in_water_or_rain", + "in_contact_with_water", + "is_altitude", + "is_avoiding_mobs", + "is_biome", + "is_brightness", + "is_climbing", + "is_color", + "is_daytime", + "is_difficulty", + "is_family", + "is_game_rule", + "is_humid", + "is_immobile", + "is_in_village", + "is_leashed", + "is_mark_variant", + "is_moving", + "is_owner", + "is_riding", + "is_skin_id", + "is_sneaking", + "is_snow_covered", + "is_target", + "is_temperature_type", + "is_temperature_value", + "is_underground", + "is_underwater", + "is_variant", + "is_visible", + "moon_intensity", + "moon_phase", + "on_ground", + "on_ladder" + ] +} diff --git a/source/behavior/entities/filters/filters/weather.json b/source/behavior/entities/filters/filters/weather.json new file mode 100644 index 00000000..e0b9434c --- /dev/null +++ b/source/behavior/entities/filters/filters/weather.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.weather", + "type": "object", + "title": "Filters Weather", + "description": "Tests the current weather in the dimension against a provided weather value.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "The Family name to look for", "type": "string", "title": "Value" } + } +} diff --git a/source/behavior/entities/filters/filters/weather_at_position.json b/source/behavior/entities/filters/filters/weather_at_position.json new file mode 100644 index 00000000..e7d7a4a1 --- /dev/null +++ b/source/behavior/entities/filters/filters/weather_at_position.json @@ -0,0 +1,13 @@ +{ + "$id": "blockception.minecraft.behavior.entities.filters.weather_at_position", + "type": "object", + "title": "Filters Weather At Position", + "description": "Tests the current weather, at the actor's position, against a provided weather value.", + "required": ["value"], + "properties": { + "test": { "type": "string", "title": "Test", "description": "The test property" }, + "operator": { "$ref": "./types/base_operator.json" }, + "subject": { "$ref": "./types/base_subject.json" }, + "value": { "description": "The Family name to look for", "type": "string", "title": "Value" } + } +}