Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
MsgLog.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using System.Linq;
3using System.Runtime.Serialization;
4using Newtonsoft.Json;
5
6public class MsgLog : EClass
7{
8 public class Data : EClass
9 {
10 [JsonProperty]
11 public string text;
12
13 [JsonProperty]
14 public string col;
15
16 [JsonProperty]
17 public Date date;
18 }
19
20 [JsonProperty]
21 public Dictionary<int, Data> dict = new Dictionary<int, Data>();
22
23 [JsonProperty]
24 public int currentLogIndex;
25
26 [JsonProperty]
27 public string id;
28
29 public int maxLog
30 {
31 get
32 {
33 if (id == "chronicle")
34 {
35 return 9999;
36 }
37 return 50;
38 }
39 }
40
42 private void OnSerializing(StreamingContext context)
43 {
44 foreach (int item in dict.Keys.ToList())
45 {
47 {
48 dict.Remove(item);
49 }
50 }
51 }
52
53 public void Add(Data data)
54 {
55 dict.Add(currentLogIndex, data);
58 {
59 dict.Remove(currentLogIndex - maxLog);
60 }
61 }
62
63 public Data Add(string text, FontColor c)
64 {
65 return Add(text, c.ToString());
66 }
67
68 public Data Add(string text, string col = null)
69 {
70 Data data = new Data
71 {
72 text = text,
73 col = col
74 };
75 data.date = (VirtualDate.current ?? EClass.world.date).Copy();
76 Add(data);
77 return data;
78 }
79
80 public List<Data> GetList(bool reverse = false)
81 {
82 List<Data> list = new List<Data>();
83 foreach (Data value in dict.Values)
84 {
85 list.Add(value);
86 }
87 list.Sort((Data a, Data b) => a.date.GetRaw() - b.date.GetRaw());
88 if (reverse)
89 {
90 list.Reverse();
91 }
92 return list;
93 }
94}
FontColor
Definition: FontColor.cs:2
Definition: Date.cs:4
int GetRaw(int offsetHours=0)
Definition: Date.cs:322
Definition: EClass.cs:5
static World world
Definition: EClass.cs:40
Date date
Definition: MsgLog.cs:17
string text
Definition: MsgLog.cs:11
string col
Definition: MsgLog.cs:14
Definition: MsgLog.cs:7
int maxLog
Definition: MsgLog.cs:30
List< Data > GetList(bool reverse=false)
Definition: MsgLog.cs:80
Data Add(string text, FontColor c)
Definition: MsgLog.cs:63
void OnSerializing(StreamingContext context)
Definition: MsgLog.cs:42
int currentLogIndex
Definition: MsgLog.cs:24
Data Add(string text, string col=null)
Definition: MsgLog.cs:68
string id
Definition: MsgLog.cs:27
Dictionary< int, Data > dict
Definition: MsgLog.cs:21
void Add(Data data)
Definition: MsgLog.cs:53
GameDate date
Definition: World.cs:6