public static TankSetting Load(string tankDirectory) { TankSetting tankSetting = ScriptableObject.CreateInstance <TankSetting>(); List <AbstractAIBrain> abstractAiBrains = new List <AbstractAIBrain>(); foreach (string file in FilesInDirectory(tankDirectory)) { switch (Path.GetExtension(file)) { case ".set": { using (StreamReader sr = new StreamReader(file)) { tankSetting = (TankSetting)FullSerializerApi.Deserialize(typeof(TankSetting), sr.ReadToEnd()); } break; } case ".bra": { using (StreamReader sr = new StreamReader(file)) { AbstractAIBrain abstractAiBrain = (AbstractAIBrain)FullSerializerApi.Deserialize(typeof(AbstractAIBrain), sr.ReadToEnd()); abstractAiBrains.Add(abstractAiBrain); } break; } } } tankSetting.Brains = abstractAiBrains; return(tankSetting); }
public override void OnInspectorGUI() { DrawDefaultInspector(); TankSetting tankSetting = (TankSetting)target; if (GUILayout.Button("Save")) { tankSetting.Save(); } }
public void Init(TankSetting setting, Team team) { if (!setting) { throw new Exception("Each tank need a tank setting to be set"); } Team = team; TurretMeshRenderer.material.color = setting.TurretColor; HullMeshRenderer.material.color = setting.HullColor; RightTrackMeshRender.material.color = setting.TracksColor; LeftTrackMeshRender.material.color = setting.TracksColor; _tankAiComponent.UtilityAiBrains = setting.Brains; FactionDisk.material.color = team.Color; }
public static async Task Save(TankSetting tankSetting) { string tankDirectory = _directoryPath + "/" + tankSetting.PlayerName + "_" + tankSetting.TankName; if (Directory.Exists(tankDirectory)) { Directory.Delete(tankDirectory, true); } Directory.CreateDirectory(tankDirectory); using (StreamWriter outputFile = new StreamWriter(Path.Combine(tankDirectory, tankSetting.name + ".set"))) { await outputFile.WriteAsync(FullSerializerApi.Serialize(typeof(TankSetting), tankSetting)); } foreach (AbstractAIBrain abstractAiBrain in tankSetting.Brains) { using (StreamWriter outputFile = new StreamWriter(Path.Combine(tankDirectory, abstractAiBrain.name + ".bra"))) { await outputFile.WriteAsync(FullSerializerApi.Serialize(typeof(AbstractAIBrain), abstractAiBrain)); } } Debug.Log("Tank settings saved in " + tankDirectory); }