mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 14:26:04 +00:00
* start updating to 1.21.4 * fix block codegen and stop using block data from burger * rename packet related modules and structs to be simpler * ItemSlot -> ItemStack for more consistency with mojmap * .get() -> .into_packet() * simplify declare_state_packets by removing packet ids * rename read_from and write_into to azalea_read and azalea_write * rename McBufReadable and McBufWritable to AzaleaRead and AzaleaWrite * McBuf -> AzBuf * remove most uses of into_variant * update codegen and use resourcelocation names for packets * implement #[limit(i)] attribute for AzBuf derive macro * fixes for 1.21.4 * fix examples * update some physics code and fix ChatType * remove unused imports in codegen * re-add some things to migrate.py and update +mc version numbers automatically * downgrade to 1.21.3 lol
51 lines
1.4 KiB
Rust
Executable file
51 lines
1.4 KiB
Rust
Executable file
use std::io::Cursor;
|
|
use std::io::Write;
|
|
|
|
use azalea_buf::AzBuf;
|
|
use azalea_buf::AzaleaRead;
|
|
use azalea_core::position::BlockPos;
|
|
use azalea_core::resource_location::ResourceLocation;
|
|
use azalea_protocol_macros::ServerboundGamePacket;
|
|
|
|
use crate::packets::AzaleaWrite;
|
|
use crate::packets::BufReadError;
|
|
|
|
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
|
|
pub struct ServerboundSetJigsawBlock {
|
|
pub pos: BlockPos,
|
|
pub name: ResourceLocation,
|
|
pub target: ResourceLocation,
|
|
pub pool: ResourceLocation,
|
|
pub final_state: String,
|
|
pub joint: String,
|
|
#[var]
|
|
pub selection_priority: i32,
|
|
#[var]
|
|
pub placement_priority: i32,
|
|
}
|
|
|
|
pub enum JointType {
|
|
Rollable,
|
|
Aligned,
|
|
}
|
|
|
|
impl AzaleaRead for JointType {
|
|
fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> {
|
|
let name = String::azalea_read(buf)?;
|
|
match name.as_str() {
|
|
"rollable" => Ok(JointType::Rollable),
|
|
"aligned" => Ok(JointType::Aligned),
|
|
_ => Err(BufReadError::UnexpectedStringEnumVariant { id: name }),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl AzaleaWrite for JointType {
|
|
fn azalea_write(&self, buf: &mut impl Write) -> Result<(), std::io::Error> {
|
|
match self {
|
|
JointType::Rollable => "rollable".to_string().azalea_write(buf)?,
|
|
JointType::Aligned => "aligned".to_string().azalea_write(buf)?,
|
|
};
|
|
Ok(())
|
|
}
|
|
}
|