Skip to content

Commit

Permalink
rewrite chf things
Browse files Browse the repository at this point in the history
  • Loading branch information
diogotr7 committed Feb 18, 2025
1 parent b23c730 commit ff76309
Show file tree
Hide file tree
Showing 38 changed files with 35 additions and 1,610 deletions.
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
using StarBreaker.Common;

namespace StarBreaker.Chf.Parser;
namespace StarBreaker.Chf;

public class ChfDataParser
public class ChfData
{
public required CigGuid GenderId { get; init; }
public required DnaChunk Dna { get; init; }
public required Dna Dna { get; init; }
public required ItemPort ItemPort { get; init; }
public required List<Material> Materials { get; init; }

public static ChfDataParser FromBytes(ReadOnlySpan<byte> data)
public static ChfData FromBytes(ReadOnlySpan<byte> data)
{
var reader = new SpanReader(data);

reader.Expect<uint>(2);
reader.Expect<uint>(7);
var gender = reader.Read<CigGuid>();
reader.Expect(CigGuid.Empty);
var dna = DnaChunk.Read(ref reader);
var dna = Dna.Read(ref reader);
var itemPortCount = reader.ReadUInt64();
var itemPort = ItemPort.Read(ref reader);
reader.Expect<uint>(5);
var materials = new List<Material>();
while (reader.Remaining > 0)
materials.Add(Material.Read(ref reader));

return new ChfDataParser
return new ChfData
{
GenderId = gender,
Dna = dna,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using StarBreaker.Chf.Parser;
using StarBreaker.Common;
using StarBreaker.Common;

namespace StarBreaker.Chf;

Expand All @@ -9,7 +8,7 @@ public sealed class Dna
private const int PartCount = 48;

public required string DnaString { get; init; }
public required uint ChildCount { get; init; }
public required uint MaxHeadId { get; init; }
public required Dictionary<FacePart, DnaPart[]> Parts { get; init; }

public static Dna Read(ref SpanReader reader)
Expand Down Expand Up @@ -65,7 +64,7 @@ public static Dna Read(ref SpanReader reader)
return new Dna
{
DnaString = dnaString,
ChildCount = maxHeadId,
MaxHeadId = maxHeadId,
Parts = perBodyPart
};
}
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Diagnostics;
using StarBreaker.Common;

namespace StarBreaker.Chf.Parser;
namespace StarBreaker.Chf;

[DebuggerDisplay("{Name}")]
public class ItemPort
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using StarBreaker.Common;

namespace StarBreaker.Chf.Parser;
namespace StarBreaker.Chf;

public class Material
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Runtime.CompilerServices;
using StarBreaker.Common;

namespace StarBreaker.Chf.Parser;
namespace StarBreaker.Chf;

public class MaterialParam<T> where T : unmanaged
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
using System.Diagnostics.CodeAnalysis;
using StarBreaker.Common;

namespace StarBreaker.Chf.Parser;
namespace StarBreaker.Chf;

[DebuggerDisplay("{Name}")]
[DebuggerDisplay("{Value}")]
public readonly record struct NameHash
{
private readonly uint _value;

public string Name => TryGetName(out var name) ? name : $"0x{_value:X8}";
public string Value => TryGetName(out var name) ? name : $"0x{_value:X8}";

private NameHash(uint value)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using StarBreaker.Common;

namespace StarBreaker.Chf.Parser;
namespace StarBreaker.Chf;

public class SubMaterial
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using StarBreaker.Common;

namespace StarBreaker.Chf.Parser;
namespace StarBreaker.Chf;

public class Texture
{
Expand Down
4 changes: 2 additions & 2 deletions src/StarBreaker.Chf/ChfProcessing.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using System.Text.Json;
using StarBreaker.Chf.Parser;
using StarBreaker.Chf;
using StarBreaker.Common;

namespace StarBreaker.Chf;
Expand All @@ -17,7 +17,7 @@ public static async Task ProcessCharacter(string chf)

var json = Path.ChangeExtension(chf, ".json");
var data = await File.ReadAllBytesAsync(bin);
var character = ChfDataParser.FromBytes(data);
var character = ChfData.FromBytes(data);

var options = new JsonSerializerOptions
{
Expand Down
5 changes: 2 additions & 3 deletions src/StarBreaker.Chf/ChfSerializerContext.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
using System.Text.Json.Serialization;
using StarBreaker.Chf.Parser;
using StarBreaker.Chf;

namespace StarBreaker.Chf;

[JsonSerializable(typeof(StarCitizenCharacter))]
[JsonSerializable(typeof(ChfDataParser))]
[JsonSerializable(typeof(ChfData))]
[JsonSourceGenerationOptions(WriteIndented = true)]
internal partial class ChfSerializerContext : JsonSerializerContext;
29 changes: 0 additions & 29 deletions src/StarBreaker.Chf/Chunks/BodyChunk.cs

This file was deleted.

67 changes: 0 additions & 67 deletions src/StarBreaker.Chf/Chunks/BodyMaterialChunk.cs

This file was deleted.

32 changes: 0 additions & 32 deletions src/StarBreaker.Chf/Chunks/BodyTypeChunk.cs

This file was deleted.

43 changes: 0 additions & 43 deletions src/StarBreaker.Chf/Chunks/ColorsChunk.cs

This file was deleted.

Loading

0 comments on commit ff76309

Please sign in to comment.