maps4fs 2.5.1__tar.gz → 2.5.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. maps4fs-2.5.3/PKG-INFO +150 -0
  2. maps4fs-2.5.3/README.md +120 -0
  3. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/config.py +13 -0
  4. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/map.py +3 -2
  5. maps4fs-2.5.3/maps4fs.egg-info/PKG-INFO +150 -0
  6. {maps4fs-2.5.1 → maps4fs-2.5.3}/pyproject.toml +1 -1
  7. maps4fs-2.5.1/PKG-INFO +0 -627
  8. maps4fs-2.5.1/README.md +0 -597
  9. maps4fs-2.5.1/maps4fs.egg-info/PKG-INFO +0 -627
  10. {maps4fs-2.5.1 → maps4fs-2.5.3}/LICENSE.md +0 -0
  11. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/__init__.py +0 -0
  12. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/__init__.py +0 -0
  13. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/__init__.py +0 -0
  14. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/background.py +0 -0
  15. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/base/__init__.py +0 -0
  16. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/base/component.py +0 -0
  17. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/base/component_image.py +0 -0
  18. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/base/component_mesh.py +0 -0
  19. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/base/component_xml.py +0 -0
  20. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/config.py +0 -0
  21. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/dem.py +0 -0
  22. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/grle.py +0 -0
  23. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/i3d.py +0 -0
  24. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/layer.py +0 -0
  25. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/satellite.py +0 -0
  26. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/component/texture.py +0 -0
  27. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/game.py +0 -0
  28. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/qgis.py +0 -0
  29. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/settings.py +0 -0
  30. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/statistics.py +0 -0
  31. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/generator/utils.py +0 -0
  32. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs/logger.py +0 -0
  33. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs.egg-info/SOURCES.txt +0 -0
  34. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs.egg-info/dependency_links.txt +0 -0
  35. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs.egg-info/requires.txt +0 -0
  36. {maps4fs-2.5.1 → maps4fs-2.5.3}/maps4fs.egg-info/top_level.txt +0 -0
  37. {maps4fs-2.5.1 → maps4fs-2.5.3}/setup.cfg +0 -0
  38. {maps4fs-2.5.1 → maps4fs-2.5.3}/tests/test_generator.py +0 -0
