mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
properly use the target vs pickup range, in choosing the interactable. when finding the target_entity, use the proper limited dist range (cast_dist) with the proper upper bounds.
This commit is contained in:
parent
5c66f73bb4
commit
42d5836cfa
@ -1,6 +1,8 @@
|
||||
// The limit on distance between the entity and a collectible (squared)
|
||||
pub const MAX_PICKUP_RANGE: f32 = 5.0;
|
||||
pub const MAX_MOUNT_RANGE: f32 = 14.0;
|
||||
/// Max distance an entity can be "targeted"
|
||||
pub const MAX_TARGET_RANGE: f32 = 300.0;
|
||||
|
||||
pub const GRAVITY: f32 = 25.0;
|
||||
pub const FRIC_GROUND: f32 = 0.15;
|
||||
|
@ -6,7 +6,7 @@ use super::target::{self, Target};
|
||||
use client::Client;
|
||||
use common::{
|
||||
comp,
|
||||
consts::MAX_PICKUP_RANGE,
|
||||
consts::{MAX_PICKUP_RANGE, MAX_TARGET_RANGE},
|
||||
terrain::Block,
|
||||
util::find_dist::{Cube, Cylinder, FindDist},
|
||||
vol::ReadVol,
|
||||
@ -62,7 +62,7 @@ pub(super) fn select_interactable(
|
||||
|
||||
if let Some(interactable) = entity_target
|
||||
.and_then(|t| {
|
||||
if t.distance < MAX_PICKUP_RANGE {
|
||||
if t.distance < MAX_TARGET_RANGE {
|
||||
let entity = t.kind.0;
|
||||
Some(Interactable::Entity(entity))
|
||||
} else {
|
||||
|
@ -5,7 +5,7 @@ use vek::*;
|
||||
use client::{self, Client};
|
||||
use common::{
|
||||
comp,
|
||||
consts::MAX_PICKUP_RANGE,
|
||||
consts::{MAX_PICKUP_RANGE, MAX_TARGET_RANGE},
|
||||
terrain::Block,
|
||||
util::find_dist::{Cylinder, FindDist},
|
||||
vol::ReadVol,
|
||||
@ -35,8 +35,6 @@ impl<T> Target<T> {
|
||||
pub fn position_int(self) -> Vec3<i32> { self.position.map(|p| p.floor() as i32) }
|
||||
}
|
||||
|
||||
/// Max distance an entity can be "targeted"
|
||||
const MAX_TARGET_RANGE: f32 = 300.0;
|
||||
/// Calculate what the cursor is pointing at within the 3d scene
|
||||
#[allow(clippy::type_complexity)]
|
||||
pub(super) fn targets_under_cursor(
|
||||
@ -168,7 +166,7 @@ pub(super) fn targets_under_cursor(
|
||||
|
||||
let seg_ray = LineSegment3 {
|
||||
start: cam_pos,
|
||||
end: cam_pos + cam_dir * shortest_cam_dist,
|
||||
end: cam_pos + cam_dir * cast_dist,
|
||||
};
|
||||
// TODO: fuzzy borders
|
||||
let entity_target = nearby
|
||||
|
Loading…
Reference in New Issue
Block a user