public Level(ILevelLoader levelLoader) { Pieces = new List<LevelPiece>(); _levelLoader = levelLoader; Loaded = false; }
/// <summary> /// Loads the level and all related GameObjects like <c>LevelElement</c>s using the <c>ILevelLoader</c> /// </summary> public void LoadLevel() { if (MainMenuPlayerPreferences.InLevelCreationMode) { dataProvider = DeserializeLevel(); levelLoader = new BasicLevelLoader(dataProvider); } // Execute the following in try catch blocks, because levelLoader could be null. try { levelDataCollection = new LevelDataCollection(); level = levelLoader.LoadLevel(); levelDataCollection.levelElements = levelLoader.LoadLevelElements(transform); levelDataCollection.levelItemsData = levelLoader.LoadItemsData(); levelDataCollection.levelItems = levelLoader.LoadItems(transform, levelDataCollection.levelItemsData); if (MainMenuPlayerPreferences.InLevelCreationMode) { levelDataCollection.enemyData = dataProvider.GetEnemyData(); levelDataCollection.enemies = LoadEnemies(levelDataCollection.enemyData); JsonDataProvider jsonDataProvider = (JsonDataProvider)dataProvider; levelDataCollection.playerData = jsonDataProvider.GetPlayerData(); } } catch (NullReferenceException ex) { Debug.LogError("Cannot load level. No ILevelLoader assigned!"); throw new NullReferenceException("Cannot load level. No ILevelLoader assigned!", ex); } }
public ComputerMarbleMechanicsController(IBattleManager battleManager , IPlayerSystem playerSystem , IOpponentSystem opponentSystem , ILevelLoader levelLoader) { this.battleManager = battleManager; this.opponentSystem = opponentSystem; this.levelLoader = levelLoader; this.playerSystem = playerSystem; }
public SuspenseSystem(IPlayerSystem playerSystem , IOpponentSystem opponentSystem , ICameraController cameraController , ITimeController timeController , ILevelLoader levelLoader) { this.opponentSystem = opponentSystem; this.cameraController = cameraController; this.timeController = timeController; this.playerSystem = playerSystem; this.levelLoader = levelLoader; }
public void Initialise(ILevelLoader levelLoader, ILevelProgressReader progressReader, ILevelProgressWriter progressWriter, ILevelOrderLoader levelOrderLoader, IEventReader eventReader) { if (initialised) { Debug.Log("LevelIO has already been initalised"); return; } this.progressReader = progressReader; this.progressWriter = progressWriter; this.levelOrderLoader = levelOrderLoader; this.levelLoader = levelLoader; this.eventReader = eventReader; initialised = true; }
public HumanMarbleMechanicsController(IInputManager inputManager , IPlayerSystem playerSystem , IOpponentSystem opponentSystem , ICameraController cameraController , ILevelLoader levelLoader , IBattleManager battleManager) { this.inputManager = inputManager; this.playerSystem = playerSystem; this.opponentSystem = opponentSystem; this.cameraController = cameraController; this.levelLoader = levelLoader; this.battleManager = battleManager; MarbleShotStatus = MarbleShotStatus.Idle; layerMask = 1 << LayerMask.NameToLayer(PlaneRayCastLayerName); lastEndShot = 0f; }
public void LoadLevel_LevelLoaderIsSet_LoadLevel() { // Arrange. PrivateObject internLevelController = new PrivateObject(levelController); ILevelLoader levelLoader = (ILevelLoader)internLevelController.GetField("levelLoader"); levelLoader = Substitute.For <ILevelLoader>(); internLevelController.SetField("levelLoader", levelLoader); // Act. // No Act part needed here, because the call of Start() appears at the creation of the levelController instance. // Assert. NUnit.Framework.Assert.DoesNotThrow(levelController.LoadLevel); levelLoader.Received(1).LoadLevel(); levelLoader.Received(1).LoadLevelElements(Arg.Any <Transform>()); }
public MouseDownConfiguration( ILevelLoader levelLoader , IHumanMarbleMechanicsController marbleMechanicsController , IBattleManager battleManager) { this.levelLoader = levelLoader; this.marbleMechanicsController = marbleMechanicsController; this.battleManager = battleManager; this.Configurations = new List <ISystemConfiguration> { new SystemConfiguration() .AddType <Clickable>() .AddType <Level>() .Calls(c => LoadScene(c)), new SystemConfiguration() .AddType <Clickable>() .AddType <Player>() .AddType <Marble>() .Calls(c => StartMarbleShot(c)) }; }
private void Start() { if (MainMenuPlayerPreferences.InLevelCreationMode) { return; } if (MainMenuPlayerPreferences.LoadFromJson) { dataProvider = DeserializeLevel(); } else { dataProvider = new TestLevelDataProvider(); } levelLoader = new BasicLevelLoader(dataProvider); LoadLevel(); if (MainMenuPlayerPreferences.LoadFromJson) { JsonDataProvider jsonDataProvider = (JsonDataProvider)dataProvider; levelDataCollection.playerData = jsonDataProvider.GetPlayerData(); } levelDataCollection.enemyData = dataProvider.GetEnemyData(); levelDataCollection.enemies = LoadEnemies(levelDataCollection.enemyData); if (serializeLevel) { SerializeLevel(); } StartLevel(); }
public SpaceTaxiLevelFactory() { levelLoader = new LevelLoader(); levelParser = new LevelParser(); imageContainer = ImageContainer.GetInstance(); }
private void Awake() => levelManager = FindObjectOfType <GameManager>();
// Use this for initialization void Start() { this.sea = this.seaGameObject.GetComponent<ISea>(); if (this.sea == null) { throw new UnityException("Sea are not initialized"); } this.fisher = this.fisherGameObject.GetComponent<IFisher>(); this.fisher.ClearState(); if (this.fisher == null) { throw new UnityException("Fisher are not initialized"); } this.fisher.Boat.OnPutStaff += (ICatchable obj) => { this.earned += obj.Price; this.earnedInCurrentLevel += obj.Price; if (this.onEarnedUpdate != null) { this.onEarnedUpdate.Invoke(this.earned); } }; this.timer = this.timerGameObject.GetComponent<ITimer>(); if (this.timer == null) { throw new UnityException("Timer are not initialized"); } this.timer.OnTimerStart += (float time) => { this.levelTimeRemainded = time; if (this.onChangeLevelTime != null) { this.onChangeLevelTime.Invoke(time); } }; this.timer.OnTimerEnd += (float time) => { this.levelTimeRemainded = 0; if (this.onChangeLevelTime != null) { this.onChangeLevelTime.Invoke(time); } this.FinishLevel(); }; this.timer.OnTimerBeep += (float time) => { this.levelTimeRemainded = this.levelTimeAmount - time; if (this.onChangeLevelTime != null) { this.onChangeLevelTime.Invoke(this.levelTimeRemainded); } }; this.levelLoader = new SimpleLevelLoader (this.sea); this.IfConditionPassedStartNextLevel(); }
public GameScreen(ILevelLoader levelLoader, IEntityFactory entityFactory) { _levelLoader = levelLoader; _entityFactory = entityFactory; }
public static IEnumerator InitialiseAsRoutine() { ILevelLoader levelLoader = ManagerResolver.Resolve <ILevelLoader>(); m_Grid = new Tile[Width, Length]; //Create tiles for (int i = 0; i < Width; i++) { for (int j = 0; j < Length; j++) { float xCenter = m_WidthOffset + ((i * m_TileSize) + (m_TileSize / 2.0f)); float zCenter = m_LengthOffset + ((j * m_TileSize) + (m_TileSize / 2.0f)); Vector3 center = new Vector3(xCenter, 0, zCenter); center.y = Terrain.activeTerrain.SampleHeight(center); m_Grid[i, j] = new Tile(i, j, center); } } if (levelLoader != null) { levelLoader.ChangeText("Evaluating tiles"); } yield return(null); List <Collider> bridgeList = new List <Collider>(); List <Collider> tunnelList = new List <Collider>(); //Evaluate for (int i = 0; i < Width; i++) { for (int j = 0; j < Length; j++) { m_Grid[i, j].Evaluate(bridgeList, tunnelList); } } if (levelLoader != null) { levelLoader.ChangeText("Evaluating bridges"); } yield return(null); //Create the bridges foreach (Collider collider in bridgeList) { BuildBridge(collider); } if (levelLoader != null) { levelLoader.ChangeText("Evaluating Tunnels"); } yield return(null); //Create the tunnels foreach (Collider collider in tunnelList) { BuildTunnel(collider); } if (levelLoader != null) { levelLoader.ChangeText("Populating internal array"); } yield return(null); //Now all the tiles have been initialised, we need to populate the tiles internal array with accessible tiles for (int i = 0; i < Width; i++) { for (int j = 0; j < Length; j++) { FindAccessibleTiles(m_Grid[i, j]); } } if (levelLoader != null) { levelLoader.FinishLoading(); } ManagerResolver.Resolve <ICursorManager>().ShowCursor(); }
public UAsyncOperation LoadAsync(ILevelLoader _loader, string _levelName, ELoadLevelMode _mode = ELoadLevelMode.SingleMainLevel, Action _finish = null) { return(_loader?.LoadLevelAsync(_levelName, _mode, _finish)); }
public void SetDefaultLoader(ILevelLoader _loader) { DefaultLoader = _loader; }