private updateStateStep()

in sim/visuals/board.ts [491:538]


        private updateStateStep(elapsed: number) {
            const inputNodes = ev3board().getInputNodes();
            inputNodes.forEach((node, index) => {
                node.updateState(elapsed);
                const view = this.getDisplayViewForNode(node.id, index);
                if (!node.didChange() && !view.didChange()) return;
                if (view) {
                    const previousSelected = EV3View.isPreviousInputSelected(index);
                    const isSelected = previousSelected != undefined ? previousSelected : view.getSelected();
                    view.setSelected(isSelected);
                    const control = isSelected ? this.getControlForNode(node.id, index, !node.modeChange()) : undefined;
                    const closeIcon = control ? this.getCloseIconView(index + 10) : undefined;
                    const backgroundView = control && view.hasBackground() ? this.getBackgroundView(index + 10) : undefined;
                    this.layoutView.setInput(index, view, control, closeIcon, backgroundView);
                    view.updateState();
                    if (control) control.updateState();
                }
            });

            const brickNode = ev3board().getBrickNode();
            if (brickNode.didChange()) {
                this.layoutView.getPortraitBrick().updateState();
                this.layoutView.getLandscapeBrick().updateState();
            }

            const outputNodes = ev3board().getMotors();
            outputNodes.forEach((node, index) => {
                node.updateState(elapsed);
                const view = this.getDisplayViewForNode(node.id, index);
                if (!node.didChange() && !view.didChange()) return;
                if (view) {
                    const previousSelected = EV3View.isPreviousOutputSelected(index);
                    const isSelected = previousSelected != undefined ? previousSelected : view.getSelected();
                    view.setSelected(isSelected);
                    const control = isSelected ? this.getControlForNode(node.id, index) : undefined;
                    const closeIcon = control ? this.getCloseIconView(index) : undefined;
                    const backgroundView = control && view.hasBackground() ? this.getBackgroundView(index) : undefined;
                    this.layoutView.setOutput(index, view, control, closeIcon, backgroundView);
                    view.updateState();
                    if (control) control.updateState();
                }
            });

            let state = ev3board().screenState;
            if (state.didChange()) {
                this.updateScreenStep(state);
            }
        }