Grid Planner
Plan out base geometry and reserve space by assigning chunks to regions. Basically a pixel art editor on a large grid overlaid on the factorio map, intended for planning factory layouts.
Inspired by GridLocked, Bigfoot's Base Engineering Video and Pyanodon Mods. Uses Flib.
Features
General: Undo, Redo, Configure Visibility, Configure Grid Size and Offset.
Drawing Tools: Rect Draw, Pipette
Region Config: Create, Delete, Configure Regions. Change Region Order in Display
Hotkey Defaults
- Rect Draw Tool: Control + Shift + R
- Pipette: Control + Shift + Q
- Undo: Control + Shift + Z
- Redo: Control + Shift + Y
- More Visible: Control + Shift + W
- Less Visible: Control + Shift + S
Multiplayer Notes: Players have separate undo/redo queues, which is fine if the edits don't overlap but might be confusing if they do.
Future
There is always more that one can do but right now the mod works well for me and my personal requirements. If enough people are interested I might put some more time into it. Or you can make a pull request.
Features I might add if people poke me and I find the time:
-
Some way to draw at specific distances. Not sure on the UI yet.
-
Layers, e.g. to allow different grid sizes on the same surface.
-
Select, Copy, Paste, Rotate, Mirror, for symmetry enjoyers
-
A way to differentiate regions beyond color, to increase visual clarity. Not sure what to do exactly yet.
-
Performance optimization (see below).
-
Better UI Styling
Performance is good but there is potential for optimization. On my device drawing ~1k grid cells makes the game stutter noticably, deletion and changing color is faster. It takes a long time to reach this point in natural gameplay: 1) I increase grid size when build size increases, for example due to construction bots or simply batching more and 2) I delete areas where no more planning is needed because the area is settled. There are a few ways to deal with this: pool and reuse render objects, reduce features e.g. less visibility levels or no boundaries, ask factorio devs for an api to create more render objects simultaneously, or work over multiple ticks.