public static void initItem(IDevkitHierarchyItem item) { if (item.instanceID == 0u) { item.instanceID = LevelHierarchy.generateUniqueInstanceID(); } }
public virtual void read(IFormattedFileReader reader) { if (reader.containsKey("Available_Instance_ID")) { LevelHierarchy.availableInstanceID = reader.readValue <uint>("Available_Instance_ID"); } else { LevelHierarchy.availableInstanceID = 1u; } int num = reader.readArrayLength("Items"); for (int i = 0; i < num; i++) { IFormattedFileReader formattedFileReader = reader.readObject(i); Type type = formattedFileReader.readValue <Type>("Type"); if (type == null) { Debug.LogError(string.Concat(new object[] { "Level hierarchy item index ", i, " missing type: ", formattedFileReader.readValue("Type") })); } else { IDevkitHierarchyItem devkitHierarchyItem; if (typeof(MonoBehaviour).IsAssignableFrom(type)) { devkitHierarchyItem = (new GameObject { name = type.Name }.AddComponent(type) as IDevkitHierarchyItem); } else { devkitHierarchyItem = (Activator.CreateInstance(type) as IDevkitHierarchyItem); } if (devkitHierarchyItem != null) { if (formattedFileReader.containsKey("Instance_ID")) { devkitHierarchyItem.instanceID = formattedFileReader.readValue <uint>("Instance_ID"); } if (devkitHierarchyItem.instanceID == 0u) { devkitHierarchyItem.instanceID = LevelHierarchy.generateUniqueInstanceID(); } formattedFileReader.readKey("Item"); devkitHierarchyItem.read(formattedFileReader); } } } }