forked from bloodypenguin/ImprovedPublicTransport
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNodeData.cs
More file actions
136 lines (120 loc) · 3.42 KB
/
Copy pathNodeData.cs
File metadata and controls
136 lines (120 loc) · 3.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// Decompiled with JetBrains decompiler
// Type: ImprovedPublicTransport.NodeData
// Assembly: ImprovedPublicTransport, Version=1.0.6177.17409, Culture=neutral, PublicKeyToken=null
// MVID: 76F370C5-F40B-41AE-AA9D-1E3F87E934D3
// Assembly location: C:\Games\Steam\steamapps\workshop\content\255710\424106600\ImprovedPublicTransport.dll
using ImprovedPublicTransport2.OptionsFramework;
using UnityEngine;
namespace ImprovedPublicTransport2
{
public struct NodeData
{
private bool _noUnbunching;
private int _averagePassengersIn;
private int _averagePassengersOut;
private MovingAverage _passengerInData;
private MovingAverage _passengerOutData;
public bool IsEmpty
{
get
{
if (this.PassengersTotal == 0 && this._passengerInData == null)
return !this._noUnbunching;
return false;
}
}
public bool Unbunching
{
get
{
return !this._noUnbunching;
}
set
{
this._noUnbunching = !value;
}
}
public float[] PassengerInData
{
get
{
if (this._passengerInData == null)
return new float[0];
return this._passengerInData.ToArray();
}
set
{
this._passengerInData = new MovingAverage(value, OptionsWrapper<Settings>.Options.StatisticWeeks);
this._averagePassengersIn = Mathf.RoundToInt(this._passengerInData.Average);
}
}
public float[] PassengerOutData
{
get
{
if (this._passengerOutData == null)
return new float[0];
return this._passengerOutData.ToArray();
}
set
{
this._passengerOutData = new MovingAverage(value, OptionsWrapper<Settings>.Options.StatisticWeeks);
this._averagePassengersOut = Mathf.RoundToInt(this._passengerOutData.Average);
}
}
public int PassengersIn { get; set; }
public int PassengersOut { get; set; }
public int PassengersTotal
{
get
{
return this.PassengersIn + this.PassengersOut;
}
}
public int LastWeekPassengersIn { get; set; }
public int LastWeekPassengersOut { get; set; }
public int LastWeekPassengersTotal
{
get
{
return this.LastWeekPassengersIn + this.LastWeekPassengersOut;
}
}
public int AveragePassengersIn
{
get
{
return this._averagePassengersIn;
}
}
public int AveragePassengersOut
{
get
{
return this._averagePassengersOut;
}
}
public int AveragePassengersTotal
{
get
{
return this._averagePassengersIn + this._averagePassengersOut;
}
}
public void StartNewWeek()
{
if (this._passengerInData == null)
this._passengerInData = new MovingAverage(OptionsWrapper<Settings>.Options.StatisticWeeks);
this._passengerInData.Push((float) this.PassengersIn);
this._averagePassengersIn = Mathf.RoundToInt(this._passengerInData.Average);
this.LastWeekPassengersIn = this.PassengersIn;
this.PassengersIn = 0;
if (this._passengerOutData == null)
this._passengerOutData = new MovingAverage(OptionsWrapper<Settings>.Options.StatisticWeeks);
this._passengerOutData.Push((float) this.PassengersOut);
this._averagePassengersOut = Mathf.RoundToInt(this._passengerOutData.Average);
this.LastWeekPassengersOut = this.PassengersOut;
this.PassengersOut = 0;
}
}
}