- C++ 83.1%
- ActionScript 7.6%
- C 4.1%
- Python 2.5%
- TypeScript 2%
- Other 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- Implemented SettingsPage component for managing key bindings and hold time. - Added functionality to capture key presses for setting hotkeys. - Integrated language selection with fallback to game language. - Created Stage component for interactive preview manipulation. - Established internationalization support with English strings and language font handling. - Introduced key capture mechanism to manage global shortcuts during settings configuration. - Set up main application entry point and basic styling for UI components. - Defined TypeScript interfaces for data structures used in the application. - Configured Vite for building the application with React support. |
||
| AddressLibDecoder | ||
| assets | ||
| CommonLibF4 | ||
| DiverseBodiesRedux | ||
| tools | ||
| ui | ||
| .gitattributes | ||
| .gitignore | ||
| build-assessment.md | ||
| DiverseBodiesRedux.sln | ||
| LICENSE.txt | ||
| README.md | ||
DiverseBodiesRedux
Меню выбора пресетов (клавиша Numpad /)
Если установлена PrismaUI_F4.dll версии 2.0 или новее (нужен интерфейс V10; в PrismaUI 1.8 его нет) и в Data/PrismaUI_F4/views/DiverseBodiesRedux/ лежат файлы вью, меню открывается на PrismaUI + React: список персонажей рядом, вкладки типов пресетов, фильтры, список подходящих пресетов (наведение — предпросмотр, клик — применить и сохранить). Персонаж, на которого наведён курсор в списке (или выбранный), подсвечивается в мире шейдером. Иначе открывается прежнее меню на AS 3.0 (Interface/dbMenu.swf). Если вью PrismaUI не оживает за 4 с, плагин тоже переключается на старое меню.
Кнопка «Сохранённые пресеты» открывает вторую страницу (только PrismaUI): персонажи, для которых DBR хранит пресеты. Кнопка «Предпросмотр» (или двойной клик) создаёт перед камерой точную копию персонажа с его экипировкой и всем, что LooksMenu хранит для него (скин, оверлеи, морфы, то есть применённые пресеты): ИИ копии выключен, фракция — CaptiveFaction (дружелюбна ко всем), агрессия 0. Мышь на свободной области экрана вращает копию, колесо — приближает; «Закрыть предпросмотр» / «Назад» / Esc удаляют копию и возвращают камеру.
Предпросмотр работает и для персонажей, которых нет в сцене: для существующего, но не загруженного актёра на копию накладываются его сохранённые пресеты; для того, кого игра сейчас не знает вовсе (например, временный из другой ячейки), копия строится из сохранённого базового NPC. Копию можно двигать (влево-вправо — поворот, вверх-вниз — подъём; коллизий у неё нет) и приближать колесом. Пока копия показана, на ней можно примерять пресеты (клик по пресету) и кнопкой «Перенести на оригинал» применить и сохранить их для настоящего персонажа.
Карта актёров в co-save при загрузке пересчитывается штатным F4SE ResolveFormID (иначе после смены набора плагинов записи указывали бы на других актёров).
Вкладка «Оверрайды» — отмена и добавление правил внутри текущего сохранения, JSON-файлы при этом не меняются: можно разрешить типы пресетов, исключённые правилом из Exclusions/*.json, исключить персонажа в этом сейве и отключить пресет для автоматической раздачи. Оверрайды пишутся в co-save отдельной записью DBRO (старые версии мода и сейвы без неё работают как раньше).
Карта актёров: перед каждым сохранением выбрасываются записи, которые заведомо не про этого актёра (форма не актёр, другой базовый NPC, раса не из списка), и временные актёры (FormID 0xFF......), которых нет в памяти дольше [GENERAL] iTempActorExpireDays игровых дней (по умолчанию 40). Кнопка «Очистить» на странице «Сохранённые» делает то же самое сразу, «Удалить» убирает запись выбранного вручную.
Язык интерфейса — язык игры (sLanguage из Fallout4Custom.ini / Fallout4.ini); переводы на все 13 языков Fallout 4 лежат в Data/F4SE/Plugins/DiverseBodiesRedux/locales/*.json.
Настройки в [MENU] ini мода (Data/MCM/Settings/DiverseBodiesRedux.ini), все необязательные:
[MENU]
bUsePrismaUI=true ; false - всегда старое меню на AS 3.0
sLanguage=auto ; auto = язык игры, либо код: en ru de es esmx fr it ja ko pl ptbr zhhans zhhant (меняется и во вкладке «Настройки»)
sHighlightShader=Fallout4.esm|0x22517C ; шейдер подсветки (Plugin.esp|0xLOCALID), по умолчанию DetectLifeFXS
iMenuKey=111 ; кнопка открытия меню: код Windows VK_* (111 = Numpad /), общая для обоих меню
fMenuHoldSeconds=0.3 ; сколько секунд держать кнопку (дробное, 0 - сразу при нажатии)
Кнопку и время удержания можно менять и во вкладке «Настройки» меню Prisma UI («Изменить», затем нажать нужную клавишу): значения записываются в ini.
Сборка
- C++: Release x64,
MSBuild DiverseBodiesRedux/DiverseBodiesRedux.vcxproj -p:Configuration=Release -p:Platform=x64(VS 18, toolset v145). - UI:
cd ui && npm install && npm run build— собирает React-вью прямо вassets/PrismaUI_F4/views/DiverseBodiesRedux. - Переводы: ключи берутся из
ui/src/i18n/en.ts, переводы —tools/locales_data.py;python -I -X utf8 tools/gen_locales.pyпересоздаётassets/F4SE/Plugins/DiverseBodiesRedux/locales/*.jsonи проверяет, что во всех языках те же ключи и плейсхолдеры. powershell -File tools/deploy_assets.ps1копируетassets/поверх корней тестовых сборок мода (структураassets/повторяет структуру мода).