public virtual void AssembleSpliceSettings(SlimeTrait trait, SpliceSettings settings) { }
/// <summary> /// Augment the trait in someway after the host object is transformed in some way /// </summary> /// <param name="trait"></param> /// <param name="obj">The object after transformation</param> public abstract void MaybeTransformSlimeTrait(SlimeTrait trait, GameObject obj);
public abstract SlimeTrait CombineTraits(SlimeTrait original, SlimeTrait other, SpliceSettings settings);
/// <summary> /// Apply the trait to an object /// </summary> /// <param name="trait"></param> /// <param name="obj"></param> public abstract void ApplyToGameObject(SlimeTrait trait, GameObject obj);
/// <summary> /// Configure the trait based on the state of the object /// </summary> /// <param name="trait"></param> /// <param name="obj"></param> public abstract void ConfigureSlimeTrait(SlimeTrait trait, GameObject obj);
public abstract bool TraitNeedsToBeSaved(SlimeTrait Trait);
public abstract void DeserializeTrait(SlimeTrait trait, CompoundDataPiece piece);
public abstract string GetTraitDescription(SlimeTrait trait);
public virtual int GetTraitDisplayPriority(SlimeTrait trait) => DefaultDisplayPriority;
public abstract Color GetTraitDisplayColor(SlimeTrait trait);
public abstract string GetTraitDisplayName(SlimeTrait trait);
internal void AddTrait(SlimeTrait trait) => Traits.Add(trait);