As noted in the room file format doc (see link below), a "room" in the context of Rogue Cloud does not necessarily need to be a room (it is a bit of a misnomer) but rather, it corresponds to a cookie cutter structure (a grid of tiles) that can be stamped onto the map at any map coordinate.
How the Rogue Cloud game map is created:
- Rooms are defined in
rooms.txt - Rooms are mapped to specific RGB colours in the rooms mapping file,
map-new-mappings.txt. - Where to place those rooms is defined in the
map-new.pngfile, with the RGB colours from step 2 indicating where to place rooms on the map. - A CLI tool converts the
map-new.pngfile, and the room mappings file, into a fully rendered mapmap-new.txt, which is what the game server reads on startup.
The Rogue Cloud map is defined in (path to git repository root)/RogueCloudServer/WebContent/universe/map-new.txt. This file is automatically generated by the map generation tools included with Rogue Cloud. This file should not be edited directly; instead you should follow the process below to modify and generate it.
Follow these steps:
git clone https://github.com/codewind-resources/rogue-cloud
cd rogue-cloud
mvn clean package
- The
rooms.txtfile can be found in(path to git repository root)/RogueCloudServer/WebContent/universe/rooms.txt
The format of the rooms.txt is described here: https://github.com/codewind-resources/rogue-cloud/blob/master/docs/RogueCloudRoomsFileFormat.md
Open the map-new-mappings.txt file in the same directory as above.
Each line in this file assigns a room to letter and a colour.
Here is an example of a mapping:
g a0a0a0 Graveyard- eg:
(letter) (colour in hex) (room name)
The room name should match the room name that you specified in the rooms.txt file. The colour and letter should be unique, and can be anything, as long as no other lines use those same values.
The position that each room is displayed on the map, is determined by the map-new.png file.
Each colour on the map (corresponding to colours listed in the map-new-mappings.txt file) indicates the specific coordinate to display the room with that colour. So for example, if there is a rectangle whose top left corner is at position (100, 200) in the .png file, and the colour of the rectangle is a0a0a0 (24-bit hex colour), then a Graveyard will be drawn to the map txt file at that coordinate.
Recommendation: While not technically necessary, I highly suggest that when you are adding rooms to the map, that you make the coloured rectangle correspond to the size of the room.
- For example, if your room is 10x5 (WxH), then create an empty rectangle (ie non-filled rectangle) that is 10x5 at your desired location in the PNG
- Run StandaloneWorldRender to see the result
cd (path to your git install)/RogueCloudUtilitiesCLI/targetjava -jar RogueCloudUtilitiesCLI-0.0.1-SNAPSHOT.jar (path to git repository root)/RogueCloudServer/WebContent/universe "x coord" "y coord" "width" "height"- Example:
java -jar RogueCloudUtilitiesCLI-0.0.1-SNAPSHOT.jar C:\Rogue-Cloud\Git\RogueCloudServer\WebContent\universe\ 0 0 100 100 - See the generated image file:
(path to git repository root)/RogueCloudServer/WebContent/universe/preview.png