public void show(DebugConsoleBinding binding) { destroy(); onShow?.Invoke(this); onShow = null; var view = binding.clone(); Object.DontDestroyOnLoad(view); var currentGroupButtons = ImmutableList <ButtonBinding> .Empty; setupList(view.commands, () => currentGroupButtons); var commandGroups = commands.Select(commandGroup => { var button = addButton(view.buttonPrefab, view.commandGroups.holder.transform); button.text.text = commandGroup.Key; button.button.onClick.AddListener(() => currentGroupButtons = showGroup(view, commandGroup.Key, commandGroup.Value) ); return(button); }).ToImmutableList(); setupList(view.commandGroups, () => commandGroups); Application.logMessageReceivedThreaded += onLogMessageReceived; view.closeButton.onClick.AddListener(destroy); current = new Instance(view).some(); }
public void show(DebugConsoleBinding binding) { destroy(); onShow?.Invoke(this); onShow = null; var view = binding.clone(); Object.DontDestroyOnLoad(view); var currentGroupButtons = ImmutableList <ButtonBinding> .Empty; setupList(view.commands, () => currentGroupButtons); var commandGroups = commands.OrderBy(_ => _.Key).Select(commandGroup => { var button = addButton(view.buttonPrefab, view.commandGroups.holder.transform); button.text.text = commandGroup.Key; button.button.onClick.AddListener(() => currentGroupButtons = showGroup(view, commandGroup.Key, commandGroup.Value) ); return(button); }).ToImmutableList(); setupList(view.commandGroups, () => commandGroups); var logEntryPool = GameObjectPool.a(GameObjectPool.Init <VerticalLayoutLogEntry> .noReparenting( nameof(DConsole) + " log entry pool", () => view.logEntry.prefab.clone() )); var cache = new List <string>(); var layout = new DynamicVerticalLayout.Init( view.dynamicLayout, // ReSharper disable once InconsistentlySynchronizedField logEntries .SelectMany(e => createEntries(e, logEntryPool, cache, view.lineWidth)) .Select(_ => _.upcast(default(DynamicVerticalLayout.IElementData))), renderLatestItemsFirst: true ); var logCallback = onLogMessageReceived(logEntryPool, cache); Application.logMessageReceivedThreaded += logCallback; view.closeButton.onClick.AddListener(destroy); var editorShortcut = instance.editorShortcutObs.filter(_ => instance.current.isSome); view.minimizeButton.onClick.join(editorShortcut).subscribe(view.gameObject, _ => view.minimizableObjectsContainer.SetActive( !view.minimizableObjectsContainer.activeSelf ) ); current = new Instance(view, layout, logCallback, logEntryPool).some(); }
public void show(DebugConsoleBinding binding) { destroy(); var view = binding.clone(); Object.DontDestroyOnLoad(view); foreach (var commandGroup in commands) { var button = addButton(view.buttonPrefab, view.commandGroupsHolder.transform); button.text.text = commandGroup.Key; button.button.onClick.AddListener(() => showGroup(view, commandGroup.Key, commandGroup.Value)); } Application.logMessageReceived += onLogMessageReceived; view.closeButton.onClick.AddListener(destroy); current = new Instance(view).some(); }