public Module(string name, AuroraData data, bool instantiateModule) { this.moduleName = name; this.data = data; if (!instantiateModule) { return; } if (stateManager == null) { stateManager = GameObject.Find("State System").GetComponent <StateSystem>(); } if (loader == null) { loader = GameObject.Find("Loading System").GetComponent <LoadingSystem>(); } ifo = data.Get <AuroraIFO>("module", ResourceType.IFO); Debug.Log(ifo); string areaName = ifo.Mod_Entry_Area; are = data.Get <AuroraARE>(areaName, ResourceType.ARE); git = data.Get <AuroraGIT>(areaName, ResourceType.GIT); entryPosition = new Vector3(ifo.Mod_Entry_X, ifo.Mod_Entry_Z, ifo.Mod_Entry_Y); Dictionary <string, Vector3> layout = Resources.LoadLayout(areaName, data); Debug.Log("Layout has " + layout.Count + " rooms."); area = Area.Create(are); GameObject parent = new GameObject("Models"); parent.transform.SetParent(area.transform); foreach (var value in layout) { loader.AddAction(() => { Debug.Log("Loading room " + value.Key); string resref = value.Key.ToLower(); GameObject room = Resources.LoadModel(resref); if (SetupSkybox(room)) { return; } // Set up the Navmesh SetLayerRecursive(room, LayerMask.NameToLayer("NavMeshStatic")); // Set the room's position and parent room.transform.position = value.Value; room.transform.SetParent(parent.transform); }); } LoadCreatures(); LoadPlaceables(); loader.AddAction(() => data.aiManager.BakeNavMesh()); LoadDoors(); LoadTriggers(); LoadEncounters(); LoadSounds(); LoadStores(); LoadWaypoints(); LoadCameras(); loader.AddAction(() => { // Load the music //int musicId = git.AreaProperties.MusicDay; //string musicResource = Resources.Load2DA("ambientmusic")[musicId, "resource"]; //ambientMusic = Resources.LoadAudio(musicResource); }); }