Added rules for Water
This commit is contained in:
		
							parent
							
								
									6c423f69c2
								
							
						
					
					
						commit
						45bf018375
					
				|  | @ -40,10 +40,16 @@ pub struct FallingSandRules { | ||||||
| 
 | 
 | ||||||
| impl Default for FallingSandRules { | impl Default for FallingSandRules { | ||||||
|     fn default() -> Self { |     fn default() -> Self { | ||||||
|         // Pre-computed air-sand rules
 |         // Pre-computed rules
 | ||||||
|  |         // I should really start building a tool for this instead of manually calculating it huh
 | ||||||
|         let rule_config = RuleConfig { |         let rule_config = RuleConfig { | ||||||
|             element_groups: vec![vec![Element::Air], vec![Element::Sand]], |             element_groups: vec![ | ||||||
|  |                 vec![Element::Air], | ||||||
|  |                 vec![Element::Sand], | ||||||
|  |                 vec![Element::Water], | ||||||
|  |             ], | ||||||
|             rules: vec![ |             rules: vec![ | ||||||
|  |                 // Air/Sand
 | ||||||
|                 ([0, 1, 0, 0], [0, 0, 0, 1]), |                 ([0, 1, 0, 0], [0, 0, 0, 1]), | ||||||
|                 ([0, 1, 0, 1], [0, 0, 1, 1]), |                 ([0, 1, 0, 1], [0, 0, 1, 1]), | ||||||
|                 ([0, 1, 1, 0], [0, 0, 1, 1]), |                 ([0, 1, 1, 0], [0, 0, 1, 1]), | ||||||
|  | @ -53,6 +59,62 @@ impl Default for FallingSandRules { | ||||||
|                 ([1, 1, 0, 0], [0, 0, 1, 1]), |                 ([1, 1, 0, 0], [0, 0, 1, 1]), | ||||||
|                 ([1, 1, 0, 1], [0, 1, 1, 1]), |                 ([1, 1, 0, 1], [0, 1, 1, 1]), | ||||||
|                 ([1, 1, 1, 0], [1, 0, 1, 1]), |                 ([1, 1, 1, 0], [1, 0, 1, 1]), | ||||||
|  |                 // Air/Water
 | ||||||
|  |                 ([0, 2, 0, 0], [0, 0, 0, 2]), | ||||||
|  |                 ([0, 2, 0, 2], [0, 0, 2, 2]), | ||||||
|  |                 ([0, 2, 2, 0], [0, 0, 2, 2]), | ||||||
|  |                 ([2, 0, 0, 0], [0, 0, 2, 0]), | ||||||
|  |                 ([2, 0, 0, 2], [0, 0, 2, 2]), | ||||||
|  |                 ([2, 0, 2, 0], [0, 0, 2, 2]), | ||||||
|  |                 ([2, 2, 0, 0], [0, 0, 2, 2]), | ||||||
|  |                 ([2, 2, 0, 2], [0, 2, 2, 2]), | ||||||
|  |                 ([2, 2, 2, 0], [2, 0, 2, 2]), | ||||||
|  |                 ([0, 2, 2, 2], [2, 0, 2, 2]), | ||||||
|  |                 ([2, 0, 2, 2], [0, 2, 2, 2]), | ||||||
|  |                 // Air/Sand/Water
 | ||||||
|  |                 ([0, 1, 0, 2], [0, 0, 2, 1]), | ||||||
|  |                 ([0, 1, 1, 2], [0, 2, 1, 1]), | ||||||
|  |                 ([0, 1, 2, 0], [0, 0, 2, 1]), | ||||||
|  |                 ([0, 1, 2, 1], [2, 0, 1, 1]), | ||||||
|  |                 ([0, 1, 2, 2], [0, 2, 2, 1]), | ||||||
|  |                 ([0, 2, 0, 1], [0, 0, 2, 1]), | ||||||
|  |                 ([0, 2, 1, 0], [0, 0, 1, 2]), | ||||||
|  |                 ([0, 2, 1, 1], [2, 0, 1, 1]), | ||||||
|  |                 ([0, 2, 1, 2], [2, 0, 1, 2]), | ||||||
|  |                 ([0, 2, 2, 1], [2, 0, 2, 1]), | ||||||
|  |                 ([1, 0, 0, 2], [0, 0, 1, 2]), | ||||||
|  |                 ([1, 0, 1, 2], [0, 2, 1, 1]), | ||||||
|  |                 ([1, 0, 2, 0], [0, 0, 1, 2]), | ||||||
|  |                 ([1, 0, 2, 1], [2, 0, 1, 1]), | ||||||
|  |                 ([1, 0, 2, 2], [2, 0, 1, 2]), | ||||||
|  |                 ([1, 1, 0, 2], [0, 2, 1, 1]), | ||||||
|  |                 ([1, 1, 1, 2], [1, 2, 1, 1]), | ||||||
|  |                 ([1, 1, 2, 0], [2, 0, 1, 1]), | ||||||
|  |                 ([1, 1, 2, 1], [2, 1, 1, 1]), | ||||||
|  |                 ([1, 1, 2, 2], [2, 2, 1, 1]), | ||||||
|  |                 ([1, 2, 0, 0], [0, 0, 1, 2]), | ||||||
|  |                 ([1, 2, 0, 1], [0, 2, 1, 1]), | ||||||
|  |                 ([1, 2, 0, 2], [0, 2, 1, 2]), | ||||||
|  |                 ([1, 2, 1, 0], [0, 2, 1, 1]), | ||||||
|  |                 ([1, 2, 1, 2], [2, 2, 1, 1]), | ||||||
|  |                 ([1, 2, 2, 0], [0, 2, 1, 2]), | ||||||
|  |                 ([1, 2, 2, 1], [2, 2, 1, 1]), | ||||||
|  |                 ([1, 2, 2, 2], [2, 2, 1, 2]), | ||||||
|  |                 ([2, 0, 0, 1], [0, 0, 2, 1]), | ||||||
|  |                 ([2, 0, 1, 0], [0, 0, 1, 2]), | ||||||
|  |                 ([2, 0, 1, 1], [0, 2, 1, 1]), | ||||||
|  |                 ([2, 0, 1, 2], [0, 2, 1, 2]), | ||||||
|  |                 ([2, 0, 2, 1], [0, 2, 2, 1]), | ||||||
|  |                 ([2, 1, 0, 0], [0, 0, 2, 1]), | ||||||
|  |                 ([2, 1, 0, 1], [2, 0, 1, 1]), | ||||||
|  |                 ([2, 1, 0, 2], [2, 0, 2, 1]), | ||||||
|  |                 ([2, 1, 1, 0], [2, 0, 1, 1]), | ||||||
|  |                 ([2, 1, 1, 2], [2, 2, 1, 1]), | ||||||
|  |                 ([2, 1, 2, 0], [2, 0, 2, 1]), | ||||||
|  |                 ([2, 1, 2, 1], [2, 2, 1, 1]), | ||||||
|  |                 ([2, 1, 2, 2], [2, 2, 2, 1]), | ||||||
|  |                 ([2, 2, 0, 1], [0, 2, 2, 1]), | ||||||
|  |                 ([2, 2, 1, 0], [2, 0, 1, 2]), | ||||||
|             ], |             ], | ||||||
|         }; |         }; | ||||||
|         let rules = rule_config.compile(); |         let rules = rule_config.compile(); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue