private void AddPointerEnterTrigger(EventTrigger evTrig, EventTriggerType triggerType)
 {
     EventTrigger.TriggerEvent triggerEvent = new EventTrigger.TriggerEvent();
     AddEventTrigger(evTrig, d => OnPointerEnter(d, evTrig.gameObject), EventTriggerType.PointerEnter);
     EventTrigger.Entry entry = new EventTrigger.Entry() { callback = triggerEvent, eventID = triggerType };
     evTrig.triggers.Add(entry);
 }
 private void AddEventTrigger(EventTrigger evTrig, UnityAction<BaseEventData> action, EventTriggerType triggerType)
 {
     EventTrigger.TriggerEvent triggerEvent = new EventTrigger.TriggerEvent();
     triggerEvent.AddListener((eventData) => action(eventData));
     EventTrigger.Entry entry = new EventTrigger.Entry() { callback = triggerEvent, eventID = triggerType };
     evTrig.triggers.Add(entry);
 }
 private void AddListener(EventTriggerType type, UnityEngine.Events.UnityAction<BaseEventData> call)
 {
     EventTrigger.Entry entry = new EventTrigger.Entry();
     entry.eventID = type;
     entry.callback.AddListener(call);
     this.trigger.triggers.Add(entry);
 }
Exemple #4
1
 private void AddEventTrigger(EventTriggerType type, UnityAction<BaseEventData> action)
 {
     EventTrigger.Entry entry;
     entry = new EventTrigger.Entry();
     entry.eventID = type;
     entry.callback.AddListener(action);
     trigger.triggers.Add(entry);
 }
    void AddEventTrgger( UnityAction action, EventTriggerType triggerType )
    {
        EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent();
        trigger.AddListener( (eventData) => action());

        EventTrigger.Entry entry = new EventTrigger.Entry() { callback = trigger, eventID = triggerType };
        eventTrigger.triggers.Add(entry);
    }
        // ------------------ Constants and statics
        // ------------------ Events
        // ------------------ Serialized fields and properties
        // ------------------ Non-serialized fields
        // ------------------ Methods
        public static void AddEventTrigger(EventTrigger eventTrigger, UnityAction unityAction, EventTriggerType eventTriggerType)
        {
            EventTrigger.TriggerEvent triggerEvent = new EventTrigger.TriggerEvent();
            triggerEvent.AddListener((eventData) => unityAction()); // ignore event data

            EventTrigger.Entry entry = new EventTrigger.Entry() { callback = triggerEvent, eventID = eventTriggerType };

            eventTrigger.triggers.Add(entry);
        }
        public static void AddListener(this UIBehaviour uiBehaviour, EventTriggerType eventID, UnityAction<BaseEventData> callback)
        {
            var entry = new EventTrigger.Entry();
            entry.eventID = eventID;
            entry.callback.AddListener(callback);

            var eventTriggers = (uiBehaviour.GetComponent<EventTrigger>() ?? uiBehaviour.gameObject.AddComponent<EventTrigger>()).triggers;
            eventTriggers.Add(entry);
        }
Exemple #8
1
 public static void AddTriggerEvent(GameObject g, EventTriggerType type, UnityAction<BaseEventData> action)
 {
     EventTrigger trigger = g.AddComponent<EventTrigger>();
     trigger.triggers = new List<EventTrigger.Entry>();
     EventTrigger.Entry entry = new EventTrigger.Entry();
     entry.eventID = type;
     entry.callback.AddListener(action);
     trigger.triggers.Add(entry);
 }
Exemple #9
1
	// Use listener that uses the BaseEventData passed to the Trigger
	private void AddEventTrigger(UnityAction<BaseEventData> action, EventTriggerType triggerType)
	{
		// Create a nee TriggerEvent and add a listener
		EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent();
		trigger.AddListener((eventData) => action(eventData)); // capture and pass the event data to the listener
		
		// Create and initialise EventTrigger.Entry using the created TriggerEvent
		EventTrigger.Entry entry = new EventTrigger.Entry() { callback = trigger, eventID = triggerType };
		
		// Add the EventTrigger.Entry to delegates list on the EventTrigger
		eventTrigger.triggers.Add(entry);
	}
    // Use listener that uses additional argument
    private void AddEventTrigger(UnityAction<Toggle> action, EventTriggerType triggerType, Toggle toggle)
    {
        // Create a nee TriggerEvent and add a listener
        EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent();
        trigger.AddListener((eventData) => action(toggle)); // pass additonal argument to the listener

        // Create and initialise EventTrigger.Entry using the created TriggerEvent
        EventTrigger.Entry entry = new EventTrigger.Entry() { callback = trigger, eventID = triggerType };

        // Add the EventTrigger.Entry to delegates list on the EventTrigger
        eventTrigger.delegates.Add(entry);
    }
Exemple #11
0
        public static void AddClickToGameObject(GameObject gameObject, UnityAction action, EventTriggerType triggerType)
        {

            var eventTrigger = gameObject.AddComponent<EventTrigger>();
            eventTrigger.triggers = new List<EventTrigger.Entry>();
            AddEventTrigger(eventTrigger, action, triggerType);
        }
Exemple #12
0
			internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) {
				if (TriggerType == EventTriggerType.Camera) {
					if (Direction < 0) {
						BackgroundManager.TargetBackground = this.PreviousBackground;
					} else if (Direction > 0) {
						BackgroundManager.TargetBackground = this.NextBackground;
					}
				}
			}
        public static void RemoveAllListeners(this UIBehaviour uiBehaviour, EventTriggerType eventID)
        {
            var eventTrigger = uiBehaviour.GetComponent<EventTrigger>();

            if (eventTrigger == null)
                return;

            eventTrigger.triggers.RemoveAll(listener => listener.eventID == eventID);
        }
