From c2d6d00b002c08dfdf52dcc24e444050fcca31f5 Mon Sep 17 00:00:00 2001 From: Imbris Date: Mon, 6 Jul 2020 01:56:02 -0400 Subject: [PATCH 1/3] point to github specs to access PairedStorage type, fix Loadout sync spam --- Cargo.lock | 63 +++++++++++++++------------ Cargo.toml | 4 ++ client/Cargo.toml | 2 +- common/Cargo.toml | 4 +- common/src/comp/ability.rs | 4 +- common/src/comp/agent.rs | 6 +-- common/src/comp/body.rs | 4 +- common/src/comp/character_state.rs | 11 ++--- common/src/comp/chat.rs | 8 ++-- common/src/comp/controller.rs | 8 ++-- common/src/comp/energy.rs | 8 ++-- common/src/comp/inventory/item/mod.rs | 6 +-- common/src/comp/inventory/mod.rs | 4 +- common/src/comp/location.rs | 6 +-- common/src/comp/misc.rs | 4 +- common/src/comp/phys.rs | 18 ++++---- common/src/comp/player.rs | 4 +- common/src/comp/projectile.rs | 4 +- common/src/comp/stats.rs | 6 +-- common/src/comp/visual.rs | 6 +-- common/src/states/utils.rs | 9 ++-- common/src/sys/character_behavior.rs | 62 ++++++++++++++++++-------- server/Cargo.toml | 4 +- server/src/client.rs | 6 +-- voxygen/Cargo.toml | 4 +- voxygen/src/ecs/comp.rs | 6 +-- 26 files changed, 152 insertions(+), 119 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5fe17155d8..ad357b9cde 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -995,17 +995,6 @@ dependencies = [ "byteorder 1.3.4", ] -[[package]] -name = "derivative" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6d883546668a3e2011b6a716a7330b82eabb0151b138217f632c8243e17135" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - [[package]] name = "deunicode" version = "1.1.1" @@ -1856,6 +1845,16 @@ dependencies = [ "serde", ] +[[package]] +name = "hashbrown" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96282e96bfcd3da0d3aa9938bedf1e50df3269b6db08b4876d2da0bb1a0841cf" +dependencies = [ + "ahash 0.3.8", + "autocfg 1.0.0", +] + [[package]] name = "hermit-abi" version = "0.1.13" @@ -3698,16 +3697,17 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" [[package]] name = "shred" -version = "0.9.4" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92472b9bafafbcba21935c6444d924e5332742f6778c49504a49a97eaeff6ccc" +checksum = "c5f08237e667ac94ad20f8878b5943d91a93ccb231428446c57c21c57779016d" dependencies = [ - "arrayvec 0.4.12", - "hashbrown", + "arrayvec 0.5.1", + "hashbrown 0.7.2", "mopa", "rayon", "shred-derive", - "smallvec 0.6.13", + "smallvec 1.4.0", + "tynm", ] [[package]] @@ -3793,13 +3793,11 @@ dependencies = [ [[package]] name = "specs" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4943fde8c5d3d14c3d19d2a4c7abbd7b626c270a19e6cd35252294a48feb698c" +version = "0.16.1" +source = "git+https://github.com/amethyst/specs.git?rev=7a2e348ab2223818bad487695c66c43db88050a5#7a2e348ab2223818bad487695c66c43db88050a5" dependencies = [ - "crossbeam-queue 0.1.2", - "derivative", - "hashbrown", + "crossbeam-queue 0.2.3", + "hashbrown 0.7.2", "hibitset", "log", "rayon", @@ -3812,7 +3810,7 @@ dependencies = [ [[package]] name = "specs-idvs" version = "0.1.0" -source = "git+https://gitlab.com/veloren/specs-idvs.git#111548cf44e9bb4c43feb12aa3fc253953ac6e4a" +source = "git+https://gitlab.com/veloren/specs-idvs.git?branch=specs-16#349153d18c19d238523e4eddd5bec179d38c59c5" dependencies = [ "specs", ] @@ -4300,6 +4298,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44834418e2c5b16f47bedf35c28e148db099187dd5feee6367fb2525863af4f1" +[[package]] +name = "tynm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "367fb781963961b4a90a3362c54b1871caaecb081f011005778242230f39d34e" +dependencies = [ + "nom 5.1.1", +] + [[package]] name = "unicode-bidi" version = "0.3.4" @@ -4457,7 +4464,7 @@ dependencies = [ "futures-executor", "futures-timer 3.0.2", "futures-util", - "hashbrown", + "hashbrown 0.6.3", "image", "num_cpus", "specs", @@ -4478,7 +4485,7 @@ dependencies = [ "crossbeam", "dot_vox", "find_folder", - "hashbrown", + "hashbrown 0.6.3", "image", "indexmap", "lazy_static", @@ -4512,7 +4519,7 @@ dependencies = [ "futures-executor", "futures-timer 3.0.2", "futures-util", - "hashbrown", + "hashbrown 0.6.3", "lazy_static", "libsqlite3-sys", "portpicker", @@ -4573,7 +4580,7 @@ dependencies = [ "glsl-include", "glutin", "guillotiere", - "hashbrown", + "hashbrown 0.6.3", "image", "msgbox", "num 0.2.1", @@ -4621,7 +4628,7 @@ dependencies = [ "bincode", "bitvec", "fxhash", - "hashbrown", + "hashbrown 0.6.3", "image", "itertools 0.8.2", "lazy_static", diff --git a/Cargo.toml b/Cargo.toml index 277aa6d984..589b53ea65 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,3 +72,7 @@ debug = false [profile.releasedebuginfo] inherits = 'release' debug = 1 + +# living on the edge +[patch.crates-io] +specs = { git = "https://github.com/amethyst/specs.git", rev = "7a2e348ab2223818bad487695c66c43db88050a5" } diff --git a/client/Cargo.toml b/client/Cargo.toml index 7a3c36edfa..82e21c72d3 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -16,7 +16,7 @@ futures-timer = "3.0" image = { version = "0.22.3", default-features = false, features = ["png"] } num_cpus = "1.10.1" tracing = { version = "0.1", default-features = false } -specs = "0.15.1" +specs = "0.16.1" vek = { version = "0.11.0", features = ["serde"] } hashbrown = { version = "0.6", features = ["rayon", "serde", "nightly"] } authc = { git = "https://gitlab.com/veloren/auth.git", rev = "223a4097f7ebc8d451936dccb5e6517194bbf086" } diff --git a/common/Cargo.toml b/common/Cargo.toml index 7773463a68..e59ffa78c0 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -8,9 +8,9 @@ edition = "2018" no-assets = [] [dependencies] -specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git" } +specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", branch = "specs-16" } -specs = { version = "0.15.1", features = ["serde", "nightly", "storage-event-control"] } +specs = { version = "0.16.1", features = ["serde", "storage-event-control"] } vek = { version = "0.11.0", features = ["serde"] } dot_vox = "4.0" image = { version = "0.22.3", default-features = false, features = ["png"] } diff --git a/common/src/comp/ability.rs b/common/src/comp/ability.rs index b1068ed928..2eadd81053 100644 --- a/common/src/comp/ability.rs +++ b/common/src/comp/ability.rs @@ -7,7 +7,7 @@ use crate::{ sys::character_behavior::JoinData, }; use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use std::time::Duration; #[derive(Copy, Clone, Hash, Eq, PartialEq, Debug, Serialize, Deserialize)] @@ -243,5 +243,5 @@ impl From<&CharacterAbility> for CharacterState { } impl Component for Loadout { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index 59edb06269..c9679e6b02 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -1,6 +1,6 @@ use crate::path::Chaser; use specs::{Component, Entity as EcsEntity}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use vek::*; #[derive(Copy, Clone, Debug, PartialEq)] @@ -43,7 +43,7 @@ impl Alignment { } impl Component for Alignment { - type Storage = IDVStorage; + type Storage = IdvStorage; } #[derive(Clone, Debug, Default)] @@ -72,7 +72,7 @@ impl Agent { } impl Component for Agent { - type Storage = IDVStorage; + type Storage = IdvStorage; } #[derive(Clone, Debug)] diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index c8af418f7a..f25d0a6b65 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -17,7 +17,7 @@ use crate::{ npc::NpcKind, }; use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use std::{fs::File, io::BufReader}; #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] @@ -132,5 +132,5 @@ impl Body { } impl Component for Body { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } diff --git a/common/src/comp/character_state.rs b/common/src/comp/character_state.rs index 5cde7824ca..3b6c5ba2e0 100644 --- a/common/src/comp/character_state.rs +++ b/common/src/comp/character_state.rs @@ -1,11 +1,12 @@ use crate::{ - comp::{Energy, Loadout, Ori, Pos, Vel}, + comp::{Energy, Ori, Pos, Vel}, event::{LocalEvent, ServerEvent}, states::*, sys::character_behavior::JoinData, }; use serde::{Deserialize, Serialize}; -use specs::{Component, FlaggedStorage, HashMapStorage, VecStorage}; +use specs::{Component, FlaggedStorage, VecStorage}; +use specs_idvs::IdvStorage; use std::collections::VecDeque; /// Data returned from character behavior fn's to Character Behavior System. @@ -15,7 +16,7 @@ pub struct StateUpdate { pub vel: Vel, pub ori: Ori, pub energy: Energy, - pub loadout: Loadout, + pub swap_loadout: bool, pub local_events: VecDeque, pub server_events: VecDeque, } @@ -27,7 +28,7 @@ impl From<&JoinData<'_>> for StateUpdate { vel: *data.vel, ori: *data.ori, energy: *data.energy, - loadout: data.loadout.clone(), + swap_loadout: false, character: data.character.clone(), local_events: VecDeque::new(), server_events: VecDeque::new(), @@ -128,7 +129,7 @@ impl Default for CharacterState { } impl Component for CharacterState { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] diff --git a/common/src/comp/chat.rs b/common/src/comp/chat.rs index 17cd3987f4..3bbd3014bc 100644 --- a/common/src/comp/chat.rs +++ b/common/src/comp/chat.rs @@ -1,6 +1,6 @@ use crate::{msg::ServerMsg, sync::Uid}; use specs::Component; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use std::time::{Duration, Instant}; /// A player's current chat mode. These are chat types that can only be sent by @@ -22,7 +22,7 @@ pub enum ChatMode { } impl Component for ChatMode { - type Storage = IDVStorage; + type Storage = IdvStorage; } impl ChatMode { @@ -180,7 +180,7 @@ impl ChatMsg { #[derive(Clone, Debug)] pub struct Group(pub String); impl Component for Group { - type Storage = IDVStorage; + type Storage = IdvStorage; } impl From for Group { fn from(s: String) -> Self { Group(s) } @@ -193,7 +193,7 @@ impl From for Group { #[derive(Clone, Debug)] pub struct Faction(pub String); impl Component for Faction { - type Storage = IDVStorage; + type Storage = IdvStorage; } impl From for Faction { fn from(s: String) -> Self { Faction(s) } diff --git a/common/src/comp/controller.rs b/common/src/comp/controller.rs index b77cd9506f..606fcd9c14 100644 --- a/common/src/comp/controller.rs +++ b/common/src/comp/controller.rs @@ -1,6 +1,6 @@ use crate::{comp::inventory::slot::Slot, sync::Uid, util::Dir}; use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use std::time::Duration; use vek::*; @@ -227,7 +227,7 @@ impl Controller { } impl Component for Controller { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] @@ -237,12 +237,12 @@ pub enum MountState { } impl Component for MountState { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] pub struct Mounting(pub Uid); impl Component for Mounting { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } diff --git a/common/src/comp/energy.rs b/common/src/comp/energy.rs index bbc481daca..66e05b4faa 100644 --- a/common/src/comp/energy.rs +++ b/common/src/comp/energy.rs @@ -1,7 +1,7 @@ use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; -#[derive(Clone, Copy, Debug, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] pub struct Energy { current: u32, maximum: u32, @@ -9,7 +9,7 @@ pub struct Energy { pub last_change: Option<(i32, f64, EnergySource)>, } -#[derive(Clone, Copy, Debug, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] pub enum EnergySource { Ability, Climb, @@ -73,5 +73,5 @@ impl Energy { } impl Component for Energy { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs index 72218b795b..e47ec5c533 100644 --- a/common/src/comp/inventory/item/mod.rs +++ b/common/src/comp/inventory/item/mod.rs @@ -11,7 +11,7 @@ use crate::{ terrain::{Block, BlockKind}, }; use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use std::{fs::File, io::BufReader}; use vek::Rgb; @@ -197,12 +197,12 @@ impl Item { } impl Component for Item { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub struct ItemDrop(pub Item); impl Component for ItemDrop { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } diff --git a/common/src/comp/inventory/mod.rs b/common/src/comp/inventory/mod.rs index 0bbfa14d1e..2a0586eb9b 100644 --- a/common/src/comp/inventory/mod.rs +++ b/common/src/comp/inventory/mod.rs @@ -4,7 +4,7 @@ pub mod slot; use crate::assets; use item::{Consumable, Item, ItemKind}; use specs::{Component, FlaggedStorage, HashMapStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use std::ops::Not; // The limit on distance between the entity and a collectible (squared) @@ -388,7 +388,7 @@ impl InventoryUpdate { } impl Component for InventoryUpdate { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[cfg(test)] mod test; diff --git a/common/src/comp/location.rs b/common/src/comp/location.rs index 97a48e547a..2bd3b48c6f 100644 --- a/common/src/comp/location.rs +++ b/common/src/comp/location.rs @@ -1,6 +1,6 @@ use crate::state::Time; use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use vek::*; #[derive(Copy, Clone, Debug, Serialize, Deserialize)] @@ -19,7 +19,7 @@ impl Waypoint { } impl Component for Waypoint { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Copy, Clone, Debug, PartialEq)] @@ -30,7 +30,7 @@ impl WaypointArea { } impl Component for WaypointArea { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } impl Default for WaypointArea { diff --git a/common/src/comp/misc.rs b/common/src/comp/misc.rs index 5135ec67d7..5e27c698b0 100644 --- a/common/src/comp/misc.rs +++ b/common/src/comp/misc.rs @@ -1,6 +1,6 @@ use crate::sync::Uid; use specs::Component; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] pub enum Object { @@ -8,5 +8,5 @@ pub enum Object { } impl Component for Object { - type Storage = IDVStorage; + type Storage = IdvStorage; } diff --git a/common/src/comp/phys.rs b/common/src/comp/phys.rs index 61ceaaaf90..34fc9a2c3e 100644 --- a/common/src/comp/phys.rs +++ b/common/src/comp/phys.rs @@ -1,6 +1,6 @@ use crate::{sync::Uid, util::Dir}; use specs::{Component, FlaggedStorage, NullStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use vek::*; // Position @@ -8,7 +8,7 @@ use vek::*; pub struct Pos(pub Vec3); impl Component for Pos { - type Storage = IDVStorage; + type Storage = IdvStorage; } // Velocity @@ -16,7 +16,7 @@ impl Component for Pos { pub struct Vel(pub Vec3); impl Component for Vel { - type Storage = IDVStorage; + type Storage = IdvStorage; } // Orientation @@ -24,7 +24,7 @@ impl Component for Vel { pub struct Ori(pub Dir); impl Component for Ori { - type Storage = IDVStorage; + type Storage = IdvStorage; } // Scale @@ -32,7 +32,7 @@ impl Component for Ori { pub struct Scale(pub f32); impl Component for Scale { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } // Mass @@ -40,7 +40,7 @@ impl Component for Scale { pub struct Mass(pub f32); impl Component for Mass { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } // Mass @@ -51,14 +51,14 @@ pub enum Collider { } impl Component for Collider { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Copy, Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct Gravity(pub f32); impl Component for Gravity { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Copy, Clone, Default, Debug, PartialEq, Serialize, Deserialize)] @@ -88,7 +88,7 @@ impl PhysicsState { } impl Component for PhysicsState { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } // ForceUpdate diff --git a/common/src/comp/player.rs b/common/src/comp/player.rs index d75a4c7069..28f665d434 100644 --- a/common/src/comp/player.rs +++ b/common/src/comp/player.rs @@ -1,6 +1,6 @@ use authc::Uuid; use specs::{Component, FlaggedStorage, NullStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; const MAX_ALIAS_LEN: usize = 32; @@ -38,7 +38,7 @@ impl Player { } impl Component for Player { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Clone, Debug, Default, Serialize, Deserialize)] diff --git a/common/src/comp/projectile.rs b/common/src/comp/projectile.rs index 741a6004a0..9bfd5aeb81 100644 --- a/common/src/comp/projectile.rs +++ b/common/src/comp/projectile.rs @@ -1,6 +1,6 @@ use crate::{comp, sync::Uid}; use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use std::time::Duration; #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] @@ -40,5 +40,5 @@ impl Projectile { } impl Component for Projectile { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } diff --git a/common/src/comp/stats.rs b/common/src/comp/stats.rs index bed12234f1..ff3c370d16 100644 --- a/common/src/comp/stats.rs +++ b/common/src/comp/stats.rs @@ -4,7 +4,7 @@ use crate::{ sync::Uid, }; use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use std::{error::Error, fmt}; #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, Serialize, Deserialize)] @@ -204,7 +204,7 @@ impl Stats { } impl Component for Stats { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Copy, Clone, Debug, Serialize, Deserialize)] @@ -213,5 +213,5 @@ pub struct Dying { } impl Component for Dying { - type Storage = IDVStorage; + type Storage = IdvStorage; } diff --git a/common/src/comp/visual.rs b/common/src/comp/visual.rs index 29cd1efd30..7d4f4c59f5 100644 --- a/common/src/comp/visual.rs +++ b/common/src/comp/visual.rs @@ -1,5 +1,5 @@ use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use vek::*; #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] @@ -22,7 +22,7 @@ impl Default for LightEmitter { } impl Component for LightEmitter { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] @@ -43,5 +43,5 @@ impl Default for LightAnimation { } impl Component for LightAnimation { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 63920ba5c3..597eaaf5a8 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -155,12 +155,9 @@ pub fn handle_climb(data: &JoinData, update: &mut StateUpdate) { } /// Checks that player can Swap Weapons and updates `Loadout` if so -pub fn attempt_swap_loadout(_data: &JoinData, update: &mut StateUpdate) { - if update.loadout.second_item.is_some() { - std::mem::swap( - &mut update.loadout.active_item, - &mut update.loadout.second_item, - ); +pub fn attempt_swap_loadout(data: &JoinData, update: &mut StateUpdate) { + if data.loadout.second_item.is_some() { + update.swap_loadout = true; } } diff --git a/common/src/sys/character_behavior.rs b/common/src/sys/character_behavior.rs index fb6e71884e..586dc239ba 100644 --- a/common/src/sys/character_behavior.rs +++ b/common/src/sys/character_behavior.rs @@ -9,7 +9,12 @@ use crate::{ sync::{Uid, UidAllocator}, }; -use specs::{Entities, Entity, Join, LazyUpdate, Read, ReadStorage, System, WriteStorage}; +use specs::{ + hibitset, + storage::{PairedStorage, SequentialRestriction}, + Entities, Entity, FlaggedStorage, Join, LazyUpdate, Read, ReadStorage, System, WriteStorage, +}; +use specs_idvs::IdvStorage; // use std::collections::VecDeque; @@ -37,7 +42,7 @@ pub trait CharacterBehavior { // fn init(data: &JoinData) -> CharacterState; } -/// Read-Only Data sent from Character Behavior System to bahvior fn's +/// Read-Only Data sent from Character Behavior System to behavior fn's pub struct JoinData<'a> { pub entity: Entity, pub uid: &'a Uid, @@ -57,15 +62,23 @@ pub struct JoinData<'a> { pub updater: &'a LazyUpdate, } +type RestrictedMut<'a, C> = PairedStorage< + 'a, + 'a, + C, + &'a mut FlaggedStorage>, + &'a hibitset::BitSet, + SequentialRestriction, +>; pub type JoinTuple<'a> = ( Entity, &'a Uid, - &'a mut CharacterState, + RestrictedMut<'a, CharacterState>, &'a mut Pos, &'a mut Vel, &'a mut Ori, - &'a mut Energy, - &'a mut Loadout, + RestrictedMut<'a, Energy>, + RestrictedMut<'a, Loadout>, &'a mut Controller, &'a Stats, &'a Body, @@ -74,12 +87,21 @@ pub type JoinTuple<'a> = ( ); fn incorporate_update(tuple: &mut JoinTuple, state_update: StateUpdate) { - *tuple.2 = state_update.character; + // TODO: if checking equality is expensive use optional field in StateUpdate + if tuple.2.get_unchecked() != &state_update.character { + *tuple.2.get_mut_unchecked() = state_update.character + }; *tuple.3 = state_update.pos; *tuple.4 = state_update.vel; *tuple.5 = state_update.ori; - *tuple.6 = state_update.energy; - *tuple.7 = state_update.loadout; + // Note: might be changed every tick by timer anyway + if tuple.6.get_unchecked() != &state_update.energy { + *tuple.6.get_mut_unchecked() = state_update.energy + }; + if state_update.swap_loadout { + let loadout = tuple.7.get_mut_unchecked(); + std::mem::swap(&mut loadout.active_item, &mut loadout.second_item); + } } impl<'a> JoinData<'a> { @@ -87,12 +109,12 @@ impl<'a> JoinData<'a> { Self { entity: j.0, uid: j.1, - character: j.2, + character: j.2.get_unchecked(), pos: j.3, vel: j.4, ori: j.5, - energy: j.6, - loadout: j.7, + energy: j.6.get_unchecked(), + loadout: j.7.get_unchecked(), controller: j.8, inputs: &j.8.inputs, stats: j.9, @@ -162,24 +184,23 @@ impl<'a> System<'a> for Sys { let mut server_emitter = server_bus.emitter(); let mut local_emitter = local_bus.emitter(); - let mut join_iter = ( + for mut tuple in ( &entities, &uids, - &mut character_states, + &mut character_states.restrict_mut(), &mut positions, &mut velocities, &mut orientations, - &mut energies, - &mut loadouts, + &mut energies.restrict_mut(), + &mut loadouts.restrict_mut(), &mut controllers, &stats, &bodies, &physics_states, attacking_storage.maybe(), ) - .join(); - - while let Some(mut tuple) = join_iter.next() { + .join() + { // Being dead overrides all other states if tuple.9.is_dead { // Do nothing @@ -188,7 +209,10 @@ impl<'a> System<'a> for Sys { // If mounted, character state is controlled by mount // TODO: Make mounting a state if let Some(Mounting(_)) = mountings.get(tuple.0) { - *tuple.2 = CharacterState::Sit {}; + let sit_state = CharacterState::Sit {}; + if tuple.2.get_unchecked() != &sit_state { + *tuple.2.get_mut_unchecked() = sit_state; + } continue; } diff --git a/server/Cargo.toml b/server/Cargo.toml index ade46b9c6c..9c9de666a3 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -13,10 +13,10 @@ common = { package = "veloren-common", path = "../common" } world = { package = "veloren-world", path = "../world" } network = { package = "veloren_network", path = "../network", default-features = false } -specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git" } +specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", branch = "specs-16" } tracing = "0.1" -specs = { version = "0.15.1", features = ["shred-derive"] } +specs = { version = "0.16.1", features = ["shred-derive"] } vek = "0.11.0" uvth = "3.1.1" futures-util = "0.3" diff --git a/server/src/client.rs b/server/src/client.rs index 6de7d502b3..412d36a7d1 100644 --- a/server/src/client.rs +++ b/server/src/client.rs @@ -2,7 +2,7 @@ use common::msg::{ClientState, RequestStateError, ServerMsg}; use hashbrown::HashSet; use network::Stream; use specs::{Component, FlaggedStorage}; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use vek::*; pub struct Client { @@ -13,7 +13,7 @@ pub struct Client { } impl Component for Client { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } impl Client { @@ -59,5 +59,5 @@ pub struct RegionSubscription { } impl Component for RegionSubscription { - type Storage = FlaggedStorage>; + type Storage = FlaggedStorage>; } diff --git a/voxygen/Cargo.toml b/voxygen/Cargo.toml index 7118185adb..9072812984 100644 --- a/voxygen/Cargo.toml +++ b/voxygen/Cargo.toml @@ -33,8 +33,8 @@ conrod_winit = { git = "https://gitlab.com/veloren/conrod.git", branch = "pre-wi euc = { git = "https://github.com/zesterer/euc.git" } # ECS -specs = "0.15.1" -specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git" } +specs = "0.16.1" +specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", branch = "specs-16" } # Mathematics vek = { version = "0.11.0", features = ["serde"] } diff --git a/voxygen/src/ecs/comp.rs b/voxygen/src/ecs/comp.rs index 8d051f0588..fbeb915a65 100644 --- a/voxygen/src/ecs/comp.rs +++ b/voxygen/src/ecs/comp.rs @@ -1,6 +1,6 @@ use common::util::Dir; use specs::Component; -use specs_idvs::IDVStorage; +use specs_idvs::IdvStorage; use vek::*; // Floats over entity that has had a health change, rising up over time until it @@ -25,7 +25,7 @@ pub struct HpFloaterList { pub time_since_last_dmg_by_me: Option, } impl Component for HpFloaterList { - type Storage = IDVStorage; + type Storage = IdvStorage; } // Used for smooth interpolation of visual elements that are tied to entity @@ -36,5 +36,5 @@ pub struct Interpolated { pub ori: Dir, } impl Component for Interpolated { - type Storage = IDVStorage; + type Storage = IdvStorage; } From afff8a43b92e7e013a5498fe679bbc9a1742113e Mon Sep 17 00:00:00 2001 From: Imbris Date: Mon, 6 Jul 2020 02:25:29 -0400 Subject: [PATCH 2/3] Add some code to count how many updates will be sent for each component type (commented out) --- server/src/sys/sentinel.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/server/src/sys/sentinel.rs b/server/src/sys/sentinel.rs index 3c90aec221..bdbde3248b 100644 --- a/server/src/sys/sentinel.rs +++ b/server/src/sys/sentinel.rs @@ -236,6 +236,38 @@ fn record_changes(comps: &TrackedComps, trackers: &mut WriteTrackers) { trackers .character_state .record_changes(&comps.character_state); + // Debug how many updates are being sent + /* + macro_rules! log_counts { + ($comp:ident, $name:expr) => { + // Note: if this will be used in actual server it would be more efficient to + // count during record_changes + let tracker = &trackers.$comp; + let inserted = tracker.inserted().into_iter().count(); + let modified = tracker.modified().into_iter().count(); + let removed = tracker.removed().into_iter().count(); + tracing::warn!("{:6} insertions detected for {}", inserted, $name); + tracing::warn!("{:6} modifications detected for {}", modified, $name); + tracing::warn!("{:6} deletions detected for {}", removed, $name); + }; + }; + log_counts!(uid, "Uids"); + log_counts!(body, "Bodies"); + log_counts!(player, "Players"); + log_counts!(stats, "Stats"); + log_counts!(energy, "Energies"); + log_counts!(light_emitter, "Light emitters"); + log_counts!(item, "Items"); + log_counts!(scale, "Scales"); + log_counts!(mounting, "Mountings"); + log_counts!(mount_state, "Mount States"); + log_counts!(mass, "Masses"); + log_counts!(collider, "Colliders"); + log_counts!(sticky, "Stickies"); + log_counts!(gravity, "Gravitys"); + log_counts!(loadout, "Loadouts"); + log_counts!(character_state, "Character States"); + */ } pub fn register_trackers(world: &mut World) { From 8d39f2745888950007feba988d407f61baa20361 Mon Sep 17 00:00:00 2001 From: Imbris Date: Mon, 6 Jul 2020 03:15:06 -0400 Subject: [PATCH 3/3] Upgrade hashbrown --- Cargo.lock | 41 +--- client/Cargo.lock | 586 --------------------------------------------- client/Cargo.toml | 2 +- common/Cargo.toml | 2 +- server/Cargo.toml | 2 +- voxygen/Cargo.toml | 2 +- world/Cargo.toml | 2 +- 7 files changed, 16 insertions(+), 621 deletions(-) delete mode 100644 client/Cargo.lock diff --git a/Cargo.lock b/Cargo.lock index ad357b9cde..1ba28742a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15,15 +15,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" -[[package]] -name = "ahash" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" -dependencies = [ - "const-random", -] - [[package]] name = "ahash" version = "0.3.8" @@ -974,7 +965,7 @@ version = "3.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cfcd41ae02d60edded204341d2798ba519c336c51a37330aa4b98a1128def32" dependencies = [ - "ahash 0.3.8", + "ahash", "cfg-if", "num_cpus", ] @@ -1833,26 +1824,16 @@ dependencies = [ "tokio-io", ] -[[package]] -name = "hashbrown" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" -dependencies = [ - "ahash 0.2.18", - "autocfg 0.1.7", - "rayon", - "serde", -] - [[package]] name = "hashbrown" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96282e96bfcd3da0d3aa9938bedf1e50df3269b6db08b4876d2da0bb1a0841cf" dependencies = [ - "ahash 0.3.8", + "ahash", "autocfg 1.0.0", + "rayon", + "serde", ] [[package]] @@ -3702,7 +3683,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5f08237e667ac94ad20f8878b5943d91a93ccb231428446c57c21c57779016d" dependencies = [ "arrayvec 0.5.1", - "hashbrown 0.7.2", + "hashbrown", "mopa", "rayon", "shred-derive", @@ -3797,7 +3778,7 @@ version = "0.16.1" source = "git+https://github.com/amethyst/specs.git?rev=7a2e348ab2223818bad487695c66c43db88050a5#7a2e348ab2223818bad487695c66c43db88050a5" dependencies = [ "crossbeam-queue 0.2.3", - "hashbrown 0.7.2", + "hashbrown", "hibitset", "log", "rayon", @@ -4464,7 +4445,7 @@ dependencies = [ "futures-executor", "futures-timer 3.0.2", "futures-util", - "hashbrown 0.6.3", + "hashbrown", "image", "num_cpus", "specs", @@ -4485,7 +4466,7 @@ dependencies = [ "crossbeam", "dot_vox", "find_folder", - "hashbrown 0.6.3", + "hashbrown", "image", "indexmap", "lazy_static", @@ -4519,7 +4500,7 @@ dependencies = [ "futures-executor", "futures-timer 3.0.2", "futures-util", - "hashbrown 0.6.3", + "hashbrown", "lazy_static", "libsqlite3-sys", "portpicker", @@ -4580,7 +4561,7 @@ dependencies = [ "glsl-include", "glutin", "guillotiere", - "hashbrown 0.6.3", + "hashbrown", "image", "msgbox", "num 0.2.1", @@ -4628,7 +4609,7 @@ dependencies = [ "bincode", "bitvec", "fxhash", - "hashbrown 0.6.3", + "hashbrown", "image", "itertools 0.8.2", "lazy_static", diff --git a/client/Cargo.lock b/client/Cargo.lock deleted file mode 100644 index 9a47c24bc9..0000000000 --- a/client/Cargo.lock +++ /dev/null @@ -1,586 +0,0 @@ -[[package]] -name = "arrayvec" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "atom" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "bitflags" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "byteorder" -version = "1.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "cfg-if" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-channel 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-deque 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam-channel" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam-deque" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam-deque" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam-utils" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam-utils" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "crossbeam-utils" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "derivative" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "either" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "fnv" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "hibitset" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "atom 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "lazy_static" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "libc" -version = "0.2.45" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "lock_api" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "log" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "memoffset" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "mopa" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "nodrop" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "nonzero_signed" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "num_cpus" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "owning_ref" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "owning_ref" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "parking_lot" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "parking_lot" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "parking_lot_core" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "parking_lot_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "proc-macro2" -version = "0.4.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "quote" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_core" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "rayon" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rayon-core" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "scopeguard" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "shred" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "mopa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "shred-derive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "shrev" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "derivative 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "smallvec" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "specs" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "derivative 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "hibitset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "mopa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "nonzero_signed 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "shred 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "shred-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "shrev 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tuple_utils 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "stable_deref_trait" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "syn" -version = "0.15.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "tuple_utils" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "unreachable" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "veloren-client" -version = "0.1.0" -dependencies = [ - "specs 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "winapi" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[metadata] -"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" -"checksum atom 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3c86699c3f02778ec07158376991c8f783dd1f2f95c579ffaf0738dc984b2fe2" -"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" -"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" -"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum crossbeam 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d7408247b1b87f480890f28b670c5f8d9a8a4274833433fe74dc0dfd46d33650" -"checksum crossbeam-channel 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7b85741761b7f160bc5e7e0c14986ef685b7f8bf9b7ad081c60c604bb4649827" -"checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" -"checksum crossbeam-deque 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7792c4a9b5a4222f654e3728a3dd945aacc24d2c3a1a096ed265d80e4929cb9a" -"checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" -"checksum crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "30fecfcac6abfef8771151f8be4abc9e4edc112c2bcb233314cafde2680536e9" -"checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8" -"checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" -"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" -"checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a" -"checksum derivative 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6073e9676dbebdddeabaeb63e3b7cefd23c86f5c41d381ee1237cc77b1079898" -"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" -"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" -"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -"checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -"checksum hibitset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a795da5d89ae959c6765f92de69d0f1642134a80f0898f0ab231f7d67ffc5749" -"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" -"checksum libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "2d2857ec59fadc0773853c664d2d18e7198e83883e7060b63c924cb077bd5c74" -"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" -"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" -"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" -"checksum mopa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a785740271256c230f57462d3b83e52f998433a7062fc18f96d5999474a9f915" -"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" -"checksum nonzero_signed 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d9813c459ba38abf9c40eecc8d59738eb7ebcfc45a857030967372dcb83e18de" -"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" -"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" -"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" -"checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" -"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" -"checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" -"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" -"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" -"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" -"checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" -"checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" -"checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" -"checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" -"checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" -"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" -"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" -"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum shred 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c75ec29e8d2959ad96a1087fe4cadb926c6fc17cbae9812314fa8efe720aa2a" -"checksum shred-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fcf34e5e5302d3024aba7afc291f6d1ca7573ed035d3c0796976ba3f10691a1" -"checksum shrev 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ec60ed6f60a4b3cdc2ceacf57215db3408fbd8990f66a38686a31558cd9da482" -"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" -"checksum specs 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06df46b79dafa300305d7bddb756557d44385e5f8b311fa640bbfa2c748a358" -"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" -"checksum syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc" -"checksum tuple_utils 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cbfecd7bb8f0a3e96b3b31c46af2677a55a588767c0091f484601424fcb20e7e" -"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" -"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/client/Cargo.toml b/client/Cargo.toml index 82e21c72d3..13219e28a2 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -18,5 +18,5 @@ num_cpus = "1.10.1" tracing = { version = "0.1", default-features = false } specs = "0.16.1" vek = { version = "0.11.0", features = ["serde"] } -hashbrown = { version = "0.6", features = ["rayon", "serde", "nightly"] } +hashbrown = { version = "0.7.2", features = ["rayon", "serde", "nightly"] } authc = { git = "https://gitlab.com/veloren/auth.git", rev = "223a4097f7ebc8d451936dccb5e6517194bbf086" } diff --git a/common/Cargo.toml b/common/Cargo.toml index e59ffa78c0..ebe2941209 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -25,7 +25,7 @@ rand = "0.7" rayon = "^1.3.0" lazy_static = "1.4.0" lz4-compress = "0.1.1" -hashbrown = { version = "0.6", features = ["rayon", "serde", "nightly"] } +hashbrown = { version = "0.7.2", features = ["rayon", "serde", "nightly"] } find_folder = "0.3.0" parking_lot = "0.9.0" crossbeam = "0.7" diff --git a/server/Cargo.toml b/server/Cargo.toml index 9c9de666a3..2621f15a00 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -30,7 +30,7 @@ serde_derive = "1.0" serde_json = "1.0" rand = { version = "0.7", features = ["small_rng"] } chrono = "0.4.9" -hashbrown = { version = "0.6", features = ["rayon", "serde", "nightly"] } +hashbrown = { version = "0.7.2", features = ["rayon", "serde", "nightly"] } crossbeam = "=0.7.2" prometheus = { version = "0.7", default-features = false} prometheus-static-metric = "0.2" diff --git a/voxygen/Cargo.toml b/voxygen/Cargo.toml index 9072812984..e16d06f1a3 100644 --- a/voxygen/Cargo.toml +++ b/voxygen/Cargo.toml @@ -63,7 +63,7 @@ treeculler = { git = "https://gitlab.com/yusdacra/treeculler.git" } rodio = { version = "0.10", default-features = false, features = ["wav", "vorbis"] } cpal = "0.10" crossbeam = "=0.7.2" -hashbrown = { version = "0.6", features = ["rayon", "serde", "nightly"] } +hashbrown = { version = "0.7.2", features = ["rayon", "serde", "nightly"] } chrono = "0.4.9" bincode = "1.2" deunicode = "1.0" diff --git a/world/Cargo.toml b/world/Cargo.toml index 90b58e4528..9474e99bbc 100644 --- a/world/Cargo.toml +++ b/world/Cargo.toml @@ -15,7 +15,7 @@ vek = "0.11.0" noise = { version = "0.6.0", default-features = false } num = "0.2.0" ordered-float = "1.0" -hashbrown = { version = "0.6", features = ["rayon", "serde", "nightly"] } +hashbrown = { version = "0.7.2", features = ["rayon", "serde", "nightly"] } lazy_static = "1.4.0" tracing = { version = "0.1", default-features = false } rand = "0.7"