MenuRemote GetConnectDisplayRemote() { MenuRemote connectDisplayRemote = new MenuRemote("Connect >", ""); // Get surface providers GridTerminalSystem.GetBlocksOfType <IMyTextSurfaceProvider>(getBlocksScratchPad, SameConstructAsMe); for (int i = 0; i < getBlocksScratchPad.Count; i++) { var provider = (IMyTextSurfaceProvider)getBlocksScratchPad[i]; var subItem = new MenuRemote(getBlocksScratchPad[i].CustomName, ""); for (int j = 0; j < provider.SurfaceCount; j++) { subItem.subMenues.Add(new MenuRemote($"{provider.GetSurface(j).DisplayName} >", $"connectdisplay {getBlocksScratchPad[i].EntityId} {j}")); } connectDisplayRemote.subMenues.Add(subItem); } getBlocksScratchPad.Clear(); // Get panels GridTerminalSystem.GetBlocksOfType <IMyTextPanel>(getBlocksScratchPad, SameConstructAsMe); for (int i = 0; i < getBlocksScratchPad.Count; i++) { var panel = (IMyTextPanel)getBlocksScratchPad[i]; var subItem = new MenuRemote(getBlocksScratchPad[i].CustomName, ""); subItem.subMenues.Add(new MenuRemote($"{getBlocksScratchPad[i].DisplayName}", $"connectdisplay {getBlocksScratchPad[i].EntityId} 0")); connectDisplayRemote.subMenues.Add(subItem); } getBlocksScratchPad.Clear(); return(connectDisplayRemote); }
MenuRemote GetDisconnectDisplayRemote() { MenuRemote disconnectDisplayRemote = new MenuRemote("Disconnect >", ""); for (int i = 0; i < surfaceProviders.Count; i++) { disconnectDisplayRemote.subMenues.Add(new MenuRemote(surfaceProviders[i].CustomName, $"disconnectdisplay {surfaceProviders[i].EntityId}")); } for (int i = 0; i < displays.Count; i++) { disconnectDisplayRemote.subMenues.Add(new MenuRemote(((IMyTerminalBlock)displays[i]).CustomName, $"disconnectdisplay {displays[i].EntityId}")); } return(disconnectDisplayRemote); }
MenuRemote GetDeltaRequestRemote() { MenuRemote remote = new MenuRemote("Requests >", ""); IEnumerator <MyItemType> i = requestDict.Keys.GetEnumerator(); while (i.MoveNext()) { MenuRemote itemRemote = new MenuRemote($"{TypeToKey[i.Current]}>", ""); remote.subMenues.Add(itemRemote); itemRemote.subMenues.Add(new MenuRemote("+ 1000", $"deltarequest {TypeToKey[i.Current]} 1000")); itemRemote.subMenues.Add(new MenuRemote("+ 100", $"deltarequest {TypeToKey[i.Current]} 100")); itemRemote.subMenues.Add(new MenuRemote("+ 10", $"deltarequest {TypeToKey[i.Current]} 10")); itemRemote.subMenues.Add(new MenuRemote("- 1000", $"deltarequest {TypeToKey[i.Current]} -s 1000")); itemRemote.subMenues.Add(new MenuRemote("- 100", $"deltarequest {TypeToKey[i.Current]} -s 100")); itemRemote.subMenues.Add(new MenuRemote("- 10", $"deltarequest {TypeToKey[i.Current]} -s 10")); } return(remote); }
void RemoteSendCommands() { long targetId; long.TryParse(commandLine.Argument(1), out targetId); MenuRemote remoteMenuRoot; // Setup remote commands remoteMenuRoot = new MenuRemote("root", ""); // Setup display var displaysMenu = new MenuRemote($"Displays ({displays.Count + surfaceProviders.Count})", ""); displaysMenu.subMenues.Add(GetConnectDisplayRemote()); displaysMenu.subMenues.Add(GetDisconnectDisplayRemote()); remoteMenuRoot.subMenues.Add(displaysMenu); remoteMenuRoot.subMenues.Add(GetDeltaRequestRemote()); SendData(targetId, remoteMenuRoot.Serialize()); }
void MySetupCommands(MenuRemote root) { }