Fonctions Exposees
Reference des fonctions Blueprint utilisables par les developpeurs Archway. Les fonctions sont groupees par theme d'utilisation — de la creation des territoires au rendu visuel, en passant par les interactions joueur et la gestion UI.
Note : Cette page couvre l'API exposee au Blueprint. L'implementation C++ interne n'est pas documentee ici. Pour la liste complete des 110+ fonctions, voir Interface C++.
Gestion des Territoires
Creation et initialisation
BatchCreateTerritories
Signature : BatchCreateTerritories(Territories, bClearExisting, bDrawLUTs, bBakeLinearity, SourceResX, SourceResY, bPreWarmHighPrecision)
Description : Cree plusieurs territoires en une seule operation a partir d'un tableau de FTerritoryData. Efface optionnellement les territoires existants, bake des LUTs et une linearity map pour le placement des spline meshes le long des borders.
Exemple Blueprint :
// Construire un FTerritoryData pour chaque province
// Appeler BatchCreateTerritories avec le tableau de donnees
// Les TerritoryActors sont spawns et les borders rendues automatiquement
InitializeWorldDatabase
Signature : InitializeWorldDatabase(WorldData)
Description : Charge la donnee complete des territoires du monde depuis un mapping de landmasses par province. Appele une fois au setup initial du niveau.
RegisterTerritoryInstance
Signature : RegisterTerritoryInstance(MapMode, TerritoryID, InstanceOwnerID)
Description : Enregistre une instance de territoire sous un ID proprietaire pour un mode de carte specifie. Permet de gerer plusieurs representations visuelles du meme territoire (politique, relief, etc.).
Transfert de territoire
TransferProvince
Signature : TransferProvince(ProvinceID, OldOwnerID, NewOwnerID, MapMode)
Description : Transfere la propriete d'une seule province d'un territoire a un autre. La frontiere est recalculee automatiquement.
TransferProvinces
Signature : TransferProvinces(ProvinceIDs, OldOwnerID, NewOwnerID, MapMode)
Description : Version batch — transfere la propriete de plusieurs provinces en une seule operation. Plus efficace pour les changements massifs de frontieres.
EnqueueProvinceTransfer
Signature : EnqueueProvinceTransfer(TargetTerritoryID, TargetMapModeByte, NewOwnerID, DestMapModeByte, FrontlineLayerID, SurroundingLayerID, StateRT, MaterialParameters, bSuccess, OutOperationID, OutMessage)
Description : Met en file d'attente une operation de transfert complexe avec gestion de l'etat, triggers de materiaux et suivi. Utilise pour les transferts multi-etape qui necessitent un traitement asynchrone.
Exemple Blueprint :
// 1. Appeler EnqueueProvinceTransfer avec les params du transfert
// 2. Verifier bSuccess
// 3. Appeler ExecutePendingTransfer(OperationID) pour appliquer
// 4. Ou CancelPendingTransfer(OperationID) pour annuler
ExecutePendingTransfer
Signature : ExecutePendingTransfer(OperationID, bSuccess, OutMessage)
Description : Execute une operation de transfert precedemment mise en file d'attente.
CancelPendingTransfer
Signature : CancelPendingTransfer(OperationID, bSuccess, OutMessage)
Description : Annule une operation de transfert en attente.
GetPendingTransferOperationIDs
Signature : GetPendingTransferOperationIDs() -> TArray<FName>
Description : Retourne les IDs de toutes les operations de transfert en attente.
IsTransferPending
Signature : IsTransferPending(OperationID) -> bool
Description : Verifie si une operation de transfert specifiee est toujours en attente.
Requêtes sur les territoires
GetTerritoryIDForProvince
Signature : GetTerritoryIDForProvince(ProvinceID, MapMode) -> FName
Description : Retourne l'ID du territoire qui possede une province donnee dans un mode de carte.
GetBorderingTerritories
Signature : GetBorderingTerritories(TerritoryID, MapMode) -> TArray<FName>
Description : Retourne tous les territoires qui partagent une frontiere avec le territoire donne. Utile pour calculer les voisins diplomatiques.
GetTerritoryLandmassCount
Signature : GetTerritoryLandmassCount(TerritoryID, MapMode, bDebugPoints) -> int32
Description : Retourne le nombre de landmasses (boucles de frontiere) d'un territoire. Un territoire avec des iles aura plusieurs landmasses.
GetProvincesForTerritory
Signature : GetProvincesForTerritory(TerritoryID, MapMode) -> TArray<FName>
Description : Retourne les IDs de toutes les provinces appartenant a un territoire dans un mode de carte.
GetInstanceIDsByMapMode
Signature : GetInstanceIDsByMapMode(MapMode) -> TArray<FName>
Description : Retourne les IDs de toutes les instances de territoire pour un mode de carte donne.
GetTerritoryPathLength
Signature : GetTerritoryPathLength(TerritoryID, MapMode) -> float
Description : Retourne la longueur totale du parcours de frontiere d'un territoire.
GetAllTerritoriesData
Signature : GetAllTerritoriesData() -> TArray<FTerritoryData>
Description : Retourne la donnee complete de tous les territoires. Utile pour le save/load ou les operations de synchronisation.
GetActiveSegmentsBetweenTerritories
Signature : GetActiveSegmentsBetweenTerritories(TerritoryA, TerritoryB, MapMode) -> TArray<FName>
Description : Retourne les segments de frontiere actifs partages entre deux territoires.
GetMacroSegmentIDBetweenTerritories
Signature : GetMacroSegmentIDBetweenTerritories(MapMode, TerritoryA, TerritoryB) -> FName
Description : Retourne l'ID du macro-segment partage entre deux territoires.
Nettoyage
ClearDynamicTerritories
Signature : ClearDynamicTerritories()
Description : Supprime tous les territoires crees dynamiquement. Utile avant de recharger un nouvel ensemble de donnees.
Rendu Visuel
Controle du rendu des borders
SetTerritoryColor
Signature : SetTerritoryColor(TerritoryID, NewColor, MapMode)
Description : Definit la couleur d'affichage d'un territoire dans un mode de carte specifie. Permet de changer dynamiquement les couleurs en reponse a des evenements de jeu.
Exemple Blueprint :
// Au changement de proprietaire :
SetTerritoryColor(TerritoryID, FLinearColor(1, 0, 0, 1), 0)
// Le territoire s'affiche en rouge dans le mode de carte 0
RequestBatchUpdate_DynamicOnly
Signature : RequestBatchUpdate_DynamicOnly(MapMode)
Description : Demande une mise a jour de rendu pour les seuls territoires modifies (dynamiques). Plus performant qu'un refresh complet.
RequestBatchUpdate_DirtyOnly
Signature : RequestBatchUpdate_DirtyOnly(MapMode)
Description : Demande une mise a jour de rendu pour les territoires marques comme "sales" (besoin d'un redraw).
RequestAllBatchUpdate_DynamicOnly
Signature : RequestAllBatchUpdate_DynamicOnly()
Description : Demande une mise a jour de rendu complete pour tous les territoires dynamiques.
Controle global du rendu
SetGlobalMapMode
Signature : SetGlobalMapMode(MapModeID)
Description : Change le mode de carte global pour toutes les instances de territoire. Permet de basculer entre differentes vues (politique, population, ressources, etc.).
SetGlobalHighlight
Signature : SetGlobalHighlight(MapModeID, TerritoryID)
Description : Met en surbrillance un territoire specifie dans le mode de carte donne.
ClearGlobalHighlight
Signature : ClearGlobalHighlight()
Description : Supprime la surbrillance du territoire actuellement surligne.
SetGlobalSelection
Signature : SetGlobalSelection(MapModeID, TerritoryID)
Description : Selectionne un territoire dans le mode de carte donne. La selection persiste jusqu'a ce qu'elle soit effacee.
ClearGlobalSelection
Signature : ClearGlobalSelection()
Description : Supprime la selection de territoire actuelle.
Gestion des mises a jour visuelles
UpdateFullVisuals
Signature : UpdateFullVisuals()
Description : Met a jour les visuels de toutes les instances de territoire.
UpdateOwnerVisuals
Signature : UpdateOwnerVisuals(OwnerID)
Description : Met a jour les visuels (couleur, mode de carte) pour un proprietaire specifie.
UpdateOwnersVisuals
Signature : UpdateOwnersVisuals(OwnerIDs)
Description : Version batch — met a jour les visuels pour plusieurs proprietaires.
SyncVisualsToActors
Signature : SyncVisualsToActors(TerritoryIDsToSync, MapMode, MaxToProcess, bShouldBroadcast) -> TArray<FName>
Description : Synchronise l'etat visuel des territoires avec les TerritoryActor correspondants dans le monde.
SyncAllVisuals
Signature : SyncAllVisuals()
Description : Synchronise les visuels de tous les territoires avec leurs acteurs correspondants.
Instance Renderer
RegisterSource
Signature : RegisterSource(SourceComponent)
Description : Enregistre un InstanceSourceComponent comme source de donnees pour le renderer.
UnregisterSource
Signature : UnregisterSource(SourceComponent)
Description : Desenregistre une source precedemment enregistree.
RequestFullUpdate
Signature : RequestFullUpdate()
Description : Declenche une reconstruction complete de toutes les instances HISM.
RequestOwnerUpdate
Signature : RequestOwnerUpdate(OwnerID)
Description : Declenche une reconstruction pour un proprietaire de territoire specifie.
GetLayerConfig
Signature : GetLayerConfig() -> UInstanceLayerConfig*
Description : Retourne le DataAsset de configuration des layers.
GetGlobalParameters
Signature : GetGlobalParameters() -> UMaterialParameterCollection*
Description : Retourne la collection globale de parametres materiaux.
Input / Interaction
Detection d'interaction
DrawInteractionOverlay
Signature : DrawInteractionOverlay(OverlayRT, TerritoriesToHighlight, MapMode, OverrideConfig, bUseDefaultConfig)
Description : Dessine un overlay de surbrillance d'interaction sur un render target pour des territoires specifies. Utilise pour le feedback visuel lors du survol ou du clic sur un territoire.
Exemple Blueprint :
// Sur MouseOver dans le niveau :
DrawInteractionOverlay(OverlayRT, [HoveredTerritoryID], MapMode, DefaultConfig, true)
// Le territoire survole est mis en evidence
Labels
PushTerritoryLabelPaths
Signature : PushTerritoryLabelPaths(TerritoryID, MapMode, Paths)
Description : Pousse les chemins spline de labels pour un territoire vers le systeme de labels.
GetTerritoryLabelPaths
Signature : GetTerritoryLabelPaths(TerritoryID, MapMode, OutPaths) -> bool
Description : Recupere les chemins spline de labels pour un territoire.
SetSplinePaths
Signature : SetSplinePaths(NewSplinePaths)
Description : Definit les chemins spline le long desquels le texte des labels sera dispose.
SetText
Signature : SetText(NewText)
Description : Definit la chaine de texte a afficher pour ce label.
GenerateGuidedSpline
Signature : GenerateGuidedSpline(LandmassGroup, RidgePathWorld, Params, HorizontalOrder, VerticalOrder, bDebugMode) -> TArray<FVector>
Description : Genere un chemin spline guide a travers un groupe de landmasses en utilisant les donnees de chemin de crete. Utilise pour le placement automatique des labels le long des borders.
UI / Loading
Notifications et processus longs
RegisterProcess
Signature : RegisterProcess(ProcessID, DisplayName, Category)
Description : Enregistre un nouveau processus longue duree dans le systeme de notification. Appele avant de lancer une operation asynchrone.
Exemple Blueprint :
RegisterProcess("LoadingWorld", FText("Loading World Data"), Processing)
// Le processus apparait dans l'UI de notification
UpdateProcessProgress
Signature : UpdateProcessProgress(ProcessID, Progress01, CurrentStatus)
Description : Met a jour la progression (0-1) et le texte de statut d'un processus enregistre.
FinishProcess
Signature : FinishProcess(ProcessID, bSuccess)
Description : Marque un processus enregistre comme termine (succes ou echec).
PostNotification
Signature : PostNotification(Message, Type, Category)
Description : Poste un message de notification autonome dans l'UI.
ReportError
Signature : ReportError(ProcessID, ErrorMessage, bLogToOutput)
Description : Signale une erreur pour un processus, avec option de log dans la sortie.
GetActiveProcessData
Signature : GetActiveProcessData(ProcessID, OutData) -> bool
Description : Recupere les donnees actuelles d'un processus actif par son ID.
Chargement asynchrone d'assets
LoadAssetsKeepAlive
Signature : LoadAssetsKeepAlive(AssetsToLoad, ProcessName)
Description : Charge de maniere asynchrone des soft object references, les maintenant en memoire jusqu'a dechargement explicite.
Exemple Blueprint :
// Charger les assets d'un niveau :
LoadAssetsKeepAlive([SoftTexture1, SoftMesh2, ...], "LevelLoad")
// Les assets sont charges en background
BatchResolve
Signature : BatchResolve(SoftList) -> TArray<UObject*>
Description : Resout de maniere synchrone un tableau de soft object references en hard references.
UnloadAllAssets
Signature : UnloadAllAssets()
Description : Libere tous les assets charges via LoadAssetsKeepAlive.
Gestion des etats diplomatiques
UpdateSegmentState
Signature : UpdateSegmentState(SegmentID, NewState)
Description : Definit l'etat diplomatique pour un segment de frontiere individuel.
UpdateSegmentStatesFromList
Signature : UpdateSegmentStatesFromList(SegmentIDs, NewState)
Description : Met a jour en batch l'etat de plusieurs segments vers le meme nouvel etat.
GetStateForSegment
Signature : GetStateForSegment(SegmentID) -> FName
Description : Retourne l'etat diplomatique actuel d'un segment.
RemoveStateForSegment
Signature : RemoveStateForSegment(SegmentID)
Description : Supprime l'etat diplomatique d'un segment, retournant a l'etat par defaut.
GetDefaultStateName
Signature : GetDefaultStateName() -> FName
Description : Retourne le nom de l'etat diplomatique par defaut.
Theme visuel
GetRuleForState
Signature : GetRuleForState(StateName) -> FVisualRule
Description : Retourne la configuration de regle visuelle pour un nom d'etat diplomatique donne.
GetLayerForState
Signature : GetLayerForState(StateName) -> FName
Description : Retourne l'ID du layer de rendu pour un nom d'etat diplomatique donne.
Save/Load
GetTerritorySaveData
Signature : GetTerritorySaveData(TerritoryID, MapMode) -> FTerritoryData
Description : Retourne les donnees serialisables pour sauvegarder un territoire.
SaveGlobalMaterialParameters
Signature : SaveGlobalMaterialParameters(Collection, TargetSaveGame, ScalarNames, VectorNames)
Description : Sauvegarde les valeurs de la collection de parametres materiaux dans le save game pour la persistence entre sessions.
GetSavedScalarParameterNames
Signature : GetSavedScalarParameterNames() -> TArray<FName>
Description : Retourne la liste des parametres materiaux scalaires sauvegardes.
GetSavedVectorParameterNames
Signature : GetSavedVectorParameterNames() -> TArray<FName>
Description : Retourne la liste des parametres materiaux vectoriels sauvegardes.