Skip to main content

ManaConversionMatrix

Struct ManaConversionMatrix 

Source
pub struct ManaConversionMatrix { /* private fields */ }
Expand description

Mana conversion/restriction matrix controlling what colors can pay for what.

Mirrors Java’s forge.game.mana.ManaConversionMatrix.

The conversion matrix ORs byte values to make mana more payable (additive). The restriction matrix ANDs byte values to make mana less payable (restrictive).

Implementations§

Source§

impl ManaConversionMatrix

Source

pub fn new() -> Self

Create a new matrix with identity conversion and no restrictions. Mirrors Java’s constructor which calls restoreColorReplacements().

Source

pub fn get_possible_color_uses(&self, color: u8) -> u8

Get the effective color uses for a given color after applying conversion and restriction. Mirrors Java’s ManaConversionMatrix.getPossibleColorUses().

Source

pub fn adjust_color_replacement( &mut self, original: u8, replacement: u8, additive: bool, )

Adjust color replacement: additive ORs into conversion, restrictive ANDs into restriction. Mirrors Java’s ManaConversionMatrix.adjustColorReplacement().

Source

pub fn apply_card_matrix(&mut self, other: &ManaConversionMatrix)

Merge another matrix into this one: OR conversion, AND restriction. Mirrors Java’s ManaConversionMatrix.applyCardMatrix().

Source

pub fn restore_color_replacements(&mut self)

Reset to identity: each color pays only itself, no restrictions. Mirrors Java’s ManaConversionMatrix.restoreColorReplacements().

Source

pub fn is_snow_for_color(&self) -> bool

Whether snow mana can substitute for colored mana. Mirrors Java’s ManaConversionMatrix.isSnowForColor().

Source

pub fn set_snow_for_color(&mut self, value: bool)

Set whether snow mana can substitute for colored mana. Mirrors Java’s ManaConversionMatrix.setSnowForColor().

Trait Implementations§

Source§

impl Clone for ManaConversionMatrix

Source§

fn clone(&self) -> ManaConversionMatrix

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
Source§

impl Debug for ManaConversionMatrix

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for ManaConversionMatrix

Source§

fn default() -> Self

Returns the “default value” for a type. 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> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

Source§

fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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.

Source§

impl<T> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The type for metadata in pointers and references to Self.
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V