TnuaBuiltinJumpConfig

Struct TnuaBuiltinJumpConfig 

Source
pub struct TnuaBuiltinJumpConfig {
    pub height: Float,
    pub upslope_extra_gravity: Float,
    pub takeoff_extra_gravity: Float,
    pub takeoff_above_velocity: Float,
    pub fall_extra_gravity: Float,
    pub shorten_extra_gravity: Float,
    pub peak_prevention_at_upward_velocity: Float,
    pub peak_prevention_extra_gravity: Float,
    pub reschedule_cooldown: Option<Float>,
    pub input_buffer_time: Float,
    pub horizontal_distance: Float,
    pub disable_force_forward_after_peak: bool,
}

Fields§

§height: Float

The height the character will jump to.

If shorten_extra_gravity is higher than 0.0, the character may stop the jump in the middle if the jump action is no longer fed (usually when the player releases the jump button) and the character may not reach its full jump height.

The jump height is calculated from the center of the character at float_height to the center of the character at the top of the jump. It does not mean the height from the ground. The float height is calculated by the inspecting the character’s current position and the basis’ displacement.

§upslope_extra_gravity: Float

Extra gravity for breaking too fast jump from running up a slope.

When running up a slope, the character gets more jump strength to avoid slamming into the slope. This may cause the jump to be too high, so this value is used to brake it.

NOTE: This force will be added to the normal gravity.

§takeoff_extra_gravity: Float

Extra gravity for fast takeoff.

Without this, jumps feel painfully slow. Adding this will apply extra gravity until the vertical velocity reaches below takeoff_above_velocity, and increase the initial jump boost in order to compensate. This will make the jump feel more snappy.

§takeoff_above_velocity: Float

The range of upward velocity during takeoff_extra_gravity is applied.

To disable, set this to Float::INFINITY rather than zero.

§fall_extra_gravity: Float

Extra gravity for falling down after reaching the top of the jump.

NOTE: This force will be added to the normal gravity.

§shorten_extra_gravity: Float

Extra gravity for shortening a jump when the player releases the jump button.

NOTE: This force will be added to the normal gravity.

§peak_prevention_at_upward_velocity: Float

Used to decrease the time the character spends “floating” at the peak of the jump.

When the character’s upward velocity is above this value, peak_prevention_extra_gravity will be added to the gravity in order to shorten the float time.

This extra gravity is taken into account when calculating the initial jump speed, so the character is still supposed to reach its full jump height.

§peak_prevention_extra_gravity: Float

Extra gravity for decreasing the time the character spends at the peak of the jump.

NOTE: This force will be added to the normal gravity.

§reschedule_cooldown: Option<Float>

A duration, in seconds, after which the character would jump if the jump button was already pressed when the jump became available.

The duration is measured from the moment the jump became available - not from the moment the jump button was pressed.

When set to None, the character will not jump no matter how long the player holds the jump button.

If the jump button is held but the jump input is still buffered (see input_buffer_time), this setting will have no effect because the character will simply jump immediately.

§input_buffer_time: Float

A duration, in seconds, where a player can press a jump button before a jump becomes possible (typically when a character is still in the air and about the land) and the jump action would still get registered and be executed once the jump is possible.

§horizontal_distance: Float

When horizontal_displacement is given in the action input, multiply it by this number.

§disable_force_forward_after_peak: bool

When force_forward is given in the action input, only enforce it during the first part of the jump (rising up) and once the peak is reached and the character falls down allow its direction to be determined by the basis again.

Trait Implementations§

Source§

impl Clone for TnuaBuiltinJumpConfig

Source§

fn clone(&self) -> TnuaBuiltinJumpConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for TnuaBuiltinJumpConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for TnuaBuiltinJumpConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for TnuaBuiltinJumpConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

Source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Send + Sync>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> TypeData for T
where T: 'static + Send + Sync + Clone,

Source§

fn clone_type_data(&self) -> Box<dyn TypeData>

Creates a type-erased clone of this value.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> Settings for T
where T: 'static + Send + Sync,

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,