Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();
            TankSetting tankSetting = (TankSetting)target;

            if (GUILayout.Button("Save"))
            {
                tankSetting.Save();
            }
        }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
        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);
        }