Elin Modding Docs Doc
Loading...
Searching...
No Matches
ZoneEventManager.cs
1using System;
2using System.Collections.Generic;
3using Newtonsoft.Json;
4using UnityEngine;
5
6// Token: 0x02000742 RID: 1858
7public class ZoneEventManager : EClass
8{
9 // Token: 0x060035D3 RID: 13779 RVA: 0x00125094 File Offset: 0x00123294
10 public void OnLoad(Zone _zone)
11 {
12 this.zone = _zone;
13 foreach (ZoneEvent zoneEvent in this.list)
14 {
15 zoneEvent.OnLoad(this.zone);
16 }
17 }
18
19 // Token: 0x060035D4 RID: 13780 RVA: 0x001250F4 File Offset: 0x001232F4
20 public void Add<T>(bool allowDuplicate = false) where T : ZoneEvent
21 {
22 this.Add(Activator.CreateInstance<T>(), allowDuplicate);
23 }
24
25 // Token: 0x060035D5 RID: 13781 RVA: 0x00125108 File Offset: 0x00123308
26 public void Add(ZoneEvent e, bool allowDuplicate = false)
27 {
28 if (EClass.debug.skipEvent && e.debugSkip)
29 {
30 return;
31 }
32 if (!allowDuplicate)
33 {
34 foreach (ZoneEvent zoneEvent in this.list)
35 {
36 if (e.GetType() == zoneEvent.GetType())
37 {
38 return;
39 }
40 }
41 }
42 this.list.Add(e);
43 e.zone = this.zone;
44 e.Init();
45 string str = "#game zone event ";
46 Type type = e.GetType();
47 Debug.Log(str + ((type != null) ? type.ToString() : null) + " added.");
48 }
49
50 // Token: 0x060035D6 RID: 13782 RVA: 0x001251C8 File Offset: 0x001233C8
51 public void AddPreEnter(ZonePreEnterEvent e, bool executeIfActiveZone = true)
52 {
53 if (this.zone.IsActiveZone && executeIfActiveZone)
54 {
55 e.Execute();
56 return;
57 }
58 this.listPreEnter.Add(e);
59 }
60
61 // Token: 0x060035D7 RID: 13783 RVA: 0x001251EC File Offset: 0x001233EC
62 public T GetEvent<T>() where T : ZoneEvent
63 {
64 foreach (ZoneEvent zoneEvent in this.list)
65 {
66 if (zoneEvent is T)
67 {
68 return zoneEvent as T;
69 }
70 }
71 return default(T);
72 }
73
74 // Token: 0x060035D8 RID: 13784 RVA: 0x0012525C File Offset: 0x0012345C
75 public void Remove<T>() where T : ZoneEvent
76 {
77 for (int i = this.list.Count - 1; i >= 0; i--)
78 {
79 if (this.list[i] is T)
80 {
81 this.list[i].Kill();
82 }
83 }
84 }
85
86 // Token: 0x060035D9 RID: 13785 RVA: 0x001252A5 File Offset: 0x001234A5
87 public void Remove(ZoneEvent e)
88 {
89 this.list.Remove(e);
90 }
91
92 // Token: 0x060035DA RID: 13786 RVA: 0x001252B4 File Offset: 0x001234B4
93 public void Clear()
94 {
95 this.list.Clear();
96 }
97
98 // Token: 0x060035DB RID: 13787 RVA: 0x001252C4 File Offset: 0x001234C4
99 public void Tick(float delta)
100 {
101 this.list.ForeachReverse(delegate(ZoneEvent e)
102 {
103 e.Tick(delta);
104 });
105 }
106
107 // Token: 0x060035DC RID: 13788 RVA: 0x001252F8 File Offset: 0x001234F8
108 public void OnVisit()
109 {
110 foreach (ZoneEvent zoneEvent in this.list)
111 {
112 zoneEvent.OnVisit();
113 }
114 }
115
116 // Token: 0x060035DD RID: 13789 RVA: 0x00125348 File Offset: 0x00123548
117 public void OnLeaveZone()
118 {
119 foreach (ZoneEvent zoneEvent in this.list)
120 {
121 zoneEvent.OnLeaveZone();
122 }
123 }
124
125 // Token: 0x060035DE RID: 13790 RVA: 0x00125398 File Offset: 0x00123598
126 public void OnSimulateHour()
127 {
128 if (this.list.Count == 0)
129 {
130 return;
131 }
132 foreach (ZoneEvent zoneEvent in this.list.Copy<ZoneEvent>())
133 {
134 zoneEvent.OnSimulateHour();
135 }
136 }
137
138 // Token: 0x04001C8B RID: 7307
139 public Zone zone;
140
141 // Token: 0x04001C8C RID: 7308
142 [JsonProperty]
143 public List<ZoneEvent> list = new List<ZoneEvent>();
144
145 // Token: 0x04001C8D RID: 7309
146 [JsonProperty]
147 public List<ZonePreEnterEvent> listPreEnter = new List<ZonePreEnterEvent>();
148}
Definition Zone.cs:14