Skip to content

Commit 4a073db

Browse files
Parse ConfigurableCube (#45)
* Parse ConfigurableCube * fix
1 parent 5bfaa51 commit 4a073db

5 files changed

Lines changed: 18 additions & 4 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace Maple2.File.Parser.Enum;
2+
3+
public enum ConfigurableCubeType {
4+
None = 0,
5+
UGCNotice = 1,
6+
UGCPortal = 2,
7+
}

Maple2.File.Parser/FunctionCubeParser.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public FunctionCubeParser(M2dReader xmlReader) {
1717
FunctionCubeSerializer = new XmlSerializer(typeof(FunctionCubeRoot));
1818
}
1919

20-
public IEnumerable<(int Id, FunctionCube Data)> Parse() {
20+
public IEnumerable<(int Id, FunctionCubeRoot Data)> Parse() {
2121
foreach (PackFileEntry entry in xmlReader.Files.Where(entry => entry.Name.StartsWith("object/"))) {
2222
var reader = XmlReader.Create(new StringReader(Sanitizer.SanitizeFunctionCube(xmlReader.GetString(entry))));
2323
var data = FunctionCubeSerializer.Deserialize(reader) as FunctionCubeRoot;
@@ -26,7 +26,7 @@ public FunctionCubeParser(M2dReader xmlReader) {
2626
if (data.FunctionCube == null) continue;
2727

2828
if (int.TryParse(Path.GetFileNameWithoutExtension(entry.Name), out int id)) {
29-
yield return (id, data.FunctionCube);
29+
yield return (id, data);
3030
}
3131
}
3232
}

Maple2.File.Parser/Maple2.File.Parser.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@
1313
<PackageTags>MapleStory2, File, Parser, m2d, xml</PackageTags>
1414
<!-- Use following lines to write the generated files to disk. -->
1515
<EmitCompilerGeneratedFiles Condition=" '$(Configuration)' == 'Debug' ">true</EmitCompilerGeneratedFiles>
16-
<PackageVersion>2.2.3</PackageVersion>
16+
<PackageVersion>2.2.4</PackageVersion>
1717
<TargetFramework>net8.0</TargetFramework>
1818
<PackageReadmeFile>README.md</PackageReadmeFile>
1919
<ImplicitUsings>enable</ImplicitUsings>
2020
<LangVersion>12</LangVersion>
21+
<Nullable>enable</Nullable>
2122
</PropertyGroup>
2223

2324
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">

Maple2.File.Parser/Xml/Object/FunctionCube.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ namespace Maple2.File.Parser.Xml.Object;
88
[XmlRoot("ms2")]
99
public class FunctionCubeRoot {
1010
[XmlElement] public FunctionCube FunctionCube;
11+
[XmlElement] public ConfigurableCube? ConfigurableCube;
1112
}
1213

1314
public partial class FunctionCube {
@@ -51,3 +52,8 @@ public partial class FunctionCube {
5152
[XmlElement] public NoticePopup noticePopup;
5253
[XmlElement] public Nurturing nurturing;
5354
}
55+
56+
public partial class ConfigurableCube {
57+
[XmlAttribute] public bool enabled;
58+
[M2dEnum] public ConfigurableCubeType id;
59+
}

Maple2.File.Tests/FunctionCubeParserTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public void TestFunctionCubeParser() {
1313
// parser.FunctionCubeSerializer.UnknownElement += TestUtils.UnknownElementHandler;
1414
// parser.FunctionCubeSerializer.UnknownAttribute += TestUtils.UnknownAttributeHandler;
1515

16-
foreach ((int id, FunctionCube data) in parser.Parse()) {
16+
foreach ((int id, FunctionCubeRoot data) in parser.Parse()) {
1717
Assert.IsTrue(id >= 0);
1818
Assert.IsNotNull(data);
1919
}

0 commit comments

Comments
 (0)