Commit 9b187eac by Philipp Adolf

Replace tabs with spaces in level management

parent 46dad222
...@@ -6,16 +6,16 @@ using System.IO; ...@@ -6,16 +6,16 @@ using System.IO;
[XmlRoot("Levels")] [XmlRoot("Levels")]
public class DeserializedLevels public class DeserializedLevels
{ {
[XmlElement ("Developer")] [XmlElement ("Developer")]
public Developer developer; public Developer developer;
public class Developer public class Developer
{ {
[XmlAttribute ("StartLevel")] [XmlAttribute ("StartLevel")]
public string startLevel; public string startLevel;
} }
[XmlElement ("Level")] [XmlElement ("Level")]
public Level[] levels; public Level[] levels;
public class Level public class Level
{ {
[XmlElement("Item")] [XmlElement("Item")]
...@@ -31,25 +31,25 @@ public class DeserializedLevels ...@@ -31,25 +31,25 @@ public class DeserializedLevels
public string y; public string y;
} }
public class Item public class Item
{ {
[XmlAttribute ("prefab")] [XmlAttribute ("prefab")]
public string prefab; public string prefab;
[XmlAttribute ("x")] [XmlAttribute ("x")]
public string x; public string x;
[XmlAttribute ("y")] [XmlAttribute ("y")]
public string y; public string y;
[XmlAttribute ("rot")] [XmlAttribute ("rot")]
public string rot; public string rot;
[XmlAttribute("scalex")] [XmlAttribute("scalex")]
public string scalex; public string scalex;
[XmlAttribute("scaley")] [XmlAttribute("scaley")]
public string scaley; public string scaley;
} }
} }
...@@ -9,15 +9,15 @@ using System.Linq; ...@@ -9,15 +9,15 @@ using System.Linq;
public class DeserializedLevelsCrossChecker { public class DeserializedLevelsCrossChecker {
//Hallo Tim und Philipp. Die Datei kuckt nur ob irgendwas mit den Prefabs komisch ist. //Hallo Tim und Philipp. Die Datei kuckt nur ob irgendwas mit den Prefabs komisch ist.
// cross check /Resources/Prefabs and Levels.xml if there are any item prefabs that exist only in one but not the other // cross check /Resources/Prefabs and Levels.xml if there are any item prefabs that exist only in one but not the other
public void crossCheck () public void crossCheck ()
{ {
// create a list of /Resources/Prefabs for resources and Levels.Xml // create a list of /Resources/Prefabs for resources and Levels.Xml
List<string> resPrefabList = new List<string>(); List<string> resPrefabList = new List<string>();
List<string> xmlPrefabList = new List<string>(); List<string> xmlPrefabList = new List<string>();
// Get prefabs from Levels.xml // Get prefabs from Levels.xml
DeserializedLevels deserializedLevels = XmlIO.LoadXml<DeserializedLevels>("Levels"); DeserializedLevels deserializedLevels = XmlIO.LoadXml<DeserializedLevels>("Levels");
foreach (DeserializedLevels.Level level in deserializedLevels.levels) foreach (DeserializedLevels.Level level in deserializedLevels.levels)
{ {
foreach (DeserializedLevels.Item item in level.items) foreach (DeserializedLevels.Item item in level.items)
...@@ -26,23 +26,23 @@ public class DeserializedLevelsCrossChecker { ...@@ -26,23 +26,23 @@ public class DeserializedLevelsCrossChecker {
} }
// Get prefabs from the /Resources/Prefabs folder // Get prefabs from the /Resources/Prefabs folder
// get all child items in the /Resources/Prefabs folder // get all child items in the /Resources/Prefabs folder
DirectoryInfo dir = new DirectoryInfo("Assets/Resources/Prefabs"); DirectoryInfo dir = new DirectoryInfo("Assets/Resources/Prefabs");
FileInfo[] fileInfos = dir.GetFiles("*.prefab"); FileInfo[] fileInfos = dir.GetFiles("*.prefab");
fileInfos.Select(f => f.FullName).ToArray(); fileInfos.Select(f => f.FullName).ToArray();
// Add each prefab's file name to prefabList and truncate the .prefab extension from the end // Add each prefab's file name to prefabList and truncate the .prefab extension from the end
foreach (FileInfo fileInfo in fileInfos) foreach (FileInfo fileInfo in fileInfos)
resPrefabList.Add (fileInfo.Name.Substring(0, fileInfo.Name.Length - ".prefab".Length)); resPrefabList.Add (fileInfo.Name.Substring(0, fileInfo.Name.Length - ".prefab".Length));
// Cross checks // Cross checks
foreach (string prefab in xmlPrefabList.Except(resPrefabList).ToList()) foreach (string prefab in xmlPrefabList.Except(resPrefabList).ToList())
Debug.LogError (prefab + " is missing in the /Resorces/Prefabs folder but used in Levels.xml"); Debug.LogError (prefab + " is missing in the /Resorces/Prefabs folder but used in Levels.xml");
foreach (string prefab in resPrefabList.Except(xmlPrefabList).ToList()) foreach (string prefab in resPrefabList.Except(xmlPrefabList).ToList())
Debug.Log (prefab + " exists in the /Resorces/Prefabs folder but not used in Levels.xml"); Debug.Log (prefab + " exists in the /Resorces/Prefabs folder but not used in Levels.xml");
Debug.Log ("Cross Check Done"); Debug.Log ("Cross Check Done");
} }
} }
...@@ -114,8 +114,8 @@ public class DeserializedLevelsLoader ...@@ -114,8 +114,8 @@ public class DeserializedLevelsLoader
// DONE, these are only helper functions below // DONE, these are only helper functions below
// if no value then return zero or one, otherwise convert to float // if no value then return zero or one, otherwise convert to float
float toFloatZeroIfNull (string value) { return value == null ? 0 : float.Parse(value); } float toFloatZeroIfNull (string value) { return value == null ? 0 : float.Parse(value); }
float toFloatOneIfNull (string value) { return value == null ? 1 : float.Parse(value); } float toFloatOneIfNull (string value) { return value == null ? 1 : float.Parse(value); }
void setPos2D(GameObject g, Vector2 pos) void setPos2D(GameObject g, Vector2 pos)
{ {
......
...@@ -4,40 +4,40 @@ using System.Xml; ...@@ -4,40 +4,40 @@ using System.Xml;
public class DeserializedLevelsSaver public class DeserializedLevelsSaver
{ {
public const string xmlItemsToExportGOName = "XmlItemsToExport"; public const string xmlItemsToExportGOName = "XmlItemsToExport";
public void saveExportItems () public void saveExportItems ()
{ {
// Create XmlItemsToExport if does not exist yet // Create XmlItemsToExport if does not exist yet
if (GameObject.Find (xmlItemsToExportGOName) == null) if (GameObject.Find (xmlItemsToExportGOName) == null)
new GameObject(xmlItemsToExportGOName); new GameObject(xmlItemsToExportGOName);
GameObject xmlItemsToExportGO = GameObject.Find (xmlItemsToExportGOName); GameObject xmlItemsToExportGO = GameObject.Find (xmlItemsToExportGOName);
var xmlItemsToExportGOchildren = xmlItemsToExportGO.GetComponentsInChildren<Transform>(); var xmlItemsToExportGOchildren = xmlItemsToExportGO.GetComponentsInChildren<Transform>();
// Check if any children exist // Check if any children exist
if (xmlItemsToExportGOchildren.Length == 0) if (xmlItemsToExportGOchildren.Length == 0)
Debug.LogError ("Add the prefabs to " + xmlItemsToExportGOName); Debug.LogError ("Add the prefabs to " + xmlItemsToExportGOName);
DeserializedLevels.Level levelXml = new DeserializedLevels.Level(); DeserializedLevels.Level levelXml = new DeserializedLevels.Level();
int n = 0; int n = 0;
// count number of children skipping sub-items // count number of children skipping sub-items
foreach (Transform item in xmlItemsToExportGOchildren) foreach (Transform item in xmlItemsToExportGOchildren)
if (item.parent == xmlItemsToExportGO.transform) n++; if (item.parent == xmlItemsToExportGO.transform) n++;
// the items array should have that many elements // the items array should have that many elements
levelXml.items = new DeserializedLevels.Item[n]; levelXml.items = new DeserializedLevels.Item[n];
// use i for counting items, i would be equal (one more to be precise) to n at the end of the cycle // use i for counting items, i would be equal (one more to be precise) to n at the end of the cycle
int i = 0; int i = 0;
// cycle through the children again and add them to items // cycle through the children again and add them to items
foreach (Transform item in xmlItemsToExportGOchildren) foreach (Transform item in xmlItemsToExportGOchildren)
{ {
// skip sub-items // skip sub-items
if (item.parent != xmlItemsToExportGO.transform) continue; if (item.parent != xmlItemsToExportGO.transform) continue;
levelXml.items[i] = new DeserializedLevels.Item(); levelXml.items[i] = new DeserializedLevels.Item();
...@@ -48,24 +48,24 @@ public class DeserializedLevelsSaver ...@@ -48,24 +48,24 @@ public class DeserializedLevelsSaver
levelXml.items[i].scalex = toStringNullIfOne(item.localScale.x); levelXml.items[i].scalex = toStringNullIfOne(item.localScale.x);
levelXml.items[i].scaley = toStringNullIfOne(item.localScale.y); levelXml.items[i].scaley = toStringNullIfOne(item.localScale.y);
// increase i for the next cycle // increase i for the next cycle
i++; i++;
} }
// Export just one level // Export just one level
DeserializedLevels levelsXmlToExport = new DeserializedLevels(); DeserializedLevels levelsXmlToExport = new DeserializedLevels();
levelsXmlToExport.levels = new DeserializedLevels.Level[1]; levelsXmlToExport.levels = new DeserializedLevels.Level[1];
levelsXmlToExport.levels[0] = levelXml; levelsXmlToExport.levels[0] = levelXml;
XmlIO.SaveXml<DeserializedLevels>(levelsXmlToExport, "./Assets/Resources/" + xmlItemsToExportGOName + ".xml"); XmlIO.SaveXml<DeserializedLevels>(levelsXmlToExport, "./Assets/Resources/" + xmlItemsToExportGOName + ".xml");
} }
string toStringNullIfZero (float num) { return num == 0 ? null : mathRound(num,2).ToString(); } string toStringNullIfZero (float num) { return num == 0 ? null : mathRound(num,2).ToString(); }
string toStringNullIfOne (float num) { return num == 1 ? null : mathRound(num,2).ToString(); } string toStringNullIfOne (float num) { return num == 1 ? null : mathRound(num,2).ToString(); }
float mathRound (float round, int decimals) float mathRound (float round, int decimals)
{ {
return Mathf.Round(round * Mathf.Pow(10,decimals)) / Mathf.Pow(10,decimals); return Mathf.Round(round * Mathf.Pow(10,decimals)) / Mathf.Pow(10,decimals);
} }
} }
...@@ -5,25 +5,25 @@ using UnityEngine; // necessary for TextAsset ...@@ -5,25 +5,25 @@ using UnityEngine; // necessary for TextAsset
public static class XmlIO public static class XmlIO
{ {
public static void SaveXml<T> (this object deserializedXml, string path) where T : class public static void SaveXml<T> (this object deserializedXml, string path) where T : class
{ {
using(var stream = new FileStream(path, FileMode.Create)) using(var stream = new FileStream(path, FileMode.Create))
{ {
var s = new XmlSerializer(typeof(T)); var s = new XmlSerializer(typeof(T));
s.Serialize(stream, deserializedXml); s.Serialize(stream, deserializedXml);
} }
} }
public static T LoadXml<T>(string textAssetName) where T : class public static T LoadXml<T>(string textAssetName) where T : class
{ {
TextAsset xmlTextAsset = (TextAsset) Resources.Load (textAssetName, typeof(TextAsset)); TextAsset xmlTextAsset = (TextAsset) Resources.Load (textAssetName, typeof(TextAsset));
using(var stream = new StringReader(xmlTextAsset.text)) using(var stream = new StringReader(xmlTextAsset.text))
{ {
var s = new XmlSerializer(typeof(T)); var s = new XmlSerializer(typeof(T));
T deserializedXml = s.Deserialize(stream) as T; T deserializedXml = s.Deserialize(stream) as T;
return deserializedXml; return deserializedXml;
} }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment