Exemplo n.º 1
0
 /// <summary>
 /// 解注册场景事件
 /// </summary>
 /// <param name="evtType"></param>
 /// <param name="func"></param>
 public void UnRegisterSceneEvent(SceneEventType evtType, EventHandlerDelegate func)
 {
     if (mEventManager == null)
     {
         return;
     }
     mEventManager.Unregister((int)evtType, func);
 }
Exemplo n.º 2
0
        public void Dispatch(string scene, SceneEventType sceneEventType)
        {
            SceneEvents sceneEvents;

            if (_sceneEvents.TryGetValue(scene, out sceneEvents))
            {
                sceneEvents.Dispatch(sceneEventType);
            }
        }
Exemplo n.º 3
0
            public void Remove(SceneEventType sceneEventType, Delegate del)
            {
                Binding binding;

                if (_eventBindings.TryGetValue(sceneEventType, out binding))
                {
                    binding.Remove(del);
                }
            }
Exemplo n.º 4
0
            public void Dispatch(SceneEventType sceneEventType)
            {
                Binding binding;

                if (_eventBindings.TryGetValue(sceneEventType, out binding))
                {
                    binding.Dispatch();
                }
            }
Exemplo n.º 5
0
        public List <SceneEvent> GetEventsByType(SceneEventType eventType)
        {
            List <SceneEvent> sceneEvents;

            if (EventDic.TryGetValue(eventType, out sceneEvents))
            {
                return(sceneEvents);
            }
            return(null);
        }
Exemplo n.º 6
0
 public void OnActionEvent(EventCenterData data)
 {
     currEventParamValues = data.data as object[];
     currSceneEventType   = (SceneEventType)currEventParamValues[0];
     if (currSceneEventType == SceneEventType.None)
     {
         ClearAcitonEvent();
         return;
     }
 }
Exemplo n.º 7
0
            public void Add(SceneEventType sceneEventType, Delegate del)
            {
                Binding binding;

                if (!_eventBindings.TryGetValue(sceneEventType, out binding))
                {
                    binding = new Binding();
                    _eventBindings.Add(sceneEventType, binding);
                }
                binding.Add(del);
            }
Exemplo n.º 8
0
        public void DoConditionsAndResults(SceneEventType eventType)
        {
            List <SceneEvent> sceneEvents = GetEventsByType(eventType);

            if (sceneEvents != null)
            {
                for (int i = 0; i < sceneEvents.Count; i++)
                {
                    SceneEvent sceneEvent = sceneEvents[i];
                    if (sceneEvent.times < sceneEvent.totalTimes &&
                        DoConditions(sceneEvent.conditions))
                    {
                        sceneEvent.times++;
                        DoResults(sceneEvent.results);
                    }
                }
            }
        }
Exemplo n.º 9
0
        internal static void Internal_OnSceneEvent(SceneEventType eventType, Scene scene, ref Guid sceneId)
        {
            switch (eventType)
            {
            case SceneEventType.OnSceneSaving: OnSceneSaving?.Invoke(scene, sceneId); break;

            case SceneEventType.OnSceneSaved: OnSceneSaved?.Invoke(scene, sceneId); break;

            case SceneEventType.OnSceneSaveError: OnSceneSaveError?.Invoke(scene, sceneId); break;

            case SceneEventType.OnSceneLoading: OnSceneLoading?.Invoke(scene, sceneId); break;

            case SceneEventType.OnSceneLoaded: OnSceneLoaded?.Invoke(scene, sceneId); break;

            case SceneEventType.OnSceneLoadError: OnSceneLoadError?.Invoke(scene, sceneId); break;

            case SceneEventType.OnSceneUnloading: OnSceneUnloading?.Invoke(scene, sceneId); break;

            case SceneEventType.OnSceneUnloaded: OnSceneUnloaded?.Invoke(scene, sceneId); break;
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 创建新的事件
        /// </summary>
        /// <param name="type">Type.</param>
        /// <param name="eventId">Event identifier.</param>
        /// <param name="sceneId">Scene identifier.</param>
        /// <param name="name">Name.</param>
        public void CreateNewEvent(SceneEventType type, string eventId, string areaId, string name = "")
        {
            //计算区域大地图上的随机坐标点
            if (AreaModel.AreaMainScript == null)
            {
                return;
            }
            SizeData mapSize = JsonManager.GetInstance().GetMapping <SizeData>("AreaSizeDatas", areaId);
            int      x       = UnityEngine.Random.Range(1, mapSize.Width - 1);
            int      y       = UnityEngine.Random.Range(1, mapSize.Height - 1);
            string   randomEventId;

            tk2dRuntime.TileMap.TileInfo groundTile;
            bool canNotAdd = true;

            //查找到合法的事件点坐标
            while (canNotAdd)
            {
                randomEventId = areaId + "_" + x.ToString() + "_" + y.ToString();
                groundTile    = AreaModel.AreaMainScript.Map.GetTileInfoForTileId(AreaModel.AreaMainScript.Map.GetTile(x, y, 0));
                if (groundTile == null ||              //非法坐标
                    groundTile.stringVal == "obstacle" ||                     //为寻路障碍点
                    AreaMain.StaticAreaEventsMapping.ContainsKey(randomEventId) ||                     //为静态事件
                    AreaMain.ActiveAreaEventsMapping.ContainsKey(randomEventId))                        //为动态事件
                {
                    x = UnityEngine.Random.Range(1, mapSize.Width - 1);
                    y = UnityEngine.Random.Range(1, mapSize.Height - 1);
                }
                else
                {
                    canNotAdd = false;
                }
            }

            db = OpenDb();
            db.ExecuteQuery("insert into EventsTable (X, Y, Type, EventId, SceneId, Name, BelongToRoleId) values(" + x + ", " + y + ", " + ((int)type) + ", '" + eventId + "', '" + areaId + "', '" + name + "', '" + currentRoleId + "')");
            db.CloseSqlConnection();
        }
Exemplo n.º 11
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="t_SceneEventType">场景事件类型</param>
 public SceneEventAttribute(SceneEventType t_SceneEventType, string t_SceneName = null)
 {
     SceneEventTopicName = t_SceneEventType.ToString();
     SceneName           = t_SceneName ?? string.Empty;
 }
Exemplo n.º 12
0
 public SceneEventAttribute(SceneEventType sceneEventType, string scene, int priority = 0)
 {
     SceneEventType = sceneEventType;
     Scene          = scene;
     Priority       = priority;
 }
Exemplo n.º 13
0
 private void ClearAcitonEvent()
 {
     currSceneEventType = SceneEventType.None;
 }