Exemple #14
0
 override internal void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) {
     if (TriggerType == EventTriggerType.Camera) {
         if (Direction < 0) {
             World.TargetBackground = this.PreviousBackground;
             World.TargetBackgroundCountdown = World.TargetBackgroundDefaultCountdown;
         } else if (Direction > 0) {
             World.TargetBackground = this.NextBackground;
             World.TargetBackgroundCountdown = World.TargetBackgroundDefaultCountdown;
         }
     }
 }
Exemple #15
0
			internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) {
				if (TriggerType == EventTriggerType.Camera) {
					if (Direction < 0) {
						Game.PreviousFog = this.PreviousFog;
						Game.NextFog = this.CurrentFog;
					} else if (Direction > 0) {
						Game.PreviousFog = this.CurrentFog;
						Game.NextFog = this.NextFog;
					}
				}
			}
 private void Execute(EventTriggerType id, BaseEventData eventData)
 {
     if (_triggers == null)
         return;
     int index = 0;
     for (int count = _triggers.Count; index < count; ++index)
     {
         t_OnEventTrigger.Entry entry = _triggers[index];
         if (entry.EventID == id)
             entry.ActivateTrigger(eventData);
     }
 }
    static public void SetEvent(GameObject gameObject, EventTriggerType eventTriggerType, Action<BaseEventData> action)
    {
        var trigger = gameObject.GetComponent<EventTrigger>();
                if (trigger == null)
                     trigger = gameObject.AddComponent<EventTrigger>();
        if(trigger.triggers == null)
            trigger.triggers = new List<Entry>();

        Entry entry = new Entry();
        entry.eventID = eventTriggerType;
        entry.callback = new TriggerEvent();
        entry.callback.AddListener(new UnityAction<BaseEventData>(action));
        trigger.triggers.Add(entry);
    }
	private void AddEventTrigger(UnityAction<GameObject> action, EventTriggerType triggerType, GameObject go)
	{
		EventTrigger eventTrigger = go.GetComponent<EventTrigger>();
		if (eventTrigger == null) {
			eventTrigger = go.AddComponent<EventTrigger>();
			eventTrigger.triggers = new System.Collections.Generic.List<EventTrigger.Entry>();
		}
		// Create a nee TriggerEvent and add a listener
		EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent();
		trigger.AddListener((eventData) => action(go)); // capture and pass the event data to the listener
		// Create and initialise EventTrigger.Entry using the created TriggerEvent
		EventTrigger.Entry entry = new EventTrigger.Entry() { callback = trigger, eventID = triggerType };
		// Add the EventTrigger.Entry to delegates list on the EventTrigger
		eventTrigger.triggers.Add(entry);
	}
Exemple #19
0
 public static void AddHandler(this UIBehaviour button, EventTriggerType triggerType, params UnityAction<BaseEventData>[] actions)
 {
     var eventTrigger = button.gameObject.GetComponent<EventTrigger>();
     if (eventTrigger != null)
     {
         var click = new EventTrigger.Entry { eventID = triggerType };
         foreach (var action in actions)
         {
             click.callback.AddListener(action);
         }
         eventTrigger.triggers.Add(click);
     }
     else
     {
         Debug.LogError("EventTrigger on " + button.gameObject.name + " missed!");
     }
 }
    public static void AddListener(this EventTrigger eventTrigger, EventTriggerType type, UnityAction<BaseEventData> action)
    {
        if (eventTrigger.delegates == null)
        {
            eventTrigger.delegates = new List<EventTrigger.Entry>();
        }
        var entry = eventTrigger.delegates.Find(e => e.eventID == type);

        if (entry == null)
        {
            entry = new EventTrigger.Entry();
            entry.eventID = type;
            entry.callback = new EventTrigger.TriggerEvent();

            eventTrigger.delegates.Add(entry);
        }
        entry.callback.AddListener(action);
    }
    public void SetListener(EventTriggerType eventTriggerType, UnityAction<PointerEventData> callback)
    {
        Listeners[eventTriggerType] = callback;

        var entry = new EventTrigger.Entry();
        entry.eventID = eventTriggerType;
        entry.callback.AddListener(
            delegate(BaseEventData data)
            {
                UnityAction<PointerEventData> action = null;
                if (Listeners.TryGetValue(eventTriggerType, out action))
                    if (action != null)
                        action(data as PointerEventData);
            });

        if (delegates == null)
            delegates = new List<Entry>();
        delegates.Add(entry);
    }
    public static EventTrigger.Entry CreateEventEntry(EventTriggerType triggerType, UnityEngine.Events.UnityAction<BaseEventData> cb)
    {
        //Create a new entry. This entry will describe the kind of event we're looking for
        // and how to respond to it
        EventTrigger.Entry entry = new EventTrigger.Entry();

        //This event will respond to a drop event
        entry.eventID = triggerType;

        //Create a new trigger to hold our callback methods
        entry.callback = new EventTrigger.TriggerEvent();

        //Create a new UnityAction, it contains our DropEventMethod delegate to respond to events
        UnityEngine.Events.UnityAction<BaseEventData> callback = cb;

        //Add our callback to the listeners
        entry.callback.AddListener(callback);

        //Add the EventTrigger entry to the event trigger component
        return entry;
    }
Exemple #23
0
 internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex)
 {
     if (Train == TrainManager.PlayerTrain & TriggerType == EventTriggerType.FrontCarFrontAxle)
     {
         if (this.Message != null)
         {
             if (Direction < 0)
             {
                 if (this.Message.Trains != null && !this.Message.Trains.Contains(new System.IO.DirectoryInfo(Game.RouteInformation.TrainFolder).Name))
                 {
                     //Our train is NOT in the list of trains which this message triggers for
                     return;
                 }
                 MessageManager.AddMessage(this.Message);
             }
             else if (Direction > 0)
             {
                 this.Message.QueueForRemoval = true;
             }
         }
     }
 }
