Skip to content

Conversation

evanpelle
Copy link
Collaborator

Description:

Describe the PR.

Please complete the following:

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

Please put your Discord username so you can be contacted if a bug or regression is found:

DISCORD_USERNAME

Copy link
Contributor

coderabbitai bot commented Aug 16, 2025

Warning

Rate limit exceeded

@evanpelle has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 0 minutes and 43 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 69fcfe7 and 64008a5.

⛔ Files ignored due to path filters (38)
  • map-generator/assets/maps/africa/image.png is excluded by !**/*.png
  • map-generator/assets/maps/asia/image.png is excluded by !**/*.png
  • map-generator/assets/maps/australia/image.png is excluded by !**/*.png
  • map-generator/assets/maps/baikal/image.png is excluded by !**/*.png
  • map-generator/assets/maps/betweentwoseas/image.png is excluded by !**/*.png
  • map-generator/assets/maps/blacksea/image.png is excluded by !**/*.png
  • map-generator/assets/maps/britannia/image.png is excluded by !**/*.png
  • map-generator/assets/maps/deglaciatedantarctica/image.png is excluded by !**/*.png
  • map-generator/assets/maps/eastasia/image.png is excluded by !**/*.png
  • map-generator/assets/maps/europe/image.png is excluded by !**/*.png
  • map-generator/assets/maps/europeclassic/image.png is excluded by !**/*.png
  • map-generator/assets/maps/falklandislands/image.png is excluded by !**/*.png
  • map-generator/assets/maps/faroeislands/image.png is excluded by !**/*.png
  • map-generator/assets/maps/gatewaytotheatlantic/image.png is excluded by !**/*.png
  • map-generator/assets/maps/giantworldmap/image.png is excluded by !**/*.png
  • map-generator/assets/maps/halkidiki/image.png is excluded by !**/*.png
  • map-generator/assets/maps/iceland/image.png is excluded by !**/*.png
  • map-generator/assets/maps/italia/image.png is excluded by !**/*.png
  • map-generator/assets/maps/mars/image.png is excluded by !**/*.png
  • map-generator/assets/maps/mena/image.png is excluded by !**/*.png
  • map-generator/assets/maps/northamerica/image.png is excluded by !**/*.png
  • map-generator/assets/maps/oceania/image.png is excluded by !**/*.png
  • map-generator/assets/maps/pangaea/image.png is excluded by !**/*.png
  • map-generator/assets/maps/pluto/image.png is excluded by !**/*.png
  • map-generator/assets/maps/southamerica/image.png is excluded by !**/*.png
  • map-generator/assets/maps/straitofgibraltar/image.png is excluded by !**/*.png
  • map-generator/assets/maps/world/image.png is excluded by !**/*.png
  • map-generator/assets/test_maps/big_plains/image.png is excluded by !**/*.png
  • map-generator/assets/test_maps/half_land_half_ocean/image.png is excluded by !**/*.png
  • map-generator/assets/test_maps/ocean_and_land/image.png is excluded by !**/*.png
  • map-generator/assets/test_maps/plains/image.png is excluded by !**/*.png
  • map-generator/go.sum is excluded by !**/*.sum
  • resources/maps/marsrevised/map.bin is excluded by !**/*.bin
  • resources/maps/marsrevised/mini_map.bin is excluded by !**/*.bin
  • resources/maps/pluto/map.bin is excluded by !**/*.bin
  • resources/maps/pluto/mini_map.bin is excluded by !**/*.bin
  • resources/maps/yenisei/map.bin is excluded by !**/*.bin
  • resources/maps/yenisei/mini_map.bin is excluded by !**/*.bin
📒 Files selected for processing (47)
  • map-generator/LICENSE (1 hunks)
  • map-generator/README.md (1 hunks)
  • map-generator/assets/maps/africa/info.json (1 hunks)
  • map-generator/assets/maps/asia/info.json (1 hunks)
  • map-generator/assets/maps/australia/info.json (1 hunks)
  • map-generator/assets/maps/baikal/info.json (1 hunks)
  • map-generator/assets/maps/betweentwoseas/info.json (1 hunks)
  • map-generator/assets/maps/blacksea/info.json (1 hunks)
  • map-generator/assets/maps/britannia/info.json (1 hunks)
  • map-generator/assets/maps/deglaciatedantarctica/info.json (1 hunks)
  • map-generator/assets/maps/eastasia/info.json (1 hunks)
  • map-generator/assets/maps/europe/info.json (1 hunks)
  • map-generator/assets/maps/europeclassic/info.json (1 hunks)
  • map-generator/assets/maps/falklandislands/info.json (1 hunks)
  • map-generator/assets/maps/faroeislands/info.json (1 hunks)
  • map-generator/assets/maps/gatewaytotheatlantic/info.json (1 hunks)
  • map-generator/assets/maps/giantworldmap/info.json (1 hunks)
  • map-generator/assets/maps/halkidiki/info.json (1 hunks)
  • map-generator/assets/maps/iceland/info.json (1 hunks)
  • map-generator/assets/maps/italia/info.json (1 hunks)
  • map-generator/assets/maps/mars/info.json (1 hunks)
  • map-generator/assets/maps/mena/info.json (1 hunks)
  • map-generator/assets/maps/northamerica/info.json (1 hunks)
  • map-generator/assets/maps/oceania/info.json (1 hunks)
  • map-generator/assets/maps/pangaea/info.json (1 hunks)
  • map-generator/assets/maps/pluto/info.json (1 hunks)
  • map-generator/assets/maps/southamerica/info.json (1 hunks)
  • map-generator/assets/maps/straitofgibraltar/info.json (1 hunks)
  • map-generator/assets/maps/world/info.json (1 hunks)
  • map-generator/assets/test_maps/big_plains/info.json (1 hunks)
  • map-generator/assets/test_maps/half_land_half_ocean/info.json (1 hunks)
  • map-generator/assets/test_maps/ocean_and_land/info.json (1 hunks)
  • map-generator/assets/test_maps/plains/info.json (1 hunks)
  • map-generator/go.mod (1 hunks)
  • map-generator/main.go (1 hunks)
  • map-generator/map_generator.go (1 hunks)
  • package.json (1 hunks)
  • resources/maps/betweentwoseas/manifest.json (0 hunks)
  • resources/maps/blacksea/manifest.json (0 hunks)
  • resources/maps/giantworldmap/manifest.json (1 hunks)
  • resources/maps/marsrevised/manifest.json (0 hunks)
  • resources/maps/pluto/manifest.json (1 hunks)
  • resources/maps/yenisei/manifest.json (0 hunks)
  • tests/testdata/maps/big_plains/manifest.json (0 hunks)
  • tests/testdata/maps/half_land_half_ocean/manifest.json (1 hunks)
  • tests/testdata/maps/ocean_and_land/manifest.json (1 hunks)
  • tests/testdata/maps/plains/manifest.json (0 hunks)

Walkthrough

Adds a Go-based map generator and CLI to produce map binaries, mini-maps, thumbnails, and manifests from assets. Introduces many new map data files, test maps, and a license/README. Updates package.json with a script. Adjusts several existing manifests (adds/removes/edits entries) and removes two legacy map manifests.

Changes

Cohort / File(s) Summary
Generator core (Go)
map-generator/main.go, map-generator/map_generator.go, map-generator/go.mod
New Go module and generator implementation. Concurrency to process maps, PNG decoding, terrain processing, small-area removal, shoreline/ocean detection, BFS distances, mini-map/thumbnail creation (WebP), and combined binary packing.
Project scripts & docs
package.json, map-generator/README.md, map-generator/LICENSE
Adds gen-maps npm script, README with usage and workflow, and AGPLv3 license.
New map assets
map-generator/assets/maps/*/info.json (africa, asia, australia, baikal, betweentwoseas, blacksea, britannia, deglaciatedantarctica, eastasia, europe, europeclassic, falklandislands, faroeislands, gatewaytotheatlantic, giantworldmap, halkidiki, iceland, italia, mars, mena, northamerica, oceania, pangaea, pluto, southamerica, straitofgibraltar, world)
Adds static map metadata (name, nations with coordinates/strength/flag). For Pluto, removes top-level map/mini_map fields and reorders nation fields.
New test map assets
map-generator/assets/test_maps/*/info.json (big_plains, half_land_half_ocean, ocean_and_land, plains)
Adds minimal test map metadata (name only).
Resource manifests edited
resources/maps/betweentwoseas/manifest.json, resources/maps/blacksea/manifest.json
Removes Circassia entries from both manifests.
Giant world map overhaul
resources/maps/giantworldmap/manifest.json
Replaces the nations roster with new entities, coordinates (floats), flags, and strengths; structure unchanged.
Removed resource manifests
resources/maps/marsrevised/manifest.json, resources/maps/yenisei/manifest.json
Deletes these map manifests.
Oceania manifest tweak
resources/maps/oceania/manifest.json
Adds a second Papua New Guinea entry (duplicate) at [686, 407].
Test manifests updated
tests/testdata/maps/.../manifest.json (big_plains, half_land_half_ocean, ocean_and_land, plains, plus tests/testdata/maps/manifest.json)
Removes empty nations arrays; updates land-tile counts; adds a new consolidated test manifest for Ocean and Land.

Sequence Diagram(s)

sequenceDiagram
  participant CLI as CLI (go run .)
  participant Main as main.go
  participant Loader as loadTerrainMaps
  participant Worker as processMap
  participant Gen as GenerateMap
  participant FS as Filesystem

  CLI->>Main: Start
  Main->>Loader: loadTerrainMaps(maps)
  loop for each map (goroutines)
    Loader->>Worker: processMap(name, isTest)
    Worker->>FS: Read assets/.../image.png, info.json
    Worker->>Gen: GenerateMap(args)
    Gen-->>Worker: MapResult (map, mini, thumbnail, counts, sizes)
    Worker->>FS: Write map.bin, mini_map.bin, thumbnail.webp
    Worker->>FS: Write manifest.json (with map/mini_map metadata)
  end
  Loader-->>Main: Done or error
  Main-->>CLI: Print success or fatal error
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested labels

Feature - Map

Suggested reviewers

  • scottanderson

Poem

New maps awake where pixels flow,
Go weaves the shores with wind and snow.
Thumbs in WebP, bins aligned,
Nations placed, their flags assigned.
From tests to worlds, the tiles now sing —
A cartographer’s quiet spring.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@CLAassistant
Copy link

CLAassistant commented Sep 4, 2025

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
15 out of 20 committers have signed the CLA.

✅ Aotumuri
✅ pierrebrtr
✅ djmrFunnyMan
✅ DevelopingTom
✅ TylerHanavan
✅ Kipstz
✅ TLS15
✅ evanpelle
✅ camclark
✅ woodydrn
✅ TheGiraffe3
✅ abdallahbahrawi1
✅ Killersoren
✅ fantom845
✅ ElMelchizedek
❌ dependabot[bot]
❌ scottanderson
❌ Baguette8ot
❌ aaa4xu
❌ VariableVince
You have signed the CLA already but the status is still pending? Let us recheck it.

@evanpelle evanpelle changed the base branch from main to main-old September 4, 2025 21:52
@TheGiraffe3
Copy link
Member

#2006

@TheGiraffe3 TheGiraffe3 closed this Sep 7, 2025
@github-project-automation github-project-automation bot moved this from Triage to Complete in OpenFront Release Management Sep 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Complete
Development

Successfully merging this pull request may close these issues.

3 participants