База из ремейка: ассеты, предметы, звуки и правки плана

Выгрузили из ремейка Rustex всё, на чём будем работать, и переписали план
под реальные цифры.

Ассеты:
- tools/extract-rustex-assets.py распаковывает res/ и game.jar и декодирует
  однобайтовый XOR (ключ по сигнатуре: PNG ^0x89, OGG ^0x4F, JSON ^0x7B).
  Итог: assets/rustex, 1.65 ГБ, 19 тыс. файлов. В репозиторий не кладём.
- Не прочитались 553 .obj, 106 .rrs, 113 .nbt: у них другой шифр, нужен
  разбор кода (REA).

Таблицы (в репозитории):
- items.csv: 218 предметов с уроном, дальностью, темпом, прочностью, добычей
  за удар, материалом, иконкой и моделью;
- sounds.csv: 505 звуковых событий с файлами;
- item-texts.json: 543 названия и описания предметов.

План (PLAN.md):
- Сбор теперь по балансу ремейка: камень берёт 50 дерева и 35 руды, топор 85
  дерева, каменная кирка 80 руды. Дерево 750 топором рубится за 9 ударов, с
  меткой за 6-7 - ровно те 7-10 ударов, которых ждали.
- Исследования - версия после 2020: два пути. Стол (15/30/60/120, нужен сам
  предмет, превращается в чертёж) и тех-дерево верстака (125/250/500, ветки с
  предками, разблокировка личная). Утверждение "тех-дерево бесплатно" было
  ошибкой community-вики.
- Лозы больше нет: она из джунглей, а джунглей нет. Выкинута из HP-таблицы,
  цен, таймеров гниения и правил шкафа.
- Новые разделы 1.10 (мусорка на дороге: серая бочка - скрап, синяя -
  компоненты, красная - нефть и топливо, плюс ящики с едой) и 1.11 (дороги:
  сетка 3-4 полос плюс кольцо, сегменты - точки спавна мусорки).
- Первый источник скрапа - мусорка, лутбоксы отложены: вопрос о прогрессии
  крафта снят.
- Узлы: руда - своя 3D-модель с AABB, деревья - пока блоки мира.
This commit is contained in:
sasheg dev
2026-10-21 19:31:51 +03:00
parent 8488a34c80
commit 27047e8071
9 changed files with 5937 additions and 210 deletions
+22
View File
@@ -216,10 +216,32 @@ starts, `play()` is called, nothing is found, and paulscode says nothing.
`tools\materialize_assets.py` lays the tree out and `run-game.ps1` calls it on
every launch, so this cannot be forgotten again.
### The base from the remake
The item models, textures, sounds and the whole item database are taken from
the Rustex remake as a temporary base. `tools\extract-rustex-assets.py` unpacks
them into `assets\rustex` (1.65 GB, not in the repository) and decodes the
one-byte XOR the remake uses. What we derived from that and keep in the
repository:
| File | What |
|---|---|
| `rsx-protocol\src\main\resources\items\items.csv` | 218 items: damage, range, tempo, durability, harvest per hit, material, icon, model |
| `rsx-protocol\src\main\resources\items\sounds.csv` | 505 sound events with their files |
| `rsx-protocol\src\main\resources\items\item-texts.json` | 543 item titles and descriptions |
These numbers are the balance we build on, and they are the ones the official
wiki contradicts (the wiki describes original Rust, the remake is faster). The
item icons come from the atlas of the remake and are placeholders: **replace
them with our own.**
## Tools
| Script | Purpose |
|---|---|
| `tools\extract-rustex-assets.py` | unpacks the assets of the Rustex remake and decodes them: every file is XOR-ed with one byte, the key comes from the format signature (PNG `^0x89`, OGG `^0x4F`, JSON `^0x7B`) |
| `tools\extract-items.py` | turns `models/stacks.json` of the remake into `rsx-protocol\...\items\items.csv`: 218 items with damage, range, tempo, durability, harvest per hit, material, icon, model |
| `tools\extract-sounds.py` | the sound registry of the remake into `sounds.csv`: 505 events with their files |
| `rsx-client\tools\merge_srg_mcp.py` | vanilla SRG plus MCP CSVs into one obf to MCP SRG |
| `rsx-client\tools\apply_patches.py` | re-applies the hand fixes, fails loudly if one misses |
| `rsx-client\tools\add_patch.py` | appends a reviewed patch to the fix file |