/* For use in events/by modders, not part of standard gameplay Example object spawner json use: { "Objects": [ { "name": "StaticFlagPole", "pos": [ 3000, 57, 3000 ], "ypr": [ 0.0, 0.0, 0.0 ], "scale": 1, "customString": "Flag_Bohemia" } ] } */ class StaticFlagPole extends TerritoryFlag { override void OnPartDismantledServer( notnull Man player, string part_name, int action_id ) { } override void OnPartDestroyedServer( Man player, string part_name, int action_id, bool destroyed_by_connected_part = false ) { } override void OnSpawnByObjectSpawner(ITEM_SpawnerObject item) { FullyBuild(); if (item.customString != string.Empty) { EntityAI flag = GetInventory().CreateInInventory(item.customString); if (flag) { AnimateFlagEx(0); AddRefresherTime01(1); } } } // version of FullyBuild which does not require a player override void FullyBuild() { array parts = GetConstruction().GetConstructionParts().GetValueArray(); foreach (ConstructionPart part : parts) { ConstructionPart construtionPart = GetConstruction().GetConstructionPart(part.GetPartName()); if (construtionPart.IsBase()) { SetBaseState(true); CreateConstructionKit(); } RegisterPartForSync(construtionPart.GetId()); RegisterActionForSync(construtionPart.GetId(), AT_BUILD_PART); SynchronizeBaseState(); SetPartFromSyncData(construtionPart); // server part of sync, client will be synced from SetPartsFromSyncData UpdateNavmesh(); UpdateVisuals(); GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(ResetActionSyncData, 100, false, this); } GetConstruction().UpdateVisuals(); } }