public DropItemDescriptorEditor(DropItemDescriptor desc) { this.DropType = Base.StringToGOType(desc.DropType); this.DropWeight = desc.DropWeight; this.MaxNumOfDrop = desc.MaxNumOfDrop; this.TimeForDropStart = desc.TimeForDropStart; }
/**********************************************************************************/ // SaveGameData // сохраняем данные в файл, преобразуя к текстовому виду // /**********************************************************************************/ private void SaveGameData(string useFilePath = "") { string filePath = ""; if (useFilePath == "") { filePath = EditorUtility.SaveFilePanel("Save company data file", Application.streamingAssetsPath, "", "json"); } else { filePath = useFilePath; } if (!string.IsNullOrEmpty(filePath)) { CompanyDescriptor companyDescriptorToWrite = new CompanyDescriptor(); companyDescriptorToWrite.missions = new MissionDescriptor[CompanyData.missions.Length]; // разбираем миссию за миссией for (int missInd = 0; missInd < CompanyData.missions.Length; missInd++) { // создаём MissionDescriptorEditor и заполняем его данными из MissionDescriptor MissionDescriptor missionToWrite = new MissionDescriptor(); MissionDescriptorEditor mission = CompanyData.missions[missInd]; companyDescriptorToWrite.missions[missInd] = missionToWrite; missionToWrite.MapXSize = mission.MapXSize; missionToWrite.MapYSize = mission.MapYSize; missionToWrite.MissionDifficulties = mission.MissionDifficulties; missionToWrite.RequiredStoryLineProgress = mission.RequiredStoryLineProgress; // конвертируем здание missionToWrite.Buildings = new AvailableBuilding[mission.Buildings.Length]; for (int buildInd = 0; buildInd < mission.Buildings.Length; buildInd++) { AvailableBuilding buildingToWrite = new AvailableBuilding(); missionToWrite.Buildings[buildInd] = buildingToWrite; buildingToWrite.BuildingType = mission.Buildings[buildInd].BuildingType.ToString(); buildingToWrite.Weight = mission.Buildings[buildInd].Weight; } // конвертируем список боссов missionToWrite.MissionBosses = new string[mission.MissionBosses.Length]; for (int bossInd = 0; bossInd < mission.MissionBosses.Length; bossInd++) { missionToWrite.MissionBosses[bossInd] = mission.MissionBosses[bossInd].ToString(); } // конвертируем настройки дропа missionToWrite.DropDescriptor = new DropDescriptor(); missionToWrite.DropDescriptor.MaxNumOfDroppedItem = mission.DropDescriptor.MaxNumOfDroppedItem; missionToWrite.DropDescriptor.DropItems = new DropItemDescriptor[mission.DropDescriptor.DropItems.Length]; for (int dropInd = 0; dropInd < mission.DropDescriptor.DropItems.Length; dropInd++) { DropItemDescriptor dropToWrite = new DropItemDescriptor(); missionToWrite.DropDescriptor.DropItems[dropInd] = dropToWrite; dropToWrite.DropType = mission.DropDescriptor.DropItems[dropInd].DropType.ToString(); dropToWrite.DropWeight = mission.DropDescriptor.DropItems[dropInd].DropWeight; } } string dataAsJson = JsonUtility.ToJson(companyDescriptorToWrite); File.WriteAllText(filePath, dataAsJson); } }