public void Initialize(MasterSystem masterSystem) { this.masterSystem = masterSystem; foreach (var cor in corridors) { Assert.IsTrue(cor is Corridor); } AssertRoomDataIsInitialized(mainRoomBlueprint); foreach (var room in rooms) { AssertRoomDataIsInitialized(room); } foreach (var room in level2Rooms) { AssertRoomDataIsInitialized(room); } foreach (var corridor in corridors) { AssertRoomDataIsInitialized(corridor); } mainRoom = Instantiate(mainRoomBlueprint); ResetState(); masterSystem.OnSceneManagersInitialized += MasterSystemOnOnSceneManagersInitialized; }
public override void Init(MasterSystem masterSystem, SceneManagerData data) { base.Init(masterSystem, data); data.playerController.InitializeUIManager(this); foreach (var panel in uiPanels) { panel.Initialize(masterSystem); } ChangeInitializationState(ManagerInitializationState.COMPLETED); }
static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("Usage: elbsms_console <path to rom>"); return; } string romPath = args[0]; var masterSystem = new MasterSystem(); var cartridge = GameMedia.LoadFromFile(romPath, GameMediaType.Cartridge); masterSystem.Initialise(); masterSystem.LoadGameMedia(cartridge); Console.WriteLine($"Starting: {DateTime.Now}"); Console.WriteLine(); ulong instructionCount = 0; var sw = Stopwatch.StartNew(); try { while (true) { instructionCount++; masterSystem.SingleStep(); } } catch (InfiniteLoopException) { } catch (NotImplementedException ex) { Console.WriteLine(ex.Message); } sw.Stop(); masterSystem.Shutdown(); var cyclesExecuted = masterSystem.Clock.Timestamp; var effectiveClock = cyclesExecuted / (sw.ElapsedMilliseconds / 1000.0); Console.WriteLine(); Console.WriteLine(); Console.WriteLine($"Finished: {DateTime.Now}"); Console.WriteLine($"Elapsed: {sw.ElapsedMilliseconds}ms Instructions: {instructionCount:N0}, Instructions/ms: {instructionCount / (double)sw.ElapsedMilliseconds}, Effective Clock: {FormatFrequency(effectiveClock)}"); }
public override void Init(MasterSystem masterSystem, SceneManagerData data) { base.Init(masterSystem, data); CollectSceneEntities(); foreach (var entity in entites) { if (entity == null) { Debug.LogError("[EntitySceneManager]: one of the entities is null"); return; } InitEntity(entity); } ChangeInitializationState(ManagerInitializationState.COMPLETED); }
public override void Init(MasterSystem masterSystem, SceneManagerData data) { base.Init(masterSystem, data); projectileManager = masterSystem.TryGetManager <ProjectileManager>(SceneManagerType.Projectile); if (projectileManager == null) { Debug.LogError("[ItemSceneSystem]: tried to get projectileManager but it wasn't initialized"); return; } CollectSceneItems(); foreach (var item in items) { item.Initialize(data.player, data.playerController, projectileManager); } ChangeInitializationState(ManagerInitializationState.COMPLETED); }
public override void Init(MasterSystem masterSystem, SceneManagerData data) { base.Init(masterSystem, data); projectiles = new Dictionary <ProjectileType, GameObject>(); for (int i = 0; i < projectileGameObjects.Length; i++) { var p = projectileGameObjects[i]; var projectileComponent = p.GetComponent <Projectile>(); if (projectileComponent == null) { Debug.LogError("[ProjectileManager]: projectile component not found in game object"); ChangeInitializationState(ManagerInitializationState.FAILED); return; } for (int j = 0; j < projectileGameObjects.Length; j++) { if (i == j) { continue; } var otherProjectileComponent = projectileGameObjects[j].GetComponent <Projectile>(); if (otherProjectileComponent == null) { continue; } if (projectileComponent.Type() == otherProjectileComponent.Type()) { Debug.LogError($"[ProjectileManager]: two projectiles with same projectile type found '{projectileComponent.Type().ToString()}' - this should not happen"); ChangeInitializationState(ManagerInitializationState.FAILED); return; } } projectiles.Add(projectileComponent.Type(), p); } ChangeInitializationState(ManagerInitializationState.COMPLETED); }
public virtual void Init(MasterSystem masterSystem, SceneManagerData data) { initializationState = ManagerInitializationState.IN_PROGRESS; this.data = data; }
public void Initialize(MasterSystem masterSystem) => _masterSystem = masterSystem;