Exemple #24
0
 public override void Trigger(int Direction, EventTriggerType TriggerType, AbstractTrain Train, AbstractCar Car)
 {
     if (TriggerType == EventTriggerType.FrontCarFrontAxle && Train.IsPlayerTrain || TriggerType == EventTriggerType.Camera && currentHost.Application == HostApplication.RouteViewer)
     {
         if (this.Message != null)
         {
             if (Direction < 0)
             {
                 if (this.Message.Trains != null && !this.Message.Trains.Contains(new System.IO.DirectoryInfo(Train.TrainFolder).Name))
                 {
                     //Our train is NOT in the list of trains which this message triggers for
                     return;
                 }
                 currentHost.AddMessage(this.Message);
             }
             else if (Direction > 0)
             {
                 this.Message.QueueForRemoval = true;
             }
         }
     }
 }
Exemple #25
0
 internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex)
 {
     if (TriggerType == EventTriggerType.TrainFront)
     {
         if (Direction < 0)
         {
             Train.StationFrontCar = false;
             if (Train.Handles.Reverser.Actual == TrainManager.ReverserPosition.Forwards && Train.Handles.Power.Driver != 0 && !Game.MinimalisticSimulation && StationIndex == Train.Station)
             {
                 //Our reverser and power are in F, but we are rolling backwards
                 //Leave the station index alone, and we won't trigger again when we actually move forwards
                 return;
             }
             Train.Station = -1;
         }
         else if (Direction > 0)
         {
             if (Train.Station == StationIndex || Train.NextStopSkipped != TrainManager.StopSkipMode.None)
             {
                 return;
             }
             Train.Station         = StationIndex;
             Train.StationFrontCar = true;
             Train.StationState    = TrainManager.TrainStopState.Pending;
             Train.LastStation     = this.StationIndex;
         }
     }
     else if (TriggerType == EventTriggerType.RearCarRearAxle)
     {
         if (Direction < 0)
         {
             Train.StationRearCar = false;
         }
         else
         {
             Train.StationRearCar = true;
         }
     }
 }
Exemple #26
0
    /// <summary>
    /// 确认兑换按钮事件
    /// </summary>
    void OnClickOkExchangeEvent(EventTriggerType eventtype, object button, PointerEventData eventData)
    {
        if (eventtype != EventTriggerType.PointerClick || ExchangeItemPanelGameObject == null)
        {
            return;
        }
        CustomAudio.GetInstance().PlayCustomAudio(1002);
        //姓名
        InputField name = ExchangeItemPanelGameObject.transform.Find("pop_up/Exchange_Gouwuka/InputName").gameObject.GetComponent <InputField>();

        if (string.IsNullOrEmpty(name.text))
        {
            CRollTextUI.Instance.AddVerticalRollText(1111);
            return;
        }
        //手机号码
        InputField mobilenum = ExchangeItemPanelGameObject.transform.Find("pop_up/Exchange_Gouwuka/InputPhoneNum").gameObject.GetComponent <InputField>();

        if (string.IsNullOrEmpty(mobilenum.text) || !GameCommon.CheckPhoneIsAble(mobilenum.text))
        {
            CRollTextUI.Instance.AddVerticalRollText(1112);
            return;
        }

        //收件地址
        InputField address = ExchangeItemPanelGameObject.transform.Find("pop_up/Exchange_Gouwuka/InputAdd").gameObject.GetComponent <InputField>();

        if (string.IsNullOrEmpty(address.text))
        {
            CRollTextUI.Instance.AddVerticalRollText(1111);
            return;
        }

        CurRecvName    = name.text;
        CurPhoneNum    = mobilenum.text;
        CurRecvAddress = address.text;
        //打开确认订单信息界面
        ShowExchangeItemOrderConfirmPanel();
    }
Exemple #27
0
    public static void addTriggersListener(GameObject obj, EventTriggerType eventID, UnityAction <BaseEventData> action)
    {
        EventTrigger trigger = obj.GetComponent <EventTrigger>();

        if (trigger == null)
        {
            trigger = obj.AddComponent <EventTrigger>();
        }

        if (trigger.triggers.Count == 0)
        {
            trigger.triggers = new List <EventTrigger.Entry>();
        }

        UnityAction <BaseEventData> callback = new UnityAction <BaseEventData>(action);

        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = eventID;
        entry.callback.AddListener(callback);
        trigger.triggers.Clear();
        trigger.triggers.Add(entry);
    }
    public void AddHandler <T>(string obj_path, EventTriggerType trigger_type, UnityEngine.Events.UnityAction <BaseEventData> call)
        where T : Selectable
    {
        T obj = GetComponentInChildren <T>(obj_path);

        if (obj == null)
        {
            return;
        }

        var trigger = transform.gameObject.GetComponent <EventTrigger>();

        if (trigger == null)
        {
            trigger = transform.gameObject.AddComponent <EventTrigger>();
        }
        var entry = new EventTrigger.Entry();

        entry.eventID = trigger_type;
        entry.callback.AddListener(call);
        trigger.triggers.Add(entry);
    }
Exemple #29
0
        public static void RemoveListener(
            this EventTrigger eventTrigger,
            EventTriggerType triggerType,
            UnityAction <BaseEventData> call)
        {
            if (eventTrigger == null)
            {
                throw new ArgumentNullException(nameof(eventTrigger));
            }

            if (call == null)
            {
                throw new ArgumentNullException(nameof(call));
            }

            EventTrigger.Entry entry = eventTrigger.triggers
                                       .Find(e => e.eventID == triggerType);
            if (entry != null)
            {
                entry.callback.RemoveListener(call);
            }
        }
