Drawscape Factorio
Project description
Drawing a Factorio Base with a Pen Plotter
CLI written in Python to create SVG images from Factorio base data that you can then draw on a pen plotter.
Demos
Installation
pip3 install drawscape-factorio
- Requires python 3.8+
- I'm using with python 3.12 in development and production
CLI Usage
drawscape-factorio create --json exported-entities.json
Additional Params
--theme [default]
--color [main, black, blueprint, matrix, easter]
--debug-grid (helpful for theme development)
Code Usage
Include the modules
from drawscape_factorio import create as createFactorio
from drawscape_factorio import importFUE5
You are responsible for parsing the input file and then saving the output as an SVG file.
# Load the JSON file coming from the FUE5 MOD
with open('/path/to/exported-entities.json, 'r') as file:
json_data = json.load(file)
# Parse the JSON data
data = importFUE5(json_data)
# Call the create function with the parsed data and settings
result = create(data, {
'theme_name': 'default',
'color_scheme': 'main',
'show_layers': ['assets', 'belts', 'walls', 'rails', 'electrical', 'spaceship']
})
# Save the SVG file
with open(output_file_name, 'w') as f:
f.write(result['svg_string'])
Exporting Map Data (exported-entities.json)
Currently using a Factorio MOD called FUE5-Exporter to export all entites on a map in JSON format.
https://github.com/FUE5BASE/FUE5-Exporter
- Install the MOD via the Factorio GUI. Search for
FUE5 - Use MOD to "select" area of the map you want to export. Try to "frame" your seletion to only export the area you want to render.
- Find the
exported-entities.jsonfile inside your Factorio Application Data:
- Mac (
~/Library/Application Support/factorio/script-output) - Windows (
%APPDATA%/Factorio/script-output)
- Copy/Paste they JSON file somewhere else so you can work with it. It will get overwritten if you leave it there.
Themes
The drawscape-factorio CLI supports different themes for rendering the Factorio base. Each theme is a Python class that extends the ParentTheme class. The ParentTheme class provides the basic structure and functionality for rendering the base, while the child themes (e.g., DefaultTheme) define the specific colors and styles for each entity in the base.
A child theme can extend and of the render_ function to create new shapes and designs.
Theme Requirements:
- Must define a THEME_NAME, THEME_SLUG, and THEME_VERSION
- Must define a COLOR_SCHEMES dictionary with a 'main' key
Easiest way to get started it to clone the default_theme.py and start making your edits.
Examples
|
|
|
|
|
|
|
|
|
Development
conda env update --file environment.yml --prune
conda activate drawscape_factorio
Install for live local dev
pip3 install -e .
Distribution Cheat Sheet
PyPi API saved in ~/.pypirc for auto-authentication
rm -rf dist/*
python setup.py sdist bdist_wheel
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file drawscape_factorio-0.15.12.tar.gz.
File metadata
- Download URL: drawscape_factorio-0.15.12.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
320b290b7ed1342cbeb164ba5af72ba082e05f60e5a2b06f9a57c13012af5ca7
|
|
| MD5 |
dcb682f3cdccef1c7a5d7885d1d2af48
|
|
| BLAKE2b-256 |
84e7607b57c290d61d1543785bf8ed3cde0d30e2d5c1dade9e6cb8d3fa5ca9cd
|
File details
Details for the file drawscape_factorio-0.15.12-py3-none-any.whl.
File metadata
- Download URL: drawscape_factorio-0.15.12-py3-none-any.whl
- Upload date:
- Size: 15.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72304d074c2a01551876ef1fd615297191726b67bdcdbca3c62a11d5f7ae0084
|
|
| MD5 |
31d2f4e50176ea6e428a99aede2b1dfb
|
|
| BLAKE2b-256 |
f4af32c864c4c903ed0405bf61459b08cf556b7ea14c827e4ad00fb783474259
|