Skip to content

Commit

Permalink
Forest generation, better grass generation, empty texture size fix wi…
Browse files Browse the repository at this point in the history
…th a rotation, advanced settings available with the Auto Preset

* Updated grass generation.

* Updated grass generation.

* Empty textures size fix.

* Generation of forests.

* Coordinates and rotation randomization.

* Deco foliage for forests.

* Advanced settings with Auto Preset.

* Docs update.
  • Loading branch information
iwatkot authored Dec 22, 2024
1 parent 31802cb commit 55aaa62
Show file tree
Hide file tree
Showing 15 changed files with 784 additions and 172 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
🌾 Automatically generates fields 🆕<br>
🌽 Automatically generates farmlands 🆕<br>
🌿 Automatically generates decorative foliage 🆕<br>
🌲 Automatically generates forests 🆕<br>
🌍 Based on real-world data from OpenStreetMap<br>
🏞️ Generates height map using SRTM dataset<br>
📦 Provides a ready-to-use map template for the Giants Editor<br>
Expand All @@ -62,6 +63,8 @@
📐 Perfectly aligned background terrain.<br><br>
<img src="https://github.com/user-attachments/assets/5764b2ec-e626-426f-9f5d-beb12ba95133"><br>
🌿 Automatically generates decorative foliage.<br><br>
<img src="https://github.com/user-attachments/assets/27a5e541-a9f5-4504-b8d2-64aae9fb3e52"><br>
🌲 Automatically generates forests.<br><br>
<img src="https://github.com/user-attachments/assets/80e5923c-22c7-4dc0-8906-680902511f3a"><br>
🗒️ True-to-life blueprints for fast and precise modding.<br><br>
<img width="480" src="https://github.com/user-attachments/assets/1a8802d2-6a3b-4bfa-af2b-7c09478e199b"><br>
Expand Down
Binary file modified data/fs25-map-template.zip
Binary file not shown.
6 changes: 4 additions & 2 deletions data/fs25-texture-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"count": 2,
"tags": { "natural": "grassland" },
"color": [34, 255, 34],
"priority": 0
"priority": 0,
"usage": "grass"
},
{
"name": "grassClovers",
Expand All @@ -84,7 +85,8 @@
"count": 2,
"tags": { "natural": ["wood", "tree_row", "forest"] },
"width": 2,
"color": [0, 252, 124]
"color": [0, 252, 124],
"usage": "forest"
},
{
"name": "grassDirtPatchyDry",
Expand Down
338 changes: 338 additions & 0 deletions data/fs25-tree-schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,338 @@
[
{
"name": "americanElmRavaged",
"reference_id": 1000
},
{
"name": "americanElm_stage01",
"reference_id": 1001
},
{
"name": "americanElm_stage02",
"reference_id": 1002
},
{
"name": "americanElm_stage03",
"reference_id": 1003
},
{
"name": "americanElm_stage04",
"reference_id": 1004
},
{
"name": "americanElm_stage05",
"reference_id": 1005
},
{
"name": "apple_stage03",
"reference_id": 1006
},
{
"name": "aspen_stage01",
"reference_id": 1007
},
{
"name": "aspen_stage02",
"reference_id": 1008
},
{
"name": "aspen_stage03",
"reference_id": 1009
},
{
"name": "aspen_stage04",
"reference_id": 1010
},
{
"name": "aspen_stage05",
"reference_id": 1011
},
{
"name": "aspen_stage06_var01",
"reference_id": 1012
},
{
"name": "aspen_stage06_var02",
"reference_id": 1013
},
{
"name": "beech_stage01",
"reference_id": 1014
},
{
"name": "beech_stage02",
"reference_id": 1015
},
{
"name": "beech_stage02_var02",
"reference_id": 1016
},
{
"name": "beech_stage02_var03",
"reference_id": 1017
},
{
"name": "beech_stage03",
"reference_id": 1018
},
{
"name": "beech_stage04",
"reference_id": 1019
},
{
"name": "beech_stage05",
"reference_id": 1020
},
{
"name": "beech_stage06_var01",
"reference_id": 1021
},
{
"name": "beech_stage06_var02",
"reference_id": 1022
},
{
"name": "betulaErmanii_stage01",
"reference_id": 1023
},
{
"name": "betulaErmanii_stage02",
"reference_id": 1024
},
{
"name": "betulaErmanii_stage03",
"reference_id": 1025
},
{
"name": "betulaErmanii_stage04",
"reference_id": 1026
},
{
"name": "boxelder_stage01",
"reference_id": 1027
},
{
"name": "boxelder_stage02",
"reference_id": 1028
},
{
"name": "boxelder_stage03",
"reference_id": 1029
},
{
"name": "cherry_stage01",
"reference_id": 1030
},
{
"name": "cherry_stage02",
"reference_id": 1031
},
{
"name": "cherry_stage03",
"reference_id": 1032
},
{
"name": "cherry_stage04",
"reference_id": 1033
},
{
"name": "chineseElm_stage01",
"reference_id": 1034
},
{
"name": "chineseElm_stage02",
"reference_id": 1035
},
{
"name": "chineseElm_stage03",
"reference_id": 1036
},
{
"name": "chineseElm_stage04",
"reference_id": 1037
},
{
"name": "deadwood",
"reference_id": 1038
},
{
"name": "downyServiceBerry_stage01",
"reference_id": 1039
},
{
"name": "downyServiceBerry_stage02",
"reference_id": 1040
},
{
"name": "downyServiceBerry_stage03",
"reference_id": 1041
},
{
"name": "goldenRain_stage01",
"reference_id": 1042
},
{
"name": "goldenRain_stage02",
"reference_id": 1043
},
{
"name": "goldenRain_stage03",
"reference_id": 1044
},
{
"name": "goldenRain_stage04",
"reference_id": 1045
},
{
"name": "japaneseZelkova_stage01",
"reference_id": 1046
},
{
"name": "japaneseZelkova_stage02",
"reference_id": 1047
},
{
"name": "japaneseZelkova_stage03",
"reference_id": 1048
},
{
"name": "japaneseZelkova_stage04",
"reference_id": 1049
},
{
"name": "lodgepolePine_stage01",
"reference_id": 1050
},
{
"name": "lodgepolePine_stage02",
"reference_id": 1051
},
{
"name": "lodgepolePine_stage02Var2",
"reference_id": 1052
},
{
"name": "lodgepolePine_stage03",
"reference_id": 1053
},
{
"name": "lodgepolePine_stage03Var2",
"reference_id": 1054
},
{
"name": "northernCatalpa_stage01",
"reference_id": 1055
},
{
"name": "northernCatalpa_stage02",
"reference_id": 1056
},
{
"name": "northernCatalpa_stage03",
"reference_id": 1057
},
{
"name": "northernCatalpa_stage04",
"reference_id": 1058
},
{
"name": "oak_stage01",
"reference_id": 1059
},
{
"name": "oak_stage02",
"reference_id": 1060
},
{
"name": "oak_stage03",
"reference_id": 1061
},
{
"name": "oak_stage04",
"reference_id": 1062
},
{
"name": "oak_stage05",
"reference_id": 1063
},
{
"name": "pinusSylvestris_stage01",
"reference_id": 1064
},
{
"name": "pinusSylvestris_stage02",
"reference_id": 1065
},
{
"name": "pinusSylvestris_stage03",
"reference_id": 1066
},
{
"name": "pinusSylvestris_stage04",
"reference_id": 1067
},
{
"name": "pinusSylvestris_stage05",
"reference_id": 1068
},
{
"name": "pinusTabuliformis_stage01",
"reference_id": 1069
},
{
"name": "pinusTabuliformis_stage02",
"reference_id": 1070
},
{
"name": "pinusTabuliformis_stage03",
"reference_id": 1071
},
{
"name": "pinusTabuliformis_stage04",
"reference_id": 1072
},
{
"name": "pinusTabuliformis_stage05",
"reference_id": 1073
},
{
"name": "shagbarkHickory_stage01",
"reference_id": 1074
},
{
"name": "shagbarkHickory_stage02",
"reference_id": 1075
},
{
"name": "shagbarkHickory_stage03",
"reference_id": 1076
},
{
"name": "shagbarkHickory_stage04",
"reference_id": 1077
},
{
"name": "tiliaAmurensis_stage01",
"reference_id": 1078
},
{
"name": "tiliaAmurensis_stage02",
"reference_id": 1079
},
{
"name": "tiliaAmurensis_stage03",
"reference_id": 1080
},
{
"name": "tiliaAmurensis_stage04",
"reference_id": 1081
},
{
"name": "transportTree",
"reference_id": 1082
},
{
"name": "treesRavaged",
"reference_id": 1083
}
]
14 changes: 0 additions & 14 deletions docs/download_satellite_images.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,20 +103,6 @@ layers = [
```
As a result of saving those `.tif` files, you'll get one image with the exact bounds and another one with the margin around it. In case you want manually adjust the bounds, you can use the image with the margin.

### Approach 1: Using maps4fs Toolbox: GeoTIFF windowing

It's a recommended approach.

2. Navigate to the `🧰 Modder Toolbox` -> `🖼️ Textures and DEM` -> `🪟 GeoTIFF windowing` and upload your tiff image (with margin).

3. Enter coordinates of the center point of the map. It's recommended to paste it EXACTLY the same as in the `generation_info.json` and the size of the map (2048, 4096 and so on). Click on the `Extract ROI` button.

![GeoTIFF windowing](https://github.com/user-attachments/assets/2e63345b-58b1-4d06-8c87-0f7e655a6413)

4. Now you can download windowed image, that will be almost perfectly aligned with the map. But if you want to make it perfectly aligned, you can continue with the second approach.

### Approach 2: Manual adjustment in image editor

2. Create a new image in Photoshop or any other image editor, which allows working with layers, put some of your texture files in center of it. For example for map of size 4096 x 4096 pixels, you need to create an image of size 8192 x 8192 pixels, and you need to put the texture in the center of it.

3. Now add there your satellite images with margins, lower the opacity of this layer and try to manually adjust it. Please note, that Earth is not flat, so it WONT be just scale and move, you also need to rotate it a bit and maybe skew it. The recommended approach is to use the `Free Transform` tool in Photoshop and just move the corners until it fits the map.
Expand Down
Loading

0 comments on commit 55aaa62

Please sign in to comment.