Exemple #30
0
    /// <summary>
    /// 注册事件
    /// </summary>
    /// <param name="rectTrans"></param>
    /// <param name="callback"></param>
    private void RegistorEventTrigger(RectTransform rectTrans, EventTriggerType type, UnityAction <BaseEventData> callback)
    {
        EventTrigger eventTrigger = rectTrans.GetComponent <EventTrigger>();

        if (!eventTrigger)
        {
            eventTrigger = rectTrans.gameObject.AddComponent <EventTrigger>();
        }
        if (eventTrigger.triggers == null)
        {
            eventTrigger.triggers = new List <EventTrigger.Entry>();
        }
        EventTrigger.Entry triggerEvent = eventTrigger.triggers.Find(temp => temp.eventID == type);
        if (triggerEvent == null)
        {
            triggerEvent          = new EventTrigger.Entry();
            triggerEvent.eventID  = type;
            triggerEvent.callback = new EventTrigger.TriggerEvent();
            eventTrigger.triggers.Add(triggerEvent);
        }
        triggerEvent.callback.AddListener(callback);
    }
Exemple #31
0
 public override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, AbstractCar Car)
 {
     if (TriggerType == EventTriggerType.TrainFront)
     {
         int s = this.SectionIndex;
         if (this.ClipToFirstRedSection)
         {
             if (s >= 0)
             {
                 while (true)
                 {
                     if (CurrentRoute.Sections[s].Exists(Train))
                     {
                         s = this.SectionIndex;
                         break;
                     }
                     int a = CurrentRoute.Sections[s].CurrentAspect;
                     if (a >= 0)
                     {
                         if (CurrentRoute.Sections[s].Aspects[a].Number == 0)
                         {
                             break;
                         }
                     }
                     s = CurrentRoute.Sections[s].PreviousSection;
                     if (s < 0)
                     {
                         s = this.SectionIndex;
                         break;
                     }
                 }
             }
         }
         if (Train.Plugin != null)
         {
             Train.Plugin.UpdateBeacon((int)this.Type, s, this.Data);
         }
     }
 }
Exemple #32
0
    /// <summary>
    /// 为组件添加监听事件
    /// </summary>
    /// <param name="obj"></param>
    /// <param name="eventTriggerType"></param>
    /// <param name="callback"></param>
    /// <returns></returns>
    public static void AddListener(this Component obj, EventTriggerType eventTriggerType,
                                   UnityAction <BaseEventData> callback)
    {
        //添加EventTrigger组件
        EventTrigger trigger = obj.GetComponent <EventTrigger> ();

        if (trigger == null)
        {
            trigger = obj.gameObject.AddComponent <EventTrigger> ();
        }

        //获取事件列表
        List <EventTrigger.Entry> entries = trigger.triggers;

        if (entries == null)
        {
            entries = new List <EventTrigger.Entry> ();
        }

        //获取对应事件
        EventTrigger.Entry entry = new EventTrigger.Entry();
        bool isExist             = false;

        for (int i = 0; i < entries.Count; i++)
        {
            if (entries[i].eventID == eventTriggerType)
            {
                entry   = entries[i];
                isExist = true;
            }
        }

        entry.callback.AddListener(callback);
        if (!isExist)
        {
            trigger.triggers.Add(entry);
        }
    }
Exemple #33
0
        public override void Trigger(int Direction, EventTriggerType TriggerType, AbstractTrain Train, AbstractCar Car)
        {
            if (Train != null)
            {
                if (TriggerType == EventTriggerType.FrontCarFrontAxle)
                {
                    if (Direction < 0)
                    {
                        if (NextSectionIndex >= 0)
                        {
                            currentRoute.Sections[NextSectionIndex].TrainReachedStopPoint = false;
                        }

                        UpdateFrontBackward(Train);
                    }
                    else if (Direction > 0)
                    {
                        UpdateFrontForward(Train);
                    }
                }
                else if (TriggerType == EventTriggerType.RearCarRearAxle)
                {
                    if (Direction < 0)
                    {
                        UpdateRearBackward(Train);
                    }
                    else if (Direction > 0)
                    {
                        if (PreviousSectionIndex >= 0)
                        {
                            currentRoute.Sections[PreviousSectionIndex].TrainReachedStopPoint = false;
                        }

                        UpdateRearForward(Train);
                    }
                }
            }
        }
Exemple #34
0
        public static void AddEvent(this MenuButton self, EventTriggerType type, UnityAction <BaseEventData> func)
        {
            EventTrigger.Entry newEvent = new EventTrigger.Entry
            {
                eventID = type
            };

            newEvent.callback.AddListener(func);

            EventTrigger trig = self.gameObject.GetComponent <EventTrigger>();

            if (trig == null)
            {
                trig = self.gameObject.AddComponent <EventTrigger>();
            }

            trig.triggers.Add(newEvent);

            if (type == EventTriggerType.Submit)
            {
                self.AddEvent(EventTriggerType.PointerClick, func);
            }
        }
Exemple #35
0
        /// <summary>
        /// UGUI 控件添加公共事件监听
        /// </summary>
        /// <param name="target">事件监听目标</param>
        /// <param name="type">事件类型</param>
        /// <param name="callback">回调函数</param>
        public static void AddCommonEventListener(this RectTransform target, EventTriggerType type, UnityAction <BaseEventData> callback)
        {
            EventTrigger trigger = target.GetComponent <EventTrigger>();

            if (trigger == null)
            {
                trigger = target.gameObject.AddComponent <EventTrigger>();
            }
            if (trigger.triggers == null)
            {
                trigger.triggers = new List <EventTrigger.Entry>();
            }

            //定义一个事件入口
            EventTrigger.Entry entry = new EventTrigger.Entry();
            //设置事件类型
            entry.eventID = type;
            //设置事件回调函数
            entry.callback = new EventTrigger.TriggerEvent();
            entry.callback.AddListener(callback);
            //添加事件到事件组
            trigger.triggers.Add(entry);
        }
