diff --git a/docs/adr/0012-authored-heightfield-dive-sites.md b/docs/adr/0012-authored-heightfield-dive-sites.md index d554564..d8952b8 100644 --- a/docs/adr/0012-authored-heightfield-dive-sites.md +++ b/docs/adr/0012-authored-heightfield-dive-sites.md @@ -30,7 +30,9 @@ dépôt et sa production. (plateau, crête, piton, sillon, rupture de pente, rides, rugosité déterministe par graine). La recette est le document d'auteur versionné ; le résultat est écrit en `.res` binaire sous `content/sites/`. Le jeu ne - génère jamais de terrain à l'exécution. + génère jamais de terrain à l'exécution. `tools/` dépend du domaine + (`game/domain/`) et de rien d'autre ; aucun code sous `game/` ou `content/` + ne dépend de `tools/`, ce que la barrière d'architecture vérifie. 4. Un PNG 16 bits n'est pas utilisé pour les hauteurs : le chargeur d'images de Godot ramène les PNG 16 bits en 8 bits, soit des marches de 0,27 m sur 68 m de dénivelé. Un PNG 8 bits de prévisualisation est produit pour la diff --git a/scripts/check_architecture.sh b/scripts/check_architecture.sh index 483785f..47689ad 100755 --- a/scripts/check_architecture.sh +++ b/scripts/check_architecture.sh @@ -38,6 +38,9 @@ source_directories="src tests" if [ -d game ]; then source_directories="$source_directories game" fi +if [ -d tools ]; then + source_directories="$source_directories tools" +fi duplicate_classes="$( rg --no-filename -o \ @@ -57,6 +60,11 @@ if [ -d game ]; then test_imports="$(rg -n 'res://tests/' game --glob '*.gd' || true)" fail_with_matches "production imports test code" "$test_imports" + tool_imports="$( + rg -n 'res://tools/' game content --glob '*.gd' --glob '*.tscn' --glob '*.tres' 2>/dev/null || true + )" + fail_with_matches "production imports authoring tools" "$tool_imports" + poc_references="$(rg -n 'poc_[ab]|POC_[AB]' game --glob '*.gd' --glob '*.tscn' || true)" fail_with_matches "production contains a prototype dependency" "$poc_references" diff --git a/tools/site_terrain_baker.gd b/tools/site_terrain_baker.gd index 4de46a9..c4ae378 100644 --- a/tools/site_terrain_baker.gd +++ b/tools/site_terrain_baker.gd @@ -1,4 +1,3 @@ -class_name SiteTerrainBaker extends RefCounted const SonarMaterial = preload("res://game/domain/sonar/sonar_material.gd") diff --git a/tools/sites/vehicle_test_terrain_recipe.gd b/tools/sites/vehicle_test_terrain_recipe.gd index a13a716..7626305 100644 --- a/tools/sites/vehicle_test_terrain_recipe.gd +++ b/tools/sites/vehicle_test_terrain_recipe.gd @@ -1,4 +1,3 @@ -class_name VehicleTestTerrainRecipe extends RefCounted const SiteTerrainBaker = preload("res://tools/site_terrain_baker.gd") diff --git a/tools/sites/zone1_vigilant_recipe.gd b/tools/sites/zone1_vigilant_recipe.gd index c81e955..09dc484 100644 --- a/tools/sites/zone1_vigilant_recipe.gd +++ b/tools/sites/zone1_vigilant_recipe.gd @@ -1,4 +1,3 @@ -class_name Zone1VigilantRecipe extends RefCounted const SiteTerrainBaker = preload("res://tools/site_terrain_baker.gd")