public void Init(IDynamicObj obj, object param = null) { this.obj = obj; state = DCState.Init; key = -1; this.param = param; }
private void OnAdd(IDynamicObj obj, object param) { BaseViewController controller = obj as BaseViewController; ViewParam p = param as ViewParam; _views.Add(controller.viewName, controller); controller.Open(p); }
private void OnUpdate(IDynamicObj obj, object param) { BaseViewController controller = obj as BaseViewController; if (controller.isActive) { controller.OnUpdate(); } }
private void OnRemove(IDynamicObj obj, object param) { BaseViewController controller = obj as BaseViewController; if (controller != null) { controller.Destroy(); } _views.Remove(name); }
public bool Add(IDynamicObj obj, object param = null) { if (AddObj(obj, param)) { if (OnAdd != null) { OnAdd(obj, param); } return(true); } return(false); }
private void OnRemoveRemote(IDynamicObj obj, object param) { Remote remote = (Remote)obj; m_dicRemote.Remove(remote.id); List <Remote> lst; if (m_dicCampRemotes.TryGetValue(remote.campId, out lst)) { lst.Remove(remote); } BehaviourPool <Remote> .Instance.SaveObject(remote); }
private void OnAddRemote(IDynamicObj obj, object param) { Remote remote = (Remote)obj; List <Remote> lst; m_dicCampRemotes.TryGetValue(remote.campId, out lst); if (lst == null) { lst = new List <Remote>(); m_dicCampRemotes.Add(remote.campId, lst); } m_dicRemote.Add(remote.id, remote); }
private void OnAddUnit(IDynamicObj obj, object param) { Unit unit = (Unit)obj; m_dicUnit.Add(unit.id, unit); List <Unit> lst; m_dicCampUnits.TryGetValue(unit.campId, out lst); if (lst == null) { lst = new List <Unit>(); m_dicCampUnits.Add(unit.campId, lst); } lst.Add(unit); GlobalEventDispatcher.Instance.Dispatch(GameEvent.UnitAdd, unit); }
public bool Remove(IDynamicObj obj) { if (RemoveObj(obj)) { if (OnRemove != null) { OnRemove(obj, null); } return(true); } else { CLog.LogError("移除" + obj.key + "失败!"); } return(false); }
private void OnRemoveUnit(IDynamicObj obj, object param) { Unit unit = (Unit)obj; m_dicUnit.Remove(unit.id); List <Unit> lst; if (m_dicCampUnits.TryGetValue(unit.campId, out lst)) { lst.Remove(unit); } switch (unit.unitType) { case UnitType.AirShip: BehaviourPool <UnitAirShip> .Instance.SaveObject((UnitAirShip)unit); break; } GlobalEventDispatcher.Instance.Dispatch(GameEvent.UnitRemove, unit); }
protected bool AddObj(IDynamicObj obj, object param = null) { if (Has(obj.key)) { return(false); } DCEntity entity = m_cEntityPool.GetObject(); entity.Init(obj, param); if (m_bIsUpdating) { entity.state = DCState.ToAdd; m_lstOperateEntity.Add(entity); } else { entity.state = DCState.ToDoAction; m_lstEntity.Add(entity); } return(true); }
protected bool RemoveObj(IDynamicObj obj) { if (!Has(obj.key)) { return(false); } if (m_bIsUpdating) { DCEntity entity = m_cEntityPool.GetObject(); entity.Init(obj); entity.state = DCState.ToRemove; m_lstOperateEntity.Add(entity); for (int i = 0; i < m_lstEntity.Count; i++) { if (m_lstEntity[i].Key == obj.key) { m_lstEntity[i].state = DCState.ToRemove; } } } else { for (int i = m_lstEntity.Count - 1; i > -1; i--) { if (m_lstEntity[i].Key == obj.key) { var entity = m_lstEntity[i]; m_lstEntity.RemoveAt(i); var entityObj = entity.obj; m_cEntityPool.SaveObject(entity); break; } } } return(true); }
private void OnUpdateRemote(IDynamicObj obj, object param) { Remote remote = (Remote)obj; remote.OnUpdate((FP)param); }
private void OnUpdateUnit(IDynamicObj obj, object param) { Unit unit = (Unit)obj; unit.OnUpdate((FP)param); }