fix(runtime): fix chunk remap setTile crashes and use missing block fallback

- Clear invalid block IDs before setTile to prevent setTileAndData crashes
- Add CompressedTileStorage::set for direct block write when Tile::tiles[old] is null
- Use missing block placeholder with API-resolved IDs instead of bedrock
- Work around raw_pdb GetRecordAtOffset removal via ForEachSymbol iteration
This commit is contained in:
Jacobwasbeast
2026-03-08 23:50:21 -05:00
parent 887d75eb79
commit 4027ee4ef2
6 changed files with 378 additions and 77 deletions

View File

@@ -21,11 +21,13 @@ bool HookManager::Install(const SymbolResolver& symbols)
}
WorldIdRemap::SetTagNewTagSymbol(symbols.pTagNewTag);
WorldIdRemap::SetTileArraySymbol(symbols.pTileTiles);
WorldIdRemap::SetLevelChunkTileSymbols(
symbols.pLevelChunkGetTile,
symbols.pLevelChunkSetTile,
symbols.pLevelChunkGetPos,
symbols.pLevelChunkGetHighestNonEmptyY);
WorldIdRemap::SetCompressedTileStorageSetSymbol(symbols.pCompressedTileStorageSet);
if (symbols.pRunStaticCtors)
{