* 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>
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:
- Change the province name in its own row (columns 2 and 5)
- 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.Namegenerically) - The
centroids.jsonname 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.Namefrom 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/...