pub mod weapon; pub mod tool; pub mod armor; pub mod shield; use std::io::{Read, Seek}; use crate::{PSOPacketData, PacketParseError}; #[derive(Debug, Copy, Clone)] pub enum Item { Weapon(weapon::Weapon), Armor(armor::Armor), Shield(shield::Shield), //Unit(Unit), //Mag(Mag), Tool(tool::Tool), } impl Item { fn from_bytes(cursor: &mut R) -> Result { unimplemented!() } pub fn as_bytes(&self) -> [u8; 16] { match self { Item::Weapon(wep) => wep.as_bytes(), Item::Armor(armor) => armor.as_bytes(), Item::Shield(shield) => shield.as_bytes(), Item::Tool(tool) => tool.as_bytes(), } } pub fn is_stackable(&self) -> bool { match self { Item::Tool(_) => true, _ => false, } } }