Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Film.cs
Go to the documentation of this file.
1using System;
4
5namespace Terraria.Cinematics;
6
7public class Film
8{
9 private class Sequence
10 {
11 private FrameEvent _frameEvent;
12
13 private int _duration;
14
15 private int _start;
16
17 public FrameEvent Event => _frameEvent;
18
19 public int Duration => _duration;
20
21 public int Start => _start;
22
23 public Sequence(FrameEvent frameEvent, int start, int duration)
24 {
26 _start = start;
28 }
29 }
30
31 private int _frame;
32
33 private int _frameCount;
34
36
37 private bool _isActive;
38
40
41 public int Frame => _frame;
42
43 public int FrameCount => _frameCount;
44
46
47 public bool IsActive => _isActive;
48
55
60
61 public void AddSequences(int start, int duration, params FrameEvent[] frameEvents)
62 {
63 foreach (FrameEvent frameEvent in frameEvents)
64 {
66 }
67 }
68
79
84
89
99
100 public void AddKeyFrame(int frame, FrameEvent frameEvent)
101 {
102 _sequences.Add(new Sequence(frameEvent, frame, 1));
103 _frameCount = Math.Max(_frameCount, frame + 1);
104 }
105
106 public void AddKeyFrames(int frame, params FrameEvent[] frameEvents)
107 {
108 foreach (FrameEvent frameEvent in frameEvents)
109 {
110 AddKeyFrame(frame, frameEvent);
111 }
112 }
113
115 {
116 if (_sequences.Count == 0)
117 {
118 return false;
119 }
120 foreach (Sequence sequence in _sequences)
121 {
122 int num = _frame - sequence.Start;
123 if (num >= 0 && num < sequence.Duration)
124 {
125 sequence.Event(new FrameEventData(_frame, sequence.Start, sequence.Duration));
126 }
127 }
128 return ++_frame != _frameCount;
129 }
130
131 public virtual void OnBegin()
132 {
133 _isActive = true;
134 }
135
136 public virtual void OnEnd()
137 {
138 _isActive = false;
139 }
140
141 private static void EmptyFrameEvent(FrameEventData evt)
142 {
143 }
144}
void Add(TKey key, TValue value)
static byte Max(byte val1, byte val2)
Definition Math.cs:738
Sequence(FrameEvent frameEvent, int start, int duration)
Definition Film.cs:23
virtual void OnEnd()
Definition Film.cs:136
virtual void OnBegin()
Definition Film.cs:131
void AppendKeyFrames(params FrameEvent[] frameEvents)
Definition Film.cs:90
List< Sequence > _sequences
Definition Film.cs:39
void AppendKeyFrame(FrameEvent frameEvent)
Definition Film.cs:85
void AppendSequence(int duration, FrameEvent frameEvent)
Definition Film.cs:56
void AppendEmptySequence(int duration)
Definition Film.cs:80
void AddKeyFrame(int frame, FrameEvent frameEvent)
Definition Film.cs:100
void AddSequences(int start, int duration, params FrameEvent[] frameEvents)
Definition Film.cs:61
void AddKeyFrames(int frame, params FrameEvent[] frameEvents)
Definition Film.cs:106
static void EmptyFrameEvent(FrameEventData evt)
Definition Film.cs:141
void AppendSequences(int duration, params FrameEvent[] frameEvents)
Definition Film.cs:69
bool OnUpdate(GameTime gameTime)
Definition Film.cs:114
void AddSequence(int start, int duration, FrameEvent frameEvent)
Definition Film.cs:49