## About The Pull Request 123 changed files and multiple crashes after writing broken regex, I replaced most remains of direct spans with macros. This cleans up the code and makes it easier to work with in general, see justification for the original PR. I also fixed a bunch of broken and/or unclosed spans here too. I intentionally avoided replacing spans with multiple classes (in most cases) and spans in the middle of strings as it would impact readability (in my opinion at least) and could be done later if required. ## Why It's Good For The Game Cleaner code, actually using our macros, fixes borked HTML in some places. See original PR. ## Changelog Nothing player-facing
Buildmode
Code layout
Buildmode
Manager for buildmode modes. Contains logic to manage switching between each mode, and presenting a suitable user interface.
Effects
Special graphics used by buildmode modes for user interface purposes.
Buildmode Mode
Implementer of buildmode behaviors.
Existing varieties:
-
Basic
Description:
Allows creation of simple structures consisting of floors, walls, windows, and airlocks.
Controls:
-
Left click a turf:
"Upgrades" the turf based on the following rules below:
- Space -> Tiled floor
- Simulated floor -> Regular wall
- Wall -> Reinforced wall
-
Right click a turf:
"Downgrades" the turf based on the following rules below:
- Reinforced wall -> Regular wall
- Wall -> Tiled floor
- Simulated floor -> Space
-
Right click an object:
Deletes the clicked object.
-
Alt+Left click a location:
Places an airlock at the clicked location.
-
Ctrl+Left click a location:
Places a window at the clicked location.
-
-
Advanced
Description:
Creates an instance of a configurable atom path where you click.
Controls:
-
Right click on the mode selector:
Choose a path to spawn.
-
Left click a location (requires chosen path):
Place an instance of the chosen path at the location.
-
Right click an object:
Delete the object.
-
-
Fill
Description:
Creates an instance of an atom path on every tile in a chosen region.
With a special control input, instead deletes everything within the region.
Controls:
-
Right click on the mode selector:
Choose a path to spawn.
-
Left click on a region (requires chosen path):
Fill the region with the chosen path.
-
Alt+Left click on a region:
Deletes everything within the region.
-
Right click during region selection:
Cancel region selection.
-
-
Copy
Description:
Take an existing object in the world, and place duplicates with identical attributes where you click.
May not always work nicely - "deep" variables such as lists or datums may malfunction.
Controls:
-
Right click an existing object:
Select the clicked object as a template.
-
Left click a location (Requires a selected object as template):
Place a duplicate of the template at the clicked location.
-
-
Area Edit
Description:
Modifies and creates areas.
The active area will be highlighted in yellow.
Controls:
-
Right click the mode selector:
Create a new area, and make it active.
-
Right click an existing area:
Make the clicked area active.
-
Left click a turf:
When an area is active, adds the turf to the active area.
-
-
Var Edit
Description:
Allows for setting and resetting variables of objects with a click.
If the object does not have the var, will do nothing and print a warning message.
Controls:
-
Right click the mode selector:
Choose which variable to set, and what to set it to.
-
Left click an atom:
Change the clicked atom's variables as configured.
-
Right click an atom:
Reset the targeted variable to its original value in the code.
-
-
Map Generator
Description:
Fills rectangular regions with algorithmically generated content. Right click during region selection to cancel.
See the
procedural_mappingmodule for the generators themselves.Controls:
-
Right-click on the mode selector:
Select a map generator from all the generators present in the codebase.
-
Left click two corners of an area:
Use the generator to populate the region.
-
Right click during region selection:
Cancel region selection.
-
-
Throwing
Description:
Select an object with left click, and right click to throw it towards where you clicked.
Controls:
-
Left click on a movable atom:
Select the atom for throwing.
-
Right click on a location:
Throw the selected atom towards that location.
-
-
Boom
Description:
Make explosions where you click.
Controls:
-
Right click the mode selector:
Configure the explosion size.
-
Left click a location:
Cause an explosion where you clicked.
-