private void Update() { // Initialize block handlers if (Game.IsSimulating && !BlockHandlerController.Initialised) { BlockHandlerController.InitializeBlockHandlers(); } // Open or hide ACM mapper if (BlockMapper.CurrentInstance != null) { if (BlockMapper.CurrentInstance.Block != null && BlockMapper.CurrentInstance.Block != ControlMapper.Instance.Block) { ControlMapper.Instance.ShowBlockControls(BlockMapper.CurrentInstance.Block); } if (BlockMapper.CurrentInstance.Block != null) { if (InputManager.CopyKeys()) { copy_source = BlockMapper.CurrentInstance.Block.Guid; } if (InputManager.PasteKeys()) { ControlManager.CopyBlockControls(copy_source, BlockMapper.CurrentInstance.Block.Guid); } } } else { if (ControlMapper.Instance.Visible) { ControlMapper.Instance.Hide(); } } if (LoadedMachine) { LoadedMachine = false; ControlOverview.Open(true); } OnUpdate?.Invoke(); }