mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'crabman/airship-fix2' into 'master'
Airship fix attempt #5 See merge request veloren/veloren!4142
This commit is contained in:
commit
2842d6fef8
@ -71,6 +71,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Location names are now also correct after editing and creating characters
|
- Location names are now also correct after editing and creating characters
|
||||||
- NPC's wont pick up recently dropped items (if not hostile towards you)
|
- NPC's wont pick up recently dropped items (if not hostile towards you)
|
||||||
- Fixed "low fps" of different shaders caused by low floating point precision when using time.
|
- Fixed "low fps" of different shaders caused by low floating point precision when using time.
|
||||||
|
- Fixed bug where airship captains would mass generate after using /reload_chunks
|
||||||
|
|
||||||
## [0.15.0] - 2023-07-01
|
## [0.15.0] - 2023-07-01
|
||||||
|
|
||||||
|
@ -3489,6 +3489,12 @@ fn handle_reload_chunks(
|
|||||||
_args: Vec<String>,
|
_args: Vec<String>,
|
||||||
_action: &ServerChatCommand,
|
_action: &ServerChatCommand,
|
||||||
) -> CmdResult<()> {
|
) -> CmdResult<()> {
|
||||||
|
#[cfg(feature = "persistent_world")]
|
||||||
|
server
|
||||||
|
.state
|
||||||
|
.ecs()
|
||||||
|
.write_resource::<crate::terrain_persistence::TerrainPersistence>()
|
||||||
|
.unload_all();
|
||||||
server.state.clear_terrain();
|
server.state.clear_terrain();
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -811,6 +811,15 @@ impl Server {
|
|||||||
run_now::<terrain::Sys>(self.state.ecs_mut());
|
run_now::<terrain::Sys>(self.state.ecs_mut());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hook rtsim chunk unloads
|
||||||
|
#[cfg(feature = "worldgen")]
|
||||||
|
{
|
||||||
|
let mut rtsim = self.state.ecs().write_resource::<rtsim::RtSim>();
|
||||||
|
for chunk in &self.state.terrain_changes().removed_chunks {
|
||||||
|
rtsim.hook_unload_chunk(*chunk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Prevent anchor entity chains which are not currently supported
|
// Prevent anchor entity chains which are not currently supported
|
||||||
let anchors = self.state.ecs().read_storage::<Anchor>();
|
let anchors = self.state.ecs().read_storage::<Anchor>();
|
||||||
let anchored_anchor_entities: Vec<Entity> = (
|
let anchored_anchor_entities: Vec<Entity> = (
|
||||||
|
@ -380,11 +380,13 @@ impl<'a> System<'a> for Sys {
|
|||||||
|
|
||||||
chunk_generator.cancel_if_pending(key);
|
chunk_generator.cancel_if_pending(key);
|
||||||
|
|
||||||
|
// If you want to trigger any behaivour on unload, do it in `Server::tick` by
|
||||||
|
// reading `TerrainChanges::removed_chunks` since chunks can also be removed
|
||||||
|
// using eg. /reload_chunks
|
||||||
|
|
||||||
// TODO: code duplication for chunk insertion between here and state.rs
|
// TODO: code duplication for chunk insertion between here and state.rs
|
||||||
terrain.remove(key).map(|chunk| {
|
terrain.remove(key).map(|chunk| {
|
||||||
terrain_changes.removed_chunks.insert(key);
|
terrain_changes.removed_chunks.insert(key);
|
||||||
#[cfg(feature = "worldgen")]
|
|
||||||
rtsim.hook_unload_chunk(key);
|
|
||||||
chunk
|
chunk
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user