From 176a3494af3335325bcb5e08a424301e5c78adbf Mon Sep 17 00:00:00 2001 From: Misode Date: Wed, 9 Oct 2024 20:06:13 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Add=20missing=20allay=20an?= =?UTF-8?q?d=20warden=20memories=20+=20refactor=20memory=20modules=20+=20a?= =?UTF-8?q?dd=20docs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Combined all memory module types into one file, since memory modules are often shared between multiple entity types, not using inheritance, which is how the other files are structured. --- java/server/util/memory.mcdoc | 306 +++++++++++++++++- java/server/util/mod.mcdoc | 6 - .../entity/mob/breedable/armadillo.mcdoc | 9 - .../world/entity/mob/breedable/axolotl.mcdoc | 14 - .../world/entity/mob/breedable/frog.mcdoc | 11 - .../world/entity/mob/breedable/goat.mcdoc | 14 - .../world/entity/mob/breedable/horse.mcdoc | 5 - .../world/entity/mob/breedable/mod.mcdoc | 14 +- .../world/entity/mob/breedable/sniffer.mcdoc | 19 -- .../world/entity/mob/breedable/villager.mcdoc | 31 -- java/server/world/entity/mob/breeze.mcdoc | 16 - java/server/world/entity/mob/mod.mcdoc | 7 +- java/server/world/entity/mob/piglin.mcdoc | 24 +- 13 files changed, 298 insertions(+), 178 deletions(-) delete mode 100644 java/server/world/entity/mob/breedable/sniffer.mcdoc delete mode 100644 java/server/world/entity/mob/breeze.mcdoc diff --git a/java/server/util/memory.mcdoc b/java/server/util/memory.mcdoc index 8783467..48a827e 100644 --- a/java/server/util/memory.mcdoc +++ b/java/server/util/memory.mcdoc @@ -1,32 +1,310 @@ use ::java::server::util::global_pos::GlobalPos -struct TimedMemory { - /// Ticks before this memory is removed. +struct Memories { + [#[id="memory_module_type"] string]: minecraft:memory_module[[%key]], +} + +struct ExpirableValue { + /// If present, ticks before this memory is automatically removed. #[since="1.16"] - ttl: long, + ttl?: long, +} + +// Memory modules that are not dispatched do not have a codec and are not serialized in-game +dispatch minecraft:memory_module[%unknown] to () + +dispatch minecraft:memory_module[home] to struct Home { + ...ExpirableValue, + // Position of the villager's home. + value: GlobalPos, +} + +dispatch minecraft:memory_module[job_site] to struct JobSite { + ...ExpirableValue, + // Position of the villager's job site. + value: GlobalPos, +} + +dispatch minecraft:memory_module[potential_job_site] to struct PotentialJobSite { + ...ExpirableValue, + // Position of a potential job site of the villager. + value: GlobalPos, +} + +dispatch minecraft:memory_module[meeting_point] to struct MeetingPoint { + ...ExpirableValue, + // Position of the villager's meeting point. + value: GlobalPos, } -struct FlagMemory { +dispatch minecraft:memory_module[golem_detected_recently] to struct GolemDetectedRecently { + ...ExpirableValue, + // Whether the villager has detected an iron golem recently. value: boolean, } -struct TimedFlagMemory { - ...TimedMemory, +dispatch minecraft:memory_module[danger_detected_recently] to struct DangerDetectedRecently { + ...ExpirableValue, + // Whether the armadillo has detected danger recently. value: boolean, } -struct TimedEntityMemory { - ...TimedMemory, - /// Target entity's UUID. - value: int[] @ 4, +dispatch minecraft:memory_module[last_slept] to struct LastSlept { + ...ExpirableValue, + // The gametime tick that the villager last slept in a bed. + value: long, } -struct TickMemory { - /// Tick value +dispatch minecraft:memory_module[last_woken] to struct LastWoken { + ...ExpirableValue, + // The gametime tick that the villager last woke up from a bed. value: long, } -struct PositionMemory { - /// Position +dispatch minecraft:memory_module[last_worked_at_poi] to struct LastWorkedAtPoi { + ...ExpirableValue, + // The gametime tick that the villager last worked at their job site. + value: long, +} + +dispatch minecraft:memory_module[play_dead_ticks] to struct PlayDeadTicks { + ...ExpirableValue, + /// Ticks until the axolotl stops playing dead. + value: int, +} + +dispatch minecraft:memory_module[temptation_cooldown_ticks] to struct TemptationCooldownTicks { + ...ExpirableValue, + // Ticks before the mob can be tempted again. + value: int, +} + +dispatch minecraft:memory_module[gaze_cooldown_ticks] to struct GazeCooldownTicks { + ...ExpirableValue, + // Ticks before the armadillo or camel can randomly look around again. + value: int, +} + +dispatch minecraft:memory_module[is_tempted] to struct IsTempted { + ...ExpirableValue, + /// Whether the mob is currently tempted by a player. + value: boolean, +} + +dispatch minecraft:memory_module[long_jump_cooling_down] to struct LongJumpCoolingDown { + ...ExpirableValue, + /// Ticks before the goat can long jump again. + value: int, +} + +dispatch minecraft:memory_module[has_hunting_cooldown] to struct HasHuntingCooldown { + ...ExpirableValue, + // Whether the axolotl is in a hunting cooldown. + value: boolean, +} + +dispatch minecraft:memory_module[ram_cooldown_ticks] to struct RamCooldownTicks { + ...ExpirableValue, + // Ticks before the goat can ram again. + value: int, +} + +dispatch minecraft:memory_module[is_in_water] to struct IsInWater { + ...ExpirableValue, + /// Whether the frog is currently in water. + value: struct {} +} + +dispatch minecraft:memory_module[is_pregnant] to struct IsPregnant { + ...ExpirableValue, + /// Whether the frog is pregnant. + value: struct {}, +} + +dispatch minecraft:memory_module[is_panicking] to struct IsPanicking { + ...ExpirableValue, + // Whether the mob is currently panicking. + value: boolean, +} + +dispatch minecraft:memory_module[angry_at] to struct AngryAt { + ...ExpirableValue, + /// The target of the piglin or piglin brute. + value: #[uuid] int[] @ 4, +} + +dispatch minecraft:memory_module[universal_anger] to struct UniversalAnger { + ...ExpirableValue, + // Whether the piglin is being universally angered. Only used when the `universalAnger` gamerule is enabled. + value: boolean, +} + +dispatch minecraft:memory_module[admiring_item] to struct AdmiringItem { + ...ExpirableValue, + /// Whether the piglin is currently admiring an item. + value: boolean, +} + +dispatch minecraft:memory_module[admiring_disabled] to struct AdmiringDisable { + ...ExpirableValue, + /// Whether the piglin cannot admire an item. + /// Set when converting, when attacked, or when admiring an item. + value: boolean, +} + +dispatch minecraft:memory_module[hunted_recently] to struct HuntedRecently { + ...ExpirableValue, + /// Whether the piglin just hunted recently. + /// Set after hunting or spawning in a bastion remnant. + value: boolean, +} + +dispatch minecraft:memory_module[recent_projectile] to struct RecentProjectile { + ...ExpirableValue, + // Whether the warden has recently noticed a projectile vibration. + value: struct {}, +} + +dispatch minecraft:memory_module[is_sniffing] to struct IsSniffing { + ...ExpirableValue, + // Whether the warden or sniffer is currently sniffing. + value: struct {}, +} + +dispatch minecraft:memory_module[is_emerging] to struct IsEmerging { + ...ExpirableValue, + // Whether the warden is currently emerging from the ground. + value: struct {}, +} + +dispatch minecraft:memory_module[roar_sound_delay] to struct RoarSoundDelay { + ...ExpirableValue, + // If present, the warden doesn't roar. + value: struct {}, +} + +dispatch minecraft:memory_module[dig_cooldown] to struct DigCooldown { + ...ExpirableValue, + // If present, the warden will not dig down. + value: struct {}, +} + +dispatch minecraft:memory_module[roar_sound_cooldown] to struct RoarSoundCooldown { + ...ExpirableValue, + // If present, the warden doesn't roar. + value: struct {}, +} + +dispatch minecraft:memory_module[sniff_cooldown] to struct SniffCooldown { + ...ExpirableValue, + // If present, the warden or sniffer will not sniff. + value: struct {}, +} + +dispatch minecraft:memory_module[touch_cooldown] to struct TouchCooldown { + ...ExpirableValue, + // If present, the warden will not react to being pushed by another mob. Set to 20 when touched. + value: struct {}, +} + +dispatch minecraft:memory_module[vibration_cooldown] to struct VibrationCooldown { + ...ExpirableValue, + // If present, the warden will not react to vibrations. Set to 40 when receiving a vibration. + value: struct {}, +} + +dispatch minecraft:memory_module[sonic_boom_cooldown] to struct SonicBoomCooldown { + ...ExpirableValue, + // If present, the warden will not use the sonic boom attack. + value: struct {}, +} + +dispatch minecraft:memory_module[sonic_boom_sound_cooldown] to struct SonicBoomSoundCooldown { + ...ExpirableValue, + // If present, the warden's sonic boom animation will not spawn particles and play sounds. + value: struct {}, +} + +dispatch minecraft:memory_module[sonic_boom_sound_delay] to struct SonicBoomSoundDelay { + ...ExpirableValue, + // If present, will delay the warden's sonic boom animation. + value: struct {}, +} + +dispatch minecraft:memory_module[liked_player] to struct LikedPlayer { + ...ExpirableValue, + /// The UUID of the player entity that the allay likes. + value: #[uuid] int[] @ 4, +} + +dispatch minecraft:memory_module[liked_noteblock] to struct LikedNoteblock { + ...ExpirableValue, + /// The position and dimension of the note block that the allay likes. value: GlobalPos, } + +dispatch minecraft:memory_module[liked_noteblock_cooldown_ticks] to struct LikedNoteblockCooldownTicks { + ...ExpirableValue, + /// Ticks before the allay stops putting items at the liked note block. + value: int, +} + +dispatch minecraft:memory_module[item_pickup_cooldown_ticks] to struct ItemPickupCooldownTicks { + ...ExpirableValue, + /// Ticks before the allay goes to pick up an item again. + value: int, +} + +dispatch minecraft:memory_module[sniffer_explored_positions] to struct SnifferExploredPositions { + ...ExpirableValue, + /// Last 20 block positions that the sniffer has dug up. The sniffer will not dig in these positions. + value: [int[] @ 3] @ ..20, +} + +dispatch minecraft:memory_module[breeze_jump_cooldown] to struct BreezeJumpCooldown { + ...ExpirableValue, + // If present, the breeze will not long jump or slide. Set after performing a long jump. + value: struct {}, +} + +dispatch minecraft:memory_module[breeze_shoot] to struct BreezeShoot { + ...ExpirableValue, + // If present, the breeze is able to shoot a wind charge, and will not long jump or slide. + value: struct {}, +} + +dispatch minecraft:memory_module[breeze_shoot_charging] to struct BreezeShootCharging { + ...ExpirableValue, + // If present, the breeze will not shoot a wind charge. Set when starting to shoot. + value: struct {}, +} + +dispatch minecraft:memory_module[breeze_shoot_recover] to struct BreezeShootRecover { + ...ExpirableValue, + // If present, the breeze will not shoot a wind charge. + value: struct {}, +} + +dispatch minecraft:memory_module[breeze_shoot_cooldown] to struct BreezeShootCooldown { + ...ExpirableValue, + // If present, the breeze will not shoot a wind charge. Set after shooting + value: struct {}, +} + +dispatch minecraft:memory_module[breeze_jump_inhaling] to struct BreezeJumpInhaling { + ...ExpirableValue, + // If present, the breeze will not long jump or shoot a wind charge when stuck. + value: struct {}, +} + +dispatch minecraft:memory_module[breeze_jump_target] to struct BreezeJumpTarget { + ...ExpirableValue, + /// The block position that the breeze is jumping towards. + value: int[] @ 3, +} + +dispatch minecraft:memory_module[breeze_leaving_water] to struct BreezeLeavingWater { + ...ExpirableValue, + // If present, the breeze is in water. + value: struct {}, +} diff --git a/java/server/util/mod.mcdoc b/java/server/util/mod.mcdoc index 8ddce52..0c6471a 100644 --- a/java/server/util/mod.mcdoc +++ b/java/server/util/mod.mcdoc @@ -10,12 +10,6 @@ type ColorString = color::ColorString type EffectId = effect::EffectId type GlobalPos = global_pos::GlobalPos type SlottedItem = inventory::SlottedItem -type TickMemory = memory::TickMemory -type TimedMemory = memory::TimedMemory -type FlagMemory = memory::FlagMemory -type TimedFlagMemory = memory::TimedFlagMemory -type TimedEntityMemory = memory::TimedEntityMemory -type PositionMemory = memory::PositionMemory type Particle = particle::Particle type Filterable = ( diff --git a/java/server/world/entity/mob/breedable/armadillo.mcdoc b/java/server/world/entity/mob/breedable/armadillo.mcdoc index d18e5c5..a6164dc 100644 --- a/java/server/world/entity/mob/breedable/armadillo.mcdoc +++ b/java/server/world/entity/mob/breedable/armadillo.mcdoc @@ -1,7 +1,3 @@ -use ::java::server::util::TimedMemory - -dispatch minecraft:memory_module[danger_detected_recently] to TimedMemory - #[since="1.20.5"] dispatch minecraft:entity[armadillo] to struct Armadillo { ...super::Breedable, @@ -9,11 +5,6 @@ dispatch minecraft:entity[armadillo] to struct Armadillo { scute_time?: int @ 0.., } -dispatch minecraft:entity_memory[armadillo] to ( - "gaze_cooldown_ticks" | - "danger_detected_recently" | -) - enum(string) ArmadilloState { Idle = "idle", Rolling = "rolling", diff --git a/java/server/world/entity/mob/breedable/axolotl.mcdoc b/java/server/world/entity/mob/breedable/axolotl.mcdoc index 01d7345..796085d 100644 --- a/java/server/world/entity/mob/breedable/axolotl.mcdoc +++ b/java/server/world/entity/mob/breedable/axolotl.mcdoc @@ -1,11 +1,3 @@ -use ::java::server::util::FlagMemory -use ::java::server::util::TickMemory - -/// Hunting cooldown active. -dispatch minecraft:memory_module[has_hunting_cooldown] to FlagMemory -/// Ticks until it stops playing dead. -dispatch minecraft:memory_module[play_dead_ticks] to TickMemory - #[since="1.17"] dispatch minecraft:entity[axolotl] to struct Axolotl { ...super::Breedable, @@ -15,12 +7,6 @@ dispatch minecraft:entity[axolotl] to struct Axolotl { FromBucket?: boolean } -dispatch minecraft:entity_memory[axolotl] to ( - super::BreedableMemories | - "has_hunting_cooldown" | - "play_dead_ticks" | -) - enum(int) Variant { Lucy = 0, Wild = 1, diff --git a/java/server/world/entity/mob/breedable/frog.mcdoc b/java/server/world/entity/mob/breedable/frog.mcdoc index dacab5a..c92be14 100644 --- a/java/server/world/entity/mob/breedable/frog.mcdoc +++ b/java/server/world/entity/mob/breedable/frog.mcdoc @@ -1,16 +1,5 @@ -use ::java::server::util::FlagMemory - -dispatch minecraft:memory_module[is_pregnant] to struct IsPregnant { - value?: struct {}, -} - #[since="1.19"] dispatch minecraft:entity[frog] to struct Frog { ...super::Breedable, variant?: #[id="frog_variant"] string, } - -dispatch minecraft:entity_memory[frog] to ( - super::BreedableMemories | - "is_pregnant" | -) \ No newline at end of file diff --git a/java/server/world/entity/mob/breedable/goat.mcdoc b/java/server/world/entity/mob/breedable/goat.mcdoc index eeee9c4..4b9d1a0 100644 --- a/java/server/world/entity/mob/breedable/goat.mcdoc +++ b/java/server/world/entity/mob/breedable/goat.mcdoc @@ -1,11 +1,3 @@ -use ::java::server::util::FlagMemory -use ::java::server::util::TickMemory - -/// Ticks until it can leap again. -dispatch minecraft:memory_module[long_jump_cooling_down] to TickMemory -/// Ticks until it can ram again. -dispatch minecraft:memory_module[ram_cooldown_ticks] to TickMemory - #[since="1.17"] dispatch minecraft:entity[goat] to struct Goat { ...super::Breedable, @@ -18,9 +10,3 @@ dispatch minecraft:entity[goat] to struct Goat { /// Whether it is a screaming goat. IsScreamingGoat?: boolean, } - -dispatch minecraft:entity_memory[goat] to ( - super::BreedableMemories | - "long_jump_cooling_down" | - "ram_cooldown_ticks" | -) \ No newline at end of file diff --git a/java/server/world/entity/mob/breedable/horse.mcdoc b/java/server/world/entity/mob/breedable/horse.mcdoc index 06b63da..a7cb95c 100644 --- a/java/server/world/entity/mob/breedable/horse.mcdoc +++ b/java/server/world/entity/mob/breedable/horse.mcdoc @@ -62,8 +62,3 @@ dispatch minecraft:entity[camel] to struct Camel { /// The tick when it started changing its pose. LastPoseTick?: long } - -dispatch minecraft:entity_memory[camel] to ( - super::BreedableMemories | - "gaze_cooldown_ticks" | -) diff --git a/java/server/world/entity/mob/breedable/mod.mcdoc b/java/server/world/entity/mob/breedable/mod.mcdoc index 8caf076..8e4fcc6 100644 --- a/java/server/world/entity/mob/breedable/mod.mcdoc +++ b/java/server/world/entity/mob/breedable/mod.mcdoc @@ -1,6 +1,3 @@ -use ::java::server::util::FlagMemory -use ::java::server::util::TickMemory - struct Breedable { ...super::MobBase, /// Ticks until it stops searching for a mate. @@ -22,15 +19,10 @@ struct Breedable { dispatch minecraft:entity[cow] to Breedable -dispatch minecraft:memory_module[gaze_cooldown_ticks] to TickMemory - -/// Tempted by the player. -dispatch minecraft:memory_module[is_tempted] to FlagMemory - -/// Ticks until it can be tempted again. -dispatch minecraft:memory_module[temptation_cooldown_ticks] to TickMemory +#[since="1.19.4"] +dispatch minecraft:entity[sniffer] to Breedable type BreedableMemories = ( "is_tempted" | "temptation_cooldown_ticks" | -) \ No newline at end of file +) diff --git a/java/server/world/entity/mob/breedable/sniffer.mcdoc b/java/server/world/entity/mob/breedable/sniffer.mcdoc deleted file mode 100644 index 477ad55..0000000 --- a/java/server/world/entity/mob/breedable/sniffer.mcdoc +++ /dev/null @@ -1,19 +0,0 @@ -use ::java::server::util::TimedFlagMemory -use ::java::server::util::TickMemory - -/// Ticks till it can explore another position. -dispatch minecraft:memory_module[sniff_cooldown] to TimedFlagMemory -/// Coordinates in the world that it has already explored. -dispatch minecraft:memory_module[sniffer_explored_positions] to struct SnifferExploredPositions { - value?: [int[] @ 3] @ ..20, -} - -#[since="1.19.4"] -dispatch minecraft:entity[sniffer] to struct Sniffer { - ...super::Breedable, -} - -dispatch minecraft:entity_memory[sniffer] to ( - "sniff_cooldown" | - "sniffer_explored_positions" | -) diff --git a/java/server/world/entity/mob/breedable/villager.mcdoc b/java/server/world/entity/mob/breedable/villager.mcdoc index 4093373..d224fab 100644 --- a/java/server/world/entity/mob/breedable/villager.mcdoc +++ b/java/server/world/entity/mob/breedable/villager.mcdoc @@ -1,7 +1,4 @@ use ::java::server::world::item::ItemStack -use ::java::server::util::TimedFlagMemory -use ::java::server::util::TickMemory -use ::java::server::util::PositionMemory struct VillagerBase { /// Slots from 0 to 7. @@ -10,23 +7,6 @@ struct VillagerBase { Offers?: Offers, } -/// Detected an iron golem recently. -dispatch minecraft:memory_module[golem_detected_recently] to TimedFlagMemory -/// Location of home. -dispatch minecraft:memory_module[home] to PositionMemory -/// Location of job site. -dispatch minecraft:memory_module[job_site] to PositionMemory -/// Gametick when it last slept. -dispatch minecraft:memory_module[last_slept] to TickMemory -/// Gametick when it last woke up. -dispatch minecraft:memory_module[last_woken] to TickMemory -/// Gametick when it last worked. -dispatch minecraft:memory_module[last_worked_at_poi] to TickMemory -/// Location of meeting point. -dispatch minecraft:memory_module[meeting_point] to PositionMemory -/// Location of a potential job site. -dispatch minecraft:memory_module[potential_job_site] to PositionMemory - dispatch minecraft:entity[villager] to struct Villager { ...super::Breedable, ...VillagerBase, @@ -44,17 +24,6 @@ dispatch minecraft:entity[villager] to struct Villager { Xp?: int, } -dispatch minecraft:entity_memory[villager] to ( - "golem_detected_recently" | - "home" | - "job_site" | - "last_slept" | - "last_woken" | - "last_worked_at_poi" | - "meeting_point" | - "potential_job_site" | -) - struct VillagerData { /// Used for trading and badge rendering. level?: int, diff --git a/java/server/world/entity/mob/breeze.mcdoc b/java/server/world/entity/mob/breeze.mcdoc deleted file mode 100644 index d1159c2..0000000 --- a/java/server/world/entity/mob/breeze.mcdoc +++ /dev/null @@ -1,16 +0,0 @@ -use ::java::server::util::TickMemory -use ::java::server::util::PositionMemory - -dispatch minecraft:memory_module[breeze_jump_inhaling] to TickMemory -dispatch minecraft:memory_module[breeze_jump_target] to PositionMemory -dispatch minecraft:memory_module[breeze_shoot_cooldown] to TickMemory -dispatch minecraft:memory_module[breeze_shoot] to TickMemory -dispatch minecraft:memory_module[breeze_shoot_charging] to TickMemory - -dispatch minecraft:entity_memory[breeze] to ( - "breeze_jump_inhaling" | - "breeze_jump_target" | - "breeze_shoot_cooldown" | - "breeze_shoot" | - "breeze_shoot_charging" -) diff --git a/java/server/world/entity/mob/mod.mcdoc b/java/server/world/entity/mob/mod.mcdoc index c3e5a7c..eeb2ff4 100644 --- a/java/server/world/entity/mob/mod.mcdoc +++ b/java/server/world/entity/mob/mod.mcdoc @@ -4,6 +4,7 @@ use ::java::server::util::attribute::AttributeOperation use ::java::server::world::item::ItemStack use ::java::server::util::effect::MobEffectInstance use ::java::server::util::attribute::AttributeSlot +use ::java::server::util::memory::Memories struct LivingEntity { ...super::EntityBase, @@ -25,7 +26,7 @@ struct LivingEntity { /// Z coordinate of where it is sleeping. SleepingZ?: int, Brain?: struct Brain { - memories?: Memories, + memories?: Memories, }, #[until="1.21"] Attributes?: [Attribute], @@ -132,10 +133,6 @@ type AttributeModifier = ( } | ) -type Memories = struct { - [#[id(registry="memory_module_type", recommended=T)] string]: minecraft:memory_module[[%key]], -} - struct UUIDLeash { /// Upper bits of the other entity's UUID. UUIDMost?: long, diff --git a/java/server/world/entity/mob/piglin.mcdoc b/java/server/world/entity/mob/piglin.mcdoc index ad74abc..fb6a829 100644 --- a/java/server/world/entity/mob/piglin.mcdoc +++ b/java/server/world/entity/mob/piglin.mcdoc @@ -1,7 +1,4 @@ use ::java::server::world::item::ItemStack -use ::java::server::util::FlagMemory -use ::java::server::util::TimedFlagMemory -use ::java::server::util::TimedEntityMemory struct PiglinBase { ...super::MobBase, @@ -11,17 +8,6 @@ struct PiglinBase { TimeInOverworld?: int, } -/// Whether it cannot admire an item. -dispatch minecraft:memory_module[admiring_disabled] to TimedFlagMemory -/// Whether it is admiring an item. -dispatch minecraft:memory_module[admiring_item] to FlagMemory -/// The target of the piglin. -dispatch minecraft:memory_module[angry_at] to TimedEntityMemory -/// Whether it hunted recently. -dispatch minecraft:memory_module[hunted_recently] to TimedFlagMemory -/// Whether it is being angered universally. -dispatch minecraft:memory_module[universal_anger] to TimedFlagMemory - #[since="1.16"] dispatch minecraft:entity[piglin] to struct Piglin { ...PiglinBase, @@ -32,13 +18,5 @@ dispatch minecraft:entity[piglin] to struct Piglin { Inventory?: [ItemStack] @ 0..8, } -dispatch minecraft:entity_memory[piglin] to ( - "admiring_disabled" | - "admiring_item" | - "angry_at" | - "hunted_recently" | - "universal_anger" -) - -#[since="1.16"] +#[since="1.16.2"] dispatch minecraft:entity[piglin_brute] to PiglinBase