Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* v:2.0173 [1.191 compatibility, new Inventory variants]
- * Automatic LCDs 2 - In-game script by MMaster
- *
- * Last Update: Added NB (no bars), NN (no numbers) & NNB (no bars or numbers) variants of Inventory, InvList, Missing and all their variants (check guide)
- * First test of cockpit (and other blocks) panels support - read guide section 'How to use with cockpits?'
- * Script now correctly uses the Text Padding property of the LCD (you can set it however you want and the script will work with it)
- * Optimizations for servers running script limiter - use SlowMode!
- * Added SlowMode setting to considerably slow down the script (4-5 times less processing per second)
- * Now using MDK!
- * First part of rewrite of memory management which should optimize memory allocations a lot (more optimizations in progress)
- *
- * Previous updates: Look at Change notes tab on Steam workshop page. */
- /* Customize these: */
- // Use this tag to identify LCDs managed by this script
- // Name filtering rules can be used here so you can use even G:Group or T:[My LCD]
- public string LCD_TAG = "T:[LCDS]";
- // Set to true if you want to slow down the script
- public const bool SlowMode = false;
- // How many lines to scroll per step
- public const int SCROLL_LINES_PER_STEP = 1;
- // Script automatically figures if LCD is using monospace font
- // if you use custom font scroll down to the bottom, then scroll a bit up until you find AddCharsSize lines
- // monospace font name and size definition is above those
- // Enable initial boot sequence (after compile / world load)
- public const bool ENABLE_BOOT = true;
- /* READ THIS FULL GUIDE
- http://steamcommunity.com/sharedfiles/filedetails/?id=407158161
- Basic video guide
- Please watch the video guide even if you don't understand my English. You can see how things are done there.
- https://youtu.be/vqpPQ_20Xso
- Please carefully read the FULL GUIDE before asking questions I had to remove guide from here to add more features :(
- Please DO NOT publish this script or its derivations without my permission! Feel free to use it in blueprints!
- Special Thanks
- Keen Software House for awesome Space Engineers game
- Malware for contributing to programmable blocks game code and MDK!
- Watch Twitter: https://twitter.com/MattsPlayCorner
- and Facebook: https://www.facebook.com/MattsPlayCorner1080p
- for more crazy stuff from me in the future :)
- If you want to make scripts for Space Engineers check out MDK by Malware:
- https://github.com/malware-dev/MDK-SE/wiki/Quick-Introduction-to-Space-Engineers-Ingame-Scripts
- */
- bool MDK_IS_GREAT = true;
- /* Customize characters used by script */
- class MMStyle {
- // Monospace font characters (\uXXXX is special character code)
- public const char BAR_MONO_START = '[';
- public const char BAR_MONO_END = ']';
- public const char BAR_MONO_EMPTY = '\u2591'; // 25% rect
- public const char BAR_MONO_FILL = '\u2588'; // full rect
- // Classic (Debug) font characters
- // Start and end characters of progress bar need to be the same width!
- public const char BAR_START = '[';
- public const char BAR_END = ']';
- // Empty and fill characters of progress bar need to be the same width!
- public const char BAR_EMPTY = '\'';
- public const char BAR_FILL = '|';
- }
- // (for developer) Debug level to show
- public const int DebugLevel = 0;
- // (for modded lcds) Affects all LCDs managed by this programmable block
- /* LCD height modifier
- 0.5f makes the LCD have only 1/2 the lines of normal LCD
- 2.0f makes it fit 2x more lines on LCD */
- public const float HEIGHT_MOD = 1.0f;
- /* line width modifier
- 0.5f moves the right edge to 50% of normal LCD width
- 2.0f makes it fit 200% more text on line */
- public const float WIDTH_MOD = 1.0f;
- List<string> BOOT_FRAMES = new List<string>() {
- /* BOOT FRAMES
- * Each @"<text>" marks single frame, add as many as you want each will be displayed for one second
- * @"" is multiline string so you can write multiple lines */
- @"
- Initializing systems"
- ,
- @"
- Verifying connections"
- ,
- @"
- Loading commands"
- };
- void ItemsConf() {
- // ITEMS AND QUOTAS LIST
- // (subType, mainType, quota, display name, short name)
- // VANILLA ITEMS
- Add("Stone", "Ore");
- Add("Iron", "Ore");
- Add("Nickel", "Ore");
- Add("Cobalt", "Ore");
- Add("Magnesium", "Ore");
- Add("Silicon", "Ore");
- Add("Silver", "Ore");
- Add("Gold", "Ore");
- Add("Platinum", "Ore");
- Add("Uranium", "Ore");
- Add("Ice", "Ore");
- Add("Scrap", "Ore");
- Add("Stone", "Ingot", 40000, "Gravel", "gravel");
- Add("Iron", "Ingot", 300000);
- Add("Nickel", "Ingot", 900000);
- Add("Cobalt", "Ingot", 120000);
- Add("Magnesium", "Ingot", 80000);
- Add("Silicon", "Ingot", 80000);
- Add("Silver", "Ingot", 800000);
- Add("Gold", "Ingot", 80000);
- Add("Platinum", "Ingot", 45000);
- Add("Uranium", "Ingot", 12000);
- Add("AutomaticRifleItem", "Tool", 0, "Automatic Rifle");
- Add("PreciseAutomaticRifleItem", "Tool", 0, "* Precise Rifle");
- Add("RapidFireAutomaticRifleItem", "Tool", 0, "** Rapid-Fire Rifle");
- Add("UltimateAutomaticRifleItem", "Tool", 0, "*** Elite Rifle");
- Add("WelderItem", "Tool", 0, "Welder");
- Add("Welder2Item", "Tool", 0, "* Enh. Welder");
- Add("Welder3Item", "Tool", 0, "** Prof. Welder");
- Add("Welder4Item", "Tool", 0, "*** Elite Welder");
- Add("AngleGrinderItem", "Tool", 0, "Angle Grinder");
- Add("AngleGrinder2Item", "Tool", 0, "* Enh. Grinder");
- Add("AngleGrinder3Item", "Tool", 0, "** Prof. Grinder");
- Add("AngleGrinder4Item", "Tool", 0, "*** Elite Grinder");
- Add("HandDrillItem", "Tool", 0, "Hand Drill");
- Add("HandDrill2Item", "Tool", 0, "* Enh. Drill");
- Add("HandDrill3Item", "Tool", 0, "** Prof. Drill");
- Add("HandDrill4Item", "Tool", 0, "*** Elite Drill");
- Add("Construction", "Component", 50000);
- Add("MetalGrid", "Component", 15500, "Metal Grid");
- Add("InteriorPlate", "Component", 55000, "Interior Plate");
- Add("SteelPlate", "Component", 300000, "Steel Plate");
- Add("Girder", "Component", 3500);
- Add("SmallTube", "Component", 26000, "Small Tube");
- Add("LargeTube", "Component", 6000, "Large Tube");
- Add("Motor", "Component", 16000);
- Add("Display", "Component", 500);
- Add("BulletproofGlass", "Component", 12000, "Bulletp. Glass", "bpglass");
- Add("Computer", "Component", 6500);
- Add("Reactor", "Component", 10000);
- Add("Thrust", "Component", 16000, "Thruster", "thruster");
- Add("GravityGenerator", "Component", 250, "GravGen", "gravgen");
- Add("Medical", "Component", 120);
- Add("RadioCommunication", "Component", 250, "Radio-comm", "radio");
- Add("Detector", "Component", 400);
- Add("Explosives", "Component", 500);
- Add("SolarCell", "Component", 2800, "Solar Cell");
- Add("PowerCell", "Component", 2800, "Power Cell");
- Add("Superconductor", "Component", 3000);
- Add("Canvas", "Component", 300);
- Add("NATO_5p56x45mm", "Ammo", 8000, "5.56x45mm", "5.56x45mm");
- Add("NATO_25x184mm", "Ammo", 2500, "25x184mm", "25x184mm");
- Add("Missile200mm", "Ammo", 1600, "200mm Missile", "200mmmissile");
- Add("OxygenBottle", "OxygenContainerObject", 5, "Oxygen Bottle");
- Add("HydrogenBottle", "GasContainerObject", 5, "Hydrogen Bottle");
- // MODDED ITEMS
- // (subType, mainType, quota, display name, short name, used)
- // * if used is true, item will be shown in inventory even for 0 items
- // * if used is false, item will be used only for display name and short name
- // AzimuthSupercharger
- Add("AzimuthSupercharger", "Component", 1600, "Supercharger", "supercharger", false);
- // OKI Ammo
- Add("OKI23mmAmmo", "Ammo", 500, "23x180mm", "23x180mm", false);
- Add("OKI50mmAmmo", "Ammo", 500, "50x450mm", "50x450mm", false);
- Add("OKI122mmAmmo", "Ammo", 200, "122x640mm", "122x640mm", false);
- Add("OKI230mmAmmo", "Ammo", 100, "230x920mm", "230x920mm", false);
- // REALLY REALLY REALLY
- // DO NOT MODIFY ANYTHING BELOW THIS (TRANSLATION STRINGS ARE AT THE BOTTOM)
- }
- void Add(string sT, string mT, int q = 0, string dN = "", string sN = "", bool u = true) { Ǝ.Ƌ(sT, mT, q, dN, sN, u); }
- Ƅ Ǝ;ȑ ƚ;ġ ϓ;ɔ n=null;void ϒ(string Ƙ){}void ϑ(string ϐ,string Ϗ){string Ƕ=ϐ.ToLower();switch(Ƕ){case"lcd_tag":LCD_TAG=Ϗ;
- break;}}void ώ(){string[]lj=Me.CustomData.Split('\n');for(int E=0;E<lj.Length;E++){string ǎ=lj[E];int š=ǎ.IndexOf('=');if(š<0){ϒ
- (ǎ);continue;}string ύ=ǎ.Substring(0,š).Trim();string ǫ=ǎ.Substring(š+1).Trim();ϑ(ύ,ǫ);}}void ό(ȑ ƚ){Ǝ=new Ƅ();ItemsConf(
- );ώ();n=new ɔ(this,DebugLevel,ƚ);n.Ǝ=Ǝ;n.ɥ=LCD_TAG;n.ɤ=SCROLL_LINES_PER_STEP;n.ɣ=ENABLE_BOOT;n.ɢ=BOOT_FRAMES;n.ɡ=!
- MDK_IS_GREAT;n.ɠ=HEIGHT_MOD;n.ɪ=WIDTH_MOD;n.Ǡ();}void ϋ(){ƚ.ǂ=this;n.ǂ=this;}Program(){Runtime.UpdateFrequency=UpdateFrequency.
- Update1;}void Main(string ą,UpdateType ϊ){try{if(ƚ==null){ƚ=new ȑ(this,DebugLevel,SlowMode);ό(ƚ);ϓ=new ġ(n);ƚ.Ȗ(ϓ,0);}else{ϋ();
- n.Ő.Љ();}if(ą.Length==0&&(ϊ&(UpdateType.Update1|UpdateType.Update10|UpdateType.Update100))==0){ƚ.ȡ();return;}if(ą!=""){if
- (ϓ.ć(ą)){ƚ.ȡ();return;}}ϓ.ğ=0;ƚ.Ƞ();}catch(Exception ex){Echo("ERROR DESCRIPTION:\n"+ex.ToString());Me.Enabled=false;}}
- class ο:ɑ{ġ Ē;ɔ n;string ą="";public ο(ɔ Û,ġ đ,string IJ){Ɍ=-1;ɐ="ArgScroll";ą=IJ;Ē=đ;n=Û;}int Ŭ;α δ;public override void Ʉ(){δ
- =new α(ƒ,n.Ő);}int γ=0;int ì=0;ʣ Ƙ;public override bool Ƀ(bool ö){if(!ö){ì=0;δ.ų();Ƙ=new ʣ(ƒ);γ=0;}if(ì==0){if(!Ƙ.ˁ(ą,ö))
- return false;if(Ƙ.ˉ.Count>0){if(!int.TryParse(Ƙ.ˉ[0].IJ,out Ŭ))Ŭ=1;else if(Ŭ<1)Ŭ=1;}if(Ƙ.ʢ.EndsWith("up"))Ŭ=-Ŭ;else if(!Ƙ.ʢ.
- EndsWith("down"))Ŭ=0;ì++;ö=false;}if(ì==1){if(!δ.ϴ("textpanel",Ƙ.ʹ,ö))return false;ì++;ö=false;}è k;for(;γ<δ.ϳ();γ++){if(!ƒ.Ȝ(20
- ))return false;IMyTextPanel β=δ.ή[γ]as IMyTextPanel;if(!Ē.Ĉ.TryGetValue(β,out k))continue;if(k==null||k.å!=β)continue;if(
- k.à)k.æ.ĺ=10;if(Ŭ>0)k.æ.Ľ(Ŭ);else if(Ŭ<0)k.æ.œ(-Ŭ);else k.æ.Ĺ();k.L();}return true;}}class α{ȑ ƒ;Ͻ ΰ;IMyCubeGrid ί{get{
- return ƒ.ǂ.Me.CubeGrid;}}IMyGridTerminalSystem ƿ{get{return ƒ.ǂ.GridTerminalSystem;}}public List<IMyTerminalBlock>ή=new List<
- IMyTerminalBlock>();public α(ȑ ƚ,Ͻ ζ){ƒ=ƚ;ΰ=ζ;}int ω=0;public double ψ(ref double χ,ref double φ,bool ö){if(!ö)ω=0;for(;ω<ή.Count;ω++){
- if(!ƒ.Ȝ(4))return Double.NaN;IMyInventory υ=ή[ω].GetInventory(0);if(υ==null)continue;χ+=(double)υ.CurrentVolume;φ+=(double
- )υ.MaxVolume;}χ*=1000;φ*=1000;return(φ>0?χ/φ*100:100);}int τ=0;double σ=0;public double ς(bool ö){if(!ö){τ=0;σ=0;}for(;τ<
- ή.Count;τ++){if(!ƒ.Ȝ(6))return Double.NaN;for(int ρ=0;ρ<2;ρ++){IMyInventory υ=ή[τ].GetInventory(ρ);if(υ==null)continue;σ
- +=(double)υ.CurrentMass;}}return σ*1000;}int π=0;private bool ξ(bool ö=false){if(!ö)π=0;while(π<ή.Count){if(!ƒ.Ȝ(4))return
- false;if(ή[π].CubeGrid!=ί){ή.RemoveAt(π);continue;}π++;}return true;}List<IMyBlockGroup>ν=new List<IMyBlockGroup>();List<
- IMyTerminalBlock>μ=new List<IMyTerminalBlock>();int λ=0;public bool κ(string ʹ,bool ö){int ι=ʹ.IndexOf(':');string θ=(ι>=1&&ι<=2?ʹ.
- Substring(0,ι):"");bool ε=θ.Contains("T");if(θ!="")ʹ=ʹ.Substring(ι+1);if(ʹ==""||ʹ=="*"){if(!ö){μ.Clear();ƿ.GetBlocks(μ);ή.AddList
- (μ);}if(ε)if(!ξ(ö))return false;return true;}string η=(θ.Contains("G")?ʹ.Trim():"");if(η!=""){if(!ö){ν.Clear();ƿ.
- GetBlockGroups(ν);λ=0;}for(;λ<ν.Count;λ++){IMyBlockGroup ϔ=ν[λ];if(string.Compare(ϔ.Name,η,true)==0){if(!ö){μ.Clear();ϔ.GetBlocks(μ);ή
- .AddList(μ);}if(ε)if(!ξ(ö))return false;return true;}}return true;}if(!ö){μ.Clear();ƿ.SearchBlocksOfName(ʹ,μ);ή.AddList(μ
- );}if(ε)if(!ξ(ö))return false;return true;}List<IMyBlockGroup>ϼ=new List<IMyBlockGroup>();List<IMyTerminalBlock>Ϻ=new
- List<IMyTerminalBlock>();int Ϲ=0;int ϸ=0;public bool Ϸ(string ʏ,string η,bool ε,bool ö){if(!ö){ϼ.Clear();ƿ.GetBlockGroups(ϼ)
- ;Ϲ=0;}for(;Ϲ<ϼ.Count;Ϲ++){IMyBlockGroup ϔ=ϼ[Ϲ];if(string.Compare(ϔ.Name,η,true)==0){if(!ö){ϸ=0;Ϻ.Clear();ϔ.GetBlocks(Ϻ);}
- else ö=false;for(;ϸ<Ϻ.Count;ϸ++){if(!ƒ.Ȝ(6))return false;if(ε&&Ϻ[ϸ].CubeGrid!=ί)continue;if(ΰ.Ͽ(Ϻ[ϸ],ʏ))ή.Add(Ϻ[ϸ]);}return
- true;}}return true;}List<IMyTerminalBlock>ϵ=new List<IMyTerminalBlock>();int ϻ=0;public bool ϴ(string ʏ,string ʹ,bool ö){int
- ι=ʹ.IndexOf(':');string θ=(ι>=1&&ι<=2?ʹ.Substring(0,ι):"");bool ε=θ.Contains("T");if(θ!="")ʹ=ʹ.Substring(ι+1);if(!ö){ϵ.
- Clear();ϻ=0;}string η=(θ.Contains("G")?ʹ.Trim():"");if(η!=""){if(!Ϸ(ʏ,η,ε,ö))return false;return true;}if(!ö)ΰ.Ѐ(ref ϵ,ʏ);if(
- ʹ==""||ʹ=="*"){if(!ö)ή.AddList(ϵ);if(ε)if(!ξ(ö))return false;return true;}for(;ϻ<ϵ.Count;ϻ++){if(!ƒ.Ȝ(4))return false;if(
- ε&&ϵ[ϻ].CubeGrid!=ί)continue;if(ϵ[ϻ].CustomName.Contains(ʹ))ή.Add(ϵ[ϻ]);}return true;}public void ϲ(α ϱ){ή.AddList(ϱ.ή);}
- public void ų(){ή.Clear();}public int ϳ(){return ή.Count;}}class Ͻ{ȑ ƒ;ɔ n;public MyGridProgram ǂ{get{return ƒ.ǂ;}}public
- IMyGridTerminalSystem ƿ{get{return ƒ.ǂ.GridTerminalSystem;}}public Ͻ(ȑ ƚ,ɔ Û){ƒ=ƚ;n=Û;}void Ј<ǡ>(List<IMyTerminalBlock>Ї,Func<
- IMyTerminalBlock,bool>І=null)where ǡ:class,IMyTerminalBlock{ƿ.GetBlocksOfType<ǡ>(Ї,І);}public Dictionary<string,Action<List<
- IMyTerminalBlock>,Func<IMyTerminalBlock,bool>>>Ѕ;public void Љ(){if(Ѕ!=null)return;Ѕ=new Dictionary<string,Action<List<IMyTerminalBlock>
- ,Func<IMyTerminalBlock,bool>>>(){{"CargoContainer",Ј<IMyCargoContainer>},{"TextPanel",Ј<IMyTextPanel>},{"Assembler",Ј<
- IMyAssembler>},{"Refinery",Ј<IMyRefinery>},{"Reactor",Ј<IMyReactor>},{"SolarPanel",Ј<IMySolarPanel>},{"BatteryBlock",Ј<
- IMyBatteryBlock>},{"Beacon",Ј<IMyBeacon>},{"RadioAntenna",Ј<IMyRadioAntenna>},{"AirVent",Ј<IMyAirVent>},{"ConveyorSorter",Ј<
- IMyConveyorSorter>},{"OxygenTank",Ј<IMyGasTank>},{"OxygenGenerator",Ј<IMyGasGenerator>},{"OxygenFarm",Ј<IMyOxygenFarm>},{"LaserAntenna",Ј
- <IMyLaserAntenna>},{"Thrust",Ј<IMyThrust>},{"Gyro",Ј<IMyGyro>},{"SensorBlock",Ј<IMySensorBlock>},{"ShipConnector",Ј<
- IMyShipConnector>},{"ReflectorLight",Ј<IMyReflectorLight>},{"InteriorLight",Ј<IMyInteriorLight>},{"LandingGear",Ј<IMyLandingGear>},{
- "ProgrammableBlock",Ј<IMyProgrammableBlock>},{"TimerBlock",Ј<IMyTimerBlock>},{"MotorStator",Ј<IMyMotorStator>},{"PistonBase",Ј<
- IMyPistonBase>},{"Projector",Ј<IMyProjector>},{"ShipMergeBlock",Ј<IMyShipMergeBlock>},{"SoundBlock",Ј<IMySoundBlock>},{"Collector",Ј<
- IMyCollector>},{"JumpDrive",Ј<IMyJumpDrive>},{"Door",Ј<IMyDoor>},{"GravityGeneratorSphere",Ј<IMyGravityGeneratorSphere>},{
- "GravityGenerator",Ј<IMyGravityGenerator>},{"ShipDrill",Ј<IMyShipDrill>},{"ShipGrinder",Ј<IMyShipGrinder>},{"ShipWelder",Ј<IMyShipWelder>}
- ,{"Parachute",Ј<IMyParachute>},{"LargeGatlingTurret",Ј<IMyLargeGatlingTurret>},{"LargeInteriorTurret",Ј<
- IMyLargeInteriorTurret>},{"LargeMissileTurret",Ј<IMyLargeMissileTurret>},{"SmallGatlingGun",Ј<IMySmallGatlingGun>},{
- "SmallMissileLauncherReload",Ј<IMySmallMissileLauncherReload>},{"SmallMissileLauncher",Ј<IMySmallMissileLauncher>},{"VirtualMass",Ј<IMyVirtualMass>}
- ,{"Warhead",Ј<IMyWarhead>},{"FunctionalBlock",Ј<IMyFunctionalBlock>},{"LightingBlock",Ј<IMyLightingBlock>},{
- "ControlPanel",Ј<IMyControlPanel>},{"Cockpit",Ј<IMyCockpit>},{"CryoChamber",Ј<IMyCryoChamber>},{"MedicalRoom",Ј<IMyMedicalRoom>},{
- "RemoteControl",Ј<IMyRemoteControl>},{"ButtonPanel",Ј<IMyButtonPanel>},{"CameraBlock",Ј<IMyCameraBlock>},{"OreDetector",Ј<
- IMyOreDetector>},{"ShipController",Ј<IMyShipController>},{"Decoy",Ј<IMyDecoy>}};}public void Є(ref List<IMyTerminalBlock>ā,string Ѓ){
- Action<List<IMyTerminalBlock>,Func<IMyTerminalBlock,bool>>Ђ;if(Ѓ=="SurfaceProvider"){ƿ.GetBlocksOfType<IMyTextSurfaceProvider>
- (ā);return;}if(Ѕ.TryGetValue(Ѓ,out Ђ))Ђ(ā,null);else{if(Ѓ=="WindTurbine"){ƿ.GetBlocksOfType<IMyPowerProducer>(ā,(Ё)=>Ё.
- BlockDefinition.TypeIdString.EndsWith("WindTurbine"));return;}if(Ѓ=="HydrogenEngine"){ƿ.GetBlocksOfType<IMyPowerProducer>(ā,(Ё)=>Ё.
- BlockDefinition.TypeIdString.EndsWith("HydrogenEngine"));return;}}}public void Ѐ(ref List<IMyTerminalBlock>ā,string Ͼ){Є(ref ā,ϝ(Ͼ.Trim
- ()));}public bool Ͽ(IMyTerminalBlock å,string Ͼ){string ϯ=ϝ(Ͼ);switch(ϯ){case"FunctionalBlock":return true;case
- "ShipController":return(å as IMyShipController!=null);default:return å.BlockDefinition.TypeIdString.Contains(ϝ(Ͼ));}}public string ϝ(
- string Ϫ){if(Ϫ=="surfaceprovider")return"SurfaceProvider";if(Ϫ.ǭ("carg")||Ϫ.ǭ("conta"))return"CargoContainer";if(Ϫ.ǭ("text")||
- Ϫ.ǭ("lcd"))return"TextPanel";if(Ϫ.ǭ("ass"))return"Assembler";if(Ϫ.ǭ("refi"))return"Refinery";if(Ϫ.ǭ("reac"))return
- "Reactor";if(Ϫ.ǭ("solar"))return"SolarPanel";if(Ϫ.ǭ("wind"))return"WindTurbine";if(Ϫ.ǭ("hydro")&&Ϫ.Contains("eng"))return
- "HydrogenEngine";if(Ϫ.ǭ("bat"))return"BatteryBlock";if(Ϫ.ǭ("bea"))return"Beacon";if(Ϫ.Ǭ("vent"))return"AirVent";if(Ϫ.Ǭ("sorter"))return
- "ConveyorSorter";if(Ϫ.Ǭ("tank"))return"OxygenTank";if(Ϫ.Ǭ("farm")&&Ϫ.Ǭ("oxy"))return"OxygenFarm";if(Ϫ.Ǭ("gene")&&Ϫ.Ǭ("oxy"))return
- "OxygenGenerator";if(Ϫ.Ǭ("cryo"))return"CryoChamber";if(string.Compare(Ϫ,"laserantenna",true)==0)return"LaserAntenna";if(Ϫ.Ǭ("antenna"))
- return"RadioAntenna";if(Ϫ.ǭ("thrust"))return"Thrust";if(Ϫ.ǭ("gyro"))return"Gyro";if(Ϫ.ǭ("sensor"))return"SensorBlock";if(Ϫ.Ǭ(
- "connector"))return"ShipConnector";if(Ϫ.ǭ("reflector")||Ϫ.ǭ("spotlight"))return"ReflectorLight";if((Ϫ.ǭ("inter")&&Ϫ.Ǫ("light")))
- return"InteriorLight";if(Ϫ.ǭ("land"))return"LandingGear";if(Ϫ.ǭ("program"))return"ProgrammableBlock";if(Ϫ.ǭ("timer"))return
- "TimerBlock";if(Ϫ.ǭ("motor")||Ϫ.ǭ("rotor"))return"MotorStator";if(Ϫ.ǭ("piston"))return"PistonBase";if(Ϫ.ǭ("proj"))return"Projector";
- if(Ϫ.Ǭ("merge"))return"ShipMergeBlock";if(Ϫ.ǭ("sound"))return"SoundBlock";if(Ϫ.ǭ("col"))return"Collector";if(Ϫ.Ǭ("jump"))
- return"JumpDrive";if(string.Compare(Ϫ,"door",true)==0)return"Door";if((Ϫ.Ǭ("grav")&&Ϫ.Ǭ("sphe")))return
- "GravityGeneratorSphere";if(Ϫ.Ǭ("grav"))return"GravityGenerator";if(Ϫ.Ǫ("drill"))return"ShipDrill";if(Ϫ.Ǭ("grind"))return"ShipGrinder";if(Ϫ.Ǫ(
- "welder"))return"ShipWelder";if(Ϫ.ǭ("parach"))return"Parachute";if((Ϫ.Ǭ("turret")&&Ϫ.Ǭ("gatl")))return"LargeGatlingTurret";if((Ϫ
- .Ǭ("turret")&&Ϫ.Ǭ("inter")))return"LargeInteriorTurret";if((Ϫ.Ǭ("turret")&&Ϫ.Ǭ("miss")))return"LargeMissileTurret";if(Ϫ.Ǭ
- ("gatl"))return"SmallGatlingGun";if((Ϫ.Ǭ("launcher")&&Ϫ.Ǭ("reload")))return"SmallMissileLauncherReload";if((Ϫ.Ǭ(
- "launcher")))return"SmallMissileLauncher";if(Ϫ.Ǭ("mass"))return"VirtualMass";if(string.Compare(Ϫ,"warhead",true)==0)return
- "Warhead";if(Ϫ.ǭ("func"))return"FunctionalBlock";if(string.Compare(Ϫ,"shipctrl",true)==0)return"ShipController";if(Ϫ.ǭ("light"))
- return"LightingBlock";if(Ϫ.ǭ("contr"))return"ControlPanel";if(Ϫ.ǭ("coc"))return"Cockpit";if(Ϫ.ǭ("medi"))return"MedicalRoom";if
- (Ϫ.ǭ("remote"))return"RemoteControl";if(Ϫ.ǭ("but"))return"ButtonPanel";if(Ϫ.ǭ("cam"))return"CameraBlock";if(Ϫ.Ǭ("detect")
- )return"OreDetector";if(Ϫ.ǭ("decoy"))return"Decoy";return"Unknown";}public string Ϝ(IMyBatteryBlock Ō){string ϛ="";if(Ō.
- ChargeMode==ChargeMode.Recharge)ϛ="(+) ";else if(Ō.ChargeMode==ChargeMode.Discharge)ϛ="(-) ";else ϛ="(±) ";return ϛ+n.Ǽ((Ō.
- CurrentStoredPower/Ō.MaxStoredPower)*100.0f)+"%";}Dictionary<MyLaserAntennaStatus,string>Ϛ=new Dictionary<MyLaserAntennaStatus,string>(){{
- MyLaserAntennaStatus.Idle,"IDLE"},{MyLaserAntennaStatus.Connecting,"CONNECTING"},{MyLaserAntennaStatus.Connected,"CONNECTED"},{
- MyLaserAntennaStatus.OutOfRange,"OUT OF RANGE"},{MyLaserAntennaStatus.RotatingToTarget,"ROTATING"},{MyLaserAntennaStatus.
- SearchingTargetForAntenna,"SEARCHING"}};public string ϙ(IMyLaserAntenna Ŋ){return Ϛ[Ŋ.Status];}public double Ϙ(IMyJumpDrive ŋ,out double ʡ,out
- double ƀ){ʡ=ŋ.CurrentStoredPower;ƀ=ŋ.MaxStoredPower;return(ƀ>0?ʡ/ƀ*100:0);}public double ϗ(IMyJumpDrive ŋ){double ʡ=ŋ.
- CurrentStoredPower;double ƀ=ŋ.MaxStoredPower;return(ƀ>0?ʡ/ƀ*100:0);}}class ϖ:ɑ{ɔ n;ġ Ē;public int ϕ=0;public ϖ(ɔ Û,ġ j){ɐ="BootPanelsTask"
- ;Ɍ=1;n=Û;Ē=j;if(!n.ɣ){ϕ=int.MaxValue;Ē.û=true;}}ǒ ď;public override void Ʉ(){ď=n.ď;}public override bool Ƀ(bool ö){if(ϕ>n
- .ɢ.Count){Ʌ();return true;}if(!ö&&ϕ==0){Ē.û=false;}if(!ϭ(ö))return false;ϕ++;return true;}public override void ɂ(){Ē.û=
- true;}public void Ϟ(){ü ç=Ē.ç;for(int E=0;E<ç.º();E++){è k=ç.z(E);k.G();}ϕ=(n.ɣ?0:int.MaxValue);}int E;ŝ Ϯ=null;public bool
- ϭ(bool ö){ü ç=Ē.ç;if(!ö)E=0;int Ϭ=0;for(;E<ç.º();E++){if(!ƒ.Ȝ(40)||Ϭ>5)return false;è k=ç.z(E);Ϯ=n.Ǐ(Ϯ,k);float?ϫ=k.Þ?.
- FontSize;if(ϫ!=null&&ϫ>3f)continue;if(Ϯ.ŗ.Count<=0)Ϯ.Ŕ(n.Lj(null,k));else n.Lj(Ϯ.ŗ[0],k);n.Ƭ();n.Ƣ(ď.ǡ("B1"));double ʑ=(double)ϕ/n
- .ɢ.Count*100;n.Ư(ʑ);if(ϕ==n.ɢ.Count){n.Ǎ("");n.Ƣ("Automatic LCDs 2");n.Ƣ("by MMaster");}else n.nj(n.ɢ[ϕ]);bool à=k.à;k.à=
- false;n.Ǒ(k,Ϯ);k.à=à;Ϭ++;}return true;}public bool ϩ(){return ϕ<=n.ɢ.Count;}}public enum Ϩ{ϧ=0,Ϧ=1,ϥ=2,Ϥ=3,ϣ=4,Ϣ=5,ϡ=6,Ϡ=7,ϟ=
- 8,ϰ=9,έ=10,Β=11,ʷ=12,ʶ=13,ʵ=14,ʴ=15,ʳ=16,ʲ=17,ʱ=18,ʰ=19,ʯ=20,ʮ=21,ʭ=22,ʬ=23,ʫ=24,ʪ=25,ʩ=26,ʨ=27,ʧ=28,ʦ=29,ʥ=30,ʤ=31,}
- class ʣ{ȑ ƒ;public string ʢ="";public string ʹ="";public string ˎ="";public string ˍ="";public Ϩ ˌ=Ϩ.ϧ;public ʣ(ȑ ƚ){ƒ=ƚ;}Ϩ ˋ
- (){if(ʢ=="echo"||ʢ=="center"||ʢ=="right")return Ϩ.Ϧ;if(ʢ.StartsWith("hscroll"))return Ϩ.ʥ;if(ʢ.StartsWith("inventory")||ʢ
- .StartsWith("missing")||ʢ.StartsWith("invlist"))return Ϩ.ϥ;if(ʢ.StartsWith("working"))return Ϩ.ʱ;if(ʢ.StartsWith("cargo")
- )return Ϩ.Ϥ;if(ʢ.StartsWith("mass"))return Ϩ.ϣ;if(ʢ.StartsWith("shipmass"))return Ϩ.ʬ;if(ʢ=="oxygen")return Ϩ.Ϣ;if(ʢ.
- StartsWith("tanks"))return Ϩ.ϡ;if(ʢ.StartsWith("powertime"))return Ϩ.Ϡ;if(ʢ.StartsWith("powerused"))return Ϩ.ϟ;if(ʢ.StartsWith(
- "power"))return Ϩ.ϰ;if(ʢ.StartsWith("speed"))return Ϩ.έ;if(ʢ.StartsWith("accel"))return Ϩ.Β;if(ʢ.StartsWith("alti"))return Ϩ.ʪ;
- if(ʢ.StartsWith("charge"))return Ϩ.ʷ;if(ʢ.StartsWith("docked"))return Ϩ.ʤ;if(ʢ.StartsWith("time")||ʢ.StartsWith("date"))
- return Ϩ.ʶ;if(ʢ.StartsWith("countdown"))return Ϩ.ʵ;if(ʢ.StartsWith("textlcd"))return Ϩ.ʴ;if(ʢ.EndsWith("count"))return Ϩ.ʳ;if(
- ʢ.StartsWith("dampeners")||ʢ.StartsWith("occupied"))return Ϩ.ʲ;if(ʢ.StartsWith("damage"))return Ϩ.ʰ;if(ʢ.StartsWith(
- "amount"))return Ϩ.ʯ;if(ʢ.StartsWith("pos"))return Ϩ.ʮ;if(ʢ.StartsWith("distance"))return Ϩ.ʫ;if(ʢ.StartsWith("details"))return
- Ϩ.ʭ;if(ʢ.StartsWith("stop"))return Ϩ.ʩ;if(ʢ.StartsWith("gravity"))return Ϩ.ʨ;if(ʢ.StartsWith("customdata"))return Ϩ.ʧ;if(
- ʢ.StartsWith("prop"))return Ϩ.ʦ;return Ϩ.ϧ;}public ƙ ˊ(){switch(ˌ){case Ϩ.Ϧ:return new ґ();case Ϩ.ϥ:return new ҟ();case Ϩ
- .Ϥ:return new ʘ();case Ϩ.ϣ:return new ӂ();case Ϩ.Ϣ:return new ҩ();case Ϩ.ϡ:return new щ();case Ϩ.Ϡ:return new г();case Ϩ.
- ϟ:return new П();case Ϩ.ϰ:return new ң();case Ϩ.έ:return new ѓ();case Ϩ.Β:return new ʓ();case Ϩ.ʷ:return new Λ();case Ϩ.ʶ
- :return new ˬ();case Ϩ.ʵ:return new Ω();case Ϩ.ʴ:return new ĸ();case Ϩ.ʳ:return new ʎ();case Ϩ.ʲ:return new ѩ();case Ϩ.ʱ:
- return new Ķ();case Ϩ.ʰ:return new Α();case Ϩ.ʯ:return new һ();case Ϩ.ʮ:return new ҥ();case Ϩ.ʭ:return new Ͷ();case Ϩ.ʬ:return
- new ѧ();case Ϩ.ʫ:return new Ά();case Ϩ.ʪ:return new ʐ();case Ϩ.ʩ:return new ь();case Ϩ.ʨ:return new Ґ();case Ϩ.ʧ:return new
- Σ();case Ϩ.ʦ:return new ќ();case Ϩ.ʥ:return new ҏ();case Ϩ.ʤ:return new ҕ();default:return new ƙ();}}public List<ʾ>ˉ=new
- List<ʾ>();string[]ˈ=null;string ˇ="";bool ˆ=false;int Ĵ=1;public bool ˁ(string ˀ,bool ö){if(!ö){ˌ=Ϩ.ϧ;ʹ="";ʢ="";ˎ=ˀ.
- TrimStart(' ');ˉ.Clear();if(ˎ=="")return true;int ʿ=ˎ.IndexOf(' ');if(ʿ<0||ʿ>=ˎ.Length-1)ˍ="";else ˍ=ˎ.Substring(ʿ+1);ˈ=ˎ.Split(
- ' ');ˇ="";ˆ=false;ʢ=ˈ[0].ToLower();Ĵ=1;}for(;Ĵ<ˈ.Length;Ĵ++){if(!ƒ.Ȝ(40))return false;string IJ=ˈ[Ĵ];if(IJ=="")continue;if(IJ[
- 0]=='{'&&IJ[IJ.Length-1]=='}'){IJ=IJ.Substring(1,IJ.Length-2);if(IJ=="")continue;if(ʹ=="")ʹ=IJ;else ˉ.Add(new ʾ(IJ));continue;}if
- (IJ[0]=='{'){ˆ=true;ˇ=IJ.Substring(1);continue;}if(IJ[IJ.Length-1]=='}'){ˆ=false;ˇ+=' '+IJ.Substring(0,IJ.Length-1);if(ʹ=="")ʹ=
- ˇ;else ˉ.Add(new ʾ(ˇ));continue;}if(ˆ){if(ˇ.Length!=0)ˇ+=' ';ˇ+=IJ;continue;}if(ʹ=="")ʹ=IJ;else ˉ.Add(new ʾ(IJ));}ˌ=ˋ();
- return true;}}class ʾ{public string ʽ="";public string ʼ="";public string IJ="";public List<string>ʻ=new List<string>();public
- ʾ(string ʺ){IJ=ʺ;}public void ˁ(){if(IJ==""||ʽ!=""||ʼ!=""||ʻ.Count>0)return;string ʡ=IJ.Trim();if(ʡ[0]=='+'||ʡ[0]=='-'){ʽ+=ʡ
- [0];ʡ=IJ.Substring(1);}string[]ƞ=ʡ.Split('/');string ʔ=ƞ[0];if(ƞ.Length>1){ʼ=ƞ[0];ʔ=ƞ[1];}else ʼ="";if(ʔ.Length>0){string[
- ]Ć=ʔ.Split(',');for(int E=0;E<Ć.Length;E++)if(Ć[E]!="")ʻ.Add(Ć[E]);}}}class ʓ:ƙ{public ʓ(){Ɍ=0.5;ɐ="CmdAccel";}public
- override bool ƕ(bool ö){double ʒ=0;if(Ƙ.ʹ!="")double.TryParse(Ƙ.ʹ.Trim(),out ʒ);n.Ƌ(ď.ǡ("AC1")+" ");n.ƴ(n.ǀ.ɾ.ToString("F1")+
- " m/s²");if(ʒ>0){double ʑ=n.ǀ.ɾ/ʒ*100;n.Ư(ʑ);}return true;}}class ʐ:ƙ{public ʐ(){Ɍ=1;ɐ="CmdAltitude";}public override bool ƕ(
- bool ö){string ʏ=(Ƙ.ʢ.EndsWith("sea")?"sea":"ground");switch(ʏ){case"sea":n.Ƌ(ď.ǡ("ALT1"));n.ƴ(n.ǀ.ɴ.ToString("F0")+" m");
- break;default:n.Ƌ(ď.ǡ("ALT2"));n.ƴ(n.ǀ.ɲ.ToString("F0")+" m");break;}return true;}}class ʎ:ƙ{public ʎ(){Ɍ=15;ɐ=
- "CmdBlockCount";}α ĵ;public override void Ʉ(){ĵ=new α(ƒ,n.Ő);}bool ʍ;bool ʌ;int Ĵ=0;int ì=0;public override bool ƕ(bool ö){if(!ö){ʍ=(Ƙ.
- ʢ=="enabledcount");ʌ=(Ƙ.ʢ=="prodcount");Ĵ=0;ì=0;}if(Ƙ.ˉ.Count==0){if(ì==0){if(!ö)ĵ.ų();if(!ĵ.κ(Ƙ.ʹ,ö))return false;ì++;ö=
- false;}if(!ʚ(ĵ,"blocks",ʍ,ʌ,ö))return false;return true;}for(;Ĵ<Ƙ.ˉ.Count;Ĵ++){ʾ IJ=Ƙ.ˉ[Ĵ];if(!ö)IJ.ˁ();if(!Ŀ(IJ,ö))return false
- ;ö=false;}return true;}int İ=0;int ı=0;bool Ŀ(ʾ IJ,bool ö){if(!ö){İ=0;ı=0;}for(;İ<IJ.ʻ.Count;İ++){if(ı==0){if(!ö)ĵ.ų();if(!
- ĵ.ϴ(IJ.ʻ[İ],Ƙ.ʹ,ö))return false;ı++;ö=false;}if(!ʚ(ĵ,IJ.ʻ[İ],ʍ,ʌ,ö))return false;ı=0;ö=false;}return true;}Dictionary<
- string,int>ʠ=new Dictionary<string,int>();Dictionary<string,int>ʟ=new Dictionary<string,int>();List<string>ʞ=new List<string>(
- );int ú=0;int ʝ=0;int ʜ=0;ʊ ʛ=new ʊ();bool ʚ(α ā,string ʏ,bool ʍ,bool ʌ,bool ö){if(ā.ϳ()==0){ʛ.ų().ʄ(char.ToUpper(ʏ[0])).
- ʄ(ʏ.ToLower(),1,ʏ.Length-1);n.Ƌ(ʛ.ʄ(" ").ʄ(ď.ǡ("C1")).ʄ(" "));string ʙ=(ʍ||ʌ?"0 / 0":"0");n.ƴ(ʙ);return true;}if(!ö){ʠ.
- Clear();ʟ.Clear();ʞ.Clear();ú=0;ʝ=0;ʜ=0;}if(ʜ==0){for(;ú<ā.ϳ();ú++){if(!ƒ.Ȝ(15))return false;IMyProductionBlock ŏ=ā.ή[ú]as
- IMyProductionBlock;ʛ.ų().ʄ(ā.ή[ú].DefinitionDisplayNameText);string Ƕ=ʛ.ɓ();if(ʞ.Contains(Ƕ)){ʠ[Ƕ]++;if((ʍ&&ā.ή[ú].IsWorking)||(ʌ&&ŏ!=null
- &&ŏ.IsProducing))ʟ[Ƕ]++;}else{ʠ.Add(Ƕ,1);ʞ.Add(Ƕ);if(ʍ||ʌ)if((ʍ&&ā.ή[ú].IsWorking)||(ʌ&&ŏ!=null&&ŏ.IsProducing))ʟ.Add(Ƕ,1)
- ;else ʟ.Add(Ƕ,0);}}ʜ++;ö=false;}for(;ʝ<ʠ.Count;ʝ++){if(!ƒ.Ȝ(8))return false;n.Ƌ(ʞ[ʝ]+" "+ď.ǡ("C1")+" ");string ʙ=(ʍ||ʌ?ʟ[
- ʞ[ʝ]]+" / ":"")+ʠ[ʞ[ʝ]];n.ƴ(ʙ);}return true;}}class ʘ:ƙ{α ĵ;public ʘ(){Ɍ=2;ɐ="CmdCargo";}public override void Ʉ(){ĵ=new α
- (ƒ,n.Ő);}bool ʗ=true;bool ʕ=false;bool ʖ=false;bool ˏ=false;double Ο=0;double Ν=0;int ì=0;public override bool ƕ(bool ö){
- if(!ö){ĵ.ų();ʗ=Ƙ.ʢ.Contains("all");ˏ=Ƙ.ʢ.EndsWith("bar");ʕ=(Ƙ.ʢ[Ƙ.ʢ.Length-1]=='x');ʖ=(Ƙ.ʢ[Ƙ.ʢ.Length-1]=='p');Ο=0;Ν=0;ì=0
- ;}if(ì==0){if(ʗ){if(!ĵ.κ(Ƙ.ʹ,ö))return false;}else{if(!ĵ.ϴ("cargocontainer",Ƙ.ʹ,ö))return false;}ì++;ö=false;}double Μ=ĵ.
- ψ(ref Ο,ref Ν,ö);if(Double.IsNaN(Μ))return false;if(ˏ){n.Ư(Μ);return true;}n.Ƌ(ď.ǡ("C2")+" ");if(!ʕ&&!ʖ){n.ƴ(n.ȅ(Ο)+
- "L / "+n.ȅ(Ν)+"L");n.Ƶ(Μ,1.0f,n.ɗ);n.Ǎ(' '+n.Ǽ(Μ)+"%");}else if(ʖ){n.ƴ(n.Ǽ(Μ)+"%");n.Ư(Μ);}else n.ƴ(n.Ǽ(Μ)+"%");return true;}}
- class Λ:ƙ{public Λ(){Ɍ=3;ɐ="CmdCharge";}α ĵ;public override void Ʉ(){ĵ=new α(ƒ,n.Ő);}int ì=0;int ú=0;bool ʕ=false;bool Ξ=
- false;bool ˏ=false;Dictionary<long,double>e=new Dictionary<long,double>();Dictionary<long,double>Ι=new Dictionary<long,double
- >();Dictionary<long,double>Θ=new Dictionary<long,double>();Dictionary<long,double>Η=new Dictionary<long,double>();
- Dictionary<long,double>Ζ=new Dictionary<long,double>();double Ε(long Δ,double ʡ,double ƀ){double Γ=0;double Κ=0;double Π=0;double
- Χ=0;if(Ι.TryGetValue(Δ,out Π)){Χ=Η[Δ];}if(e.TryGetValue(Δ,out Γ)){Κ=Θ[Δ];}double ά=(ƒ.ȍ-Π);double Ϋ=0;if(ά>0)Ϋ=(ʡ-Χ)/ά;if
- (Ϋ<0){if(!Ζ.TryGetValue(Δ,out Ϋ))Ϋ=0;}else Ζ[Δ]=Ϋ;if(Γ>0){Ι[Δ]=e[Δ];Η[Δ]=Θ[Δ];}e[Δ]=ƒ.ȍ;Θ[Δ]=ʡ;return(Ϋ>0?(ƀ-ʡ)/Ϋ:0);}
- public override bool ƕ(bool ö){if(!ö){ĵ.ų();ˏ=Ƙ.ʢ.EndsWith("bar");ʕ=Ƙ.ʢ.Contains("x");Ξ=Ƙ.ʢ.Contains("time");ú=0;ì=0;}if(ì==0)
- {if(!ĵ.ϴ("jumpdrive",Ƙ.ʹ,ö))return false;if(ĵ.ϳ()<=0){n.Ǎ("Charge: "+ď.ǡ("D2"));return true;}ì++;ö=false;}for(;ú<ĵ.ϳ();ú
- ++){if(!ƒ.Ȝ(25))return false;IMyJumpDrive ŋ=ĵ.ή[ú]as IMyJumpDrive;double ʡ,ƀ,ʑ;ʑ=n.Ő.Ϙ(ŋ,out ʡ,out ƀ);if(ˏ){n.Ư(ʑ);}else{n
- .Ƌ(ŋ.CustomName+" ");if(Ξ){TimeSpan Ϊ=TimeSpan.FromSeconds(Ε(ŋ.EntityId,ʡ,ƀ));n.ƴ(n.ǁ.ȓ(Ϊ));if(!ʕ){n.Ƶ(ʑ,1.0f,n.ɗ);n.ƴ(
- ' '+ʑ.ToString("0.0")+"%");}}else{if(!ʕ){n.ƴ(n.ȅ(ʡ)+"Wh / "+n.ȅ(ƀ)+"Wh");n.Ƶ(ʑ,1.0f,n.ɗ);}n.ƴ(' '+ʑ.ToString("0.0")+"%");}}
- }return true;}}class Ω:ƙ{public Ω(){Ɍ=1;ɐ="CmdCountdown";}public override bool ƕ(bool ö){bool ˢ=Ƙ.ʢ.EndsWith("c");bool Ψ=
- Ƙ.ʢ.EndsWith("r");string Φ="";int ː=Ƙ.ˎ.IndexOf(' ');if(ː>=0)Φ=Ƙ.ˎ.Substring(ː+1).Trim();DateTime Υ=DateTime.Now;DateTime
- Τ;if(!DateTime.TryParseExact(Φ,"H:mm d.M.yyyy",System.Globalization.CultureInfo.InvariantCulture,System.Globalization.
- DateTimeStyles.None,out Τ)){n.Ǎ(ď.ǡ("C3"));n.Ǎ(" Countdown 19:02 28.2.2015");return true;}TimeSpan ˑ=Τ-Υ;string ķ="";if(ˑ.Ticks<=0)ķ=
- ď.ǡ("C4");else{if((int)ˑ.TotalDays>0)ķ+=(int)ˑ.TotalDays+" "+ď.ǡ("C5")+" ";if(ˑ.Hours>0||ķ!="")ķ+=ˑ.Hours+"h ";if(ˑ.
- Minutes>0||ķ!="")ķ+=ˑ.Minutes+"m ";ķ+=ˑ.Seconds+"s";}if(ˢ)n.Ƣ(ķ);else if(Ψ)n.ƴ(ķ);else n.Ǎ(ķ);return true;}}class Σ:ƙ{public Σ(
- ){Ɍ=1;ɐ="CmdCustomData";}public override bool ƕ(bool ö){string ķ="";if(Ƙ.ʹ!=""&&Ƙ.ʹ!="*"){IMyTerminalBlock Ρ=n.ƿ.
- GetBlockWithName(Ƙ.ʹ)as IMyTerminalBlock;if(Ρ==null){n.Ǎ("CustomData: "+ď.ǡ("CD1")+Ƙ.ʹ);return true;}ķ=Ρ.CustomData;}else{n.Ǎ(
- "CustomData:"+ď.ǡ("CD2"));return true;}if(ķ.Length==0)return true;n.nj(ķ);return true;}}class Α:ƙ{public Α(){Ɍ=5;ɐ="CmdDamage";}α ĵ;
- public override void Ʉ(){ĵ=new α(ƒ,n.Ő);}bool Ɯ=false;int ú=0;public override bool ƕ(bool ö){bool ʕ=Ƙ.ʢ.StartsWith("damagex");
- bool ʹ=Ƙ.ʢ.EndsWith("noc");bool ͳ=(!ʹ&&Ƙ.ʢ.EndsWith("c"));float Ͳ=100;if(!ö){ĵ.ų();Ɯ=false;ú=0;}if(!ĵ.κ(Ƙ.ʹ,ö))return false;
- if(Ƙ.ˉ.Count>0){if(!float.TryParse(Ƙ.ˉ[0].IJ,out Ͳ))Ͳ=100;}Ͳ-=0.00001f;for(;ú<ĵ.ϳ();ú++){if(!ƒ.Ȝ(30))return false;
- IMyTerminalBlock å=ĵ.ή[ú];IMySlimBlock ͱ=å.CubeGrid.GetCubeBlock(å.Position);if(ͱ==null)continue;float Ͱ=(ʹ?ͱ.MaxIntegrity:ͱ.
- BuildIntegrity);if(!ͳ)Ͱ-=ͱ.CurrentDamage;float ʑ=100*(Ͱ/ͱ.MaxIntegrity);if(ʑ>=Ͳ)continue;Ɯ=true;string ˮ=n.ǜ(ͱ.FatBlock.
- DisplayNameText,n.ɞ*0.69f-n.ɗ);n.Ƌ(ˮ+' ');if(!ʕ){n.Ʃ(n.ȅ(Ͱ)+" / ",0.69f);n.Ƌ(n.ȅ(ͱ.MaxIntegrity));}n.ƴ(' '+ʑ.ToString("0.0")+'%');n.Ư(ʑ
- );}if(!Ɯ)n.Ǎ(ď.ǡ("D3"));return true;}}class ˬ:ƙ{public ˬ(){Ɍ=1;ɐ="CmdDateTime";}public override bool ƕ(bool ö){bool ˤ=(Ƙ.
- ʢ.StartsWith("datetime"));bool ˣ=(Ƙ.ʢ.StartsWith("date"));bool ˢ=Ƙ.ʢ.Contains("c");int ˡ=Ƙ.ʢ.IndexOf('+');if(ˡ<0)ˡ=Ƙ.ʢ.
- IndexOf('-');float ˠ=0;if(ˡ>=0)float.TryParse(Ƙ.ʢ.Substring(ˡ),out ˠ);DateTime ˑ=DateTime.Now.AddHours(ˠ);string ķ="";int ː=Ƙ.ˎ
- .IndexOf(' ');if(ː>=0)ķ=Ƙ.ˎ.Substring(ː+1);if(!ˤ){if(!ˣ)ķ+=ˑ.ToShortTimeString();else ķ+=ˑ.ToShortDateString();}else{if(ķ
- =="")ķ=String.Format("{0:d} {0:t}",ˑ);else{ķ=ķ.Replace("/","\\/");ķ=ķ.Replace(":","\\:");ķ=ķ.Replace("\"","\\\"");ķ=ķ.
- Replace("'","\\'");ķ=ˑ.ToString(ķ+' ');ķ=ķ.Substring(0,ķ.Length-1);}}if(ˢ)n.Ƣ(ķ);else n.Ǎ(ķ);return true;}}class Ͷ:ƙ{public Ͷ()
- {Ɍ=5;ɐ="CmdDetails";}string Ώ="";α ĵ;public override void Ʉ(){ĵ=new α(ƒ,n.Ő);if(Ƙ.ˉ.Count>0)Ώ=Ƙ.ˉ[0].IJ.Trim();}int ì=0;
- int ú=1;bool Ύ=false;IMyTerminalBlock å;public override bool ƕ(bool ö){if(Ƙ.ʹ==""||Ƙ.ʹ=="*"){n.Ǎ("Details: "+ď.ǡ("D1"));
- return true;}if(!ö){ĵ.ų();Ύ=Ƙ.ʢ.Contains("non");ì=0;ú=1;}if(ì==0){if(!ĵ.κ(Ƙ.ʹ,ö))return true;if(ĵ.ϳ()<=0){n.Ǎ("Details: "+ď.ǡ(
- "D2"));return true;}ì++;ö=false;}int Ό=(Ƙ.ʢ.EndsWith("x")?1:0);if(ì==1){if(!ö){å=ĵ.ή[0];if(!Ύ)n.Ǎ(å.CustomName);}if(!Ή(å,Ό,ö
- ))return false;ì++;ö=false;}for(;ú<ĵ.ϳ();ú++){if(!ö){å=ĵ.ή[ú];if(!Ύ){n.Ǎ("");n.Ǎ(å.CustomName);}}if(!Ή(å,Ό,ö))return
- false;ö=false;}return true;}string[]lj;int Ί=0;bool ΐ=false;ʊ ƫ=new ʊ();bool Ή(IMyTerminalBlock å,int Έ,bool ö){if(!ö){lj=ƫ.ų()
- .ʄ(å.DetailedInfo).ʄ('\n').ʄ(å.CustomInfo).ɓ().Split('\n');Ί=Έ;ΐ=(Ώ.Length==0);}for(;Ί<lj.Length;Ί++){if(!ƒ.Ȝ(5))return
- false;if(lj[Ί].Length==0)continue;if(!ΐ){if(!lj[Ί].Contains(Ώ))continue;ΐ=true;}n.Ǎ(ƫ.ų().ʄ(" ").ʄ(lj[Ί]));}return true;}}class
- Ά:ƙ{public Ά(){Ɍ=1;ɐ="CmdDistance";}string ͽ="";string[]ͼ;Vector3D ͻ;string ͺ="";bool ʸ=false;public override void Ʉ(){ʸ=
- false;if(Ƙ.ˉ.Count<=0)return;ͽ=Ƙ.ˉ[0].IJ.Trim();ͼ=ͽ.Split(':');if(ͼ.Length<5||ͼ[0]!="GPS")return;double ͷ,Њ,Җ;if(!double.
- TryParse(ͼ[2],out ͷ))return;if(!double.TryParse(ͼ[3],out Њ))return;if(!double.TryParse(ͼ[4],out Җ))return;ͻ=new Vector3D(ͷ,Њ,Җ);
- ͺ=ͼ[1];ʸ=true;}public override bool ƕ(bool ö){if(!ʸ){n.Ǎ("Distance: "+ď.ǡ("DTU")+" '"+ͽ+"'.");return true;}
- IMyTerminalBlock å=j.D.å;if(Ƙ.ʹ!=""&&Ƙ.ʹ!="*"){å=n.ƿ.GetBlockWithName(Ƙ.ʹ);if(å==null){n.Ǎ("Distance: "+ď.ǡ("P1")+": "+Ƙ.ʹ);return true;
- }}double ъ=Vector3D.Distance(å.GetPosition(),ͻ);n.Ƌ(ͺ+": ");n.ƴ(n.ȅ(ъ)+"m ");return true;}}class ҕ:ƙ{α ĵ;public ҕ(){Ɍ=2;ɐ
- ="CmdDocked";}public override void Ʉ(){ĵ=new α(ƒ,n.Ő);}int ì=0;int Ҕ=0;bool ғ=false;bool Ғ=false;IMyShipConnector ʼn;
- public override bool ƕ(bool ö){if(!ö){if(Ƙ.ʢ.EndsWith("e"))ғ=true;if(Ƙ.ʢ.Contains("cn"))Ғ=true;ĵ.ų();ì=0;}if(ì==0){if(!ĵ.ϴ(
- "connector",Ƙ.ʹ,ö))return false;ì++;Ҕ=0;ö=false;}if(ĵ.ϳ()<=0){n.Ǎ("Docked: "+ď.ǡ("DO1"));return true;}for(;Ҕ<ĵ.ϳ();Ҕ++){ʼn=ĵ.ή[Ҕ]as
- IMyShipConnector;if(ʼn.Status==MyShipConnectorStatus.Connected){if(Ғ){n.Ƌ(ʼn.CustomName+":");n.ƴ(ʼn.OtherConnector.CubeGrid.CustomName);}
- else{n.Ǎ(ʼn.OtherConnector.CubeGrid.CustomName);}}else{if(ғ){if(Ғ){n.Ƌ(ʼn.CustomName+":");n.ƴ("-");}else n.Ǎ("-");}}}return
- true;}}class ґ:ƙ{public ґ(){Ɍ=30;ɐ="CmdEcho";}public override bool ƕ(bool ö){string ʏ=(Ƙ.ʢ=="center"?"c":(Ƙ.ʢ=="right"?"r":
- "n"));switch(ʏ){case"c":n.Ƣ(Ƙ.ˍ);break;case"r":n.ƴ(Ƙ.ˍ);break;default:n.Ǎ(Ƙ.ˍ);break;}return true;}}class Ґ:ƙ{public Ґ(){Ɍ=
- 1;ɐ="CmdGravity";}public override bool ƕ(bool ö){string ʏ=(Ƙ.ʢ.Contains("nat")?"n":(Ƙ.ʢ.Contains("art")?"a":(Ƙ.ʢ.Contains
- ("tot")?"t":"s")));Vector3D ϔ;if(n.ǀ.ɯ==null){n.Ǎ("Gravity: "+ď.ǡ("GNC"));return true;}switch(ʏ){case"n":n.Ƌ(ď.ǡ("G2")+
- " ");ϔ=n.ǀ.ɯ.GetNaturalGravity();n.ƴ(ϔ.Length().ToString("F1")+" m/s²");break;case"a":n.Ƌ(ď.ǡ("G3")+" ");ϔ=n.ǀ.ɯ.
- GetArtificialGravity();n.ƴ(ϔ.Length().ToString("F1")+" m/s²");break;case"t":n.Ƌ(ď.ǡ("G1")+" ");ϔ=n.ǀ.ɯ.GetTotalGravity();n.ƴ(ϔ.Length().
- ToString("F1")+" m/s²");break;default:n.Ƌ(ď.ǡ("GN"));n.Ʃ(" | ",0.33f);n.Ʃ(ď.ǡ("GA")+" | ",0.66f);n.ƴ(ď.ǡ("GT"),1.0f);n.Ƌ("");ϔ=n
- .ǀ.ɯ.GetNaturalGravity();n.Ʃ(ϔ.Length().ToString("F1")+" | ",0.33f);ϔ=n.ǀ.ɯ.GetArtificialGravity();n.Ʃ(ϔ.Length().
- ToString("F1")+" | ",0.66f);ϔ=n.ǀ.ɯ.GetTotalGravity();n.ƴ(ϔ.Length().ToString("F1")+" ");break;}return true;}}class ҏ:ƙ{public ҏ
- (){Ɍ=0.5;ɐ="CmdHScroll";}ʊ җ=new ʊ();int қ=1;public override bool ƕ(bool ö){if(җ.ʈ==0){string ķ=Ƙ.ˍ+" ";if(ķ.Length==0)
- return true;float Ҡ=n.ɞ;float Ʀ=n.Ǟ(ķ,n.ƹ);float ю=Ҡ/Ʀ;if(ю>1)җ.ʄ(string.Join("",Enumerable.Repeat(ķ,(int)Math.Ceiling(ю))));
- else җ.ʄ(ķ);if(ķ.Length>40)қ=3;else if(ķ.Length>5)қ=2;else қ=1;n.Ǎ(җ);return true;}bool Ψ=Ƙ.ʢ.EndsWith("r");if(Ψ){җ.ƫ.Insert
- (0,җ.ɓ(җ.ʈ-қ,қ));җ.ʃ(җ.ʈ-қ,қ);}else{җ.ʄ(җ.ɓ(0,қ));җ.ʃ(0,қ);}n.Ǎ(җ);return true;}}class ҟ:ƙ{public ҟ(){Ɍ=7;ɐ="CmdInvList";
- }float Ҟ=-1;float ҝ=-1;public override void Ʉ(){ĵ=new α(ƒ,n.Ő);ѻ=new Ɣ(ƒ,n);}ʊ ƫ=new ʊ(100);Dictionary<string,string>ҡ=
- new Dictionary<string,string>();void Ҝ(string Ȥ,double ѱ,int Ô){if(Ô>0){if(!Ҋ)n.Ƶ(Math.Min(100,100*ѱ/Ô),0.3f);string ˮ;if(ҡ
- .ContainsKey(Ȥ)){ˮ=ҡ[Ȥ];}else{if(!ҋ)ˮ=n.ǜ(Ȥ,n.ɞ*0.5f-ҙ-ҝ);else{if(!Ҋ)ˮ=n.ǜ(Ȥ,n.ɞ*0.5f);else ˮ=n.ǜ(Ȥ,n.ɞ*0.9f);}ҡ[Ȥ]=ˮ;}ƫ.
- ų();if(!Ҋ)ƫ.ʄ(' ');if(!ҋ){n.Ƌ(ƫ.ʄ(ˮ).ʄ(' '));n.Ʃ(n.ȅ(ѱ),1.0f,ҙ+ҝ);n.Ǎ(ƫ.ų().ʄ(" / ").ʄ(n.ȅ(Ô)));}else{n.Ǎ(ƫ.ʄ(ˮ));}}else{
- if(!ҋ){n.Ƌ(ƫ.ų().ʄ(Ȥ).ʄ(':'));n.ƴ(n.ȅ(ѱ),1.0f,Ҟ);}else n.Ǎ(ƫ.ų().ʄ(Ȥ));}}void Қ(string Ȥ,double ѱ,double Ѱ,int Ô){if(Ô>0){
- if(!ҋ){n.Ƌ(ƫ.ų().ʄ(Ȥ).ʄ(' '));n.Ʃ(n.ȅ(ѱ),0.51f);n.Ƌ(ƫ.ų().ʄ(" / ").ʄ(n.ȅ(Ô)));n.ƴ(ƫ.ų().ʄ(" +").ʄ(n.ȅ(Ѱ)).ʄ(" ").ʄ(ď.ǡ(
- "I1")),1.0f);}else n.Ǎ(ƫ.ų().ʄ(Ȥ));if(!Ҋ)n.Ư(Math.Min(100,100*ѱ/Ô));}else{if(!ҋ){n.Ƌ(ƫ.ų().ʄ(Ȥ).ʄ(':'));n.Ʃ(n.ȅ(ѱ),0.51f);n.
- ƴ(ƫ.ų().ʄ(" +").ʄ(n.ȅ(Ѱ)).ʄ(" ").ʄ(ď.ǡ("I1")),1.0f);}else{n.Ǎ(ƫ.ų().ʄ(Ȥ));}}}float ҙ=0;bool Ҙ(Ŷ ź){int Ô=(ҍ?ź.ŵ:ź.ƀ);if(Ô
- <0)return true;float Ʋ=n.Ǟ(n.ȅ(Ô),n.ƹ);if(Ʋ>ҙ)ҙ=Ʋ;return true;}List<Ŷ>Ѻ;int ѹ=0;int Ѹ=0;bool ѷ(bool ö,bool Ѷ,string Î,
- string О){if(!ö){Ѹ=0;ѹ=0;}if(Ѹ==0){if(ѿ){if((Ѻ=ѻ.ż(Î,ö,Ҙ))==null)return false;}else{if((Ѻ=ѻ.ż(Î,ö))==null)return false;}Ѹ++;ö=
- false;}if(Ѻ.Count>0){if(!Ѷ&&!ö){if(!n.Ƹ)n.Ǎ();n.Ƣ(ƫ.ų().ʄ("<< ").ʄ(О).ʄ(" ").ʄ(ď.ǡ("I2")).ʄ(" >>"));}for(;ѹ<Ѻ.Count;ѹ++){if(!
- ƒ.Ȝ(30))return false;double ѱ=Ѻ[ѹ].Ɖ;if(ҍ&&ѱ>=Ѻ[ѹ].ŵ)continue;int Ô=Ѻ[ѹ].ƀ;if(ҍ)Ô=Ѻ[ѹ].ŵ;string Ȥ=n.Dz(Ѻ[ѹ].Ï,Ѻ[ѹ].Î);Ҝ(Ȥ,
- ѱ,Ô);}}return true;}List<Ŷ>ѵ;int Ѵ=0;int ѳ=0;bool Ѳ(bool ö){if(!ö){Ѵ=0;ѳ=0;}if(ѳ==0){if((ѵ=ѻ.ż("Ingot",ö))==null)return
- false;ѳ++;ö=false;}if(ѵ.Count>0){if(!Ҍ&&!ö){if(!n.Ƹ)n.Ǎ();n.Ƣ(ƫ.ų().ʄ("<< ").ʄ(ď.ǡ("I4")).ʄ(" ").ʄ(ď.ǡ("I2")).ʄ(" >>"));}for(
- ;Ѵ<ѵ.Count;Ѵ++){if(!ƒ.Ȝ(40))return false;double ѱ=ѵ[Ѵ].Ɖ;if(ҍ&&ѱ>=ѵ[Ѵ].ŵ)continue;int Ô=ѵ[Ѵ].ƀ;if(ҍ)Ô=ѵ[Ѵ].ŵ;string Ȥ=n.Dz
- (ѵ[Ѵ].Ï,ѵ[Ѵ].Î);if(ѵ[Ѵ].Ï!="Scrap"){double Ѱ=ѻ.ſ(ѵ[Ѵ].Ï+" Ore",ѵ[Ѵ].Ï,"Ore").Ɖ;Қ(Ȥ,ѱ,Ѱ,Ô);}else Ҝ(Ȥ,ѱ,Ô);}}return true;}α
- ĵ=null;Ɣ ѻ;List<ʾ>ˉ;bool Ѽ,ʕ,ҍ,Ҍ,ҋ,Ҋ;int Ĵ,İ;string ҁ="";float Ҁ=0;bool ѿ=true;void Ѿ(){if(n.ƹ!=ҁ||Ҁ!=n.ɞ){ҡ.Clear();Ҁ=n.
- ɞ;}if(n.ƹ!=ҁ){ҝ=n.Ǟ(" / ",n.ƹ);Ҟ=n.Ǹ(' ',n.ƹ);ҁ=n.ƹ;}ĵ.ų();Ѽ=Ƙ.ʢ.EndsWith("x")||Ƙ.ʢ.EndsWith("xs");ʕ=Ƙ.ʢ.EndsWith("s")||Ƙ
- .ʢ.EndsWith("sx");ҍ=Ƙ.ʢ.StartsWith("missing");Ҍ=Ƙ.ʢ.Contains("list");Ҋ=Ƙ.ʢ.Contains("nb");ҋ=Ƙ.ʢ.Contains("nn");ѻ.ų();ˉ=Ƙ.
- ˉ;if(ˉ.Count==0)ˉ.Add(new ʾ("all"));}bool Ҏ(bool ö){if(!ö)Ĵ=0;for(;Ĵ<ˉ.Count;Ĵ++){ʾ IJ=ˉ[Ĵ];IJ.ˁ();string Î=IJ.ʼ;if(!ö)İ=0;
- else ö=false;for(;İ<IJ.ʻ.Count;İ++){if(!ƒ.Ȝ(30))return false;string[]Ć=IJ.ʻ[İ].Split(':');double Ȃ;if(string.Compare(Ć[0],
- "all",true)==0)Ć[0]="";int ŵ=1;int ƀ=-1;if(Ć.Length>1){if(Double.TryParse(Ć[1],out Ȃ)){if(ҍ)ŵ=(int)Math.Ceiling(Ȃ);else ƀ=(
- int)Math.Ceiling(Ȃ);}}string Ɵ=Ć[0];if(!string.IsNullOrEmpty(Î))Ɵ+=' '+Î;ѻ.Ơ(Ɵ,IJ.ʽ=="-",ŵ,ƀ);}}return true;}int Й=0;int ρ=0
- ;int ѽ=0;List<MyInventoryItem>ƃ=new List<MyInventoryItem>();bool Ң(bool ö){α ϱ=ĵ;if(!ö)Й=0;for(;Й<ϱ.ή.Count;Й++){if(!ö)ρ=
- 0;for(;ρ<ϱ.ή[Й].InventoryCount;ρ++){IMyInventory υ=ϱ.ή[Й].GetInventory(ρ);if(!ö){ѽ=0;ƃ.Clear();υ.GetItems(ƃ);}else ö=
- false;for(;ѽ<ƃ.Count;ѽ++){if(!ƒ.Ȝ(40))return false;MyInventoryItem À=ƃ[ѽ];string Ñ=n.ǵ(À);string Ï,Î;n.dz(Ñ,out Ï,out Î);if(
- string.Compare(Î,"ore",true)==0){if(ѻ.Ɲ(Ï+" ingot",Ï,"Ingot")&&ѻ.Ɲ(Ñ,Ï,Î))continue;}else{if(ѻ.Ɲ(Ñ,Ï,Î))continue;}n.dz(Ñ,out Ï,
- out Î);Ŷ ŷ=ѻ.ſ(Ñ,Ï,Î);ŷ.Ɖ+=(double)À.Amount;}}}return true;}int ì=0;public override bool ƕ(bool ö){if(!ö){Ѿ();ì=0;}for(;ì<=
- 10;ì++){switch(ì){case 0:if(!ĵ.κ(Ƙ.ʹ,ö))return false;break;case 1:if(!Ҏ(ö))return false;if(Ѽ)ì++;break;case 2:if(!ѻ.Ÿ(ö))
- return false;break;case 3:if(!Ң(ö))return false;break;case 4:if(!ѷ(ö,Ҍ,"Ore",ď.ǡ("I3")))return false;break;case 5:if(ʕ){if(!ѷ(
- ö,Ҍ,"Ingot",ď.ǡ("I4")))return false;}else{if(!Ѳ(ö))return false;}break;case 6:if(!ѷ(ö,Ҍ,"Component",ď.ǡ("I5")))return
- false;break;case 7:if(!ѷ(ö,Ҍ,"OxygenContainerObject",ď.ǡ("I6")))return false;break;case 8:if(!ѷ(ö,true,"GasContainerObject",
- ""))return false;break;case 9:if(!ѷ(ö,Ҍ,"AmmoMagazine",ď.ǡ("I7")))return false;break;case 10:if(!ѷ(ö,Ҍ,"PhysicalGunObject"
- ,ď.ǡ("I8")))return false;break;}ö=false;}ѿ=false;return true;}}class һ:ƙ{public һ(){Ɍ=2;ɐ="CmdAmount";}α ĵ;public
- override void Ʉ(){ĵ=new α(ƒ,n.Ő);}bool Һ;bool Ҹ=false;int ı=0;int Ĵ=0;int İ=0;public override bool ƕ(bool ö){if(!ö){Һ=!Ƙ.ʢ.
- EndsWith("x");Ҹ=Ƙ.ʢ.EndsWith("bar");if(Ҹ)Һ=true;if(Ƙ.ˉ.Count==0)Ƙ.ˉ.Add(new ʾ(
- "reactor,gatlingturret,missileturret,interiorturret,gatlinggun,launcherreload,launcher,oxygenerator"));Ĵ=0;}for(;Ĵ<Ƙ.ˉ.Count;Ĵ++){ʾ IJ=Ƙ.ˉ[Ĵ];if(!ö){IJ.ˁ();ı=0;İ=0;}for(;İ<IJ.ʻ.Count;İ++){if(ı==0){if(!ö){if(IJ.ʻ[İ]=="")
- continue;ĵ.ų();}string ľ=IJ.ʻ[İ];if(!ĵ.ϴ(ľ,Ƙ.ʹ,ö))return false;ı++;ö=false;}if(!ҿ(ö))return false;ö=false;ı=0;}}return true;}int
- ҷ=0;int ī=0;double ŷ=0;double ҹ=0;double Ҽ=0;int ѽ=0;IMyTerminalBlock Ӄ;IMyInventory Ӂ;List<MyInventoryItem>ƃ=new List<
- MyInventoryItem>();string Ӏ="";bool ҿ(bool ö){if(!ö){ҷ=0;ī=0;}for(;ҷ<ĵ.ϳ();ҷ++){if(ī==0){if(!ƒ.Ȝ(50))return false;Ӄ=ĵ.ή[ҷ];Ӂ=Ӄ.
- GetInventory(0);if(Ӂ==null)continue;ī++;ö=false;}if(!ö){ƃ.Clear();Ӂ.GetItems(ƃ);Ӏ=(ƃ.Count>0?ƃ[0].Type.ToString():"");ѽ=0;ŷ=0;ҹ=0;Ҽ=
- 0;}for(;ѽ<ƃ.Count;ѽ++){if(!ƒ.Ȝ(30))return false;MyInventoryItem À=ƃ[ѽ];if(À.Type.ToString()!=Ӏ)Ҽ+=(double)À.Amount;else ŷ
- +=(double)À.Amount;}string Ҿ=ď.ǡ("A1");string Ŵ=Ӄ.CustomName;if(ŷ>0&&(double)Ӂ.CurrentVolume>0){double ҽ=Ҽ*(double)Ӂ.
- CurrentVolume/(ŷ+Ҽ);ҹ=Math.Floor(ŷ*((double)Ӂ.MaxVolume-ҽ)/((double)Ӂ.CurrentVolume-ҽ));Ҿ=n.ȅ(ŷ)+" / "+(Ҽ>0?"~":"")+n.ȅ(ҹ);}if(!Ҹ||ҹ
- <=0){Ŵ=n.ǜ(Ŵ,n.ɞ*0.8f);n.Ƌ(Ŵ);n.ƴ(Ҿ);}if(Һ&&ҹ>0){double ʑ=100*ŷ/ҹ;n.Ư(ʑ);}ī=0;ö=false;}return true;}}class ӂ:ƙ{α ĵ;public
- ӂ(){Ɍ=2;ɐ="CmdMass";}public override void Ʉ(){ĵ=new α(ƒ,n.Ő);}bool ʕ=false;bool ʖ=false;int ì=0;public override bool ƕ(
- bool ö){if(!ö){ĵ.ų();ʕ=(Ƙ.ʢ[Ƙ.ʢ.Length-1]=='x');ʖ=(Ƙ.ʢ[Ƙ.ʢ.Length-1]=='p');ì=0;}if(ì==0){if(!ĵ.κ(Ƙ.ʹ,ö))return false;ì++;ö=
- false;}double Ç=ĵ.ς(ö);if(Double.IsNaN(Ç))return false;double ʒ=0;int ѥ=Ƙ.ˉ.Count;if(ѥ>0){double.TryParse(Ƙ.ˉ[0].IJ.Trim(),out
- ʒ);if(ѥ>1){string Ѥ=Ƙ.ˉ[1].IJ.Trim();char э=' ';if(Ѥ.Length>0)э=Char.ToLower(Ѥ[0]);int ј="kmgtpezy".IndexOf(э);if(ј>=0)ʒ*=
- Math.Pow(1000.0,ј);}ʒ*=1000.0;}n.Ƌ(ď.ǡ("M1")+" ");if(ʒ<=0){n.ƴ(n.ȃ(Ç,false));return true;}double ʑ=Ç/ʒ*100;if(!ʕ&&!ʖ){n.ƴ(n.
- ȃ(Ç)+" / "+n.ȃ(ʒ));n.Ƶ(ʑ,1.0f,n.ɗ);n.Ǎ(' '+n.Ǽ(ʑ)+"%");}else if(ʖ){n.ƴ(n.Ǽ(ʑ)+"%");n.Ư(ʑ);}else n.ƴ(n.Ǽ(ʑ)+"%");return
- true;}}class ҩ:ƙ{ȱ ǁ;α ĵ;public ҩ(){Ɍ=3;ɐ="CmdOxygen";}public override void Ʉ(){ǁ=n.ǁ;ĵ=new α(ƒ,n.Ő);}int ì=0;int ú=0;bool Ɯ
- =false;int Ҩ=0;double ȳ=0;double ȴ=0;double Ʈ;public override bool ƕ(bool ö){if(!ö){ĵ.ų();ì=0;ú=0;Ʈ=0;}if(ì==0){if(!ĵ.ϴ(
- "airvent",Ƙ.ʹ,ö))return false;Ɯ=(ĵ.ϳ()>0);ì++;ö=false;}if(ì==1){for(;ú<ĵ.ϳ();ú++){if(!ƒ.Ȝ(8))return false;IMyAirVent Ŏ=ĵ.ή[ú]as
- IMyAirVent;Ʈ=Math.Max(Ŏ.GetOxygenLevel()*100,0f);n.Ƌ(Ŏ.CustomName);if(Ŏ.CanPressurize)n.ƴ(n.Ǽ(Ʈ)+"%");else n.ƴ(ď.ǡ("O1"));n.Ư(Ʈ);}
- ì++;ö=false;}if(ì==2){if(!ö)ĵ.ų();if(!ĵ.ϴ("oxyfarm",Ƙ.ʹ,ö))return false;Ҩ=ĵ.ϳ();ì++;ö=false;}if(ì==3){if(Ҩ>0){if(!ö)ú=0;
- double ҧ=0;for(;ú<Ҩ;ú++){if(!ƒ.Ȝ(4))return false;IMyOxygenFarm Ҧ=ĵ.ή[ú]as IMyOxygenFarm;ҧ+=Ҧ.GetOutput()*100;}Ʈ=ҧ/Ҩ;if(Ɯ)n.Ǎ(
- "");Ɯ|=(Ҩ>0);n.Ƌ(ď.ǡ("O2"));n.ƴ(n.Ǽ(Ʈ)+"%");n.Ư(Ʈ);}ì++;ö=false;}if(ì==4){if(!ö)ĵ.ų();if(!ĵ.ϴ("oxytank",Ƙ.ʹ,ö))return
- false;Ҩ=ĵ.ϳ();if(Ҩ==0){if(!Ɯ)n.Ǎ(ď.ǡ("O3"));return true;}ì++;ö=false;}if(ì==5){if(!ö){ȳ=0;ȴ=0;ú=0;}if(!ǁ.ȶ(ĵ.ή,"oxygen",ref ȴ
- ,ref ȳ,ö))return false;if(ȳ==0){if(!Ɯ)n.Ǎ(ď.ǡ("O3"));return true;}Ʈ=ȴ/ȳ*100;if(Ɯ)n.Ǎ("");n.Ƌ(ď.ǡ("O4"));n.ƴ(n.Ǽ(Ʈ)+"%");n
- .Ư(Ʈ);ì++;}return true;}}class ҥ:ƙ{public ҥ(){Ɍ=1;ɐ="CmdPosition";}public override bool ƕ(bool ö){bool Ҥ=(Ƙ.ʢ=="posxyz");
- bool ͽ=(Ƙ.ʢ=="posgps");IMyTerminalBlock å=j.D.å;if(Ƙ.ʹ!=""&&Ƙ.ʹ!="*"){å=n.ƿ.GetBlockWithName(Ƙ.ʹ);if(å==null){n.Ǎ("Pos: "+ď.
- ǡ("P1")+": "+Ƙ.ʹ);return true;}}if(ͽ){Vector3D Ŧ=å.GetPosition();n.Ǎ("GPS:"+ď.ǡ("P2")+":"+Ŧ.GetDim(0).ToString("F2")+":"+
- Ŧ.GetDim(1).ToString("F2")+":"+Ŧ.GetDim(2).ToString("F2")+":");return true;}n.Ƌ(ď.ǡ("P2")+": ");if(!Ҥ){n.ƴ(å.GetPosition(
- ).ToString("F0"));return true;}n.Ǎ("");n.Ƌ(" X: ");n.ƴ(å.GetPosition().GetDim(0).ToString("F0"));n.Ƌ(" Y: ");n.ƴ(å.
- GetPosition().GetDim(1).ToString("F0"));n.Ƌ(" Z: ");n.ƴ(å.GetPosition().GetDim(2).ToString("F0"));return true;}}class ң:ƙ{public ң(
- ){Ɍ=3;ɐ="CmdPower";}ȱ ǁ;α Ҫ;α Ҷ;α ҵ;α Ч;α Ҵ;α ĵ;public override void Ʉ(){Ҫ=new α(ƒ,n.Ő);Ҷ=new α(ƒ,n.Ő);ҵ=new α(ƒ,n.Ő);Ч=
- new α(ƒ,n.Ő);Ҵ=new α(ƒ,n.Ő);ĵ=new α(ƒ,n.Ő);ǁ=n.ǁ;}string О;bool ҳ;string Х;string Ҳ;int ұ;int ì=0;public override bool ƕ(
- bool ö){if(!ö){О=(Ƙ.ʢ.EndsWith("x")?"s":(Ƙ.ʢ.EndsWith("p")?"p":(Ƙ.ʢ.EndsWith("v")?"v":"n")));ҳ=(Ƙ.ʢ.StartsWith(
- "powersummary"));Х="a";Ҳ="";if(Ƙ.ʢ.Contains("stored"))Х="s";else if(Ƙ.ʢ.Contains("in"))Х="i";else if(Ƙ.ʢ.Contains("out"))Х="o";ì=0;Ҫ.ų
- ();Ҷ.ų();ҵ.ų();Ч.ų();Ҵ.ų();}if(Х=="a"){if(ì==0){if(!Ҫ.ϴ("reactor",Ƙ.ʹ,ö))return false;ö=false;ì++;}if(ì==1){if(!Ҷ.ϴ(
- "hydrogenengine",Ƙ.ʹ,ö))return false;ö=false;ì++;}if(ì==2){if(!ҵ.ϴ("solarpanel",Ƙ.ʹ,ö))return false;ö=false;ì++;}if(ì==3){if(!Ҵ.ϴ(
- "windturbine",Ƙ.ʹ,ö))return false;ö=false;ì++;}}else if(ì==0)ì=4;if(ì==4){if(!Ч.ϴ("battery",Ƙ.ʹ,ö))return false;ö=false;ì++;}int Ұ=Ҫ.
- ϳ();int ү=Ҷ.ϳ();int Ү=ҵ.ϳ();int ҭ=Ч.ϳ();int Ҭ=Ҵ.ϳ();if(ì==5){ұ=0;if(Ұ>0)ұ++;if(ү>0)ұ++;if(Ү>0)ұ++;if(Ҭ>0)ұ++;if(ҭ>0)ұ++;
- if(ұ<1){n.Ǎ(ď.ǡ("P6"));return true;}if(Ƙ.ˉ.Count>0){if(Ƙ.ˉ[0].IJ.Length>0)Ҳ=Ƙ.ˉ[0].IJ;}ì++;ö=false;}if(Х!="a"){if(!Ш(Ч,(Ҳ==
- ""?ď.ǡ("P7"):Ҳ),Х,О,ö))return false;return true;}string Ц=ď.ǡ("P8");if(!ҳ){if(ì==6){if(Ұ>0)if(!љ(Ҫ,(Ҳ==""?ď.ǡ("P9"):Ҳ),О,ö
- ))return false;ì++;ö=false;}if(ì==7){if(ү>0)if(!љ(Ҷ,(Ҳ==""?ď.ǡ("P12"):Ҳ),О,ö))return false;ì++;ö=false;}if(ì==8){if(Ү>0)
- if(!љ(ҵ,(Ҳ==""?ď.ǡ("P10"):Ҳ),О,ö))return false;ì++;ö=false;}if(ì==9){if(Ҭ>0)if(!љ(Ҵ,(Ҳ==""?ď.ǡ("P13"):Ҳ),О,ö))return false
- ;ì++;ö=false;}if(ì==10){if(ҭ>0)if(!Ш(Ч,(Ҳ==""?ď.ǡ("P7"):Ҳ),Х,О,ö))return false;ì++;ö=false;}}else{Ц=ď.ǡ("P11");ұ=10;if(ì
- ==6)ì=11;}if(ұ==1)return true;if(!ö){ĵ.ų();ĵ.ϲ(Ҫ);ĵ.ϲ(Ҷ);ĵ.ϲ(ҵ);ĵ.ϲ(Ҵ);ĵ.ϲ(Ч);}if(!љ(ĵ,Ц,О,ö))return false;return true;}
- void М(double ʡ,double ƀ){double К=(ƀ>0?ʡ/ƀ*100:0);switch(О){case"s":n.ƴ(ƫ.ų().ʄ(' ').ʄ(К.ToString("F1")).ʄ("%"));break;case
- "v":n.ƴ(ƫ.ų().ʄ(n.ȅ(ʡ)).ʄ("W / ").ʄ(n.ȅ(ƀ)).ʄ("W"));break;case"c":n.ƴ(ƫ.ų().ʄ(n.ȅ(ʡ)).ʄ("W"));break;case"p":n.ƴ(ƫ.ų().ʄ(' '
- ).ʄ(К.ToString("F1")).ʄ("%"));n.Ư(К);break;default:n.ƴ(ƫ.ų().ʄ(n.ȅ(ʡ)).ʄ("W / ").ʄ(n.ȅ(ƀ)).ʄ("W"));n.Ƶ(К,1.0f,n.ɗ);n.ƴ(ƫ.
- ų().ʄ(' ').ʄ(К.ToString("F1")).ʄ("%"));break;}}double ҫ=0;double Ж=0,ѯ=0;int в=0;bool љ(α а,string Ц,string ʏ,bool ö){if(
- !ö){Ж=0;ѯ=0;в=0;}if(в==0){if(!ǁ.ȼ(а.ή,ǁ.ȯ,ref ҫ,ref ҫ,ref Ж,ref ѯ,ö))return false;в++;ö=false;}if(!ƒ.Ȝ(50))return false;
- double К=(ѯ>0?Ж/ѯ*100:0);n.Ƌ(Ц+": ");М(Ж*1000000,ѯ*1000000);return true;}double Я=0,Ю=0,Э=0,Ь=0;double Ы=0,Ъ=0;int Щ=0;ʊ ƫ=new
- ʊ(100);bool Ш(α Ч,string Ц,string Х,string ʏ,bool ö){if(!ö){Я=Ю=0;Э=Ь=0;Ы=Ъ=0;Щ=0;}if(Щ==0){if(!ǁ.ȫ(Ч.ή,ref Э,ref Ь,ref Я
- ,ref Ю,ref Ы,ref Ъ,ö))return false;Э*=1000000;Ь*=1000000;Я*=1000000;Ю*=1000000;Ы*=1000000;Ъ*=1000000;Щ++;ö=false;}double
- Ф=(Ъ>0?Ы/Ъ*100:0);double У=(Ю>0?Я/Ю*100:0);double б=(Ь>0?Э/Ь*100:0);bool Т=Х=="a";if(Щ==1){if(!ƒ.Ȝ(50))return false;if(Т)
- {if(ʏ!="p"){n.Ƌ(ƫ.ų().ʄ(Ц).ʄ(": "));n.ƴ(ƫ.ų().ʄ("(IN ").ʄ(n.ȅ(Э)).ʄ("W / OUT ").ʄ(n.ȅ(Я)).ʄ("W)"));}else n.Ǎ(ƫ.ų().ʄ(Ц).ʄ
- (": "));n.Ƌ(ƫ.ų().ʄ(" ").ʄ(ď.ǡ("P3")).ʄ(": "));}else n.Ƌ(ƫ.ų().ʄ(Ц).ʄ(": "));if(Т||Х=="s")switch(ʏ){case"s":n.ƴ(ƫ.ų().ʄ(
- ' ').ʄ(Ф.ToString("F1")).ʄ("%"));break;case"v":n.ƴ(ƫ.ų().ʄ(n.ȅ(Ы)).ʄ("Wh / ").ʄ(n.ȅ(Ъ)).ʄ("Wh"));break;case"p":n.ƴ(ƫ.ų().ʄ(
- ' ').ʄ(Ф.ToString("F1")).ʄ("%"));n.Ư(Ф);break;default:n.ƴ(ƫ.ų().ʄ(n.ȅ(Ы)).ʄ("Wh / ").ʄ(n.ȅ(Ъ)).ʄ("Wh"));n.Ƶ(Ф,1.0f,n.ɗ);n.ƴ
- (ƫ.ų().ʄ(' ').ʄ(Ф.ToString("F1")).ʄ("%"));break;}if(Х=="s")return true;Щ++;ö=false;}if(Щ==2){if(!ƒ.Ȝ(50))return false;if(
- Т)n.Ƌ(ƫ.ų().ʄ(" ").ʄ(ď.ǡ("P4")).ʄ(": "));if(Т||Х=="o")switch(ʏ){case"s":n.ƴ(ƫ.ų().ʄ(' ').ʄ(У.ToString("F1")).ʄ("%"));
- break;case"v":n.ƴ(ƫ.ų().ʄ(n.ȅ(Я)).ʄ("W / ").ʄ(n.ȅ(Ю)).ʄ("W"));break;case"p":n.ƴ(ƫ.ų().ʄ(' ').ʄ(У.ToString("F1")).ʄ("%"));n.Ư(
- У);break;default:n.ƴ(ƫ.ų().ʄ(n.ȅ(Я)).ʄ("W / ").ʄ(n.ȅ(Ю)).ʄ("W"));n.Ƶ(У,1.0f,n.ɗ);n.ƴ(ƫ.ų().ʄ(' ').ʄ(У.ToString("F1")).ʄ(
- "%"));break;}if(Х=="o")return true;Щ++;ö=false;}if(!ƒ.Ȝ(50))return false;if(Т)n.Ƌ(ƫ.ų().ʄ(" ").ʄ(ď.ǡ("P5")).ʄ(": "));if(Т
- ||Х=="i")switch(ʏ){case"s":n.ƴ(ƫ.ų().ʄ(' ').ʄ(б.ToString("F1")).ʄ("%"));break;case"v":n.ƴ(ƫ.ų().ʄ(n.ȅ(Э)).ʄ("W / ").ʄ(n.ȅ(
- Ь)).ʄ("W"));break;case"p":n.ƴ(ƫ.ų().ʄ(' ').ʄ(б.ToString("F1")).ʄ("%"));n.Ư(б);break;default:n.ƴ(ƫ.ų().ʄ(n.ȅ(Э)).ʄ("W / ")
- .ʄ(n.ȅ(Ь)).ʄ("W"));n.Ƶ(б,1.0f,n.ɗ);n.ƴ(ƫ.ų().ʄ(' ').ʄ(б.ToString("F1")).ʄ("%"));break;}return true;}}class г:ƙ{public г()
- {Ɍ=7;ɐ="CmdPowerTime";}class ф{public TimeSpan ċ=new TimeSpan(-1);public double Џ=-1;public double у=0;}ф т=new ф();α с;α
- р;public override void Ʉ(){с=new α(ƒ,n.Ő);р=new α(ƒ,n.Ő);}int п=0;double о=0;double н=0,х=0;double м=0,л=0,к=0;double й=0
- ,и=0;int з=0;private bool ж(string ʹ,out TimeSpan е,out double д,bool ö){MyResourceSourceComponent ȸ;
- MyResourceSinkComponent ȗ;double С=ɍ;ф Л=т;е=Л.ċ;д=Л.Џ;if(!ö){с.ų();р.ų();Л.Џ=0;п=0;о=0;н=х=0;м=0;л=к=0;й=и=0;з=0;}if(п==0){if(!с.ϴ("reactor",ʹ
- ,ö))return false;ö=false;п++;}if(п==1){for(;з<с.ή.Count;з++){if(!ƒ.Ȝ(6))return false;IMyReactor å=с.ή[з]as IMyReactor;if(
- å==null||!å.IsWorking)continue;if(å.Components.TryGet<MyResourceSourceComponent>(out ȸ)){н+=ȸ.CurrentOutputByType(n.ǁ.ȯ);
- х+=ȸ.MaxOutputByType(n.ǁ.ȯ);}о+=(double)å.GetInventory(0).CurrentMass;}ö=false;п++;}if(п==2){if(!р.ϴ("battery",ʹ,ö))
- return false;ö=false;п++;}if(п==3){if(!ö)з=0;for(;з<р.ή.Count;з++){if(!ƒ.Ȝ(15))return false;IMyBatteryBlock å=р.ή[з]as
- IMyBatteryBlock;if(å==null||!å.IsWorking)continue;if(å.Components.TryGet<MyResourceSourceComponent>(out ȸ)){л=ȸ.CurrentOutputByType(n.ǁ
- .ȯ);к=ȸ.MaxOutputByType(n.ǁ.ȯ);}if(å.Components.TryGet<MyResourceSinkComponent>(out ȗ)){л-=ȗ.CurrentInputByType(n.ǁ.ȯ);}
- double З=(л<0?(å.MaxStoredPower-å.CurrentStoredPower)/(-л/3600):0);if(З>Л.Џ)Л.Џ=З;if(å.ChargeMode==ChargeMode.Recharge)
- continue;й+=л;и+=к;м+=å.CurrentStoredPower;}ö=false;п++;}double Ж=н+й;if(Ж<=0)Л.ċ=TimeSpan.FromSeconds(-1);else{double Е=Л.ċ.
- TotalSeconds;double Д;double Г=(Л.у-о)/С;if(н<=0)Г=Math.Min(Ж,х)/3600000;double В=0;if(и>0)В=Math.Min(Ж,и)/3600;if(Г<=0&&В<=0)Д=-1;
- else if(Г<=0)Д=м/В;else if(В<=0)Д=о/Г;else{double Б=В;double А=(н<=0?Ж/3600:Г*Ж/н);Д=м/Б+о/А;}if(Е<=0||Д<0)Е=Д;else Е=(Е+Д)/
- 2;try{Л.ċ=TimeSpan.FromSeconds(Е);}catch{Л.ċ=TimeSpan.FromSeconds(-1);}}Л.у=о;д=Л.Џ;е=Л.ċ;return true;}int ì=0;bool ˏ=
- false;bool ʕ=false;bool ʖ=false;double Џ=0;TimeSpan Ȓ;int Ў=0,Ѝ=0,Ќ=0;int ǰ=0;int Ћ=0;public override bool ƕ(bool ö){if(!ö){ˏ
- =Ƙ.ʢ.EndsWith("bar");ʕ=(Ƙ.ʢ[Ƙ.ʢ.Length-1]=='x');ʖ=(Ƙ.ʢ[Ƙ.ʢ.Length-1]=='p');ì=0;Ў=Ѝ=Ќ=ǰ=0;Ћ=0;Џ=0;}if(ì==0){if(Ƙ.ˉ.Count>0
- ){for(;Ћ<Ƙ.ˉ.Count;Ћ++){if(!ƒ.Ȝ(100))return false;Ƙ.ˉ[Ћ].ˁ();if(Ƙ.ˉ[Ћ].ʻ.Count<=0)continue;string IJ=Ƙ.ˉ[Ћ].ʻ[0];int.
- TryParse(IJ,out ǰ);if(Ћ==0)Ў=ǰ;else if(Ћ==1)Ѝ=ǰ;else if(Ћ==2)Ќ=ǰ;}}ì++;ö=false;}if(ì==1){if(!ж(Ƙ.ʹ,out Ȓ,out Џ,ö))return false;ì
- ++;ö=false;}if(!ƒ.Ȝ(30))return false;double ċ=0;TimeSpan Р;try{Р=new TimeSpan(Ў,Ѝ,Ќ);}catch{Р=TimeSpan.FromSeconds(-1);}
- string ķ;if(Ȓ.TotalSeconds>0||Џ<=0){if(!ˏ)n.Ƌ(ď.ǡ("PT1")+" ");ķ=n.ǁ.ȓ(Ȓ);ċ=Ȓ.TotalSeconds;}else{if(!ˏ)n.Ƌ(ď.ǡ("PT2")+" ");ķ=n.
- ǁ.ȓ(TimeSpan.FromSeconds(Џ));if(Р.TotalSeconds>=Џ)ċ=Р.TotalSeconds-Џ;else ċ=0;}if(Р.Ticks<=0){n.ƴ(ķ);return true;}double
- ʑ=ċ/Р.TotalSeconds*100;if(ʑ>100)ʑ=100;if(ˏ){n.Ư(ʑ);return true;}if(!ʕ&&!ʖ){n.ƴ(ķ);n.Ƶ(ʑ,1.0f,n.ɗ);n.Ǎ(' '+ʑ.ToString(
- "0.0")+"%");}else if(ʖ){n.ƴ(ʑ.ToString("0.0")+"%");n.Ư(ʑ);}else n.ƴ(ʑ.ToString("0.0")+"%");return true;}}class П:ƙ{public П()
- {Ɍ=7;ɐ="CmdPowerUsed";}ȱ ǁ;α ĵ;public override void Ʉ(){ĵ=new α(ƒ,n.Ő);ǁ=n.ǁ;}string О;string Н;string ϛ;void М(double ʡ,
- double ƀ){double К=(ƀ>0?ʡ/ƀ*100:0);switch(О){case"s":n.ƴ(К.ToString("0.0")+"%",1.0f);break;case"v":n.ƴ(n.ȅ(ʡ)+"W / "+n.ȅ(ƀ)+
- "W",1.0f);break;case"c":n.ƴ(n.ȅ(ʡ)+"W",1.0f);break;case"p":n.ƴ(К.ToString("0.0")+"%",1.0f);n.Ư(К);break;default:n.ƴ(n.ȅ(ʡ)+
- "W / "+n.ȅ(ƀ)+"W");n.Ƶ(К,1.0f,n.ɗ);n.ƴ(' '+К.ToString("0.0")+"%");break;}}double Ȱ=0,Ȳ=0;int Й=0;int ì=0;ѡ И=new ѡ();public
- override bool ƕ(bool ö){if(!ö){О=(Ƙ.ʢ.EndsWith("x")?"s":(Ƙ.ʢ.EndsWith("usedp")||Ƙ.ʢ.EndsWith("topp")?"p":(Ƙ.ʢ.EndsWith("v")?"v":
- (Ƙ.ʢ.EndsWith("c")?"c":"n"))));Н=(Ƙ.ʢ.Contains("top")?"top":"");ϛ=(Ƙ.ˉ.Count>0?Ƙ.ˉ[0].IJ:ď.ǡ("PU1"));Ȱ=Ȳ=0;ì=0;Й=0;ĵ.ų();И
- .Ã();}if(ì==0){if(!ĵ.κ(Ƙ.ʹ,ö))return false;ö=false;ì++;}MyResourceSinkComponent ȗ;MyResourceSourceComponent ȸ;switch(Н){
- case"top":if(ì==1){for(;Й<ĵ.ή.Count;Й++){if(!ƒ.Ȝ(20))return false;IMyTerminalBlock å=ĵ.ή[Й];if(å.Components.TryGet<
- MyResourceSinkComponent>(out ȗ)){ListReader<MyDefinitionId>Ȕ=ȗ.AcceptedResources;if(Ȕ.IndexOf(ǁ.ȯ)<0)continue;Ȱ=ȗ.CurrentInputByType(ǁ.ȯ)*
- 1000000;}else continue;И.X(Ȱ,å);}ö=false;ì++;}if(И.º()<=0){n.Ǎ("PowerUsedTop: "+ď.ǡ("D2"));return true;}int ļ=10;if(Ƙ.ˉ.Count>0
- )if(!int.TryParse(ϛ,out ļ)){ļ=10;}if(ļ>И.º())ļ=И.º();if(ì==2){if(!ö){Й=И.º()-1;И.v();}for(;Й>=И.º()-ļ;Й--){if(!ƒ.Ȝ(30))
- return false;IMyTerminalBlock å=И.z(Й);string Ŵ=n.ǜ(å.CustomName,n.ɞ*0.4f);if(å.Components.TryGet<MyResourceSinkComponent>(out
- ȗ)){Ȱ=ȗ.CurrentInputByType(ǁ.ȯ)*1000000;Ȳ=ȗ.MaxRequiredInputByType(ǁ.ȯ)*1000000;}n.Ƌ(Ŵ+" ");М(Ȱ,Ȳ);}}break;default:for(;Й
- <ĵ.ή.Count;Й++){if(!ƒ.Ȝ(10))return false;double Ѣ;IMyTerminalBlock å=ĵ.ή[Й];if(å.Components.TryGet<
- MyResourceSinkComponent>(out ȗ)){ListReader<MyDefinitionId>Ȕ=ȗ.AcceptedResources;if(Ȕ.IndexOf(ǁ.ȯ)<0)continue;Ѣ=ȗ.CurrentInputByType(ǁ.ȯ);Ȳ+=ȗ.
- MaxRequiredInputByType(ǁ.ȯ);}else continue;if(å.Components.TryGet<MyResourceSourceComponent>(out ȸ)&&(å as IMyBatteryBlock!=null)){Ѣ-=ȸ.
- CurrentOutputByType(ǁ.ȯ);if(Ѣ<=0)continue;}Ȱ+=Ѣ;}n.Ƌ(ϛ);М(Ȱ*1000000,Ȳ*1000000);break;}return true;}public class ѡ{List<KeyValuePair<double,
- IMyTerminalBlock>>Ѡ=new List<KeyValuePair<double,IMyTerminalBlock>>();public void X(double џ,IMyTerminalBlock å){Ѡ.Add(new KeyValuePair<
- double,IMyTerminalBlock>(џ,å));}public int º(){return Ѡ.Count;}public IMyTerminalBlock z(int w){return Ѡ[w].Value;}public void
- Ã(){Ѡ.Clear();}public void v(){Ѡ.Sort((Ё,ѝ)=>(Ё.Key.CompareTo(ѝ.Key)));}}}class ќ:ƙ{α ĵ;public ќ(){Ɍ=1;ɐ="CmdProp";}
- public override void Ʉ(){ĵ=new α(ƒ,n.Ő);}int ì=0;int Й=0;bool ћ=false;string њ=null;string ў=null;string ѣ=null;string Ѩ=null;
- public override bool ƕ(bool ö){if(!ö){ћ=Ƙ.ʢ.StartsWith("props");њ=ў=ѣ=Ѩ=null;Й=0;ì=0;}if(Ƙ.ˉ.Count<1){n.Ǎ(Ƙ.ʢ+": "+
- "Missing property name.");return true;}if(ì==0){if(!ö)ĵ.ų();if(!ĵ.κ(Ƙ.ʹ,ö))return false;Ѯ();ì++;ö=false;}if(ì==1){int ļ=ĵ.ϳ();if(ļ==0){n.Ǎ(Ƙ.ʢ+
- ": "+"No blocks found.");return true;}for(;Й<ļ;Й++){if(!ƒ.Ȝ(50))return false;IMyTerminalBlock å=ĵ.ή[Й];if(å.GetProperty(њ)!=
- null){if(ў==null){string ϛ=n.ǜ(å.CustomName,n.ɞ*0.7f);n.Ƌ(ϛ);}else n.Ƌ(ў);n.ƴ(ѭ(å,њ,ѣ,Ѩ));if(!ћ)return true;}}}return true;}
- void Ѯ(){њ=Ƙ.ˉ[0].IJ;if(Ƙ.ˉ.Count>1){if(!ћ)ў=Ƙ.ˉ[1].IJ;else ѣ=Ƙ.ˉ[1].IJ;if(Ƙ.ˉ.Count>2){if(!ћ)ѣ=Ƙ.ˉ[2].IJ;else Ѩ=Ƙ.ˉ[2].IJ;if(Ƙ.ˉ
- .Count>3&&!ћ)Ѩ=Ƙ.ˉ[3].IJ;}}}string ѭ(IMyTerminalBlock å,string Ѭ,string ѫ=null,string Ѫ=null){return(å.GetValue<bool>(Ѭ)?(
- ѫ!=null?ѫ:ď.ǡ("W9")):(Ѫ!=null?Ѫ:ď.ǡ("W1")));}}class ѩ:ƙ{public ѩ(){Ɍ=5;ɐ="CmdShipCtrl";}α ĵ;public override void Ʉ(){ĵ=
- new α(ƒ,n.Ő);}public override bool ƕ(bool ö){if(!ö)ĵ.ų();if(!ĵ.ϴ("shipctrl",Ƙ.ʹ,ö))return false;if(ĵ.ϳ()<=0){if(Ƙ.ʹ!=""&&Ƙ.
- ʹ!="*")n.Ǎ(Ƙ.ʢ+": "+ď.ǡ("SC1")+" ("+Ƙ.ʹ+")");else n.Ǎ(Ƙ.ʢ+": "+ď.ǡ("SC1"));return true;}if(Ƙ.ʢ.StartsWith("damp")){bool Ќ
- =(ĵ.ή[0]as IMyShipController).DampenersOverride;n.Ƌ(ď.ǡ("SCD"));n.ƴ(Ќ?"ON":"OFF");}else{bool Ќ=(ĵ.ή[0]as
- IMyShipController).IsUnderControl;n.Ƌ(ď.ǡ("SCO"));n.ƴ(Ќ?"YES":"NO");}return true;}}class ѧ:ƙ{public ѧ(){Ɍ=1;ɐ="CmdShipMass";}public
- override bool ƕ(bool ö){bool Ѧ=Ƙ.ʢ.EndsWith("base");double ʒ=0;if(Ƙ.ʹ!="")double.TryParse(Ƙ.ʹ.Trim(),out ʒ);int ѥ=Ƙ.ˉ.Count;if(ѥ
- >0){string Ѥ=Ƙ.ˉ[0].IJ.Trim();char э=' ';if(Ѥ.Length>0)э=Char.ToLower(Ѥ[0]);int ј="kmgtpezy".IndexOf(э);if(ј>=0)ʒ*=Math.
- Pow(1000.0,ј);}double ɸ=(Ѧ?n.ǀ.ʁ:n.ǀ.ɷ);if(!Ѧ)n.Ƌ(ď.ǡ("SM1")+" ");else n.Ƌ(ď.ǡ("SM2")+" ");n.ƴ(n.ȃ(ɸ,true,'k')+" ");if(ʒ>0)
- n.Ư(ɸ/ʒ*100);return true;}}class ѓ:ƙ{public ѓ(){Ɍ=0.5;ɐ="CmdSpeed";}public override bool ƕ(bool ö){double ʒ=0;double ю=1;
- string э="m/s";if(Ƙ.ʢ.Contains("kmh")){ю=3.6;э="km/h";}else if(Ƙ.ʢ.Contains("mph")){ю=2.23694;э="mph";}if(Ƙ.ʹ!="")double.
- TryParse(Ƙ.ʹ.Trim(),out ʒ);n.Ƌ(ď.ǡ("S1")+" ");n.ƴ((n.ǀ.ʀ*ю).ToString("F1")+" "+э+" ");if(ʒ>0)n.Ư(n.ǀ.ʀ/ʒ*100);return true;}}
- class ь:ƙ{public ь(){Ɍ=1;ɐ="CmdStopTask";}public override bool ƕ(bool ö){double ы=0;if(Ƙ.ʢ.Contains("best"))ы=n.ǀ.ʀ/n.ǀ.ɼ;
- else ы=n.ǀ.ʀ/n.ǀ.ɹ;double ъ=n.ǀ.ʀ/2*ы;if(Ƙ.ʢ.Contains("time")){n.Ƌ(ď.ǡ("ST"));if(double.IsNaN(ы)){n.ƴ("N/A");return true;}
- string ķ="";try{TimeSpan ˑ=TimeSpan.FromSeconds(ы);if((int)ˑ.TotalDays>0)ķ=" > 24h";else{if(ˑ.Hours>0)ķ=ˑ.Hours+"h ";if(ˑ.
- Minutes>0||ķ!="")ķ+=ˑ.Minutes+"m ";ķ+=ˑ.Seconds+"s";}}catch{ķ="N/A";}n.ƴ(ķ);return true;}n.Ƌ(ď.ǡ("SD"));if(!double.IsNaN(ъ)&&!
- double.IsInfinity(ъ))n.ƴ(n.ȅ(ъ)+"m ");else n.ƴ("N/A");return true;}}class щ:ƙ{ȱ ǁ;α ĵ;public щ(){Ɍ=2;ɐ="CmdTanks";}public
- override void Ʉ(){ǁ=n.ǁ;ĵ=new α(ƒ,n.Ő);}int ì=0;char О='n';string ш;double ч=0;double ц=0;double Ʈ;bool ˏ=false;public override
- bool ƕ(bool ö){List<ʾ>ˉ=Ƙ.ˉ;if(ˉ.Count==0){n.Ǎ(ď.ǡ("T4"));return true;}if(!ö){О=(Ƙ.ʢ.EndsWith("x")?'s':(Ƙ.ʢ.EndsWith("p")?
- 'p':(Ƙ.ʢ.EndsWith("v")?'v':'n')));ˏ=Ƙ.ʢ.EndsWith("bar");ì=0;if(ш==null){ш=ˉ[0].IJ.Trim();ш=char.ToUpper(ш[0])+ш.Substring(1)
- .ToLower();}ĵ.ų();ч=0;ц=0;}if(ì==0){if(!ĵ.ϴ("oxytank",Ƙ.ʹ,ö))return false;ö=false;ì++;}if(ì==1){if(!ĵ.ϴ("hydrogenengine",
- Ƙ.ʹ,ö))return false;ö=false;ì++;}if(ì==2){if(!ǁ.ȶ(ĵ.ή,ш,ref ч,ref ц,ö))return false;ö=false;ì++;}if(ц==0){n.Ǎ(String.
- Format(ď.ǡ("T5"),ш));return true;}Ʈ=ч/ц*100;if(ˏ){n.Ư(Ʈ);return true;}n.Ƌ(ш);switch(О){case's':n.ƴ(' '+n.Ǽ(Ʈ)+"%");break;case
- 'v':n.ƴ(n.ȅ(ч)+"L / "+n.ȅ(ц)+"L");break;case'p':n.ƴ(' '+n.Ǽ(Ʈ)+"%");n.Ư(Ʈ);break;default:n.ƴ(n.ȅ(ч)+"L / "+n.ȅ(ц)+"L");n.Ƶ(
- Ʈ,1.0f,n.ɗ);n.ƴ(' '+Ʈ.ToString("0.0")+"%");break;}return true;}}class ї{ɔ n=null;public string I="Debug";public float і=
- 1.0f;public List<ʊ>lj=new List<ʊ>();public int Ŗ=0;public float ѕ=0;public ї(ɔ Û){n=Û;lj.Add(new ʊ());}public void є(string ķ)
- {lj[Ŗ].ʄ(ķ);}public void є(ʊ ƪ){lj[Ŗ].ʄ(ƪ);}public void ђ(){lj.Add(new ʊ());Ŗ++;ѕ=0;}public void ђ(string ǎ){lj[Ŗ].ʄ(ǎ);ђ();}
- public void ё(List<ʊ>ѐ){if(lj[Ŗ].ʈ==0)lj.RemoveAt(Ŗ);else Ŗ++;lj.AddList(ѐ);Ŗ+=ѐ.Count-1;ђ();}public List<ʊ>ţ(){if(lj[Ŗ].ʈ==0)
- return lj.GetRange(0,Ŗ);else return lj;}public void я(string Nj,string O=""){string[]lj=Nj.Split('\n');for(int E=0;E<lj.Length;E++)ђ
- (O+lj[E]);}public void Ƭ(){lj.Clear();ђ();Ŗ=0;}public int ű(){return Ŗ+(lj[Ŗ].ʈ>0?1:0);}public string Ť(){return String.Join
- ("\n",lj);}public void ţ(List<ʊ>Ţ,int š,int Š){int ş=š+Š;int Ş=ű();if(ş>Ş)ş=Ş;for(int E=š;E<ş;E++)Ţ.Add(lj[E]);}}class ŝ{ɔ
- n=null;public float Ŝ=1.0f;public int ś=17;public int Ś=0;int ř=1;int Ř=1;public List<ї>ŗ=new List<ї>();public int Ŗ=0;
- public ŝ(ɔ Û){n=Û;}public void ŕ(int ļ){Ř=ļ;}public void ť(){ś=(int)Math.Floor(ɔ.ɨ*Ŝ*Ř/ɔ.ɦ);}public void Ŕ(ї ķ){ŗ.Add(ķ);}
- public void ų(){ŗ.Clear();}public int ű(){int ļ=0;foreach(var ķ in ŗ){ļ+=ķ.ű();}return ļ;}ʊ Ű=new ʊ(256);public ʊ Ť(){Ű.ų();
- int ļ=ŗ.Count;for(int E=0;E<ļ-1;E++){Ű.ʄ(ŗ[E].Ť());Ű.ʄ("\n");}if(ļ>0)Ű.ʄ(ŗ[ļ-1].Ť());return Ű;}List<ʊ>ů=new List<ʊ>(20);
- public ʊ Ů(int ŭ=0){Ű.ų();ů.Clear();if(Ř<=0)return Ű;int Ų=ŗ.Count;int Ŭ=0;int ū=(ś/Ř);int Ū=(ŭ*ū);int Ŧ=Ś+Ū;int ũ=Ŧ+ū;bool Ũ=
- false;for(int E=0;E<Ų;E++){ї ķ=ŗ[E];int Ş=ķ.ű();int ŧ=Ŭ;Ŭ+=Ş;if(!Ũ&&Ŭ>Ŧ){int š=Ŧ-ŧ;if(Ŭ>=ũ){ķ.ţ(ů,š,ũ-ŧ-š);break;}Ũ=true;ķ.ţ(
- ů,š,Ş);continue;}if(Ũ){if(Ŭ>=ũ){ķ.ţ(ů,0,ũ-ŧ);break;}ķ.ţ(ů,0,Ş);}}int ļ=ů.Count;for(int E=0;E<ļ-1;E++){Ű.ʄ(ů[E]);Ű.ʄ("\n")
- ;}if(ļ>0)Ű.ʄ(ů[ļ-1]);return Ű;}public bool œ(int ļ=-1){if(ļ<=0)ļ=n.ɤ;if(Ś-ļ<=0){Ś=0;return true;}Ś-=ļ;return false;}
- public bool Ľ(int ļ=-1){if(ļ<=0)ļ=n.ɤ;int Ļ=ű();if(Ś+ļ+ś>=Ļ){Ś=Math.Max(Ļ-ś,0);return true;}Ś+=ļ;return false;}public int ĺ=0;
- public void Ĺ(){if(ĺ>0){ĺ--;return;}if(ű()<=ś){Ś=0;ř=1;return;}if(ř>0){if(Ľ()){ř=-1;ĺ=2;}}else{if(œ()){ř=1;ĺ=2;}}}}class ĸ:ƙ{
- public ĸ(){Ɍ=1;ɐ="CmdTextLCD";}public override bool ƕ(bool ö){string ķ="";if(Ƙ.ʹ!=""&&Ƙ.ʹ!="*"){IMyTextPanel þ=n.ƿ.
- GetBlockWithName(Ƙ.ʹ)as IMyTextPanel;if(þ==null){n.Ǎ("TextLCD: "+ď.ǡ("T1")+Ƙ.ʹ);return true;}ķ=þ.GetText();}else{n.Ǎ("TextLCD:"+ď.ǡ("T2"
- ));return true;}if(ķ.Length==0)return true;n.nj(ķ);return true;}}class Ķ:ƙ{public Ķ(){Ɍ=5;ɐ="CmdWorking";}α ĵ;public
- override void Ʉ(){ĵ=new α(ƒ,n.Ő);}int ì=0;int Ĵ=0;bool ij;public override bool ƕ(bool ö){if(!ö){ì=0;ij=(Ƙ.ʢ=="workingx");Ĵ=0;}if(Ƙ
- .ˉ.Count==0){if(ì==0){if(!ö)ĵ.ų();if(!ĵ.κ(Ƙ.ʹ,ö))return false;ì++;ö=false;}if(!Ń(ĵ,ij,"",ö))return false;return true;}for(
- ;Ĵ<Ƙ.ˉ.Count;Ĵ++){ʾ IJ=Ƙ.ˉ[Ĵ];if(!ö)IJ.ˁ();if(!Ŀ(IJ,ö))return false;ö=false;}return true;}int ı=0;int İ=0;string[]į;string ľ
- ;string Į;bool Ŀ(ʾ IJ,bool ö){if(!ö){ı=0;İ=0;}for(;İ<IJ.ʻ.Count;İ++){if(ı==0){if(!ö){if(string.IsNullOrEmpty(IJ.ʻ[İ]))
- continue;ĵ.ų();į=IJ.ʻ[İ].Split(':');ľ=į[0];Į=(į.Length>1?į[1]:"");}if(!string.IsNullOrEmpty(ľ)){if(!ĵ.ϴ(ľ,Ƙ.ʹ,ö))return false;}
- else{if(!ĵ.κ(Ƙ.ʹ,ö))return false;}ı++;ö=false;}if(!Ń(ĵ,ij,Į,ö))return false;ı=0;ö=false;}return true;}string ő(
- IMyTerminalBlock å){Ͻ Ő=n.Ő;if(!å.IsWorking)return ď.ǡ("W1");IMyProductionBlock ŏ=å as IMyProductionBlock;if(ŏ!=null)if(ŏ.IsProducing)
- return ď.ǡ("W2");else return ď.ǡ("W3");IMyAirVent Ŏ=å as IMyAirVent;if(Ŏ!=null){if(Ŏ.CanPressurize)return(Ŏ.GetOxygenLevel()*
- 100).ToString("F1")+"%";else return ď.ǡ("W4");}IMyGasTank ō=å as IMyGasTank;if(ō!=null)return(ō.FilledRatio*100).ToString(
- "F1")+"%";IMyBatteryBlock Ō=å as IMyBatteryBlock;if(Ō!=null)return Ő.Ϝ(Ō);IMyJumpDrive ŋ=å as IMyJumpDrive;if(ŋ!=null)return
- Ő.ϗ(ŋ).ToString("0.0")+"%";IMyLandingGear Ŋ=å as IMyLandingGear;if(Ŋ!=null){switch((int)Ŋ.LockMode){case 0:return ď.ǡ(
- "W8");case 1:return ď.ǡ("W10");case 2:return ď.ǡ("W7");}}IMyDoor Œ=å as IMyDoor;if(Œ!=null){if(Œ.Status==DoorStatus.Open)
- return ď.ǡ("W5");return ď.ǡ("W6");}IMyShipConnector ʼn=å as IMyShipConnector;if(ʼn!=null){if(ʼn.Status==MyShipConnectorStatus.
- Unconnected)return ď.ǡ("W8");if(ʼn.Status==MyShipConnectorStatus.Connected)return ď.ǡ("W7");else return ď.ǡ("W10");}IMyLaserAntenna
- ň=å as IMyLaserAntenna;if(ň!=null)return Ő.ϙ(ň);IMyRadioAntenna Ň=å as IMyRadioAntenna;if(Ň!=null)return n.ȅ(Ň.Radius)+
- "m";IMyBeacon ņ=å as IMyBeacon;if(ņ!=null)return n.ȅ(ņ.Radius)+"m";IMyThrust Ņ=å as IMyThrust;if(Ņ!=null&&Ņ.ThrustOverride>
- 0)return n.ȅ(Ņ.ThrustOverride)+"N";return ď.ǡ("W9");}int ń=0;bool Ń(α ā,bool ł,string Ł,bool ö){if(!ö)ń=0;for(;ń<ā.ϳ();ń
- ++){if(!ƒ.Ȝ(20))return false;IMyTerminalBlock å=ā.ή[ń];string ŀ=(ł?(å.IsWorking?ď.ǡ("W9"):ď.ǡ("W1")):ő(å));if(!string.
- IsNullOrEmpty(Ł)&&String.Compare(ŀ,Ł,true)!=0)continue;if(ł)ŀ=ő(å);string Ŵ=å.CustomName;Ŵ=n.ǜ(Ŵ,n.ɞ*0.7f);n.Ƌ(Ŵ);n.ƴ(ŀ);}return true
- ;}}class ƙ:ɑ{public ї ķ=null;protected ʣ Ƙ;protected ɔ n;protected ė j;protected ǒ ď;public ƙ(){Ɍ=3600;ɐ="CommandTask";}
- public void Ɨ(ė f,ʣ Ɩ){j=f;n=j.n;Ƙ=Ɩ;ď=n.ď;}public virtual bool ƕ(bool ö){n.Ǎ(ď.ǡ("UC")+": '"+Ƙ.ˎ+"'");return true;}public
- override bool Ƀ(bool ö){ķ=n.Lj(ķ,j.D);if(!ö)n.Ƭ();return ƕ(ö);}}class Ɣ{Dictionary<string,string>Ɠ=new Dictionary<string,string>(
- StringComparer.InvariantCultureIgnoreCase){{"ingot","ingot"},{"ore","ore"},{"component","component"},{"tool","physicalgunobject"},{
- "ammo","ammomagazine"},{"oxygen","oxygencontainerobject"},{"gas","gascontainerobject"}};ȑ ƒ;ɔ n;ƅ Ƒ;ƅ Ɛ;ƅ Ə;Ƅ Ǝ;bool ƍ;public
- ƅ ƌ;public Ɣ(ȑ ƚ,ɔ Û,int J=20){Ƒ=new ƅ();Ɛ=new ƅ();Ə=new ƅ();ƍ=false;ƌ=new ƅ();ƒ=ƚ;n=Û;Ǝ=n.Ǝ;}public void ų(){Ə.Ã();Ɛ.Ã()
- ;Ƒ.Ã();ƍ=false;ƌ.Ã();}public void Ơ(string Ɵ,bool Ɗ=false,int ŵ=1,int ƀ=-1){if(string.IsNullOrEmpty(Ɵ)){ƍ=true;return;}
- string[]ƞ=Ɵ.Split(' ');string Î="";Ŷ ź=new Ŷ(Ɗ,ŵ,ƀ);if(ƞ.Length==2){if(!Ɠ.TryGetValue(ƞ[1],out Î))Î=ƞ[1];}string Ï=ƞ[0];if(Ɠ.
- TryGetValue(Ï,out ź.Î)){Ɛ.X(ź.Î,ź);return;}n.DZ(ref Ï,ref Î);if(string.IsNullOrEmpty(Î)){ź.Ï=Ï;Ƒ.X(ź.Ï,ź);return;}ź.Ï=Ï;ź.Î=Î;Ə.X(Ï+
- ' '+Î,ź);}public Ŷ ơ(string Ñ,string Ï,string Î){Ŷ ź;ź=Ə.µ(Ñ);if(ź!=null)return ź;ź=Ƒ.µ(Ï);if(ź!=null)return ź;ź=Ɛ.µ(Î);if(
- ź!=null)return ź;return null;}public bool Ɲ(string Ñ,string Ï,string Î){Ŷ ź;bool Ɯ=false;ź=Ɛ.µ(Î);if(ź!=null){if(ź.Ɗ)
- return true;Ɯ=true;}ź=Ƒ.µ(Ï);if(ź!=null){if(ź.Ɗ)return true;Ɯ=true;}ź=Ə.µ(Ñ);if(ź!=null){if(ź.Ɗ)return true;Ɯ=true;}return!(ƍ
- ||Ɯ);}public Ŷ ƛ(string Ñ,string Ï,string Î){Ŷ ŷ=new Ŷ();Ŷ ź=ơ(Ñ,Ï,Î);if(ź!=null){ŷ.ŵ=ź.ŵ;ŷ.ƀ=ź.ƀ;}ŷ.Ï=Ï;ŷ.Î=Î;ƌ.X(Ñ,ŷ);
- return ŷ;}public Ŷ ſ(string Ñ,string Ï,string Î){Ŷ ŷ=ƌ.µ(Ñ);if(ŷ==null)ŷ=ƛ(Ñ,Ï,Î);return ŷ;}int ž=0;List<Ŷ>Ž;public List<Ŷ>ż(
- string Î,bool ö,Func<Ŷ,bool>Ż=null){if(!ö){Ž=new List<Ŷ>();ž=0;}for(;ž<ƌ.º();ž++){if(!ƒ.Ȝ(5))return null;Ŷ ź=ƌ.z(ž);if(Ɲ(ź.Ï+
- ' '+ź.Î,ź.Ï,ź.Î))continue;if((string.Compare(ź.Î,Î,true)==0)&&(Ż==null||Ż(ź)))Ž.Add(ź);}return Ž;}int Ź=0;public bool Ÿ(
- bool ö){if(!ö){Ź=0;}for(;Ź<Ǝ.A.Count;Ź++){if(!ƒ.Ȝ(10))return false;Í À=Ǝ.ƃ[Ǝ.A[Ź]];if(!À.Ç)continue;string Ñ=À.Ì+' '+À.Ë;if(
- Ɲ(Ñ,À.Ì,À.Ë))continue;Ŷ ŷ=ſ(Ñ,À.Ì,À.Ë);if(ŷ.ƀ==-1)ŷ.ƀ=À.Ê;}return true;}}class Ŷ{public int ŵ;public int ƀ;public string
- Ï="";public string Î="";public bool Ɗ;public double Ɖ;public Ŷ(bool ƈ=false,int Ƈ=1,int Ɔ=-1){ŵ=Ƈ;Ɗ=ƈ;ƀ=Ɔ;}}class ƅ{
- Dictionary<string,Ŷ>Ö=new Dictionary<string,Ŷ>(StringComparer.InvariantCultureIgnoreCase);List<string>A=new List<string>();public
- void X(string ª,Ŷ À){if(!Ö.ContainsKey(ª)){A.Add(ª);Ö.Add(ª,À);}}public int º(){return Ö.Count;}public Ŷ µ(string ª){if(Ö.
- ContainsKey(ª))return Ö[ª];return null;}public Ŷ z(int w){return Ö[A[w]];}public void Ã(){A.Clear();Ö.Clear();}public void v(){A.
- Sort();}}class Ƅ{public Dictionary<string,Í>ƃ=new Dictionary<string,Í>(StringComparer.InvariantCultureIgnoreCase);Dictionary
- <string,Í>Ƃ=new Dictionary<string,Í>(StringComparer.InvariantCultureIgnoreCase);public List<string>A=new List<string>();
- public Dictionary<string,Í>Ɓ=new Dictionary<string,Í>(StringComparer.InvariantCultureIgnoreCase);public void Ƌ(string Ï,string
- Î,int Ô,string Ó,string Ò,bool Ç){if(Î=="Ammo")Î="AmmoMagazine";else if(Î=="Tool")Î="PhysicalGunObject";string Ñ=Ï+' '+Î;
- Í À=new Í(Ï,Î,Ô,Ó,Ò,Ç);ƃ.Add(Ñ,À);if(!Ƃ.ContainsKey(Ï))Ƃ.Add(Ï,À);if(Ò!="")Ɓ.Add(Ò,À);A.Add(Ñ);}public Í Ð(string Ï="",
- string Î=""){if(ƃ.ContainsKey(Ï+" "+Î))return ƃ[Ï+" "+Î];if(string.IsNullOrEmpty(Î)){Í À=null;Ƃ.TryGetValue(Ï,out À);return À;
- }if(string.IsNullOrEmpty(Ï))for(int E=0;E<ƃ.Count;E++){Í À=ƃ[A[E]];if(string.Compare(Î,À.Ë,true)==0)return À;}return null
- ;}}class Í{public string Ì;public string Ë;public int Ê;public string É;public string È;public bool Ç;public Í(string Æ,
- string Õ,int Å=0,string Ø="",string ë="",bool é=true){Ì=Æ;Ë=Õ;Ê=Å;É=Ø;È=ë;Ç=é;}}class è{ɔ n=null;public C ç=new C();public ŝ æ
- ;public IMyTerminalBlock å;public IMyTextSurface ä;public int ã=0;public int â=0;public string á="";public string ê="";
- public bool à=true;public IMyTextSurface Þ=>(Ü?ä:å as IMyTextSurface);public int Ý=>(Ü?(n.LJ(å)?0:1):ç.º());public bool Ü=false
- ;public è(ɔ Û,string Ú){n=Û;ê=Ú;}public è(ɔ Û,string Ú,IMyTerminalBlock Ù,IMyTextSurface F,int ß){n=Û;ê=Ú;å=Ù;ä=F;ã=ß;Ü=
- true;}public bool Ä(){return æ.ű()>æ.ś||æ.Ś!=0;}float r=1.0f;bool U=false;public float S(){if(U)return r;U=true;if(å.
- BlockDefinition.SubtypeId.Contains("Corner_LCD")){r=0.15f;if(å.BlockDefinition.SubtypeId.Contains("Flat"))r=0.1765f;if(å.
- BlockDefinition.SubtypeId.Contains("Small"))r*=1.8f;}return r;}bool R=false;public void Q(){if(R)return;if(!Ü){ç.v();å=ç.z(0);}int P=å.
- CustomName.IndexOf("!MARGIN:");if(P<0||P+8>=å.CustomName.Length){â=1;á=" ";}else{string O=å.CustomName.Substring(P+8);int N=O.
- IndexOf(" ");if(N>=0)O=O.Substring(0,N);if(!int.TryParse(O,out â))â=1;á=new String(' ',â);}if(å.CustomName.Contains("!NOSCROLL"
- ))à=false;else à=true;R=true;}public void L(ŝ K=null){if(æ==null||å==null)return;if(K==null)K=æ;if(!Ü){IMyTextSurface F=å
- as IMyTextSurface;if(F!=null){float J=F.FontSize;string I=F.Font;for(int E=0;E<ç.º();E++){IMyTextSurface D=ç.z(E)as
- IMyTextSurface;if(D==null)continue;D.Alignment=VRage.Game.GUI.TextPanel.TextAlignment.LEFT;D.FontSize=J;D.Font=I;string H=K.Ů(E).ɓ();D
- .ContentType=VRage.Game.GUI.TextPanel.ContentType.TEXT_AND_IMAGE;D.WriteText(H);}}}else{ä.Alignment=VRage.Game.GUI.
- TextPanel.TextAlignment.LEFT;ä.ContentType=VRage.Game.GUI.TextPanel.ContentType.TEXT_AND_IMAGE;ä.WriteText(K.Ů().ɓ());}R=false;}
- public void G(){if(å==null)return;if(Ü){ä.WriteText("");return;}IMyTextSurface F=å as IMyTextSurface;if(F==null)return;for(int
- E=0;E<ç.º();E++){IMyTextSurface D=ç.z(E)as IMyTextSurface;if(D==null)continue;D.WriteText("");}}}class C{Dictionary<
- string,IMyTerminalBlock>B=new Dictionary<string,IMyTerminalBlock>();Dictionary<IMyTerminalBlock,string>V=new Dictionary<
- IMyTerminalBlock,string>();List<string>A=new List<string>();public void X(string ª,IMyTerminalBlock À){if(!A.Contains(ª)){A.Add(ª);B.Add
- (ª,À);V.Add(À,ª);}}public void Â(string ª){if(A.Contains(ª)){A.Remove(ª);V.Remove(B[ª]);B.Remove(ª);}}public void Á(
- IMyTerminalBlock À){if(V.ContainsKey(À)){A.Remove(V[À]);B.Remove(V[À]);V.Remove(À);}}public int º(){return B.Count;}public
- IMyTerminalBlock µ(string ª){if(A.Contains(ª))return B[ª];return null;}public IMyTerminalBlock z(int w){return B[A[w]];}public void Ã(){
- A.Clear();B.Clear();V.Clear();}public void v(){A.Sort();}}class o:ɑ{public ɔ n;public è k;ė j;public o(ė f){j=f;n=j.n;k=j
- .D;Ɍ=0.5;ɐ="PanelDisplay";}double e=0;public void b(){e=0;}int a=0;int Z=0;bool W=true;double Y=double.MaxValue;int ì=0;
- public override bool Ƀ(bool ö){ƙ ę;if(!ö&&(j.Ě==false||j.ē==null||j.ē.Count<=0))return true;if(j.Ē.ğ>3)return ɇ(0);if(!ö){Z=0;
- W=false;Y=double.MaxValue;ì=0;}if(ì==0){while(Z<j.ē.Count){if(!ƒ.Ȝ(5))return false;if(j.Ĕ.TryGetValue(j.ē[Z],out ę)){if(!
- ę.Ɋ)return ɇ(ę.ɏ-ƒ.ȍ+0.001);if(ę.Ɏ>e)W=true;if(ę.ɏ<Y)Y=ę.ɏ;}Z++;}ì++;ö=false;}double Ę=Y-ƒ.ȍ+0.001;if(!W&&!k.Ä())return ɇ
- (Ę);n.Ǐ(k.æ,k);if(W){if(!ö){e=ƒ.ȍ;k.æ.ų();a=0;}while(a<j.ē.Count){if(!ƒ.Ȝ(7))return false;if(!j.Ĕ.TryGetValue(j.ē[a],out
- ę)){k.æ.ŗ.Add(n.Lj(null,k));n.Ƭ();n.Ǎ("ERR: No cmd task ("+j.ē[a]+")");a++;continue;}k.æ.Ŕ(ę.ķ);a++;}}n.Ǒ(k);j.Ē.ğ++;if(Ɍ<
- Ę&&!k.Ä())return ɇ(Ę);return true;}}class ė:ɑ{public ɔ n;public è D;public o Ė=null;string ĕ="N/A";public Dictionary<
- string,ƙ>Ĕ=new Dictionary<string,ƙ>();public List<string>ē=null;public ġ Ē;public bool Ě{get{return Ē.û;}}public ė(ġ đ,è Đ){Ɍ=
- 5;D=Đ;Ē=đ;n=đ.n;ɐ="PanelProcess";}ǒ ď;public override void Ʉ(){ď=n.ď;}ʣ Ď=null;ƙ č(string Č,bool ö){if(!ö)Ď=new ʣ(ƒ);if(!
- Ď.ˁ(Č,ö))return null;ƙ ċ=Ď.ˊ();ċ.Ɨ(this,Ď);ƒ.Ȗ(ċ,0);return ċ;}string Ċ="";void ĉ(){try{Ċ=D.å.ǧ(D.ã,n.ɥ);}catch{Ċ="";
- return;}Ċ=Ċ?.Replace("\\\n","\n");}int a=0;int ě=0;List<string>Ĥ=null;HashSet<string>ĭ=new HashSet<string>();int ī=0;bool Ī(
- bool ö){if(!ö){char[]ĩ={';','\n'};string Ĩ=Ċ.Replace("\\;","\f");if(Ĩ.StartsWith("@")){int ħ=Ĩ.IndexOf("\n");if(ħ<0){Ĩ="";}
- else{Ĩ=Ĩ.Substring(ħ+1);}}Ĥ=new List<string>(Ĩ.Split(ĩ,StringSplitOptions.RemoveEmptyEntries));ĭ.Clear();a=0;ě=0;ī=0;}while(
- a<Ĥ.Count){if(!ƒ.Ȝ(500))return false;if(Ĥ[a].StartsWith("//")){Ĥ.RemoveAt(a);continue;}Ĥ[a]=Ĥ[a].Replace('\f',';');if(!Ĕ.
- ContainsKey(Ĥ[a])){if(ī!=1)ö=false;ī=1;ƙ ę=č(Ĥ[a],ö);if(ę==null)return false;ö=false;Ĕ.Add(Ĥ[a],ę);ī=0;}if(!ĭ.Contains(Ĥ[a]))ĭ.Add(
- Ĥ[a]);a++;}if(ē!=null){ƙ ċ;while(ě<ē.Count){if(!ƒ.Ȝ(7))return false;if(!ĭ.Contains(ē[ě]))if(Ĕ.TryGetValue(ē[ě],out ċ)){ċ.
- Ʌ();Ĕ.Remove(ē[ě]);}ě++;}}ē=Ĥ;return true;}public override void ɂ(){if(ē!=null){ƙ ċ;for(int Ħ=0;Ħ<ē.Count;Ħ++){if(Ĕ.
- TryGetValue(ē[Ħ],out ċ))ċ.Ʌ();}ē=null;}if(Ė!=null){Ė.Ʌ();Ė=null;}else{}}ŝ Ĭ=null;string ĥ="";bool ģ=false;public override bool Ƀ(
- bool ö){if(D.Ý<=0){Ʌ();return true;}if(!ö){D.æ=n.Ǐ(D.æ,D);Ĭ=n.Ǐ(Ĭ,D);ĉ();if(Ċ==null){if(D.Ü){Ē.ó(D.ä,D.å as IMyTextPanel);}
- else{Ʌ();}return true;}if(D.å.CustomName!=ĥ){ģ=true;}else{ģ=false;}ĥ=D.å.CustomName;}if(Ċ!=ĕ){if(!Ī(ö))return false;if(Ċ==""
- ){ĕ="";if(Ē.û){if(Ĭ.ŗ.Count<=0)Ĭ.ŗ.Add(n.Lj(null,D));else n.Lj(Ĭ.ŗ[0],D);n.Ƭ();n.Ǎ(ď.ǡ("H1"));bool Ģ=D.à;D.à=false;n.Ǒ(D,Ĭ)
- ;D.à=Ģ;return true;}return this.ɇ(2);}ģ=true;}ĕ=Ċ;if(Ė!=null&&ģ){ƒ.ȧ(Ė);Ė.b();ƒ.Ȗ(Ė,0);}else if(Ė==null){Ė=new o(this);ƒ.
- Ȗ(Ė,0);}return true;}}class ġ:ɑ{const string Ġ="T:!LCD!";public int ğ=0;public ɔ n;public ü ç=new ü();α Ğ;α ĝ;Dictionary<
- è,ė>Ĝ=new Dictionary<è,ė>();public Dictionary<IMyTextSurface,è>Ĉ=new Dictionary<IMyTextSurface,è>();public bool û=false;ϖ
- Ą=null;public ġ(ɔ Û){Ɍ=5;n=Û;ɐ="ProcessPanels";}public override void Ʉ(){Ğ=new α(ƒ,n.Ő);ĝ=new α(ƒ,n.Ő);Ą=new ϖ(n,this);}
- int ù=0;bool ø(bool ö){if(!ö)ù=0;if(ù==0){if(!Ğ.κ(n.ɥ,ö))return false;ù++;ö=false;}if(ù==1){if(n.ɥ=="T:[LCD]"&&Ġ!="")if(!Ğ.
- κ(Ġ,ö))return false;ù++;ö=false;}return true;}string õ(IMyTerminalBlock å){int ô=å.CustomName.IndexOf("!LINK:");if(ô>=0&&
- å.CustomName.Length>ô+6){return å.CustomName.Substring(ô+6)+' '+å.Position.ToString();}return å.EntityId.ToString();}
- public void ó(IMyTextSurface F,IMyTextPanel D){è k;if(F==null)return;if(!Ĉ.TryGetValue(F,out k))return;if(D!=null){k.ç.Á(D);}Ĉ
- .Remove(F);if(k.Ý<=0||k.Ü){ė ò;if(Ĝ.TryGetValue(k,out ò)){ç.Á(k.ê);Ĝ.Remove(k);ò.Ʌ();}}}void ñ(IMyTerminalBlock å){
- IMyTextSurfaceProvider ð=å as IMyTextSurfaceProvider;IMyTextSurface F=å as IMyTextSurface;if(F!=null){ó(F,å as IMyTextPanel);return;}if(ð==
- null)return;for(int E=0;E<ð.SurfaceCount;E++){F=ð.GetSurface(E);ó(F,null);}}string Ú;string ï;bool î;int ú=0;int í=0;public
- override bool Ƀ(bool ö){if(!ö){Ğ.ų();ú=0;í=0;}if(!ø(ö))return false;while(ú<Ğ.ϳ()){if(!ƒ.Ȝ(20))return false;IMyTerminalBlock å=(
- Ğ.ή[ú]as IMyTerminalBlock);if(å==null||!å.IsWorking){Ğ.ή.RemoveAt(ú);continue;}IMyTextSurfaceProvider ð=å as
- IMyTextSurfaceProvider;IMyTextSurface F=å as IMyTextSurface;IMyTextPanel D=å as IMyTextPanel;è k;Ú=õ(å);string[]Ć=Ú.Split(' ');ï=Ć[0];î=Ć.
- Length>1;if(D!=null){if(Ĉ.ContainsKey(F)){k=Ĉ[F];if(k.ê==Ú+"@0"||(î&&k.ê==ï)){ú++;continue;}ñ(å);}if(!î){k=new è(n,Ú+"@0",å,F,
- 0);ė ò=new ė(this,k);ƒ.Ȗ(ò,0);Ĝ.Add(k,ò);ç.X(k.ê,k);Ĉ.Add(F,k);ú++;continue;}k=ç.µ(ï);if(k==null){k=new è(n,ï);ç.X(ï,k);ė
- ò=new ė(this,k);ƒ.Ȗ(ò,0);Ĝ.Add(k,ò);}k.ç.X(Ú,å);Ĉ.Add(F,k);}else{if(ð==null){ú++;continue;}for(int E=0;E<ð.SurfaceCount;E
- ++){F=ð.GetSurface(E);if(Ĉ.ContainsKey(F)){k=Ĉ[F];if(k.ê==Ú+'@'+E.ToString()){continue;}ó(F,null);}if(å.ǧ(E,n.ɥ)==null)
- continue;k=new è(n,Ú+"@"+E.ToString(),å,F,E);ė ò=new ė(this,k);ƒ.Ȗ(ò,0);Ĝ.Add(k,ò);ç.X(k.ê,k);Ĉ.Add(F,k);}}ú++;}while(í<ĝ.ϳ()){
- if(!ƒ.Ȝ(300))return false;IMyTerminalBlock å=ĝ.ή[í];if(å==null)continue;if(!Ğ.ή.Contains(å)){ñ(å);}í++;}ĝ.ų();ĝ.ϲ(Ğ);if(!Ą
- .ɋ&&Ą.ϩ())ƒ.Ȗ(Ą,0);return true;}public bool ć(string ą){if(string.Compare(ą,"clear",true)==0){Ą.Ϟ();if(!Ą.ɋ)ƒ.Ȗ(Ą,0);
- return true;}if(string.Compare(ą,"boot",true)==0){Ą.ϕ=0;if(!Ą.ɋ)ƒ.Ȗ(Ą,0);return true;}if(ą.ǭ("scroll")){ο ă=new ο(n,this,ą);ƒ.
- Ȗ(ă,0);return true;}if(string.Compare(ą,"props",true)==0){Ͻ Ă=n.Ő;List<IMyTerminalBlock>ā=new List<IMyTerminalBlock>();
- List<ITerminalAction>Ā=new List<ITerminalAction>();List<ITerminalProperty>ÿ=new List<ITerminalProperty>();IMyTextPanel þ=ƒ.ǂ
- .GridTerminalSystem.GetBlockWithName("DEBUG")as IMyTextPanel;if(þ==null){return true;}þ.WriteText("Properties: ");foreach
- (var À in Ă.Ѕ){þ.WriteText(À.Key+" =============="+"\n",true);À.Value(ā,null);if(ā.Count<=0){þ.WriteText("No blocks\n",
- true);continue;}ā[0].GetProperties(ÿ,(k)=>{return k.Id!="Name"&&k.Id!="OnOff"&&!k.Id.StartsWith("Show");});foreach(var ý in
- ÿ){þ.WriteText("P "+ý.Id+" "+ý.TypeName+"\n",true);}ÿ.Clear();ā.Clear();}}return false;}}class ü{Dictionary<string,è>Ö=
- new Dictionary<string,è>();List<string>A=new List<string>();public void X(string ª,è À){if(!Ö.ContainsKey(ª)){A.Add(ª);Ö.
- Add(ª,À);}}public int º(){return Ö.Count;}public è µ(string ª){if(Ö.ContainsKey(ª))return Ö[ª];return null;}public è z(int
- w){return Ö[A[w]];}public void Á(string ª){Ö.Remove(ª);A.Remove(ª);}public void Ã(){A.Clear();Ö.Clear();}public void v(){
- A.Sort();}}class ȱ{ȑ ƒ;ɔ n;public MyDefinitionId ȯ=new MyDefinitionId(typeof(VRage.Game.ObjectBuilders.Definitions.
- MyObjectBuilder_GasProperties),"Electricity");public MyDefinitionId Ȯ=new MyDefinitionId(typeof(VRage.Game.ObjectBuilders.Definitions.
- MyObjectBuilder_GasProperties),"Oxygen");public MyDefinitionId ȭ=new MyDefinitionId(typeof(VRage.Game.ObjectBuilders.Definitions.
- MyObjectBuilder_GasProperties),"Hydrogen");public ȱ(ȑ ƚ,ɔ Û){ƒ=ƚ;n=Û;}int Ȭ=0;public bool ȫ(List<IMyTerminalBlock>ā,ref double Ȱ,ref double Ȳ,ref
- double Ⱥ,ref double ȹ,ref double ɀ,ref double ȿ,bool ö){if(!ö)Ȭ=0;MyResourceSinkComponent ȗ;MyResourceSourceComponent ȸ;for(;Ȭ
- <ā.Count;Ȭ++){if(!ƒ.Ȝ(8))return false;if(ā[Ȭ].Components.TryGet<MyResourceSinkComponent>(out ȗ)){Ȱ+=ȗ.CurrentInputByType(
- ȯ);Ȳ+=ȗ.MaxRequiredInputByType(ȯ);}if(ā[Ȭ].Components.TryGet<MyResourceSourceComponent>(out ȸ)){Ⱥ+=ȸ.CurrentOutputByType(
- ȯ);ȹ+=ȸ.MaxOutputByType(ȯ);}IMyBatteryBlock Ⱦ=(ā[Ȭ]as IMyBatteryBlock);ɀ+=Ⱦ.CurrentStoredPower;ȿ+=Ⱦ.MaxStoredPower;}
- return true;}int Ƚ=0;public bool ȼ(List<IMyTerminalBlock>ā,MyDefinitionId Ȼ,ref double Ȱ,ref double Ȳ,ref double Ⱥ,ref double
- ȹ,bool ö){if(!ö)Ƚ=0;MyResourceSinkComponent ȗ;MyResourceSourceComponent ȸ;for(;Ƚ<ā.Count;Ƚ++){if(!ƒ.Ȝ(6))return false;if(
- ā[Ƚ].Components.TryGet<MyResourceSinkComponent>(out ȗ)){Ȱ+=ȗ.CurrentInputByType(Ȼ);Ȳ+=ȗ.MaxRequiredInputByType(Ȼ);}if(ā[Ƚ
- ].Components.TryGet<MyResourceSourceComponent>(out ȸ)){Ⱥ+=ȸ.CurrentOutputByType(Ȼ);ȹ+=ȸ.MaxOutputByType(Ȼ);}}return true;
- }int ȷ=0;public bool ȶ(List<IMyTerminalBlock>ā,string ȵ,ref double ȴ,ref double ȳ,bool ö){if(!ö){ȷ=0;ȳ=0;ȴ=0;}
- MyResourceSinkComponent ȗ;for(;ȷ<ā.Count;ȷ++){if(!ƒ.Ȝ(30))return false;IMyGasTank ō=ā[ȷ]as IMyGasTank;if(ō==null)continue;double ȕ=0;if(ō.
- Components.TryGet<MyResourceSinkComponent>(out ȗ)){ListReader<MyDefinitionId>Ȕ=ȗ.AcceptedResources;int E=0;for(;E<Ȕ.Count;E++){if(
- string.Compare(Ȕ[E].SubtypeId.ToString(),ȵ,true)==0){ȕ=ō.Capacity;ȳ+=ȕ;ȴ+=ȕ*ō.FilledRatio;break;}}}}return true;}public string
- ȓ(TimeSpan Ȓ){string ķ="";if(Ȓ.Ticks<=0)return"-";if((int)Ȓ.TotalDays>0)ķ+=(long)Ȓ.TotalDays+" "+n.ď.ǡ("C5")+" ";if(Ȓ.
- Hours>0||ķ!="")ķ+=Ȓ.Hours+"h ";if(Ȓ.Minutes>0||ķ!="")ķ+=Ȓ.Minutes+"m ";return ķ+Ȓ.Seconds+"s";}}class ȑ{public const double Ȑ
- =0.05;public const int ȏ=1000;public const int Ȏ=10000;public double ȍ{get{return ȋ;}}int Ȍ=ȏ;double ȋ=0;List<ɑ>Ȋ=new
- List<ɑ>(100);public MyGridProgram ǂ;bool ȉ=false;int Ȉ=0;public ȑ(MyGridProgram Ƽ,int ƻ=1,bool ȇ=false){ǂ=Ƽ;Ȉ=ƻ;ȉ=ȇ;}public
- void Ȗ(ɑ ò,double Ș,bool ȩ=false){ò.ɋ=true;ò.Ɉ(this);if(ȩ){ò.ɏ=ȍ;Ȋ.Insert(0,ò);return;}if(Ș<=0)Ș=0.001;ò.ɏ=ȍ+Ș;for(int E=0;E
- <Ȋ.Count;E++){if(Ȋ[E].ɏ>ò.ɏ){Ȋ.Insert(E,ò);return;}if(ò.ɏ-Ȋ[E].ɏ<Ȑ)ò.ɏ=Ȋ[E].ɏ+Ȑ;}Ȋ.Add(ò);}public void ȧ(ɑ ò){if(Ȋ.
- Contains(ò)){Ȋ.Remove(ò);ò.ɋ=false;}}public void ȥ(ʊ Ȧ,int ȣ=1){if(Ȉ==ȣ)ǂ.Echo(Ȧ.ɓ());}public void ȥ(string Ȥ,int ȣ=1){if(Ȉ==ȣ)ǂ
- .Echo(Ȥ);}const double Ȣ=(16.66666666/16);double Ȩ=0;public void ȡ(){Ȩ+=ǂ.Runtime.TimeSinceLastRun.TotalSeconds*Ȣ;}ʊ ƫ=
- new ʊ();public void Ƞ(){double ȟ=ǂ.Runtime.TimeSinceLastRun.TotalSeconds*Ȣ+Ȩ;Ȩ=0;ȋ+=ȟ;Ȍ=(int)Math.Min((ȟ*60)*ȏ/(ȉ?5:1),Ȏ-
- 1000);while(Ȋ.Count>=1){ɑ ò=Ȋ[0];if(Ȍ-ǂ.Runtime.CurrentInstructionCount<=0)break;if(ò.ɏ>ȋ){int Ȟ=(int)(60*(ò.ɏ-ȋ));if(Ȟ>=100
- ){ǂ.Runtime.UpdateFrequency=UpdateFrequency.Update100;}else{if(Ȟ>=10||ȉ)ǂ.Runtime.UpdateFrequency=UpdateFrequency.
- Update10;else ǂ.Runtime.UpdateFrequency=UpdateFrequency.Update1;}break;}Ȋ.Remove(ò);if(!ò.Ɇ())break;}}public int ȝ(){return(Ȏ-ǂ.
- Runtime.CurrentInstructionCount);}public bool Ȝ(int ț){return((Ȍ-ǂ.Runtime.CurrentInstructionCount)>=ț);}public void Ț(){ȥ(ƫ.ų(
- ).ʄ("Remaining Instr: ").ʄ(ȝ()));}}class ș:ɑ{MyShipVelocities Ȫ;public Vector3D Ɂ{get{return Ȫ.LinearVelocity;}}public
- Vector3D ɬ{get{return Ȫ.AngularVelocity;}}double ʂ=0;public double ʀ{get{if(ɱ!=null)return ɱ.GetShipSpeed();else return ʂ;}}
- double ɿ=0;public double ɾ{get{return ɿ;}}double ɽ=0;public double ɼ{get{return ɽ;}}double ɻ=0;double ɺ=0;public double ɹ{get{
- return ɻ;}}MyShipMass ɸ;public double ɷ{get{return ɸ.TotalMass;}}public double ʁ{get{return ɸ.BaseMass;}}double ɶ=double.NaN;
- public double ɴ{get{return ɶ;}}double ɳ=double.NaN;public double ɲ{get{return ɳ;}}IMyShipController ɱ=null;IMySlimBlock ɰ=null
- ;public IMyShipController ɯ{get{return ɱ;}}Vector3D ɮ;public ș(ȑ ƚ){ɐ="ShipMgr";ƒ=ƚ;ɮ=ƒ.ǂ.Me.GetPosition();Ɍ=0.5;}List<
- IMyTerminalBlock>ɭ=new List<IMyTerminalBlock>();int ɵ=0;public override bool Ƀ(bool ö){if(!ö){ɭ.Clear();ƒ.ǂ.GridTerminalSystem.
- GetBlocksOfType<IMyShipController>(ɭ);ɵ=0;if(ɱ!=null&&ɱ.CubeGrid.GetCubeBlock(ɱ.Position)!=ɰ)ɱ=null;}if(ɭ.Count>0){for(;ɵ<ɭ.Count;ɵ++){
- if(!ƒ.Ȝ(20))return false;IMyShipController ʆ=ɭ[ɵ]as IMyShipController;if(ʆ.IsMainCockpit||ʆ.IsUnderControl){ɱ=ʆ;ɰ=ʆ.
- CubeGrid.GetCubeBlock(ʆ.Position);if(ʆ.IsMainCockpit){ɵ=ɭ.Count;break;}}}if(ɱ==null){ɱ=ɭ[0]as IMyShipController;ɰ=ɱ.CubeGrid.
- GetCubeBlock(ɱ.Position);}ɸ=ɱ.CalculateShipMass();if(!ɱ.TryGetPlanetElevation(MyPlanetElevation.Sealevel,out ɶ))ɶ=double.NaN;if(!ɱ.
- TryGetPlanetElevation(MyPlanetElevation.Surface,out ɳ))ɳ=double.NaN;Ȫ=ɱ.GetShipVelocities();}double ʋ=ʂ;ʂ=Ɂ.Length();ɿ=(ʂ-ʋ)/ɍ;if(-ɿ>ɽ)ɽ=-ɿ;
- if(-ɿ>ɻ){ɻ=-ɿ;ɺ=ƒ.ȍ;}if(ƒ.ȍ-ɺ>5&&-ɿ>0.1)ɻ-=(ɻ+ɿ)*0.3f;return true;}}class ʊ{public StringBuilder ƫ;public ʊ(int ʉ=0){ƫ=new
- StringBuilder(ʉ);}public int ʈ{get{return ƫ.Length;}}public ʊ ų(){ƫ.Clear();return this;}public ʊ ʄ(string Ĩ){ƫ.Append(Ĩ);return this
- ;}public ʊ ʄ(double ʇ){ƫ.Append(ʇ);return this;}public ʊ ʄ(char ǰ){ƫ.Append(ǰ);return this;}public ʊ ʄ(ʊ ʅ){ƫ.Append(ʅ.ƫ)
- ;return this;}public ʊ ʄ(string Ĩ,int Ǿ,int ɒ){ƫ.Append(Ĩ,Ǿ,ɒ);return this;}public ʊ ʄ(char ǰ,int Š){ƫ.Append(ǰ,Š);return
- this;}public ʊ ʃ(int Ǿ,int ɒ){ƫ.Remove(Ǿ,ɒ);return this;}public string ɓ(){return ƫ.ToString();}public string ɓ(int Ǿ,int ɒ)
- {return ƫ.ToString(Ǿ,ɒ);}public char this[int ª]{get{return ƫ[ª];}}}class ɑ{public string ɐ="MMTask";public double ɏ=0;
- public double Ɏ=0;public double ɍ=0;public double Ɍ=-1;public bool ɋ=false;public bool Ɋ=false;double ɉ=0;protected ȑ ƒ;public
- void Ɉ(ȑ ƚ){ƒ=ƚ;}protected bool ɇ(double Ș){ɉ=Math.Max(Ș,0.0001);return true;}public bool Ɇ(){if(Ɏ>0){ɍ=ƒ.ȍ-Ɏ;ƒ.ȥ((Ɋ?
- "Running":"Resuming")+" task: "+ɐ);Ɋ=Ƀ(!Ɋ);}else{ɍ=0;ƒ.ȥ("Init task: "+ɐ);Ʉ();ƒ.ȥ("Running..");Ɋ=Ƀ(false);if(!Ɋ)Ɏ=0.001;}if(Ɋ){Ɏ=
- ƒ.ȍ;if((Ɍ>=0||ɉ>0)&&ɋ)ƒ.Ȗ(this,(ɉ>0?ɉ:Ɍ));else{ɋ=false;Ɏ=0;}}else{if(ɋ)ƒ.Ȗ(this,0,true);}ƒ.ȥ("Task "+(Ɋ?"":"NOT ")+
- "finished. "+(ɋ?(ɉ>0?"Postponed by "+ɉ.ToString("F1")+"s":"Scheduled after "+Ɍ.ToString("F1")+"s"):"Stopped."));ɉ=0;return Ɋ;}public
- void Ʌ(){ƒ.ȧ(this);ɂ();ɋ=false;Ɋ=false;Ɏ=0;}public virtual void Ʉ(){}public virtual bool Ƀ(bool ö){return true;}public
- virtual void ɂ(){}}class ɔ{public const float ɫ=512;public const float ɩ=ɫ/0.7783784f;public const float ɨ=ɫ/0.7783784f;public
- const float ɧ=ɩ;public const float ɦ=37;public string ɥ="T:[LCD]";public int ɤ=1;public bool ɣ=true;public List<string>ɢ=null
- ;public bool ɡ=true;public int Ȉ=0;public float ɪ=1.0f;public float ɠ=1.0f;public float ɟ{get{return ɧ*ƺ.і;}}public float
- ɞ{get{return(float)ɟ-2*ɖ[ƹ]*â;}}string ɝ;string ɜ;float ɛ=-1;Dictionary<string,float>ɚ=new Dictionary<string,float>(2);
- Dictionary<string,float>ə=new Dictionary<string,float>(2);Dictionary<string,float>ɘ=new Dictionary<string,float>(2);public float ɗ
- {get{return ɘ[ƹ];}}Dictionary<string,float>ɖ=new Dictionary<string,float>(2);Dictionary<string,float>ɕ=new Dictionary<
- string,float>(2);Dictionary<string,float>Ȇ=new Dictionary<string,float>(2);int â=0;string á="";Dictionary<string,char>dž=new
- Dictionary<string,char>(2);Dictionary<string,char>Dž=new Dictionary<string,char>(2);Dictionary<string,char>DŽ=new Dictionary<string,
- char>(2);Dictionary<string,char>ǃ=new Dictionary<string,char>(2);public ȑ ƒ;public MyGridProgram ǂ;public ȱ ǁ;public Ͻ Ő;
- public ș ǀ;public Ƅ Ǝ;public ǒ ď;public IMyGridTerminalSystem ƿ{get{return ǂ.GridTerminalSystem;}}public IMyProgrammableBlock
- ƾ{get{return ǂ.Me;}}public Action<string>ƽ{get{return ǂ.Echo;}}public ɔ(MyGridProgram Ƽ,int ƻ,ȑ ƚ){ƒ=ƚ;Ȉ=ƻ;ǂ=Ƽ;ď=new ǒ();
- ǁ=new ȱ(ƚ,this);Ő=new Ͻ(ƚ,this);Ő.Љ();ǀ=new ș(ƒ);ƒ.Ȗ(ǀ,0);}ї ƺ=null;public string ƹ{get{return ƺ.I;}}public bool Ƹ{get{
- return(ƺ.ű()==0);}}public bool LJ(IMyTerminalBlock å){if(å==null||å.WorldMatrix==MatrixD.Identity)return true;return ƿ.
- GetBlockWithId(å.EntityId)==null;}public ї Lj(ї ǐ,è k){k.Q();IMyTextSurface F=k.Þ;if(ǐ==null)ǐ=new ї(this);ǐ.I=F.Font;if(!ɖ.ContainsKey
- (ǐ.I))ǐ.I=ɝ;ǐ.і=(F.SurfaceSize.X/F.TextureSize.X)*(F.TextureSize.X/F.TextureSize.Y)*ɪ/F.FontSize*(100f-F.TextPadding*2)/
- 100;á=k.á;â=k.â;ƺ=ǐ;return ǐ;}public ŝ Ǐ(ŝ æ,è k){k.Q();IMyTextSurface F=k.Þ;if(æ==null)æ=new ŝ(this);æ.ŕ(k.Ý);æ.Ŝ=k.S()*(F
- .SurfaceSize.Y/F.TextureSize.Y)*ɠ/F.FontSize*(100f-F.TextPadding*2)/100;æ.ť();á=k.á;â=k.â;return æ;}public void Ǎ(){ƺ.ђ()
- ;}public void Ǎ(ʊ ǎ){if(ƺ.ѕ<=0)ƺ.є(á);ƺ.є(ǎ);ƺ.ђ();}public void Ǎ(string ǎ){if(ƺ.ѕ<=0)ƺ.є(á);ƺ.ђ(ǎ);}public void nj(string
- Nj){ƺ.я(Nj,á);}public void NJ(List<ʊ>lj){ƺ.ё(lj);}public void Ƌ(ʊ ƪ,bool Ƴ=true){if(ƺ.ѕ<=0)ƺ.є(á);ƺ.є(ƪ);if(Ƴ)ƺ.ѕ+=Ǟ(ƪ,ƺ.I);}
- public void Ƌ(string ķ,bool Ƴ=true){if(ƺ.ѕ<=0)ƺ.є(á);ƺ.є(ķ);if(Ƴ)ƺ.ѕ+=Ǟ(ķ,ƺ.I);}public void ƴ(ʊ ƪ,float ƨ=1.0f,float Ƨ=0f){Ʃ(ƪ
- ,ƨ,Ƨ);ƺ.ђ();}public void ƴ(string ķ,float ƨ=1.0f,float Ƨ=0f){Ʃ(ķ,ƨ,Ƨ);ƺ.ђ();}ʊ ƫ=new ʊ();public void Ʃ(ʊ ƪ,float ƨ=1.0f,
- float Ƨ=0f){float Ʀ=Ǟ(ƪ,ƺ.I);float ƥ=ƨ*ɧ*ƺ.і-ƺ.ѕ-Ƨ;if(â>0)ƥ-=2*ɖ[ƺ.I]*â;if(ƥ<Ʀ){ƺ.є(ƪ);ƺ.ѕ+=Ʀ;return;}ƥ-=Ʀ;int Ƥ=(int)Math.
- Floor(ƥ/ɖ[ƺ.I]);float ƣ=Ƥ*ɖ[ƺ.I];ƫ.ų().ʄ(' ',Ƥ).ʄ(ƪ);ƺ.є(ƫ);ƺ.ѕ+=ƣ+Ʀ;}public void Ʃ(string ķ,float ƨ=1.0f,float Ƨ=0f){float Ʀ
- =Ǟ(ķ,ƺ.I);float ƥ=ƨ*ɧ*ƺ.і-ƺ.ѕ-Ƨ;if(â>0)ƥ-=2*ɖ[ƺ.I]*â;if(ƥ<Ʀ){ƺ.є(ķ);ƺ.ѕ+=Ʀ;return;}ƥ-=Ʀ;int Ƥ=(int)Math.Floor(ƥ/ɖ[ƺ.I]);
- float ƣ=Ƥ*ɖ[ƺ.I];ƫ.ų().ʄ(' ',Ƥ).ʄ(ķ);ƺ.є(ƫ);ƺ.ѕ+=ƣ+Ʀ;}public void Ƣ(ʊ ƪ){Ʒ(ƪ);ƺ.ђ();}public void Ƣ(string ķ){Ʒ(ķ);ƺ.ђ();}
- public void Ʒ(ʊ ƪ){float Ʀ=Ǟ(ƪ,ƺ.I);float ƶ=ɧ/2*ƺ.і-ƺ.ѕ;if(ƶ<Ʀ/2){ƺ.є(ƪ);ƺ.ѕ+=Ʀ;return;}ƶ-=Ʀ/2;int Ƥ=(int)Math.Round(ƶ/ɖ[ƺ.I],
- MidpointRounding.AwayFromZero);float ƣ=Ƥ*ɖ[ƺ.I];ƫ.ų().ʄ(' ',Ƥ).ʄ(ƪ);ƺ.є(ƫ);ƺ.ѕ+=ƣ+Ʀ;}public void Ʒ(string ķ){float Ʀ=Ǟ(ķ,ƺ.I);float ƶ=ɧ/
- 2*ƺ.і-ƺ.ѕ;if(ƶ<Ʀ/2){ƺ.є(ķ);ƺ.ѕ+=Ʀ;return;}ƶ-=Ʀ/2;int Ƥ=(int)Math.Round(ƶ/ɖ[ƺ.I],MidpointRounding.AwayFromZero);float ƣ=Ƥ*
- ɖ[ƺ.I];ƫ.ų().ʄ(' ',Ƥ).ʄ(ķ);ƺ.є(ƫ);ƺ.ѕ+=ƣ+Ʀ;}public void Ƶ(double Ʈ,float ƭ=1.0f,float Ƨ=0f,bool Ƴ=true){if(â>0)Ƨ+=2*â*ɖ[ƺ
- .I];float Ʋ=ɧ*ƭ*ƺ.і-ƺ.ѕ-Ƨ;if(Double.IsNaN(Ʈ))Ʈ=0;int Ʊ=(int)(Ʋ/ɕ[ƺ.I])-2;if(Ʊ<=0)Ʊ=2;int ư=Math.Min((int)(Ʈ*Ʊ)/100,Ʊ);if(
- ư<0)ư=0;if(ƺ.ѕ<=0)ƺ.є(á);ƫ.ų().ʄ(dž[ƺ.I]).ʄ(ǃ[ƺ.I],ư).ʄ(DŽ[ƺ.I],Ʊ-ư).ʄ(Dž[ƺ.I]);ƺ.є(ƫ);if(Ƴ)ƺ.ѕ+=ɕ[ƺ.I]*Ʊ+2*Ȇ[ƺ.I];}public
- void Ư(double Ʈ,float ƭ=1.0f,float Ƨ=0f){Ƶ(Ʈ,ƭ,Ƨ,false);ƺ.ђ();}public void Ƭ(){ƺ.Ƭ();}public void Ǒ(è D,ŝ K=null){D.L(K);if(
- D.à)D.æ.Ĺ();}public void Ƿ(string Ƕ,string ķ){IMyTextPanel D=ǂ.GridTerminalSystem.GetBlockWithName(Ƕ)as IMyTextPanel;if(D
- ==null)return;D.WriteText(ķ+"\n",true);}public string ǵ(MyInventoryItem À){string Ǵ=À.Type.TypeId.ToString();Ǵ=Ǵ.Substring
- (Ǵ.LastIndexOf('_')+1);return À.Type.SubtypeId+" "+Ǵ;}public void dz(string Ñ,out string Ï,out string Î){int š=Ñ.
- LastIndexOf(' ');if(š>=0){Ï=Ñ.Substring(0,š);Î=Ñ.Substring(š+1);return;}Ï=Ñ;Î="";}public string Dz(string Ñ){string Ï,Î;dz(Ñ,out Ï,
- out Î);return Dz(Ï,Î);}public string Dz(string Ï,string Î){Í À=Ǝ.Ð(Ï,Î);if(À!=null){if(À.É.Length>0)return À.É;return À.Ì;}
- return System.Text.RegularExpressions.Regex.Replace(Ï,"([a-z])([A-Z])","$1 $2");}public void DZ(ref string Ï,ref string Î){Í À;
- if(Ǝ.Ɓ.TryGetValue(Ï,out À)){Ï=À.Ì;Î=À.Ë;return;}À=Ǝ.Ð(Ï,Î);if(À!=null){Ï=À.Ì;if((string.Compare(Î,"Ore",true)==0)||(
- string.Compare(Î,"Ingot",true)==0))return;Î=À.Ë;}}public string ȅ(double Ȃ,bool ȁ=true,char Ȅ=' '){if(!ȁ)return Ȃ.ToString(
- "#,###,###,###,###,###,###,###,###,###");string Ȁ=" kMGTPEZY";double ǿ=Ȃ;int Ǿ=Ȁ.IndexOf(Ȅ);var ǽ=(Ǿ<0?0:Ǿ);while(ǿ>=1000&&ǽ+1<Ȁ.Length){ǿ/=1000;ǽ++;}ƫ.ų().ʄ(
- Math.Round(ǿ,1,MidpointRounding.AwayFromZero));if(ǽ>0)ƫ.ʄ(" ").ʄ(Ȁ[ǽ]);return ƫ.ɓ();}public string ȃ(double Ȃ,bool ȁ=true,
- char Ȅ=' '){if(!ȁ)return Ȃ.ToString("#,###,###,###,###,###,###,###,###,###");string Ȁ=" ktkMGTPEZY";double ǿ=Ȃ;int Ǿ=Ȁ.
- IndexOf(Ȅ);var ǽ=(Ǿ<0?0:Ǿ);while(ǿ>=1000&&ǽ+1<Ȁ.Length){ǿ/=1000;ǽ++;}ƫ.ų().ʄ(Math.Round(ǿ,1,MidpointRounding.AwayFromZero));if(
- ǽ==1)ƫ.ʄ(" kg");else if(ǽ==2)ƫ.ʄ(" t");else if(ǽ>2)ƫ.ʄ(" ").ʄ(Ȁ[ǽ]).ʄ("t");return ƫ.ɓ();}public string Ǽ(double Ʈ){return
- (Math.Floor(Ʈ*10)/10).ToString("F1");}Dictionary<char,float>ǻ=new Dictionary<char,float>();void Ǻ(string ǹ,float J){J+=1;
- for(int E=0;E<ǹ.Length;E++){if(J>ɚ[ɝ])ɚ[ɝ]=J;ǻ.Add(ǹ[E],J);}}public float Ǹ(char ǰ,string I){float Ʋ;if(I==ɜ||!ǻ.
- TryGetValue(ǰ,out Ʋ))return ɚ[I];return Ʋ;}public float Ǟ(ʊ ǟ,string I){if(I==ɜ)return ǟ.ʈ*ɚ[I];float ǝ=0;for(int E=0;E<ǟ.ʈ;E++)ǝ+=
- Ǹ(ǟ[E],I);return ǝ;}public float Ǟ(string Ĩ,string I){if(I==ɜ)return Ĩ.Length*ɚ[I];float ǝ=0;for(int E=0;E<Ĩ.Length;E++)ǝ
- +=Ǹ(Ĩ[E],I);return ǝ;}public string ǜ(string ķ,float Ǜ){if(Ǜ/ɚ[ƺ.I]>=ķ.Length)return ķ;float ǚ=Ǟ(ķ,ƺ.I);if(ǚ<=Ǜ)return ķ;
- float Ǚ=ǚ/ķ.Length;Ǜ-=ə[ƺ.I];int ǘ=(int)Math.Max(Ǜ/Ǚ,1);if(ǘ<ķ.Length/2){ƫ.ų().ʄ(ķ,0,ǘ);ǚ=Ǟ(ƫ,ƺ.I);}else{ƫ.ų().ʄ(ķ);ǘ=ķ.
- Length;}while(ǚ>Ǜ&&ǘ>1){ǘ--;ǚ-=Ǹ(ķ[ǘ],ƺ.I);}if(ƫ.ʈ>ǘ)ƫ.ʃ(ǘ,ƫ.ʈ-ǘ);return ƫ.ʄ("..").ɓ();}void Ǘ(string ǖ){ɝ=ǖ;dž[ɝ]=MMStyle.
- BAR_START;Dž[ɝ]=MMStyle.BAR_END;DŽ[ɝ]=MMStyle.BAR_EMPTY;ǃ[ɝ]=MMStyle.BAR_FILL;ɚ[ɝ]=0f;}void Ǖ(string ǔ,float Ǔ){ɜ=ǔ;ɛ=Ǔ;ɚ[ɜ]=ɛ+1;ə[
- ɜ]=2*(ɛ+1);dž[ɜ]=MMStyle.BAR_MONO_START;Dž[ɜ]=MMStyle.BAR_MONO_END;DŽ[ɜ]=MMStyle.BAR_MONO_EMPTY;ǃ[ɜ]=MMStyle.BAR_MONO_FILL;ɖ
- [ɜ]=Ǹ(' ',ɜ);ɕ[ɜ]=Ǹ(DŽ[ɜ],ɜ);Ȇ[ɜ]=Ǹ(dž[ɜ],ɜ);ɘ[ɜ]=Ǟ(" 100.0%",ɜ);}public void Ǡ(){if(ǻ.Count>0)return;
- // Monospace font name, width of single character
- // Change this if you want to use different (modded) monospace font
- Ǖ("Monospace", 24f);
- // Classic/Debug font name (uses widths of characters below)
- // Change this if you want to use different font name (non-monospace)
- Ǘ("Debug");
- // Font characters width (font "aw" values here)
- Ǻ("3FKTabdeghknopqsuy£µÝàáâãäåèéêëðñòóôõöøùúûüýþÿāăąďđēĕėęěĝğġģĥħĶķńņňʼnōŏőśŝşšŢŤŦũūŭůűųŶŷŸșȚЎЗКЛбдекруцяёђћўџ", 17f);
- Ǻ("ABDNOQRSÀÁÂÃÄÅÐÑÒÓÔÕÖØĂĄĎĐŃŅŇŌŎŐŔŖŘŚŜŞŠȘЅЊЖф□", 21f);
- Ǻ("#0245689CXZ¤¥ÇßĆĈĊČŹŻŽƒЁЌАБВДИЙПРСТУХЬ€", 19f);
- Ǻ("¥$&GHPUVY§ÙÚÛÜÞĀĜĞĠĢĤĦŨŪŬŮŰŲОФЦЪЯжы†‡", 20f);
- Ǻ("! !I`ijl ¡¨¯´¸ÌÍÎÏìíîïĨĩĪīĮįİıĵĺļľłˆˇ˘˙˚˛˜˝ІЇії‹›∙", 8f);
- Ǻ("?7?Jcz¢¿çćĉċčĴźżžЃЈЧавийнопсъьѓѕќ", 16f);
- Ǻ("():《》,。、;【】(),.1:;[]ft{}·ţťŧț", 9f);
- Ǻ("+<=>E^~¬±¶ÈÉÊË×÷ĒĔĖĘĚЄЏЕНЭ−", 18f);
- Ǻ("L_vx«»ĹĻĽĿŁГгзлхчҐ–•", 15f);
- Ǻ("\"-rªºŀŕŗř", 10f);
- Ǻ("WÆŒŴ—…‰", 31f);
- Ǻ("'|¦ˉ‘’‚", 6f);
- Ǻ("@©®мшњ", 25f);
- Ǻ("mw¼ŵЮщ", 27f);
- Ǻ("/ijтэє", 14f);
- Ǻ("\\°“”„", 12f);
- Ǻ("*²³¹", 11f);
- Ǻ("¾æœЉ", 28f);
- Ǻ("%IJЫ", 24f);
- Ǻ("MМШ", 26f);
- Ǻ("½Щ", 29f);
- Ǻ("ю", 23f);
- Ǻ("ј", 7f);
- Ǻ("љ", 22f);
- Ǻ("ґ", 13f);
- Ǻ("™", 30f);
- // End of font characters width
- ɖ[ɝ]=Ǹ(' ',ɝ);ɕ[ɝ]=Ǹ(DŽ[ɝ],ɝ);Ȇ[ɝ]=Ǹ(dž[ɝ],ɝ);ɘ[ɝ]=Ǟ(" 100.0%",ɝ);ə[ɝ]=Ǹ('.',ɝ)*2;}}class ǒ{public string ǡ(string
- ǯ){return TT[ǯ];}
- readonly Dictionary<string, string> TT = new Dictionary<string, string>
- {
- // TRANSLATION STRINGS
- // msg id, text
- { "AC1", "Acceleration:" },
- // amount
- { "A1", "EMPTY" },
- { "ALT1", "Altitude:"},
- { "ALT2", "Ground:"},
- { "B1", "Booting up..." },
- { "C1", "count:" },
- { "C2", "Cargo Used:" },
- { "C3", "Invalid countdown format, use:" },
- { "C4", "EXPIRED" },
- { "C5", "days" },
- // customdata
- { "CD1", "Block not found: " },
- { "CD2", "Missing block name" },
- { "D1", "You need to enter name." },
- { "D2", "No blocks found." },
- { "D3", "No damaged blocks found." },
- { "DO1", "No connectors found." }, // NEW
- { "DTU", "Invalid GPS format" },
- { "GA", "Artif."}, // (not more than 5 characters)
- { "GN", "Natur."}, // (not more than 5 characters)
- { "GT", "Total"}, // (not more than 5 characters)
- { "G1", "Total Gravity:"},
- { "G2", "Natur. Gravity:"},
- { "G3", "Artif. Gravity:"},
- { "GNC", "No cockpit!"},
- { "H1", "Write commands to Custom Data of this panel." },
- // inventory
- { "I1", "ore" },
- { "I2", "summary" },
- { "I3", "Ores" },
- { "I4", "Ingots" },
- { "I5", "Components" },
- { "I6", "Gas" },
- { "I7", "Ammo" },
- { "I8", "Tools" },
- { "M1", "Cargo Mass:" },
- // oxygen
- { "O1", "Leaking" },
- { "O2", "Oxygen Farms" },
- { "O3", "No oxygen blocks found." },
- { "O4", "Oxygen Tanks" },
- // position
- { "P1", "Block not found" },
- { "P2", "Location" },
- // power
- { "P3", "Stored" },
- { "P4", "Output" },
- { "P5", "Input" },
- { "P6", "No power source found!" },
- { "P7", "Batteries" },
- { "P8", "Total Output" },
- { "P9", "Reactors" },
- { "P10", "Solars" },
- { "P11", "Power" },
- { "P12", "Engines" }, // NEW!
- { "P13", "Turbines" }, // NEW!
- { "PT1", "Power Time:" },
- { "PT2", "Charge Time:" },
- { "PU1", "Power Used:" },
- { "S1", "Speed:" },
- { "SM1", "Ship Mass:" },
- { "SM2", "Ship Base Mass:" },
- { "SD", "Stop Distance:" },
- { "ST", "Stop Time:" },
- // text
- { "T1", "Source LCD not found: " },
- { "T2", "Missing source LCD name" },
- // tanks
- { "T4", "Missing tank type. eg: 'Tanks * Hydrogen'" },
- { "T5", "No {0} tanks found." }, // {0} is tank type
- { "UC", "Unknown command" },
- // occupied & dampeners
- { "SC1", "Cannot find control block." },
- { "SCD", "Dampeners: " },
- { "SCO", "Occupied: " },
- // working
- { "W1", "OFF" },
- { "W2", "WORK" },
- { "W3", "IDLE" },
- { "W4", "LEAK" },
- { "W5", "OPEN" },
- { "W6", "CLOSED" },
- { "W7", "LOCK" },
- { "W8", "UNLOCK" },
- { "W9", "ON" },
- { "W10", "READY" }
- };
- }
- }static class Ǯ{public static bool ǭ(this string Ĩ,string ǫ){return Ĩ.StartsWith(ǫ,StringComparison.
- InvariantCultureIgnoreCase);}public static bool Ǭ(this string Ĩ,string ǫ){if(Ĩ==null)return false;return Ĩ.IndexOf(ǫ,StringComparison.
- InvariantCultureIgnoreCase)>=0;}public static bool Ǫ(this string Ĩ,string ǫ){return Ĩ.EndsWith(ǫ,StringComparison.InvariantCultureIgnoreCase);}}
- static class ǩ{public static string Ǩ(this IMyTerminalBlock å){int Ŧ=å.CustomData.IndexOf("\n---\n");if(Ŧ<0){if(å.CustomData.
- StartsWith("---\n"))return å.CustomData.Substring(4);return å.CustomData;}return å.CustomData.Substring(Ŧ+5);}public static string
- ǧ(this IMyTerminalBlock å,int š,string Ǧ){string ǥ=å.Ǩ();string Ǥ="@"+š.ToString()+" AutoLCD";string ǣ='\n'+Ǥ;int Ŧ=0;if(
- !ǥ.StartsWith(Ǥ,StringComparison.InvariantCultureIgnoreCase)){Ŧ=ǥ.IndexOf(ǣ,StringComparison.InvariantCultureIgnoreCase);
- }if(Ŧ<0){if(š==0){if(ǥ.Length==0)return"";if(ǥ[0]=='@')return null;Ŧ=ǥ.IndexOf("\n@");if(Ŧ<0)return ǥ;return ǥ.Substring(
- 0,Ŧ);}else return null;}int Ǣ=ǥ.IndexOf("\n@",Ŧ+1);if(Ǣ<0){if(Ŧ==0)return ǥ;return ǥ.Substring(Ŧ+1);}if(Ŧ==0)return ǥ.
- Substring(0,Ǣ);return ǥ.Substring(Ŧ+1,Ǣ-Ŧ);}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement