コード例 #1
0
ファイル: Events.cs プロジェクト: MaciejSzpakowski/mu
 /// <summary>
 /// Add new event
 /// </summary>
 /// <param name="func">code to execute</param>
 /// <param name="name">name, used to remove event on demand</param>
 /// <param name="delay">how long to wait before start,0 to start immediately</param>
 /// <param name="life">how long before remove, 0 to never remove</param>
 /// <param name="tick">periodic triggering, 0 to trigger every frame</param>
 public Event AddEvent(IntFunction func, string name, bool front, TimeSpan delay, TimeSpan life, TimeSpan tick, EventType type = EventType.PostEvent)
 {
     if (Debug.DebugMode && name == "debugevents")
     {
         foreach (Event ev in zEvents)
             Debug.Write(ev.zName);
     }
     Event e = new Event(func, name, delay, life, tick);
     e.zType = type;
     if (front)
         zNewFrontEvents.Add(e);
     else
         zEvents.Add(e);
     return e;
 }
コード例 #2
0
ファイル: Window.cs プロジェクト: MaciejSzpakowski/mu
        protected bool Collect; //used to signal running events that this window has been destroyed

        public Window(Window owner = null, bool modal = false, string sprite = "")
        {            
            if (owner != null && modal)
                throw new ArgumentException("Child cannot be modal");
            Collect = false;
            Immovable = false;
            zEventEscape = null;
            zModal = modal;
            Name = string.Empty;
            zOrigin = new Vector2(0, 0);
            if (sprite == "")
                zSprite = SpriteManager.AddSprite(Path.Make(Path.Misc, "pixel.bmp"));
            else
                zSprite = SpriteManager.AddSprite(sprite);
            zSprite.ColorOperation = ColorOperation.ColorTextureAlpha;
            Color = Color.White;
            zVisible = true;
            OnClick = delegate () { };
            Hover = delegate () { };
            HoverMousedown = delegate () { };
            MouseLeave = delegate () { };
            MouseEnter = delegate () { };
            zParent = owner;
            zChildren = new List<Window>();
            zText = TextManager.AddText(string.Empty, Globals.Font);
            zText.ColorOperation = ColorOperation.ColorTextureAlpha;
            zText.AttachTo(zSprite, false);
            Size = new Vector2(1, 1);
            if (owner == null)
                InitializeAsTopLevel();
            else
                InitializeAsChild();
            SpriteManager.AddToLayer(zSprite, zLayer);
            TextManager.AddToLayer(zText, zLayer);
            zSprite.AttachTo(Camera.Main, true);
        }
コード例 #3
0
ファイル: Events.cs プロジェクト: MaciejSzpakowski/mu
 /// <summary>
 /// Add new event
 /// </summary>
 /// <param name="func">code to execute</param>
 /// <param name="name">name, used to remove event on demand</param>
 /// <param name="delay">how long to wait before start,0 to start immediately</param>
 /// <param name="life">how long before remove, 0 to never remove</param>
 /// <param name="tick">periodic triggering, 0 to trigger every frame</param>
 public Event AddEvent(IntFunction func, string name, bool front = false, float delay=0, float life=0, float tick=0, EventType type = EventType.PostEvent)
 {
     if (Debug.DebugMode && name == "debugevents")
     {
         foreach (Event ev in zEvents)
             Debug.Write(ev.zName);
     }
     Event e = new Event(func, name, TimeSpan.FromSeconds(delay), TimeSpan.FromSeconds(life), TimeSpan.FromSeconds(tick));
     e.zType = type;
     if (front)
         zNewFrontEvents.Add(e);
     else
         zEvents.Add(e);
     return e;
 }
コード例 #4
0
ファイル: Events.cs プロジェクト: MaciejSzpakowski/mu
 /// <summary>
 /// Remove event
 /// </summary>
 /// <param name="name"></param>
 public void RemoveEvent(Event e)
 {
     if(e != null)
         e.zCollect = true;
 }
コード例 #5
0
ファイル: Events.cs プロジェクト: MaciejSzpakowski/mu
 public bool HasEvent(Event e) => zEvents.Contains(e);