ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/OniSplit/Objects/TriggerClass.cs
Revision: 1114
Committed: Wed Jan 22 14:08:57 2020 UTC (5 years, 8 months ago) by iritscen
File size: 2171 byte(s)
Log Message:
Adding OniSplit source code (v0.9.99.0). Many thanks to Neo for all his work over the years.

File Contents

# Content
1 using System;
2 using System.Collections.Generic;
3 using Oni.Akira;
4 using Oni.Imaging;
5 using Oni.Motoko;
6 using Oni.Physics;
7
8 namespace Oni.Objects
9 {
10 internal class TriggerClass : GunkObjectClass
11 {
12 public Color Color;
13 public int TimeOn;
14 public int TimeOff;
15 public float StartOffset;
16 public float AnimScale;
17 public Geometry RailGeometry;
18 public GunkFlags RailGunkFlags;
19 public string ActiveSoundName;
20 public string HitSoundName;
21
22 public static TriggerClass Read(InstanceDescriptor trig)
23 {
24 var klass = new TriggerClass();
25
26 InstanceDescriptor railGeometryDescriptor;
27
28 using (var reader = trig.OpenRead())
29 {
30 klass.Color = reader.ReadColor();
31 klass.TimeOn = reader.ReadUInt16();
32 klass.TimeOff = reader.ReadUInt16();
33 klass.StartOffset = reader.ReadSingle();
34 klass.AnimScale = reader.ReadSingle();
35 railGeometryDescriptor = reader.ReadInstance();
36 reader.Skip(4);
37 klass.RailGunkFlags = (GunkFlags)reader.ReadInt32();
38
39 // we do not need the emitter and animation for now
40 reader.Skip(8);
41 //trge = reader.ReadInstanceLink<TRGEInstance>();
42 //oban = reader.ReadInstanceLink<OBANInstance>();
43
44 klass.ActiveSoundName = reader.ReadString(32) + ".amb";
45 klass.HitSoundName = reader.ReadString(32) + ".imp";
46 reader.Skip(8);
47 }
48
49 if (railGeometryDescriptor != null)
50 klass.RailGeometry = GeometryDatReader.Read(railGeometryDescriptor);
51
52 return klass;
53 }
54
55 public override ObjectGeometry[] GunkNodes
56 {
57 get
58 {
59 return new[] {
60 new ObjectGeometry {
61 Geometry = RailGeometry,
62 Flags = RailGunkFlags
63 }
64 };
65 }
66 }
67 }
68 }