Add Hawaii map (#3187)

## Description:
Add Hawaii as a new regional map. Features 9 nations across the Hawaiian
island chain (Niihau, Kauai, Oahu, Molokai, Lanai, Kahoolawe, Maui,
Kona, Hilo). ~~612K land tiles at 3920x2544~~ 408K land tiles at
3200x2076, terrain generated from real relief data with accurate
volcanic peaks and coastal lowlands. Playlist frequency: 4.

![Hawaii
thumbnail](https://raw.githubusercontent.com/gabigabogabu/OpenFrontIO/feature/hawaii-map/resources/maps/hawaii/thumbnail.webp)

## Checklist
- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced

Source:
https://commons.wikimedia.org/wiki/File:USA_Hawaii_relief_location_map.svg
Discord: gabigabogabu
This commit is contained in:
gabigabogabu
2026-02-14 18:28:42 +01:00
committed by GitHub
parent b74e5c84e0
commit 6e557c52db
12 changed files with 129 additions and 1 deletions
+5
View File
@@ -44,6 +44,11 @@ Licensed under [Open Data Commons Open Database License (ODbL)](https://opendata
Copernicus Global Digital Elevation Models distributed by OpenTopography.
Copyright © opentopography.org. All Rights Reserved. [Terms of Use](https://opentopography.org/usageterms)
### Hawaii Relief Map
[USA Hawaii relief location map](https://commons.wikimedia.org/wiki/File:USA_Hawaii_relief_location_map.svg) by NordNordWest
Licensed under [CC BY-SA 3.0 DE](https://creativecommons.org/licenses/by-sa/3.0/de/deed.en)
## Icons
### [The Noun Project](https://thenounproject.com/)
Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

@@ -0,0 +1,50 @@
{
"name": "Hawaii",
"nations": [
{
"coordinates": [283, 281],
"name": "Niihau",
"flag": "us"
},
{
"coordinates": [613, 189],
"name": "Kauai",
"flag": "us"
},
{
"coordinates": [1424, 525],
"name": "Oahu",
"flag": "us"
},
{
"coordinates": [1930, 708],
"name": "Molokai",
"flag": "us"
},
{
"coordinates": [1977, 874],
"name": "Lanai",
"flag": "us"
},
{
"coordinates": [2145, 1036],
"name": "Kahoolawe",
"flag": "us"
},
{
"coordinates": [2287, 900],
"name": "Maui",
"flag": "us"
},
{
"coordinates": [2550, 1550],
"name": "Kona",
"flag": "us"
},
{
"coordinates": [2900, 1500],
"name": "Hilo",
"flag": "us"
}
]
}
+1
View File
@@ -69,6 +69,7 @@ var maps = []struct {
{Name: "amazonriver"},
{Name: "yenisei"},
{Name: "tradersdream"},
{Name: "hawaii"},
{Name: "big_plains", IsTest: true},
{Name: "half_land_half_ocean", IsTest: true},
{Name: "ocean_and_land", IsTest: true},
+2 -1
View File
@@ -328,7 +328,8 @@
"didier": "Didier",
"didierfrance": "Didier (France)",
"amazonriver": "Amazon River",
"tradersdream": "Traders Dream"
"tradersdream": "Traders Dream",
"hawaii": "Hawaii"
},
"map_categories": {
"featured": "Featured",
+65
View File
@@ -0,0 +1,65 @@
{
"map": {
"height": 2076,
"num_land_tiles": 408264,
"width": 3200
},
"map16x": {
"height": 519,
"num_land_tiles": 24703,
"width": 800
},
"map4x": {
"height": 1038,
"num_land_tiles": 100951,
"width": 1600
},
"name": "Hawaii",
"nations": [
{
"coordinates": [283, 281],
"flag": "us",
"name": "Niihau"
},
{
"coordinates": [613, 189],
"flag": "us",
"name": "Kauai"
},
{
"coordinates": [1424, 525],
"flag": "us",
"name": "Oahu"
},
{
"coordinates": [1930, 708],
"flag": "us",
"name": "Molokai"
},
{
"coordinates": [1977, 874],
"flag": "us",
"name": "Lanai"
},
{
"coordinates": [2145, 1036],
"flag": "us",
"name": "Kahoolawe"
},
{
"coordinates": [2287, 900],
"flag": "us",
"name": "Maui"
},
{
"coordinates": [2550, 1550],
"flag": "us",
"name": "Kona"
},
{
"coordinates": [2900, 1500],
"flag": "us",
"name": "Hilo"
}
]
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

+2
View File
@@ -120,6 +120,7 @@ export enum GameMapType {
AmazonRiver = "Amazon River",
Yenisei = "Yenisei",
TradersDream = "Traders Dream",
Hawaii = "Hawaii",
}
export type GameMapName = keyof typeof GameMapType;
@@ -168,6 +169,7 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.StraitOfHormuz,
GameMapType.AmazonRiver,
GameMapType.Yenisei,
GameMapType.Hawaii,
],
fantasy: [
GameMapType.Pangaea,
+1
View File
@@ -68,6 +68,7 @@ const frequency: Partial<Record<GameMapName, number>> = {
TheBox: 3,
Yenisei: 6,
TradersDream: 4,
Hawaii: 4,
};
interface MapWithMode {