diff --git a/assets/voxygen/audio/sfx.ron b/assets/voxygen/audio/sfx.ron index d6964cff60..6acc99cb9a 100644 --- a/assets/voxygen/audio/sfx.ron +++ b/assets/voxygen/audio/sfx.ron @@ -53,7 +53,7 @@ ], threshold: 15.0, ), - RunningWater: ( + RunningWaterSlow: ( files: [ "voxygen.audio.sfx.ambient.river_sounds.running_water-001", "voxygen.audio.sfx.ambient.river_sounds.running_water-002", @@ -85,6 +85,35 @@ ], threshold: 7.0, ), + RunningWaterFast: ( + files: [ + "voxygen.audio.sfx.ambient.river_sounds.fast_water-001", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-002", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-003", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-004", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-005", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-006", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-007", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-008", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-009", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-010", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-011", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-012", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-013", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-014", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-015", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-016", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-017", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-018", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-019", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-020", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-021", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-022", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-023", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-024", + ], + threshold: 5.0, + ), // // Character States // diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-001.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-001.ogg new file mode 100644 index 0000000000..faa5b1f652 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-001.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21de887b9b07897b27f500f87ca7c886e1f3506b8763507222d813b3df0956f9 +size 7939 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-002.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-002.ogg new file mode 100644 index 0000000000..96ac4488bb --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-002.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fe2ec5e2494e52703652f48fbaa2546e328827976a2136146ba4fd8333d684a +size 7875 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-003.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-003.ogg new file mode 100644 index 0000000000..bdad67c3bf --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-003.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e1d1d13c1abc2f2d54158e04704fbde169381c5d22a66a274244faf5670880b +size 7882 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-004.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-004.ogg new file mode 100644 index 0000000000..7d75b08d79 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-004.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3456e97100cca30143a24b3e5b9b80a656f8a498df5198d006159cfe1d456bbb +size 8087 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-005.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-005.ogg new file mode 100644 index 0000000000..108b99fbe5 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-005.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5760aeebeab4108de3bce7a40dec0b27f5414642849a8725f2e7af09d2cbd20 +size 8486 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-006.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-006.ogg new file mode 100644 index 0000000000..ac5c2ea9d6 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-006.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b038017fcc4a35c93c98bd6853c0511c1591145c53d75bad92e92eb1791a1d7 +size 7921 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-007.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-007.ogg new file mode 100644 index 0000000000..3f204a2f88 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-007.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f531c3c057f6acc1dd0ee88a88d00477f67ecc7fa740afa7c9983b5777f5d03c +size 8164 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-008.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-008.ogg new file mode 100644 index 0000000000..af7ceabd89 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-008.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b65f0e4d7bb29bc545eed46765177251ee5f731d85a8fcdc4c51cc7626ce1a2 +size 8034 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-009.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-009.ogg new file mode 100644 index 0000000000..32d1ebb26e --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-009.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66659074edf092ae53a774f46142648c2a681b7aba483905bcb64349c34d43bc +size 7891 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-010.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-010.ogg new file mode 100644 index 0000000000..0734bad3dd --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-010.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae33874c0ce24cba55e6d3ba5054fee371157aaf85e3d896161d22e0ac75b40d +size 8357 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-011.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-011.ogg new file mode 100644 index 0000000000..e23b2ffad8 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-011.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e14334253777cece817db71f3570c37b4a1be8f50159bc2296215540f8bce7b +size 8138 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-012.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-012.ogg new file mode 100644 index 0000000000..89050e1fc8 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-012.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fe2adb58437278396b963496161aa9bfd5787a3d8ff854fa17019e1442c5892 +size 8097 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-013.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-013.ogg new file mode 100644 index 0000000000..bdb9db395e --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-013.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2732bc33343c52346742db8a38341247b112fb52fb8fcf2950c683dff6c829e +size 8279 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-014.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-014.ogg new file mode 100644 index 0000000000..f0004bd637 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-014.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:894cd02be9401ba331da764b2dfcfe2859fe5fe9aac9f5528dc8362d15ab8797 +size 7940 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-015.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-015.ogg new file mode 100644 index 0000000000..2cc18439c3 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-015.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ab66a5a6dbda89d25f31999dbd041e2d79afe7d8993d22795871e6a733af283 +size 8476 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-016.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-016.ogg new file mode 100644 index 0000000000..ae82ba1e38 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-016.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b0b78c6d309ec606f9092619db5047f024470a4422830646e43f3cf4227d6e3 +size 8133 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-017.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-017.ogg new file mode 100644 index 0000000000..332dee08fe --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-017.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe6d6fca6081b2c68ec07a02b488db99294d21273259cd946eb0ca55e26a9c49 +size 7930 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-018.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-018.ogg new file mode 100644 index 0000000000..c5d4e6d829 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-018.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:301a7c95c949d8b3ecaf714e554dbcba16ce20c6af49e002d3583dc78d1922ad +size 7910 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-019.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-019.ogg new file mode 100644 index 0000000000..af92673e72 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-019.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1ba5255e0f9b25bc4c530f4e18848740181282bee2bcf47afe9ab6cc49ab9a2 +size 7930 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-020.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-020.ogg new file mode 100644 index 0000000000..78335735c9 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-020.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13ec556349f237cbc192d1cb90f35a2b67d6e3645e948cfcce807ba298c24502 +size 7962 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-021.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-021.ogg new file mode 100644 index 0000000000..b38a921eca --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-021.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08566b7f9f2767312b801373e1747777f8231fcebeda07829835fa796338cfb7 +size 7875 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-022.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-022.ogg new file mode 100644 index 0000000000..def6bce224 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-022.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6eddf64edb522baa41fc7d4d42129d2a8ca3988ed73efb87c80e2981f1907a3a +size 7902 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-023.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-023.ogg new file mode 100644 index 0000000000..c8ab45b903 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-023.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d97d908cb9477362bef410368683be9c512609b2384e9414a54d79443afdec4 +size 7888 diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-024.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-024.ogg new file mode 100644 index 0000000000..ab4b91c1e7 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-024.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aecab4fc3c258103d4c75ba597f4683d421d4d0212da486d83347984c3afc4db +size 7922 diff --git a/common/src/terrain/mod.rs b/common/src/terrain/mod.rs index 1dc4bcbf5a..a4a647512f 100644 --- a/common/src/terrain/mod.rs +++ b/common/src/terrain/mod.rs @@ -86,6 +86,7 @@ pub struct TerrainChunkMeta { tree_density: f32, contains_cave: bool, contains_river: bool, + river_velocity: Vec3, temp: f32, contains_settlement: bool, contains_dungeon: bool, @@ -99,6 +100,7 @@ impl TerrainChunkMeta { tree_density: f32, contains_cave: bool, contains_river: bool, + river_velocity: Vec3, temp: f32, contains_settlement: bool, contains_dungeon: bool, @@ -110,6 +112,7 @@ impl TerrainChunkMeta { tree_density, contains_cave, contains_river, + river_velocity, temp, contains_settlement, contains_dungeon, @@ -124,6 +127,7 @@ impl TerrainChunkMeta { tree_density: 0.0, contains_cave: false, contains_river: false, + river_velocity: Vec3::zero(), temp: 0.0, contains_settlement: false, contains_dungeon: false, @@ -142,6 +146,8 @@ impl TerrainChunkMeta { pub fn contains_river(&self) -> bool { self.contains_river } + pub fn river_velocity(&self) -> Vec3 { self.river_velocity } + pub fn contains_settlement(&self) -> bool { self.contains_settlement } pub fn contains_dungeon(&self) -> bool { self.contains_dungeon } diff --git a/voxygen/src/audio/sfx/event_mapper/block/mod.rs b/voxygen/src/audio/sfx/event_mapper/block/mod.rs index 2641e7802c..7812a0011f 100644 --- a/voxygen/src/audio/sfx/event_mapper/block/mod.rs +++ b/voxygen/src/audio/sfx/event_mapper/block/mod.rs @@ -98,12 +98,19 @@ impl EventMapper for BlockEventMapper { cond: |st| st.get_day_period().is_dark(), }, BlockSounds { - blocks: |boi| &boi.river, + blocks: |boi| &boi.slow_river, range: 1, - sfx: SfxEvent::RunningWater, + sfx: SfxEvent::RunningWaterSlow, volume: 1.5, cond: |_| true, }, + BlockSounds { + blocks: |boi| &boi.fast_river, + range: 1, + sfx: SfxEvent::RunningWaterFast, + volume: 2.5, + cond: |_| true, + }, //BlockSounds { // blocks: |boi| &boi.embers, // range: 1, @@ -188,7 +195,9 @@ impl EventMapper for BlockEventMapper { Vec3::from(chunk_pos * TerrainChunk::RECT_SIZE.map(|e| e as i32)); // Replace all RunningWater blocks with just one random one per tick - let blocks = if sounds.sfx == SfxEvent::RunningWater { + let blocks = if sounds.sfx == SfxEvent::RunningWaterSlow + || sounds.sfx == SfxEvent::RunningWaterFast + { blocks .choose(&mut thread_rng()) .map(std::slice::from_ref) @@ -205,7 +214,8 @@ impl EventMapper for BlockEventMapper { if ((sounds.sfx == SfxEvent::Birdcall || sounds.sfx == SfxEvent::Owl) && thread_rng().gen_bool(0.999)) || (sounds.sfx == SfxEvent::Frog && thread_rng().gen_bool(0.75)) - || (sounds.sfx == SfxEvent::RunningWater && thread_rng().gen_bool(0.5)) + || (sounds.sfx == SfxEvent::RunningWaterSlow + && thread_rng().gen_bool(0.5)) { continue; } diff --git a/voxygen/src/audio/sfx/mod.rs b/voxygen/src/audio/sfx/mod.rs index 9e2d238c8e..6c522f6e6f 100644 --- a/voxygen/src/audio/sfx/mod.rs +++ b/voxygen/src/audio/sfx/mod.rs @@ -150,7 +150,8 @@ pub enum SfxEvent { Cricket3, Frog, Bees, - RunningWater, + RunningWaterSlow, + RunningWaterFast, Idle, Swim, Run(BlockKind), diff --git a/voxygen/src/scene/terrain/watcher.rs b/voxygen/src/scene/terrain/watcher.rs index 17d5acb77f..16a8060a75 100644 --- a/voxygen/src/scene/terrain/watcher.rs +++ b/voxygen/src/scene/terrain/watcher.rs @@ -17,7 +17,8 @@ pub struct BlocksOfInterest { pub leaves: Vec>, pub drip: Vec>, pub grass: Vec>, - pub river: Vec>, + pub slow_river: Vec>, + pub fast_river: Vec>, pub fires: Vec>, pub smokers: Vec>, pub beehives: Vec>, @@ -43,7 +44,8 @@ impl BlocksOfInterest { let mut leaves = Vec::new(); let mut drip = Vec::new(); let mut grass = Vec::new(); - let mut river = Vec::new(); + let mut slow_river = Vec::new(); + let mut fast_river = Vec::new(); let mut fires = Vec::new(); let mut smokers = Vec::new(); let mut beehives = Vec::new(); @@ -61,6 +63,8 @@ impl BlocksOfInterest { let mut rng = ChaCha8Rng::from_seed(thread_rng().gen()); + let river_speed_sq = chunk.meta().river_velocity().magnitude_squared(); + chunk.iter_changed().for_each(|(pos, block)| { match block.kind() { BlockKind::Leaves if rng.gen_range(0..16) == 0 => leaves.push(pos), @@ -76,7 +80,9 @@ impl BlocksOfInterest { _ => {}, } }, - BlockKind::Water if chunk.meta().contains_river() => river.push(pos), + // Assign a river speed to water blocks depending on river velocity + BlockKind::Water if river_speed_sq > 0.9_f32.powi(2) => fast_river.push(pos), + BlockKind::Water if river_speed_sq > 0.3_f32.powi(2) => slow_river.push(pos), BlockKind::Snow if rng.gen_range(0..16) == 0 => snow.push(pos), BlockKind::Lava if rng.gen_range(0..5) == 0 => fires.push(pos + Vec3::unit_z()), BlockKind::Snow | BlockKind::Ice if rng.gen_range(0..16) == 0 => snow.push(pos), @@ -153,7 +159,8 @@ impl BlocksOfInterest { leaves, drip, grass, - river, + slow_river, + fast_river, fires, smokers, beehives, diff --git a/world/src/lib.rs b/world/src/lib.rs index 4bd69d869e..b9e278f50e 100644 --- a/world/src/lib.rs +++ b/world/src/lib.rs @@ -291,6 +291,7 @@ impl World { sim_chunk.tree_density, sim_chunk.cave.1.alt != 0.0, sim_chunk.river.is_river(), + sim_chunk.river.velocity, sim_chunk.temp, sim_chunk .sites