1
2
Fork 0
mirror of https://github.com/mat-1/azalea.git synced 2025-08-02 14:26:04 +00:00
This commit is contained in:
mat 2025-04-17 16:42:04 -09:30
parent e86087366f
commit b493070233
17 changed files with 1499 additions and 1131 deletions

42
Cargo.lock generated
View file

@ -222,7 +222,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "azalea"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"anyhow",
"azalea-auth",
@ -262,7 +262,7 @@ dependencies = [
[[package]]
name = "azalea-auth"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-buf",
"azalea-crypto",
@ -282,7 +282,7 @@ dependencies = [
[[package]]
name = "azalea-block"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-block-macros",
"azalea-buf",
@ -291,7 +291,7 @@ dependencies = [
[[package]]
name = "azalea-block-macros"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"proc-macro2",
"quote",
@ -300,7 +300,7 @@ dependencies = [
[[package]]
name = "azalea-brigadier"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-buf",
"azalea-chat",
@ -311,7 +311,7 @@ dependencies = [
[[package]]
name = "azalea-buf"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-buf-macros",
"byteorder",
@ -324,7 +324,7 @@ dependencies = [
[[package]]
name = "azalea-buf-macros"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"proc-macro2",
"quote",
@ -333,7 +333,7 @@ dependencies = [
[[package]]
name = "azalea-chat"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-buf",
"azalea-language",
@ -346,7 +346,7 @@ dependencies = [
[[package]]
name = "azalea-client"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"anyhow",
"async-compat",
@ -382,7 +382,7 @@ dependencies = [
[[package]]
name = "azalea-core"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-buf",
"azalea-chat",
@ -398,7 +398,7 @@ dependencies = [
[[package]]
name = "azalea-crypto"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"aes",
"azalea-buf",
@ -415,7 +415,7 @@ dependencies = [
[[package]]
name = "azalea-entity"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-block",
"azalea-buf",
@ -438,7 +438,7 @@ dependencies = [
[[package]]
name = "azalea-inventory"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-buf",
"azalea-chat",
@ -453,7 +453,7 @@ dependencies = [
[[package]]
name = "azalea-inventory-macros"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"proc-macro2",
"quote",
@ -462,7 +462,7 @@ dependencies = [
[[package]]
name = "azalea-language"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"compact_str",
"serde",
@ -471,7 +471,7 @@ dependencies = [
[[package]]
name = "azalea-physics"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-block",
"azalea-core",
@ -489,7 +489,7 @@ dependencies = [
[[package]]
name = "azalea-protocol"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"anyhow",
"async-recursion",
@ -525,7 +525,7 @@ dependencies = [
[[package]]
name = "azalea-protocol-macros"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"proc-macro2",
"quote",
@ -534,7 +534,7 @@ dependencies = [
[[package]]
name = "azalea-registry"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-buf",
"azalea-registry-macros",
@ -544,7 +544,7 @@ dependencies = [
[[package]]
name = "azalea-registry-macros"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"quote",
"syn",
@ -552,7 +552,7 @@ dependencies = [
[[package]]
name = "azalea-world"
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
dependencies = [
"azalea-block",
"azalea-buf",

View file

@ -22,7 +22,7 @@ resolver = "2"
# --- Workspace Settings ---
[workspace.package]
version = "0.12.0+mc1.21.5"
version = "0.12.0+mc25w16a"
edition = "2024"
license = "MIT"
repository = "https://github.com/azalea-rs/azalea"

View file

@ -10,7 +10,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools.
<!-- The line below is automatically read and updated by the migrate script, so don't change it manually. -->
_Currently supported Minecraft version: `1.21.5`._
_Currently supported Minecraft version: `25w16a`._
> [!WARNING]
> Azalea is still unfinished, though most crates are in a useable state

View file

@ -1561,6 +1561,12 @@ make_block_states! {
_1,
_2,
},
"hydration" => DriedGhastHydration {
_0,
_1,
_2,
_3,
},
"pickles" => SeaPicklePickles {
_1,
_2,
@ -4214,6 +4220,11 @@ make_block_states! {
sniffer_egg => BlockBehavior::new().strength(0.5, 0.5), {
"hatch": SnifferEggHatch::_0,
},
dried_ghast => BlockBehavior::new(), {
"facing": FacingCardinal::North,
"hydration": DriedGhastHydration::_0,
"waterlogged": Waterlogged(false),
},
dead_tube_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0).force_solid(true), {},
dead_brain_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0).force_solid(true), {},
dead_bubble_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0).force_solid(true), {},

View file

@ -174,6 +174,7 @@ pub fn process_packet(ecs: &mut World, player: Entity, packet: &ClientboundGameP
recipe_book_remove,
recipe_book_settings,
test_instance_block_status,
waypoint,
]
);
}
@ -1588,4 +1589,5 @@ impl GamePacketHandler<'_> {
pub fn recipe_book_remove(&mut self, _p: &ClientboundRecipeBookRemove) {}
pub fn recipe_book_settings(&mut self, _p: &ClientboundRecipeBookSettings) {}
pub fn test_instance_block_status(&mut self, _p: &ClientboundTestInstanceBlockStatus) {}
pub fn waypoint(&mut self, _p: &ClientboundWaypoint) {}
}

View file

@ -89,6 +89,7 @@ impl From<EntityKind> for EntityDimensions {
EntityKind::GlowSquid => EntityDimensions::new(0.8, 0.8),
EntityKind::Goat => EntityDimensions::new(0.9, 1.3),
EntityKind::Guardian => EntityDimensions::new(0.85, 0.85),
EntityKind::HappyGhast => EntityDimensions::new(4.0, 4.0),
EntityKind::Hoglin => EntityDimensions::new(1.39648, 1.4),
EntityKind::HopperMinecart => EntityDimensions::new(0.98, 0.7),
EntityKind::Horse => EntityDimensions::new(1.39648, 1.6),

View file

@ -4282,7 +4282,7 @@ impl Default for GlowItemFrameMetadataBundle {
pose: Pose::default(),
ticks_frozen: TicksFrozen(Default::default()),
},
item_frame_item: ItemFrameItem(ItemStack::Empty),
item_frame_item: ItemFrameItem(Default::default()),
rotation: Rotation(0),
},
}
@ -4539,6 +4539,85 @@ impl Default for GuardianMetadataBundle {
}
}
#[derive(Component, Deref, DerefMut, Clone)]
pub struct IsLeashHolder(pub bool);
#[derive(Component)]
pub struct HappyGhast;
impl HappyGhast {
pub fn apply_metadata(
entity: &mut bevy_ecs::system::EntityCommands,
d: EntityDataItem,
) -> Result<(), UpdateMetadataError> {
match d.index {
0..=16 => AbstractAnimal::apply_metadata(entity, d)?,
17 => {
entity.insert(IsLeashHolder(d.value.into_boolean()?));
}
_ => {}
}
Ok(())
}
}
#[derive(Bundle)]
pub struct HappyGhastMetadataBundle {
_marker: HappyGhast,
parent: AbstractAnimalMetadataBundle,
is_leash_holder: IsLeashHolder,
}
impl Default for HappyGhastMetadataBundle {
fn default() -> Self {
Self {
_marker: HappyGhast,
parent: AbstractAnimalMetadataBundle {
_marker: AbstractAnimal,
parent: AbstractAgeableMetadataBundle {
_marker: AbstractAgeable,
parent: AbstractCreatureMetadataBundle {
_marker: AbstractCreature,
parent: AbstractInsentientMetadataBundle {
_marker: AbstractInsentient,
parent: AbstractLivingMetadataBundle {
_marker: AbstractLiving,
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
shift_key_down: ShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
invisible: Invisible(false),
fall_flying: FallFlying(false),
air_supply: AirSupply(Default::default()),
custom_name: CustomName(Default::default()),
custom_name_visible: CustomNameVisible(Default::default()),
silent: Silent(Default::default()),
no_gravity: NoGravity(Default::default()),
pose: Pose::default(),
ticks_frozen: TicksFrozen(Default::default()),
},
auto_spin_attack: AutoSpinAttack(false),
abstract_living_using_item: AbstractLivingUsingItem(false),
health: Health(1.0),
effect_particles: EffectParticles(Default::default()),
effect_ambience: EffectAmbience(false),
arrow_count: ArrowCount(0),
stinger_count: StingerCount(0),
sleeping_pos: SleepingPos(None),
},
no_ai: NoAi(false),
left_handed: LeftHanded(false),
aggressive: Aggressive(false),
},
},
abstract_ageable_baby: AbstractAgeableBaby(false),
},
},
is_leash_holder: IsLeashHolder(false),
}
}
}
#[derive(Component, Deref, DerefMut, Clone)]
pub struct HoglinImmuneToZombification(pub bool);
#[derive(Component)]
@ -5096,7 +5175,7 @@ impl Default for ItemMetadataBundle {
pose: Pose::default(),
ticks_frozen: TicksFrozen(Default::default()),
},
item_item: ItemItem(ItemStack::Empty),
item_item: ItemItem(Default::default()),
}
}
}
@ -5191,7 +5270,7 @@ impl Default for ItemDisplayMetadataBundle {
abstract_display_height: AbstractDisplayHeight(0.0),
glow_color_override: GlowColorOverride(-1),
},
item_display_item_stack: ItemDisplayItemStack(ItemStack::Empty),
item_display_item_stack: ItemDisplayItemStack(Default::default()),
item_display_item_display: ItemDisplayItemDisplay(Default::default()),
}
}
@ -5246,7 +5325,7 @@ impl Default for ItemFrameMetadataBundle {
pose: Pose::default(),
ticks_frozen: TicksFrozen(Default::default()),
},
item_frame_item: ItemFrameItem(ItemStack::Empty),
item_frame_item: ItemFrameItem(Default::default()),
rotation: Rotation(0),
}
}
@ -6338,7 +6417,7 @@ impl Default for OminousItemSpawnerMetadataBundle {
pose: Pose::default(),
ticks_frozen: TicksFrozen(Default::default()),
},
ominous_item_spawner_item: OminousItemSpawnerItem(ItemStack::Empty),
ominous_item_spawner_item: OminousItemSpawnerItem(Default::default()),
}
}
}
@ -12690,6 +12769,11 @@ pub fn apply_metadata(
Guardian::apply_metadata(entity, d)?;
}
}
azalea_registry::EntityKind::HappyGhast => {
for d in items {
HappyGhast::apply_metadata(entity, d)?;
}
}
azalea_registry::EntityKind::Hoglin => {
for d in items {
Hoglin::apply_metadata(entity, d)?;
@ -13325,6 +13409,9 @@ pub fn apply_default_metadata(
azalea_registry::EntityKind::Guardian => {
entity.insert(GuardianMetadataBundle::default());
}
azalea_registry::EntityKind::HappyGhast => {
entity.insert(HappyGhastMetadataBundle::default());
}
azalea_registry::EntityKind::Hoglin => {
entity.insert(HoglinMetadataBundle::default());
}

View file

@ -29,6 +29,8 @@
"advancements.adventure.crafters_crafting_crafters.title": "Crafters Crafting Crafters",
"advancements.adventure.fall_from_world_height.description": "Free fall from the top of the world (build limit) to the bottom of the world and survive",
"advancements.adventure.fall_from_world_height.title": "Caves & Cliffs",
"advancements.adventure.heart_transplanter.description": "Place a Creaking Heart with the correct alignment between two Pale Oak Log blocks",
"advancements.adventure.heart_transplanter.title": "Heart Transplanter",
"advancements.adventure.hero_of_the_village.description": "Successfully defend a village from a raid",
"advancements.adventure.hero_of_the_village.title": "Hero of the Village",
"advancements.adventure.honey_block_slide.description": "Jump into a Honey Block to break your fall",
@ -150,6 +152,8 @@
"advancements.husbandry.netherite_hoe.title": "Serious Dedication",
"advancements.husbandry.obtain_sniffer_egg.description": "Obtain a Sniffer Egg",
"advancements.husbandry.obtain_sniffer_egg.title": "Smells Interesting",
"advancements.husbandry.place_dried_ghast_in_water.description": "Place a Dried Ghast block into water",
"advancements.husbandry.place_dried_ghast_in_water.title": "Stay Hydrated!",
"advancements.husbandry.plant_any_sniffer_seed.description": "Plant any Sniffer seed",
"advancements.husbandry.plant_any_sniffer_seed.title": "Planting the Past",
"advancements.husbandry.plant_seed.description": "Plant a seed and watch it grow",
@ -344,6 +348,7 @@
"argument.float.big": "Float must not be more than %s, found %s",
"argument.float.low": "Float must not be less than %s, found %s",
"argument.gamemode.invalid": "Unknown game mode: %s",
"argument.hexcolor.invalid": "Invalid hex color code '%s'",
"argument.id.invalid": "Invalid ID",
"argument.id.unknown": "Unknown ID: %s",
"argument.integer.big": "Integer must not be more than %s, found %s",
@ -390,6 +395,7 @@
"argument.time.invalid_unit": "Invalid unit",
"argument.time.tick_count_too_low": "The tick count must not be less than %s, found %s",
"argument.uuid.invalid": "Invalid UUID",
"argument.waypoint.invalid": "Selected entity is not a waypoint",
"arguments.block.tag.unknown": "Unknown block tag '%s'",
"arguments.function.tag.unknown": "Unknown function tag '%s'",
"arguments.function.unknown": "Unknown function %s",
@ -428,6 +434,7 @@
"attribute.name.block_break_speed": "Block Break Speed",
"attribute.name.block_interaction_range": "Block Interaction Range",
"attribute.name.burning_time": "Burning Time",
"attribute.name.camera_distance": "Camera Distance",
"attribute.name.entity_interaction_range": "Entity Interaction Range",
"attribute.name.explosion_knockback_resistance": "Explosion Knockback Resistance",
"attribute.name.fall_damage_multiplier": "Fall Damage Multiplier",
@ -485,6 +492,8 @@
"attribute.name.sweeping_damage_ratio": "Sweeping Damage Ratio",
"attribute.name.tempt_range": "Mob Tempt Range",
"attribute.name.water_movement_efficiency": "Water Movement Efficiency",
"attribute.name.waypoint_receive_range": "Waypoint Receive Range",
"attribute.name.waypoint_transmit_range": "Waypoint Transmit Range",
"attribute.name.zombie.spawn_reinforcements": "Zombie Reinforcements",
"biome.minecraft.badlands": "Badlands",
"biome.minecraft.bamboo_jungle": "Bamboo Jungle",
@ -1592,6 +1601,7 @@
"block.minecraft.dragon_egg": "Dragon Egg",
"block.minecraft.dragon_head": "Dragon Head",
"block.minecraft.dragon_wall_head": "Dragon Wall Head",
"block.minecraft.dried_ghast": "Dried Ghast",
"block.minecraft.dried_kelp_block": "Dried Kelp Block",
"block.minecraft.dripstone_block": "Dripstone Block",
"block.minecraft.dropper": "Dropper",
@ -2535,6 +2545,11 @@
"commands.data.storage.get": "%s in storage %s after scale factor of %s is %s",
"commands.data.storage.modified": "Modified storage %s",
"commands.data.storage.query": "Storage %s has the following contents: %s",
"commands.datapack.create.already_exists": "Pack with name '%s' already exists",
"commands.datapack.create.invalid_name": "Invalid characters in new pack name '%s'",
"commands.datapack.create.io_failure": "Can't create pack with name '%s', check logs",
"commands.datapack.create.metadata_encode_failure": "Failed to encode metadata for pack with name '%s': %s",
"commands.datapack.create.success": "Created new empty pack with name '%s'",
"commands.datapack.disable.failed": "Pack '%s' is not enabled!",
"commands.datapack.disable.failed.feature": "Pack '%s' cannot be disabled, since it is part of an enabled flag!",
"commands.datapack.enable.failed": "Pack '%s' is already enabled!",
@ -2925,6 +2940,22 @@
"commands.trigger.failed.unprimed": "You cannot trigger this objective yet",
"commands.trigger.set.success": "Triggered %s (set value to %s)",
"commands.trigger.simple.success": "Triggered %s",
"commands.version.build_time": "build_time = %s",
"commands.version.data": "data = %s",
"commands.version.header": "Server version info:",
"commands.version.id": "id = %s",
"commands.version.name": "name = %s",
"commands.version.pack.data": "pack_data = %s",
"commands.version.pack.resource": "pack_resource = %s",
"commands.version.protocol": "protocol = %s (%s)",
"commands.version.series": "series = %s",
"commands.version.stable.no": "stable = no",
"commands.version.stable.yes": "stable = yes",
"commands.waypoint.list.empty": "No waypoints in %s",
"commands.waypoint.list.success": "%s waypoint(s) in %s: %s",
"commands.waypoint.modify.color": "Waypoint color is now %s",
"commands.waypoint.modify.color.reset": "Reset waypoint color",
"commands.waypoint.modify.fade": "Waypoint fade changed",
"commands.weather.set.clear": "Set the weather to clear",
"commands.weather.set.rain": "Set the weather to rain",
"commands.weather.set.thunder": "Set the weather to rain & thunder",
@ -3043,6 +3074,8 @@
"credits_and_attribution.screen.title": "Credits and Attribution",
"dataPack.bundle.description": "Enables experimental Bundle item",
"dataPack.bundle.name": "Bundles",
"dataPack.locator_bar.description": "Show the direction of other players in multiplayer",
"dataPack.locator_bar.name": "Locator Bar",
"dataPack.minecart_improvements.description": "Improved movement for Minecarts",
"dataPack.minecart_improvements.name": "Minecart Improvements",
"dataPack.redstone_experiments.description": "Experimental Redstone changes",
@ -3216,6 +3249,8 @@
"debug.show_hitboxes.help": "F3 + B = Show hitboxes",
"debug.show_hitboxes.off": "Hitboxes: hidden",
"debug.show_hitboxes.on": "Hitboxes: shown",
"debug.version.header": "Client version info:",
"debug.version.help": "F3 + V = Client version info",
"demo.day.1": "This demo will last five game days. Do your best!",
"demo.day.2": "Day Two",
"demo.day.3": "Day Three",
@ -3418,6 +3453,7 @@
"entity.minecraft.glow_squid": "Glow Squid",
"entity.minecraft.goat": "Goat",
"entity.minecraft.guardian": "Guardian",
"entity.minecraft.happy_ghast": "Happy Ghast",
"entity.minecraft.hoglin": "Hoglin",
"entity.minecraft.hopper_minecart": "Minecart with Hopper",
"entity.minecraft.horse": "Horse",
@ -3686,6 +3722,8 @@
"gamerule.tntExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by TNT are lost in the explosion.",
"gamerule.universalAnger": "Universal anger",
"gamerule.universalAnger.description": "Angered neutral mobs attack any nearby player, not just the player that angered them. Works best if forgiveDeadPlayers is disabled.",
"gamerule.useLocatorBar": "Use player Locator Bar",
"gamerule.useLocatorBar.description": "When enabled, a bar is shown on the screen to indicate the direction of players.",
"gamerule.waterSourceConversion": "Water converts to source",
"gamerule.waterSourceConversion.description": "When flowing water is surrounded on two sides by water sources it converts into a source.",
"generator.custom": "Custom",
@ -3836,6 +3874,7 @@
"gui.done": "Done",
"gui.down": "Down",
"gui.entity_tooltip.type": "Type: %s",
"gui.experience.level": "%s",
"gui.fileDropFailure.detail": "Rejected %s files",
"gui.fileDropFailure.title": "Failed to add files",
"gui.hours": "%s hour(s)",
@ -3949,6 +3988,7 @@
"item.minecraft.birch_chest_boat": "Birch Boat with Chest",
"item.minecraft.black_bundle": "Black Bundle",
"item.minecraft.black_dye": "Black Dye",
"item.minecraft.black_harness": "Black Harness",
"item.minecraft.blade_pottery_shard": "Blade Pottery Shard",
"item.minecraft.blade_pottery_sherd": "Blade Pottery Sherd",
"item.minecraft.blaze_powder": "Blaze Powder",
@ -3957,6 +3997,7 @@
"item.minecraft.blue_bundle": "Blue Bundle",
"item.minecraft.blue_dye": "Blue Dye",
"item.minecraft.blue_egg": "Blue Egg",
"item.minecraft.blue_harness": "Blue Harness",
"item.minecraft.bogged_spawn_egg": "Bogged Spawn Egg",
"item.minecraft.bolt_armor_trim_smithing_template": "Smithing Template",
"item.minecraft.bolt_armor_trim_smithing_template.new": "Bolt Armor Trim",
@ -3976,6 +4017,7 @@
"item.minecraft.brown_bundle": "Brown Bundle",
"item.minecraft.brown_dye": "Brown Dye",
"item.minecraft.brown_egg": "Brown Egg",
"item.minecraft.brown_harness": "Brown Harness",
"item.minecraft.brush": "Brush",
"item.minecraft.bucket": "Bucket",
"item.minecraft.bundle": "Bundle",
@ -4034,6 +4076,7 @@
"item.minecraft.crossbow.projectile.single": "Projectile: %s",
"item.minecraft.cyan_bundle": "Cyan Bundle",
"item.minecraft.cyan_dye": "Cyan Dye",
"item.minecraft.cyan_harness": "Cyan Harness",
"item.minecraft.danger_pottery_shard": "Danger Pottery Shard",
"item.minecraft.danger_pottery_sherd": "Danger Pottery Sherd",
"item.minecraft.dark_oak_boat": "Dark Oak Boat",
@ -4165,14 +4208,18 @@
"item.minecraft.golden_sword": "Golden Sword",
"item.minecraft.gray_bundle": "Gray Bundle",
"item.minecraft.gray_dye": "Gray Dye",
"item.minecraft.gray_harness": "Gray Harness",
"item.minecraft.green_bundle": "Green Bundle",
"item.minecraft.green_dye": "Green Dye",
"item.minecraft.green_harness": "Green Harness",
"item.minecraft.guardian_spawn_egg": "Guardian Spawn Egg",
"item.minecraft.gunpowder": "Gunpowder",
"item.minecraft.guster_banner_pattern": "Banner Pattern",
"item.minecraft.guster_banner_pattern.desc": "Guster",
"item.minecraft.guster_banner_pattern.new": "Guster Banner Pattern",
"item.minecraft.guster_pottery_sherd": "Guster Pottery Sherd",
"item.minecraft.happy_ghast_spawn_egg": "Happy Ghast Spawn Egg",
"item.minecraft.harness": "Harness",
"item.minecraft.heart_of_the_sea": "Heart of the Sea",
"item.minecraft.heart_pottery_shard": "Heart Pottery Shard",
"item.minecraft.heart_pottery_sherd": "Heart Pottery Sherd",
@ -4217,10 +4264,13 @@
"item.minecraft.leather_leggings": "Leather Pants",
"item.minecraft.light_blue_bundle": "Light Blue Bundle",
"item.minecraft.light_blue_dye": "Light Blue Dye",
"item.minecraft.light_blue_harness": "Light Blue Harness",
"item.minecraft.light_gray_bundle": "Light Gray Bundle",
"item.minecraft.light_gray_dye": "Light Gray Dye",
"item.minecraft.light_gray_harness": "Light Gray Harness",
"item.minecraft.lime_bundle": "Lime Bundle",
"item.minecraft.lime_dye": "Lime Dye",
"item.minecraft.lime_harness": "Lime Harness",
"item.minecraft.lingering_potion": "Lingering Potion",
"item.minecraft.lingering_potion.effect.awkward": "Awkward Lingering Potion",
"item.minecraft.lingering_potion.effect.empty": "Lingering Uncraftable Potion",
@ -4253,6 +4303,7 @@
"item.minecraft.mace": "Mace",
"item.minecraft.magenta_bundle": "Magenta Bundle",
"item.minecraft.magenta_dye": "Magenta Dye",
"item.minecraft.magenta_harness": "Magenta Harness",
"item.minecraft.magma_cream": "Magma Cream",
"item.minecraft.magma_cube_spawn_egg": "Magma Cube Spawn Egg",
"item.minecraft.mangrove_boat": "Mangrove Boat",
@ -4336,6 +4387,7 @@
"item.minecraft.ominous_trial_key": "Ominous Trial Key",
"item.minecraft.orange_bundle": "Orange Bundle",
"item.minecraft.orange_dye": "Orange Dye",
"item.minecraft.orange_harness": "Orange Harness",
"item.minecraft.painting": "Painting",
"item.minecraft.pale_oak_boat": "Pale Oak Boat",
"item.minecraft.pale_oak_chest_boat": "Pale Oak Boat with Chest",
@ -4353,6 +4405,7 @@
"item.minecraft.pillager_spawn_egg": "Pillager Spawn Egg",
"item.minecraft.pink_bundle": "Pink Bundle",
"item.minecraft.pink_dye": "Pink Dye",
"item.minecraft.pink_harness": "Pink Harness",
"item.minecraft.pitcher_plant": "Pitcher Plant",
"item.minecraft.pitcher_pod": "Pitcher Pod",
"item.minecraft.plenty_pottery_shard": "Plenty Pottery Shard",
@ -4405,6 +4458,7 @@
"item.minecraft.pumpkin_seeds": "Pumpkin Seeds",
"item.minecraft.purple_bundle": "Purple Bundle",
"item.minecraft.purple_dye": "Purple Dye",
"item.minecraft.purple_harness": "Purple Harness",
"item.minecraft.quartz": "Nether Quartz",
"item.minecraft.rabbit": "Raw Rabbit",
"item.minecraft.rabbit_foot": "Rabbit's Foot",
@ -4420,6 +4474,7 @@
"item.minecraft.recovery_compass": "Recovery Compass",
"item.minecraft.red_bundle": "Red Bundle",
"item.minecraft.red_dye": "Red Dye",
"item.minecraft.red_harness": "Red Harness",
"item.minecraft.redstone": "Redstone Dust",
"item.minecraft.resin_brick": "Resin Brick",
"item.minecraft.resin_clump": "Resin Clump",
@ -4601,6 +4656,7 @@
"item.minecraft.wheat_seeds": "Wheat Seeds",
"item.minecraft.white_bundle": "White Bundle",
"item.minecraft.white_dye": "White Dye",
"item.minecraft.white_harness": "White Harness",
"item.minecraft.wild_armor_trim_smithing_template": "Smithing Template",
"item.minecraft.wild_armor_trim_smithing_template.new": "Wild Armor Trim",
"item.minecraft.wind_charge": "Wind Charge",
@ -4618,6 +4674,7 @@
"item.minecraft.written_book": "Written Book",
"item.minecraft.yellow_bundle": "Yellow Bundle",
"item.minecraft.yellow_dye": "Yellow Dye",
"item.minecraft.yellow_harness": "Yellow Harness",
"item.minecraft.zoglin_spawn_egg": "Zoglin Spawn Egg",
"item.minecraft.zombie_horse_spawn_egg": "Zombie Horse Spawn Egg",
"item.minecraft.zombie_spawn_egg": "Zombie Spawn Egg",
@ -5996,6 +6053,7 @@
"stat.minecraft.fill_cauldron": "Cauldrons Filled",
"stat.minecraft.fish_caught": "Fish Caught",
"stat.minecraft.fly_one_cm": "Distance Flown",
"stat.minecraft.happy_ghast_one_cm": "Distance by Happy Ghast",
"stat.minecraft.horse_one_cm": "Distance by Horse",
"stat.minecraft.inspect_dispenser": "Dispensers Searched",
"stat.minecraft.inspect_dropper": "Droppers Searched",
@ -6153,6 +6211,11 @@
"subtitles.block.dispenser.dispense": "Dispensed item",
"subtitles.block.dispenser.fail": "Dispenser failed",
"subtitles.block.door.toggle": "Door creaks",
"subtitles.block.dried_ghast.ambient": "Sounds of dryness",
"subtitles.block.dried_ghast.ambient_water": "Dried Ghast rehydrates",
"subtitles.block.dried_ghast.place_in_water": "Dried Ghast soaks",
"subtitles.block.dried_ghast.transition": "Dried Ghast feels better",
"subtitles.block.dry_grass.ambient": "Windy sounds",
"subtitles.block.enchantment_table.use": "Enchanting Table used",
"subtitles.block.end_portal_frame.fill": "Eye of Ender attaches",
"subtitles.block.end_portal.spawn": "End Portal opens",
@ -6215,6 +6278,8 @@
"subtitles.block.sniffer_egg.plop": "Sniffer plops",
"subtitles.block.sponge.absorb": "Sponge sucks",
"subtitles.block.sweet_berry_bush.pick_berries": "Berries pop",
"subtitles.block.trapdoor.close": "Trapdoor closes",
"subtitles.block.trapdoor.open": "Trapdoor opens",
"subtitles.block.trapdoor.toggle": "Trapdoor creaks",
"subtitles.block.trial_spawner.about_to_spawn_item": "Ominous item prepares",
"subtitles.block.trial_spawner.ambient": "Trial Spawner crackles",
@ -6453,6 +6518,10 @@
"subtitles.entity.ghast.death": "Ghast dies",
"subtitles.entity.ghast.hurt": "Ghast hurts",
"subtitles.entity.ghast.shoot": "Ghast shoots",
"subtitles.entity.ghastling.ambient": "Ghastling coos",
"subtitles.entity.ghastling.death": "Ghastling dies",
"subtitles.entity.ghastling.hurt": "Ghastling hurts",
"subtitles.entity.ghastling.spawn": "Ghastling appears",
"subtitles.entity.glow_item_frame.add_item": "Glow Item Frame fills",
"subtitles.entity.glow_item_frame.break": "Glow Item Frame broken",
"subtitles.entity.glow_item_frame.place": "Glow Item Frame placed",
@ -6479,6 +6548,13 @@
"subtitles.entity.guardian.death": "Guardian dies",
"subtitles.entity.guardian.flop": "Guardian flops",
"subtitles.entity.guardian.hurt": "Guardian hurts",
"subtitles.entity.happy_ghast.ambient": "Happy Ghast croons",
"subtitles.entity.happy_ghast.death": "Happy Ghast dies",
"subtitles.entity.happy_ghast.equip": "Harness equips",
"subtitles.entity.happy_ghast.harness_goggles_down": "Happy Ghast is ready",
"subtitles.entity.happy_ghast.harness_goggles_up": "Happy Ghast stops",
"subtitles.entity.happy_ghast.hurt": "Happy Ghast hurts",
"subtitles.entity.happy_ghast.unequip": "Harness unequips",
"subtitles.entity.hoglin.ambient": "Hoglin growls",
"subtitles.entity.hoglin.angry": "Hoglin growls angrily",
"subtitles.entity.hoglin.attack": "Hoglin attacks",
@ -6925,6 +7001,7 @@
"subtitles.item.nether_wart.plant": "Crop planted",
"subtitles.item.ominous_bottle.dispose": "Bottle breaks",
"subtitles.item.shears.shear": "Shears click",
"subtitles.item.shears.snip": "Shears snip",
"subtitles.item.shield.block": "Shield blocks",
"subtitles.item.shovel.flatten": "Shovel flattens",
"subtitles.item.spyglass.stop_using": "Spyglass retracts",

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,89 @@
use std::io::{self, Cursor, Write};
use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite, BufReadError};
use azalea_core::{color::RgbColor, position::Vec3i};
use azalea_protocol_macros::ClientboundGamePacket;
use uuid::Uuid;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundWaypoint {
pub operation: WaypointOperation,
pub waypoint: TrackedWaypoint,
}
#[derive(AzBuf, Copy, Clone, Debug)]
pub enum WaypointOperation {
Track,
Untrack,
Update,
}
#[derive(AzBuf, Clone, Debug)]
pub struct TrackedWaypoint {
pub identifier: WaypointIdentifier,
pub icon: WaypointIcon,
pub data: WaypointData,
}
#[derive(AzBuf, Clone, Debug)]
pub enum WaypointIdentifier {
String(String),
Uuid(Uuid),
}
#[derive(Clone, Debug)]
pub struct WaypointIcon {
pub alpha_fade: WaypointIconFade,
pub color: Option<RgbColor>,
}
impl AzaleaWrite for WaypointIcon {
fn azalea_write(&self, buf: &mut impl Write) -> Result<(), io::Error> {
self.alpha_fade.azalea_write(buf)?;
let color = self.color.map(|c| CompactRgbColor {
r: c.red(),
g: c.green(),
b: c.blue(),
});
color.azalea_write(buf)?;
Ok(())
}
}
impl AzaleaRead for WaypointIcon {
fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> {
let alpha_fade = WaypointIconFade::azalea_read(buf)?;
let color = Option::<CompactRgbColor>::azalea_read(buf)?;
let color = color.map(|c| RgbColor::new(c.r, c.g, c.b));
Ok(Self { alpha_fade, color })
}
}
// usually RgbColor is encoded as 4 bytes, except here where it's 3
#[derive(AzBuf)]
struct CompactRgbColor {
r: u8,
g: u8,
b: u8,
}
#[derive(AzBuf, Clone, Debug)]
pub struct WaypointIconFade {
pub near_dist: i32,
pub far_dist: i32,
pub near_alpha: u8,
pub far_alpha: u8,
}
#[derive(AzBuf, Clone, Debug)]
pub enum WaypointData {
Empty,
Vec3i(Vec3i),
Chunk {
#[var]
x: i32,
#[var]
z: i32,
},
Azimuth {
angle: f32,
},
}

View file

@ -136,6 +136,7 @@ declare_state_packets!(GamePacket,
projectile_power, // 0x80
custom_report_details, // 0x81
server_links, // 0x82
waypoint, // 0x83
],
Serverbound => [
accept_teleportation, // 0x00

View file

@ -13,13 +13,11 @@ pub struct ServerboundPlayerCommand {
#[derive(AzBuf, Clone, Copy, Debug)]
pub enum Action {
PressShiftKey = 0,
ReleaseShiftKey = 1,
StopSleeping = 2,
StartSprinting = 3,
StopSprinting = 4,
StartRidingJump = 5,
StopRidingJump = 6,
OpenInventory = 7,
StartFallFlying = 8,
StopSleeping,
StartSprinting,
StopSprinting,
StartRidingJump,
StopRidingJump,
OpenInventory,
StartFallFlying,
}

View file

@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError};
use crate::read::ReadPacketError;
pub const PROTOCOL_VERSION: i32 = 770;
pub const VERSION_NAME: &str = "1.21.5";
pub const PROTOCOL_VERSION: i32 = 1073742070;
pub const VERSION_NAME: &str = "25w16a";
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum ConnectionProtocol {

View file

@ -247,6 +247,7 @@ enum Attribute {
BlockBreakSpeed => "minecraft:block_break_speed",
BlockInteractionRange => "minecraft:block_interaction_range",
BurningTime => "minecraft:burning_time",
CameraDistance => "minecraft:camera_distance",
ExplosionKnockbackResistance => "minecraft:explosion_knockback_resistance",
EntityInteractionRange => "minecraft:entity_interaction_range",
FallDamageMultiplier => "minecraft:fall_damage_multiplier",
@ -271,6 +272,8 @@ enum Attribute {
SweepingDamageRatio => "minecraft:sweeping_damage_ratio",
TemptRange => "minecraft:tempt_range",
WaterMovementEfficiency => "minecraft:water_movement_efficiency",
WaypointTransmitRange => "minecraft:waypoint_transmit_range",
WaypointReceiveRange => "minecraft:waypoint_receive_range",
}
}
@ -996,6 +999,7 @@ enum Block {
DriedKelpBlock => "minecraft:dried_kelp_block",
TurtleEgg => "minecraft:turtle_egg",
SnifferEgg => "minecraft:sniffer_egg",
DriedGhast => "minecraft:dried_ghast",
DeadTubeCoralBlock => "minecraft:dead_tube_coral_block",
DeadBrainCoralBlock => "minecraft:dead_brain_coral_block",
DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block",
@ -1497,6 +1501,7 @@ enum CommandArgumentKind {
ItemStack => "minecraft:item_stack",
ItemPredicate => "minecraft:item_predicate",
Color => "minecraft:color",
HexColor => "minecraft:hex_color",
Component => "minecraft:component",
Style => "minecraft:style",
Message => "minecraft:message",
@ -1557,6 +1562,7 @@ enum CustomStat {
MinecartOneCm => "minecraft:minecart_one_cm",
BoatOneCm => "minecraft:boat_one_cm",
PigOneCm => "minecraft:pig_one_cm",
HappyGhastOneCm => "minecraft:happy_ghast_one_cm",
HorseOneCm => "minecraft:horse_one_cm",
AviateOneCm => "minecraft:aviate_one_cm",
SwimOneCm => "minecraft:swim_one_cm",
@ -1677,6 +1683,7 @@ enum EntityKind {
Frog => "minecraft:frog",
FurnaceMinecart => "minecraft:furnace_minecart",
Ghast => "minecraft:ghast",
HappyGhast => "minecraft:happy_ghast",
Giant => "minecraft:giant",
GlowItemFrame => "minecraft:glow_item_frame",
GlowSquid => "minecraft:glow_squid",
@ -2501,6 +2508,7 @@ enum Item {
BlackConcretePowder => "minecraft:black_concrete_powder",
TurtleEgg => "minecraft:turtle_egg",
SnifferEgg => "minecraft:sniffer_egg",
DriedGhast => "minecraft:dried_ghast",
DeadTubeCoralBlock => "minecraft:dead_tube_coral_block",
DeadBrainCoralBlock => "minecraft:dead_brain_coral_block",
DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block",
@ -2683,6 +2691,22 @@ enum Item {
Rail => "minecraft:rail",
ActivatorRail => "minecraft:activator_rail",
Saddle => "minecraft:saddle",
WhiteHarness => "minecraft:white_harness",
OrangeHarness => "minecraft:orange_harness",
MagentaHarness => "minecraft:magenta_harness",
LightBlueHarness => "minecraft:light_blue_harness",
YellowHarness => "minecraft:yellow_harness",
LimeHarness => "minecraft:lime_harness",
PinkHarness => "minecraft:pink_harness",
GrayHarness => "minecraft:gray_harness",
LightGrayHarness => "minecraft:light_gray_harness",
CyanHarness => "minecraft:cyan_harness",
PurpleHarness => "minecraft:purple_harness",
BlueHarness => "minecraft:blue_harness",
BrownHarness => "minecraft:brown_harness",
GreenHarness => "minecraft:green_harness",
RedHarness => "minecraft:red_harness",
BlackHarness => "minecraft:black_harness",
Minecart => "minecraft:minecart",
ChestMinecart => "minecraft:chest_minecart",
FurnaceMinecart => "minecraft:furnace_minecart",
@ -2976,6 +3000,7 @@ enum Item {
FoxSpawnEgg => "minecraft:fox_spawn_egg",
FrogSpawnEgg => "minecraft:frog_spawn_egg",
GhastSpawnEgg => "minecraft:ghast_spawn_egg",
HappyGhastSpawnEgg => "minecraft:happy_ghast_spawn_egg",
GlowSquidSpawnEgg => "minecraft:glow_squid_spawn_egg",
GoatSpawnEgg => "minecraft:goat_spawn_egg",
GuardianSpawnEgg => "minecraft:guardian_spawn_egg",
@ -3684,6 +3709,7 @@ enum PointOfInterestKind {
BeeNest => "minecraft:bee_nest",
NetherPortal => "minecraft:nether_portal",
Lodestone => "minecraft:lodestone",
TestInstance => "minecraft:test_instance",
LightningRod => "minecraft:lightning_rod",
}
}
@ -3830,12 +3856,14 @@ enum SensorKind {
PiglinBruteSpecificSensor => "minecraft:piglin_brute_specific_sensor",
HoglinSpecificSensor => "minecraft:hoglin_specific_sensor",
NearestAdult => "minecraft:nearest_adult",
NearestAdultAnyType => "minecraft:nearest_adult_any_type",
AxolotlAttackables => "minecraft:axolotl_attackables",
AxolotlTemptations => "minecraft:axolotl_temptations",
GoatTemptations => "minecraft:goat_temptations",
FrogTemptations => "minecraft:frog_temptations",
CamelTemptations => "minecraft:camel_temptations",
ArmadilloTemptations => "minecraft:armadillo_temptations",
HappyGhastTemptations => "minecraft:happy_ghast_temptations",
FrogAttackables => "minecraft:frog_attackables",
IsInWater => "minecraft:is_in_water",
WardenEntitySensor => "minecraft:warden_entity_sensor",
@ -4302,11 +4330,21 @@ enum SoundEvent {
EntityDonkeyEat => "minecraft:entity.donkey.eat",
EntityDonkeyHurt => "minecraft:entity.donkey.hurt",
EntityDonkeyJump => "minecraft:entity.donkey.jump",
BlockDriedGhastBreak => "minecraft:block.dried_ghast.break",
BlockDriedGhastStep => "minecraft:block.dried_ghast.step",
BlockDriedGhastFall => "minecraft:block.dried_ghast.fall",
BlockDriedGhastHit => "minecraft:block.dried_ghast.hit",
BlockDriedGhastAmbient => "minecraft:block.dried_ghast.ambient",
BlockDriedGhastAmbientWater => "minecraft:block.dried_ghast.ambient_water",
BlockDriedGhastPlace => "minecraft:block.dried_ghast.place",
BlockDriedGhastPlaceInWater => "minecraft:block.dried_ghast.place_in_water",
BlockDriedGhastTransition => "minecraft:block.dried_ghast.transition",
BlockDripstoneBlockBreak => "minecraft:block.dripstone_block.break",
BlockDripstoneBlockStep => "minecraft:block.dripstone_block.step",
BlockDripstoneBlockPlace => "minecraft:block.dripstone_block.place",
BlockDripstoneBlockHit => "minecraft:block.dripstone_block.hit",
BlockDripstoneBlockFall => "minecraft:block.dripstone_block.fall",
BlockDryGrassAmbient => "minecraft:block.dry_grass.ambient",
BlockPointedDripstoneBreak => "minecraft:block.pointed_dripstone.break",
BlockPointedDripstoneStep => "minecraft:block.pointed_dripstone.step",
BlockPointedDripstonePlace => "minecraft:block.pointed_dripstone.place",
@ -4468,6 +4506,10 @@ enum SoundEvent {
EntityGhastScream => "minecraft:entity.ghast.scream",
EntityGhastShoot => "minecraft:entity.ghast.shoot",
EntityGhastWarn => "minecraft:entity.ghast.warn",
EntityGhastlingAmbient => "minecraft:entity.ghastling.ambient",
EntityGhastlingDeath => "minecraft:entity.ghastling.death",
EntityGhastlingHurt => "minecraft:entity.ghastling.hurt",
EntityGhastlingSpawn => "minecraft:entity.ghastling.spawn",
BlockGildedBlackstoneBreak => "minecraft:block.gilded_blackstone.break",
BlockGildedBlackstoneFall => "minecraft:block.gilded_blackstone.fall",
BlockGildedBlackstoneHit => "minecraft:block.gilded_blackstone.hit",
@ -4536,6 +4578,10 @@ enum SoundEvent {
BlockHangingSignFall => "minecraft:block.hanging_sign.fall",
BlockHangingSignHit => "minecraft:block.hanging_sign.hit",
BlockHangingSignPlace => "minecraft:block.hanging_sign.place",
EntityHappyGhastAmbient => "minecraft:entity.happy_ghast.ambient",
EntityHappyGhastDeath => "minecraft:entity.happy_ghast.death",
EntityHappyGhastHurt => "minecraft:entity.happy_ghast.hurt",
EntityHappyGhastRiding => "minecraft:entity.happy_ghast.riding",
BlockHeavyCoreBreak => "minecraft:block.heavy_core.break",
BlockHeavyCoreFall => "minecraft:block.heavy_core.fall",
BlockHeavyCoreHit => "minecraft:block.heavy_core.hit",
@ -4567,6 +4613,10 @@ enum SoundEvent {
BlockTrialSpawnerOpenShutter => "minecraft:block.trial_spawner.open_shutter",
BlockTrialSpawnerCloseShutter => "minecraft:block.trial_spawner.close_shutter",
BlockTrialSpawnerEjectItem => "minecraft:block.trial_spawner.eject_item",
EntityHappyGhastEquip => "minecraft:entity.happy_ghast.equip",
EntityHappyGhastUnequip => "minecraft:entity.happy_ghast.unequip",
EntityHappyGhastHarnessGogglesUp => "minecraft:entity.happy_ghast.harness_goggles_up",
EntityHappyGhastHarnessGogglesDown => "minecraft:entity.happy_ghast.harness_goggles_down",
ItemHoeTill => "minecraft:item.hoe.till",
EntityHoglinAmbient => "minecraft:entity.hoglin.ambient",
EntityHoglinAngry => "minecraft:entity.hoglin.angry",
@ -5029,7 +5079,6 @@ enum SoundEvent {
BlockPowderSnowHit => "minecraft:block.powder_snow.hit",
BlockPowderSnowPlace => "minecraft:block.powder_snow.place",
BlockPowderSnowStep => "minecraft:block.powder_snow.step",
EntityPufferFishAmbient => "minecraft:entity.puffer_fish.ambient",
EntityPufferFishBlowOut => "minecraft:entity.puffer_fish.blow_out",
EntityPufferFishBlowUp => "minecraft:entity.puffer_fish.blow_up",
EntityPufferFishDeath => "minecraft:entity.puffer_fish.death",
@ -5081,7 +5130,6 @@ enum SoundEvent {
BlockSandPlace => "minecraft:block.sand.place",
BlockSandStep => "minecraft:block.sand.step",
BlockSandIdle => "minecraft:block.sand.idle",
BlockSandWind => "minecraft:block.sand.wind",
BlockScaffoldingBreak => "minecraft:block.scaffolding.break",
BlockScaffoldingFall => "minecraft:block.scaffolding.fall",
BlockScaffoldingHit => "minecraft:block.scaffolding.hit",
@ -5123,6 +5171,7 @@ enum SoundEvent {
EntitySheepHurt => "minecraft:entity.sheep.hurt",
EntitySheepShear => "minecraft:entity.sheep.shear",
EntitySheepStep => "minecraft:entity.sheep.step",
ItemShearsSnip => "minecraft:item.shears.snip",
ItemShieldBlock => "minecraft:item.shield.block",
ItemShieldBreak => "minecraft:item.shield.break",
BlockShroomlightBreak => "minecraft:block.shroomlight.break",
@ -6094,6 +6143,7 @@ enum BlockKind {
Door => "minecraft:door",
DoublePlant => "minecraft:double_plant",
DragonEgg => "minecraft:dragon_egg",
DriedGhast => "minecraft:dried_ghast",
DropExperience => "minecraft:drop_experience",
Dropper => "minecraft:dropper",
EnchantmentTable => "minecraft:enchantment_table",
@ -6232,7 +6282,6 @@ enum BlockKind {
TallGrass => "minecraft:tall_grass",
TallSeagrass => "minecraft:tall_seagrass",
Target => "minecraft:target",
Terracotta => "minecraft:terracotta",
Test => "minecraft:test",
TestInstance => "minecraft:test_instance",
TintedGlass => "minecraft:tinted_glass",

View file

@ -2902,29 +2902,6 @@ pub static PLANKS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryPlanks,
])
});
pub static PLAYS_AMBIENT_DESERT_BLOCK_SOUNDS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Block::Sand,
Block::RedSand,
Block::Terracotta,
Block::WhiteTerracotta,
Block::OrangeTerracotta,
Block::MagentaTerracotta,
Block::LightBlueTerracotta,
Block::YellowTerracotta,
Block::LimeTerracotta,
Block::PinkTerracotta,
Block::GrayTerracotta,
Block::LightGrayTerracotta,
Block::CyanTerracotta,
Block::PurpleTerracotta,
Block::BlueTerracotta,
Block::BrownTerracotta,
Block::GreenTerracotta,
Block::RedTerracotta,
Block::BlackTerracotta,
])
});
pub static POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: LazyLock<HashSet<Block>> =
LazyLock::new(|| HashSet::from_iter(vec![Block::Ice]));
pub static PORTALS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
@ -3637,6 +3614,32 @@ pub static TRAPDOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryTrapdoor,
])
});
pub static TRIGGERS_AMBIENT_DESERT_DRY_VEGETATION_BLOCK_SOUNDS: LazyLock<HashSet<Block>> =
LazyLock::new(|| {
HashSet::from_iter(vec![
Block::Sand,
Block::RedSand,
Block::Terracotta,
Block::WhiteTerracotta,
Block::OrangeTerracotta,
Block::MagentaTerracotta,
Block::LightBlueTerracotta,
Block::YellowTerracotta,
Block::LimeTerracotta,
Block::PinkTerracotta,
Block::GrayTerracotta,
Block::LightGrayTerracotta,
Block::CyanTerracotta,
Block::PurpleTerracotta,
Block::BlueTerracotta,
Block::BrownTerracotta,
Block::GreenTerracotta,
Block::RedTerracotta,
Block::BlackTerracotta,
])
});
pub static TRIGGERS_AMBIENT_DESERT_SAND_BLOCK_SOUNDS: LazyLock<HashSet<Block>> =
LazyLock::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand]));
pub static UNDERWATER_BONEMEALS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Block::Seagrass,

View file

@ -1079,6 +1079,49 @@ pub static HANGING_SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::BambooHangingSign,
])
});
pub static HAPPY_GHAST_FOOD: LazyLock<HashSet<Item>> =
LazyLock::new(|| HashSet::from_iter(vec![Item::Snowball]));
pub static HAPPY_GHAST_TEMPT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Item::Snowball,
Item::WhiteHarness,
Item::OrangeHarness,
Item::MagentaHarness,
Item::LightBlueHarness,
Item::YellowHarness,
Item::LimeHarness,
Item::PinkHarness,
Item::GrayHarness,
Item::LightGrayHarness,
Item::CyanHarness,
Item::PurpleHarness,
Item::BlueHarness,
Item::BrownHarness,
Item::GreenHarness,
Item::RedHarness,
Item::BlackHarness,
])
});
pub static HARNESSES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Item::WhiteHarness,
Item::OrangeHarness,
Item::MagentaHarness,
Item::LightBlueHarness,
Item::YellowHarness,
Item::LimeHarness,
Item::PinkHarness,
Item::GrayHarness,
Item::LightGrayHarness,
Item::CyanHarness,
Item::PurpleHarness,
Item::BlueHarness,
Item::BrownHarness,
Item::GreenHarness,
Item::RedHarness,
Item::BlackHarness,
])
});
pub static HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Item::LeatherHelmet,

View file

@ -61,9 +61,10 @@ print('Generating registries...')
import genregistries
genregistries.generate(new_version_id)
print('Generating entity metadata...')
print('Generating entity data...')
burger_entities_data = new_burger_data[0]['entities']
lib.code.entity.generate_entity_metadata(burger_entities_data, new_mappings)
lib.code.entity.generate_entity_dimensions(burger_entities_data)
print('Generating item components...')
lib.code.item_components.generate(new_version_id)