MFMv2.0.10
Movable Feast Machine Simulator 2.0.10
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions
MFM::AbstractElement_WaPat< CC > Class Template Reference
Inheritance diagram for MFM::AbstractElement_WaPat< CC >:
MFM::Element< CC > MFM::Element_Fish< CC > MFM::Element_Shark< CC >

Public Types

enum  {
  R = P::EVENT_WINDOW_RADIUS, BITS = P::BITS_PER_ATOM, BIRTH_AGE_POS = P3Atom<P>::P3_STATE_BITS_POS, BIRTH_AGE_LEN = 8,
  CURRENT_AGE_POS = BIRTH_AGE_POS + BIRTH_AGE_LEN, CURRENT_AGE_LEN = 8, WAPAT_FIRST_FREE_POS = CURRENT_AGE_POS + CURRENT_AGE_LEN
}
 
typedef CC::ATOM_TYPE T
 
typedef CC::PARAM_CONFIG P
 
typedef BitField< BitVector
< BITS >, VD::U32,
CURRENT_AGE_LEN,
CURRENT_AGE_POS > 
AFCurrentAge
 
typedef BitField< BitVector
< BITS >, VD::U32,
BIRTH_AGE_LEN, BIRTH_AGE_POS > 
AFBirthAge
 

Public Member Functions

u32 GetCurrentAge (const T &us) const
 
void SetCurrentAge (T &us, const u32 age) const
 
u32 GetBirthAge (const T &us) const
 
void SetBirthAge (T &us, const u32 age) const
 
 AbstractElement_WaPat (const UUID &uuid)
 
virtual u32 PercentMovable (const T &you, const T &me, const SPoint &offset) const
 
- Public Member Functions inherited from MFM::Element< CC >
 Element (const UUID &uuid)
 
void AllocateType ()
 
u32 GetType () const
 
const char * GetAtomicSymbol () const
 
const char * GetName () const
 
virtual void AppendDescription (const T *atom, OString64 &desc) const
 
bool IsType (u32 type) const
 
const UUIDGetUUID () const
 
virtual void Behavior (EventWindow< CC > &window) const =0
 
virtual const T & GetDefaultAtom () const
 
virtual u32 PhysicsColor () const
 
virtual const char * GetDescription () const
 
virtual u32 DefaultPhysicsColor () const =0
 
virtual u32 DefaultLowlightColor () const
 
void ToggleLowlightPhysicsColor ()
 
virtual u32 LocalPhysicsColor (const T &atom, u32 selector) const
 
virtual u32 Diffusability (EventWindow< CC > &ew, SPoint nowAt, SPoint maybeAt) const
 
u32 NoDiffusability (EventWindow< CC > &ew, SPoint nowAt, SPoint maybeAt) const
 
const ElementParameters< CC > & GetElementParameters () const
 
ElementParameters< CC > & GetElementParameters ()
 
const AtomicParameters< CC > & GetAtomicParameters () const
 
AtomicParameters< CC > & GetAtomicParameters ()
 

Additional Inherited Members

- Static Public Attributes inherited from MFM::Element< CC >
static const u32 COMPLETE_DIFFUSABILITY = 1000
 
- Protected Member Functions inherited from MFM::Element< CC >
virtual T BuildDefaultAtom () const
 
const BitVector
< P::BITS_PER_ATOM > & 
GetBits (const T &atom) const
 
BitVector< P::BITS_PER_ATOM > & GetBits (T &atom) const
 
bool IsValidAtomicSymbol (const char *symbol)
 
void SetAtomicSymbol (const char *symbol)
 
void SetName (const char *name)
 
void Diffuse (EventWindow< CC > &window) const
 

Member Function Documentation

template<class CC>
virtual u32 MFM::AbstractElement_WaPat< CC >::PercentMovable ( const T &  you,
const T &  me,
const SPoint offset 
) const
inlinevirtual

Determines how likely an Atom of this type is to be swapped with during diffusal.

Returns
an integral percentage, from 0 to 100, describing the desire of an atom of this type to be moved; 0 being impossible to move and 100 being completely fine with moving.

Implements MFM::Element< CC >.

Reimplemented in MFM::Element_Shark< CC >, and MFM::Element_Fish< CC >.


The documentation for this class was generated from the following file: