diff --git a/scripts/chunk_data_decoder.gd b/scripts/chunk_data_decoder.gd index bfb4fed..9e19863 100644 --- a/scripts/chunk_data_decoder.gd +++ b/scripts/chunk_data_decoder.gd @@ -107,27 +107,6 @@ class TileLayerData: return null -## A single tile definition (palette entry). -class TileDef: - var id: int = 0 - var asset_id: String = "" - var solid: bool = false - var flags: int = 0 - var variants: int = 1 - - func is_solid() -> bool: - return solid - - func is_walkable() -> bool: - return (flags & 0x01) != 0 - - func is_climbable() -> bool: - return (flags & 0x02) != 0 - - func is_liquid() -> bool: - return (flags & 0x04) != 0 - - ## A world object parsed from chunk data. class WorldObjectData: var id: String = "" @@ -159,9 +138,9 @@ class ChunkPayload: var checksum: String = "" -# ─── Binary Decoding ──────────────────────────────────────────────────────── +# ───────────────── Binary Decoding ───────────────── -const MAGIC: PackedByteArray = PackedByteArray([0x41, 0x47, 0x50, 0x43]) # "AGPC" +static var MAGIC := PackedByteArray([0x41, 0x47, 0x50, 0x43]) # "AGPC" const HEADER_SIZE: int = 48 const SECTION_META: int = 0x01 const SECTION_TILE: int = 0x02 @@ -274,7 +253,7 @@ static func encode_binary(payload: ChunkPayload) -> PackedByteArray: return header + payload_bytes -# ─── Section Parsers ──────────────────────────────────────────────────────── +# ───────────────── Section Parsers ───────────────── static func _parse_metadata_section(data: PackedByteArray, result: ChunkPayload) -> void: var offset := 0 @@ -496,7 +475,7 @@ static func _parse_revision_meta_section(data: PackedByteArray, result: ChunkPay result.author = data.slice(offset, offset + author_len).get_string_from_utf8() -# ─── Section Builders ─────────────────────────────────────────────────────── +# ───────────────── Section Builders ───────────────── static func _build_metadata_section(payload: ChunkPayload) -> PackedByteArray: var data := PackedByteArray() @@ -607,7 +586,7 @@ static func _wrap_section(data: PackedByteArray, section_id: int) -> PackedByteA return wrapped -# ─── Binary Helpers ───────────────────────────────────────────────────────── +# ───────────────── Binary Helpers ───────────────── static func _read_uint16(data: PackedByteArray, offset: int) -> int: return data[offset] | (data[offset + 1] << 8) @@ -668,18 +647,18 @@ static func _write_string(s: String) -> PackedByteArray: static func _hex_to_bytes(hex_str: String) -> PackedByteArray: var result := PackedByteArray() for i in range(0, hex_str.length(), 2): - var byte_val := int("0x" + hex_str.substr(i, 2), 16) + var byte_val := ("0x" + hex_str.substr(i, 2)).hex_to_int() result.append(byte_val) return result -# ─── SHA-256 ──────────────────────────────────────────────────────────────── +# ───────────────── SHA-256 ───────────────── static func _sha256_hex(data: PackedByteArray) -> String: - var sha256 := SHA256Hash.new() - sha256.start() - sha256.update(data) - var hash := sha256.finish() + var ctx := HashingContext.new() + ctx.start(HashingContext.HASH_SHA256) + ctx.update(data) + var hash := ctx.finish() var hex_chars := "0123456789abcdef" var result := "" for byte_val in hash: