Skip to content

Commit 852a43d

Browse files
committed
Moved classes to seperate files.
1 parent 9a81934 commit 852a43d

File tree

4 files changed

+133
-97
lines changed

4 files changed

+133
-97
lines changed

DataExchange/SchemaBuilder.cs

Lines changed: 0 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -8,103 +8,6 @@
88

99
namespace ReClassNET.DataExchange
1010
{
11-
public enum SchemaType
12-
{
13-
None,
14-
Padding,
15-
16-
Array,
17-
ClassPtrArray,
18-
ClassInstance,
19-
Class,
20-
ClassPtr,
21-
Double,
22-
Float,
23-
FunctionPtr,
24-
Hex8,
25-
Hex16,
26-
Hex32,
27-
Hex64,
28-
Int8,
29-
Int16,
30-
Int32,
31-
Int64,
32-
Matrix3x3,
33-
Matrix3x4,
34-
Matrix4x4,
35-
UInt8,
36-
UInt16,
37-
UInt32,
38-
UInt64,
39-
UTF8Text,
40-
UTF8TextPtr,
41-
UTF16Text,
42-
UTF16TextPtr,
43-
UTF32Text,
44-
UTF32TextPtr,
45-
Vector2,
46-
Vector3,
47-
Vector4,
48-
VTable,
49-
VMethod,
50-
BitField,
51-
52-
Custom
53-
}
54-
55-
[Serializable]
56-
public class SchemaNode
57-
{
58-
public SchemaType Type { get; }
59-
public string Name { get; set; }
60-
public string Comment { get; set; }
61-
public int Count { get; set; } = -1;
62-
63-
public SchemaNode(SchemaType type)
64-
{
65-
Type = type;
66-
}
67-
}
68-
69-
[Serializable]
70-
public class SchemaReferenceNode : SchemaNode
71-
{
72-
public SchemaClassNode InnerNode { get; }
73-
74-
public SchemaReferenceNode(SchemaType type, SchemaClassNode inner)
75-
: base(type)
76-
{
77-
Contract.Requires(inner != null);
78-
79-
InnerNode = inner;
80-
}
81-
}
82-
83-
[Serializable]
84-
public class SchemaVTableNode : SchemaNode
85-
{
86-
public List<SchemaNode> Nodes { get; } = new List<SchemaNode>();
87-
88-
public SchemaVTableNode()
89-
: base(SchemaType.VTable)
90-
{
91-
92-
}
93-
}
94-
95-
[Serializable]
96-
public class SchemaClassNode : SchemaNode
97-
{
98-
public string AddressFormula { get; set; }
99-
public List<SchemaNode> Nodes { get; } = new List<SchemaNode>();
100-
101-
public SchemaClassNode()
102-
: base(SchemaType.Class)
103-
{
104-
105-
}
106-
}
107-
10811
/// <summary>Converts nodes to schema nodes and vice verca.</summary>
10912
public class SchemaBuilder
11013
{

DataExchange/SchemaNodes.cs

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Diagnostics.Contracts;
4+
5+
namespace ReClassNET.DataExchange
6+
{
7+
[Serializable]
8+
public class SchemaNode
9+
{
10+
public SchemaType Type { get; }
11+
public string Name { get; set; }
12+
public string Comment { get; set; }
13+
public int Count { get; set; } = -1;
14+
15+
public SchemaNode(SchemaType type)
16+
{
17+
Type = type;
18+
}
19+
}
20+
21+
[Serializable]
22+
public class SchemaReferenceNode : SchemaNode
23+
{
24+
public SchemaClassNode InnerNode { get; }
25+
26+
public SchemaReferenceNode(SchemaType type, SchemaClassNode inner)
27+
: base(type)
28+
{
29+
Contract.Requires(inner != null);
30+
31+
InnerNode = inner;
32+
}
33+
}
34+
35+
[Serializable]
36+
public class SchemaVTableNode : SchemaNode
37+
{
38+
public List<SchemaNode> Nodes { get; } = new List<SchemaNode>();
39+
40+
public SchemaVTableNode()
41+
: base(SchemaType.VTable)
42+
{
43+
44+
}
45+
}
46+
47+
[Serializable]
48+
public class SchemaClassNode : SchemaNode
49+
{
50+
public string AddressFormula { get; set; }
51+
public List<SchemaNode> Nodes { get; } = new List<SchemaNode>();
52+
53+
public SchemaClassNode()
54+
: base(SchemaType.Class)
55+
{
56+
57+
}
58+
}
59+
60+
public class SchemaClassNodeEqualityComparer : IEqualityComparer<SchemaClassNode>
61+
{
62+
public bool Equals(SchemaClassNode c1, SchemaClassNode c2)
63+
{
64+
if (c2 == null && c1 == null)
65+
{
66+
return true;
67+
}
68+
if (c1 == null | c2 == null)
69+
{
70+
return false;
71+
}
72+
if (c1.Name == c2.Name)
73+
{
74+
return true;
75+
}
76+
77+
return false;
78+
}
79+
80+
public int GetHashCode(SchemaClassNode c)
81+
{
82+
return c.Name.GetHashCode();
83+
}
84+
}
85+
}

DataExchange/SchemaType.cs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
namespace ReClassNET.DataExchange
2+
{
3+
public enum SchemaType
4+
{
5+
None,
6+
Padding,
7+
8+
Array,
9+
ClassPtrArray,
10+
ClassInstance,
11+
Class,
12+
ClassPtr,
13+
Double,
14+
Float,
15+
FunctionPtr,
16+
Hex8,
17+
Hex16,
18+
Hex32,
19+
Hex64,
20+
Int8,
21+
Int16,
22+
Int32,
23+
Int64,
24+
Matrix3x3,
25+
Matrix3x4,
26+
Matrix4x4,
27+
UInt8,
28+
UInt16,
29+
UInt32,
30+
UInt64,
31+
UTF8Text,
32+
UTF8TextPtr,
33+
UTF16Text,
34+
UTF16TextPtr,
35+
UTF32Text,
36+
UTF32TextPtr,
37+
Vector2,
38+
Vector3,
39+
Vector4,
40+
VTable,
41+
VMethod,
42+
BitField,
43+
44+
Custom
45+
}
46+
}

ReClass.NET.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@
144144
<Compile Include="CodeGenerator\Language.cs" />
145145
<Compile Include="CodeGenerator\MemberDefinition.cs" />
146146
<Compile Include="DataExchange\ReClassClipboard.cs" />
147+
<Compile Include="DataExchange\SchemaNodes.cs" />
148+
<Compile Include="DataExchange\SchemaType.cs" />
147149
<Compile Include="Forms\InputBytesForm.cs">
148150
<SubType>Form</SubType>
149151
</Compile>

0 commit comments

Comments
 (0)