private void CustomControlHandler(IMyTerminalBlock block, List <IMyTerminalControl> controls) { LastTerminal = block; var cube = (MyCubeBlock)block; GridAi gridAi; if (GridTargetingAIs.TryGetValue(cube.CubeGrid, out gridAi)) { gridAi.LastTerminal = block; CoreComponent comp; if (gridAi.WeaponBase.TryGetValue(cube, out comp) && comp.Platform.State == CorePlatform.PlatformState.Ready) { TerminalMon.HandleInputUpdate(comp); IMyTerminalControl wcRangeControl = null; for (int i = controls.Count - 1; i >= 0; i--) { var control = controls[i]; if (control.Id.Equals("Range")) { controls.RemoveAt(i); } else if (control.Id.Equals("UseConveyor")) { controls.RemoveAt(i); } else if (control.Id.Equals("WC_Range")) { wcRangeControl = control; controls.RemoveAt(i); } } if (wcRangeControl != null) { controls.Add(wcRangeControl); } } } }