Skip to main content

ProjectileRef

Struct ProjectileRef 

pub struct ProjectileRef(/* private fields */);
Expand description

A projectile of the open world (vanilla’s Projectile), narrowed with host.projectile: arrows, tridents (a player’s too), firework rockets, thrown items, fireballs, wind charges, skulls, shulker bullets and mods’ thrown types.

Implementations§

§

impl ProjectileRef

pub fn owner(self, host: &dyn Host) -> Option<EntityRef>

Side: server. Projectile.getOwner: the owner as a resolved entity. None for no owner, one that is gone or in another level, or a stale handle.

pub fn pickup(self, host: &dyn Host) -> Option<ArrowPickup>

Side: server. AbstractArrow.pickup, for an arrow or a mob’s trident.

pub fn pierce_level(self, host: &dyn Host) -> Result<i8, PierceLevelError>

Side: server. AbstractArrow.getPierceLevel: the signed byte stored by vanilla.

pub fn base_damage(self, host: &dyn Host) -> Option<f64>

Side: server. AbstractArrow.getBaseDamage, for an arrow (a trident’s is fixed).

pub fn critical(self, host: &dyn Host) -> Option<bool>

Side: server. AbstractArrow.isCritArrow, for an arrow.

pub fn set_owner( self, host: &mut dyn ServerHost, owner: Option<EntityRef>, ) -> bool

Side: server. Projectile.setOwner. False for a stale projectile or owner, or an owner that is a fishing hook (a trident a player threw takes a player only). Does not touch leftOwner.

pub fn deflect( self, host: &mut dyn ServerHost, deflection: Deflection, by: Option<EntityRef>, new_owner: Option<EntityRef>, by_attack: bool, power: [f64; 3], ) -> bool

Side: server. Projectile.deflect(deflection, by, newOwner, byAttack, power), with power per axis, through Projectile::deflect for the projectile list (the engine path gameplay uses). REVERSE draws one float from the projectile’s own random; AIM_DEFLECT uses by’s look and MOMENTUM_DEFLECT its normalized known speed, and both change nothing without by. The new owner is set, then onDeflection: a hurting projectile’s acceleration power is 0.1 by an attack, else halved. A wind charge refuses for its first five ticks, with no change and no draw. A trident a player threw and a rocket turn the same way (no acceleration power). False, and nothing changed, for a stale projectile, by or owner, a non-finite power or a refusal.

pub fn set_pickup(self, host: &mut dyn ServerHost, pickup: ArrowPickup) -> bool

Side: server. Sets AbstractArrow.pickup. False for a stale handle or a projectile that is not an arrow or a mob’s trident.

pub fn set_pierce_level( self, host: &mut dyn ServerHost, level: i8, ) -> Result<(), PierceLevelError>

Side: server. AbstractArrow.setPierceLevel: stores the signed byte without clamping.

pub fn set_base_damage(self, host: &mut dyn ServerHost, damage: f64) -> bool

Side: server. AbstractArrow.setBaseDamage. False for a stale handle, a projectile that is not an arrow, or a value that is not finite.

pub fn set_critical(self, host: &mut dyn ServerHost, critical: bool) -> bool

Side: server. AbstractArrow.setCritArrow; clients see the flag at once through the entity data. False for a stale handle or a projectile that is not an arrow.

§

impl ProjectileRef

pub fn entity(self) -> EntityRef

The same entity as an EntityRef.

Trait Implementations§

§

impl Clone for ProjectileRef

§

fn clone(&self) -> ProjectileRef

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
§

impl Copy for ProjectileRef

§

impl Debug for ProjectileRef

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Eq for ProjectileRef

§

impl Hash for ProjectileRef

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq for ProjectileRef

§

fn eq(&self, other: &ProjectileRef) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
§

impl StructuralPartialEq for ProjectileRef

§

impl Wire for ProjectileRef

§

const MIN: usize

Minimum encoded size, used to reject impossible collection lengths.
§

fn put(&self, out: &mut Writer)

Encodes this value, recording failures on the writer.
§

fn put_owned(self, out: &mut Writer)

Consumes owned data when a resource’s ownership must cross the boundary.
§

fn take(input: &mut Reader<'_>) -> Result<ProjectileRef, WireError>

Decodes one value, leaving any following bytes for the caller.

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> 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.

§

impl<T> Put for T
where T: Wire,

§

fn put_to(&self, out: &mut Writer)

Writes it.
§

impl<T> Record for T
where T: Wire,

§

fn encode(&self, out: &mut Writer)

Writes the argument into a hook call.
§

fn apply(&mut self, bytes: &[u8]) -> Result<(), WireError>

Applies one complete reply, refusing malformed or trailing bytes atomically.
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.