public TDCItem(TDCBaseController ctrl, TDCBaseData data)
     : base(ctrl, data)
 {
     m_Controller = ctrl as TDCItemController;
     m_Data = data as TDCItemData;
     m_ItemActive = true;
 }
    public TDCPlayer(TDCBaseController ctrl, TDCBaseData data)
        : base(ctrl, data)
    {
        m_Controller = ctrl as TDCPlayerController;
        m_Data = data as TDCPlayerData;

        m_SkillSlotComponent.CreatePassiveSkillSlot(m_Data.PassiveSkill);
    }
    public TDCCreature(TDCBaseController ctrl, TDCBaseData data)
        : base(ctrl, data)
    {
        m_Controller = ctrl as TDCCreatureController;
        m_Data = data as TDCCreatureData;

        m_SkillSlotComponent = new TDCSkillSlotComponent(this);
        m_SkillSlotComponent.CreateActiveSkillSlot(m_Data.ActiveSkill);
    }
    public TDCSun(TDCBaseController ctrl, TDCBaseData data)
        : base(ctrl, data)
    {
        m_Controller = ctrl as TDCSunController;
        m_Data = data as TDCSunData;

        m_IntensityOffset = new TDCObjectProperty<float>("IntensityOffset");

        RegisterProperty(m_IntensityOffset);
    }
 public static TDCBaseData Clone(TDCBaseData instance)
 {
     var tmp = new TDCBaseData ();
     tmp.ID = instance.ID;
     tmp.Name = instance.Name;
     tmp.GameType = instance.GameType;
     tmp.Description = instance.Description;
     tmp.Icon = instance.Icon;
     tmp.FSMPath = instance.FSMPath;
     tmp.ModelPath = instance.ModelPath;
     return tmp;
 }
    public TDCSeason(TDCBaseController ctrl, TDCBaseData data)
        : base(ctrl, data)
    {
        m_Controller = ctrl as TDCSeasonController;
        m_Data = data as TDCSeasonData;

        m_SkillSlotComponent = new TDCSkillSlotComponent(this);
        m_SkillSlotComponent.CreateActiveSkillSlot(TDCEnum.EGameType.WeatherNormalSkill,
                                                    TDCEnum.EGameType.WeatherRainySkill,
                                                    TDCEnum.EGameType.WeatherOverHeatSkill,
                                                    TDCEnum.EGameType.WeatherWindySkill,
                                                    TDCEnum.EGameType.WeatherSnowySkill);
    }
    public TDCEntity(TDCBaseController ctrl, TDCBaseData data)
    {
        m_TriggerEvents = new Dictionary<string, Action>();
        LoadEventCallBack();

        m_OffsetSpeed = new TDCObjectProperty<float>("OffsetSpeed", 1f);
        m_HealthPoint = new TDCObjectProperty<int>("HealthPoint");
        m_HeatPoint = new TDCObjectProperty<int>("HeatPoint");
        m_SanityPoint = new TDCObjectProperty<int>("SanityPoint");
        m_HungerPoint = new TDCObjectProperty<int>("HungerPoint");

        RegisterProperty(m_OffsetSpeed);
        RegisterProperty(m_HealthPoint);
        RegisterProperty(m_HeatPoint);
        RegisterProperty(m_SanityPoint);
        RegisterProperty(m_HungerPoint);
    }
 public TDCCampfire(TDCBaseController ctrl, TDCBaseData data)
     : base(ctrl, data)
 {
     m_NormalSkill = new TDCSkillSlot(TDCEnum.EGameType.FlameBodySkill, this);
 }
 public TDCGroup(TDCBaseController ctrl, TDCBaseData data)
     : base(ctrl, data)
 {
     m_Controller = ctrl as TDCBaseGroupController;
     m_Data = data as TDCGroupData;
 }
 public override void SetData(TDCBaseData data)
 {
     m_Data = data as TDCGroupData;
 }
 public TDCObject(TDCBaseController ctrl, TDCBaseData data)
     : base(ctrl, data)
 {
     m_Controller = ctrl as TDCObjectController;
     m_Data = data as TDCGObjectData;
 }
 public override void SetData(TDCBaseData data)
 {
     m_Data = data as TDCEnviromentData;
 }
 public override void SetData(TDCBaseData data)
 {
     m_Data = data as TDCItemData;
 }
 public TDCPlane(TDCBaseController ctrl, TDCBaseData data)
     : base(ctrl, data)
 {
     m_Controller = ctrl as TDCPlaneController;
     m_Data = data as TDCPlaneData;
 }
 public override void SetData(TDCBaseData data)
 {
     base.SetData (data);
     m_Data = data as TDCPlayerData;
 }
 public virtual void SetData(TDCBaseData data)
 {
 }
 public TDCEnviroment(TDCBaseController ctrl, TDCBaseData data)
     : base(ctrl, data)
 {
     m_Controller = ctrl as TDCEnviromentController;
     m_Data = data as TDCEnviromentData;
 }
 public override void SetData(TDCBaseData data)
 {
     m_Data = data as TDCSeasonData;
 }
 public TDCEgg(TDCBaseController ctrl, TDCBaseData data)
     : base(ctrl, data)
 {
     m_Controller = ctrl as TDCEggController;
     m_Data = data as TDCEggData;
 }
 public override void SetData(TDCBaseData data)
 {
     base.SetData (data);
     m_Data = data as TDCCreatureData;
 }
 public TDCSkill(TDCBaseController ctrl, TDCBaseData data)
     : base(ctrl, data)
 {
     m_Controller = ctrl as TDCSkillController;
     m_Data = data as TDCSkillData;
 }