From 24cb15d9ecbeb23a44e7e6a799de4488867cd809 Mon Sep 17 00:00:00 2001 From: Neloreck Date: Fri, 1 Sep 2023 04:08:08 +0300 Subject: [PATCH 1/2] Remove doc folder and migrate everything to separate book repository. Update links in readme. --- README.md | 6 ++-- doc/BUILDING_CUSTOM_GAME_PACKAGE.md | 44 ----------------------------- doc/BUILDING_UI.md | 12 -------- doc/CHECKING_GAME_LOGS.md | 17 ----------- doc/CODESTYLE.md | 6 ---- doc/DEBUGGING_GAME.md | 15 ---------- doc/DEVELOP_FASTER.md | 28 ------------------ doc/GAMEDATA_STRUCTURE.md | 14 --------- doc/PROJECT_STRUCTURE.md | 29 ------------------- doc/README.md | 21 -------------- doc/SCRIPTS_EXECUTION_FLOW.md | 20 ------------- doc/TODO.md | 25 ---------------- doc/TYPEDEFS.md | 13 --------- doc/UTILS.md | 36 ----------------------- 14 files changed, 3 insertions(+), 283 deletions(-) delete mode 100644 doc/BUILDING_CUSTOM_GAME_PACKAGE.md delete mode 100644 doc/BUILDING_UI.md delete mode 100644 doc/CHECKING_GAME_LOGS.md delete mode 100644 doc/CODESTYLE.md delete mode 100644 doc/DEBUGGING_GAME.md delete mode 100644 doc/DEVELOP_FASTER.md delete mode 100644 doc/GAMEDATA_STRUCTURE.md delete mode 100644 doc/PROJECT_STRUCTURE.md delete mode 100644 doc/README.md delete mode 100644 doc/SCRIPTS_EXECUTION_FLOW.md delete mode 100644 doc/TODO.md delete mode 100644 doc/TYPEDEFS.md delete mode 100644 doc/UTILS.md diff --git a/README.md b/README.md index b26ece409..7c71b9d03 100644 --- a/README.md +++ b/README.md @@ -99,13 +99,13 @@ Optimizations, quality and logics updates are welcome. ## ๐Ÿ’ฟ Build Script engine can be packaged and built into custom game package.
-Detailed description: [link](doc/BUILDING_CUSTOM_GAME_PACKAGE.md) +Detailed description: [link](https://xray-forge.github.io/stalker-xrf-book/xrf/packaging.html) --- ## ๐Ÿงฐ Docs -- Development and game documentation: [docs](doc/README.md) +- Development and game documentation: [docs book](https://xray-forge.github.io/stalker-xrf-book/general/general.html) - Types and game bindings: [source](https://github.com/xray-forge/xray-16-types), [docs](https://xray-forge.github.io/xray-16-types/modules.html) ## ๐Ÿ—๏ธ Assets @@ -120,6 +120,6 @@ Additional assets repository can be cloned manually or with shortcut command: +It took 3 months just to migrate all the 20 years of LUA codebase to typescript and create custom transformers to support luabind.
Further game testing and re-architecture produces new bugs and issues which are easier to prevent with unit tests.
As for now, main focus is separation and clarification of logics and unit testing coverage. diff --git a/doc/BUILDING_CUSTOM_GAME_PACKAGE.md b/doc/BUILDING_CUSTOM_GAME_PACKAGE.md deleted file mode 100644 index 32ddd642d..000000000 --- a/doc/BUILDING_CUSTOM_GAME_PACKAGE.md +++ /dev/null @@ -1,44 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๏ธ๏ธ๐Ÿ—๏ธ Building custom game package - -XRF template provides CLI and utils for creation of custom game repacks.
-Instead of building `gamedata` folder and distributing it as a separate `zip`, mods can be packed in `.db` archives -and bundled together with custom engine. - -### ๐Ÿ—๏ธ Pre-requirements - -Comparing to normal gamedata builds the only needed thing is full assets list.
-To build package you will need [extended](https://gitlab.com/xray-forge/stalker-xrf-resources-extended) assets -and one of locales packs, for example [eng](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-eng).
- -After cloning suggested repositories or providing custom assets, you should list them in 'config.json' if paths are different from already suggested. - -### ๐Ÿ—๏ธ Running build - -If assets are downloaded and configured correctly, the only needed thing is one of following: - -``` -npm run cli pack game -- --clean --optimize - -# or -npm run cli pack game -- -c -o - -# or -npm run pack:game -``` - -As result, new package will be created in `target` folder. - -If you want to 'just build' package for testing from existing assets without full build/compress cycle, you can use alternative: - -``` -npm run cli pack game -- --engine release --no-build -``` - -### ๐Ÿ—๏ธ Assets links - -- Extended assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-extended](https://gitlab.com/xray-forge/stalker-xrf-resources-extended) -- EN locale assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-locale-eng](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-eng) -- UA locale assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-locale-ukr](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-ukr) -- RU locale assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-locale-rus](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-rus) diff --git a/doc/BUILDING_UI.md b/doc/BUILDING_UI.md deleted file mode 100644 index 5490f03ff..000000000 --- a/doc/BUILDING_UI.md +++ /dev/null @@ -1,12 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๐Ÿงฐ Custom forms and UI - -Notes: - -- When creating forms, use [JSX](https://www.typescriptlang.org/docs/handbook/jsx.html) -- When the engine mod compilation happens, JSX is transformed to valid XML -- All coordinates with (x, y) are based on 'attach' parent (not XML child, rather script register parent) and related -- Use `preview` command to preview forms and develop faster, example: `npm run preview menu` - -For examples check: `src/engine/forms`. diff --git a/doc/CHECKING_GAME_LOGS.md b/doc/CHECKING_GAME_LOGS.md deleted file mode 100644 index ecca9cf25..000000000 --- a/doc/CHECKING_GAME_LOGS.md +++ /dev/null @@ -1,17 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๐Ÿงฐ Checking game logs - -To enable loggingะฑ make sure the `GameConfig` logging flag is set to true.
- -Depending on how you run the game, you can use the following approaches to check the logs: - -## With pre-built engine - -- Make sure you are using the custom engine. If not, switch to the mixed/release variant: `npm run engine use release` -- Link the application logs folder with the target directory: `npm run link` -- Start the game (`npm run start_game`) and check the log files in `target/logs_link` directory - -## With visual studio - -- Just run the project and check `Output` window of application diff --git a/doc/CODESTYLE.md b/doc/CODESTYLE.md deleted file mode 100644 index a96bf980d..000000000 --- a/doc/CODESTYLE.md +++ /dev/null @@ -1,6 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๐Ÿ—๏ธ Codestyle - -To ensure code style unification and validation, we use `prettier` and `eslint`.
-Additionally, we set the line endings to CRLF to match the Windows system. diff --git a/doc/DEBUGGING_GAME.md b/doc/DEBUGGING_GAME.md deleted file mode 100644 index db0c7c69d..000000000 --- a/doc/DEBUGGING_GAME.md +++ /dev/null @@ -1,15 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๏ธ๏ธ๐Ÿ—๏ธ Debugging game - -To attach a debugger to Lua/C++ code, follow these steps: - -- Download Visual Studio -- Install the [LUA debug](https://github.com/WheretIB/LuaDkmDebugger) extension for Visual Studio. (fixes [A](https://github.com/WheretIB/LuaDkmDebugger/pull/25) + [B](https://github.com/WheretIB/LuaDkmDebugger/pull/26) required) -- Set up the engine project by following the OpenXray instructions -- Link the game by running npm run link and targeting the folder of xrf -- Run the game in debug/release mode directly from Visual Studio - -Note that it is not possible to debug TypeScript directly.
-Instead, attach a breakpoint and observe the transpiled Lua code.
-Additionally, it is not possible to debug luabind declared classes and userdata. diff --git a/doc/DEVELOP_FASTER.md b/doc/DEVELOP_FASTER.md deleted file mode 100644 index bc4bc3c23..000000000 --- a/doc/DEVELOP_FASTER.md +++ /dev/null @@ -1,28 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๐Ÿ—๏ธ Develop faster - -To simplify development and test everything faster watch script or separate building steps can be used.
-Also you can utilize your IDE to create RUN options and execute all the scripts with a single click (in WebStorm or VSCode). - -#### Example: only lua scripts are being updated - -- run `npm run build:scripts` - -#### Example: only UI form changed - -- run `npm run build:ui`, rebuild only UI forms - -#### Example: only LTX config changed - -- run `npm run build:configs`, rebuild only UI forms - -### ๐Ÿ—๏ธ Use watch mode - -For faster development scripts watch mode can be used.
-To run project automated scripts building on changes use following command: - -- run `npm run build:scripts` - -As result any script file change will cause resulting gamedata to rebuild.
-Also there is no need to restart the game .exe, just 'new game' option in menu will reload all the scripts from the file system. diff --git a/doc/GAMEDATA_STRUCTURE.md b/doc/GAMEDATA_STRUCTURE.md deleted file mode 100644 index caf0449bd..000000000 --- a/doc/GAMEDATA_STRUCTURE.md +++ /dev/null @@ -1,14 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๐Ÿ—๏ธ Mod gamedata folder structure - -- `ai` -- `anims` -- `configs` -- `levels` -- `meshes` -- `scripts` -- `shaders` -- `sounds` -- `spawns` -- `textures` diff --git a/doc/PROJECT_STRUCTURE.md b/doc/PROJECT_STRUCTURE.md deleted file mode 100644 index e4b3f2b0a..000000000 --- a/doc/PROJECT_STRUCTURE.md +++ /dev/null @@ -1,29 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๐Ÿงฐ Project structure - -- [cli](cli/README.md) - - [bin](https://github.com/xray-forge/stalker-xrf-bin) - submodule with binaries for development and testing - - [build](cli/build/README.md) - - [engine](cli/engine/README.md) - - [info](cli/info/README.md) - - [link](cli/link/README.md) - - [logs](cli/logs/README.md) - - [open_game_folder](cli/open/README.md) - - [preview](cli/preview/README.md) - - [start_game](cli/start_game/README.md) - - [utils](cli/utils/README.md) - - [verify](cli/verify/README.md) -- [src](src/README.md) - - [engine](../src/engine/README.md) - - [ini](../src/engine/configs/README.md) - - [globals](../src/engine/lib/constants/README.md) - - [lib](../src/engine/lib/README.md) - - [scripts](../src/engine/scripts/README.md) - - [translations](../src/engine/translations/README.md) - - [forms](../src/engine/forms/README.md) - - [resources](https://github.com/xray-forge/stalker-xrf-resources) - submodule with resources of the engine mod - - [typedefs](src/typedefs/README.md) - - [luaJIT](src/typedefs/luaJIT/README.md) - - [xray16](https://github.com/xray-forge/xray-16-types) - submodule with type definitions for xray engine -- [target](target/README.md) diff --git a/doc/README.md b/doc/README.md deleted file mode 100644 index b207cf9c9..000000000 --- a/doc/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [XRF](../README.md) / DOCS - -## ๐Ÿ—๏ธ Help - -- Develop faster: [link](DEVELOP_FASTER.md) -- Debugging game: [link](DEBUGGING_GAME.md) -- Checking game logs: [link](CHECKING_GAME_LOGS.md) - ---- - -- Gamedata structure: [link](GAMEDATA_STRUCTURE.md) -- Project structure: [link](PROJECT_STRUCTURE.md) -- Typedefs: [link](TYPEDEFS.md) -- Code style: [link](CODESTYLE.md) -- Building UI: [link](BUILDING_UI.md) -- ๏ธDevelopment utils: [link](UTILS.md) - -## ๐Ÿ—๏ธ Engine - -- Scrips execution flow: [link](SCRIPTS_EXECUTION_FLOW.md) -- Building custom game package: [link](BUILDING_CUSTOM_GAME_PACKAGE.md) diff --git a/doc/SCRIPTS_EXECUTION_FLOW.md b/doc/SCRIPTS_EXECUTION_FLOW.md deleted file mode 100644 index df1d081de..000000000 --- a/doc/SCRIPTS_EXECUTION_FLOW.md +++ /dev/null @@ -1,20 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๐Ÿงฐ Scripts execution flow - -### -> Game .exe start - -- Game files and core initialize -- Main menu forms and scripts initialized, instance of main menu is created - -### -> New game start - -- Loading assets -- Resolving globals, registering callbacks -- Registering game server classes bindings -- Registering and calling 'start' game callbacks -- Registering scheme implementations -- Reading all.spawn file, start spawning and creating items -- Execute main game update loop - -- When items appear on client side, use ini files binders path and create new binder classes diff --git a/doc/TODO.md b/doc/TODO.md deleted file mode 100644 index bed81082e..000000000 --- a/doc/TODO.md +++ /dev/null @@ -1,25 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๐Ÿงฐ Main todos - -- Create xrf.ltx config and place extended game configs in it -- Move animations/animstates etc to LTX files - -## ๐Ÿงฐ Tech - -- Custom lua loader to support dot separated files -- Add .dll as example and import it from TS? -- Add example C imports with TS (luajit)? - -## ๐Ÿงฐ Requests to open x-ray - -- Add callback notifying about game save to get filename -- With lua bindings generation include all call overrides when output TXT -- Export actor menu and actor menu item classes for overriding with lua -- Fix numerous calls to disk with menu, implement caching for character menu and fix lags when opening inventory -- XR_CPhraseScript -> allow function references as preconditions, not only string values -- XR_CPhraseScript -> allow function references to update text and react to dialogs -- Fix saving game / game encoding checks when system is using RU version of the game without installed locale OS / windows-1251 encoding -- For net packets add w_ctime and r_ctime methods -- map_has_object_spot -> add has one of -- iterate_online_objects is using 0xffff iterations, could iterate over simulator registered objects diff --git a/doc/TYPEDEFS.md b/doc/TYPEDEFS.md deleted file mode 100644 index e448699d5..000000000 --- a/doc/TYPEDEFS.md +++ /dev/null @@ -1,13 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## ๐Ÿ—๏ธ Typedefs - -To use X-Ray engine globals direct import from "xray16" module required.
-After transpiling process import statements will be stripped and transformed to globals. - -- [Lua](https://www.npmjs.com/package/lua-types) -- [TSTL language extension](https://www.npmjs.com/package/@typescript-to-lua/language-extensions) -- [X-Ray16 typedefs](https://github.com/xray-forge/xray-16-types) - -For types correction and validation: [Open X-Ray source code](https://github.com/OpenXRay/xray-16)
-Bindings documentation: [xray-16-types](https://xray-forge.github.io/xray-16-types/modules.html) diff --git a/doc/UTILS.md b/doc/UTILS.md deleted file mode 100644 index 52e2f11fa..000000000 --- a/doc/UTILS.md +++ /dev/null @@ -1,36 +0,0 @@ -# [XRF](../README.md) / [DOCS](./README.md) - -## Development utils - -- https://github.com/revolucas/AXRToolset - set of utilities for mod development (unpack gamedata) -- https://github.com/OpenXRay/xray-16 - open x-ray project -- https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701 - windows terminal -- https://developer.nvidia.com/nvidia-texture-tools-exporter- nvidia texture tools exported, useful for work with textures -- https://igigog.github.io/anomaly-modding-book/ - anomaly based modding docs -- https://github.com/exdingbat/xrCompress-helper - docs about xrCompress -- https://github.com/themrdemonized/STALKER-Anomaly-modded-exes - dltx as source of ideas / openxray updates -- https://github.com/vika-sonne/xray-skls-file-browser - animations converter - -## Command line flags for xr-engine - -Engine command line flags: [link](https://github.com/OpenXRay/xray-16/wiki/%5BEN%5D-Engine's-command-line-keys) - -## What is 'class' and 'super' in lua - -- `https://github.com/OpenXRay/luabind-deboostified/blob/xray/src/open.cpp#L138` - -It is 'luabind' part defined as globals - -```c++ -lua_setglobal(L, "class"); - -lua_pushcclosure(L, &make_property, 0); -lua_setglobal(L, "property"); - -lua_pushlightuserdata(L, &main_thread_tag); -lua_pushlightuserdata(L, L); -lua_rawset(L, LUA_REGISTRYINDEX); - -lua_pushcclosure(L, &deprecated_super, 0); -lua_setglobal(L, "super"); -``` From 7a30628ff7cd4478a4c07f3e797b735e74b59564 Mon Sep 17 00:00:00 2001 From: Neloreck Date: Fri, 1 Sep 2023 04:42:26 +0300 Subject: [PATCH 2/2] Update main docs sections with links. --- README.md | 111 +++++++------------------------- src/engine/extensions/README.md | 22 +------ 2 files changed, 26 insertions(+), 107 deletions(-) diff --git a/README.md b/README.md index 7c71b9d03..d4876ec8e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ # ๐ŸŽฎ [Stalker XRF](README.md) -![status](https://github.com/xray-forge/stalker-xrf-template/actions/workflows/build_and_test.yml/badge.svg) -[![language-ts](https://img.shields.io/badge/language-typescript-blue.svg?style=flat)](https://github.com/xray-forge/stalker-xrf-template/search?l=typescript) +[![book](https://img.shields.io/badge/docs-book-blue.svg?style=flat)](https://xray-forge.github.io/stalker-xrf-book) [![types](https://img.shields.io/badge/docs-types-blue.svg?style=flat)](https://xray-forge.github.io/xray-16-types/index.html) +[![language-ts](https://img.shields.io/badge/language-typescript-blue.svg?style=flat)](https://github.com/xray-forge/stalker-xrf-template/search?l=typescript) [![license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/Neloreck/dreamstate/blob/master/LICENSE) +
+![status](https://github.com/xray-forge/stalker-xrf-template/actions/workflows/build_and_test.yml/badge.svg)

Fully rewritten stalker script engine with typescript.
@@ -12,15 +14,17 @@ Template for stalker mods and modded game packages.
## ๐Ÿ“ฆ In short -- Scripts engine rewritten with typescript -- Custom build pipeline -- Generation UI forms from JSX -- Game configs from dynamic typescript -- Simple translations generation -- Game profiling / debugging tools -- Creation of custom modded game package -- Unit tests coverage -- [WIP] [Modular extensions](./src/engine/extensions/README.md) +- [Faster development](https://xray-forge.github.io/stalker-xrf-book/xrf/developing/developing.html) +- Custom [CLI](https://xray-forge.github.io/stalker-xrf-book/xrf/cli/cli.html) and [build pipeline](https://xray-forge.github.io/stalker-xrf-book/xrf/building/building.html) + - Scripts engine rewritten with typescript ([tstl](https://typescripttolua.github.io/docs/getting-started)) + - [Generation UI forms from JSX](https://xray-forge.github.io/stalker-xrf-book/xrf/building/building_forms.html) + - [Game configs from dynamic typescript](https://xray-forge.github.io/stalker-xrf-book/xrf/building/building_configs.html) + - [Simple translations generation](https://xray-forge.github.io/stalker-xrf-book/xrf/building/building_translations.html) +- [Creation of custom modded game packages](https://xray-forge.github.io/stalker-xrf-book/xrf/packaging.html) +- [Modular extensions](https://xray-forge.github.io/stalker-xrf-book/extensions/extensions.html) +- [Debugging tools](https://xray-forge.github.io/stalker-xrf-book/xrf/debugging.html) +- [Unit testing](https://xray-forge.github.io/stalker-xrf-book/xrf/testing.html) +- [Consistent formatted and linted codebase](https://xray-forge.github.io/stalker-xrf-book/xrf/formatting_and_linting.html) ## ๐Ÿ“ Purpose @@ -30,10 +34,12 @@ Template for stalker mods and modded game packages.
--- -## ๐Ÿ“ฆ Main differences from original +## ๐ŸŒ“ Links -The intention of this engine template is to allow easier mod development without introducing breaking changes to the original plot.
-Optimizations, quality and logics updates are welcome. +- [Starting work](https://xray-forge.github.io/stalker-xrf-book/xrf/installation.html) +- [CLI commands](https://xray-forge.github.io/stalker-xrf-book/xrf/cli/commands.html) +- [Docs](https://xray-forge.github.io/stalker-xrf-book/general/general.html) +- [Types](https://xray-forge.github.io/xray-16-types/modules.html), [source](https://github.com/xray-forge/xray-16-types) ## ๐Ÿ“ŒWhat is used @@ -44,81 +50,12 @@ Optimizations, quality and logics updates are welcome. - [Fengari Lua VM](https://github.com/fengari-lua/fengari) - [Open-X-Ray](https://github.com/OpenXRay/xray-16) -# ๐ŸŒ“ Starting work - -## ๐Ÿงฐ Pre-requirements - -- [NodeJS](https://nodejs.org/en/) 14 or later -- [Stalker-COP](https://store.steampowered.com/app/41700/STALKER_Call_of_Pripyat/) game - -## ๐Ÿ’ฟ Start development - -- DOWNLOAD [the game](https://store.steampowered.com/app/41700/STALKER_Call_of_Pripyat/) -- RUN `git clone https://github.com/xray-forge/stalker-xrf-template.git` - clone repository -- RUN `cd stalker-xrf-template` - cd to project folder -- RUN `npm install` - install all the dependencies -- RUN `npm run setup` - set up the project, install submodules -- RUN `npm run cli link` - link gamedata to the game folder -- RUN `npm run cli engine use release` - link open xray with game -- RUN `npm run cli build` - build gamedata to the destination -- RUN `npm run cli start_game` - start game and test changes - -## ๐Ÿงฐ Check issues - -`$ npm run cli verify` - will check whether project is set up and ready to start developing - -## ๐Ÿ—๏ธ Project scripts - -`$ npm run COMMAND_NAME` - -- [cli](cli/README.md) - run cli scripts -- [setup](cli/info/README.md) - setup project and submodules -- [verify](cli/verify/README.md) - verify project configuration and integrity -- [build](cli/build/README.md) - build project gamedata with all assets -- [pack:mod](cli/pack/README.md) - build complete mod package in target/mod_package folder -- [watch:scripts](cli/build/README.md) - build scripts in watch mode, recompile on changes -- [test](cli/test/README.md) - run jest tests -- `typecheck` - verify typescript types -- `format` - reformat TS code and lint it -- `lint` - lint TS code with eslint utils - -`$ npm run cli COMMAND_NAME` - -- [verify](cli/verify/README.md) - verify project settings and readiness -- [link](cli/link/README.md) - link target/gamedata and logs folder and stalker folder for faster development -- [unlink](cli/build/README.md) - unlink target/gamedata and logs folder and stalker folder -- [engine](cli/build/README.md) - engine management commands to use open-xray -- [open_game_folder](cli/build/README.md) - open game folder in explorer -- [start_game](cli/build/README.md) - start game with debug flag -- [build](cli/build/README.md) - build project gamedata with all assets -- [pack](cli/pack/README.md) - build complete mod or game package depending on provided arguments -- [clone](cli/clone/README.md) - clone additional resources -- [parse](cli/parse/README.md) - parsing utils to collect documentation or JSON summaries -- `help` - print list of commands and information about them - -## ๐Ÿ’ฟ Build - -Script engine can be packaged and built into custom game package.
-Detailed description: [link](https://xray-forge.github.io/stalker-xrf-book/xrf/packaging.html) - ---- - -## ๐Ÿงฐ Docs - -- Development and game documentation: [docs book](https://xray-forge.github.io/stalker-xrf-book/general/general.html) -- Types and game bindings: [source](https://github.com/xray-forge/xray-16-types), [docs](https://xray-forge.github.io/xray-16-types/modules.html) - -## ๐Ÿ—๏ธ Assets - -Additional assets repository can be cloned manually or with shortcut command:
-`npm run cli clone *name*` (`extended`, `locale-eng`, `locale-ukr`, `locale-rus`) +## ๐Ÿ“ฆ Main differences from original -- Extended assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-extended](https://gitlab.com/xray-forge/stalker-xrf-resources-extended) -- EN locale assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-locale-eng](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-eng) -- UA locale assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-locale-ukr](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-ukr) -- RU locale assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-locale-rus](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-rus) +The intention of this engine template is to allow easier mod development without introducing breaking changes to the original plot.
+Optimizations, quality and logics updates are welcome. -## ๐Ÿงฐ Bugs +## ๐Ÿงฐ State / bugs It took 3 months just to migrate all the 20 years of LUA codebase to typescript and create custom transformers to support luabind.
Further game testing and re-architecture produces new bugs and issues which are easier to prevent with unit tests.
diff --git a/src/engine/extensions/README.md b/src/engine/extensions/README.md index 253b72246..5c3d468e1 100644 --- a/src/engine/extensions/README.md +++ b/src/engine/extensions/README.md @@ -1,22 +1,4 @@ # [XRF](../../../) / SRC / ENGINE / EXTENSIONS -## LTX configurations - -Variant of modular game extensions with strictly defined interface and optional loading.
-Extensions can load with root register method, use shared game utils and services. - -## What can be done - -- Optional loading for extensions -- Ordering and in-game configuration of extensions list -- Usage of shared utils, configs, managers and schemes -- Adding custom logics and configuration -- Overriding system ini sections/fields - -## Todo / research - -- Custom translations sources / build steps to prepare translations from extensions -- Custom configs / build steps to transpile extension configs -- Automated way to load system ini overrides and apply to existing system ini file -- Save data about active extensions and warn when loading game with invalid extensions list -- Add `requires` fields when extensions depend on each other +Entry points of the game extensions.
+XRF template allows adding modular scripts that can be optionally toggled on/off from the game menu.