Added new cavern sprites to caverns

This commit is contained in:
Joshua Barretto 2021-07-20 19:47:30 +01:00
parent 7768a22f7f
commit 353ccc5bce
3 changed files with 41 additions and 25 deletions

View File

@ -190,7 +190,11 @@ impl Block {
| SpriteKind::Orb => Some(16), | SpriteKind::Orb => Some(16),
SpriteKind::Velorite SpriteKind::Velorite
| SpriteKind::VeloriteFrag | SpriteKind::VeloriteFrag
| SpriteKind::Cauldron | SpriteKind::CavernGrassBlueShort
| SpriteKind::CavernGrassBlueMedium
| SpriteKind::CavernGrassBlueLong
| SpriteKind::CavernLillypadBlue
| SpriteKind::CavernMycelBlue
| SpriteKind::CeilingMushroom => Some(6), | SpriteKind::CeilingMushroom => Some(6),
SpriteKind::CaveMushroom SpriteKind::CaveMushroom
| SpriteKind::CookingPot | SpriteKind::CookingPot

View File

@ -267,7 +267,7 @@ impl SpriteKind {
| SpriteKind::Tin | SpriteKind::Tin
| SpriteKind::Silver | SpriteKind::Silver
| SpriteKind::Gold => 0.6, | SpriteKind::Gold => 0.6,
SpriteKind::EnsnaringVines => 0.1, SpriteKind::EnsnaringVines | SpriteKind::CavernLillypadBlue => 0.1,
_ => return None, _ => return None,
}) })
} }

View File

@ -743,9 +743,9 @@ pub fn apply_caverns_to<R: Rng>(canvas: &mut Canvas, dynamic_rng: &mut R) {
{ {
use SpriteKind::*; use SpriteKind::*;
let sprites = if dynamic_rng.gen_bool(0.1) { let sprites = if dynamic_rng.gen_bool(0.1) {
&[Beehive, Lantern] &[Beehive, Lantern] as &[_]
} else { } else {
&[Orb, Liana] &[Orb, CavernMycelBlue, CavernMycelBlue] as &[_]
}; };
return Some(Block::air(*sprites.choose(dynamic_rng).unwrap())); return Some(Block::air(*sprites.choose(dynamic_rng).unwrap()));
} }
@ -860,42 +860,54 @@ pub fn apply_caverns_to<R: Rng>(canvas: &mut Canvas, dynamic_rng: &mut R) {
} else if let Some(mushroom_block) = get_mushroom(wpos, dynamic_rng) { } else if let Some(mushroom_block) = get_mushroom(wpos, dynamic_rng) {
mushroom_block mushroom_block
} else if z > cavern_top - moss as i32 { } else if z > cavern_top - moss as i32 {
let kind = if dynamic_rng.gen_bool(0.05 / (1.0 + ((cavern_top - z).max(0) as f64).mul(0.1))) { let kind = if dynamic_rng
.gen_bool(0.05 / (1.0 + ((cavern_top - z).max(0) as f64).mul(0.1)))
{
BlockKind::GlowingMushroom BlockKind::GlowingMushroom
} else { } else {
BlockKind::Leaves BlockKind::Leaves
}; };
Block::new(kind, Rgb::new(50, 120, 160)) Block::new(kind, Rgb::new(50, 120, 160))
} else if z < water_level { } else if z < water_level {
Block::water(SpriteKind::Empty) Block::water(SpriteKind::Empty).with_sprite(
.with_sprite(if z == cavern_bottom + floor && dynamic_rng.gen_bool(0.01) { if z == cavern_bottom + floor && dynamic_rng.gen_bool(0.01) {
SpriteKind::CaveMushroom SpriteKind::CaveMushroom
} else { } else {
SpriteKind::Empty SpriteKind::Empty
}) },
} else if z == cavern_bottom + floor && dynamic_rng.gen_bool(0.025) && on_ground { )
} else if z == water_level && dynamic_rng.gen_bool(0.01) && !on_ground {
Block::air(SpriteKind::CavernLillypadBlue)
} else if z == cavern_bottom + floor && dynamic_rng.gen_bool(0.1) && on_ground {
Block::air( Block::air(
*[ *if dynamic_rng.gen_bool(0.9) {
CrystalLow, &[
CaveMushroom, CavernGrassBlueShort,
LeafyPlant, CavernGrassBlueMedium,
Fern, CavernGrassBlueLong,
Reed, ] as &[_]
Pyrebloom, } else {
Moonbell, &[
Welwitch, CaveMushroom,
LargeGrass, LeafyPlant,
LongGrass, Fern,
MediumGrass, Reed,
ShortGrass, Pyrebloom,
GrassBlue, Moonbell,
] Welwitch,
LargeGrass,
LongGrass,
MediumGrass,
ShortGrass,
GrassBlue,
] as &[_]
}
.choose(dynamic_rng) .choose(dynamic_rng)
.unwrap(), .unwrap(),
) )
} else if z == cavern_top - 1 && dynamic_rng.gen_bool(0.001) { } else if z == cavern_top - 1 && dynamic_rng.gen_bool(0.001) {
Block::air( Block::air(
*[CrystalHigh, CeilingMushroom, Orb] *[CrystalHigh, CeilingMushroom, Orb, CavernMycelBlue]
.choose(dynamic_rng) .choose(dynamic_rng)
.unwrap(), .unwrap(),
) )