diff --git a/CHANGELOG.md b/CHANGELOG.md index c387001e17..35ec7fd29b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Stealth stat values on (some) armors - All new dismantling interface found at your nearest dismantling staion - Wearable headgear, including hood, crown, bandanas +- Bomb sprites (can be exploded with arrows or other explosions) +- Campfire waypoints in towns +- Arbitrary volume entities ### Changed diff --git a/common/src/comp/body/ship.rs b/common/src/comp/body/ship.rs index bc9286e807..ca94fb2c89 100644 --- a/common/src/comp/body/ship.rs +++ b/common/src/comp/body/ship.rs @@ -3,7 +3,6 @@ use crate::{ consts::{AIR_DENSITY, WATER_DENSITY}, make_case_elim, terrain::{Block, BlockKind, SpriteKind}, - volumes::dyna::Dyna, }; use rand::prelude::SliceRandom; use serde::{Deserialize, Serialize}; @@ -245,13 +244,15 @@ pub mod figuredata { #[test] fn test_ship_manifest_entries() { for body in super::ALL_BODIES { - assert!( - VOXEL_COLLIDER_MANIFEST - .read() - .colliders - .get(body.manifest_entry()) - .is_some() - ); + if let Some(entry) = body.manifest_entry() { + assert!( + VOXEL_COLLIDER_MANIFEST + .read() + .colliders + .get(entry) + .is_some() + ); + } } } } diff --git a/server/src/cmd.rs b/server/src/cmd.rs index 2a01345d47..7963dd57a5 100644 --- a/server/src/cmd.rs +++ b/server/src/cmd.rs @@ -35,7 +35,7 @@ use common::{ generation::EntityInfo, npc::{self, get_npc_name}, resources::{BattleMode, PlayerPhysicsSettings, Time, TimeOfDay}, - terrain::{Block, BlockKind, SpriteKind, TerrainChunkSize, TerrainGrid}, + terrain::{Block, BlockKind, SpriteKind, TerrainChunkSize}, uid::Uid, vol::{ReadVol, RectVolSize}, Damage, DamageKind, DamageSource, Explosion, LoadoutBuilder, RadiusEffect, @@ -1302,10 +1302,9 @@ fn handle_make_volume( _action: &ChatCommand, ) -> CmdResult<()> { use comp::body::ship::figuredata::VoxelCollider; - use rand::prelude::*; //let () = parse_args!(args); - let mut pos = position(server, target, "target")?; + let pos = position(server, target, "target")?; let ship = comp::ship::Body::Volume; let sz = Vec3::new(15, 15, 15); let collider = { diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 89e44e4747..1b3c0ddf1a 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -52,6 +52,7 @@ use core::{ use guillotiere::AtlasAllocator; use hashbrown::HashMap; use specs::{saveload::MarkerAllocator, Entity as EcsEntity, Join, LazyUpdate, WorldExt}; +use std::sync::Arc; use treeculler::{BVol, BoundingSphere}; use vek::*; @@ -4785,7 +4786,7 @@ impl FigureMgr { &mut self.col_lights, vk, inventory, - vol.clone(), + Arc::clone(vol), tick, player_camera_mode, player_character_state, diff --git a/voxygen/src/scene/figure/volume.rs b/voxygen/src/scene/figure/volume.rs index e43f9517d1..9f4664c80c 100644 --- a/voxygen/src/scene/figure/volume.rs +++ b/voxygen/src/scene/figure/volume.rs @@ -10,7 +10,6 @@ use common::{ vol::ReadVol, }; use std::{convert::TryFrom, sync::Arc}; -use vek::*; #[derive(Copy, Clone, PartialEq, Eq, Hash)] pub struct VolumeKey { @@ -39,7 +38,7 @@ impl anim::Skeleton for VolumeKey { ) -> anim::Offsets { let scale_mat = anim::vek::Mat4::scaling_3d(1.0 / 11.0); - let bone = base_mat * scale_mat; // * anim::vek::Mat4::::identity(); + let bone = base_mat * scale_mat; *(<&mut [_; Self::BONE_COUNT]>::try_from(&mut buf[0..Self::BONE_COUNT]).unwrap()) = [ anim::make_bone(bone),