1.1.3 • Published 1 year ago

xray16 v1.1.3

Weekly downloads
-
License
-
Repository
github
Last release
1 year ago

📡 XRay-16 engine typescript definitions

types book Node.js CI

X-Ray16 engine bindings documentation and types. For usage with TypeScriptToLua.

To check more details / correct typing you always can reference X-Ray source code.

🗻 Docs

Types documentation can be checked here.

🧱 Usage

Types are used with xrf template and can be referenced as an example.

🎮 Updating types

For easier navigation over codebase and typing following rules are applied:

  • Type declaration should have \@source docblock with matching c++ counterpart signature
  • Variable and class namings follow c++ conventions for easier binding and matching engine codebase
  • XRay types should be prefixed with IXR or TXR if they do not have runtime representation

📦Extending C++ classes and overriding virtual methods

Lua

Typescript

🧱 Getting up-to-date LUA bindings

  • Run game engine with -dump_bindings flag
  • Check userdata folder (where game saves are stored) scriptbindings_*.txt files

🧲 References

  • X-Ray C++ source code
  • LuaBind sources and docs
  • LuaJit sources and docs

🧱 Plugins

Package includes plugins for typescript-to-lua for easier work with xray16 typings. Following ones are available:

  • transform_luabind_class - transforms LuaBind decorated classes in a specific way
  • built_at_info - adds build information in resulting files
  • from_cast_utils - additional utils that should be removed in runtime
  • global_declarations_transform - transforms xray16 imports and removes them from runtime
  • inject_filename - adds $filename global variable to access current file name
  • strip_lua_logger - removes lua logger from runtime

Plugins can be included in tsconfig file as following:

{
  "tstl": {
    "luaPlugins": [
      { "name": "xray16/plugins/transform_luabind_class/plugin" },
      { "name": "xray16/plugins/global_declarations_transform" },
      { "name": "xray16/plugins/built_at_info" },
      { "name": "xray16/plugins/strip_lua_logger" },
      { "name": "xray16/plugins/inject_filename" },
      { "name": "xray16/plugins/from_cast_utils" }
    ]
  }
}
1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago