Files
eagle0/docs/RENAMING_A_PROVINCE.md
T
613cf529bc Rename Fluria to East Faluria and Faluria to West Faluria (#6201)
* Add documentation for renaming a province

Documents the files that need to be modified when renaming a province
and explains how province names flow from the server to the client.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Rename Fluria to East Faluria and Faluria to West Faluria

Updated all province name references:
- province_map.tsv: Both province rows and all neighbor references
- MapDescription.scala: LLM prompt geography description
- centroids.json: Client map rendering metadata
- RuntimeValidatorTest.scala: Test strings
- Renamed hex map files: Fluria.e0mj -> East_Faluria.e0mj,
  Faluria.e0mj -> West_Faluria.e0mj

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-22 11:23:54 -08:00

3.0 KiB

Renaming a Province

This document explains the steps required to rename a province in Eagle0.

Files to Modify

1. Province Map TSV (Server Source of Truth)

File: src/main/resources/net/eagle0/eagle/province_map.tsv

This is the primary source of province data. Each row contains:

  • Province ID
  • Province name
  • Neighbor IDs
  • Neighbor directions
  • Province name (repeated)
  • Neighbor names (dot-separated)
  • Starting food

You need to:

  1. Change the province name in its own row (columns 2 and 5)
  2. Update the neighbor name references in all neighboring provinces (column 6)

Example: To rename "Fluria" to "NewName", you would need to update:

  • Line 26: The Fluria row itself
  • Lines 5, 10, 18, 24, 27, 38, 41: All provinces that list Fluria as a neighbor

2. LLM Map Description

File: src/main/scala/net/eagle0/eagle/library/actions/llm_prompt_generators/MapDescription.scala

This file contains a hardcoded geographic description of the map used in LLM prompts for generating narrative text. Update any references to the old province name.

3. Client Centroids JSON

File: src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Eagle/centroids.json

This JSON file contains province metadata used for map rendering (centroid positions, areas, orientations). Each entry has a name field that should be updated to match.

Note: The actual province name displayed to players comes from the server via the ProvinceView proto, not from this file. However, this file should be kept in sync for consistency and because it may be used for map label positioning.

4. Test Files

File: src/test/scala/net/eagle0/eagle/library/util/validations/RuntimeValidatorTest.scala

Update any test strings that reference the old province name.

How Province Names Flow to the Client

Province names are sent from the Eagle server to the Unity client via the ProvinceView protobuf message:

message ProvinceView {
    int32 id = 1;
    string name = 6;  // <-- Province name sent from server
    ...
}

The server reads province names from province_map.tsv at startup. The client receives names through the proto and displays them via province.Name in C# code. This means:

  • Changing the TSV automatically updates what clients see
  • No C# code changes are needed (the code uses province.Name generically)
  • The centroids.json name field is for map rendering/positioning, not display

Files That Do NOT Need Changes

  • Hero backstory TSV files (heroes.tsv, generated_heroes.tsv) - These don't contain province name references
  • C# client code - Uses province.Name from the server proto, not hardcoded names
  • Proto definitions - No province names are hardcoded in protos

Checklist

  • Update province_map.tsv - province's own row
  • Update province_map.tsv - all neighbor references
  • Update MapDescription.scala
  • Update centroids.json
  • Update any test files with province name references
  • Build and run tests: bazel test //src/test/scala/...