private void Initialize() { Inst = this; Constants = transform.GetComponent <Constants>(); Constants.Initialize(); MainCamera = Camera.main; CameraController.Initialize(); DBManager = new DBManager(); DBManager.Initialize(); SaveGameManager = new SaveGameManager(); LevelAnchor = GameObject.FindObjectOfType <LevelAnchor>(); if (LevelAnchor == null) { GameObject o = GameObject.Instantiate(Resources.Load("LevelAnchor")) as GameObject; LevelAnchor = o.GetComponent <LevelAnchor>(); } MaterialManager = new MaterialManager(); MaterialManager.Initialize(); SoundManager = new SoundManager(); SoundManager.Initialize(); ItemManager = new ItemManager(); ItemManager.Initialize(); EconomyManager = new EconomyManager(); if (SceneType == SceneType.Space) { Debug.Log("Loading space scene"); NPCManager = new NPCManager(); NPCManager.Initialize(); UIManager = new UIManager(); CursorManager = new CursorManager(); CursorManager.Initialize(); PlayerProgress = new PlayerProgress(); PlayerProgress.Initialize(); PlayerControl = new PlayerControl(); PlayerControl.Initialize(); WorldManager = new WorldManager(); WorldManager.PreInitialize(); //temporarily spawn player at a station to undock //StationBase station = GameObject.Find("PlanetColombiaLanding").GetComponent<StationBase>(); //station.Undock(PlayerControl.PlayerShip); //check if there's anchor save StarSystem system = null; if (LevelAnchor != null && !LevelAnchor.IsNewGame) { //load system from anchor save Debug.Log("Loading from anchor!"); system = DBManager.XMLParserWorld.GenerateSystemScene(LevelAnchor.SpawnSystem); SaveGameManager.GetSave(LevelAnchor.ProfileName); } else if (LevelAnchor.IsNewGame) { //load a new game SaveGameManager.LoadNewGameInSpace(); system = DBManager.XMLParserWorld.GenerateSystemScene(GameManager.Inst.PlayerProgress.SpawnSystemID); } WorldManager.CurrentSystem = system; WorldManager.InitializeSpace(); EconomyManager.Initialize(); if (LevelAnchor != null && !LevelAnchor.IsNewGame) { SaveGameManager.LoadSaveInSpace(); } Debug.Log("About to create the player"); PlayerControl.CreatePlayerParty(); PlayerControl.LoadPlayerShip(); UIManager.Initialize(); if (LevelAnchor != null && !LevelAnchor.IsNewGame) { PlayerControl.SpawnPlayer(); } LevelAnchor.IsNewGame = false; } else if (SceneType == SceneType.SpaceTest) { NPCManager = new NPCManager(); NPCManager.Initialize(); UIManager = new UIManager(); //UIManager.Initialize(); CursorManager = new CursorManager(); CursorManager.Initialize(); PlayerControl = new PlayerControl(); PlayerControl.Initialize(); WorldManager = new WorldManager(); //WorldManager.Initialize(); /* * GameObject [] npcs = GameObject.FindGameObjectsWithTag("NPC"); * foreach(GameObject o in npcs) * { * AI ai = o.GetComponent<AI>(); * ai.Initialize(); * NPCManager.AddExistingShip(ai.MyShip); * } */ //temporarily spawn player at a station to undock //StationBase station = GameObject.Find("PlanetColombiaLanding").GetComponent<StationBase>(); //station.Undock(PlayerControl.PlayerShip); } else if (SceneType == SceneType.Station) { UIManager = new UIManager(); UIManager.Initialize(); PlayerProgress = new PlayerProgress(); PlayerProgress.Initialize(); WorldManager = new WorldManager(); WorldManager.PreInitialize(); WorldManager.InitializeDocked(); EconomyManager.Initialize(); NPCManager = new NPCManager(); NPCManager.InitializeDocked(); if (LevelAnchor != null && !LevelAnchor.IsNewGame) { SaveGameManager.GetSave(LevelAnchor.ProfileName); SaveGameManager.LoadSaveInStation(); } else if (LevelAnchor.IsNewGame) { SaveGameManager.LoadNewGameInStation(); } LevelAnchor.IsNewGame = false; } }