public void HandleViewEvents(ViewEventsPipe eventPipe) { foreach (var evt in eventPipe.EventsInQueue) { try { OnEvent(evt); } catch (Exception e) { Debug.LogException(e); } } // clear eventPipe.EventsInQueue.Clear(); }
public GameWorld(GameWorldData levelData) { Debug.Log("Entering Level " + levelData.LevelId); // init basic stuff GameWorldData = levelData; RandomGenerator = new Unity.Mathematics.Random((uint)GetHashCode()); ViewEventPipe = new ViewEventsPipe(); // init rooms int x = 0, y = 0; Rooms = new List <Room>(); // do the rooms var roomPresets = new List <RoomPreset>(); if (levelData.LevelId > 1) { roomPresets.Add(LoadRoomPreset("Pause")); } roomPresets.AddRange(LoadPresets(1, 5, randomize: levelData.LevelId > 1)); roomPresets.Add(LoadRoomPreset("Pause")); roomPresets.AddRange(LoadPresets(6, 10)); roomPresets.Add(LoadRoomPreset("Pause")); roomPresets.AddRange(LoadPresets(11, 15)); roomPresets.Add(LoadRoomPreset("Boss")); roomPresets.Add(LoadRoomPreset("Organ")); foreach (var roomPreset in roomPresets) { Rooms.Add(new Room(this, x, y, roomPreset)); // move up or right var proc = UnityEngine.Random.Range(0, 100) > 50; if (proc) { x++; } else { y++; } } // set next room refs for (int i = 0; i < Rooms.Count - 1; i++) { Rooms[i].SetNextRoom(Rooms[i + 1]); } Rooms[Rooms.Count - 1].SetNextRoom(null); for (int i = 1; i < Rooms.Count; i++) { Rooms[i].SetRoomBefore(Rooms[i - 1]); } // add player Player = new Player ( initialRoom: Rooms[0], settings: Game.PlayerSettings, initialPosition: float2.zero ); }