public InteractiveObject(Map map, InteractiveElement interactive) { if (map == null) throw new ArgumentNullException("map"); if (interactive == null) throw new ArgumentNullException("interactive"); Id = interactive.elementId; Type = interactive.elementTypeId > 0 ? ObjectDataManager.Instance.Get<Interactive>(interactive.elementTypeId) : null; Map = map; m_enabledSkills = new ObservableCollectionMT<InteractiveSkill>(interactive.enabledSkills.Select(x => new InteractiveSkill(this, x))); m_readOnlyEnabledSkills = new ReadOnlyObservableCollectionMT<InteractiveSkill>(m_enabledSkills); m_disabledSkills = new ObservableCollectionMT<InteractiveSkill>(interactive.disabledSkills.Select(x => new InteractiveSkill(this, x))); m_readOnlyDisabledSkills = new ReadOnlyObservableCollectionMT<InteractiveSkill>(m_disabledSkills); }
public void Update(InteractiveElement interactive) { if (interactive == null) throw new ArgumentNullException("interactive"); Type = interactive.elementTypeId > 0 ? ObjectDataManager.Instance.Get<Interactive>(interactive.elementTypeId) : null; m_enabledSkills.Clear(); foreach (var skill in interactive.enabledSkills) { m_enabledSkills.Add(new InteractiveSkill(this, skill)); } m_disabledSkills.Clear(); foreach (var skill in interactive.disabledSkills) { m_disabledSkills.Add(new InteractiveSkill(this, skill)); } }