Exemple #36
0
    /// <summary>
    /// 为obj添加Eventrigger监听事件
    /// </summary>
    /// <param name="obj">添加监听的对象</param>
    /// <param name="eventID">添加的监听类型</param>
    /// <param name="action">触发的函数</param>
    public void AddTriggersListener(GameObject obj, EventTriggerType eventType, UnityAction <BaseEventData> action)
    {
        //首先判断对象是否已经有EventTrigger组件,若没有那么需要添加
        EventTrigger trigger = obj.GetComponent <EventTrigger>();

        if (trigger == null)
        {
            trigger          = obj.AddComponent <EventTrigger>();
            trigger.triggers = new List <EventTrigger.Entry>(); //
        }

        //定义所要绑定的事件类型
        EventTrigger.Entry entry = new EventTrigger.Entry
        {
            //设置事件类型
            eventID = eventType
        };
        //设置回调函数

        entry.callback.AddListener(action);
        //添加事件触发记录到GameObject的事件触发组件
        trigger.triggers.Add(entry);
    }
Exemple #37
0
        /// <summary>Triggers the playback of a sound</summary>
        /// <param name="Direction">The direction of travel- 1 for forwards, and -1 for backwards</param>
        /// <param name="TriggerType">They type of event which triggered this sound</param>
        /// <param name="Train">The root train which triggered this sound</param>
        /// <param name="Car">The car which triggered this sound</param>
        public override void Trigger(int Direction, EventTriggerType TriggerType, AbstractTrain Train, AbstractCar Car)
        {
            if (SoundsBase.SuppressSoundEvents)
            {
                return;
            }
            dynamic c = Car;

            switch (TriggerType)
            {
            case EventTriggerType.FrontCarFrontAxle:
            case EventTriggerType.OtherCarFrontAxle:
                c.FrontAxle.PointSoundTriggered = true;
                DontTriggerAnymore = false;
                break;

            case EventTriggerType.OtherCarRearAxle:
            case EventTriggerType.RearCarRearAxle:
                c.RearAxle.PointSoundTriggered = true;
                DontTriggerAnymore             = false;
                break;
            }
        }
Exemple #38
0
 public override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, AbstractCar Car)
 {
     if (TriggerType == EventTriggerType.FrontCarFrontAxle)
     {
         if (Direction > 0)                     //FIXME: This only works for routes written in the forwards direction
         {
             int         d      = Train.DriverCar;
             SoundBuffer buffer = Train.Cars[d].Sounds.Halt.Buffer;
             if (buffer != null)
             {
                 if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Single)
                 {
                     Train.Cars[d].Sounds.Halt.Source = Program.Sounds.PlaySound(buffer, 1.0, 1.0, Train.Cars[d].Sounds.Halt.Position, Train.Cars[d], false);
                 }
                 else if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Loop)
                 {
                     Train.Cars[d].Sounds.Halt.Source = Program.Sounds.PlaySound(buffer, 1.0, 1.0, Train.Cars[d].Sounds.Halt.Position, Train.Cars[d], true);
                 }
             }
             this.DontTriggerAnymore = true;
         }
     }
 }
 /// <summary>Creates a new TrackFollower</summary>
 public TrackFollower(Hosts.HostInterface Host, AbstractTrain train = null, AbstractCar car = null)
 {
     currentHost         = Host;
     Train               = train;
     Car                 = car;
     LastTrackElement    = 0;
     TrackPosition       = 0;
     WorldPosition       = new Vector3();
     WorldDirection      = new Vector3();
     WorldUp             = new Vector3();
     WorldSide           = new Vector3();
     Pitch               = 0;
     CurveRadius         = 0;
     CurveCant           = 0;
     Odometer            = 0;
     CantDueToInaccuracy = 0;
     AdhesionMultiplier  = 0;
     RainIntensity       = 0;
     SnowIntensity       = 0;
     TriggerType         = EventTriggerType.None;
     TrackIndex          = 0;
     StationIndex        = -1;
 }
Exemple #40
0
    private void OnCloseMailPanelWithCloseMsg(EventTriggerType eventtype, object button, PointerEventData eventData)
    {
        if (eventtype == EventTriggerType.PointerClick && m_MailinfoTransform != null)
        {
            Button getbtn = m_MailinfoTransform.Find("ImageBG/Button_queding").GetComponent <Button>();

            if (!getbtn.interactable)
            {
                return;
            }

            CustomAudio.GetInstance().PlayCustomAudio(1002);

            uint key = (uint)button;

            UMessage getitemmsg = new UMessage((uint)GameCity.EMSG_ENUM.CrazyCityMsg_APPLAYGETMAILREWORDDATA);
            getitemmsg.Add(GameMain.hall_.GetPlayerId());
            getitemmsg.Add(key);
            NetWorkClient.GetInstance().SendMsg(getitemmsg);

            getbtn.interactable = false;
        }
    }
Exemple #41
0
 private void OnHold(EventTriggerType trigger)
 {
     if (this.m_HoldCheck)
     {
         this.m_HoldOn = false;
     }
     else if (this.m_Enter)
     {
         if (this.IsFlag(ButtonEvent.Flag.DRAGMOVELOCK) && this.m_DragMove || (double)(Time.get_unscaledTime() - this.m_BeginEnterTime) <= 0.5)
         {
             return;
         }
         this.m_HoldCheck = true;
         if (!this.HasHoldEvent(trigger))
         {
             return;
         }
         this.m_HoldOn = this.SendHold(trigger, this.m_Pos);
     }
     else
     {
         this.m_HoldCheck = true;
     }
 }
Exemple #42
0
        public override void Trigger(int direction, TrackFollower trackFollower)
        {
            EventTriggerType triggerType = trackFollower.TriggerType;

            if (triggerType == EventTriggerType.FrontCarFrontAxle || triggerType == EventTriggerType.OtherCarFrontAxle)
            {
                AbstractCar car = trackFollower.Car;

                if (DontTriggerAnymore || car == null)
                {
                    return;
                }
                if (car.Index == trackFollower.Train.DriverCar)
                {
                    dynamic dynamicCar = car;
                    dynamicCar.Horns[(int)Type].Play();
                    dynamicCar.Horns[(int)Type].Stop();
                    if (TriggerOnce)
                    {
                        DontTriggerAnymore = true;
                    }
                }
            }
        }
