mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/block/environment.rs')
| -rw-r--r-- | src/block/environment.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/block/environment.rs b/src/block/environment.rs index 168bdfd..fd07bc3 100644 --- a/src/block/environment.rs +++ b/src/block/environment.rs @@ -11,15 +11,18 @@ macro_rules! register_env { $($field => EnvironmentBlock::new($size, true, &[]);)* ); - make_simple!(EnvironmentBlock, |_, _, name, _, _, _| { + make_simple!(EnvironmentBlock, |_, name, _, _, _| { let mut rand = StdRand::seed(ClockSeed::default().next_u64()); match name { $($field => { #[allow(clippy::reversed_empty_ranges)] - if $variations == 1 { Some(ImageHolder::Borrow(load("environment", $field).unwrap())) } - else if $variations == 0 { return None } - else { Some(ImageHolder::Borrow(load("environment", &format!("{}{}", $field, rand.next_range(1usize..$variations))).unwrap())) } - },)* + match $variations { + 2..=6 => load(&format!("{}{}", $field, rand.next_range(1usize..$variations))), + 1 => load($field), + 0 => ImageHolder::from(RgbaImage::new($size * 32, $size * 32)), + _ => unreachable!(), + } + },)* _ => { unreachable!() } } }); |