Skip to content

Commit

Permalink
Parse ConfigurableCube
Browse files Browse the repository at this point in the history
  • Loading branch information
AngeloTadeucci committed Feb 19, 2025
1 parent 5bfaa51 commit 3d13137
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 4 deletions.
6 changes: 6 additions & 0 deletions Maple2.File.Parser/Enum/ConfigurableCubeType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace Maple2.File.Parser.Enum;

public enum ConfigurableCubeType {
UGCNotice = 0,
UGCPortal = 1,
}
4 changes: 2 additions & 2 deletions Maple2.File.Parser/FunctionCubeParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public FunctionCubeParser(M2dReader xmlReader) {
FunctionCubeSerializer = new XmlSerializer(typeof(FunctionCubeRoot));
}

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

if (int.TryParse(Path.GetFileNameWithoutExtension(entry.Name), out int id)) {
yield return (id, data.FunctionCube);
yield return (id, data);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Maple2.File.Parser/Maple2.File.Parser.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<PackageTags>MapleStory2, File, Parser, m2d, xml</PackageTags>
<!-- Use following lines to write the generated files to disk. -->
<EmitCompilerGeneratedFiles Condition=" '$(Configuration)' == 'Debug' ">true</EmitCompilerGeneratedFiles>
<PackageVersion>2.2.3</PackageVersion>
<PackageVersion>2.2.4</PackageVersion>
<TargetFramework>net8.0</TargetFramework>
<PackageReadmeFile>README.md</PackageReadmeFile>
<ImplicitUsings>enable</ImplicitUsings>
Expand Down
6 changes: 6 additions & 0 deletions Maple2.File.Parser/Xml/Object/FunctionCube.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ namespace Maple2.File.Parser.Xml.Object;
[XmlRoot("ms2")]
public class FunctionCubeRoot {
[XmlElement] public FunctionCube FunctionCube;
[XmlElement] public ConfigurableCube ConfigurableCube;
}

public partial class FunctionCube {
Expand Down Expand Up @@ -51,3 +52,8 @@ public partial class FunctionCube {
[XmlElement] public NoticePopup noticePopup;
[XmlElement] public Nurturing nurturing;
}

public partial class ConfigurableCube {
[XmlAttribute] public bool enabled;
[M2dEnum] public ConfigurableCubeType id;
}
2 changes: 1 addition & 1 deletion Maple2.File.Tests/FunctionCubeParserTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public void TestFunctionCubeParser() {
// parser.FunctionCubeSerializer.UnknownElement += TestUtils.UnknownElementHandler;
// parser.FunctionCubeSerializer.UnknownAttribute += TestUtils.UnknownAttributeHandler;

foreach ((int id, FunctionCube data) in parser.Parse()) {
foreach ((int id, FunctionCubeRoot data) in parser.Parse()) {
Assert.IsTrue(id >= 0);
Assert.IsNotNull(data);
}
Expand Down

0 comments on commit 3d13137

Please sign in to comment.