diff --git a/assets/voxygen/voxel/sprite/ember/1.vox b/assets/voxygen/voxel/sprite/ember/1.vox index f7b6f438ee..6cfe99c43b 100644 --- a/assets/voxygen/voxel/sprite/ember/1.vox +++ b/assets/voxygen/voxel/sprite/ember/1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4fb63355560eb8f6d4661f8e3eb41ea9a5b3ede8628a84c3d36d5c1063e7154c -size 3124 +oid sha256:3b351ca82f01327869a46824260a9fa40c78ed99079b13aec287f42c85693d78 +size 2548 diff --git a/assets/voxygen/voxel/sprite_manifest.ron b/assets/voxygen/voxel/sprite_manifest.ron index 6abd0b08e3..3b343f5e2b 100644 --- a/assets/voxygen/voxel/sprite_manifest.ron +++ b/assets/voxygen/voxel/sprite_manifest.ron @@ -1341,11 +1341,11 @@ Ember: Some(( variations: [ ( model: "voxygen.voxel.sprite.ember.1", - offset: (-7.0, -7.0, -2.9), + offset: (-5.5, -5.5, -2.9), lod_axes: (1.0, 1.0, 0.0), ), ], - wind_sway: 0.8, + wind_sway: 0.0, )), // Smoke dummy Smoke: Some(( diff --git a/assets/world/features.ron b/assets/world/features.ron index 2c4ed7198b..25a5005a61 100644 --- a/assets/world/features.ron +++ b/assets/world/features.ron @@ -9,6 +9,7 @@ scatter: true, paths: true, spots: true, - site2: false, + site2_towns: true, + site2_giant_trees: false, wildlife_density: 1.0, ) diff --git a/server/src/lib.rs b/server/src/lib.rs index 94a552b5c0..e971517017 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -403,10 +403,13 @@ impl Server { Some(t) => t.center, None => { let center_chunk = world.sim().map_size_lg().chunks().map(i32::from) / 2; + use world::civ::SiteKind; world .civs() .sites() - .filter(|site| matches!(site.kind, world::civ::SiteKind::Settlement)) + .filter(|site| { + matches!(site.kind, SiteKind::Settlement | SiteKind::Refactor) + }) .map(|site| site.center) .min_by_key(|site_pos| site_pos.distance_squared(center_chunk)) .unwrap_or(center_chunk) diff --git a/world/src/civ/mod.rs b/world/src/civ/mod.rs index f69026743b..54f2b2b2d8 100644 --- a/world/src/civ/mod.rs +++ b/world/src/civ/mod.rs @@ -101,10 +101,9 @@ impl Civs { for _ in 0..initial_civ_count * 3 { attempt(5, || { let (kind, size) = match ctx.rng.gen_range(0..64) { - 0..=4 => (SiteKind::Castle, 3), - 5..=28 if index.features().site2 => (SiteKind::Refactor, 6), - 29..=31 => { - if index.features().site2 { + 0..=5 => (SiteKind::Castle, 3), + 28..=31 => { + if index.features().site2_giant_trees { (SiteKind::GiantTree, 4) } else { (SiteKind::Tree, 4) @@ -449,7 +448,7 @@ impl Civs { } fn birth_civ(&mut self, ctx: &mut GenCtx) -> Option> { - let kind = SiteKind::Settlement; + let kind = SiteKind::Refactor; let site = attempt(5, || { let loc = find_site_loc(ctx, None, 1, kind)?; Some(self.establish_site(ctx, loc, |place| Site { @@ -1131,7 +1130,7 @@ impl SiteKind { // FIXME: Provide specific values for each individual SiteKind match self { SiteKind::Dungeon => 4, - _ => 2, // This is just an arbitrary value + _ => 8, // This is just an arbitrary value } } } diff --git a/world/src/config.rs b/world/src/config.rs index c7faf7c2ce..fddc417e04 100644 --- a/world/src/config.rs +++ b/world/src/config.rs @@ -86,7 +86,8 @@ pub struct Features { pub scatter: bool, pub paths: bool, pub spots: bool, - pub site2: bool, + pub site2_towns: bool, + pub site2_giant_trees: bool, // 1.0 is the default wildlife density pub wildlife_density: f32, } diff --git a/world/src/site2/mod.rs b/world/src/site2/mod.rs index dda829e13c..62cbaf831b 100644 --- a/world/src/site2/mod.rs +++ b/world/src/site2/mod.rs @@ -792,7 +792,7 @@ impl Site { let alt = canvas.col(wpos2d).map_or(0, |col| col.alt as i32); let sub_surface_color = canvas .col(wpos2d) - .map_or(vek::Rgb::zero(), |col| col.sub_surface_color); + .map_or(Rgb::zero(), |col| col.sub_surface_color * 0.5); let mut underground = true; for z in -8..6 { canvas.map(Vec3::new(wpos2d.x, wpos2d.y, alt + z), |b| { @@ -867,6 +867,9 @@ impl Site { if min_dist.is_some() { let alt = /*avg_hard_alt.map(|(sum, weight)| sum / weight).unwrap_or_else(||*/ canvas.col(wpos2d).map_or(0.0, |col| col.alt)/*)*/ as i32; let mut underground = true; + let sub_surface_color = canvas + .col(wpos2d) + .map_or(Rgb::zero(), |col| col.sub_surface_color * 0.5); for z in -6..4 { canvas.map( Vec3::new(wpos2d.x, wpos2d.y, alt + z), @@ -881,7 +884,10 @@ impl Site { b.into_vacant().with_sprite(sprite) } else if b.is_filled() { if b.is_terrain() { - Block::new(BlockKind::Earth, Rgb::new(0x6A, 0x47, 0x24)) + Block::new( + BlockKind::Earth, + (sub_surface_color * 255.0).as_(), + ) } else { b }