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 | Static Public Attributes
MFM::Element_Emitter< CC > Class Template Reference
Inheritance diagram for MFM::Element_Emitter< CC >:
MFM::AbstractElement_Reprovert< CC > MFM::Element< CC >

Public Types

enum  { DATUMS_EMITTED_SLOT, DATUMS_REJECTED_SLOT, DATA_SLOT_COUNT }
 

Public Member Functions

virtual T BuildDefaultAtom () const
 
virtual u32 PercentMovable (const T &you, const T &me, const SPoint &offset) const
 
virtual u32 DefaultPhysicsColor () const
 
virtual u32 DefaultLowlightColor () const
 
virtual const char * GetDescription () const
 
virtual void Behavior (EventWindow< CC > &window) const
 
- Public Member Functions inherited from MFM::AbstractElement_Reprovert< CC >
 AbstractElement_Reprovert (const UUID &uuid)
 
u32 GetBelow (const T &atom, u32 badType) const
 
bool SetBelow (T &atom, u32 value) const
 
u32 GetAbove (const T &atom, u32 badType) const
 
bool SetAbove (T &atom, u32 value) const
 
u32 GetGap (const T &atom, u32 badType) const
 
bool SetGap (T &atom, u32 value) const
 
virtual u32 Diffusability (EventWindow< CC > &ew, SPoint nowAt, SPoint maybeAt) const
 
void ReproduceVertically (EventWindow< CC > &window) 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 const T & GetDefaultAtom () const
 
virtual u32 PhysicsColor () const
 
void ToggleLowlightPhysicsColor ()
 
virtual u32 LocalPhysicsColor (const T &atom, u32 selector) 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 ()
 

Static Public Attributes

static Element_Emitter THE_INSTANCE
 
- Static Public Attributes inherited from MFM::AbstractElement_Reprovert< CC >
static const u32 STATE_BELOW_IDX = 0
 
static const u32 STATE_BELOW_LEN = 9
 
static const u32 STATE_ABOVE_IDX = STATE_BELOW_IDX+STATE_BELOW_LEN
 
static const u32 STATE_ABOVE_LEN = 9
 
static const u32 STATE_GAP_IDX = STATE_ABOVE_IDX+STATE_ABOVE_LEN
 
static const u32 STATE_GAP_LEN = 2
 
static const u32 STATE_BITS = STATE_GAP_IDX+STATE_GAP_LEN
 
static const u32 MAX_BELOW = (1<<STATE_BELOW_LEN)-1
 
static const u32 MAX_ABOVE = (1<<STATE_ABOVE_LEN)-1
 
- Static Public Attributes inherited from MFM::Element< CC >
static const u32 COMPLETE_DIFFUSABILITY = 1000
 

Additional Inherited Members

- Protected Member Functions inherited from MFM::Element< CC >
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 void MFM::Element_Emitter< CC >::Behavior ( EventWindow< CC > &  window) const
inlinevirtual

Describes the behavior of this Element. This is invoked when an Atom of this Element is chosen as the center of an EventWindow for an Event, which is given as a parameter.

Parameters
windowThe EventWindow describing the Event which is currently being executed.

Implements MFM::Element< CC >.

template<class CC >
virtual T MFM::Element_Emitter< CC >::BuildDefaultAtom ( ) const
inlinevirtual

Describes how the default Atom of this Element should be constructed. The default behavior of this method builds an atom with the type of this Element and otherwise empty fields.

Returns
The default Atom of this Element, to be stored in m_defaultAtom .

Reimplemented from MFM::Element< CC >.

template<class CC >
virtual u32 MFM::Element_Emitter< CC >::DefaultLowlightColor ( ) const
inlinevirtual

Gets the 32-bit ARGB formatted color that all Atoms of this Element will be drawn with when they have lowlight drawing enabled.

Returns
The lowlight color to draw all Atoms of this Element with.

Reimplemented from MFM::Element< CC >.

template<class CC >
virtual u32 MFM::Element_Emitter< CC >::DefaultPhysicsColor ( ) const
inlinevirtual

Gets the 32-bit ARGB formatted color that all Atoms of this Element will be drawn with.

Returns
The 32-bit ARGB formatted color that all Atoms of this Element will be drawn with.

Implements MFM::Element< CC >.

template<class CC >
virtual const char* MFM::Element_Emitter< CC >::GetDescription ( ) const
inlinevirtual

Gets a string of a short description of the behavior of this Element . This will be displayed in some way when a user needs help with this Element . This string must not include newlines; they will be added when they are needed.

Returns
A helpful description string breifely describing the behavior of this Element.

Reimplemented from MFM::Element< CC >.

template<class CC >
virtual u32 MFM::Element_Emitter< 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 >.


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