void EditImprovement(string name, Mesh mesh, Texture2D texture, bool replaceGroundTexture, int index) { int[] finalTiles = new int[iPossibleTiles.Count]; List <Feature> finalFeatures = new List <Feature>(); finalTiles = iPossibleTiles.ToArray(); //fill feature list with data from rule.possibleFeatures for (int i = 0; i < iPossibleFeatures.Count; i++) { finalFeatures.Add(iPossibleFeatures[i]); } //nullify duplicate tiles for (int i = 0; i < iPossibleTiles.Count; i++) { for (int z = 0; z < iPossibleTiles.Count; z++) { if (iPossibleTiles[i] == iPossibleTiles[z] && i != z) { iPossibleTiles.RemoveAt(z); } } } finalTiles = iPossibleTiles.ToArray(); //nullify duplicate features for (int i = 0; i < finalFeatures.Count; i++) { for (int z = 0; z < finalFeatures.Count; z++) { if (finalFeatures[i] == finalFeatures[z] && i != z) { finalFeatures.RemoveAt(z); } } } improvementManager.AddImprovementAtIndex(new Improvement(name, mesh, texture, replaceGroundTexture, new HexRule(finalTiles, finalFeatures.ToArray())), index); }