forked from ACEmulator/ACE
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathParticleEmitterInfo.cs
137 lines (117 loc) · 5.18 KB
/
ParticleEmitterInfo.cs
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
137
using System;
using System.IO;
using System.Numerics;
using System.Text;
using ACE.Entity.Enum;
namespace ACE.DatLoader.FileTypes
{
/// <summary>
/// These are client_portal.dat files starting with 0x32.
/// </summary>
[DatFileType(DatFileType.ParticleEmitter)]
public class ParticleEmitterInfo : FileType
{
public EmitterType EmitterType { get; private set; }
public ParticleType ParticleType { get; private set; }
public uint GfxObjId { get; private set; }
public uint HwGfxObjId { get; private set; }
public double Birthrate { get; private set; }
public int MaxParticles { get; private set; }
public int InitialParticles { get; private set; }
public int TotalParticles { get; private set; }
public double TotalSeconds { get; private set; }
public double Lifespan { get; private set; }
public double LifespanRand { get; private set; }
public Vector3 OffsetDir { get; private set; }
public float MinOffset { get; private set; }
public float MaxOffset { get; private set; }
public Vector3 A { get; private set; }
public float MinA { get; private set; }
public float MaxA { get; private set; }
public Vector3 B { get; private set; }
public float MinB { get; private set; }
public float MaxB { get; private set; }
public Vector3 C { get; private set; }
public float MinC { get; private set; }
public float MaxC { get; private set; }
public float StartScale { get; private set; }
public float FinalScale { get; private set; }
public float ScaleRand { get; private set; }
public float StartTrans { get; private set; }
public float FinalTrans { get; private set; }
public float TransRand { get; private set; }
public int IsParentLocal { get; private set; }
public override void Unpack(BinaryReader reader)
{
Id = reader.ReadUInt32();
/*uint unknown = */reader.ReadUInt32();
EmitterType = (EmitterType)reader.ReadInt32();
ParticleType = (ParticleType)reader.ReadInt32();
GfxObjId = reader.ReadUInt32();
HwGfxObjId = reader.ReadUInt32();
Birthrate = reader.ReadDouble();
MaxParticles = reader.ReadInt32();
InitialParticles = reader.ReadInt32();
TotalParticles = reader.ReadInt32();
TotalSeconds = reader.ReadDouble();
Lifespan = reader.ReadDouble();
LifespanRand = reader.ReadDouble();
OffsetDir = reader.ReadVector3();
MinOffset = reader.ReadSingle();
MaxOffset = reader.ReadSingle();
A = reader.ReadVector3();
MinA = reader.ReadSingle();
MaxA = reader.ReadSingle();
B = reader.ReadVector3();
MinB = reader.ReadSingle();
MaxB = reader.ReadSingle();
C = reader.ReadVector3();
MinC = reader.ReadSingle();
MaxC = reader.ReadSingle();
StartScale = reader.ReadSingle();
FinalScale = reader.ReadSingle();
ScaleRand = reader.ReadSingle();
StartTrans = reader.ReadSingle();
FinalTrans = reader.ReadSingle();
TransRand = reader.ReadSingle();
IsParentLocal = reader.ReadInt32();
}
public override string ToString()
{
var sb = new StringBuilder();
sb.AppendLine("------------------");
sb.AppendLine($"ID: {Id:X8}");
sb.AppendLine("EmitterType: " + EmitterType);
sb.AppendLine("ParticleType: " + ParticleType);
sb.AppendLine($"GfxObjID: {GfxObjId:X8}");
sb.AppendLine($"HWGfxObjID: {HwGfxObjId:X8}");
sb.AppendLine("Birthrate: " + Birthrate);
sb.AppendLine("MaxParticles: " + MaxParticles);
sb.AppendLine("InitialParticles: " + InitialParticles);
sb.AppendLine("TotalParticles: " + TotalParticles);
sb.AppendLine("TotalSeconds: " + TotalSeconds);
sb.AppendLine("Lifespan: " + Lifespan);
sb.AppendLine("LifespanRand: " + LifespanRand);
sb.AppendLine("OffsetDir: " + OffsetDir);
sb.AppendLine("MinOffset: " + MinOffset);
sb.AppendLine("MaxOffset: " + MaxOffset);
sb.AppendLine("A: " + A);
sb.AppendLine("MinA: " + MinA);
sb.AppendLine("MaxA: " + MaxA);
sb.AppendLine("B: " + B);
sb.AppendLine("MinB: " + MinB);
sb.AppendLine("MaxB: " + MaxB);
sb.AppendLine("C: " + C);
sb.AppendLine("MinC: " + MinC);
sb.AppendLine("MaxC: " + MaxC);
sb.AppendLine("StartScale: " + StartScale);
sb.AppendLine("FinalScale: " + FinalScale);
sb.AppendLine("ScaleRand: " + ScaleRand);
sb.AppendLine("StartTrans: " + StartTrans);
sb.AppendLine("FinalTrans: " + FinalTrans);
sb.AppendLine("TransRand: " + TransRand);
sb.AppendLine("IsParentLocal: " + IsParentLocal);
return sb.ToString();
}
}
}