From 33719ab3e2b0387c12a4be90e41841a6961b96b0 Mon Sep 17 00:00:00 2001 From: Daniel Norris <33832062+danorris709@users.noreply.github.com> Date: Fri, 15 Aug 2025 16:40:49 +0100 Subject: [PATCH] Adds Pixelmon's Pokedex datapack types (#791) * Pixelmon datapack types * Fix some syntax errors & add NPC Presets * add pokedex datapack --- public/mcdoc/pixelmon.mcdoc | 89 +++++++++++++++++++++++++++++++++++++ src/config.json | 27 +++++++++++ src/locales/en.json | 3 ++ 3 files changed, 119 insertions(+) diff --git a/public/mcdoc/pixelmon.mcdoc b/public/mcdoc/pixelmon.mcdoc index 4859b1ce..7a3d63a2 100644 --- a/public/mcdoc/pixelmon.mcdoc +++ b/public/mcdoc/pixelmon.mcdoc @@ -1304,3 +1304,92 @@ dispatch minecraft:resource[pixelmon:npc_preset] to struct NPCPreset { party: SelectorType, goals: SelectorType, } + +enum(string) PokedexRegistrationStatus { + UNKNOWN = "UNKNOWN", + SEEN = "SEEN", + CAUGHT = "CAUGHT", +} + +enum(string) Gender { + MALE = "MALE", + FEMALE = "FEMALE", + NONE = "NONE", +} + +dispatch minecraft:resource[pixelmon:pokedex_trigger] to struct PokedexTrigger { + events: [#[id(registry="pixelmon:")] string], + condition: InteractionCondition, + resulting_states: [PokedexRegistrationStatus], + player_context_key: string, + pokemon_context_key: string, +} + +struct PokemonBase { + species: int, + form: string, + gender: Gender, + palette: string +} + +dispatch minecraft:resource[pixelmon:pokedex_region] to struct Region { + generation_id: int, + name: Text, + starters: [PokemonBase], + pokemon: [int], +} + +enum(string) PokemonProviderType { + ALL = "pixelmon:all", + ALL_WITH_PALETTE_TAG = "pixelmon:all_with_palette_tag", + DEX = "pixelmon:dex", +} + +dispatch pixelmon:pokemon_provider_type[pixelmon:all] to struct {} + +dispatch pixelmon:pokemon_provider_type[pixelmon:all_with_palette_tag] to struct { + tag: string +} + +struct Dex { + dex: int, + form?: string, + palette?: string, + gender?: Gender, +} + +dispatch pixelmon:pokemon_provider_type[pixelmon:dex] to struct { + dex_numbers: [Dex] +} + +struct PokemonProvider { + type: #[id] PokemonProviderType, + ...pixelmon:pokemon_provider_type[[type]] +} + +enum(string) PokemonPredicateType { + ANY = "pixelmon:any", + SPEC = "pixelmon:spec", +} + +dispatch pixelmon:pokemon_predicate_type[pixelmon:any] to struct {} + +dispatch pixelmon:pokemon_predicate_type[pixelmon:spec] to struct { + spec: string, +} + +struct PokemonPredicate { + type: #[id] PokemonPredicateType, + ...pixelmon:pokemon_predicate_type[[type]] +} + +dispatch minecraft:resource[pixelmon:pokedex] to struct Pokedex { + name: Text, + /// Used to determine which order the pokedexes appear in the survival tab + priority: int, + primary_color: Color, + secondary_color: Color, + text_color: Color, + pokemon: PokemonProvider, + accetpance_test: PokemonPredicate, +} \ No newline at end of file diff --git a/src/config.json b/src/config.json index 2f9c9002..17fb69df 100644 --- a/src/config.json +++ b/src/config.json @@ -959,6 +959,33 @@ "dependency": "pixelmon", "wiki": "https://pixelmonmod.com/wiki/", "minVersion": "1.21.1" + }, + { + "id": "pixelmon:pokedex_trigger", + "url": "pixelmon/pokemon/pokedex/trigger", + "path": "pixelmon/pokemon/pokedex/trigger", + "tags": ["partners"], + "dependency": "pixelmon", + "wiki": "https://pixelmonmod.com/wiki/", + "minVersion": "1.21.1" + }, + { + "id": "pixelmon:pokedex_region", + "url": "pixelmon/pokemon/pokedex/region", + "path": "pixelmon/pokemon/pokedex/region", + "tags": ["partners"], + "dependency": "pixelmon", + "wiki": "https://pixelmonmod.com/wiki/", + "minVersion": "1.21.1" + }, + { + "id": "pixelmon:pokedex", + "url": "pixelmon/pokemon/pokedex/pokedex", + "path": "pixelmon/pokemon/pokedex/pokedex", + "tags": ["partners"], + "dependency": "pixelmon", + "wiki": "https://pixelmonmod.com/wiki/", + "minVersion": "1.21.1" } ], "legacyGuides": [ diff --git a/src/locales/en.json b/src/locales/en.json index e89483a0..3a584c5e 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -147,6 +147,9 @@ "generator.pixelmon:research": "Pixelmon Research", "generator.pixelmon:research_trigger": "Pixelmon Research Trigger", "generator.pixelmon:npc_preset": "Pixelmon NPC Preset", + "generator.pixelmon:pokedex": "Pokedex", + "generator.pixelmon:pokedex_trigger": "Pokedex Trigger", + "generator.pixelmon:pokedex_region": "Region", "generator.trial_spawner": "Trial Spawner", "generator.trim_material": "Trim Material", "generator.trim_pattern": "Trim Pattern",