might help to include unit.rs
This commit is contained in:
		
							parent
							
								
									c65994fb7b
								
							
						
					
					
						commit
						c0479f5476
					
				
							
								
								
									
										60
									
								
								src/entity/item/unit.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								src/entity/item/unit.rs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | ||||
| use std::convert::{TryFrom, Into}; | ||||
| 
 | ||||
| pub enum UnitTypeError { | ||||
|     UnknownUnit(String) | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #[derive(Debug, Copy, Clone, PartialEq)] | ||||
| pub enum UnitType { | ||||
|     None | ||||
| } | ||||
| 
 | ||||
| impl UnitType { | ||||
|     pub fn value(&self) -> [u8; 3] { | ||||
|         match self { | ||||
|             UnitType::None => [0; 3] | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #[derive(Debug, Copy, Clone, PartialEq)] | ||||
| pub enum UnitModifier { | ||||
|     PlusPlus, | ||||
|     Plus, | ||||
|     Minus, | ||||
|     MinusMinus, | ||||
| } | ||||
| 
 | ||||
| #[derive(Debug, Copy, Clone, PartialEq)] | ||||
| pub struct Unit { | ||||
|     pub unit: UnitType, | ||||
|     pub modifier: UnitModifier, | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| impl Unit { | ||||
|     pub fn as_bytes(&self) -> [u8; 16] { | ||||
|         let mut result = [0; 16]; | ||||
|         result[0..3].copy_from_slice(&self.unit.value()); | ||||
| 
 | ||||
|         match self.modifier { | ||||
|             UnitModifier::PlusPlus => { | ||||
|                 result[7] = 3; | ||||
|             }, | ||||
|             UnitModifier::Plus => { | ||||
|                 result[7] = 1; | ||||
|             }, | ||||
|             UnitModifier::Minus => { | ||||
|                 result[7] = 0xFF; | ||||
|                 result[8] = 0xFF; | ||||
|             }, | ||||
|             UnitModifier::MinusMinus => { | ||||
|                 result[7] = 0xFE; | ||||
|                 result[8] = 0xFF; | ||||
|             }, | ||||
|         } | ||||
| 
 | ||||
|         result | ||||
|     } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user