maps4fs-2.5.3/PKG-INFO ADDED
@@ -0,0 +1,150 @@
1
+ Metadata-Version: 2.4
2
+ Name: maps4fs
3
+ Version: 2.5.3
4
+ Summary: Generate map templates for Farming Simulator from real places.
5
+ Author-email: iwatkot <iwatkot@gmail.com>
6
+ License: GNU Affero General Public License v3.0
7
+ Project-URL: Homepage, https://github.com/iwatkot/maps4fs
8
+ Project-URL: Repository, https://github.com/iwatkot/maps4fs
9
+ Keywords: farmingsimulator,fs,farmingsimulator22,farmingsimulator25,fs22,fs25
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
13
+ Classifier: Operating System :: OS Independent
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE.md
16
+ Requires-Dist: opencv-python
17
+ Requires-Dist: osmnx>=2.0.0
18
+ Requires-Dist: rasterio
19
+ Requires-Dist: geopy
20
+ Requires-Dist: trimesh
21
+ Requires-Dist: pydantic
22
+ Requires-Dist: pygmdl
23
+ Requires-Dist: owslib
24
+ Requires-Dist: tqdm
25
+ Requires-Dist: scipy
26
+ Requires-Dist: pydtmdl
27
+ Requires-Dist: manifold3d
28
+ Requires-Dist: fast-simplification
29
+ Dynamic: license-file
30
+
31
+ <p align="center">
32
+ <a href="https://github.com/iwatkot/maps4fs">maps4fs</a> •
33
+ <a href="https://github.com/iwatkot/maps4fsui">maps4fs UI</a> •
34
+ <a href="https://github.com/iwatkot/maps4fsdata">maps4fs Data</a> •
35
+ <a href="https://github.com/iwatkot/maps4fsapi">maps4fs API</a> •
36
+ <a href="https://github.com/iwatkot/maps4fsstats">maps4fs Stats</a> •
37
+ <a href="https://github.com/iwatkot/maps4fsbot">maps4fs Bot</a><br>
38
+ <a href="https://github.com/iwatkot/pygmdl">pygmdl</a> •
39
+ <a href="https://github.com/iwatkot/pydtmdl">pydtmdl</a>
40
+ </p>
41
+
42
+ <div align="center" markdown>
43
+ <a href="https://discord.gg/Sj5QKKyE42">
44
+ <img src="https://github.com/user-attachments/assets/37043333-d6ef-4ca3-9f3c-81323d9d0b71">
45
+ </a>
46
+
47
+ <p align="center">
48
+ <a href="#overview">Overview</a> •
49
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/how_to_launch">How to Launch</a> •
50
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/step_by_step_guide">Step-by-Step Guide</a> •
51
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/workflow_optimizations">Workflow Optimizations</a><br>
52
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/faq">FAQ</a> •
53
+ <a href="https://maps4fs.gitbook.io/docs/setup-and-installation/get_help">Get Help</a> •
54
+ <a href="#Resources">Resources</a> •
55
+ <a href="#Special-thanks">Special thanks</a> •
56
+ <a href="https://www.youtube.com/watch?v=hPbJZ0HoiDE&list=PLug0g7UYHX8D1Jik6NkJjQhdxqS-NOtB9">Video Tutorials</a>
57
+ </p>
58
+
59
+ [![Join Discord](https://img.shields.io/badge/join-discord-blue)](https://discord.gg/Sj5QKKyE42)
60
+ [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/iwatkot/maps4fs)](https://github.com/iwatkot/maps4fs/releases)
61
+ [![PyPI - Version](https://img.shields.io/pypi/v/maps4fs)](https://pypi.org/project/maps4fs)
62
+ [![Docker Pulls](https://img.shields.io/docker/pulls/iwatkot/maps4fs)](https://hub.docker.com/repository/docker/iwatkot/maps4fs/general)
63
+ [![GitHub issues](https://img.shields.io/github/issues/iwatkot/maps4fs)](https://github.com/iwatkot/maps4fs/issues)<br>
64
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/maps4fs)](https://pypi.org/project/maps4fs)
65
+ [![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
66
+ [![Build Status](https://github.com/iwatkot/maps4fs/actions/workflows/checks.yml/badge.svg)](https://github.com/iwatkot/maps4fs/actions)
67
+ [![codecov](https://codecov.io/gh/iwatkot/maps4fs/graph/badge.svg?token=NSKPFSKJXI)](https://codecov.io/gh/iwatkot/maps4fs)
68
+ [![GitHub Repo stars](https://img.shields.io/github/stars/iwatkot/maps4fs)](https://github.com/iwatkot/maps4fs/stargazers)<br>
69
+
70
+ </div>
71
+
72
+ 🗺️ Supports 2x2, 4x4, 8x8, 16x16 and any custom size maps<br>
73
+ 🔗 Generate maps using an [API](https://github.com/iwatkot/maps4fsapi)<br>
74
+ ✂️ Supports map scaling<br>
75
+ 🔄 Support map rotation<br>
76
+ 🌐 Supports custom [DTM Providers](https://github.com/iwatkot/pydtmdl)<br>
77
+ 🌾 Automatically generates fields<br>
78
+ 🌽 Automatically generates farmlands<br>
79
+ 🌿 Automatically generates decorative foliage<br>
80
+ 🌲 Automatically generates forests<br>
81
+ 🌊 Automatically generates water planes<br>
82
+ 📈 Automatically generates splines<br>
83
+ 🛰️ Automatically downloads high resolution satellite images<br>
84
+ 🌍 Based on real-world data from OpenStreetMap<br>
85
+ 🗺️ Supports [custom OSM maps](https://maps4fs.gitbook.io/docs/advanced-topics/custom_osm)<br>
86
+ 🏞️ Generates height map using SRTM dataset<br>
87
+ 📦 Provides a ready-to-use map template for the Giants Editor<br>
88
+ 🚜 Supports Farming Simulator 22 and 25<br>
89
+ 🔷 Generates \*.obj files for background terrain based on the real-world height map<br>
90
+ 📕 Detailed [documentation](https://maps4fs.gitbook.io/docs) and tutorials <br>
91
+
92
+ <p align="center">
93
+ <img src="https://github.com/user-attachments/assets/cf8f5752-9c69-4018-bead-290f59ba6976"><br>
94
+ 🌎 Detailed terrain based on real-world data.<br><br>
95
+ <img src="https://github.com/user-attachments/assets/dc40d0bb-c20b-411c-8833-9925d0389452"><br>
96
+ 🛰️ Realistic background terrain with satellite images.<br><br>
97
+ <img src="https://github.com/user-attachments/assets/6e3c0e99-2cce-46ac-82db-5cb60bba7a30"><br>
98
+ 📐 Perfectly aligned background terrain.<br><br>
99
+ <img src="https://github.com/user-attachments/assets/5764b2ec-e626-426f-9f5d-beb12ba95133"><br>
100
+ 🌿 Automatically generates decorative foliage.<br><br>
101
+ <img src="https://github.com/user-attachments/assets/27a5e541-a9f5-4504-b8d2-64aae9fb3e52"><br>
102
+ 🌲 Automatically generates forests.<br><br>
103
+ <img src="https://github.com/user-attachments/assets/cce7d4e0-cba2-4dd2-b22d-03137fb2e860"><br>
104
+ 🌊 Automatically generates water planes.<br><br>
105
+ <img src="https://github.com/user-attachments/assets/0b05b511-a595-48e7-a353-8298081314a4"><br>
106
+ 📈 Automatically generates splines.<br><br>
107
+ <img width="480" src="https://github.com/user-attachments/assets/1a8802d2-6a3b-4bfa-af2b-7c09478e199b"><br>
108
+ 🌾 Field generation with one click.<br><br>
109
+ <img width="480" src="https://github.com/user-attachments/assets/4d1fa879-5d60-438b-a84e-16883bcef0ec"><br>
110
+ 🌽 Automatic farmlands generation based on the fields.<br><br>
111
+
112
+ ## Overview
113
+
114
+ The core idea originates from the excellent [maps4cim](https://github.com/klamann/maps4cim) project.<br>
115
+
116
+ The main goal of this project is to generate map templates based on real-world data for Farming Simulator. It's important to understand that **templates are not finished maps**. They serve as a foundation for map creation, using built-in textures to represent different terrain types and structures with accurate shapes and scales, along with generating realistic height maps. The detailed work of creating a complete, playable map remains with you. If you expected to simply run this tool and receive a ready-to-play map, this may not meet those expectations. However, if you're a map creator, this tool will significantly reduce your development time.<br>
117
+
118
+ For newcomers to map creation, here's the typical workflow:
119
+
120
+ 1. Generate a map template using this tool.
121
+ 2. Download the Giants Editor.
122
+ 3. Open the generated template in Giants Editor.
123
+ 4. Begin detailed map development (adding roads, fields, buildings, etc.).
124
+
125
+ ## Resources
126
+
127
+ This section lists essential tools required for Farming Simulator map creation.<br>
128
+ For basic map development, you only need Giants Editor. However, creating background terrain—the surrounding world that prevents your map from appearing to float in empty space—requires additional tools: Blender with the official exporter plugins. For realistic background terrain textures, QGIS is needed to obtain high-resolution satellite imagery.<br>
129
+
130
+ 1. [Giants Editor](https://gdn.giants-software.com/downloads.php) - Official map creation tool for Farming Simulator
131
+ 2. [Blender](https://www.blender.org/download/) - Open-source 3D modeling software for creating Farming Simulator assets
132
+ 3. [Blender Exporter Plugins](https://gdn.giants-software.com/downloads.php) - Official plugins for exporting models from Blender to i3d format (Farming Simulator's native format)
133
+
134
+ ## Special thanks
135
+
136
+ First and foremost, thanks to our direct [contributors](https://github.com/iwatkot/maps4fs/graphs/contributors) who have made code contributions to the project.
137
+
138
+ Additionally, we extend gratitude to community members who have supported the project through feedback, testing, and expertise, even without direct code contributions:
139
+
140
+ - [Ka5tis](https://github.com/Ka5tis) - Investigated the "spiky terrain" issue and discovered the solution: increasing `DisplacementLayer` size values
141
+ - [Kalderone](https://www.youtube.com/@Kalderone_FS22) - Provided valuable feedback, suggestions, and expert guidance on map-making processes, highlighting crucial Giants Editor settings
142
+ - [kirasolda](https://github.com/kirasolda) - Offered expert Blender advice, assisted with background terrain processing, and created detailed tutorials for preparing OBJ files for Giants Editor
143
+ - [BFernaesds](https://github.com/BFernaesds) - Conducted comprehensive manual application testing
144
+ - [gamerdesigns](https://github.com/gamerdesigns) - Performed thorough manual application testing
145
+ - [Tox3](https://github.com/Tox3) - Contributed extensive manual application testing
146
+ - [Lucandia](https://github.com/Lucandia) - Developed the excellent StreamLit [STL file preview widget](https://github.com/Lucandia/streamlit_stl)
147
+ - [H4rdB4se](https://github.com/H4rdB4se) - Investigated custom OSM file compatibility issues and established proper JOSM workflow procedures
148
+ - [kbrandwijk](https://github.com/kbrandwijk) - Created the [satellite image downloader tool](https://github.com/Paint-a-Farm/satmap_downloader) for Google Maps and granted permission for modification and Python package creation
149
+ - [Maaslandmods](https://github.com/Maaslandmods) - Conceived the UI tree schema editing feature and provided implementation images and code examples
150
+ - [StrauntMaunt](https://gitlab.com/StrauntMaunt) - Developed procedural generation scripts, provided essential Maps4FS updates, and authored procedural generation documentation
@@ -0,0 +1,120 @@
1
+ <p align="center">
2
+ <a href="https://github.com/iwatkot/maps4fs">maps4fs</a> •
3
+ <a href="https://github.com/iwatkot/maps4fsui">maps4fs UI</a> •
4
+ <a href="https://github.com/iwatkot/maps4fsdata">maps4fs Data</a> •
5
+ <a href="https://github.com/iwatkot/maps4fsapi">maps4fs API</a> •
6
+ <a href="https://github.com/iwatkot/maps4fsstats">maps4fs Stats</a> •
7
+ <a href="https://github.com/iwatkot/maps4fsbot">maps4fs Bot</a><br>
8
+ <a href="https://github.com/iwatkot/pygmdl">pygmdl</a> •
9
+ <a href="https://github.com/iwatkot/pydtmdl">pydtmdl</a>
10
+ </p>
11
+
12
+ <div align="center" markdown>
13
+ <a href="https://discord.gg/Sj5QKKyE42">
14
+ <img src="https://github.com/user-attachments/assets/37043333-d6ef-4ca3-9f3c-81323d9d0b71">
15
+ </a>
16
+
17
+ <p align="center">
18
+ <a href="#overview">Overview</a> •
19
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/how_to_launch">How to Launch</a> •
20
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/step_by_step_guide">Step-by-Step Guide</a> •
21
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/workflow_optimizations">Workflow Optimizations</a><br>
22
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/faq">FAQ</a> •
23
+ <a href="https://maps4fs.gitbook.io/docs/setup-and-installation/get_help">Get Help</a> •
24
+ <a href="#Resources">Resources</a> •
25
+ <a href="#Special-thanks">Special thanks</a> •
26
+ <a href="https://www.youtube.com/watch?v=hPbJZ0HoiDE&list=PLug0g7UYHX8D1Jik6NkJjQhdxqS-NOtB9">Video Tutorials</a>
27
+ </p>
28
+
29
+ [![Join Discord](https://img.shields.io/badge/join-discord-blue)](https://discord.gg/Sj5QKKyE42)
30
+ [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/iwatkot/maps4fs)](https://github.com/iwatkot/maps4fs/releases)
31
+ [![PyPI - Version](https://img.shields.io/pypi/v/maps4fs)](https://pypi.org/project/maps4fs)
32
+ [![Docker Pulls](https://img.shields.io/docker/pulls/iwatkot/maps4fs)](https://hub.docker.com/repository/docker/iwatkot/maps4fs/general)
33
+ [![GitHub issues](https://img.shields.io/github/issues/iwatkot/maps4fs)](https://github.com/iwatkot/maps4fs/issues)<br>
34
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/maps4fs)](https://pypi.org/project/maps4fs)
35
+ [![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
36
+ [![Build Status](https://github.com/iwatkot/maps4fs/actions/workflows/checks.yml/badge.svg)](https://github.com/iwatkot/maps4fs/actions)
37
+ [![codecov](https://codecov.io/gh/iwatkot/maps4fs/graph/badge.svg?token=NSKPFSKJXI)](https://codecov.io/gh/iwatkot/maps4fs)
38
+ [![GitHub Repo stars](https://img.shields.io/github/stars/iwatkot/maps4fs)](https://github.com/iwatkot/maps4fs/stargazers)<br>
39
+
40
+ </div>
41
+
42
+ 🗺️ Supports 2x2, 4x4, 8x8, 16x16 and any custom size maps<br>
43
+ 🔗 Generate maps using an [API](https://github.com/iwatkot/maps4fsapi)<br>
44
+ ✂️ Supports map scaling<br>
45
+ 🔄 Support map rotation<br>
46
+ 🌐 Supports custom [DTM Providers](https://github.com/iwatkot/pydtmdl)<br>
47
+ 🌾 Automatically generates fields<br>
48
+ 🌽 Automatically generates farmlands<br>
49
+ 🌿 Automatically generates decorative foliage<br>
50
+ 🌲 Automatically generates forests<br>
51
+ 🌊 Automatically generates water planes<br>
52
+ 📈 Automatically generates splines<br>
53
+ 🛰️ Automatically downloads high resolution satellite images<br>
54
+ 🌍 Based on real-world data from OpenStreetMap<br>
55
+ 🗺️ Supports [custom OSM maps](https://maps4fs.gitbook.io/docs/advanced-topics/custom_osm)<br>
56
+ 🏞️ Generates height map using SRTM dataset<br>
57
+ 📦 Provides a ready-to-use map template for the Giants Editor<br>
58
+ 🚜 Supports Farming Simulator 22 and 25<br>
59
+ 🔷 Generates \*.obj files for background terrain based on the real-world height map<br>
60
+ 📕 Detailed [documentation](https://maps4fs.gitbook.io/docs) and tutorials <br>
61
+
62
+ <p align="center">
63
+ <img src="https://github.com/user-attachments/assets/cf8f5752-9c69-4018-bead-290f59ba6976"><br>
64
+ 🌎 Detailed terrain based on real-world data.<br><br>
65
+ <img src="https://github.com/user-attachments/assets/dc40d0bb-c20b-411c-8833-9925d0389452"><br>
66
+ 🛰️ Realistic background terrain with satellite images.<br><br>
67
+ <img src="https://github.com/user-attachments/assets/6e3c0e99-2cce-46ac-82db-5cb60bba7a30"><br>
68
+ 📐 Perfectly aligned background terrain.<br><br>
69
+ <img src="https://github.com/user-attachments/assets/5764b2ec-e626-426f-9f5d-beb12ba95133"><br>
70
+ 🌿 Automatically generates decorative foliage.<br><br>
71
+ <img src="https://github.com/user-attachments/assets/27a5e541-a9f5-4504-b8d2-64aae9fb3e52"><br>
72
+ 🌲 Automatically generates forests.<br><br>
73
+ <img src="https://github.com/user-attachments/assets/cce7d4e0-cba2-4dd2-b22d-03137fb2e860"><br>
74
+ 🌊 Automatically generates water planes.<br><br>
75
+ <img src="https://github.com/user-attachments/assets/0b05b511-a595-48e7-a353-8298081314a4"><br>
76
+ 📈 Automatically generates splines.<br><br>
77
+ <img width="480" src="https://github.com/user-attachments/assets/1a8802d2-6a3b-4bfa-af2b-7c09478e199b"><br>
78
+ 🌾 Field generation with one click.<br><br>
79
+ <img width="480" src="https://github.com/user-attachments/assets/4d1fa879-5d60-438b-a84e-16883bcef0ec"><br>
80
+ 🌽 Automatic farmlands generation based on the fields.<br><br>
81
+
82
+ ## Overview
83
+
84
+ The core idea originates from the excellent [maps4cim](https://github.com/klamann/maps4cim) project.<br>
85
+
86
+ The main goal of this project is to generate map templates based on real-world data for Farming Simulator. It's important to understand that **templates are not finished maps**. They serve as a foundation for map creation, using built-in textures to represent different terrain types and structures with accurate shapes and scales, along with generating realistic height maps. The detailed work of creating a complete, playable map remains with you. If you expected to simply run this tool and receive a ready-to-play map, this may not meet those expectations. However, if you're a map creator, this tool will significantly reduce your development time.<br>
87
+
88
+ For newcomers to map creation, here's the typical workflow:
89
+
90
+ 1. Generate a map template using this tool.
91
+ 2. Download the Giants Editor.
92
+ 3. Open the generated template in Giants Editor.
93
+ 4. Begin detailed map development (adding roads, fields, buildings, etc.).
94
+
95
+ ## Resources
96
+
97
+ This section lists essential tools required for Farming Simulator map creation.<br>
98
+ For basic map development, you only need Giants Editor. However, creating background terrain—the surrounding world that prevents your map from appearing to float in empty space—requires additional tools: Blender with the official exporter plugins. For realistic background terrain textures, QGIS is needed to obtain high-resolution satellite imagery.<br>
99
+
100
+ 1. [Giants Editor](https://gdn.giants-software.com/downloads.php) - Official map creation tool for Farming Simulator
101
+ 2. [Blender](https://www.blender.org/download/) - Open-source 3D modeling software for creating Farming Simulator assets
102
+ 3. [Blender Exporter Plugins](https://gdn.giants-software.com/downloads.php) - Official plugins for exporting models from Blender to i3d format (Farming Simulator's native format)
103
+
104
+ ## Special thanks
105
+
106
+ First and foremost, thanks to our direct [contributors](https://github.com/iwatkot/maps4fs/graphs/contributors) who have made code contributions to the project.
107
+
108
+ Additionally, we extend gratitude to community members who have supported the project through feedback, testing, and expertise, even without direct code contributions:
109
+
110
+ - [Ka5tis](https://github.com/Ka5tis) - Investigated the "spiky terrain" issue and discovered the solution: increasing `DisplacementLayer` size values
111
+ - [Kalderone](https://www.youtube.com/@Kalderone_FS22) - Provided valuable feedback, suggestions, and expert guidance on map-making processes, highlighting crucial Giants Editor settings
112
+ - [kirasolda](https://github.com/kirasolda) - Offered expert Blender advice, assisted with background terrain processing, and created detailed tutorials for preparing OBJ files for Giants Editor
113
+ - [BFernaesds](https://github.com/BFernaesds) - Conducted comprehensive manual application testing
114
+ - [gamerdesigns](https://github.com/gamerdesigns) - Performed thorough manual application testing
115
+ - [Tox3](https://github.com/Tox3) - Contributed extensive manual application testing
116
+ - [Lucandia](https://github.com/Lucandia) - Developed the excellent StreamLit [STL file preview widget](https://github.com/Lucandia/streamlit_stl)
117
+ - [H4rdB4se](https://github.com/H4rdB4se) - Investigated custom OSM file compatibility issues and established proper JOSM workflow procedures
118
+ - [kbrandwijk](https://github.com/kbrandwijk) - Created the [satellite image downloader tool](https://github.com/Paint-a-Farm/satmap_downloader) for Google Maps and granted permission for modification and Python package creation
119
+ - [Maaslandmods](https://github.com/Maaslandmods) - Conceived the UI tree schema editing feature and provided implementation images and code examples
120
+ - [StrauntMaunt](https://gitlab.com/StrauntMaunt) - Developed procedural generation scripts, provided essential Maps4FS updates, and authored procedural generation documentation
@@ -12,6 +12,19 @@ from maps4fs.logger import Logger
12
12
  logger = Logger()
13
13
 
14
14
  MFS_TEMPLATES_DIR = os.path.join(os.getcwd(), "templates")
15
+ MFS_DEFAULTS_DIR = os.path.join(os.getcwd(), "defaults")
16
+ MFS_DEM_DEFAULTS_DIR = os.path.join(MFS_DEFAULTS_DIR, "dem")
17
+ MFS_OSM_DEFAULTS_DIR = os.path.join(MFS_DEFAULTS_DIR, "osm")
18
+ os.makedirs(MFS_OSM_DEFAULTS_DIR, exist_ok=True)
19
+ os.makedirs(MFS_DEM_DEFAULTS_DIR, exist_ok=True)
20
+
21
+ DEFAULT_OSM_PATH = os.path.join(MFS_OSM_DEFAULTS_DIR, "custom_osm.osm")
22
+ DEFAULT_DEM_PATH = os.path.join(MFS_DEM_DEFAULTS_DIR, "custom_dem.png")
23
+
24
+ DEFAULT_OSM = DEFAULT_OSM_PATH if os.path.isfile(DEFAULT_OSM_PATH) else None
25
+ DEFAULT_DEM = DEFAULT_DEM_PATH if os.path.isfile(DEFAULT_DEM_PATH) else None
26
+ logger.info("Default OSM: %s", DEFAULT_OSM)
27
+ logger.info("Default DEM: %s", DEFAULT_DEM)
15
28
 
16
29
 
17
30
  def ensure_templates():
@@ -66,7 +66,7 @@ class Map:
66
66
  # endregion
67
67
 
68
68
  # region custom OSM properties
69
- self.custom_osm = custom_osm
69
+ self.custom_osm = custom_osm or mfscfg.DEFAULT_OSM
70
70
  if custom_osm and not os.path.isfile(custom_osm):
71
71
  raise FileNotFoundError(f"Custom OSM file {custom_osm} does not exist.")
72
72
  mfsutils.check_and_fix_osm(self.custom_osm, save_directory=self.map_directory)
@@ -125,7 +125,8 @@ class Map:
125
125
 
126
126
  self.shared_settings = SharedSettings()
127
127
  self.components: list[Component] = []
128
- self.custom_background_path = kwargs.get("custom_background_path", None)
128
+ custom_dem = kwargs.get("custom_background_path", None)
129
+ self.custom_background_path = custom_dem or mfscfg.DEFAULT_DEM
129
130
 
130
131
  def process_settings(self) -> None:
131
132
  """Checks the settings by predefined rules and updates them accordingly."""
@@ -0,0 +1,150 @@
1
+ Metadata-Version: 2.4
2
+ Name: maps4fs
3
+ Version: 2.5.3
4
+ Summary: Generate map templates for Farming Simulator from real places.
5
+ Author-email: iwatkot <iwatkot@gmail.com>
6
+ License: GNU Affero General Public License v3.0
7
+ Project-URL: Homepage, https://github.com/iwatkot/maps4fs
8
+ Project-URL: Repository, https://github.com/iwatkot/maps4fs
9
+ Keywords: farmingsimulator,fs,farmingsimulator22,farmingsimulator25,fs22,fs25
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
13
+ Classifier: Operating System :: OS Independent
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE.md
16
+ Requires-Dist: opencv-python
17
+ Requires-Dist: osmnx>=2.0.0
18
+ Requires-Dist: rasterio
19
+ Requires-Dist: geopy
20
+ Requires-Dist: trimesh
21
+ Requires-Dist: pydantic
22
+ Requires-Dist: pygmdl
23
+ Requires-Dist: owslib
24
+ Requires-Dist: tqdm
25
+ Requires-Dist: scipy
26
+ Requires-Dist: pydtmdl
27
+ Requires-Dist: manifold3d
28
+ Requires-Dist: fast-simplification
29
+ Dynamic: license-file
30
+
31
+ <p align="center">
32
+ <a href="https://github.com/iwatkot/maps4fs">maps4fs</a> •
33
+ <a href="https://github.com/iwatkot/maps4fsui">maps4fs UI</a> •
34
+ <a href="https://github.com/iwatkot/maps4fsdata">maps4fs Data</a> •
35
+ <a href="https://github.com/iwatkot/maps4fsapi">maps4fs API</a> •
36
+ <a href="https://github.com/iwatkot/maps4fsstats">maps4fs Stats</a> •
37
+ <a href="https://github.com/iwatkot/maps4fsbot">maps4fs Bot</a><br>
38
+ <a href="https://github.com/iwatkot/pygmdl">pygmdl</a> •
39
+ <a href="https://github.com/iwatkot/pydtmdl">pydtmdl</a>
40
+ </p>
41
+
42
+ <div align="center" markdown>
43
+ <a href="https://discord.gg/Sj5QKKyE42">
44
+ <img src="https://github.com/user-attachments/assets/37043333-d6ef-4ca3-9f3c-81323d9d0b71">
45
+ </a>
46
+
47
+ <p align="center">
48
+ <a href="#overview">Overview</a> •
49
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/how_to_launch">How to Launch</a> •
50
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/step_by_step_guide">Step-by-Step Guide</a> •
51
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/workflow_optimizations">Workflow Optimizations</a><br>
52
+ <a href="https://maps4fs.gitbook.io/docs/getting-started/faq">FAQ</a> •
53
+ <a href="https://maps4fs.gitbook.io/docs/setup-and-installation/get_help">Get Help</a> •
54
+ <a href="#Resources">Resources</a> •
55
+ <a href="#Special-thanks">Special thanks</a> •
56
+ <a href="https://www.youtube.com/watch?v=hPbJZ0HoiDE&list=PLug0g7UYHX8D1Jik6NkJjQhdxqS-NOtB9">Video Tutorials</a>
57
+ </p>
58
+
59
+ [![Join Discord](https://img.shields.io/badge/join-discord-blue)](https://discord.gg/Sj5QKKyE42)
60
+ [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/iwatkot/maps4fs)](https://github.com/iwatkot/maps4fs/releases)
61
+ [![PyPI - Version](https://img.shields.io/pypi/v/maps4fs)](https://pypi.org/project/maps4fs)
62
+ [![Docker Pulls](https://img.shields.io/docker/pulls/iwatkot/maps4fs)](https://hub.docker.com/repository/docker/iwatkot/maps4fs/general)
63
+ [![GitHub issues](https://img.shields.io/github/issues/iwatkot/maps4fs)](https://github.com/iwatkot/maps4fs/issues)<br>
64
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/maps4fs)](https://pypi.org/project/maps4fs)
65
+ [![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
66
+ [![Build Status](https://github.com/iwatkot/maps4fs/actions/workflows/checks.yml/badge.svg)](https://github.com/iwatkot/maps4fs/actions)
67
+ [![codecov](https://codecov.io/gh/iwatkot/maps4fs/graph/badge.svg?token=NSKPFSKJXI)](https://codecov.io/gh/iwatkot/maps4fs)
68
+ [![GitHub Repo stars](https://img.shields.io/github/stars/iwatkot/maps4fs)](https://github.com/iwatkot/maps4fs/stargazers)<br>
69
+
70
+ </div>
71
+
72
+ 🗺️ Supports 2x2, 4x4, 8x8, 16x16 and any custom size maps<br>
73
+ 🔗 Generate maps using an [API](https://github.com/iwatkot/maps4fsapi)<br>
74
+ ✂️ Supports map scaling<br>
75
+ 🔄 Support map rotation<br>
76
+ 🌐 Supports custom [DTM Providers](https://github.com/iwatkot/pydtmdl)<br>
77
+ 🌾 Automatically generates fields<br>
78
+ 🌽 Automatically generates farmlands<br>
79
+ 🌿 Automatically generates decorative foliage<br>
80
+ 🌲 Automatically generates forests<br>
81
+ 🌊 Automatically generates water planes<br>
82
+ 📈 Automatically generates splines<br>
83
+ 🛰️ Automatically downloads high resolution satellite images<br>
84
+ 🌍 Based on real-world data from OpenStreetMap<br>
85
+ 🗺️ Supports [custom OSM maps](https://maps4fs.gitbook.io/docs/advanced-topics/custom_osm)<br>
86
+ 🏞️ Generates height map using SRTM dataset<br>
87
+ 📦 Provides a ready-to-use map template for the Giants Editor<br>
88
+ 🚜 Supports Farming Simulator 22 and 25<br>
89
+ 🔷 Generates \*.obj files for background terrain based on the real-world height map<br>
90
+ 📕 Detailed [documentation](https://maps4fs.gitbook.io/docs) and tutorials <br>
91
+
92
+ <p align="center">
93
+ <img src="https://github.com/user-attachments/assets/cf8f5752-9c69-4018-bead-290f59ba6976"><br>
94
+ 🌎 Detailed terrain based on real-world data.<br><br>
95
+ <img src="https://github.com/user-attachments/assets/dc40d0bb-c20b-411c-8833-9925d0389452"><br>
96
+ 🛰️ Realistic background terrain with satellite images.<br><br>
97
+ <img src="https://github.com/user-attachments/assets/6e3c0e99-2cce-46ac-82db-5cb60bba7a30"><br>
98
+ 📐 Perfectly aligned background terrain.<br><br>
99
+ <img src="https://github.com/user-attachments/assets/5764b2ec-e626-426f-9f5d-beb12ba95133"><br>
100
+ 🌿 Automatically generates decorative foliage.<br><br>
101
+ <img src="https://github.com/user-attachments/assets/27a5e541-a9f5-4504-b8d2-64aae9fb3e52"><br>
102
+ 🌲 Automatically generates forests.<br><br>
103
+ <img src="https://github.com/user-attachments/assets/cce7d4e0-cba2-4dd2-b22d-03137fb2e860"><br>
104
+ 🌊 Automatically generates water planes.<br><br>
105
+ <img src="https://github.com/user-attachments/assets/0b05b511-a595-48e7-a353-8298081314a4"><br>
106
+ 📈 Automatically generates splines.<br><br>
107
+ <img width="480" src="https://github.com/user-attachments/assets/1a8802d2-6a3b-4bfa-af2b-7c09478e199b"><br>
108
+ 🌾 Field generation with one click.<br><br>
109
+ <img width="480" src="https://github.com/user-attachments/assets/4d1fa879-5d60-438b-a84e-16883bcef0ec"><br>
110
+ 🌽 Automatic farmlands generation based on the fields.<br><br>
111
+
112
+ ## Overview
113
+
114
+ The core idea originates from the excellent [maps4cim](https://github.com/klamann/maps4cim) project.<br>
115
+
116
+ The main goal of this project is to generate map templates based on real-world data for Farming Simulator. It's important to understand that **templates are not finished maps**. They serve as a foundation for map creation, using built-in textures to represent different terrain types and structures with accurate shapes and scales, along with generating realistic height maps. The detailed work of creating a complete, playable map remains with you. If you expected to simply run this tool and receive a ready-to-play map, this may not meet those expectations. However, if you're a map creator, this tool will significantly reduce your development time.<br>
117
+
118
+ For newcomers to map creation, here's the typical workflow:
119
+
120
+ 1. Generate a map template using this tool.
121
+ 2. Download the Giants Editor.
122
+ 3. Open the generated template in Giants Editor.
123
+ 4. Begin detailed map development (adding roads, fields, buildings, etc.).
124
+
125
+ ## Resources
126
+
127
+ This section lists essential tools required for Farming Simulator map creation.<br>
128
+ For basic map development, you only need Giants Editor. However, creating background terrain—the surrounding world that prevents your map from appearing to float in empty space—requires additional tools: Blender with the official exporter plugins. For realistic background terrain textures, QGIS is needed to obtain high-resolution satellite imagery.<br>
129
+
130
+ 1. [Giants Editor](https://gdn.giants-software.com/downloads.php) - Official map creation tool for Farming Simulator
131
+ 2. [Blender](https://www.blender.org/download/) - Open-source 3D modeling software for creating Farming Simulator assets
132
+ 3. [Blender Exporter Plugins](https://gdn.giants-software.com/downloads.php) - Official plugins for exporting models from Blender to i3d format (Farming Simulator's native format)
133
+
134
+ ## Special thanks
135
+
136
+ First and foremost, thanks to our direct [contributors](https://github.com/iwatkot/maps4fs/graphs/contributors) who have made code contributions to the project.
137
+
138
+ Additionally, we extend gratitude to community members who have supported the project through feedback, testing, and expertise, even without direct code contributions:
139
+
140
+ - [Ka5tis](https://github.com/Ka5tis) - Investigated the "spiky terrain" issue and discovered the solution: increasing `DisplacementLayer` size values
141
+ - [Kalderone](https://www.youtube.com/@Kalderone_FS22) - Provided valuable feedback, suggestions, and expert guidance on map-making processes, highlighting crucial Giants Editor settings
142
+ - [kirasolda](https://github.com/kirasolda) - Offered expert Blender advice, assisted with background terrain processing, and created detailed tutorials for preparing OBJ files for Giants Editor
143
+ - [BFernaesds](https://github.com/BFernaesds) - Conducted comprehensive manual application testing
144
+ - [gamerdesigns](https://github.com/gamerdesigns) - Performed thorough manual application testing
145
+ - [Tox3](https://github.com/Tox3) - Contributed extensive manual application testing
146
+ - [Lucandia](https://github.com/Lucandia) - Developed the excellent StreamLit [STL file preview widget](https://github.com/Lucandia/streamlit_stl)
147
+ - [H4rdB4se](https://github.com/H4rdB4se) - Investigated custom OSM file compatibility issues and established proper JOSM workflow procedures
148
+ - [kbrandwijk](https://github.com/kbrandwijk) - Created the [satellite image downloader tool](https://github.com/Paint-a-Farm/satmap_downloader) for Google Maps and granted permission for modification and Python package creation
149
+ - [Maaslandmods](https://github.com/Maaslandmods) - Conceived the UI tree schema editing feature and provided implementation images and code examples
150
+ - [StrauntMaunt](https://gitlab.com/StrauntMaunt) - Developed procedural generation scripts, provided essential Maps4FS updates, and authored procedural generation documentation
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "maps4fs"
7
- version = "2.5.1"
7
+ version = "2.5.3"
8
8
  description = "Generate map templates for Farming Simulator from real places."
9
9
  authors = [{name = "iwatkot", email = "iwatkot@gmail.com"}]
10
10
  license = {text = "GNU Affero General Public License v3.0"}