MCP inspect_map_region: passableForLandUnits is true for water and impassable cells
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
Línea de trabajo
Empieza en src/MapEditorMCP/Infos/CellInfo.cs, en el cálculo de passableForLandUnits, y compáralo con los lugares que llaman a la sobrecarga int de Helpers.IsLandTypeImpassable. Actualiza la transitabilidad indicada para que use el tipo de terreno TMP sin procesar y, después, ejecuta las pruebas pertinentes o compila para verificar que el agua y las celdas intransitables no se indiquen como transitables para unidades terrestres.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version: 1.9.6 (d4e297f, also current master)
What happens
inspect_map_region (and other MCP tools that return CellInfo) report
passableForLandUnits: true for cells that are water or impassable.
Observed on a TEMPERATE river map: cells with landType: "Tunnel" (raw TMP
terrain type 9, river water) come back with passableForLandUnits: true and
passableForNavalUnits: true; cells with landType: "15" (impassable) also
come back land-passable.
Why
src/MapEditorMCP/Infos/CellInfo.cs (lines 72-76) casts the TMP terrain type
to the LandType enum and calls Helpers.IsLandTypeImpassable(LandType, true).
That overload only knows LandType.Rock (7) and LandType.Water (10):
public static bool IsLandTypeImpassable(LandType landType, bool considerLandUnitsOnly)
=> landType == LandType.Rock || (considerLandUnitsOnly && landType == LandType.Water);
Every other caller (MapIssueChecker, the overlay mutations,
TerrainGenerationMutation, MapView) uses the int overload, which treats
0x1-0x4, 0x9 and 0xA as water and 0x7, 0x8 and 0xF as impassable.
passableForNavalUnits is correct, because
IsLandTypeImpassableForNavalUnits(LandType) forwards to the int overload.
Suggested fix
!Helpers.IsLandTypeImpassable(subTileInfo.TmpImage.TerrainType, true)
Related, smaller: landType is ((LandType)TerrainType).ToString(), so
raw values 11-15 are printed as numbers and raw 9 (water in YR TMPs) is
printed as "Tunnel". MCP clients that read the name get the wrong idea;
exposing the raw value as well (e.g. landTypeId) would help.
Found while building an MCP client for the editor; we now classify by the raw
code on our side.
- Lenguaje dominante
- C#
- Estrellas
- 148
- Forks
- 49
- Merge medio
- 4 d 9 h
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CnCNet/WorldAlteringEditor
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
CnCNet/WorldAlteringEditor#276 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 43/100
CnCNet/WorldAlteringEditor#333 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
CnCNet/WorldAlteringEditor#326 ·
-
HouseType Parameter for Trigger Actions 3, 37, 38, & 74 do not Match Final Alert 2 for RA2 MissionsAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
CnCNet/WorldAlteringEditor#318 · 4 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
CnCNet/WorldAlteringEditor#317 ·
Todos los issues de CnCNet/WorldAlteringEditor
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
[Bug] Dashboard renders attachment links that resolve to 404 when the FILES binding is absentAbiertobug 優先: 低
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
.NET area: storage bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Larson-Logan/medal-sync#61 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día