// Constructor public JobDef(string csvLine, Dictionary <string, List <int> > column) { guid = Guid.NewGuid(); inputResources = new ResourceQuantityQualityList(); outputName = new List <string>(); defaultOutputQuantity = new List <int>(); string[] values = csvLine.Split(','); // Job Name if (values[column["Job Name"][0]].Length > 0) { name = values[column["Job Name"][0]]; } // Description if (values[column["Description"][0]].Length > 0) { description = values[column["Description"][0]]; } //Industry,Skill if (values[column["Industry"][0]].Length > 0) { industry = values[column["Industry"][0]]; } if (values[column["Skill"][0]].Length > 0) { skill = values[column["Skill"][0]]; } // Tier if (values[column["Tier"][0]].Length > 0) { if (!Int32.TryParse(values[column["Tier"][0]], out tier)) { Debug.Log("Cannot Parse Job Tier"); } } // Tiles Required if (values[column["Tiles Required"][0]].Length > 0) { tileRequired = values[column["Tiles Required"][0]]; } // Max Workers if (values[column["Work PMU"][0]].Length > 0) { if (!Single.TryParse(values[column["Work PMU"][0]], out defaultPMUs)) { Debug.Log("Cannot Parse Work PMU"); } } // Resources to Craft List <int> inputName = column["Input Name"]; List <int> inputType = column["Input Type"]; List <int> inputTier = column["Input Tier"]; List <int> inputQuant = column["Input Quantity"]; for (int i = 0; i < inputName.Count; i++) { // Check for NQQ if (values[inputName[i]].Length > 0) { string name = values[inputName[i]]; int quantity; if (!Int32.TryParse(values[inputQuant[i]], out quantity)) { Debug.Log("Cannot Parse Input Quantity: " + values[inputQuant[i]]); } ResourceNameQuantityQuality nqq = new ResourceNameQuantityQuality(name, QualityEnum.any, quantity); inputResources.rqqList.Add(nqq); // Error check if (values[inputType[i]].Length > 0) { Debug.LogWarning("Job Definition file should not have both Name and Type of a Job Input Resource"); } } // check for TQQ else if (values[inputType[i]].Length > 0) { string type = values[inputType[i]]; int quantity, minTier; if (!Int32.TryParse(values[inputQuant[i]], out quantity)) { Debug.Log("Cannot Parse Input Quantity: " + values[inputQuant[i]]); } if (!Int32.TryParse(values[inputTier[i]], out minTier)) { Debug.Log("Cannot Parse Input Tier: " + values[inputTier[i]]); } ResourceTypeQuantityQuality tqq = new ResourceTypeQuantityQuality(type, QualityEnum.any, quantity, minTier); inputResources.rqqList.Add(tqq); } } // Output Resources List <int> outputNameC = column["Output Name"]; List <int> outputQuantityC = column["Output Quantity"]; for (int i = 0; i < outputNameC.Count; i++) { // Output Name if (values[outputNameC[i]].Length > 0) // There is an output in this column { outputName.Add(values[column["Output Name"][0]]); int q = 0; if (!Int32.TryParse(values[outputQuantityC[i]], out q)) { Debug.Log("Cannot Parse Output Quantity"); } defaultOutputQuantity.Add(q); } } }
// Constructor public BuildingDef(List <string> csvLines, Dictionary <string, int> column) { resourcesToBuild = new ResourceQuantityQualityList(); industry = new List <string>(); skill = new List <string>(); jobsEnabled = new List <string>(); jobMaxTier = new Dictionary <string, int>(); foreach (string line in csvLines) { string[] values = line.Split(','); // Current keys into column //Debug.Log(line); // Name if (values[column["Name"]].Length > 0) { name = values[column["Name"]]; } // Category if (values[column["Category"]].Length > 0) { category = values[column["Category"]]; } // Parent Name if (values[column["Parent Name"]].Length > 0) { parentName = values[column["Parent Name"]]; } // Tier if (values[column["Tier"]].Length > 0) { if (!Int32.TryParse(values[column["Tier"]], out tier)) { Debug.Log("Cannot Parse Building Tier"); } } // Description if (values[column["Description"]].Length > 0) { description = values[column["Description"]]; } // Resource Type to Build if (values[column["Resource Type to Build"]].Length > 0) { int c, t; if (!Int32.TryParse(values[column["Resource Count"]], out c)) { Debug.Log("Cannot Parse Resource Count \"" + values[column["Resource Count"]] + "\""); } if (!Int32.TryParse(values[column["Min Resource Tier"]], out t)) { Debug.Log("Cannot Parse Min Resource Tier \"" + values[column["Min Resource Tier"]] + "\""); } ResourceTypeQuantityQuality tqq = new ResourceTypeQuantityQuality( values[column["Resource Type to Build"]], QualityEnum.any, c, t); resourcesToBuild.rqqList.Add(tqq); } // Max Workers if (values[column["Max Workers"]].Length > 0) { if (!Int32.TryParse(values[column["Max Workers"]], out maxWorkers)) { Debug.Log("Cannot Parse Max Workers"); } } // Max HP if (values[column["Max HP"]].Length > 0) { if (!Int32.TryParse(values[column["Max HP"]], out maxHp)) { Debug.Log("Cannot Parse Max HP"); } } // Housing if (values[column["Housing"]].Length > 0) { if (!Int32.TryParse(values[column["Housing"]], out housing)) { Debug.Log("Cannot Parse Housing"); } } // Housing if (values[column["Maintenance Cost"]].Length > 0) { if (!Int32.TryParse(values[column["Maintenance Cost"]], out maintenanceCost)) { Debug.Log("Cannot Parse Maintenance Cost"); } } // Housing if (values[column["Default Max Dist"]].Length > 0) { if (!Int32.TryParse(values[column["Default Max Dist"]], out defaultMaxDistToWorkTiles)) { Debug.Log("Cannot Parse Default Max Dist"); } } //Industries,Skills if (values[column["Industries"]].Length > 0) { industry.Add(values[column["Industries"]]); } if (values[column["Skills"]].Length > 0) { skill.Add(values[column["Skills"]]); } // PMUs to Build if (values[column["PMUs to Build"]].Length > 0) { if (!Single.TryParse(values[column["PMUs to Build"]], out defaultPMUs)) { Debug.Log("Cannot Parse PMUs to Build"); } } if (sprite == null) { Texture2D tex; if (values[column["Image"]].Length == 0) { tex = (Resources.Load("Textures/NeedIcon") as Texture2D); } else { tex = (Resources.Load(values[column["Image"]]) as Texture2D); } sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f), tex.width); } // Job Name, Job Max Tier if (values[column["Job Name"]].Length > 0) { jobsEnabled.Add(values[column["Job Name"]]); jobMaxTier[values[column["Job Name"]]] = Int32.Parse(values[column["Job Max Tier"]]); } } }