This repository contains a sample configuration for using Ceres with TypeScript.
There is also a separate template for setting up Ceres with TypeScript and Cerrie - a library which aims to provide an idiomatic set of libraries for WC3, as well as offering some neat features such as Live Reload and File I/O out of the box.
$PATH
git clone git@github.com:ceres-wc3/ceres-ts-template.git
.npm install
to download all necessary dependencies.npm run build
to compile all TypeScript code into Lua.ceres build -- --map mpq.w3x --output mpq
to build the map. The final map will be placed in target/
If you want to make Ceres to run WC3 by itself, you can use the ceres run
command. However, before you can do that, it requires some configuration on your part.
Open up runconfig.lua
and fill out the necessary configuration parameters. As a minimal example:
ceres.runConfig = {
command = "C:/Program Files/Warcraft III/x86_64/Warcraft III.exe",
args = {"-windowmode", "windowed"}
}
You can also run the TSTL compiler in "watch" mode, so that it automatically recompiles code as soon as you edit it. There's a convenience NPM script to do that - npm run watch
. Alternatively, you could start the compiler manually by using npx ceres-tstl --watch
and specify whichever paramterers you so desire.
This project also includes some convenience VS Code tasks to be able to run the above things from within VS Code if you use it. Simply press Ctrl-Shift-P
and type runtask
, and select what you want to run.
maps/ - folder to put your map files in
src/
lua/ - pure Lua files which can be included by Ceres
ts/ - TypeScript files which will be compiled into Lua files
target/ - directory where build artifacts will be placed
compiled/ - artifact directory for Lua files produced by TSTL
build.lua - Ceres build script, can be used to customize the build process
runconfig.lua - user-local configuration for `ceres.runConfig`
tsconfig.json - TSC/TSTL configuration, contains some Lua-specific settings