mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Add default world
build AABB
This commit is contained in:
parent
91a647e35f
commit
f5bc6b43c9
@ -64,8 +64,9 @@ use common::{
|
|||||||
resources::TimeOfDay,
|
resources::TimeOfDay,
|
||||||
rtsim::RtSimEntity,
|
rtsim::RtSimEntity,
|
||||||
slowjob::SlowJobPool,
|
slowjob::SlowJobPool,
|
||||||
terrain::TerrainChunkSize,
|
terrain::{TerrainChunk, TerrainChunkSize},
|
||||||
uid::UidAllocator,
|
uid::UidAllocator,
|
||||||
|
vol::RectRasterableVol,
|
||||||
};
|
};
|
||||||
use common_ecs::run_now;
|
use common_ecs::run_now;
|
||||||
use common_net::{
|
use common_net::{
|
||||||
@ -78,7 +79,7 @@ use common_net::{
|
|||||||
use common_sys::plugin::memory_manager::EcsWorld;
|
use common_sys::plugin::memory_manager::EcsWorld;
|
||||||
#[cfg(feature = "plugins")]
|
#[cfg(feature = "plugins")]
|
||||||
use common_sys::plugin::PluginMgr;
|
use common_sys::plugin::PluginMgr;
|
||||||
use common_sys::state::State;
|
use common_sys::state::{BuildAreas, State};
|
||||||
use metrics::{EcsSystemMetrics, PhysicsMetrics, TickMetrics};
|
use metrics::{EcsSystemMetrics, PhysicsMetrics, TickMetrics};
|
||||||
use network::{Network, Pid, ProtocolAddr};
|
use network::{Network, Pid, ProtocolAddr};
|
||||||
use persistence::{
|
use persistence::{
|
||||||
@ -325,6 +326,23 @@ impl Server {
|
|||||||
// Set the spawn point we calculated above
|
// Set the spawn point we calculated above
|
||||||
state.ecs_mut().insert(SpawnPoint(spawn_point));
|
state.ecs_mut().insert(SpawnPoint(spawn_point));
|
||||||
|
|
||||||
|
// Insert a default AABB for the world
|
||||||
|
// TODO: prevent this from being deleted
|
||||||
|
{
|
||||||
|
let mut build_areas = state.ecs().write_resource::<BuildAreas>();
|
||||||
|
let world_size = world.sim().get_size().map(|e| e as i32)
|
||||||
|
* TerrainChunk::RECT_SIZE.map(|e| e as i32);
|
||||||
|
let world_aabb = Aabb {
|
||||||
|
min: Vec3::new(0, 0, -32768),
|
||||||
|
max: Vec3::new(world_size.x, world_size.y, 32767),
|
||||||
|
}
|
||||||
|
.made_valid();
|
||||||
|
let world_aabb_id = build_areas.areas.insert(world_aabb);
|
||||||
|
build_areas
|
||||||
|
.area_names
|
||||||
|
.insert("world".to_string(), world_aabb_id);
|
||||||
|
}
|
||||||
|
|
||||||
// Insert the world into the ECS (todo: Maybe not an Arc?)
|
// Insert the world into the ECS (todo: Maybe not an Arc?)
|
||||||
let world = Arc::new(world);
|
let world = Arc::new(world);
|
||||||
state.ecs_mut().insert(Arc::clone(&world));
|
state.ecs_mut().insert(Arc::clone(&world));
|
||||||
|
Loading…
Reference in New Issue
Block a user