diff --git a/server/src/lib.rs b/server/src/lib.rs index a6fe41da1c..371a28db3b 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -362,10 +362,7 @@ impl Server { ); #[cfg(feature = "worldgen")] - let map = world.get_map_data( - index.as_index_ref(), - state.thread_pool(), - ); + let map = world.get_map_data(index.as_index_ref(), state.thread_pool()); #[cfg(not(feature = "worldgen"))] let (world, index) = World::generate(settings.world_seed); diff --git a/world/src/lib.rs b/world/src/lib.rs index 3709748651..8ea10f135f 100644 --- a/world/src/lib.rs +++ b/world/src/lib.rs @@ -120,11 +120,7 @@ impl World { // TODO } - pub fn get_map_data( - &self, - index: IndexRef, - threadpool: &rayon::ThreadPool, - ) -> WorldMapMsg { + pub fn get_map_data(&self, index: IndexRef, threadpool: &rayon::ThreadPool) -> WorldMapMsg { threadpool.install(|| { // we need these numbers to create unique ids for cave ends let num_sites = self.civs().sites().count() as u64; diff --git a/world/src/sim/mod.rs b/world/src/sim/mod.rs index 2e2fdd15aa..edbc4330b4 100644 --- a/world/src/sim/mod.rs +++ b/world/src/sim/mod.rs @@ -395,7 +395,7 @@ pub struct WorldSim { impl WorldSim { pub fn generate(seed: u32, opts: WorldOpts, threadpool: &rayon::ThreadPool) -> Self { let calendar = opts.calendar; // separate lifetime of elements - let world_file = opts.world_file; + let world_file = opts.world_file; // Parse out the contents of various map formats into the values we need. let parsed_world_file = (|| { let map = match world_file { diff --git a/world/src/site/settlement/building/mod.rs b/world/src/site/settlement/building/mod.rs index 5b7336e0f7..b7170277a6 100644 --- a/world/src/site/settlement/building/mod.rs +++ b/world/src/site/settlement/building/mod.rs @@ -8,7 +8,7 @@ pub use self::{ }; use crate::IndexRef; -use common::terrain::Block; +use common::{calendar::Calendar, terrain::Block}; use rand::prelude::*; use serde::Deserialize; use vek::*; @@ -25,7 +25,7 @@ pub struct Building { } impl Building { - pub fn generate(rng: &mut impl Rng, origin: Vec3) -> Self + pub fn generate(rng: &mut impl Rng, origin: Vec3, calendar: Option<&Calendar>) -> Self where A: Sized, { diff --git a/world/src/site/settlement/mod.rs b/world/src/site/settlement/mod.rs index 6a0a7a8b52..66fca1d733 100644 --- a/world/src/site/settlement/mod.rs +++ b/world/src/site/settlement/mod.rs @@ -440,11 +440,13 @@ impl Settlement { StructureKind::Keep(Building::::generate( ctx.rng, Vec3::new(house_pos.x, house_pos.y, alt), + None, )) } else { StructureKind::House(Building::::generate( ctx.rng, Vec3::new(house_pos.x, house_pos.y, alt), + ctx.sim.map(|sim| sim.calendar.as_ref()).flatten(), )) }, };