1. Are you planning to upload your awesome tool to Hive? Please review the rules here.
    July 9, 2018: The rules for the Tool Section have been revised. Please be sure to read the revisions.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  5. Dismiss Notice
  6. The Highway to Hell has been laid open. Come along and participate in the 5th Special Effect Contest.
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Ceres v0.3.1 - a scriptable build toolchain for WC3

Submitted by mori
This bundle is marked as pending. It has not been reviewed by a staff member yet.
About
Ceres is a stand-alone scriptable build toolchain for Warcraft III maps. It provides a way to quickly and easily build and package Warcraft III Lua maps, as well as various other utilities and tools.

It is scriptable and customizable using Lua, and can be used to orchestrate whatever you want, including:
  • Building a single Lua map
  • Building multiple Lua maps
  • Editing your maps' Object Data using Lua
  • Managing imports
  • And so on
Quick Start
Ceres can be used with pure Lua, or with TypeScript using a TypeScript to Lua transpiler. There are template repositories for both.

Pure Lua
If you just want to use Lua and nothing else, setup is very minimal. Clone this repository, follow the instructions in the readme, and customize it to your heart's content.

TypeScript
If you want to use TypeScript in your maps, Ceres can be used with it too. Setup is a bit more complex than with pure Lua, but you can use this repository as a template. Make sure to read the readme.

There is also an example of using NPM to download external dependencies in your project, namely Cerrie, which is a library providing an idiomatic set of APIs for TypeScript projects, as well as some utilities such as File I/O and Live Reload. If you want to get started with Cerrie, take a look at this branch of ceres-ts-template.

API & Docs
Ceres provides various APIs to enable it to do what it does, to both maps and build scripts. Namely, it has APIs for object editing, MPQ reading/writing, file I/O, Lua script compilation, file preprocessing and so on. The entire API surface has been documented in the form of a TypeScript declaration file, which you can use as a reference even when not using TypeScript - all APIs are themselves pure Lua and do not require TypeScript.

Parts of Ceres are also documented more in-depth in the Wiki, which you can check out for extra information.

Repository
Other information can be found in the Ceres repository, which I recommend checking out.
Contents

Ceres - a scriptable build toolchain for WC3 (Binary)

  1. yxq1122

    yxq1122

    Joined:
    Jun 5, 2018
    Messages:
    127
    Resources:
    0
    Resources:
    0
    Great work!
    Glad to see it as an official release here. I like it because it provides a revolutionary way to build and package war3 maps outside the world editor.

    Here I want to give some suggestions:
    1. Support for (v)Jass maps
    Is it possible to build war3 (v)Jass maps by a JassHepler call? One could build wc3 maps of any type by using this tool instead of world editor if possible.
     
  2. mori

    mori

    Joined:
    Jun 13, 2016
    Messages:
    417
    Resources:
    2
    Spells:
    1
    Tutorials:
    1
    Resources:
    2
    Thanks for the kind words!

    It should be possible, yeah. Currently, the default buildscript expects that a Lua map is going to be built, but it should be pretty easy to add an option to disable the Lua compilation step. I'll look into it.
     
  3. iown_azz

    iown_azz

    Joined:
    Jun 16, 2008
    Messages:
    268
    Resources:
    0
    Resources:
    0
    I dont get how to open or us it....
     
  4. mori

    mori

    Joined:
    Jun 13, 2016
    Messages:
    417
    Resources:
    2
    Spells:
    1
    Tutorials:
    1
    Resources:
    2
    It's a commandline utility. There's an example project in this here repo.

    If you want help with the project, you can hop into our discord.