mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Allow aiming bombs
This commit is contained in:
@ -282,14 +282,17 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv
|
|||||||
if let Some(pos) =
|
if let Some(pos) =
|
||||||
state.ecs().read_storage::<comp::Pos>().get(entity)
|
state.ecs().read_storage::<comp::Pos>().get(entity)
|
||||||
{
|
{
|
||||||
|
let controllers =
|
||||||
|
state.ecs().read_storage::<comp::Controller>();
|
||||||
|
let controller = controllers.get(entity);
|
||||||
|
let look_dir = controller
|
||||||
|
.map_or_else(Vec3::zero, |c| c.inputs.look_dir.to_vec());
|
||||||
thrown_items.push((
|
thrown_items.push((
|
||||||
*pos,
|
*pos,
|
||||||
state
|
state
|
||||||
.read_component_copied::<comp::Vel>(entity)
|
.read_component_copied::<comp::Vel>(entity)
|
||||||
.unwrap_or_default(),
|
.unwrap_or_default(),
|
||||||
state
|
look_dir,
|
||||||
.read_component_copied::<comp::Ori>(entity)
|
|
||||||
.unwrap_or_default(),
|
|
||||||
*kind,
|
*kind,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@ -657,19 +660,14 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv
|
|||||||
let mut rng = rand::thread_rng();
|
let mut rng = rand::thread_rng();
|
||||||
|
|
||||||
// Throw items
|
// Throw items
|
||||||
for (pos, vel, ori, kind) in thrown_items {
|
for (pos, vel, look_dir, kind) in thrown_items {
|
||||||
let vel = match kind {
|
let vel = match kind {
|
||||||
item::Throwable::Firework(_) => Vec3::new(
|
item::Throwable::Firework(_) => Vec3::new(
|
||||||
rng.gen_range(-15.0..15.0),
|
rng.gen_range(-15.0..15.0),
|
||||||
rng.gen_range(-15.0..15.0),
|
rng.gen_range(-15.0..15.0),
|
||||||
rng.gen_range(80.0..110.0),
|
rng.gen_range(80.0..110.0),
|
||||||
),
|
),
|
||||||
_ => {
|
_ => vel.0 + look_dir * 20.0,
|
||||||
vel.0
|
|
||||||
+ *ori.look_dir() * 20.0
|
|
||||||
+ Vec3::unit_z() * 15.0
|
|
||||||
+ Vec3::<f32>::zero().map(|_| rand::thread_rng().gen::<f32>() - 0.5) * 4.0
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let uid = state.read_component_copied::<Uid>(entity);
|
let uid = state.read_component_copied::<Uid>(entity);
|
||||||
|
Reference in New Issue
Block a user