Exemple #43
0
 internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex)
 {
     if (Train != null)
     {
         if (TriggerType == EventTriggerType.FrontCarFrontAxle)
         {
             if (Direction < 0)
             {
                 if (this.NextSectionIndex >= 0)
                 {
                     Game.Sections[this.NextSectionIndex].TrainReachedStopPoint = false;
                 }
                 UpdateFrontBackward(Train, true);
             }
             else if (Direction > 0)
             {
                 UpdateFrontForward(Train, true, true);
             }
         }
         else if (TriggerType == EventTriggerType.RearCarRearAxle)
         {
             if (Direction < 0)
             {
                 UpdateRearBackward(Train, true);
             }
             else if (Direction > 0)
             {
                 if (this.PreviousSectionIndex >= 0)
                 {
                     Game.Sections[this.PreviousSectionIndex].TrainReachedStopPoint = false;
                 }
                 UpdateRearForward(Train, true);
             }
         }
     }
 }
Exemple #44
0
 internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex)
 {
     if (TriggerType == EventTriggerType.FrontCarFrontAxle)
     {
         if (Direction > 0)
         {
             int d = Train.DriverCar;
             Sounds.SoundBuffer buffer = Train.Cars[d].Sounds.Halt.Buffer;
             if (buffer != null)
             {
                 OpenBveApi.Math.Vector3 pos = Train.Cars[d].Sounds.Halt.Position;
                 if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Single)
                 {
                     Train.Cars[d].Sounds.Halt.Source = Sounds.PlaySound(buffer, 1.0, 1.0, pos, Train, d, false);
                 }
                 else if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Loop)
                 {
                     Train.Cars[d].Sounds.Halt.Source = Sounds.PlaySound(buffer, 1.0, 1.0, pos, Train, d, true);
                 }
             }
             this.DontTriggerAnymore = true;
         }
     }
 }
Exemple #45
0
        public override void Trigger(int direction, TrackFollower trackFollower)
        {
            EventTriggerType triggerType = trackFollower.TriggerType;

            if (triggerType == EventTriggerType.FrontCarFrontAxle | triggerType == EventTriggerType.OtherCarFrontAxle)
            {
                AbstractCar car = trackFollower.Car;

                if (direction < 0)
                {
                    car.Brightness.NextBrightness        = CurrentBrightness;
                    car.Brightness.NextTrackPosition     = car.TrackPosition;
                    car.Brightness.PreviousBrightness    = PreviousBrightness;
                    car.Brightness.PreviousTrackPosition = car.TrackPosition - PreviousDistance;
                }
                else if (direction > 0)
                {
                    car.Brightness.PreviousBrightness    = CurrentBrightness;
                    car.Brightness.PreviousTrackPosition = car.TrackPosition;
                    car.Brightness.NextBrightness        = NextBrightness;
                    car.Brightness.NextTrackPosition     = car.TrackPosition + NextDistance;
                }
            }
        }
Exemple #46
0
            /// <summary>Triggers the playback of a sound</summary>
            /// <param name="Direction">The direction of travel- 1 for forwards, and -1 for backwards</param>
            /// <param name="TriggerType">They type of event which triggered this sound</param>
            /// <param name="Train">The root train which triggered this sound</param>
            /// <param name="CarIndex">The car index which triggered this sound</param>
            internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex)
            {
                if (SuppressSoundEvents)
                {
                    return;
                }

                if (TriggerType == EventTriggerType.FrontCarFrontAxle | TriggerType == EventTriggerType.OtherCarFrontAxle | TriggerType == EventTriggerType.OtherCarRearAxle | TriggerType == EventTriggerType.RearCarRearAxle)
                {
                    if (!PlayerTrainOnly | Train == TrainManager.PlayerTrain)
                    {
                        Vector3            p      = this.Position;
                        double             pitch  = 1.0;
                        double             gain   = 1.0;
                        Sounds.SoundBuffer buffer = this.SoundBuffer;
                        if (buffer != null)
                        {
                            if (this.Dynamic)
                            {
                                double spd = Math.Abs(Train.Specs.CurrentAverageSpeed);
                                pitch = spd / this.Speed;
                                gain  = pitch < 0.5 ? 2.0 * pitch : 1.0;
                                if (pitch < 0.2 | gain < 0.2)
                                {
                                    buffer = null;
                                }
                            }
                            if (buffer != null)
                            {
                                Sounds.PlaySound(buffer, pitch, gain, p, Train, CarIndex, false);
                            }
                        }
                        this.DontTriggerAnymore = this.Once;
                    }
                }
            }
Exemple #47
0
        void internalAddEvent <T>(GameObject gameobject, EventTriggerType type, UnityAction <T> action, T data)
        {
            if (!gameobject)
            {
                return;
            }

            EventTrigger trigger = gameobject.GetComponent <EventTrigger>();

            if (trigger == null)
            {
                trigger = gameobject.gameObject.AddComponent <EventTrigger>();
            }

            if (action == null)
            {
                return;
            }

            EventTrigger.Entry entry = new EventTrigger.Entry();
            entry.eventID = type;
            entry.callback.AddListener(delegate { action(data); });
            trigger.triggers.Add(entry);
        }
