pub(crate) struct RotationPlan {
local_bindings: Box<[RotationSpellBinding]>,
availability: Box<[RotationSpellBinding]>,
cast_profiles: Box<[CastProfile]>,
cast_target_aura_handles: Box<[AuraSlotHandle]>,
stance_exception_handles: Box<[AuraSlotHandle]>,
shapeshift_form_flags: Box<[i32]>,
projections: Box<[RotationProjectionBinding]>,
item_uses: Box<[Option<ItemUseBinding>]>,
decision_subscriptions: [RotationDecisionSubscription; 4],
decision_thresholds: Box<[RotationDecisionThreshold]>,
may_cast_off_gcd: bool,
}Expand description
Immutable rotation bindings derived from [PreparedRotation] reference metadata.
Fields§
§local_bindings: Box<[RotationSpellBinding]>§availability: Box<[RotationSpellBinding]>§cast_profiles: Box<[CastProfile]>§cast_target_aura_handles: Box<[AuraSlotHandle]>§stance_exception_handles: Box<[AuraSlotHandle]>§shapeshift_form_flags: Box<[i32]>§projections: Box<[RotationProjectionBinding]>§item_uses: Box<[Option<ItemUseBinding>]>§decision_subscriptions: [RotationDecisionSubscription; 4]§decision_thresholds: Box<[RotationDecisionThreshold]>§may_cast_off_gcd: boolImplementations§
Source§impl RotationPlan
impl RotationPlan
pub(crate) fn compile( prepared: &PreparedRotation, inputs: RotationPlanInputs<'_>, game_data: &ResolvedGameData, ) -> Result<Self, RotationPlanError>
pub(crate) fn availability(&self) -> &[RotationSpellBinding]
pub(crate) fn availability_binding( &self, spell_id: u32, ) -> Option<RotationSpellBinding>
pub(crate) fn cast_profile(&self, local: LocalSpellIdx) -> CastProfile
pub(crate) fn cast_profile_ref(&self, local: LocalSpellIdx) -> &CastProfile
pub(crate) fn aura_stacks( &self, instance: &CombatInstance, requirement: CastAuraRequirement, target: EnemyIdx, ) -> i32
pub(crate) fn aura_active( &self, instance: &CombatInstance, requirement: CastAuraRequirement, target: EnemyIdx, ) -> bool
pub(crate) fn stance_exception_active( &self, instance: &CombatInstance, profile: &CastProfile, ) -> bool
pub(crate) fn shapeshift_form_flags(&self, form: u8) -> SpellShapeshiftFormFlags
pub(crate) fn local_binding(&self, local: LocalSpellIdx) -> RotationSpellBinding
pub(crate) fn projections(&self) -> &[RotationProjectionBinding]
pub(crate) fn item_use(&self, slot: GearSlot) -> Option<ItemUseBinding>
pub(crate) fn item_uses(&self) -> impl Iterator<Item = ItemUseBinding> + '_
pub(crate) const fn decision_subscription( &self, mode: RotationDecisionMode, ) -> &RotationDecisionSubscription
pub(crate) fn exact_decision_horizon( &self, program: &CombatProgram, instance: &CombatInstance, now: SimTime, ) -> Option<SimTime>
pub(crate) const fn may_cast_off_gcd(&self) -> bool
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RotationPlan
impl RefUnwindSafe for RotationPlan
impl Send for RotationPlan
impl Sync for RotationPlan
impl Unpin for RotationPlan
impl UnsafeUnpin for RotationPlan
impl UnwindSafe for RotationPlan
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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