Jypeli 10
The simple game programming library
Events.cs
Siirry tämän tiedoston dokumentaatioon.
1using System;
2
3namespace Jypeli
4{
5 public partial class Game
6 {
11 {
12 Func<bool> condition;
13 Action handler;
14
20 internal CustomEventHandler( Func<bool> condition, Action handler )
21 {
22 this.condition = condition;
23 this.handler = handler;
24 }
25
29 public bool IsDestroyed { get; private set; }
30
34 public bool IsUpdated { get { return true; } }
35
39 public event Action Destroyed;
40
44 public void Destroy()
45 {
46 IsDestroyed = true;
47 if ( Destroyed != null )
48 Destroyed();
49 }
50
55 public void Update( Time time )
56 {
57 if ( condition() )
58 handler();
59 }
60 }
61
63
69 public CustomEventHandler AddCustomHandler( Func<bool> condition, Action handler)
70 {
71 if ( handlers == null )
73
74 var handlerObj = new CustomEventHandler( condition, handler );
75 handlers.Add( handlerObj );
76 return handlerObj;
77 }
78
87 public CustomEventHandler AddCustomHandler<T>( T obj, Predicate<T> condition, Action<T> handler )
88 {
89 return this.AddCustomHandler( () => condition( obj ), () => handler( obj ) );
90 }
91
102 public CustomEventHandler AddCustomHandler<T1, T2>( T1 obj1, T2 obj2, Func<T1, T2, bool> condition, Action<T1, T2> handler )
103 {
104 return this.AddCustomHandler( () => condition( obj1, obj2 ), () => handler( obj1, obj2 ) );
105 }
106
119 public CustomEventHandler AddCustomHandler<T1, T2, T3>( T1 obj1, T2 obj2, T3 obj3, Func<T1, T2, T3, bool> condition, Action<T1, T2, T3> handler )
120 {
121 return this.AddCustomHandler( () => condition( obj1, obj2, obj3 ), () => handler( obj1, obj2, obj3 ) );
122 }
123
127 protected void UpdateHandlers( Time time )
128 {
129 if (handlers == null)
130 return;
131
132 handlers.Update( time );
133 }
134 }
135}
Vapaamuotoinen tapahtumankäsittelijä.
Definition: Events.cs:11
CustomEventHandler(Func< bool > condition, Action handler)
Luo uuden tapahtumankäsittelijän.
Definition: Events.cs:20
Action Destroyed
Tapahtuu, kun tapahtumankäsittelijä tuhotaan.
Definition: Events.cs:39
void Update(Time time)
Päivittää tapahtumankäsittelijää (Jypeli kutsuu)
Definition: Events.cs:55
bool IsDestroyed
Onko käsittelijä tuhottu.
Definition: Events.cs:29
void Destroy()
Tuhoaa tapahtumankäsittelijän.
Definition: Events.cs:44
bool IsUpdated
Päivitetäänkö.
Definition: Events.cs:34
CustomEventHandler AddCustomHandler(Func< bool > condition, Action handler)
Lisää vapaamuotoisen tapahtumankäsittelijän.
Definition: Events.cs:69
CustomEventHandler AddCustomHandler< T1, T2, T3 >(T1 obj1, T2 obj2, T3 obj3, Func< T1, T2, T3, bool > condition, Action< T1, T2, T3 > handler)
Lisää vapaamuotoisen tapahtumankäsittelijän.
Definition: Events.cs:119
SynchronousList< CustomEventHandler > handlers
Definition: Events.cs:62
CustomEventHandler AddCustomHandler< T >(T obj, Predicate< T > condition, Action< T > handler)
Lisää vapaamuotoisen tapahtumankäsittelijän.
Definition: Events.cs:87
CustomEventHandler AddCustomHandler< T1, T2 >(T1 obj1, T2 obj2, Func< T1, T2, bool > condition, Action< T1, T2 > handler)
Lisää vapaamuotoisen tapahtumankäsittelijän.
Definition: Events.cs:102
void UpdateHandlers(Time time)
Kutsuu tapahtumankäsittelijöitä.
Definition: Events.cs:127
Synkroninen lista, eli lista joka päivittyy vasta kun sen Update-metodia kutsutaan....
Rajapinta olioille, jotka ovat tuhottavissa.
Definition: Destroyable.cs:9
Rajapinta päivittyville olioille.
Definition: Updatable.cs:7
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Definition: Time.cs:14