Пример #1
0
        private static MovableBridgeAIData StripCustomAI(PrefabInfo prefab)
        {
            if (prefab is BuildingInfo buildingInfo && buildingInfo.m_buildingAI is MovableBridgeAI customAI)
            {
                if (prefab.editorCategory != "MovableBridge")
                {
                    throw new Exception("Missing 'MovableBridge' editorCategory!");
                }

                PlayerBuildingAI vanillaAI = buildingInfo.gameObject.AddComponent <PlayerBuildingAI>();
                vanillaAI.CopyFrom(customAI);

                var data = new MovableBridgeAIData();
                data.CopyFrom(customAI);

                UnityEngine.Object.DestroyImmediate(customAI);

                buildingInfo.m_buildingAI = vanillaAI;
                vanillaAI.m_info          = buildingInfo;

                UnityEngine.Debug.Log("Stripped " + data.ToString());

                return(data);
            }