Exemple #48
0
 public override void Trigger(int Direction, EventTriggerType TriggerType, AbstractTrain Train, int CarIndex)
 {
     if (this.Type == -1 && Train == TrainManager.PlayerTrain || this.Type == 1 && Train != TrainManager.PlayerTrain)
     {
         return;
     }
     if (this.DontTriggerAnymore)
     {
         return;
     }
     if (TriggerType == EventTriggerType.TrainFront)
     {
         if (Direction > 0)
         {
             if (NextDestination != -1)
             {
                 Train.Destination = NextDestination;
             }
             if (TriggerOnce)
             {
                 DontTriggerAnymore = true;
             }
         }
         else
         {
             if (PreviousDestination != -1)
             {
                 Train.Destination = PreviousDestination;
             }
             if (TriggerOnce)
             {
                 DontTriggerAnymore = true;
             }
         }
     }
 }
Exemple #49
0
    /// <summary>
    /// 查看冠军排行榜按钮事件
    /// </summary>
    private void OnClickChampionBtn(EventTriggerType eventtype, object button, PointerEventData eventData)
    {
        if (eventtype == EventTriggerType.PointerClick)
        {
            CustomAudio.GetInstance().PlayCustomAudio(1002);

            if (root_ == null)
            {
                return;
            }

            ismaster = false;
            root_.transform.Find("Top/Change_BG/Button_guanjun").gameObject.SetActive(false);
            root_.transform.Find("Top/Change_BG/Button_dashi").gameObject.SetActive(true);
            root_.transform.Find("Top/ChooseGame_BG/Dropdown").gameObject.SetActive(false);

            Ask4ChampionData();
            GameMain.ST(CurRanIEnumerator);
            CurRanIEnumerator = RefreshMasterRankPanel();
            GameMain.SC(CurRanIEnumerator);
            RemoveContentTournametChilds();
            root_.transform.Find("Top/ImageIcon/Text").gameObject.GetComponent <Text>().text = "冠军排行";
        }
    }
    public static void addEventListner(GameObject gameObject, EventTriggerType triggerType, UnityAction <BaseEventData> unityAction)
    {
        EventTrigger eventTrigger = gameObject.GetComponent <EventTrigger>();

        if (eventTrigger == null)
        {
            eventTrigger = gameObject.AddComponent <EventTrigger>();
        }
        List <EventTrigger.Entry> entries = eventTrigger.triggers;

        if (entries == null)
        {
            entries = new List <EventTrigger.Entry>();
            eventTrigger.triggers = entries;
        }

        EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent();
        trigger.AddListener(unityAction);
        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID  = triggerType;
        entry.callback = trigger;

        entries.Add(entry);
    }
        /// <summary>
        /// 添加UGUI事件监听,同一组eventType+action只能监听一次
        /// </summary>
        /// <param name="eventType"></param>
        /// <param name="action"></param>
        public void AddListener(EventTriggerType eventType, UnityAction <BaseEventData> action)
        {
            triggers = triggers != null ? triggers : new List <Entry>();
            List <Entry> listEntry = triggers;

            EventTrigger.Entry entry = null;
            for (int i = listEntry.Count - 1; i >= 0; --i)
            {
                if (listEntry[i].eventID == eventType)
                {
                    entry = listEntry[i];
                    entry.callback.RemoveListener(action);//移除重复的监听
                    break;
                }
            }
            if (entry == null)
            {
                entry         = new EventTrigger.Entry();
                entry.eventID = eventType;
                listEntry.Add(entry);
            }

            entry.callback.AddListener(action);
        }
