wyvern.lib.properties
Interface MutableProperty

All Known Implementing Classes:
AnimationParams, Appearance, AutoGrab, BerserkSkill, Body, GiantShrink, HalflingSkills, HealersCurse, ItemList, JumpSkill, MovableLightSource, MovableSoundSource, NagaShift, PixieSkills, PointList, ProximityProperty, RakshasaSkills, Searcher, SpeechFilter, SpellListImpl, StringList, TerrainSpeed

public interface MutableProperty

Bean property classes implement this interface to indicate that they shouldn't be shared. By default, the properties of an archetype are shared by all objects that derive from that archetype. However, for properties with mutable sub-properties, it's usually not the case that you want them to be shared. For instance, the Appearance property is mutable, so it implements this interface.

For most Bean properties, declaring the class to be Cloneable and calling its clone() method from createClone() will suffice.

Version:
1.0, Jun 29, 1998
Author:
Steve Yegge

Method Summary
 java.lang.Object createClone()
          Produces a clone of the property for the caller.
 

Method Detail

createClone

public java.lang.Object createClone()
Produces a clone of the property for the caller. Note: it's called createClone, not makeClone, because GameObject already has a makeClone. Some GameObjects can be properties (e.g inventories) and we can't do overloaded methods based only on the return type.