static void Main(string[] args) { var screen = new ScreenConfig(8, 8); var debug = new DebugConfig(updateTime: 0.15f, maxLogSize: 20); var config = ConfigurationLoader.Load(ArgumentSet.Parse(args)); var root = new CompositionRoot( screen, debug, config, () => new ReadConsoleReadInputSystem(), new Func <ISystem>[] { () => new ConsoleTriggerSystem(debug), () => new ConsoleClearSystem(), () => new ConsoleRenderSystem(screen), () => new ConsoleLogSystem() }, () => new FinishFrameRealTimeSystem(), () => new DeviceRenderSystem(screen, new DeviceRenderConfig(172))); var(entities, systems) = root.Create(); systems.Init(entities); systems.UpdateLoop(entities); Console.WriteLine($"Your score is: {entities.GetFirstComponent<ScoreState>()?.TotalScore}"); Console.WriteLine($"Time: {entities.GetFirstComponent<TimeState>().UnscaledTotalTime:0.00}"); if (config.IsReplayRecord) { var replay = entities.GetFirstComponent <InputRecordState>(); replay.Save(config.NewReplayPath); } }
void Create() { InputRecordConfig replayRecord = null; if (ReplayShow) { var replayAsset = Resources.Load <TextAsset>(ReplayPath); var lines = replayAsset.text.Split('\n').Where(l => !string.IsNullOrWhiteSpace(l)).ToArray(); replayRecord = new InputRecordConfig(lines); } var screen = new ScreenConfig(8, 8); var config = new Configuration(ReplayRecord, replayRecord, null, RandomSeed, FixedFrameTime); var root = new CompositionRoot( screen, null, config, () => new ReadUnityInputSystem(new Dictionary <UnityEngine.KeyCode, KeyCode> { { UnityEngine.KeyCode.LeftArrow, KeyCode.LeftArrow }, { UnityEngine.KeyCode.RightArrow, KeyCode.RightArrow }, { UnityEngine.KeyCode.Space, KeyCode.Spacebar } }), new Func <ISystem> [0], () => new ReadUnityRealTimeSystem(), () => new UnityRenderSystem(screen, Renderer)); (_entities, _systems) = root.Create(); }