Exemple #52
0
 private void AddReplacingEntry(EventTrigger p_eventTrigger, EventTriggerType p_type)
 {
     if (p_eventTrigger != null)
     {
         EventTrigger.Entry v_entryToUpdate = null;
         foreach (EventTrigger.Entry v_entry in p_eventTrigger.triggers)
         {
             if (v_entry.eventID == p_type)
             {
                 v_entryToUpdate = v_entry;
                 break;
             }
         }
         if (v_entryToUpdate == null)
         {
             v_entryToUpdate = CreateEventEntry(p_type);
             p_eventTrigger.triggers.Add(v_entryToUpdate);
         }
         else
         {
             TryAddEventListener(v_entryToUpdate);
         }
     }
 }
 internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex)
 {
     if (TriggerType == EventTriggerType.FrontCarFrontAxle) {
         if (Direction > 0) {
             int d = Train.DriverCar;
             Sounds.SoundBuffer buffer = Train.Cars[d].Sounds.Halt.Buffer;
             if (buffer != null) {
                 OpenBveApi.Math.Vector3 pos = Train.Cars[d].Sounds.Halt.Position;
                 if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Single) {
                     Train.Cars[d].Sounds.Halt.Source = Sounds.PlaySound(buffer, 1.0, 1.0, pos, Train, d, false);
                 } else if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Loop) {
                     Train.Cars[d].Sounds.Halt.Source = Sounds.PlaySound(buffer, 1.0, 1.0, pos, Train, d, true);
                 }
             }
             this.DontTriggerAnymore = true;
         }
     }
 }
 public static void SetListener(GameObject go, EventTriggerType eventTriggerType, UnityAction<PointerEventData> eventData)
 {
     GetListener(go).SetListener(eventTriggerType, eventData);
 }
 private void callListeners(EventTriggerType triggerType, BaseEventData data)
 {
     foreach (UnityAction<BaseEventData> listener in _listeners[triggerType])
         listener(data);
 }
            public UnityAction<BaseEventData> handler(EventTriggerType triggerType)
            {
                switch (triggerType)
                {
                    case EventTriggerType.PointerDown:
                        return onPointerDown;
                    case EventTriggerType.PointerUp:
                        return onPointerUp;
                    case EventTriggerType.PointerClick:
                        return onPointerClick;
                    case EventTriggerType.PointerEnter:
                        return onPointerEnter;
                    case EventTriggerType.PointerExit:
                        return onPointerExit;
                    case EventTriggerType.InitializePotentialDrag:
                        return onInitializePotentialDrag;
                    case EventTriggerType.BeginDrag:
                        return onBeginDrag;
                    case EventTriggerType.EndDrag:
                        return onEndDrag;
                    case EventTriggerType.Drag:
                        return onDrag;
                    case EventTriggerType.Drop:
                        return onDrop;
                    case EventTriggerType.Select:
                        return onSelect;
                    case EventTriggerType.Deselect:
                        return onDeselect;
                    case EventTriggerType.UpdateSelected:
                        return onUpdateSelected;
                    case EventTriggerType.Submit:
                        return onSubmit;
                    case EventTriggerType.Cancel:
                        return onCancel;
                    case EventTriggerType.Move:
                        return onMove;
                    case EventTriggerType.Scroll:
                        return onScroll;
                }

                return null;
            }
        public UnityAction<BaseEventData> removeListener(EventTriggerType eventType, UnityAction<BaseEventData> listener)
        {
            if (listener == null)
                return null;

            _triggerHandler._listeners[eventType].Remove(listener);

            return listener;
        }
 internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex)
 {
     if (TriggerType == EventTriggerType.FrontCarFrontAxle) {
         if (Direction < 0) {
             Train.StationFrontCar = true;
         } else if (Direction > 0) {
             Train.StationFrontCar = false;
             if (Train == TrainManager.PlayerTrain) {
                 Timetable.UpdateCustomTimetable(Game.Stations[this.StationIndex].TimetableDaytimeTexture, Game.Stations[this.StationIndex].TimetableNighttimeTexture);
             }
         }
     } else if (TriggerType == EventTriggerType.RearCarRearAxle) {
         if (Direction < 0) {
             Train.Station = this.StationIndex;
             Train.StationRearCar = true;
             Train.LastStation = this.StationIndex;
         } else if (Direction > 0) {
             if (Train.Station == StationIndex) {
                 if (Train == TrainManager.PlayerTrain) {
                     if (Game.PlayerStopsAtStation(StationIndex) & TrainManager.PlayerTrain.StationState == TrainManager.TrainStopState.Pending) {
                         string s = Interface.GetInterfaceString("message_station_passed");
                         s = s.Replace("[name]", Game.Stations[StationIndex].Name);
                         Game.AddMessage(s, Game.MessageDependency.None, Interface.GameMode.Normal, Game.MessageColor.Orange, Game.SecondsSinceMidnight + 10.0);
                     } else if (Game.PlayerStopsAtStation(StationIndex) & TrainManager.PlayerTrain.StationState == TrainManager.TrainStopState.Boarding) {
                         string s = Interface.GetInterfaceString("message_station_passed_boarding");
                         s = s.Replace("[name]", Game.Stations[StationIndex].Name);
                         Game.AddMessage(s, Game.MessageDependency.None, Interface.GameMode.Normal, Game.MessageColor.Red, Game.SecondsSinceMidnight + 10.0);
                     }
                 }
                 Train.Station = -1;
                 Train.StationRearCar = false;
                 Train.StationState = TrainManager.TrainStopState.Pending;
                 int d = Train.DriverCar;
                 Sounds.StopSound(Train.Cars[d].Sounds.Halt.Source);
             }
         }
     }
 }
 internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex)
 {
     if (Train != null) {
         if (TriggerType == EventTriggerType.FrontCarFrontAxle) {
             if (Direction < 0) {
                 if (this.NextSectionIndex >= 0) {
                     Game.Sections[this.NextSectionIndex].TrainReachedStopPoint = false;
                 }
                 UpdateFrontBackward(Train, true);
             } else if (Direction > 0) {
                 UpdateFrontForward(Train, true, true);
             }
         } else if (TriggerType == EventTriggerType.RearCarRearAxle) {
             if (Direction < 0) {
                 UpdateRearBackward(Train, true);
             } else if (Direction > 0) {
                 if (this.PreviousSectionIndex >= 0) {
                     Game.Sections[this.PreviousSectionIndex].TrainReachedStopPoint = false;
                 }
                 UpdateRearForward(Train, true);
             }
         }
     }
 }
 internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex)
 {
     if (SuppressSoundEvents) return;
     if (TriggerType == EventTriggerType.FrontCarFrontAxle | TriggerType == EventTriggerType.OtherCarFrontAxle | TriggerType == EventTriggerType.OtherCarRearAxle | TriggerType == EventTriggerType.RearCarRearAxle) {
         if (!PlayerTrainOnly | Train == TrainManager.PlayerTrain) {
             Vector3 p = this.Position;
             double pitch = 1.0;
             double gain = 1.0;
             Sounds.SoundBuffer buffer = this.SoundBuffer;
             if (buffer == null) {
                 // HACK: Represents the train point sound
                 if (TriggerType == EventTriggerType.FrontCarFrontAxle | TriggerType == EventTriggerType.OtherCarFrontAxle) {
                     if (Train.Specs.CurrentAverageSpeed <= 0.0) return;
                     buffer = Train.Cars[CarIndex].Sounds.PointFrontAxle.Buffer;
                     p = Train.Cars[CarIndex].Sounds.PointFrontAxle.Position;
                 } else {
                     return; // HACK: Don't trigger sound for the rear axles
                     //buffer = Train.Cars[CarIndex].Sounds.PointRearAxle.Buffer;
                     //p = Train.Cars[CarIndex].Sounds.PointRearAxle.Position;
                 }
             }
             if (buffer != null) {
                 if (this.Dynamic) {
                     double spd = Math.Abs(Train.Specs.CurrentAverageSpeed);
                     pitch = spd / this.Speed;
                     gain = pitch < 0.5 ? 2.0 * pitch : 1.0;
                     if (pitch < 0.2 | gain < 0.2) {
                         buffer = null;
                     }
                 }
                 if (buffer != null) {
                     Sounds.PlaySound(buffer, pitch, gain, p, Train, CarIndex, false);
                 }
             }
             this.DontTriggerAnymore = this.Once;
         }
     }
 }