Files
Bubberstation/tools/build
Rimi Nosha 0d46b90cb9 [NON-MODULAR] [TOOLING] Modular Icon Cutter! (#2651)
## About The Pull Request

Yes, yes, the name might sound incorrect with that tag, but what I mean
here is that the icon cutter now checks and works in
`modular_zubbers/icons`! It won't pull templates from there, though, I'd
recommend creating a zubbers folder inside the `icon_templates` folder
instead.

Why did I do this? I have a mid-sized thing I'm working on in the
background, and I'd figure I'd PR anything that makes sense by itself to
reduce the upfront workload of maints when and if the time comes,
provided I get the prototype approved.

Also fixes the malformed moonrock file, I'm not sure exactly what was
wrong, but it had the wrong states in places? Not sure if anyone noticed
in-game.

## Why It's Good For The Game

Makes spriters less sad when they have to sprite icon smoothed stuff,
this is objectively a very good thing,

## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>


![image](https://github.com/user-attachments/assets/582b9756-8f43-4af3-a03d-f1a579b2f06b)

</details>

## Changelog
Non player facing.

---------

Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2024-12-11 20:06:54 +01:00
..
2024-10-19 08:04:33 -07:00

/tg/station build script

This build script is the recommended way to compile the game, including not only the DM code but also the JavaScript and any other dependencies.

  • VSCode: a) Press Ctrl+Shift+B to build. b) Press F5 to build and run with debugger attached.
  • Windows: a) Double-click BUILD.bat in the repository root to build (will wait for a key press before it closes). b) Double-click tools/build/build.bat to build (will exit as soon as it finishes building).
  • Linux: a) Run tools/build/build from the repository root.

The script will skip build steps whose inputs have not changed since the last run.

Getting list of available targets

You can get a list of all targets that you can build by running the following command:

tools/build/build --help

Dependencies

  • On Windows, build.bat will automatically install a private (vendored) copy of Node.
  • On Linux, install Node using your package manager or from https://nodejs.org/en/download/.
  • On Linux, unless using tgs4 or later you will need to compile rust-g on the server and obtain a .so file, for instructions see https://github.com/tgstation/rust-g

Why?

We used to include compiled versions of the tgui JavaScript code in the Git repository so that the project could be compiled using BYOND only. These pre-compiled files tended to have merge conflicts for no good reason. Using a build script lets us avoid this problem, while keeping builds convenient for people who are not modifying tgui.

This build script is based on Juke Build - follow the link to read the documentation for the project and understand how it works and how to contribute.

Named byond versions

If you have byond installations in non-standard locations or want to use few versions at once for testing you can fill in dm_versions.json file in this directory. Entries with "default" set to true will be used BEFORE byond installations in standard locations. Otherwise you need to pass --dm-version={name} to the build script to choose version you want to use. Example dm_versions.json file:

[
  {
    "name": "515.1594",
    "path": "C:\\Repo\\ByondVersions\\515.1594_byond\\byond\\bin\\dm.exe",
    "default": false
  },
  {
    "name": "funny_version",
    "path": "D:\\Repo\\ByondVersions\\514.1589_byond\\byond\\bin\\dm.exe",
    "default": true
  }
]