Skip to content

pkhead/rained

Repository files navigation

Rained

Another Rain World level editor. Read this document, which is bundled with every release package, for more information on how to use this software.

Please note that the "main" branch is ahead of the latest release. If you want to access the repository at the time of a certain release, use the Git tags system.

Features

  • Ease of use
  • Undo/redo everything
  • Re-envisioned prop editor
  • Highly customizable UI
  • Asset graphics and palette previews
  • Drizzle level rendering with a preview
  • Exiting from the light editor does not mess up the screen
  • Pressing escape does not crash the program

Screenshots

Screenshot of Rained's tile editor. Screenshot of Rained's prop editor with tile graphics enabled and a palette applied.

Building

Prerequisities:

  • .NET Core toolchain
  • (optional) OpenGL ES driver or ANGLE libraries in the DLL search path.
  • (optional) Python 3
  • (optional) glslang CLI

.NET CLI

Clone with Git:

git clone --recursive https://github.com/pkhead/rained
cd rained

Compile Drizzle

cd src/Drizzle
dotnet run --project Drizzle.Transpiler

Back to the root directory, build and run Rained

# only needs to be run once
dotnet tool restore

# usage of desktop GL or GLES/ANGLE is determined by OS.
dotnet cake --target=Build

# alternative build command with desktop GL forced on.
dotnet cake --target=Build --gles=false

# run the project!
dotnet run --project --no-build src/Rained/Rained.csproj

Upon first startup, you can configure where your Data folder is located. If you chose to download and install it, Rained will download and extract this repository.

Contributing

Report bugs and other complaints by creating an issue or pinging @chromosoze on a Rain World modding Discord server. DM requests also work, but it's likely that it'll take me a while to notice them as I don't pinged for it.

Pull requests are welcome.

Subprojects

Rained has multiple projects in the C# solution. Here is a list of their brief descriptions:

Drizzle Port of the original renderer from Lingo to C#.
Glib OpenGL 3.3/OpenGL ES 2.0 and Silk.NET wrapper.
Glib.ImGui ImGui.NET backend for Glib/Silk.NET.
Glib.Tests Test program for Glib visual output.
ImGui.NET Freetype-enabled version of ImGui.NET.
Rained The entire Rained application.
Rained.Console C application to launch Rained from a console environment.
Rained.Tests A few unit tests for Rained.

The "nightly" tag

The "nightly" tag really only exists so that I'm able to create nightly GitHub releases. It's a bit annoying. I wouldn't recommend interacting with it.

Since the action deletes and re-creates the "nightly" tag on every release, in order to update the tag on your clone (not that you would want to, I suppose), you would have to run the following Git commands:

git tag -d nightly # delete the nightly tag on your clone
git fetch origin tag nightly # fetch the nightly tag from origin
# running `git fetch` or `git pull` itself after deleting the tag should also work.