diff --git a/assets/common/items/coconut.ron b/assets/common/items/coconut.ron new file mode 100644 index 0000000000..f0cd3398c8 --- /dev/null +++ b/assets/common/items/coconut.ron @@ -0,0 +1,13 @@ +Item( + name: "Mushroom", + description: "Reliable Source of water and fat. + +Restores 20 Health.", + kind: Consumable( + kind: Coconut, + effect: Health(( + amount: 20, + cause: Item, + )), + ), +) diff --git a/assets/voxygen/element/icons/item_coconut.png b/assets/voxygen/element/icons/item_coconut.png new file mode 100644 index 0000000000..0bf2e00a2d Binary files /dev/null and b/assets/voxygen/element/icons/item_coconut.png differ diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 58dde6e4f9..a2c33550b6 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -272,9 +272,13 @@ (0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.0, ), // Consumables - Consumable(Apple): VoxTrans( + Consumable(Apple): + VoxTrans( "element.icons.item_apple", (0.0, 0.0, 0.0), (-90.0, 90.0, 0.0), 1.0, + ), + Consumable(Coconut): Png( + "element.icons.item_coconut", ), Consumable(PotionMinor): VoxTrans( "voxel.object.potion_red", diff --git a/assets/voxygen/voxel/sprite/cabbage/cabbage-0.vox b/assets/voxygen/voxel/sprite/cabbage/cabbage-0.vox new file mode 100644 index 0000000000..19e42b5370 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cabbage/cabbage-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cabbage/cabbage-1.vox b/assets/voxygen/voxel/sprite/cabbage/cabbage-1.vox new file mode 100644 index 0000000000..c11ae3f216 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cabbage/cabbage-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cabbage/cabbage-2.vox b/assets/voxygen/voxel/sprite/cabbage/cabbage-2.vox new file mode 100644 index 0000000000..0b93303414 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cabbage/cabbage-2.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-0.vox b/assets/voxygen/voxel/sprite/corn/corn-0.vox new file mode 100644 index 0000000000..f29a013de1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-0.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-1.vox b/assets/voxygen/voxel/sprite/corn/corn-1.vox new file mode 100644 index 0000000000..8fee55518a Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-1.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-2.vox b/assets/voxygen/voxel/sprite/corn/corn-2.vox new file mode 100644 index 0000000000..9cb07fe6f2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-2.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-3.vox b/assets/voxygen/voxel/sprite/corn/corn-3.vox new file mode 100644 index 0000000000..0b1b874c50 Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-3.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-4.vox b/assets/voxygen/voxel/sprite/corn/corn-4.vox new file mode 100644 index 0000000000..8addb37a7c Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-4.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-5.vox b/assets/voxygen/voxel/sprite/corn/corn-5.vox new file mode 100644 index 0000000000..7d443c901a Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-5.vox differ diff --git a/assets/voxygen/voxel/sprite/fruit/coconut.vox b/assets/voxygen/voxel/sprite/fruit/coconut.vox new file mode 100644 index 0000000000..074283196f Binary files /dev/null and b/assets/voxygen/voxel/sprite/fruit/coconut.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-0.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-0.vox new file mode 100644 index 0000000000..08dcd69175 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-0.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-1.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-1.vox new file mode 100644 index 0000000000..9284680a4b Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-1.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-2.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-2.vox new file mode 100644 index 0000000000..91567968d9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-2.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-3.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-3.vox new file mode 100644 index 0000000000..99a9856373 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-3.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-4.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-4.vox new file mode 100644 index 0000000000..6f88758236 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-4.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-5.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-5.vox new file mode 100644 index 0000000000..66d7afb0d6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-5.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-6.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-6.vox new file mode 100644 index 0000000000..df1b70915d Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-6.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-7.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-7.vox new file mode 100644 index 0000000000..d16dad9676 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-7.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-8.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-8.vox new file mode 100644 index 0000000000..71f4293965 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-8.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-9.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-9.vox new file mode 100644 index 0000000000..c50f4996e7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-9.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-0.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-0.vox new file mode 100644 index 0000000000..38c6be1352 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-0.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-1.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-1.vox new file mode 100644 index 0000000000..a0e5f16b85 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-1.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-2.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-2.vox new file mode 100644 index 0000000000..fdf31d07b1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-2.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-3.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-3.vox new file mode 100644 index 0000000000..823c539e54 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-3.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-4.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-4.vox new file mode 100644 index 0000000000..9c6ec09f6f Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-4.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-5.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-5.vox new file mode 100644 index 0000000000..02be0d73a2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-5.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-6.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-6.vox new file mode 100644 index 0000000000..45b2c8ad2e Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-6.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-7.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-7.vox new file mode 100644 index 0000000000..f6803bbf04 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-7.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-8.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-8.vox new file mode 100644 index 0000000000..0de0c56d0c Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-8.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-9.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-9.vox new file mode 100644 index 0000000000..38a79fc948 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-9.vox differ diff --git a/assets/world/tree/desert_palm/1.vox b/assets/world/tree/desert_palm/1.vox index 319c8d8996..fb2e9e6d6d 100644 Binary files a/assets/world/tree/desert_palm/1.vox and b/assets/world/tree/desert_palm/1.vox differ diff --git a/assets/world/tree/desert_palm/10.vox b/assets/world/tree/desert_palm/10.vox index f4e55e6cbe..74305f1983 100644 Binary files a/assets/world/tree/desert_palm/10.vox and b/assets/world/tree/desert_palm/10.vox differ diff --git a/assets/world/tree/desert_palm/2.vox b/assets/world/tree/desert_palm/2.vox index a14bf9e415..be20a86c22 100644 Binary files a/assets/world/tree/desert_palm/2.vox and b/assets/world/tree/desert_palm/2.vox differ diff --git a/assets/world/tree/desert_palm/3.vox b/assets/world/tree/desert_palm/3.vox index 461544dcc3..3b9d944317 100644 Binary files a/assets/world/tree/desert_palm/3.vox and b/assets/world/tree/desert_palm/3.vox differ diff --git a/assets/world/tree/desert_palm/4.vox b/assets/world/tree/desert_palm/4.vox index cc47d7933c..cebb78b7b3 100644 Binary files a/assets/world/tree/desert_palm/4.vox and b/assets/world/tree/desert_palm/4.vox differ diff --git a/assets/world/tree/desert_palm/5.vox b/assets/world/tree/desert_palm/5.vox index 0824298423..160818c837 100644 Binary files a/assets/world/tree/desert_palm/5.vox and b/assets/world/tree/desert_palm/5.vox differ diff --git a/assets/world/tree/desert_palm/6.vox b/assets/world/tree/desert_palm/6.vox index 6381a1ac6c..fb6c9b996b 100644 Binary files a/assets/world/tree/desert_palm/6.vox and b/assets/world/tree/desert_palm/6.vox differ diff --git a/assets/world/tree/desert_palm/7.vox b/assets/world/tree/desert_palm/7.vox index c7dc6d9f02..69a626ec11 100644 Binary files a/assets/world/tree/desert_palm/7.vox and b/assets/world/tree/desert_palm/7.vox differ diff --git a/assets/world/tree/desert_palm/8.vox b/assets/world/tree/desert_palm/8.vox index c4eaa92fea..3e369c4556 100644 Binary files a/assets/world/tree/desert_palm/8.vox and b/assets/world/tree/desert_palm/8.vox differ diff --git a/assets/world/tree/desert_palm/9.vox b/assets/world/tree/desert_palm/9.vox index c58ccff72c..d7e264160b 100644 Binary files a/assets/world/tree/desert_palm/9.vox and b/assets/world/tree/desert_palm/9.vox differ diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs index 42dcdd6a01..3e818a0393 100644 --- a/common/src/comp/inventory/item/mod.rs +++ b/common/src/comp/inventory/item/mod.rs @@ -16,6 +16,7 @@ use std::{fs::File, io::BufReader}; #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum Consumable { + Coconut, Apple, Cheese, Potion, @@ -126,6 +127,7 @@ impl Item { Some(assets::load_expect_cloned("common.items.grasses.medium")) }, BlockKind::ShortGrass => Some(assets::load_expect_cloned("common.items.grasses.short")), + BlockKind::Coconut => Some(assets::load_expect_cloned("common.items.coconut")), BlockKind::Chest => Some(assets::load_expect_cloned( [ "common.items.apple", diff --git a/common/src/terrain/block.rs b/common/src/terrain/block.rs index fb2548f15c..ed68abcc34 100644 --- a/common/src/terrain/block.rs +++ b/common/src/terrain/block.rs @@ -41,6 +41,11 @@ pub enum BlockKind { DeadBush, Blueberry, Ember, + Corn, + WheatYellow, + WheatGreen, + Cabbage, + Coconut, } impl BlockKind { @@ -83,6 +88,11 @@ impl BlockKind { BlockKind::DeadBush => true, BlockKind::Blueberry => true, BlockKind::Ember => true, + BlockKind::Corn => true, + BlockKind::WheatYellow => true, + BlockKind::WheatGreen => true, + BlockKind::Cabbage => true, + BlockKind::Coconut => true, _ => false, } } @@ -127,6 +137,11 @@ impl BlockKind { BlockKind::DeadBush => false, BlockKind::Blueberry => false, BlockKind::Ember => false, + BlockKind::Corn => false, + BlockKind::WheatYellow => false, + BlockKind::WheatGreen => false, + BlockKind::Cabbage => false, + BlockKind::Coconut => false, _ => true, } } @@ -163,6 +178,11 @@ impl BlockKind { BlockKind::DeadBush => false, BlockKind::Blueberry => false, BlockKind::Ember => false, + BlockKind::Corn => false, + BlockKind::WheatYellow => false, + BlockKind::WheatGreen => false, + BlockKind::Cabbage => false, + BlockKind::Coconut => false, _ => true, } } @@ -185,6 +205,7 @@ impl BlockKind { BlockKind::VeloriteFrag => true, BlockKind::Chest => true, BlockKind::Pumpkin => true, + BlockKind::Coconut => true, _ => false, } } diff --git a/common/src/terrain/structure.rs b/common/src/terrain/structure.rs index 06637ecdfe..8bdf71586e 100644 --- a/common/src/terrain/structure.rs +++ b/common/src/terrain/structure.rs @@ -20,6 +20,7 @@ pub enum StructureBlock { Water, GreenSludge, Fruit, + Coconut, Chest, Hollow, Liana, @@ -114,6 +115,7 @@ impl Asset for Structure { 7 => StructureBlock::Fruit, 9 => StructureBlock::Liana, 10 => StructureBlock::Chest, + 11 => StructureBlock::Coconut, 13 => StructureBlock::PalmLeavesOuter, 14 => StructureBlock::PalmLeavesInner, 15 => StructureBlock::Hollow, diff --git a/voxygen/src/scene/terrain.rs b/voxygen/src/scene/terrain.rs index a2905f8c5a..2652fad6a6 100644 --- a/voxygen/src/scene/terrain.rs +++ b/voxygen/src/scene/terrain.rs @@ -174,7 +174,26 @@ fn sprite_config_for(kind: BlockKind) -> Option { variations: 1, wind_sway: 0.8, }), - + BlockKind::Corn => Some(SpriteConfig { + variations: 6, + wind_sway: 0.4, + }), + BlockKind::WheatYellow => Some(SpriteConfig { + variations: 10, + wind_sway: 0.4, + }), + BlockKind::WheatGreen => Some(SpriteConfig { + variations: 10, + wind_sway: 0.4, + }), + BlockKind::Cabbage => Some(SpriteConfig { + variations: 3, + wind_sway: 0.0, + }), + BlockKind::Coconut => Some(SpriteConfig { + variations: 1, + wind_sway: 0.0, + }), _ => None, } } @@ -1075,6 +1094,221 @@ impl Terrain { (BlockKind::Ember, 0), make_model("voxygen.voxel.sprite.ember.1", Vec3::new(-7.0, -7.0, -2.9)), ), + // Corn + ( + (BlockKind::Corn, 0), + make_model( + "voxygen.voxel.sprite.corn.corn-0", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::Corn, 1), + make_model( + "voxygen.voxel.sprite.corn.corn-1", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::Corn, 2), + make_model( + "voxygen.voxel.sprite.corn.corn-2", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::Corn, 3), + make_model( + "voxygen.voxel.sprite.corn.corn-3", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::Corn, 4), + make_model( + "voxygen.voxel.sprite.corn.corn-4", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::Corn, 5), + make_model( + "voxygen.voxel.sprite.corn.corn-5", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + // Yellow Wheat + ( + (BlockKind::WheatYellow, 0), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-0", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatYellow, 1), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-1", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatYellow, 2), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-2", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatYellow, 3), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-3", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatYellow, 4), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-4", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatYellow, 5), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-5", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatYellow, 6), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-6", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatYellow, 7), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-7", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatYellow, 8), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-8", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatYellow, 9), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-9", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + // Green Wheat + ( + (BlockKind::WheatGreen, 0), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-0", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 1), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-1", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 2), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-2", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 3), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-3", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 4), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-4", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 5), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-5", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 6), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-6", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 7), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-7", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 8), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-8", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 9), + make_model( + "voxygen.voxel.sprite.wheat_yellow.wheat-9", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + // Cabbage + ( + (BlockKind::WheatGreen, 0), + make_model( + "voxygen.voxel.sprite.cabbage.cabbage-0", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 1), + make_model( + "voxygen.voxel.sprite.cabbage.cabbage-1", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + ( + (BlockKind::WheatGreen, 2), + make_model( + "voxygen.voxel.sprite.cabbage.cabbage-2", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), + // Coconut + ( + (BlockKind::WheatGreen, 0), + make_model( + "voxygen.voxel.sprite.fruit.coconut", + Vec3::new(-6.0, -6.0, 0.0), + ), + ), ] .into_iter() .collect(), diff --git a/world/src/block/mod.rs b/world/src/block/mod.rs index d10478e5f7..c52953dd02 100644 --- a/world/src/block/mod.rs +++ b/world/src/block/mod.rs @@ -610,6 +610,11 @@ pub fn block_from_structure( } else { Block::new(BlockKind::Apple, Rgb::new(1, 1, 1)) }), + StructureBlock::Coconut => Some(if field.get(pos + structure_pos) % 3 > 0 { + Block::empty() + } else { + Block::new(BlockKind::Coconut, Rgb::new(1, 1, 1)) + }), StructureBlock::Chest => Some(if structure_seed % 10 < 7 { Block::empty() } else {