From c0bd0279fcf4838ce50a0d39f5ad57ecf64af3f5 Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Thu, 23 Apr 2020 21:59:09 +0100 Subject: [PATCH] Added sites to the map --- assets/voxygen/shaders/terrain-frag.glsl | 2 +- world/src/sim/map.rs | 9 ++++++++- world/src/site/dungeon/mod.rs | 2 ++ world/src/site/mod.rs | 7 +++++++ world/src/site/settlement/mod.rs | 4 ++++ 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/assets/voxygen/shaders/terrain-frag.glsl b/assets/voxygen/shaders/terrain-frag.glsl index a1d526bd95..f569b728a2 100644 --- a/assets/voxygen/shaders/terrain-frag.glsl +++ b/assets/voxygen/shaders/terrain-frag.glsl @@ -45,7 +45,7 @@ void main() { diffuse_light *= f_light * ao; diffuse_light += point_light * ao; - vec3 col = f_col + hash(vec4(floor(f_chunk_pos * 3.0 + 0.5), 0)) * 0.02; // Small-scale noise + vec3 col = f_col + hash(vec4(floor(f_chunk_pos * 3.0 + 0.01), 0)) * 0.02; // Small-scale noise vec3 surf_color = illuminate(srgb_to_linear(col), light, diffuse_light, ambient_light); float fog_level = fog(f_pos.xyz, focus_pos.xyz, medium.x); diff --git a/world/src/sim/map.rs b/world/src/sim/map.rs index 00849496e3..8ef77be281 100644 --- a/world/src/sim/map.rs +++ b/world/src/sim/map.rs @@ -156,6 +156,7 @@ impl MapConfig { downhill, river_kind, is_path, + near_site, ) = sampler .get(pos) .map(|sample| { @@ -168,6 +169,9 @@ impl MapConfig { sample.downhill, sample.river.river_kind, sample.path.is_path(), + sample.sites + .iter() + .any(|site| site.get_origin().distance_squared(pos * TerrainChunkSize::RECT_SIZE.x as i32) < 64i32.pow(2)), ) }) .unwrap_or(( @@ -179,6 +183,7 @@ impl MapConfig { None, None, false, + false, )); let humidity = humidity.min(1.0).max(0.0); let temperature = temperature.min(1.0).max(-1.0) * 0.5 + 0.5; @@ -305,7 +310,9 @@ impl MapConfig { ), }; - let rgba = if is_path { + let rgba = if near_site { + (0x57, 0x39, 0x33, 0xFF) + } else if is_path { (0x37, 0x29, 0x23, 0xFF) } else { rgba diff --git a/world/src/site/dungeon/mod.rs b/world/src/site/dungeon/mod.rs index 881b5dea4d..a696907e7a 100644 --- a/world/src/site/dungeon/mod.rs +++ b/world/src/site/dungeon/mod.rs @@ -67,6 +67,8 @@ impl Dungeon { this } + pub fn get_origin(&self) -> Vec2 { self.origin } + pub fn radius(&self) -> f32 { 1200.0 } pub fn spawn_rules(&self, _wpos: Vec2) -> SpawnRules { diff --git a/world/src/site/mod.rs b/world/src/site/mod.rs index 12cd3d996b..b0fab2d161 100644 --- a/world/src/site/mod.rs +++ b/world/src/site/mod.rs @@ -74,6 +74,13 @@ impl Site { } } + pub fn get_origin(&self) -> Vec2 { + match self { + Site::Settlement(s) => s.get_origin(), + Site::Dungeon(d) => d.get_origin(), + } + } + pub fn spawn_rules(&self, wpos: Vec2) -> SpawnRules { match self { Site::Settlement(s) => s.spawn_rules(wpos), diff --git a/world/src/site/settlement/mod.rs b/world/src/site/settlement/mod.rs index 89484dadbb..9fb4081102 100644 --- a/world/src/site/settlement/mod.rs +++ b/world/src/site/settlement/mod.rs @@ -147,6 +147,10 @@ impl Settlement { this } + pub fn get_origin(&self) -> Vec2 { + self.origin + } + /// Designate hazardous terrain based on world data pub fn designate_from_world(&mut self, sim: &WorldSim, rng: &mut impl Rng) { let tile_radius = self.radius() as i32 / AREA_SIZE as i32;