mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Increase glider aspect ratio and remove inline tweaks
This commit is contained in:
parent
df8b18903b
commit
93ce593c62
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -5473,7 +5473,6 @@ dependencies = [
|
|||||||
"hashbrown",
|
"hashbrown",
|
||||||
"image",
|
"image",
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"inline_tweak",
|
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"num-derive",
|
"num-derive",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
@ -5574,7 +5573,6 @@ version = "0.9.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"hashbrown",
|
"hashbrown",
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"inline_tweak",
|
|
||||||
"ordered-float 2.1.1",
|
"ordered-float 2.1.1",
|
||||||
"rand 0.8.3",
|
"rand 0.8.3",
|
||||||
"rayon",
|
"rayon",
|
||||||
|
@ -15,7 +15,7 @@ default = ["simd"]
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
||||||
common-base = { package = "veloren-common-base", path = "base" }
|
common-base = { package = "veloren-common-base", path = "base" }
|
||||||
inline_tweak = "1.0.8"
|
# inline_tweak = "1.0.8"
|
||||||
|
|
||||||
# Serde
|
# Serde
|
||||||
serde = { version = "1.0.110", features = ["derive", "rc"] }
|
serde = { version = "1.0.110", features = ["derive", "rc"] }
|
||||||
|
@ -146,7 +146,8 @@ impl Body {
|
|||||||
if ar > 25.0 {
|
if ar > 25.0 {
|
||||||
panic!(
|
panic!(
|
||||||
"Aerodynamic lift calculation does not work for aspect ratios \
|
"Aerodynamic lift calculation does not work for aspect ratios \
|
||||||
> 25"
|
> 25. Either decrease span length or increase chord length. \
|
||||||
|
The formula for AR is `span^2 / (pi * span/2 * chord/2)`"
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
// Oswald's efficiency factor (empirically derived--very magical)
|
// Oswald's efficiency factor (empirically derived--very magical)
|
||||||
@ -275,11 +276,10 @@ fn angle_of_attack(ori: &Ori, rel_flow_dir: &Dir) -> f32 {
|
|||||||
pub fn lift_coefficient(aspect_ratio: f32, planform_area: f32, aoa: f32) -> f32 {
|
pub fn lift_coefficient(aspect_ratio: f32, planform_area: f32, aoa: f32) -> f32 {
|
||||||
let aoa_abs = aoa.abs();
|
let aoa_abs = aoa.abs();
|
||||||
let stall_angle = PI * 0.1;
|
let stall_angle = PI * 0.1;
|
||||||
inline_tweak::tweak!(1.0)
|
planform_area
|
||||||
* planform_area
|
|
||||||
* if aoa_abs < stall_angle {
|
* if aoa_abs < stall_angle {
|
||||||
lift_slope(aspect_ratio, None) * aoa
|
lift_slope(aspect_ratio, None) * aoa
|
||||||
} else if inline_tweak::tweak!(true) {
|
} else {
|
||||||
// This is when flow separation and turbulence starts to kick in.
|
// This is when flow separation and turbulence starts to kick in.
|
||||||
// Going to just make something up (based on some data), as the alternative is
|
// Going to just make something up (based on some data), as the alternative is
|
||||||
// to just throw your hands up and return 0
|
// to just throw your hands up and return 0
|
||||||
@ -294,8 +294,6 @@ pub fn lift_coefficient(aspect_ratio: f32, planform_area: f32, aoa: f32) -> f32
|
|||||||
// let's just say lift goes down linearly again until we're at 90°
|
// let's just say lift goes down linearly again until we're at 90°
|
||||||
Lerp::lerp(c_l_max, 0.0, (aoa_abs - deg_45) / deg_45) * aoa_s
|
Lerp::lerp(c_l_max, 0.0, (aoa_abs - deg_45) / deg_45) * aoa_s
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
0.0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,8 +55,8 @@ impl CharacterBehavior for Data {
|
|||||||
mv_dir.y,
|
mv_dir.y,
|
||||||
Lerp::lerp_unclamped(
|
Lerp::lerp_unclamped(
|
||||||
0.0,
|
0.0,
|
||||||
data.inputs.look_dir.z + inline_tweak::tweak!(0.3),
|
data.inputs.look_dir.z + 0.3,
|
||||||
mv_dir.magnitude_squared() * inline_tweak::tweak!(2.0),
|
mv_dir.magnitude_squared() * 2.0,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
@ -27,11 +27,7 @@ impl CharacterBehavior for Data {
|
|||||||
.try_change_by(-energy_cost, EnergySource::Glide)
|
.try_change_by(-energy_cost, EnergySource::Glide)
|
||||||
.is_ok()
|
.is_ok()
|
||||||
{
|
{
|
||||||
update.character = CharacterState::Glide(glide::Data::new(
|
update.character = CharacterState::Glide(glide::Data::new(10.0, 0.6, *data.ori));
|
||||||
inline_tweak::tweak!(10.0),
|
|
||||||
inline_tweak::tweak!(1.0),
|
|
||||||
*data.ori,
|
|
||||||
));
|
|
||||||
} else {
|
} else {
|
||||||
update.energy.set_to(0, EnergySource::Glide);
|
update.energy.set_to(0, EnergySource::Glide);
|
||||||
update.character = CharacterState::Idle;
|
update.character = CharacterState::Idle;
|
||||||
|
@ -31,4 +31,4 @@ slab = "0.4.2"
|
|||||||
specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control", "derive"], rev = "5a9b71035007be0e3574f35184acac1cd4530496" }
|
specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control", "derive"], rev = "5a9b71035007be0e3574f35184acac1cd4530496" }
|
||||||
|
|
||||||
# Tweak running code
|
# Tweak running code
|
||||||
inline_tweak = { version = "1.0.8", features = ["release_tweak"] }
|
# inline_tweak = { version = "1.0.8", features = ["release_tweak"] }
|
||||||
|
@ -81,8 +81,7 @@ fn integrate_forces(
|
|||||||
|
|
||||||
// Hydrostatic/aerostatic forces
|
// Hydrostatic/aerostatic forces
|
||||||
// modify gravity to account for the effective density as a result of buoyancy
|
// modify gravity to account for the effective density as a result of buoyancy
|
||||||
let down_force =
|
let down_force = dt.0 * gravity * (density.0 - fluid_density.0) / density.0;
|
||||||
dt.0 * inline_tweak::tweak!(1.0) * gravity * (density.0 - fluid_density.0) / density.0;
|
|
||||||
vel.0.z -= down_force;
|
vel.0.z -= down_force;
|
||||||
|
|
||||||
vel
|
vel
|
||||||
|
Loading…
Reference in New Issue
Block a user