private void Start() { var dataPath = FileManager.GetFilePath(".", _gameId); _asset = new TesAssetPack(dataPath, null); _data = new TesDataPack(dataPath, null, _gameId); _engine = new TesEngine(_asset, _data, UIManager); if (_playMusic) { // Start the music. _musicPlayer = new MusicPlayer(); if (_gameId == GameId.Morrowind) { foreach (var songFilePath in Directory.GetFiles(dataPath + "/Music/Explore")) { if (!songFilePath.Contains("Morrowind Title")) { _musicPlayer.AddSong(songFilePath); } } } _musicPlayer.Play(); } // Spawn the player. _engine.SpawnPlayerOutside(PlayerPrefab, new Vector2i(-2, -9), new Vector3(-137.94f, 2.30f, -1037.6f)); }
private void OnDestroy() { if (_asset != null) { _asset.Close(); _asset = null; } if (_data != null) { _data.Close(); _data = null; } }
public TesEngine(TesAssetPack asset, TesDataPack data, TesUIManager uiManager) { _asset = asset; _data = data; _uiManager = uiManager; _uiManager.Active = true; _temporalLoadBalancer = new TemporalLoadBalancer(); _cellManager = new CellManager(asset, data, _temporalLoadBalancer); var game = BaseSettings.Game; // ambient RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Flat; RenderSettings.ambientIntensity = game.AmbientIntensity; // sun _sunObj = GameObjectUtils.CreateDirectionalLight(Vector3.zero, Quaternion.Euler(new Vector3(50, 330, 0))); _sunObj.GetComponent <Light>().shadows = game.RenderSunShadows ? LightShadows.Soft : LightShadows.None; _sunObj.SetActive(false); if (game.DayNightCycle) { _sunObj.AddComponent <DayNightCycle>(); } //// water //_waterObj = GameObject.Instantiate(TesGame.instance.WaterPrefab); //_waterObj.SetActive(false); //var water = _waterObj.GetComponent<Water>(); //water.waterMode = TesGame.instance.WaterQuality; //if (!TesGame.instance.WaterBackSideTransparent) //{ // var side = _waterObj.transform.GetChild(0); // var sideMaterial = side.GetComponent<Renderer>().sharedMaterial; // sideMaterial.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); // sideMaterial.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); // sideMaterial.SetInt("_ZWrite", 1); // sideMaterial.DisableKeyword("_ALPHATEST_ON"); // sideMaterial.DisableKeyword("_ALPHABLEND_ON"); // sideMaterial.DisableKeyword("_ALPHAPREMULTIPLY_ON"); // sideMaterial.renderQueue = -1; //} Cursor.SetCursor(_asset.LoadTexture("tx_cursor", true), Vector2.zero, CursorMode.Auto); }
public TesCellManager(TesAssetPack asset, TesDataPack data, TemporalLoadBalancer loadBalancer) { _asset = asset; _data = data; _loadBalancer = loadBalancer; }