Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public double overheatAverage = 0.2, actionLimiterMultiplier = 0.008, runTimeLimiter = 0.1;
- IMyGridTerminalSystem Ч;SortedDictionary<string,SortedList<string,string>>Ц=new SortedDictionary<string,SortedList<
- string,string>>{{"A. Global Tags",new SortedList<string,string>{{Ѐ,"exclude"},{Ͽ,"includeGrid"},{Ќ,"crossGrid"},{Ϸ,"[nds]"},{Ͼ
- ,""}}},{"B. Default Categories",new SortedList<string,string>{{ϼ,"ingot"},{ϻ,"ore"},{Ϻ,"component"},{Ϲ,"tool"},{ϸ,"ammo"}
- }}};SortedList<string,string>Х=new SortedList<string,string>(),Ф=new SortedList<string,string>(),У=new SortedList<string,
- string>();SortedDictionary<string,SortedList<string,double>>Т=new SortedDictionary<string,SortedList<string,double>>{{
- "A. Delays",new SortedList<string,double>{{ϵ,10},{ϴ,20},{ϳ,7.5},{ϲ,20},{ϱ,30},{ϰ,5},{ϯ,10},{Ϭ,20},{щ,20},{ѧ,12.5},{ҭ,90},{ҫ,20},{Ҫ,
- 15},{ҩ,30},{Ҩ,10},{ҧ,15},{Ҧ,45},{ҥ,5},{Ҥ,6}}},{"B. Performance",new SortedList<string,double>{{ң,0.35},{Ң,0.45},{ҡ,0.5},{Ҡ
- ,0.6},{ҟ,0.005}}},{"C. Defaults",new SortedList<string,double>{{Ҟ,5000},{ҝ,25},{Ҝ,40},{қ,4}}},{"D. Adjustments",new
- SortedList<string,double>{{Қ,0.05},{ҙ,0.1},{Ҙ,0.05},{җ,2.5},{Җ,3},{ҕ,9}}}};SortedList<string,SortedList<string,bool>>С=new
- SortedList<string,SortedList<string,bool>>{{"A. Basic",new SortedList<string,bool>{{Ү,Ѡ},{Ӎ,Ѡ},{Ӌ,Ѡ},{ӊ,Ѡ},{Ӊ,Ѡ},{ӈ,Ѡ},{Ӈ,Ѡ}}},{
- "B. Advanced",new SortedList<string,bool>{{ӆ,Ѡ},{Ӆ,Ѡ},{ӄ,Ѡ},{Ӄ,Ѡ},{ӂ,Ѡ},{Ӂ,Ѡ},{Ӏ,Ѡ},{ҿ,Ѡ},{ӌ,Ѡ},{Ҿ,Ѡ},{Ҽ,Ѡ},{һ,Ѡ},{Һ,Ѡ},{ҹ,Ѡ},{Ҹ,Ѡ},{
- ҷ,Ѡ},{Ҷ,Ѡ},{ҵ,Ѡ}}},{"C. Settings",new SortedList<string,bool>{{Ҵ,џ},{ҳ,џ},{Ҳ,џ},{ұ,џ},{Ұ,Ѡ},{ү,Ѡ},{ҽ,џ},{ҏ,џ},{Ѷ,Ѡ}}}};
- SortedList<string,int>Р=new SortedList<string,int>(){{Ҕ,1},{ғ,30},{Ғ,15},{ґ,0},{Ҭ,6},{Ґ,0}};SortedList<string,List<string>>П=new
- SortedList<string,List<string>>(){{ѥ,new List<string>(){"LargeBlockBed","LargeBlockLockerRoom","LargeBlockLockerRoomCorner",
- "LargeBlockLockers","PassengerSeatSmall","PassengerSeatLarge","LargeInteriorTurret"}},{Ѥ,new List<string>(){"gravelrefinery",
- "gravelseparator","gravelsifter"}},{ѣ,new List<string>(){"K","M","B","T"}}};SortedList<string,Ǔ>О=new SortedList<string,Ǔ>();SortedList<
- string,SortedList<string,ȭ>>Н=new SortedList<string,SortedList<string,ȭ>>();SortedList<string,List<long>>М=new SortedList<
- string,List<long>>();SortedList<string,List<Ʈ>>Л=new SortedList<string,List<Ʈ>>();List<IMyTerminalBlock>К=new List<
- IMyTerminalBlock>(1500);Dictionary<long,ȝ>Й=new Dictionary<long,ȝ>(1500);Dictionary<string,Ƴ>И=new Dictionary<string,Ƴ>(),З=new
- Dictionary<string,Ƴ>(),Ж=new Dictionary<string,Ƴ>();Dictionary<string,string>Е=new Dictionary<string,string>(),Д=new Dictionary<
- string,string>();HashSet<string>Г=new HashSet<string>(),В=new HashSet<string>(),Б=new HashSet<string>(),А=new HashSet<string>(
- );HashSet<long>Ш=new HashSet<long>();List<ɽ>Џ=new List<ɽ>(),Щ=new List<ɽ>();List<long>ш=ö(),ц=ö(),х=ö(),ф=ö(),у=ö(),т=ö()
- ,с=ö(),р=ö(),п=ö(),о=ö(),н=ö(),м=ö(),л=ö(),к=ö(),ч=ö(500),й=ö();List<string>з=new List<string>{ҽ,ҏ},ж=new List<string>(),
- е=new List<string>(),д=new List<string>(),г=new List<string>(),в=new List<string>();List<ɼ>б=new List<ɼ>(),а=new List<ɼ>(
- ),Я=new List<ɼ>();List<MyItemType>Ю=new List<MyItemType>();List<ȭ>Э=new List<ȭ>();Ǔ Ь,Ы,Ъ,и,Ў,Ͻ,Ϫ,ϩ,Ϩ;TimeSpan ϧ=new
- TimeSpan(0),Ϧ=new TimeSpan(0),ϥ=new TimeSpan(0);SortedList<string,TimeSpan>Ϥ=new SortedList<string,TimeSpan>();SortedList<string
- ,ʙ>ϣ=new SortedList<string,ʙ>();DateTime Ϣ=DateTime.Now,ϡ=DateTime.Now;string Ϡ="Program",ϟ="NDS Inventory Manager",Ϟ,ϝ,Ϝ
- ,ϛ,Ϛ,ϙ,Ƽ="",Ϙ="",ϗ="Idle",ϖ="StoneOreToIngotBasic",ϕ="",ϔ,ϓ="",ϒ="",ϑ,ϫ="[nds]",ϐ,ϭ="crossgrid",Ѝ="includegrid";const
- string Ћ="MyObjectBuilder_Component",Њ="MyObjectBuilder_Ore",Љ="MyObjectBuilder_Ingot",Ј="MyObjectBuilder_PhysicalGunObject",Ї
- ="MyObjectBuilder_GasContainerObject",І="MyObjectBuilder_OxygenContainerObject",Ѕ="MyObjectBuilder_AmmoMagazine",Є=
- "MyObjectBuilder_Datapad",Ѓ="MyObjectBuilder_ConsumableItem",Ђ="MyObjectBuilder_PhysicalObject",Ё="MyObjectBuilder_BlueprintDefinition",Ѐ=
- "exclusionKeyword",Ͽ="includeGridKeyword",Ќ="crossGridControlKeyword",Ͼ="globalFilterKeyword",ϼ="itemIngotKeyword",ϻ="itemOreKeyword",Ϻ=
- "itemComponentKeyword",Ϲ="itemToolKeyword",ϸ="itemAmmoKeyword",Ϸ="panelKeyword",ϵ="delayScan",ϴ="delayProcessLimits",ϳ="delaySortItems",ϲ=
- "delayDistributeItems",ϱ="delaySpreadItems",ϰ="delayQueueAssembly",ϯ="delayQueueDisassembly",Ϭ="delayRemoveExcessAssembly",щ=
- "delayRemoveExcessDisassembly",ѧ="delaySortBlueprints",ҭ="delaySortCargoPriority",ҫ="delaySpreadBlueprints",Ҫ="delayLoadouts",ҩ="delayFillingBottles",
- Ҩ="delayLogic",ҧ="delayCheckIdleAssemblers",Ҧ="delayResetIdleAssembler",ҥ="delayFindModItems",Ҥ="delaySortRefinery",ң=
- "actionLimiterMultiplier",Ң="runTimeLimiter",ҡ="loopLimiter",Ҡ="overheatAverage",ҟ="tickWeight",Ҟ="icePerO2/H2Generator",ҝ="fuelPerReactor",Ҝ=
- "ammoPerGun",қ="canvasPerParachute",Қ="balanceRange",ҙ="allowedExcessPercent",Ҙ="dynamicQuotaPercentageIncrement",җ=
- "dynamicQuotaMaxMultiplier",Җ="dynamicQuotaNegativeThreshold",ҕ="dynamicQuotaPositiveThreshold",Ҕ="updateFrequency",ғ="averageTicks",Ғ=
- "outputLimit",ґ="survivalKitQueuedIngots",Ҭ="autoMergeLengthTolerance",Ґ="prioritizedOreCount",Ү="countItems",Ӎ="countBlueprints",Ӌ=
- "sortItems",ӊ="queueAssembly",Ӊ="queueDisassembly",ӈ="distributeItems",Ӈ="autoLoadSettings",ӆ="autoKeyCargoContainers",Ӆ=
- "processLimits",ӄ="spreadRefineries",Ӄ="spreadReactors",ӂ="spreadGuns",Ӂ="spreadH2/O2Gens",Ӏ="spreadGravelSifters",ҿ="spreadParachutes"
- ,ӌ="removeExcessAssembly",Ҿ="removeExcessDisassembly",Ҽ="sortBlueprints",һ="sortCargoPriority",Һ="spreadBlueprints",ҹ=
- "doLoadouts",Ҹ="triggerLogic",ҷ="resetIdleAssemblers",Ҷ="findModItems",ҵ="sortRefineries",Ҵ="useConveyorRefineries",ҳ=
- "useConveyorReactors",Ҳ="useConveyorH2/O2Gens",ұ="useConveyorGuns",Ұ="dynamicQuota",ү="dynamicQuotaIncreaseWhenLow",ҽ="sameGridOnly",ҏ=
- "survivalKitAssembly",Ѷ="addLoadoutsToQuota",ѥ="excludedDefinitions",Ѥ="gravelSifterKeys",ѣ="numberSuffixes";const string Ѣ="true",ѡ="false";
- const bool Ѡ=true,џ=false;const MyAssemblerMode ў=MyAssemblerMode.Assembly,ѝ=MyAssemblerMode.Disassembly;int ќ=10,ћ=0,њ=0,љ=0
- ,ј=0,ї=0,і=0,ѕ=0,є=1,ѓ=40,ђ=15;bool ё=џ,ѐ=џ,я=Ѡ,ю=џ,э=џ,ь=Ѡ,ы=џ,Ѧ=џ,ъ=џ,Ѩ=џ,Ҏ=џ,Ҍ=џ,ҋ=Ѡ,Ҋ=џ,ҁ=џ,Ҁ,ѿ,Ѿ=џ,ѽ=џ,Ѽ=џ;static
- string[]ѻ=new string[]{"Main","Main Control","Main Output","Main Sprites","Processing Block Options","Status Panel",
- "Measuring Capacities","Output Panel","Counting Listed Items","Distribution","Distributing Item","Counting Item In Inventory",
- "Processing Limits","Sorting","Storing Item","Counting Blueprints","Counting Items","Scanning","Generating Sprites","Listing Items",
- "Tag Simulator","Filling Dictionary","Processing Tags","Transferring Item","Spreading Items","Balancing Items","Distributing Blueprint"
- ,"Removing Excess Assembly","Match Simulator","Setting Block Quotas","Save","Queue Assembly","Queue Disassembly",
- "Inserting Blueprint","Process Panel Options","Removing Blueprint","Removing Excess Disassembly","Order Blocks By Priority",
- "Cargo Priority Loop","Sorting Cargo Priority","Sort Blueprints","Spread Blueprints","Load","Loadouts","Sort Refineries","Custom Logic",
- "Matching Items","Process Logic","Checking Idle Assemblers","Find Mod Items","Process Setting","Main Panel","Assembly Reserve",
- "Processing Item Setting","Cargo Panel","Item Panel","Generating Block Options"};double[]Ѻ;double ѹ=0,Ѹ=0,ҍ=0,ѷ=5.2,ѵ=0,δ,Ѵ,ѳ,Ѳ,ѱ,Ѱ,ѯ=0.05,Ѯ=0,ѭ,
- Ѭ=45,ѫ=0,Ѫ=0,ѩ=0.005,Ϯ=100,Ϗ=-1,ʰ=-1,ˬ=0,ˤ=1;Dictionary<string,double>ˣ=new Dictionary<string,double>();Color ˢ=new Color
- (0.7019608f,0.9294118f,1f,1f);StringBuilder ˡ=new StringBuilder();SortedList<string,IEnumerator<bool>>ˠ=new SortedList<
- string,IEnumerator<bool>>();const TextAlignment ˑ=TextAlignment.LEFT,ː=TextAlignment.CENTER;IMyInventory ˏ,ˎ;List<
- MyInventoryItem>ˍ,ˌ,ˋ,ˊ,ˉ,ˈ,ˇ,ˆ,ˁ,ˀ,ʿ,ʾ,ʽ;List<MyProductionItem>ʼ,ʻ,ʺ,ʹ,ˮ,ʸ;ȝ ͱ,Μ,Κ,Ι,Θ,Η,Ζ,Ε,Δ,Γ,Β;SortedList<string,ɮ>Α=new
- SortedList<string,ɮ>();public enum ΐ{Ώ,Ύ,Λ,Ό};public enum Ή{Έ,Ά,ͽ,ͼ,ͻ};public enum ͺ{ͷ,Ͷ,Ƀ,ʹ,ͳ,Ͳ};Program(){Ч=GridTerminalSystem;Ί
- ();ˍ=Ɨ();ˌ=Ɨ();ˋ=Ɨ();ˊ=Ɨ();ˉ=Ɨ();ˈ=Ɨ();ˇ=Ɨ();ˆ=Ɨ();ˁ=Ɨ();ˀ=Ɨ();ʿ=Ɨ();ʾ=Ɨ();ʽ=Ɨ();ʼ=Ɩ();ʻ=Ɩ();ʺ=Ɩ();ʹ=Ɩ();ˮ=Ɩ();ʸ=Ɩ();Ь=J(
- );Ы=J();Ъ=J();и=J();Ў=J();Ͻ=J();Ϫ=J();ϩ=J();Ϩ=J();if(Me.CustomData.Length==0){я=џ;ѐ=Ѡ;}}void Ί(){Ϟ=Ū(Ѐ);ϝ=Ū(ϼ);Ϝ=Ū(ϻ);ϛ=Ū
- (Ϻ);Ϛ=Ū(ϸ);ϙ=Ū(Ϲ);ϔ=Ū(Ͼ);ϫ=Ū(Ϸ);ϭ=Ū(Ќ);Ѝ=Ū(Ͽ);if(ж.Count==0)ж.AddRange(new List<string>{ϝ,Ϝ,ϛ,ϙ,Ϛ});ь=ŧ(Ӈ);Ҁ=ŧ(Ұ);ѿ=ŧ(ү);
- ѳ=Ũ(Ҙ);Ѳ=Ũ(җ);ѱ=Ũ(ҕ);Ѱ=Ũ(Җ);Ѯ=Ũ(ҙ);ѯ=Ũ(Қ);Ѭ=Ũ(Ҧ);є=Р[Ҕ];if(є!=1&&є!=10&&є!=100)є=1;StringBuilder Æ=new StringBuilder();
- foreach(string ĕ in ж){if(Æ.Length>0)Æ.Append("|");Æ.Append(Ƙ(ĕ));}ϐ=Æ.ToString();Æ.Clear();Æ.AppendLine(
- $"Type=Item/Cargo/Output/Status/Span");ʏ(Æ,"Font=Monospace");ʏ(Æ,$"Categories={ϐ}");ʏ(Æ,$"Items=ingot:Iron|ore:Iron");ʏ(Æ,
- "Item Display=Standard|Detailed|CompactAmount|CompactPercent");ʏ(Æ,$"Sorting=Alphabetical|AscendingAmount|DescendingAmount|AscendingPercent|DescendingPercent");ʏ(Æ,
- $"Options=BelowQuota|HideProgressBar");ʏ(Æ,"Minimum Value=1");ʏ(Æ,"Maximum Value=150000");ʏ(Æ,"Number Suffixes=K|M|B|T");ʏ(Æ,"Text Color=0:0:0:255");ʏ(Æ,
- "Number Color=120:0:0:255");ʏ(Æ,"Back Color=255:255:255:0");ʏ(Æ,"Rows=15");ʏ(Æ,"Name Length=18");ʏ(Æ,"Decimals=2");ʏ(Æ,"Update Delay=1");ʏ(Æ,
- "Span ID=Span A");ʏ(Æ,"Span Child ID=Span B");ϑ=Æ.ToString();ɍ();ђ=Р[Ғ];ѕ=Р[Ҭ];}void ʯ(){actionLimiterMultiplier=Ũ(ң);runTimeLimiter=Ũ(Ң
- );ѭ=Ũ(ҡ);overheatAverage=Ũ(Ҡ);ѩ=Ũ(ҟ);ѓ=Р[ғ];}void Main(string ʦ){if((!э&&!Ѿ)||ѐ){try{Ϣ=DateTime.Now;bool ʮ=џ;ô();Ɇ();if(ь
- &&!э){і++;if(і>=600){if(Me.CustomData.Length!=Ƽ.Length||string.Compare(Me.CustomData,Ƽ,џ)!=0){я=Ѡ;і=-300;}else і=0;}}try{
- if(!(ы||Ѽ)&&ʦ.Length>0){if(!ѐ&&!я)ʷ(ʦ);else ɗ("Please wait until save/load completes to run commands");ʮ=Ѡ;}}catch{Ƀ(
- $"Error running command: {ʦ}");}if(overheatAverage<=0.0||Ѫ<=overheatAverage){љ=0;ե();}else љ++;ќ+=є;if(ҋ){try{if(!ʮ&&ы)ʥ(ʦ);else if(!ʮ&&Ѽ)ʧ(ʦ);else
- if(Ҏ)ʭ();else if(Ѩ)ʶ();else if(ѽ)ʵ();else ʳ();}catch{Ƀ("Error caught in echo");}}}catch{Ƀ("Error in main");}}else{if(э)
- Echo("Please recompile to complete reset!");if(Ѿ)Echo("Remove any settings you want to update/reset and recompile");}}void ʭ
- (){if(ќ>=7){ќ=0;Echo($"--Functions List ({Х.Count}/{ϣ.Count})--");Echo("--Enter 'functions?' to hide--");string ʬ,ō;
- double Ʉ,ɻ,ʫ;bool ʪ,ʩ;ʙ ʨ;foreach(KeyValuePair<string,ʙ>Ĺ in ϣ){ʨ=Ĺ.Value;ō=Ĺ.Key;Ʉ=ʨ.ʃ;ɻ=ʨ.ɺ;ʫ=ʨ.ɲ;ʪ=Ƒ(ō,Ѡ);ʩ=ʨ.ɹ>1;ʬ=ō;if(ʪ)
- ʬ+=" : Active";Echo(ʬ);ʬ=$"-Ticks: {ñ(Ʉ)}";if(ʪ)ʬ+=$" : {ñ(ʨ.Ʉ)}";Echo(ʬ);if(ʩ)Echo($"--({ñ(ʨ.ɸ)}-{ñ(ʨ.ɷ)})");ʬ=
- $"-Time: {Ɣ(ʫ)}";if(ʪ)ʬ+=$" : {Ɣ(ʨ.Ş.TotalMilliseconds)}";Echo(ʬ);if(ʩ)Echo($"--({Ɣ(ʨ.ɴ)}-{Ɣ(ʨ.ɳ)})");ʬ=$"-Actions: {ñ(ɻ)}";if(ʪ)ʬ+=
- $" : {ñ(ʨ.ɻ)}ops";Echo(ʬ);if(ʩ)Echo($"--({ñ(ʨ.ɶ)}-{ñ(ʨ.ɵ)})");if(Ʉ>0)Echo($"-Avg: {ʫ/Ʉ:N2}ms, {Math.Ceiling(ɻ/Ʉ)}ops");Echo(
- $"-Runs: {ñ(ʨ.ɹ)}");}for(int Ç=0;Ç<10;Ç++)Echo("");}}void ʧ(string ʦ){string ĕ="*",m,A,D,ʤ;if(ʦ.Length>0){ʤ=ʦ.ToLower().Replace(" ","");if
- (ʤ=="match"){Ѽ=џ;ɛ(new int[]{54,20});return;}if(!ƕ(ʤ,":"))ʤ=$"*:{ʤ}";if(ϒ.Length==0&&ʤ!=ϓ){ϒ=ʤ;Ь.ǐ();}}if(љ==0){int õ;if(
- ϒ.Length>0){if(Ԋ(ѻ[20],ѻ[28],Ь,ϒ)){ϓ=ϒ;ϒ="";е.Clear();õ=Ь.nj();for(int Ç=0;Ç<õ;Ç++){m=Ь.Ǘ(Ç);ə(m,out A,out D);ĕ=
- $"({ƈ(m)})";е.Add($"{c(A,D)} {ĕ}");}Ь.ǐ();}}}if(ќ>=7){ќ=0;Echo("--Match Simulator--");Echo("--Enter 'match' to hide--");if(ϒ.Length
- >0){Echo($"--Matching: {ϒ}--");if(љ>0)Echo($"Overheat Ticks: {љ}");}else Echo("--Enter text and press Run--");if(ϓ.Length
- >0){Echo($"--Matches for {ϓ}--");for(int Ç=0;Ç<е.Count;Ç++)Echo($"{е[Ç]}");}for(int Ç=0;Ç<10;Ç++)Echo("");}}void ʥ(string
- ʦ){if(ʦ.Length>0){string ʤ=ʦ.ToLower().Replace(" ","");if(ʤ=="merge"){Ϙ="";ы=џ;ɗ("Closed Merge Menu");return;}int P;if(
- int.TryParse(ʦ,out P)){P--;if(Ϙ.Length==0){if(P<Ф.Count)Ϙ=Ф.Keys[P];}else if(P<д.Count){ʖ(Ϙ,д[P]);Ϙ="";ы=Ф.Count>0&&д.Count
- >0;ѐ=Ѡ;}}}if(ќ>=7){ќ=0;Echo("--Merging Menu--");Echo("--Enter 'merge' to cancel--");if(Ϙ.Length==0){Echo("Choose Item");
- for(int Ç=0;Ç<Ф.Count;Ç++)Echo($"{Ç+1} : {Ф.Values[Ç]}");if(Ф.Count==0)ы=џ;}else{Echo($"Choose Blueprint For {Ϙ}");for(int
- Ç=0;Ç<д.Count;Ç++)Echo($"{Ç+1} : {д[Ç]}");if(д.Count==0){ы=џ;Ϙ="";}}for(int Ç=0;Ç<10;Ç++)Echo("");}}void ʶ(){if(ќ>=7){ќ=0
- ;Echo("--Merge Help List--");Echo("--Enter 'merge?' to hide--");Echo("--Enter 'merge' to begin merge--");for(int Ç=0;Ç<Ф.
- Count;Ç++)Echo($"ITM: {Ф.Values[Ç]}");for(int Ç=0;Ç<д.Count;Ç++)Echo($"BPT: {д[Ç]}");for(int Ç=0;Ç<10;Ç++)Echo("");}}void ʵ()
- {if(ќ>=7){ќ=0;Echo("--Delay List--");Echo("--Enter 'delays?' to hide--");б.Clear();б.AddRange(new List<ɼ>{new ɼ{M=ϧ.
- TotalSeconds,ï="Scan and Process"},new ɼ{M=Ϧ.TotalSeconds,ï="Fill Bottles"}});if(ь)б.Add(new ɼ{M=15.0-((double)і/60.0),ï="Reload"});
- foreach(KeyValuePair<string,TimeSpan>Ĺ in Ϥ)б.Add(new ɼ{M=Ĺ.Value.TotalSeconds,ï=$"{Ĺ.Key}"});б=б.OrderBy(Ĩ=>Ĩ.M).ToList();
- foreach(ɼ ʴ in б)Echo($"{ʴ.ï}: {Math.Ceiling(ʴ.M)}s");for(int Ç=0;Ç<10;Ç++)Echo("");}}void ʳ(){if(ќ>=7){ќ=0;Echo($"Main: {ϗ}");
- Echo($"Current: {Ϡ}");Echo($"Last: {Ě(Runtime.LastRunTimeMs,4)}");Echo($"Avg: {Ě(Ѫ,4)}");if(Ϗ!=-1)Echo(
- $"Ticks Per Cycle: {Ϗ}-{ʰ}");Echo($"Blocks: {Й.Count}");Echo($"Panels: {к.Count}");Echo($"Active Functions: {Х.Count}");if(Ф.Count+д.Count>0){Echo(
- $"Mod Items: {Ф.Count}");Echo($"Mod Blueprints: {д.Count}");if(Ф.Count>0&&д.Count>0)Echo("-Enter 'merge' to begin merge");}if(љ>0)Echo(
- $"Overheat Ticks: {љ}");if(ϕ.Length>0){Echo($"Last: {ϕ}");if(DateTime.Now>=ϡ)ϕ="";}for(int Ç=0;Ç<10;Ç++)Echo("");}}void ʷ(string ʦ){string ʲ=ʦ
- .ToLower(),ʤ,ō,u,Ō;bool ʱ=Ѡ;ɗ($"Running argument: {ʦ}");ʤ=ʲ.Replace(" ","");if(ƕ(ʲ," ")){ō=ʲ.Substring(0,ʲ.IndexOf(" "));
- Ō=ʲ.Substring(ʲ.IndexOf(" ")+1);}else{ō="";Ō="";}string R;switch(ʤ){case"ping":Ƀ("Pong!");break;case"save":if(!я){ɗ(
- "Started save process");ѐ=Ѡ;}else ɗ("Load process is active, please wait to save!");break;case"load":if(!ѐ){ɗ("Started load process");я=Ѡ;}
- else ɗ("Save process is active, please wait to load!");break;case"clearqueue":foreach(long P in ш)if(o(P))((IMyAssembler)Й[P
- ].C).ClearQueue();ɗ("Assembler queues cleared");break;case"reset":Me.CustomData="";э=Ѡ;ѐ=Ѡ;ɗ(
- "Save and reset process started");break;case"update":ѐ=Ѡ;Ѿ=Ѡ;ɗ("Save and update process started");break;case"clearfunctions":ɇ();ɗ(
- "Active processes stopped");break;case"merge?":if(Ѩ){Ѩ=џ;return;}Ѩ=Ф.Count+д.Count>0;if(Ѩ)ɗ("Opened Merge Help List");else ɗ(
- "No mod items or blueprints to display");break;case"merge":ы=Ф.Count>0&&д.Count>0;if(ы)ɗ("Opened Merge Menu");else ɗ(
- "Merging requires mod items and blueprints to merge");break;case"match":Ѽ=Ѡ;break;case"functions?":Ҏ=!Ҏ;break;case"delays?":ѽ=!ѽ;break;case"scan":ϧ=TimeSpan.FromSeconds(0);
- Ϥ.Clear();ɇ();ɗ("Functions and delays reset");break;case"echo":ҋ=!ҋ;Echo($"Echo Allowed: {ҋ}");break;case"error":ҁ=!ҁ;if(
- ҁ)ɗ("Error filter enabled, use 'error' to disable");else ɗ("Error filter disabled");break;case"full":for(int Ç=0;Ç<С.
- Count;Ç++){for(int Ĩ=0;Ĩ<С.Values[Ç].Count;Ĩ++){R=С.Values[Ç].Keys[Ĩ];Ɓ(R,Ç<2||(!Č(R,"useconveyor")&&!з.Contains(R)));}}ɗ(
- "All functions");ѐ=Ѡ;break;case"basic":for(int Ç=0;Ç<С.Count;Ç++){for(int Ĩ=0;Ĩ<С.Values[Ç].Count;Ĩ++)Ɓ(С.Values[Ç].Keys[Ĩ],Ç==0);}ɗ(
- "Basic functions only");ѐ=Ѡ;break;case"monitor":for(int Ç=0;Ç<С.Count;Ç++){for(int Ĩ=0;Ĩ<С.Values[Ç].Count;Ĩ++){R=С.Values[Ç].Keys[Ĩ];Ɓ(R,R==Ӈ
- ||Č(R,"useconveyor")||Č(R,"count"));}}ɗ("Monitoring only");ѐ=Ѡ;break;default:if(ō.Length==0)ɗ($"Unhandled command: {ʦ}");ʱ
- =џ;break;}if(!ʱ&&ō.Length!=0)switch(ō){case"setgroup":u=Ō.Substring(0,Ō.IndexOf(" "));Ō=Ō.Substring(Ō.IndexOf(" ")+1);ɖ(u
- ,Ō);ѐ=Ѡ;break;case"set":u=Ō.Substring(0,Ō.IndexOf(" "));Ō=Ō.Substring(Ō.LastIndexOf(" ")+1);ɨ(u,Ō);ѐ=Ѡ;break;default:ɗ(
- $"Unhandled command: {ʦ}");break;}}bool Ν(string ʚ){string Ģ=ѻ[53];if(!Ƒ(Ģ)){ȿ(ν(ʚ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>ν(string ʚ)
- {string μ=ʚ.Replace("||",";"),ō,Ō,A="",D="";string[]λ=μ.Split(';');double Ʒ,κ,ι;bool θ=џ,ň;int P;ȭ Z=new ȭ();for(int Ç=0;
- Ç<λ.Length;Ç++){if(Ĥ())yield return Ѡ;if(Ǝ(λ[Ç],out ō,out Ō)){ō=ō.ToLower();if(ō=="type")A=Ō;else if(ō=="subtype")D=Ō;}if
- (A.Length>0&&D.Length>0)break;}if(A.Length>0&&D.Length>0){Ɏ(D,D,A,"");θ=n(out Z,$"{A}/{D}");}if(θ){for(int Ç=0;Ç<λ.Length
- ;Ç++){if(Ĥ())yield return Ѡ;if(Ǝ(λ[Ç],out ō,out Ō)){ň=ž(Ō,Ѣ);switch(ō.Replace(" ","").ToLower().Trim()){case"name":Z.Ȭ=Ō;
- break;case"quota":P=Ō.IndexOf("<");if(P>0){if(double.TryParse(Ō.Substring(0,P),out Ʒ)&&double.TryParse(Ō.Substring(P+1),out ι
- )){Z.Ʒ=Ʒ;if(ι<Ʒ)ι=Ʒ;if(ι<0)ι=0;Z.dz=ι;}}else{if(double.TryParse(Ō,out Ʒ)){Z.Ʒ=Ʒ;if(Ʒ<0)Ʒ=0;Z.dz=Ʒ;}}break;case"category":Ō=
- Ō.ToLower();Z.ĕ=Ō;ò(Ō);break;case"blueprint":if(Ƈ(Z.Ë))И.Remove(Z.Ë);Z.Ë=Ō;if(Ō.Length>0)Ф.Remove(Z.ǹ());break;case
- "assemblymultiplier":if(double.TryParse(Ō,out κ))Z.ǵ=κ;break;case"assemble":Z.Ǧ=ň;break;case"disassemble":Z.ǥ=ň;break;case"refine":Z.Ǥ=ň;
- break;case"display":Z.ǣ=ň;break;case"orekeys":string[]ǟ=Ō.Substring(1,Ō.Length-2).Split('|');if(ǟ.Length>0){Z.ǟ.Clear();Z.ǟ.
- AddRange(ǟ);}if(Z.ǟ.Count==0&&Ē(Z.A))Z.ǟ.Add(D);break;case"fuel":Z.ǧ=ň;break;case"gas":Z.ǡ=ň;break;}}}if(Ƈ(Z.Ë))И[Z.Ë]=ŷ(Z);Д[Z.
- ǹ()]=Z.ĕ;ó(ref Z);ʕ(Z);}}bool η(ref double δ,IMyInventory ˎ,ȝ γ,MyInventoryItem F){string Ģ=ѻ[23];if(!Ƒ(Ģ)){ȿ(ε(δ,ˎ,γ,F),
- Ģ);if(Ĥ())return џ;}bool ζ=Ħ(Ģ);if(ζ){δ-=ѹ;ѹ=0;return Ѡ;}return џ;}IEnumerator<bool>ε(double δ,IMyInventory ˎ,ȝ γ,
- MyInventoryItem F){ˏ=γ.C.GetInventory(0);if(ˏ!=ˎ){bool ώ,ύ=џ;double ό=γ.ȳ.ǘ(out ώ,F),ϋ=0,ϊ=f(F,γ.C),ω=δ;if(ώ){if(ό<=0.0)ύ=Ѡ;else{while(
- !Ӑ(ref ϋ,F,γ.C))yield return Ѡ;if(ϋ>=ό)ύ=Ѡ;else if(ω+ϋ>ό)ω=ό-ϋ;}}if(!ύ){if(ω>ϊ)ω=ϊ;if(!X(F))ω=Math.Floor(ω);if(ω>0){if(ˏ.
- TransferItemFrom(ˎ,F,(MyFixedPoint)ω)){Ƀ($"Moved {ñ(ω),-6} {v(c(F),12),-12} to {v(γ.C.CustomName,12),-12}");ѹ=ω;}}}}yield return џ;}bool
- ψ(string ʚ){string Ģ=ѻ[50];if(!Ƒ(Ģ)){ȿ(χ(ʚ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>χ(string ʚ){int P=ʚ.IndexOf
- ("=");string φ,υ;if(P!=-1){string ō=ʚ.Substring(0,P).Trim();φ=ʚ.Substring(P+1).Trim();if(ž(ō,"name")){while(!Ν(ʚ))yield
- return Ѡ;}else if(ō=="group"){P=φ.IndexOf("=");υ=φ.Substring(0,P).ToLower();φ=φ.Substring(P+1).Trim();Ы.ǐ();while(!Ԋ(ѻ[22],ѻ[
- 46],Ы,φ))yield return Ѡ;if(υ.Length!=0&&Ы.nj()!=0)О[υ]=Ы;}else{φ=ʚ.Substring(P+1).Trim();double τ;bool σ=!ž(φ,ѡ);if(!double
- .TryParse(φ,out τ))τ=0;if(ō=="script"){if(φ==ϟ)Ѧ=Ѡ;}else if(ō=="version"){if(τ==ѷ)ъ=Ѡ;}else if(Р.ContainsKey(ō))Р[ō]=(int
- )τ;else if(!Ŧ(ō,φ)&&!ť(ō,τ)&&!Ɓ(ō,σ)){if(П.ContainsKey(ō)&&Č(φ,"[")&&φ.EndsWith("]")){φ=φ.Substring(1,φ.Length-2);string[
- ]ς=φ.Split(new char[]{'|'},StringSplitOptions.RemoveEmptyEntries);П[ō].Clear();for(int Ç=0;Ç<ς.Length;Ç++){if(Ĥ())yield
- return Ѡ;П[ō].Add(ς[Ç]);}}}}}yield return џ;}bool ρ(string Ģ){if(!Ƒ(Ģ)){ȿ(π(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<
- bool>π(string Ģ){while(Ѡ){foreach(long P in ш){if(Ĥ())yield return Ѡ;if(!o(P))continue;ʸ.Clear();((IMyAssembler)Й[P].C).
- GetQueue(ʸ);for(int ſ=0;ſ<ʸ.Count;ſ++){if(Ĥ())yield return Ѡ;if(ŵ(ʸ[ſ]))ɉ(ʸ[ſ]);}}foreach(long P in ч){if(Ĥ())yield return Ѡ;if(
- !o(P))continue;ˆ.Clear();Й[P].C.GetInventory(0).GetItems(ˆ);for(int ſ=0;ſ<ˆ.Count;ſ++){if(Ĥ())yield return Ѡ;if(Ŷ(ˆ[ſ])){
- Ƀ($"Unknown Item: {v(ˆ[ſ].Type.SubtypeId,14)}, found in: {v(Й[P].C.CustomName,14)}");ɋ(ˆ[ſ]);}}}А.Add(Ģ);yield return џ;}
- }bool ο(string Ģ){if(!Ƒ(Ģ)){ȿ(ξ(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>ξ(string Ģ){IMyAssembler S;ʅ Ȝ;
- SortedList<string,double>ʋ=new SortedList<string,double>();List<MyProductionItem>ʟ=Ɩ();bool Τ;IMyInventory Σ;while(Ѡ){foreach(long
- P in ш){if(Ĥ())yield return Ѡ;if(!o(P)||Й[P].ȸ)continue;Ȝ=Й[P].Ȝ;S=(IMyAssembler)Й[P].C;if(S.Mode==ў)Σ=S.GetInventory(0);
- else Σ=S.GetInventory(1);if(Ȝ.ʀ(Ѭ))Τ=џ;else Τ=Ѡ;if(!Τ){S.GetQueue(ʟ);foreach(MyProductionItem Ρ in ʟ){if(Ĥ())yield return Ѡ;
- if(!ʋ.ContainsKey(ƒ(Ρ)))ʋ[ƒ(Ρ)]=(double)Ρ.Amount;else ʋ[ƒ(Ρ)]+=(double)Ρ.Amount;}ʟ.Clear();foreach(KeyValuePair<string,
- double>Ĺ in ʋ){if(Ĥ())yield return Ѡ;if(!Ȝ.ʋ.ContainsKey(Ĺ.Key)||Ȝ.ʋ[Ĺ.Key]!=Ĺ.Value){Τ=Ѡ;break;}}}else Τ=џ;if(!Τ){if(Ȝ.ʁ){S.
- ClearQueue();S.GetInventory(0).GetItems(ˁ);for(int Ĩ=0;Ĩ<ˁ.Count;Ĩ++)while(!ӝ(ˁ[Ĩ],P,0))yield return Ѡ;ˁ.Clear();S.GetInventory(1)
- .GetItems(ˁ);for(int Ĩ=0;Ĩ<ˁ.Count;Ĩ++)while(!ӝ(ˁ[Ĩ],P,1))yield return Ѡ;ˁ.Clear();Ȝ.ɾ();}else Ȝ.ʁ=Ѡ;Ȝ.ʋ.Clear();}else Ȝ.
- ɾ();foreach(KeyValuePair<string,double>Ĺ in ʋ)Ȝ.ʋ[Ĺ.Key]=Ĺ.Value;ʋ.Clear();}А.Add(Ģ);yield return Ѡ;}}bool Π(string Ģ,Ǔ Ŵ
- ,string ĕ,string u,bool ǜ=Ѡ,string M="0",float į=0f){if(!Ƒ(Ģ)){List<ȭ>ɤ=ƚ();ȿ(Ο(Ŵ,ɤ,ĕ,u,ǜ,M,į),Ģ);if(Ĥ())return џ;}return
- Ħ(Ģ);}IEnumerator<bool>Ο(Ǔ Ŵ,List<ȭ>ɤ,string ĕ,string u,bool ǜ,string M="0",float į=0f){ȭ Z;bool Ξ=џ;double Υ;if(u.Length
- >0){for(int Ç=0;Ç<ɤ.Count;Ç++){if(Ĥ())yield return Ѡ;if(ĕ=="*"||ĕ==ɤ[Ç].ĕ){Z=ɤ[Ç];if(u.Length>2)Ξ=u.StartsWith("'")&&u.
- EndsWith("'");if(u=="*"||(Ξ&&ž(Z.Ȭ.Replace(" ",""),u.Substring(1,u.Length-2)))||(!Ξ&&Č(Z.Ȭ,u))){if(M.EndsWith("%")&&double.
- TryParse(M.Substring(0,M.Length-1),out Υ)){Υ/=100.0;Υ*=į;Υ/=e(Z.A,Z.D);if(!Z.Ǡ)Υ=Math.Floor(Υ);}else if(!double.TryParse(M,out Υ
- ))Υ=0;Ŵ.Ǜ(Z.A,Z.D,Υ,ǜ);}}}}yield return џ;}bool α(List<ư>Ț,string Ō){string Ģ=ѻ[47];if(!Ƒ(Ģ)){ȿ(ΰ(Ț,Ō),Ģ);if(Ĥ())return џ
- ;}return Ħ(Ģ);}IEnumerator<bool>ΰ(List<ư>Ț,string Ō){г.Clear();string ί=Ō.Replace(" ",""),A="",D="",ħ=">",ή="";string[]έ;
- int β,ά,Ϋ;if(Ĥ())yield return Ѡ;έ=ί.Split('|');for(int Ĩ=0;Ĩ<έ.Length;Ĩ++){if(Ĥ())yield return Ѡ;г.Add(έ[Ĩ]);}if(г.Count>0)
- {Ў.ǐ();Ͻ.ǐ();for(int Ĩ=0;Ĩ<г.Count;Ĩ++){if(Ĥ())yield return Ѡ;try{ή=г[Ĩ];β=ή.IndexOf(":");A=ή.Substring(0,β);ή=ή.
- Substring(β+1);if(ή.Contains(">="))ħ=">=";else if(ή.Contains("<="))ħ="<=";else if(ή.Contains(">"))ħ=">";else if(ή.Contains("<"))ħ
- ="<";else if(ή.Contains("="))ħ="=";β=ή.IndexOf(ħ);D=ή.Substring(0,β);ή=ή.Substring(β+ħ.Length);}catch{}Ў.ǐ();while(!Π(ѻ[
- 46],Ў,A,D))yield return Ѡ;ά=Ў.nj();β=ή.IndexOf(":");if(β>0){Ͻ.ǐ();A=ή.Substring(0,β);D=ή.Substring(β+1);while(!Π(ѻ[46],Ͻ,A,
- D))yield return Ѡ;Ϋ=Ͻ.nj();for(int Ç=0;Ç<ά;Ç++){for(int ſ=0;ſ<Ϋ;ſ++){if(Ĥ())yield return Ѡ;Ț.Add(new ư{A=Ў.Ǘ(Ç),Å=Ͻ.Ǘ(ſ),ħ
- =ħ});}}}else{for(int Ç=0;Ç<ά;Ç++){if(Ĥ())yield return Ѡ;Ț.Add(new ư{A=Ў.Ǘ(Ç),Å=ή,ħ=ħ});}}}}yield return џ;}bool Ϊ(string
- Ģ){if(!Ƒ(Ģ)){ȿ(Ω(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ω(string Ģ){IMyInventory Ψ,Χ;int Φ,Ͱ;ȭ Z;double ӎ;
- while(Ѡ){Ъ.ǐ();bool Ց=џ;foreach(long P in м){if(Ĥ())yield return Ѡ;if(!o(P))continue;Ι=Й[P];Φ=Ι.Ȳ.nj();if(Φ!=0){Ψ=Ι.C.
- GetInventory(0);Ъ.ǐ();и.ǐ();и.Ǎ(Ι.Ȳ);while(!Ӥ(Ъ,new List<long>{P}))yield return Ѡ;Ͱ=Ъ.nj();for(int Ĩ=0;Ĩ<Ͱ;Ĩ++){if(Ĥ())yield return Ѡ
- ;Z=Ъ.Nj(Ĩ);if(Z.D.Length>0)и.Ǜ(Z.A,Z.D,-Z.ȫ);}for(int Ĩ=0;Ĩ<Ͱ&&!Ց;Ĩ++){if(Ĥ())yield return Ѡ;try{Z=и.Nj(Ĩ);Ց=Z.ȫ<0;}catch{}
- }if(Ց){ˀ.Clear();Ψ.GetItems(ˀ);for(int Ĩ=0;Ĩ<ˀ.Count;Ĩ++){ӎ=и.ǘ(ˀ[Ĩ]);if(ӎ<0){ӎ*=-1.0;ӎ=Math.Min(ӎ,(double)ˀ[Ĩ].Amount);
- while(!ӝ(ˀ[Ĩ],P,0,ӎ))yield return Ѡ;}}}foreach(long Տ in о){if(Ĥ())yield return Ѡ;if(!ų(и))break;if(!o(Տ))continue;ˀ.Clear();
- Θ=Й[Տ];Χ=Θ.C.GetInventory(0);Χ.GetItems(ˀ);for(int ſ=0;ſ<ˀ.Count;ſ++){if(Ĥ())yield return Ѡ;if(!ų(и))break;if(и.ǘ(ˀ[ſ])>0
- ){try{ӎ=и.ǘ(ˀ[ſ]);if(ӎ>(double)ˀ[ſ].Amount)ӎ=(double)ˀ[ſ].Amount;if(!X(ˀ[ſ]))ӎ=Math.Floor(ӎ);if(ӎ>0){if(Ψ.
- TransferItemFrom(Χ,ˀ[ſ],(MyFixedPoint)ӎ))и.Ǜ(ˀ[ſ].Type.TypeId,ˀ[ſ].Type.SubtypeId,-ӎ);}}catch{}}}}}}А.Add(Ģ);yield return џ;}}bool Վ(
- string Ģ){if(!Ƒ(Ģ)){ȿ(Ս(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ս(string Ģ){IMyInventory Σ;double Ռ=0,Ջ=0;while(Ѡ
- ){а.Clear();foreach(long P in п){if(Ĥ())yield return Ѡ;if(!o(P))continue;Β=Й[P];Σ=Β.C.GetInventory(0);ʿ.Clear();а.Clear()
- ;Σ.GetItems(ʿ);if(ʿ.Count<=1)continue;for(int Ĩ=0;Ĩ<ʿ.Count;Ĩ++){if(Ĥ())yield return Ѡ;а.Add(new ɼ{M=Ż(ʿ[Ĩ]),ǖ=Ĩ});if(Ĩ==
- 0){Ռ=а[а.Count-1].M;Ջ=а[а.Count-1].M;}else{Ռ=Math.Min(Ռ,а[а.Count-1].M);Ջ=Math.Max(Ջ,а[а.Count-1].M);}}Β.ȳ.ǐ(џ,Ѡ);if(Ռ!=Ջ
- ){а=а.OrderBy(Ĩ=>Ĩ.M).ToList();ʾ.Clear();double Պ=0,Ɍ=(double)Σ.MaxVolume/e(ʿ[0]),Չ;for(int Ĩ=0;Ĩ<а.Count;Ĩ++){if(Ĥ())
- yield return Ѡ;ʾ.Add(ʿ[а[Ĩ].ǖ]);}if(ʾ.Count>1){int Ո=Р[Ґ];if(Ո==0){for(int ԃ=1;ԃ<=а.Count;ԃ++)Պ+=ԃ;}else{int Շ=0;for(int ԃ=а.
- Count;ԃ>0;ԃ--){if(Շ<Ո){Շ++;Պ+=ԃ;}else Պ++;}}Չ=ʾ.Count;for(int Ĩ=0;Ĩ<ʾ.Count;Ĩ++){if(Ĥ())yield return Ѡ;if(Ո>0&&Ĩ>=Ո)Չ=1;Β.ȳ.Ǜ
- (ʾ[Ĩ].Type.TypeId,ʾ[Ĩ].Type.SubtypeId,(Չ/Պ)*Ɍ,џ,џ);for(int ԃ=0;ԃ<Σ.ItemCount;ԃ++){if(Ĥ())yield return Ѡ;try{
- MyInventoryItem F=(MyInventoryItem)Σ.GetItemAt(ԃ);if(F.Type.ToString()==ʾ[Ĩ].Type.ToString()){Σ.TransferItemFrom(Σ,ԃ,Ĩ,џ,ʾ[Ĩ].Amount);
- break;}}catch{}}if(Չ>1)Չ--;}}}if(Β.ȳ.nj()>0)й.Add(P);else й.Remove(P);}while(!Ի(й,Б.Contains("limit")))yield return Ѡ;А.Add(Ģ)
- ;yield return џ;}}bool Ր(string Ģ){if(!Ƒ(Ģ)){ȿ(Ւ(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ւ(string Ģ){ȭ Z;
- while(Ѡ){bool Ș,զ=Ѡ;foreach(long P in л){if(Ĥ())yield return Ѡ;Η=Й[P];if(!(Η.C is IMyTimerBlock)||((IMyFunctionalBlock)Η.C).
- Enabled){Ș=Η.Ș;for(int Ĩ=0;Ĩ<Η.Ț.Count;Ĩ++){if(Ĥ())yield return Ѡ;if(n(out Z,Η.Ț[Ĩ].A))զ=Ų(Z,Η.Ț[Ĩ].ħ,Η.Ț[Ĩ].Å);if((!զ&&Ș)||(զ
- &&!Ș))break;}if(Η.C is IMyTimerBlock){if(զ)((IMyTimerBlock)Η.C).Trigger();}else((IMyFunctionalBlock)Η.C).Enabled=զ;}}А.Add
- (Ģ);yield return џ;}}void ե(){ˬ++;string Ģ=ѻ[0];if(!Ƒ(Ģ))ȿ(դ(Ģ),Ģ);else Ħ(Ģ);}IEnumerator<bool>դ(string Ģ){while(!ё){Ԍ();
- yield return Ѡ;}while(Ѡ){while(!Յ())yield return Ѡ;while(!Դ())yield return Ѡ;գ();if(Ĥ(ѭ))yield return Ѡ;ա(ѻ[2]);if(Ĥ(ѭ))yield
- return Ѡ;А.Add(Ģ);}}void գ(){string Ģ=ѻ[1];if(!Ƒ(Ģ))ȿ(բ(Ģ),Ģ);else Ħ(Ģ);}IEnumerator<bool>բ(string Ģ){string ō;while(Ѡ){if(ј>=
- 10){ј=0;for(int Ç=2;Ç<ѻ.Length;Ç++){if(Ĥ())yield return Ѡ;if(Ƒ(ѻ[Ç]))ʘ(ѻ[Ç]);}}if(ϧ.TotalSeconds<=0.0){Ҍ=Ѡ;ϗ=ѻ[17];while(!
- ԥ(ϗ))yield return Ѡ;ɘ();Ҍ=џ;ϧ=TimeSpan.FromSeconds(Ũ(ϵ));}if(ŧ(Ү)){ϗ=ѻ[16];while(!Ԗ(ϗ))yield return Ѡ;ɘ();}if(ŧ(Ӎ)){ϗ=ѻ[
- 15];while(!ԓ(ϗ))yield return Ѡ;ɘ();}if(ŧ(Ҽ)){ō=ѻ[40];if(É(ō)){ϗ=ō;while(!ը(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(ѧ));}}if(ŧ(ӊ)&&ŧ
- (Ӎ)){ō=ѻ[31];if(É(ō)){ϗ=ō;while(!Ձ(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(ϰ));}}if(ŧ(Ӊ)&&ŧ(Ӎ)){ō=ѻ[32];if(É(ō)){ϗ=ō;while(!Խ(ō))
- yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(ϯ));}}if(ŧ(ӌ)&&ŧ(Ӎ)){ō=ѻ[27];if(É(ō)){ϗ=ō;while(!ג(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(Ϭ));}}if(ŧ(Ҿ)&&
- ŧ(Ӎ)){ō=ѻ[36];if(É(ō)){ϗ=ō;while(!հ(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(щ));}}if(ћ>0&&ŧ(ҵ)){ō=ѻ[44];if(É(ō)){ϗ=ō;while(!Վ(ō))
- yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(Ҥ));}}if(й.Count>0&&ŧ(Ӆ)){ō=ѻ[12];if(É(ō)){ϗ=ō;while(!Ӣ(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(ϴ));}}if(ŧ
- (Ӌ)){ō=ѻ[13];if(É(ō)){ϗ=ō;if(Ũ(ҩ)>0&&Ϧ.TotalMilliseconds<=0.0)ю=Ѡ;else ю=џ;while(!ӟ(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(ϳ));if
- (ю)Ϧ=Ð(Ũ(ҩ));}}if(ŧ(ӈ)){ō=ѻ[9];if(É(ō)){ϗ=ō;while(!ӷ(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(ϲ));}}ō=ѻ[24];if(É(ō)){if(п.Count>1&&
- ŧ(ӄ)){ϗ="Spreading Refineries";while(!ӭ(п,ō))yield return Ѡ;}if(р.Count>1&&ŧ(Ӄ)){ϗ="Spreading Reactors";while(!ӭ(р,ō))
- yield return Ѡ;}if(ф.Count>1&&ŧ(ӂ)){ϗ="Spreading Weapons";while(!ӭ(ф,ō))yield return Ѡ;}if(ц.Count>1&&ŧ(Ӂ)){ϗ=
- "Spreading O2/H2 Gens";while(!ӭ(ц,ō))yield return Ѡ;}if(х.Count>1&&ŧ(Ӏ)){ϗ="Spreading Gravel Sifters";while(!ӭ(х,ō))yield return Ѡ;}if(с.Count
- >1&&ŧ(ҿ)){ϗ="Spreading Parachutes";while(!ӭ(с,ō))yield return Ѡ;}ɘ();Ϥ[ō]=Ð(Ũ(ϱ));}if(Ҋ&&ŧ(һ)){ō=ѻ[38];if(É(ō)){ϗ=ō;while
- (!խ(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(ҭ));}}if(ш.Count>1&&ŧ(Һ)){ō=ѻ[41];if(É(ō)){ϗ=ō;while(!ս(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ
- (ҫ));}}if(м.Count>0&&ŧ(ҹ)){ō=ѻ[43];if(É(ō)){ϗ=ō;while(!Ϊ(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(Ҫ));}}if(л.Count>0&&ŧ(Ҹ)){ō=ѻ[45]
- ;if(É(ō)){ϗ=ō;while(!Ր(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(Ҩ));}}if(ш.Count>0&&ŧ(ҷ)){ō=ѻ[48];if(É(ō)){ϗ=ō;while(!ο(ō))yield
- return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(ҧ));}}if(ŧ(Ҷ)){ō=ѻ[49];if(É(ō)){ϗ=ō;while(!ρ(ō))yield return Ѡ;ɘ();Ϥ[ō]=Ð(Ũ(ҥ));}}if(Ϗ==-1)Ϗ=ˬ;else Ϗ=
- Math.Min(Ϗ,ˬ);if(ʰ==-1)ʰ=ˬ;else ʰ=Math.Max(ʰ,ˬ);ˬ=0;А.Add(Ģ);yield return Ѡ;}}void ա(string Ģ){if(!Ƒ(Ģ)){ȿ(ՙ(Ģ),Ģ);if(Ĥ())
- return;}Ħ(Ģ,!Ҍ&&!я);}IEnumerator<bool>ՙ(string Ģ){while(Ѡ){while(Ҍ)yield return Ѡ;foreach(long P in к){if(Ĥ())yield return Ѡ;
- for(int Ֆ=0;Ֆ<Й[P].ț.Count;Ֆ++){while(!Ļ(Й[P].ț.Values[Ֆ])){yield return Ѡ;if(Ҍ)break;}if(Ҍ)break;}if(Ҍ)break;}А.Add(Ģ);
- yield return џ;}}bool Օ(ref double Ք,List<long>ә){string Ģ=ѻ[6];if(!Ƒ(Ģ)){ȿ(Փ(ә),Ģ);if(Ĥ())return џ;}bool ζ=Ħ(Ģ);if(ζ)Ք=ѵ;
- return ζ;}IEnumerator<bool>Փ(List<long>ә){double ɒ=0,ǿ=0;IMyInventory Σ;foreach(long P in ә){if(Ĥ())yield return Ѡ;if(!o(P))
- continue;Σ=Й[P].C.GetInventory(0);ɒ+=(double)Σ.MaxVolume;ǿ+=(double)Σ.CurrentVolume;}ѵ=ǿ/ɒ;yield return џ;}bool Ի(List<long>ә,
- bool Թ){string Ģ=ѻ[37];if(!Ƒ(Ģ)){ȿ(Ժ(ә,Թ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ժ(List<long>ә,bool Թ){for(int Ç=
- 0;Ç<ә.Count;Ç+=0){if(Ĥ())yield return Ѡ;if(!Ш.Add(ә[Ç]))ә.RemoveAt(Ç);else Ç++;}Ш.Clear();if(Թ&&Ҋ){List<long>Ը=new List<
- long>(ә);IOrderedEnumerable<long>Է=Ը.OrderByDescending(Ĩ=>Й[Ĩ].ȱ);ә.Clear();foreach(long P in Է){if(Ĥ())yield return Ѡ;ә.Add
- (P);}}yield return џ;}bool Զ(Ǔ Ŵ){string Ģ=ѻ[29];if(!Ƒ(Ģ)){ȿ(Ե(Ŵ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ե(Ǔ Ŵ
- ){List<ȭ>ɤ=ƚ();for(int Ç=0;Ç<ɤ.Count;Ç++){if(Ĥ())yield return Ѡ;ɤ[Ç].Ƿ=Ŵ.ǘ(ɤ[Ç].A,ɤ[Ç].D);}yield return џ;}bool Դ(){
- string Ģ=ѻ[30];if(!ѐ){if(Ƒ(Ģ))ʘ(Ģ);return Ѡ;}ϗ=Ģ;if(!Ƒ(Ģ)){ɗ("Saving Data");ȿ(Գ(),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator
- <bool>Գ(){StringBuilder Æ=new StringBuilder();string Բ;int Ա;SortedList<string,SortedList<string,ȭ>>ԧ=new SortedList<
- string,SortedList<string,ȭ>>();foreach(KeyValuePair<string,SortedList<string,ȭ>>ƙ in Н){if(Ĥ())yield return Ѡ;Ա=0;foreach(
- KeyValuePair<string,ȭ>ԑ in ƙ.Value){if(Ĥ())yield return Ѡ;Բ=ԑ.Value.ĕ;if(!ԧ.ContainsKey(Բ))ԧ[Բ]=new SortedList<string,ȭ>();if(!ԧ[Բ].
- ContainsKey(ԑ.Value.Ȭ))ԧ[Բ][ԑ.Value.Ȭ]=ԑ.Value;else{Ա++;ԧ[Բ][$"{ԑ.Value.Ȭ} {Ա}"]=ԑ.Value;}}}foreach(KeyValuePair<string,SortedList<
- string,ȭ>>ƙ in ԧ){if(Ĥ())yield return Ѡ;ɠ(ref Æ,$"Items - {Ƙ(ƙ.Key)}");foreach(KeyValuePair<string,ȭ>ԑ in ƙ.Value){if(Ĥ())
- yield return Ѡ;h(ref Æ,ԑ.Value);Æ.AppendLine();}}ɠ(ref Æ,"Item Groups");foreach(KeyValuePair<string,Ǔ>Ĺ in О){if(Ĥ())yield
- return Ѡ;Æ.Append($"group={Ĺ.Key}=");while(!ӻ(Æ,Ĺ.Value,џ))yield return Ѡ;}if(!э){foreach(KeyValuePair<string,SortedList<
- string,bool>>ƙ in С){if(Ĥ())yield return Ѡ;ɠ(ref Æ,$"Switches - {ƙ.Key}");foreach(KeyValuePair<string,bool>ԑ in ƙ.Value){if(Ĥ(
- ))yield return Ѡ;Æ.AppendLine($"{ԑ.Key}={ԑ.Value}");}}foreach(KeyValuePair<string,SortedList<string,double>>ƙ in Т){if(Ĥ(
- ))yield return Ѡ;ɠ(ref Æ,$"Numbers - {ƙ.Key}");foreach(KeyValuePair<string,double>ԑ in ƙ.Value){if(Ĥ())yield return Ѡ;Æ.
- AppendLine($"{ԑ.Key}={ԑ.Value}");}}foreach(KeyValuePair<string,int>Ĺ in Р){if(Ĥ())yield return Ѡ;Æ.AppendLine($"{Ĺ.Key}={Ĺ.Value}"
- );}foreach(KeyValuePair<string,SortedList<string,string>>ƙ in Ц){if(Ĥ())yield return Ѡ;ɠ(ref Æ,$"Text - {ƙ.Key}");foreach
- (KeyValuePair<string,string>ԑ in ƙ.Value){if(Ĥ())yield return Ѡ;Æ.AppendLine($"{ԑ.Key}={ԑ.Value}");}}ɠ(ref Æ,"Lists");
- foreach(KeyValuePair<string,List<string>>Ĺ in П){if(Ĥ())yield return Ѡ;Æ.Append($"{Ĺ.Key}=[");for(int Ç=0;Ç<Ĺ.Value.Count;Ç++){
- if(Ç>0){Æ.Append("|");if(Ĥ())yield return Ѡ;}Æ.Append(Ĺ.Value[Ç]);}Æ.AppendLine("]");Æ.AppendLine();}Æ.AppendLine();Æ.
- AppendLine();Æ.AppendLine($"script={ϟ}");if(!Ѿ)Æ.AppendLine($"version={ѷ}");else Æ.AppendLine("version=-1");}Me.CustomData=Æ.
- ToString().Trim();Ƽ=Me.CustomData;Ѧ=Ѡ;ъ=Ѡ;ѐ=џ;ɗ("Save Data Complete");yield return џ;}bool Յ(){string Ģ=ѻ[42];if(!я){if(Ƒ(Ģ))ʘ(Ģ
- );return Ѡ;}ϗ=Ģ;if(!Ƒ(Ģ)){ɇ();ɗ("Loading Data");ȿ(Մ(),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Մ(){if(Me.
- CustomData.Length>0){Ѧ=џ;ъ=џ;ж.Clear();yield return Ѡ;string[]Ճ=Me.CustomData.Split(new[]{"\r\n","\r","\n"},StringSplitOptions.
- RemoveEmptyEntries);List<string>Ն=new List<string>();for(int Ç=0;Ç<Ճ.Length;Ç++){if(Ĥ())yield return Ѡ;if(Ճ[Ç].StartsWith("^")&&Ն.Count>0)
- Ն[Ն.Count-1]+=$"||{Ճ[Ç].Substring(1).Trim()}";else Ն.Add(Ճ[Ç].Trim());}for(int Ç=0;Ç<Ն.Count;Ç++){if(Ĥ())yield return Ѡ;
- while(!ψ(Ն[Ç]))yield return Ѡ;}string Ղ;for(int Ç=0;Ç<П[ѥ].Count;Ç++){if(Ĥ())yield return Ѡ;Ղ=П[ѥ][Ç];if(Ղ.Contains("/"))П[ѥ]
- [Ç]=Ղ.Substring(Ղ.IndexOf("/")+1);}if(!ъ||!Ѧ)ѐ=Ѡ;}else ѐ=Ѡ;if(Ĥ())yield return Ѡ;Ί();if(Ĥ())yield return Ѡ;ʯ();if(Ĥ())
- yield return Ѡ;Ƽ=Me.CustomData;ɗ("Load Data Complete");я=џ;yield return џ;}bool Ձ(string Ģ){if(!Ƒ(Ģ)){ȿ(Հ(Ģ),Ģ);if(Ĥ())return
- џ;}return Ħ(Ģ);}IEnumerator<bool>Հ(string Ģ){double Կ;while(Ѡ){foreach(KeyValuePair<string,Ƴ>Ĺ in И){if(Ĥ())yield return
- Ѡ;Կ=Ï(Ĺ.Value);if(Կ>0){while(!ֆ(Ĺ.Value,Կ,ш))yield return Ѡ;}}int Ծ=Р[ґ];if(Ծ>0){Ƴ Î=new Ƴ{Ë=ϖ};while(!ֆ(Î,Ծ,ш,ў,џ))yield
- return Ѡ;}А.Add(Ģ);yield return џ;}}bool Խ(string Ģ){if(!Ƒ(Ģ)){ȿ(Լ(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Լ(
- string Ģ){double Կ;while(Ѡ){foreach(KeyValuePair<string,Ƴ>Ĺ in И){if(Ĥ())yield return Ѡ;Կ=Ï(Ĺ.Value,Ѡ);if(Կ>0){while(!ֆ(Ĺ.
- Value,Կ,ш,ѝ))yield return Ѡ;}}А.Add(Ģ);yield return џ;}}bool ֆ(Ƴ Î,double M,List<long>փ,MyAssemblerMode Ñ=ў,bool õ=Ѡ){string
- Ģ=ѻ[26];if(!Ƒ(Ģ)){ȿ(օ(Î,M,փ,Ñ,õ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>օ(Ƴ Î,double ք,List<long>փ,
- MyAssemblerMode Ñ,bool õ){double M=ք,K=1;string ւ;if(Ñ==ѝ){K=Î.K;M=Math.Floor(ք/K);}MyDefinitionId Ë=MyDefinitionId.Parse(Õ(Î));
- IMyTerminalBlock C;Л.Clear();foreach(long P in փ){if(Ĥ())yield return Ѡ;if(!o(P))continue;if(Ò(Й[P],Ë,Ñ)){C=Й[P].C;ւ=Ɠ(C);if(!Л.
- ContainsKey(ւ))Л[ւ]=new List<Ʈ>();Л[ւ].Add(new Ʈ{P=P,ƭ=((IMyAssembler)C).IsQueueEmpty,Ƭ=Й[P].ȴ});}}List<long>ә=ö();foreach(
- KeyValuePair<string,List<Ʈ>>ƙ in Л){if(Ĥ())yield return Ѡ;foreach(Ʈ ց in ƙ.Value){if(Ĥ())yield return Ѡ;if(!ց.Ƭ||Л.Count==1){if(Ñ==ѝ
- &&ˣ.ContainsKey(ƙ.Key)&&ә.Count>0)continue;if(ց.ƭ)ә.Insert(0,ց.P);else ә.Add(ց.P);}}}Л.Clear();if(ә.Count>0){int Ӗ,ǽ,ր;Ӗ=
- Math.DivRem((int)M,ә.Count,out ǽ);if(Î.Ë==ϖ){ǽ=0;Ӗ=(int)M;}for(int Ç=0;Ç<ә.Count&&Ç<M;Ç++){ր=Ӗ;if(Ç<ǽ)ր++;if(ր>0){while(!տ(Ë
- ,ր*K,Й[ә[Ç]],Ñ,õ))yield return Ѡ;}}}yield return џ;}bool տ(MyDefinitionId Ë,double M,ȝ ª,MyAssemblerMode Ñ,bool õ=Ѡ){
- string Ģ=ѻ[33];if(!Ƒ(Ģ)){ȿ(ח(Ë,M,ª,Ñ,õ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>ח(MyDefinitionId Ë,double M,ȝ ª,
- MyAssemblerMode Ñ,bool õ){double ր=Math.Floor(M);bool ז;IMyAssembler S=(IMyAssembler)ª.C;S.Mode=Ñ;if(S.Mode!=Ñ)S.Mode=Ñ;if(S.Mode==Ñ){
- if(S.IsQueueEmpty)S.AddQueueItem(Ë,ր);else{ʼ.Clear();bool ו=џ;double ה=0,ד=0;if(Ñ==ў)ה=Ì(Ë);S.GetQueue(ʼ);ז=џ;for(int Ç=0;
- !ז&&Ç<ʼ.Count;Ç++){if(Ĥ())yield return Ѡ;if(ƒ(ʼ[Ç])==Ë.SubtypeName){ז=Ѡ;if(Ë.SubtypeName==ϖ)ր=Math.Floor(ր-(double)ʼ[Ç].
- Amount);}}if(ր>0&&(ז||(Ñ==ў&&!ª.ȷ))){for(int Ç=0;Ç<ʼ.Count;Ç++){if(Ĥ())yield return Ѡ;if(!ז&&Ñ==ў)ד=Ì(ʼ[Ç].BlueprintId);if((!ז
- &&ה<=ד)||ƒ(ʼ[Ç])==Ë.SubtypeName){S.InsertQueueItem(Ç,Ë,ր);ו=Ѡ;break;}}}if(!ו&&ր>0)S.AddQueueItem(Ë,ր);}if(õ)Ƚ(Ë.
- SubtypeName,Ñ==ў,ր,Ѡ);}yield return џ;}bool ג(string Ģ){if(!Ƒ(Ģ)){ȿ(ב(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>ב(string
- Ģ){ȭ Z;double ծ;while(Ѡ){foreach(KeyValuePair<string,Ƴ>Ĺ in И){if(Ĥ())yield return Ѡ;if(n(out Z,
- $"{Ĺ.Value.A}/{Ĺ.Value.D}")){ծ=Math.Floor(Z.ǭ);if(ծ>0){while(!א(Ĺ.Value,ծ))yield return Ѡ;}}}А.Add(Ģ);yield return џ;}}bool א(Ƴ Î,double M,
- MyAssemblerMode Ñ=ў){string Ģ=ѻ[35];if(!Ƒ(Ģ)){ȿ(և(Î,M,Ñ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>և(Ƴ Î,double M,
- MyAssemblerMode Ñ){double ջ,ձ=M;ʻ.Clear();IMyAssembler S;foreach(long P in ш){if(ձ<=0.0)break;if(Ĥ())yield return Ѡ;if(!o(P))continue;S
- =(IMyAssembler)Й[P].C;if(S.Mode==Ñ&&!S.IsQueueEmpty){ʻ.Clear();S.GetQueue(ʻ);for(int Ĩ=ʻ.Count-1;Ĩ>=0&&ձ>0;Ĩ--){if(Ĥ())
- yield return Ѡ;if(ƒ(ʻ[Ĩ])==Î.Ë){ջ=(double)ʻ[Ĩ].Amount;if(ջ>ձ)ջ=ձ;S.RemoveQueueItem(Ĩ,(MyFixedPoint)ջ);Ƚ(Î.Ë,Ñ==ў,-ջ,Ѡ);ձ-=ջ;}
- }}}yield return џ;}bool հ(string Ģ){if(!Ƒ(Ģ)){ȿ(կ(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>կ(string Ģ){ȭ Z;
- double ծ;while(Ѡ){foreach(KeyValuePair<string,Ƴ>Ĺ in И){if(Ĥ())yield return Ѡ;if(n(out Z,$"{Ĺ.Value.A}/{Ĺ.Value.D}")){ծ=Math.
- Floor(Z.Ǭ);if(ծ>0){while(!א(Ĺ.Value,ծ,ѝ))yield return Ѡ;}}}А.Add(Ģ);yield return џ;}}bool խ(string Ģ){if(!Ƒ(Ģ)){ȿ(լ(Ģ),Ģ);if(
- Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>լ(string Ģ){while(Ѡ){foreach(KeyValuePair<string,List<long>>Ĺ in М){if(Ĥ())
- yield return Ѡ;if(Ĺ.Value.Count>1&&В.Contains(Ĺ.Key))while(!ի(Ĺ.Value))yield return Ѡ;}А.Add(Ģ);yield return џ;}}bool ի(List<
- long>ә){string Ģ=ѻ[39];if(!Ƒ(Ģ)){ȿ(ժ(ә),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>ժ(List<long>ә){int թ=0;while(թ<ә.
- Count){if(Ĥ())yield return Ѡ;if(Q(ә[թ])>=0.985)թ++;else break;}for(int Ç=թ+1;Ç<ә.Count;Ç++){if(Ĥ())yield return Ѡ;if(!o(ә[Ç])
- )continue;if(Q(ә[թ])>=0.985)թ++;if(Ç>թ){ʽ.Clear();try{Ε=Й[ә[Ç]];}catch{continue;}Ε.C.GetInventory(0).GetItems(ʽ);for(int
- Ĩ=0;Ĩ<ʽ.Count;Ĩ++){if(Ĥ())yield return Ѡ;if(Ε.Ȳ.ǘ(ʽ[Ĩ])<=0.0){while(!ӝ(ʽ[Ĩ],ә[Ç],0,-1,Ç,թ))yield return Ѡ;}}}}yield
- return џ;}bool ը(string Ģ){if(!Ƒ(Ģ)){ȿ(է(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>է(string Ģ){IMyAssembler S;int ղ
- ;double վ,Ռ=0,Ջ=0;ȝ ª;while(Ѡ){Я.Clear();ʺ.Clear();foreach(long P in ш){if(Ĥ())yield return Ѡ;ª=Й[P];ʺ.Clear();if(!o(P)||
- ª.ȷ)continue;S=(IMyAssembler)ª.C;if(!S.IsQueueEmpty&&S.Enabled&&S.Mode==ў){S.GetQueue(ʺ);if(ʺ.Count>1){Я.Clear();for(int
- Ĩ=0;Ĩ<ʺ.Count;Ĩ++){if(Ĥ())yield return Ѡ;ղ=(int)ʺ[Ĩ].Amount;if(Ĩ==0&&S.CurrentProgress>=0.1f){if(ղ>10)ղ-=3;else ղ=0;}if(ղ
- >0){վ=Ì(ʺ[Ĩ].BlueprintId);if(Ĩ==0)Ռ=վ;else Ռ=Math.Min(Ռ,վ);if(Ĩ==0)Ջ=վ;else Ջ=Math.Max(Ջ,վ);Я.Add(new ɼ{M=վ,ǖ=ղ,ō=ƒ(ʺ[Ĩ])
- });}}if(Ռ==Ջ)continue;Я=Я.OrderBy(Ĩ=>Ĩ.M).ToList();for(int Ӿ=0;Ӿ<Я.Count;Ӿ++){if(Ĥ())yield return Ѡ;for(int Ž=0;Ž<ʺ.Count
- ;Ž++){if(Ĥ())yield return Ѡ;if(ƒ(ʺ[Ž])==Я[Ӿ].ō){if(Ž!=Ӿ)S.MoveQueueItemRequest(ʺ[Ž].ItemId,Ӿ);continue;}}}}}}А.Add(Ģ);
- yield return џ;}}bool ս(string Ģ){if(!Ƒ(Ģ)){ȿ(ռ(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>ռ(string Ģ){string ō;
- IMyAssembler S;double M,պ;int չ,ո;List<long>շ=ö(),ն=ö();while(Ѡ){շ.Clear();ն.Clear();З.Clear();Ж.Clear();ʹ.Clear();bool յ=џ,ń,մ,ճ;
- foreach(long P in ш){if(Ĥ())yield return Ѡ;if(!o(P))continue;S=(IMyAssembler)Й[P].C;if(S.Enabled){if(!S.IsQueueEmpty)յ=Ѡ;if(S.
- Mode==ў||S.IsQueueEmpty)շ.Add(P);else ն.Add(P);}}if(յ&&(շ.Count>1||ն.Count>1)){ո=0;foreach(long P in ш){if(Ĥ())yield return
- Ѡ;if(!o(P)||Й[P].ȶ)continue;ʹ.Clear();S=(IMyAssembler)Й[P].C;S.GetQueue(ʹ);ń=S.Mode==ў;if(ˣ.ContainsKey(Ɠ(S)))պ=ˣ[Ɠ(S)];
- else պ=0;մ=!ń&&ո<պ&&ո<Math.Ceiling(ш.Count/2.0);for(int Ĩ=ʹ.Count-1;Ĩ>=0;Ĩ--){if(Ĥ())yield return Ѡ;M=(double)ʹ[Ĩ].Amount;if
- (ʹ.Count>1&&Ĩ==0&&M<=50&&!մ)break;ō=ƒ(ʹ[Ĩ]);if(M>1||Ĩ>0){if(!մ){M=Math.Ceiling(M*0.9);if(M==(double)ʹ[Ĩ].Amount&&Ĩ==0)M-=
- 1;}if(M>0){չ=0;foreach(long Ǖ in ш){if(Ĥ())yield return Ѡ;if(Ò(Й[Ǖ],ʹ[Ĩ].BlueprintId,S.Mode))չ++;}if(չ>1){ճ=Ѡ;if(ń){if(!З
- .ContainsKey(ō))З[ō]=new Ƴ{M=M,Ë=ō};else З[ō].M+=M;}else{if(Ɖ(ō)==1){if(!Ж.ContainsKey(ō))Ж[ō]=new Ƴ{M=M,Ë=ō};else Ж[ō].M
- +=M;}else ճ=џ;}if(ճ){try{S.RemoveQueueItem(Ĩ,M);}catch{}}}}}}ո++;}foreach(KeyValuePair<string,Ƴ>Ĺ in З){if(Ĥ())yield
- return Ѡ;while(!ֆ(Ĺ.Value,Ĺ.Value.M,շ,ў,џ))yield return Ѡ;}foreach(KeyValuePair<string,Ƴ>Ĺ in Ж){if(Ĥ())yield return Ѡ;while(!
- ֆ(Ĺ.Value,Ĺ.Value.M,ն,ѝ,џ))yield return Ѡ;}}А.Add(Ģ);yield return џ;}}bool ӭ(List<long>ә,string Ģ){if(!Ƒ(Ģ)){ȿ(Ӭ(ә),Ģ);if
- (Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ӭ(List<long>ә){Ϫ.ǐ();while(!Ӥ(Ϫ,ә))yield return Ѡ;if(Ϫ.nj()>0){while(!ӫ(Ϫ.ǒ,ә
- ))yield return Ѡ;}yield return џ;}bool ӫ(SortedList<string,double>Ŵ,List<long>ә){string Ģ=ѻ[25];if(!Ƒ(Ģ)){ȿ(Ӫ(Ŵ,ә),Ģ);if(
- Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ӫ(SortedList<string,double>Ŵ,List<long>ә){double õ;int ө;IMyTerminalBlock C,Ө
- ;string A,D;foreach(long ӧ in ә){foreach(KeyValuePair<string,double>Ĺ in Ŵ){if(Ĥ())yield return Ѡ;õ=0;if(!o(ӧ))continue;C
- =Й[ӧ].C;ə(Ĺ.Key,out A,out D);while(!Ӑ(ref õ,A,D,C))yield return Ѡ;ө=0;foreach(long ӥ in ә){if(Ĥ())yield return Ѡ;try{if(ů
- (Й[ӥ],A,D))ө++;}catch{}}if(O(õ,Ĺ.Value/ө,ѯ)){ˍ.Clear();C.GetInventory(0).GetItems(ˍ);for(int Ĩ=0;Ĩ<ˍ.Count;Ĩ+=0){if(Ĥ())
- yield return Ѡ;if(ˍ[Ĩ].Type.ToString()==Ĺ.Key)Ĩ++;else ˍ.RemoveAt(Ĩ);}if(ˍ.Count>0){double Ӡ=õ-(Ĺ.Value/ә.Count);SortedList<
- long,double>Ӧ=new SortedList<long,double>();foreach(long ӥ in ә){if(ӧ!=ӥ){if(Ĥ())yield return Ѡ;if(!o(ӥ))continue;õ=0;Ө=Й[ӥ]
- .C;if(!ů(Й[ӥ],A,D))continue;while(!Ӑ(ref õ,A,D,Ө))yield return Ѡ;if(N(õ,Ĺ.Value/ә.Count,ѯ))Ӧ[ӥ]=õ;}}if(Ӧ.Count>0)while(!ӳ
- (ˍ[0],C,Ӧ,Ӡ))yield return Ѡ;}}}}yield return џ;}bool Ӥ(Ǔ õ,List<long>ӣ,string A="",string D=""){string Ģ=ѻ[8];if(!Ƒ(Ģ)){ȿ
- (Ӯ(õ,ӣ,A,D),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ӯ(Ǔ õ,List<long>ӣ,string A,string D){foreach(long P in ӣ){
- if(Ĥ())yield return Ѡ;ˌ.Clear();if(!o(P))continue;Й[P].C.GetInventory(0).GetItems(ˌ);for(int Ĩ=0;Ĩ<ˌ.Count;Ĩ++){if(Ĥ())
- yield return Ѡ;if((A.Length==0||ˌ[Ĩ].Type.TypeId==A)&&(D.Length==0||ˌ[Ĩ].Type.SubtypeId==D))õ.Ǜ(ˌ[Ĩ]);}}yield return џ;}bool
- ӷ(string Ģ){if(!Ƒ(Ģ)){ȿ(Ӷ(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ӷ(string Ģ){string D;SortedList<long,
- double>Ӧ=new SortedList<long,double>();List<long>ӵ=ö();while(Ѡ){foreach(long P in о){if(Ĥ())yield return Ѡ;if(!o(P))continue;ͱ
- =Й[P];IMyInventory Σ=ͱ.C.GetInventory(0);if(Σ.ItemCount==0)continue;ˋ.Clear();Σ.GetItems(ˋ);for(int Ĩ=0;Ĩ<ˋ.Count;Ĩ++){if
- (Ĥ())yield return Ѡ;if(I(ˋ[Ĩ],ͱ)){D=ˋ[Ĩ].Type.SubtypeId;Ӧ.Clear();ӵ.Clear();if(đ(ˋ[Ĩ]))ӵ.AddRange(п);else if(Đ(ˋ[Ĩ]))ӵ.
- AddRange(ф);else if(Ē(ˋ[Ĩ])&&D=="Stone")ӵ.AddRange(х);else if(Ď(ˋ[Ĩ])&&D=="Canvas")ӵ.AddRange(с);if(d(ˋ[Ĩ]))ӵ.AddRange(р);if(Ô(ˋ
- [Ĩ]))ӵ.AddRange(ц);if(ӵ.Count>0){foreach(long Ǖ in ӵ){if(Ĥ())yield return Ѡ;Ӧ[Ǖ]=-1;}while(!ӳ(ˋ[Ĩ],ͱ.C,Ӧ))yield return Ѡ;
- }}}}Ӧ.Clear();А.Add(Ģ);yield return џ;}}bool ӳ(MyInventoryItem F,IMyTerminalBlock C,SortedList<long,double>Ӧ,double Ӳ=-1)
- {string Ģ=ѻ[10];if(!Ƒ(Ģ)){ȿ(ӱ(F,C,Ӧ,Ӳ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>ӱ(MyInventoryItem F,
- IMyTerminalBlock C,SortedList<long,double>ӣ,double Ӱ){IMyTerminalBlock ª;SortedList<long,double>ӯ=new SortedList<long,double>();List<
- long>Ӵ=ö();foreach(KeyValuePair<long,double>Ĺ in ӣ)ӯ[Ĺ.Key]=Ĺ.Value;double ϋ,ӗ,Ӗ,ӕ,Ɍ,ѯ,Ӕ,ū,ӓ=0;for(int Ç=0;Ç<ӯ.Count;Ç+=0){
- if(Ĥ())yield return Ѡ;if(o(ӯ.Keys[Ç])&&Q(ӯ.Keys[Ç])<0.99&&ů(Й[ӯ.Keys[Ç]],F)){Ӵ.Add(ӯ.Keys[Ç]);Ç++;}else ӯ.Remove(ӯ.Keys[Ç]
- );}if(ӯ.Count>0){ϩ.ǐ();while(!Ӥ(ϩ,Ӵ,F.Type.TypeId,F.Type.SubtypeId))yield return Ѡ;Ӵ.Clear();ӗ=(double)F.Amount;ѯ=Ũ(Қ);if
- (Ӱ>0&&ӗ>Ӱ)ӗ=Ӱ;bool Ǡ=X(F);ϩ.Ǜ(F.Type.TypeId,F.Type.SubtypeId,ӗ);if(ϩ.nj()>0&&ӯ.Count>0){Ӕ=ϩ.ǘ(F)/ӯ.Count;for(int Ç=0;Ç<ӯ.
- Count;Ç+=0){if(Ĥ())yield return Ѡ;ϋ=ӯ.Values[Ç];if(ϋ==-1){ϋ=0;ª=Й[ӯ.Keys[Ç]].C;while(!Ӑ(ref ϋ,F,ª))yield return Ѡ;ӯ[ӯ.Keys[Ç]
- ]=ϋ;}if(ϋ>Ӕ+(Ӕ*ѯ))ӯ.RemoveAt(Ç);else Ç++;}}if(ӯ.Count>0){long ō;bool Ӓ;int ӑ=0;foreach(KeyValuePair<long,double>Ĺ in ӯ){Ɍ
- =E(F,Й[Ĺ.Key].C);ū=Й[Ĺ.Key].ȳ.ǘ(out Ӓ,F);if(Ӓ)Ɍ=ū;Ӓ=Ɍ<double.MaxValue;Ӗ=ӗ/((double)ӯ.Count-ӑ);ϋ=Ĺ.Value;ō=Ĺ.Key;if(Ĥ())
- yield return Ѡ;if(ϋ==-1){ϋ=0;ª=Й[Ĺ.Key].C;if(Ӓ){while(!Ӑ(ref ϋ,F,ª))yield return Ѡ;}}if(Ӗ+ϋ>Ɍ)Ӗ=Ɍ-ϋ;if(!Ǡ){ӓ+=Ӗ-Math.Floor(Ӗ)
- ;Ӗ=Math.Floor(Ӗ);if(ӓ>=1&&(ϋ+Ӗ+1<=Ɍ)){Ӗ++;ӓ--;}}if(ӑ+1==ӯ.Count&&Ӗ+ӓ<=Ɍ)Ӗ+=ӓ;ӕ=Ӗ;while(!η(ref Ӗ,C.GetInventory(0),Й[Ĺ.Key
- ],F))yield return Ѡ;if(Ӗ>0)ӗ-=ӕ-Ӗ;ӑ++;}}}yield return џ;}bool Ӑ(ref double M,MyInventoryItem F,IMyTerminalBlock C){return
- Ӑ(ref M,F.Type.TypeId,F.Type.SubtypeId,C);}bool Ӑ(ref double M,string m,string D,IMyTerminalBlock C){string Ģ=ѻ[11];if(!Ƒ
- (Ģ)){ȿ(ӏ(m,D,C),Ģ);if(Ĥ())return џ;}if(Ħ(Ģ)){M=Ѹ;Ѹ=0;return Ѡ;}return џ;}IEnumerator<bool>ӏ(string m,string D,
- IMyTerminalBlock C){ˊ.Clear();C.GetInventory(0).GetItems(ˊ);for(int Ç=0;Ç<ˊ.Count;Ç++){if(Ĥ())yield return Ѡ;if(ˊ[Ç].Type.TypeId==m&&ˊ[Ç
- ].Type.SubtypeId==D)Ѹ+=(double)ˊ[Ç].Amount;}yield return џ;}bool Ӣ(string Ģ){if(!Ƒ(Ģ)){ȿ(ӡ(Ģ),Ģ);if(Ĥ())return џ;}return
- Ħ(Ģ);}IEnumerator<bool>ӡ(string Ģ){while(Ѡ){double Ű=0,Ӡ;foreach(long P in й){if(Ĥ())yield return Ѡ;if(!o(P))continue;Μ=Й
- [P];ˉ.Clear();Μ.C.GetInventory(0).GetItems(ˉ);if(Ĥ())yield return Ѡ;for(int Ĩ=0;Ĩ<ˉ.Count;Ĩ++){if(Ĥ())yield return Ѡ;if(Ů
- (Μ,ref Ű,ˉ[Ĩ])){Ӡ=(double)ˉ[Ĩ].Amount-Ű;if(Ӡ>0)while(!ӝ(ˉ[Ĩ],P,0,Ӡ))yield return Ѡ;}}}А.Add(Ģ);yield return џ;}}bool ӟ(
- string Ģ){if(!Ƒ(Ģ)){ȿ(Ӟ(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ӟ(string Ģ){IMyTerminalBlock C;while(Ѡ){foreach(
- long P in н){if(Ĥ())yield return Ѡ;if(!o(P))continue;Κ=Й[P];C=Κ.C;if(Κ.Ⱥ||(!Κ.Ǐ&&W(Κ,0))){ˈ.Clear();C.GetInventory(0).
- GetItems(ˈ);for(int Ĩ=0;Ĩ<ˈ.Count;Ĩ++){if(Ĥ())yield return Ѡ;if(Κ.Ⱥ||W(ˈ[Ĩ],Κ))while(!ӝ(ˈ[Ĩ],P,0))yield return Ѡ;}}if(C.
- InventoryCount>1&&(Κ.ȹ||(!Κ.Ǐ&&W(Κ,1)))){ˈ.Clear();C.GetInventory(1).GetItems(ˈ);for(int Ĩ=0;Ĩ<ˈ.Count;Ĩ++){if(Ĥ())yield return Ѡ;if(Κ
- .ȹ||W(ˈ[Ĩ],Κ,1))while(!ӝ(ˈ[Ĩ],P,1))yield return Ѡ;}}}А.Add(Ģ);yield return џ;}}bool ӝ(MyInventoryItem F,long Ӛ,int U,
- double ɒ=-1,int Ә=-1,int Ӝ=0){string Ģ=ѻ[14];if(!Ƒ(Ģ)){ȿ(ӛ(F,Ӛ,U,ɒ,Ә,Ӝ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>ӛ(
- MyInventoryItem F,long Ӛ,int U,double ɒ,int Ә,int Ӝ){List<long>Ӵ=ö();string m=F.Type.ToString(),A;Δ=Й[Ӛ];IMyTerminalBlock Ө,ԕ=Δ.C;A=F.
- Type.TypeId;δ=(double)F.Amount;if(ɒ>0&&δ>ɒ)δ=ɒ;if(δ>(double)F.Amount)δ=(double)F.Amount;Ѵ=δ;ˎ=ԕ.GetInventory(U);bool Ԕ=ю&&ē(
- F)&&!(ԕ is IMyGasGenerator||ԕ is IMyGasTank);if(Ѵ>0){if(!Ԕ&&Д.ContainsKey(m)&&М.ContainsKey(Д[m]))Ӵ.AddRange(М[Д[m]]);if(
- Ӵ.Count==0){if(Ď(F)){if(М.ContainsKey(ϛ))Ӵ.AddRange(М[ϛ]);}else if(č(F)){if(Ԕ){if(F.Type.TypeId==І)Ӵ.AddRange(т);else if(
- F.Type.TypeId==Ї)Ӵ.AddRange(у);Ӵ.AddRange(ц);}else if(М.ContainsKey(ϙ))Ӵ.AddRange(М[ϙ]);}else if(Đ(F)){if(М.ContainsKey(Ϛ
- ))Ӵ.AddRange(М[Ϛ]);}else if(Ē(F)){if(М.ContainsKey(ϝ))Ӵ.AddRange(М[ϝ]);}else if(đ(F)){if(М.ContainsKey(Ϝ))Ӵ.AddRange(М[Ϝ]
- );}}if(!Ԕ&&Ӵ.Count==0)Ӵ.AddRange(о);for(int Ç=Ӝ;Ç<Ӵ.Count&&(Ә<=0||Ç<Ә);Ç++){if(Ĥ())yield return Ѡ;if(!o(Ӵ[Ç])||Q(Ӵ[Ç])>=
- 0.985)continue;Ө=Й[Ӵ[Ç]].C;if(Δ.C!=Ө){while(!η(ref δ,ˎ,Й[Ӵ[Ç]],F))yield return Ѡ;if(δ<=0)break;}}}yield return џ;}bool ԓ(
- string Ģ){if(!Ƒ(Ģ)){ȿ(Ԓ(Ģ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ԓ(string Ģ){IMyAssembler S;bool ɓ;List<Ƴ>Ԏ=new
- List<Ƴ>();Ƴ Î;while(Ѡ){ˮ.Clear();Ԏ.Clear();foreach(long P in ш){if(Ĥ())yield return Ѡ;if(!o(P))continue;ˮ.Clear();Ζ=Й[P];S=(
- IMyAssembler)Ζ.C;S.GetQueue(ˮ);if(ˮ.Count==0)S.Mode=ў;ɓ=((IMyAssembler)Ζ.C).Mode==ў;for(int Ĩ=0;Ĩ<ˮ.Count;Ĩ++){if(Ĥ())yield return Ѡ
- ;Ƚ(ˮ[Ĩ],ɓ);}}foreach(KeyValuePair<string,SortedList<string,ȭ>>ƙ in Н){if(Ĥ())yield return Ѡ;foreach(KeyValuePair<string,ȭ
- >ԑ in ƙ.Value){if(Ĥ())yield return Ѡ;ԑ.Value.Ȑ();ԑ.Value.Ǿ(Ѯ);Î=new Ƴ{Ë=ԑ.Value.Ë,M=ԑ.Value.Ǫ};if(Î.M>=1)Ԏ.Add(Î.ǔ());}}ˣ
- .Clear();while(!Ԑ(Ԏ))yield return Ѡ;А.Add(Ģ);yield return џ;}}bool Ԑ(List<Ƴ>Ԏ){string Ģ=ѻ[52];if(!Ƒ(Ģ)){ȿ(ԏ(Ԏ),Ģ);if(Ĥ())
- return џ;}return Ħ(Ģ);}IEnumerator<bool>ԏ(List<Ƴ>Ԏ){MyDefinitionId Ë;IMyAssembler S;string ō;foreach(long P in ш){if(Ĥ())yield
- return Ѡ;if(!o(P))continue;S=(IMyAssembler)Й[P].C;foreach(Ƴ Î in Ԏ){if(Ĥ())yield return Ѡ;Ë=MyDefinitionId.Parse(Õ(Î));if(S.
- CanUseBlueprint(Ë)){ō=Ɠ(S);if(ˣ.ContainsKey(ō))ˣ[ō]+=Î.M;else ˣ[ō]=Î.M;}}}yield return џ;}bool Ԗ(string Ģ){if(!Ƒ(Ģ)){ȿ(ԗ(Ģ),Ģ);if(Ĥ())
- return џ;}return Ħ(Ģ);}IEnumerator<bool>ԗ(string Ģ){IMyTerminalBlock C;while(Ѡ){ћ=0;foreach(long P in ч){if(Ĥ())yield return Ѡ
- ;if(!o(P)||Й[P].ȵ)continue;try{C=Й[P].C;ˇ.Clear();C.GetInventory(0).GetItems(ˇ);}catch{continue;}for(int Ĩ=0;Ĩ<ˇ.Count;Ĩ
- ++){if(Ĥ())yield return Ѡ;Ȃ(ˇ[Ĩ]);}if(C.InventoryCount>1){if(Ĥ())yield return Ѡ;ˇ.Clear();C.GetInventory(1).GetItems(ˇ);
- for(int Ĩ=0;Ĩ<ˇ.Count;Ĩ++){if(Ĥ())yield return Ѡ;Ȃ(ˇ[Ĩ]);}}}foreach(KeyValuePair<string,SortedList<string,ȭ>>ƙ in Н){if(Ĥ()
- )yield return Ѡ;foreach(KeyValuePair<string,ȭ>ԑ in ƙ.Value){ԑ.Value.ȏ(Ѳ,Ҁ&&Ƈ(ԑ.Value.Ë),Ѱ,ѱ,ѳ,ѿ);if(đ(ԑ.Value.A)&&ԑ.Value
- .D!="Ice"&&ԑ.Value.ȫ>=0.5&&ԑ.Value.Ǥ)ћ++;}}А.Add(Ģ);yield return џ;}}bool ԥ(string Ģ){if(!Ƒ(Ģ)){ȿ(Ԥ(Ģ),Ģ);if(Ĥ())return џ
- ;}return Ħ(Ģ);}IEnumerator<bool>Ԥ(string Ģ){List<IMyBlockGroup>ԣ=new List<IMyBlockGroup>();List<IMyTerminalBlock>Ԣ=new
- List<IMyTerminalBlock>();HashSet<IMyCubeGrid>ԡ=new HashSet<IMyCubeGrid>();HashSet<long>Ԧ=new HashSet<long>(),Ԡ=new HashSet<
- long>(),ԟ=new HashSet<long>(),Ԟ=new HashSet<long>();long ԝ;IMyTextSurfaceProvider Lj;IMyTerminalBlock Ԝ;ȝ ԛ;bool Ԛ;while(Ѡ){п
- .Clear();ш.Clear();р.Clear();ф.Clear();ц.Clear();х.Clear();о.Clear();с.Clear();у.Clear();т.Clear();н.Clear();м.Clear();л.
- Clear();к.Clear();ч.Clear();й.Clear();for(int Ç=0;Ç<М.Count;Ç++)М.Values[Ç].Clear();В.Clear();Б.Clear();Ҋ=џ;ˤ=1;bool ԙ=ŧ(ҽ),Ԙ
- =ŧ(Ѷ);Ч.GetBlockGroups(ԣ,ż=>Č(ż.Name,$"nds {Ϟ}"));foreach(IMyBlockGroup Ԁ in ԣ){if(Ĥ())yield return Ѡ;Ԁ.GetBlocks(Ԣ);
- foreach(IMyTerminalBlock C in Ԣ){if(Ĥ())yield return Ѡ;Ԧ.Add(C.EntityId);}Ԣ.Clear();}ԣ.Clear();Ч.GetBlocksOfType<IMyEntity>(К);
- for(int Ç=0;Ç<К.Count;Ç+=0){if(Ĥ())yield return Ѡ;if(!Ə(К[Ç])||!º(К[Ç])||!(К[Ç].InventoryCount>0||К[Ç]is
- IMyTextSurfaceProvider||К[Ç]is IMyProgrammableBlock||К[Ç].CustomData.Length>0)||Ԧ.Contains(К[Ç].EntityId))К.RemoveAt(Ç);else Ç++;}foreach(
- IMyTerminalBlock C in К){if(Ĥ())yield return Ѡ;Ԡ.Add(C.EntityId);}foreach(IMyTerminalBlock C in К){if(Ĥ())yield return Ѡ;if(!Й.
- ContainsKey(C.EntityId))Й[C.EntityId]=new ȝ{C=C,ƪ=this};}К.Clear();foreach(KeyValuePair<long,ȝ>Ĺ in Й){if(Ĥ())yield return Ѡ;while(
- !Ԃ(Ĺ.Value))yield return Ѡ;if(Ĺ.Value.ȕ)ԡ.Add(Ĺ.Value.C.CubeGrid);}if(ԙ){Ч.GetBlockGroups(ԣ,ż=>Č(ż.Name,$"nds {ϭ}"));
- foreach(IMyBlockGroup Ԁ in ԣ){if(Ĥ())yield return Ѡ;Ԁ.GetBlocks(Ԣ);foreach(IMyTerminalBlock C in Ԣ){if(Ĥ())yield return Ѡ;ԟ.Add
- (C.EntityId);}Ԣ.Clear();}ԣ.Clear();}foreach(KeyValuePair<long,ȝ>Ĺ in Й){if(Ĥ())yield return Ѡ;ԝ=Ĺ.Value.C.EntityId;if(!Ԡ.
- Contains(ԝ)||Ĺ.Value.ȓ||Ԧ.Contains(ԝ)||(ԙ&&!Ĺ.Value.ȕ&&!ԡ.Contains(Ĺ.Value.C.CubeGrid)&&!ԟ.Contains(ԝ)))Ԟ.Add(Ĺ.Key);}Ԧ.Clear();
- Ԡ.Clear();ԡ.Clear();ԟ.Clear();foreach(long P in Ԟ){if(Ĥ())yield return Ѡ;Й.Remove(P);}Ԟ.Clear();for(int Ç=0;Ç<М.Count;Ç+=
- 0){if(Ĥ())yield return Ѡ;if(!ж.Contains(М.Keys[Ç]))М.RemoveAt(Ç);else Ç++;}foreach(long P in Й.Keys){if(Ĥ())yield return
- Ѡ;ԛ=Й[P];Ԝ=ԛ.C;Ԛ=ԛ.ȱ!=1.0;Ҋ=Ҋ||Ԛ;if(!(Ԝ is IMyTextSurfaceProvider)||Ԝ is IMyShipController){if(!ԛ.Ǐ){if(ԛ.ȗ){х.Add(P);if(
- Ԛ)Б.Add("sifters");}else if(Ԝ is IMyAssembler){ш.Add(P);if(Ԛ)Б.Add("assemblers");if(ԛ.Ȝ==null)ԛ.Ȝ=new ʅ{S=(IMyAssembler)Ԝ
- };}else if(Ԝ is IMyGasGenerator){ц.Add(P);if(Ԛ)Б.Add("gasgens");}else if(Ԝ is IMyUserControllableGun){ф.Add(P);if(Ԛ)Б.Add
- ("guns");}else if(Ԝ is IMyGasTank){if(ƕ(Ɠ(Ԝ),"hydrogen")){у.Add(P);if(Ԛ)Б.Add("htanks");}else{т.Add(P);if(Ԛ)Б.Add(
- "otanks");}}else if(Ԝ is IMyParachute){с.Add(P);if(Ԛ)Б.Add("parachutes");}else if(Ԝ is IMyReactor){р.Add(P);if(Ԛ)Б.Add(
- "reactors");}else if(Ԝ is IMyRefinery){п.Add(P);if(Ԛ)Б.Add("refineries");}if(ԛ.Ȗ){о.Add(P);if(Ԛ)В.Add("storage");foreach(string ӿ
- in ԛ.ș){if(Ĥ())yield return Ѡ;if(ӿ=="all"||ӿ=="*")for(int Ĩ=0;Ĩ<М.Count;Ĩ++){if(Ĥ())yield return Ѡ;М.Values[Ĩ].Add(P);if(Ԛ
- )В.Add(М.Keys[Ĩ]);}else if(М.ContainsKey(ӿ)){М[ӿ].Add(P);if(Ԛ)В.Add(ӿ);}}}}if(Ԝ.InventoryCount>0){ч.Add(P);if(Ԛ)Б.Add(
- "inventory");if(ԛ.Ȳ.nj()>0){м.Add(P);if(Ԙ)Ϩ.Ǎ(ԛ.Ȳ);if(Ԛ)Б.Add("loadout");}if(ԛ.ȳ.nj()>0){if(Ԛ)Б.Add("limit");й.Add(P);}if((!ԛ.Ǐ||ԛ.Ⱥ
- ||ԛ.ȹ)&&!(ԛ.ȼ&&ԛ.Ȼ))for(int Ç=0;Ç<ԛ.C.InventoryCount;Ç++)if(W(ԛ,Ç)){н.Add(P);if(Ԛ)Б.Add("sortable");break;}ɑ(ԛ);}}if(Ԝ is
- IMyTextPanel){while(!Ő(ԛ))yield return Ѡ;if(µ(ԛ)){к.Add(P);ʍ(ԛ);}}else if(Ԝ is IMyTextSurfaceProvider){Lj=(IMyTextSurfaceProvider)Ԝ;
- for(int Ӿ=0;Ӿ<Lj.SurfaceCount;Ӿ++){if(Ĥ())yield return Ѡ;while(!Ő(ԛ,Ӿ))yield return Ѡ;if(µ(ԛ,Ӿ)){к.Add(P);ʍ(ԛ,Ӿ);}}}if(ԛ.Ț.
- Count>0)л.Add(Ԝ.EntityId);}while(!Ի(н,Б.Contains("sortable")))yield return Ѡ;while(!Ի(й,Б.Contains("limit")))yield return Ѡ;
- while(!Ի(ч,Б.Contains("inventory")))yield return Ѡ;while(!Ի(м,Б.Contains("loadout")))yield return Ѡ;while(!Ի(х,Б.Contains(
- "sifters")))yield return Ѡ;while(!Ի(ш,Б.Contains("assemblers")))yield return Ѡ;while(!Ի(ц,Б.Contains("gasgens")))yield return Ѡ;
- while(!Ի(ф,Б.Contains("guns")))yield return Ѡ;while(!Ի(у,Б.Contains("htanks")))yield return Ѡ;while(!Ի(т,Б.Contains("otanks")
- ))yield return Ѡ;while(!Ի(с,Б.Contains("parachutes")))yield return Ѡ;while(!Ի(р,Б.Contains("reactors")))yield return Ѡ;
- while(!Ի(п,Б.Contains("refineries")))yield return Ѡ;while(!Ի(о,В.Contains("storage")))yield return Ѡ;foreach(KeyValuePair<
- string,List<long>>Ĺ in М){if(Ĥ())yield return Ѡ;while(!Ի(Ĺ.Value,В.Contains(Ĺ.Key)))yield return Ѡ;}if(Ԙ&&Ϩ.nj()>0)while(!Զ(Ϩ))
- yield return Ѡ;foreach(long P in к){if(Ĥ())yield return Ѡ;foreach(ƫ Ĭ in Й[P].ț.Values){Ĭ.ƥ.Clear();if(Ĭ.Ş){foreach(long ӽ in
- к){if(Ĥ())yield return Ѡ;foreach(ƫ Ӽ in Й[ӽ].ț.Values)if(Ӽ.dž==ͺ.ͳ&&ž(Ĭ.ƽ,Ӽ.ņ)&&P!=ӽ||Ĭ.w!=Ӽ.w)Ĭ.ƥ.Add(new Ǻ{P=ӽ,w=Ӽ.w});}
- }}}А.Add(Ģ);yield return џ;}}bool ӻ(StringBuilder Æ,Ǔ Ŵ,bool ӹ=Ѡ){if(Ŵ==null||Ŵ.nj()==0)return Ѡ;string Ģ=ѻ[19];if(!Ƒ(Ģ)){
- ȿ(Ӻ(Æ,Ŵ,ӹ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ӻ(StringBuilder Æ,Ǔ Ŵ,bool ӹ){SortedList<double,List<string>
- >Ӹ=new SortedList<double,List<string>>();int ǃ=0;ȭ F;for(int Ç=0;Ç<Ŵ.nj();Ç++){if(Ĥ())yield return Ѡ;F=Ŵ.Nj(Ç);if(!Ӹ.
- ContainsKey(F.ȫ))Ӹ[F.ȫ]=new List<string>();Ӹ[F.ȫ].Add(c(F.A,F.D));}foreach(KeyValuePair<double,List<string>>Ĺ in Ӹ){if(Ĥ())yield
- return Ѡ;if(ǃ>0){Æ.Append("|");ǃ=0;}if(ӹ)Æ.Append($"{Ĺ.Key}:");foreach(string m in Ĺ.Value){if(Ĥ())yield return Ѡ;if(ǃ>0)Æ.
- Append(":");Æ.Append($"'{m}'");ǃ++;}}yield return џ;}void Ԍ(){ϗ=ѻ[21];if(!Ƒ(ϗ)){ȿ(ԋ(),ϗ);if(Ĥ())return;}ё=Ħ(ϗ);}IEnumerator<
- bool>ԋ(){Ɏ("Bulletproof Glass","BulletproofGlass",Ћ,"BulletproofGlass");Ɏ("Canvas","Canvas",Ћ,"Canvas");Ɏ("Computer",
- "Computer",Ћ,"ComputerComponent");Ɏ("Construction Comp","Construction",Ћ,"ConstructionComponent");Ɏ("Detector Component",
- "Detector",Ћ,"DetectorComponent");Ɏ("Display","Display",Ћ,"Display");if(Ĥ())yield return Ѡ;Ɏ("Explosives","Explosives",Ћ,
- "ExplosivesComponent");Ɏ("Girder","Girder",Ћ,"GirderComponent");Ɏ("Gravity Gen. Comp","GravityGenerator",Ћ,"GravityGeneratorComponent");Ɏ(
- "Interior Plate","InteriorPlate",Ћ,"InteriorPlate");Ɏ("Large Steel Tube","LargeTube",Ћ,"LargeTube");Ɏ("Medical Component","Medical",Ћ,
- "MedicalComponent");yield return Ѡ;Ɏ("Metal Grid","MetalGrid",Ћ,"MetalGrid");Ɏ("Motor","Motor",Ћ,"MotorComponent");Ɏ("Power Cell",
- "PowerCell",Ћ,"PowerCell");Ɏ("Radio Comm. Comp","RadioCommunication",Ћ,"RadioCommunicationComponent");Ɏ("Reactor Component",
- "Reactor",Ћ,"ReactorComponent");Ɏ("Small Steel Tube","SmallTube",Ћ,"SmallTube");if(Ĥ())yield return Ѡ;Ɏ("Solar Cell","SolarCell",
- Ћ,"SolarCell");Ɏ("Steel Plate","SteelPlate",Ћ,"SteelPlate");Ɏ("Superconductor","Superconductor",Ћ,"Superconductor");Ɏ(
- "Thruster Component","Thrust",Ћ,"ThrustComponent");Ɏ("Zone Chip","ZoneChip",Ћ,"None",џ);Ɏ("MR-20","AutomaticRifleItem",Ј,"AutomaticRifle");
- yield return Ѡ;Ɏ("MR-8P","PreciseAutomaticRifleItem",Ј,"PreciseAutomaticRifle");Ɏ("MR-50A","RapidFireAutomaticRifleItem",Ј,
- "RapidFireAutomaticRifle");Ɏ("MR-30E","UltimateAutomaticRifleItem",Ј,"UltimateAutomaticRifle");Ɏ("Welder 1","WelderItem",Ј,"Welder");Ɏ("Welder 2"
- ,"Welder2Item",Ј,"Welder2");Ɏ("Welder 3","Welder3Item",Ј,"Welder3");if(Ĥ())yield return Ѡ;Ɏ("Welder 4","Welder4Item",Ј,
- "Welder4");Ɏ("Grinder 1","AngleGrinderItem",Ј,"AngleGrinder");Ɏ("Grinder 2","AngleGrinder2Item",Ј,"AngleGrinder2");Ɏ("Grinder 3",
- "AngleGrinder3Item",Ј,"AngleGrinder3");Ɏ("Grinder 4","AngleGrinder4Item",Ј,"AngleGrinder4");Ɏ("Drill 1","HandDrillItem",Ј,"HandDrill");
- yield return Ѡ;Ɏ("Drill 2","HandDrill2Item",Ј,"HandDrill2");Ɏ("Drill 3","HandDrill3Item",Ј,"HandDrill3");Ɏ("Drill 4",
- "HandDrill4Item",Ј,"HandDrill4");Ɏ("Datapad","Datapad",Є,"Datapad",џ);Ɏ("Powerkit","Powerkit",Ѓ,"None",џ);Ɏ("Medkit","Medkit",Ѓ,"None",џ
- );if(Ĥ())yield return Ѡ;Ɏ("Clang Cola","ClangCola",Ѓ,"None",џ);Ɏ("Cosmic Coffee","CosmicCoffee",Ѓ,"None",џ);Ɏ(
- "SpaceCredit","SpaceCredit",Ђ,"None",џ);Ɏ("Oxygen Bottle","OxygenBottle",І,"OxygenBottle");Ɏ("Hydrogen Bottle","HydrogenBottle",Ї,
- "HydrogenBottle");Ɏ("NATO 5.56x45mm","NATO_5p56x45mm",Ѕ,"NATO_5p56x45mmMagazine");yield return Ѡ;Ɏ("NATO 25x184mm","NATO_25x184mm",Ѕ,
- "NATO_25x184mmMagazine");Ɏ("Missile 200mm","Missile200mm",Ѕ,"Missile200mm");Ɏ("Cobalt Ore","Cobalt",Њ);Ɏ("Gold Ore","Gold",Њ);Ɏ("Ice","Ice",Њ);
- Ɏ("Iron Ore","Iron",Њ);if(Ĥ())yield return Ѡ;Ɏ("Magnesium Ore","Magnesium",Њ);Ɏ("Nickel Ore","Nickel",Њ);Ɏ("Platinum Ore"
- ,"Platinum",Њ);Ɏ("Scrap Ore","Scrap",Њ,"",џ);Ɏ("Silicon Ore","Silicon",Њ);Ɏ("Silver Ore","Silver",Њ);yield return Ѡ;Ɏ(
- "Stone","Stone",Њ);Ɏ("Uranium Ore","Uranium",Њ);Ɏ("Cobalt Ingot","Cobalt",Љ);Ɏ("Gold Ingot","Gold",Љ);Ɏ("Gravel","Stone",Љ);Ɏ(
- "Iron Ingot","Iron",Љ,"",Ѡ,new List<string>(){"Scrap","Stone"});if(Ĥ())yield return Ѡ;Ɏ("Magnesium Powder","Magnesium",Љ);Ɏ(
- "Nickel Ingot","Nickel",Љ,"",Ѡ,new List<string>(){"Stone"});Ɏ("Platinum Ingot","Platinum",Љ,"");Ɏ("Silicon Wafer","Silicon",Љ,"",Ѡ,new
- List<string>(){"Stone"});Ɏ("Silver Ingot","Silver",Љ);Ɏ("Uranium Ingot","Uranium",Љ);yield return Ѡ;Ɏ("MR-20 Magazine",
- "AutomaticRifleGun_Mag_20rd",Ѕ,"AutomaticRifleGun_Mag_20rd");Ɏ("S-10E Magazine","ElitePistolMagazine",Ѕ,"ElitePistolMagazine");Ɏ("S-20A Magazine",
- "FullAutoPistolMagazine",Ѕ,"FullAutoPistolMagazine");Ɏ("MR-8P Magazine","PreciseAutomaticRifleGun_Mag_5rd",Ѕ,"PreciseAutomaticRifleGun_Mag_5rd")
- ;Ɏ("MR-50A Magazine","RapidFireAutomaticRifleGun_Mag_50rd",Ѕ,"RapidFireAutomaticRifleGun_Mag_50rd");Ɏ("S-10 Magazine",
- "SemiAutoPistolMagazine",Ѕ,"SemiAutoPistolMagazine");if(Ĥ())yield return Ѡ;Ɏ("MR-30E Magazine","UltimateAutomaticRifleGun_Mag_30rd",Ѕ,
- "UltimateAutomaticRifleGun_Mag_30rd");Ɏ("PRO-1","AdvancedHandHeldLauncherItem",Ј,"AdvancedHandHeldLauncher");Ɏ("RO-1","BasicHandHeldLauncherItem",Ј,
- "BasicHandHeldLauncher");Ɏ("S-10E","ElitePistolItem",Ј,"EliteAutoPistol");Ɏ("S-20A","FullAutoPistolItem",Ј,"FullAutoPistol");Ɏ("S-10",
- "SemiAutoPistolItem",Ј,"SemiAutoPistol");yield return џ;}bool Ԋ(string ԉ,string ԇ,Ǔ Ʒ,string ï,float į=0f){if(ï.Length==0)return Ѡ;if(!Ƒ(ԉ))
- {ȿ(Ԉ(ԇ,Ʒ,ï,į),ԉ);if(Ĥ())return џ;}return Ħ(ԉ);}IEnumerator<bool>Ԉ(string ԇ,Ǔ Ʒ,string ï,float į){string[]ԍ,Ԇ;double ԅ;
- bool Ԅ;string A,ɕ="0";ԍ=ï.ToLower().Split('|');A="*";for(int ſ=0;ſ<ԍ.Length;ſ++){if(Ĥ())yield return Ѡ;Ԇ=ԍ[ſ].Split(':');в.
- Clear();Ԅ=џ;for(int ԃ=0;ԃ<Ԇ.Length;ԃ++){if(Ĥ())yield return Ѡ;if(ԃ==0){if(Ԇ[ԃ].EndsWith("%")||double.TryParse(Ԇ[ԃ],out ԅ)){ɕ=
- Ԇ[ԃ];continue;}}if(ԃ<2&&!Ԅ&&ĥ(Ԇ[ԃ])){A=Ԇ[ԃ];Ԅ=Ѡ;}else в.Add(Ԇ[ԃ]);}if(Ԅ&&Ԇ.Length==1&&A=="*")в.Add("*");for(int ԃ=0;ԃ<в.
- Count;ԃ++){while(!Π(ԇ,Ʒ,A,в[ԃ],џ,ɕ,į))yield return Ѡ;}}yield return џ;}bool Ԃ(ȝ ª){string Ģ=ѻ[4];if(!Ƒ(Ģ)){ȿ(ԁ(ª),Ģ);if(Ĥ())
- return џ;}return Ħ(Ģ);}IEnumerator<bool>ԁ(ȝ ª){string Ŏ=ª.ȡ(),ō,Ō,ķ=Ɠ(ª.C);IMyTerminalBlock C=ª.C;if(Ŏ.Length==0){if(ª.Ƽ.
- Length==0)ª.Ǐ=џ;StringBuilder Æ=new StringBuilder();if(!(ª.C is IMyTextPanel)){while(!ĸ(ª,Æ))yield return Ѡ;ª.Ƞ(Æ.ToString());
- }ʒ(ª);}else if(!ž(Ŏ,ª.Ƽ)){ʒ(ª);string[]Ŋ=Ŏ.Split(new[]{"\r\n","\r","\n"},StringSplitOptions.RemoveEmptyEntries),ʼn;List<
- string>Ŕ;Ǔ œ=J();bool ň,Œ=џ,ő=џ;double Ň;ª.Ț.Clear();for(int Ç=0;Ç<Ŋ.Length&&Ç<200;Ç++){if(Ĥ())yield return Ѡ;if(!Ŋ[Ç].
- StartsWith("//")&&Ǝ(Ŋ[Ç],out ō,out Ō)){Ō=Ō.Trim();ň=ž(Ō,Ѣ);double.TryParse(Ō,out Ň);switch(ō.ToLower()){case"automatic":ª.Ǐ=!ň;
- break;case"options":Ŕ=Ō.Trim().ToLower().Split(new char[]{'|'},StringSplitOptions.RemoveEmptyEntries).ToList();if(Ŕ.Count>0){
- if(C.InventoryCount>0){ʛ(ref ª.Ȗ,"storage",Ŕ);ʛ(ref ª.ȥ,"autoconveyor",Ŕ);ʛ(ref ª.Ȓ,"assemblyonly",Ŕ);ʛ(ref ª.ȧ,
- "disassemblyonly",Ŕ);ʛ(ref ª.ȼ,"keepinput",Ŕ);ʛ(ref ª.Ȼ,"keepoutput",Ŕ);ʛ(ref ª.Ⱥ,"removeinput",Ŕ);ʛ(ref ª.ȹ,"removeoutput",Ŕ);ʛ(ref ª.ȸ,
- "noidlereset",Ŕ);ʛ(ref ª.ȷ,"nosorting",Ŕ);ʛ(ref ª.ȶ,"nospreading",Ŕ);ʛ(ref ª.ȵ,"nocounting",Ŕ);ʛ(ref ª.ȴ,"uniqueblueprintsonly",Ŕ);}ʛ
- (ref ª.ȕ,ϭ,Ŕ);ʛ(ref ª.Ȕ,Ѝ,Ŕ);ʛ(ref ª.ȓ,"excluded",Ŕ);Œ=Ѡ;}break;case"storage":if(C.InventoryCount>0){ʼn=Ō.ToLower().Split(
- '|');for(int Ĩ=0;Ĩ<ʼn.Length;Ĩ++){if(Ĥ())yield return Ѡ;if(ĥ(ʼn[Ĩ]))ª.ș.Add(ʼn[Ĩ]);}ª.Ȗ=ª.ș.Count>0;ő=Ѡ;}break;case"loadout":œ
- .ǐ();if(C.InventoryCount>0)while(!Ԋ(ѻ[22],ѻ[46],œ,Ō.ToLower().Replace(" ",""),(float)C.GetInventory(0).MaxVolume))yield
- return Ѡ;if(œ.nj()>0)ª.Ȳ.Ǎ(œ);break;case"limit":œ.ǐ();if(C.InventoryCount>0)while(!Ԋ(ѻ[22],ѻ[46],œ,Ō.ToLower().Replace(" ",""),
- (float)C.GetInventory(0).MaxVolume))yield return Ѡ;if(œ.nj()>0)ª.ȳ.Ǎ(œ);break;case"logicand":while(!α(ª.Ț,Ō))yield return
- Ѡ;ª.Ș=ª.Ț.Count>0;break;case"logicor":while(!α(ª.Ț,Ō))yield return Ѡ;break;case"priority":ª.ȱ=Ň;break;}}if(ª.ȓ)break;}if(
- ª.Ȗ){if(ª.ș.Count==0)ª.ș.Add("all");}else if(ª.ș.Count>0)ª.Ȗ=Ѡ;else if(!Œ&&!ő&&ª.C is IMyCargoContainer){ª.Ȗ=Ѡ;ª.ș.Add(
- "all");}ª.Ƽ=Ŏ;}yield return џ;}bool Ő(ȝ ª,int w=0){string Ģ=ѻ[34];if(!Ƒ(Ģ)){ȿ(ŏ(ª,w),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}
- IEnumerator<bool>ŏ(ȝ ª,int w){if(!ª.ț.ContainsKey(w))ª.ț[w]=new ƫ{w=w,Lj=!(ª.C is IMyTextPanel),Ü=П[ѣ],ƪ=ª};ƫ Ĭ=ª.ț[w];string Ŏ=Ĭ.ȡ(
- ),ō,Ō,ķ=Ɠ(ª.C);if(Ŏ.Length==0){Ĭ.Ƞ(ϑ);ª.C.CustomName=ª.C.CustomName.Replace("[nds]","[NDS]");}else{if(!ž(Ŏ,Ĭ.Ƽ)){ʓ(ref Ĭ.
- ǃ);StringBuilder ŋ=new StringBuilder();string[]Ŋ=Ŏ.Split(new[]{"\r\n","\r","\n"},StringSplitOptions.RemoveEmptyEntries),ʼn
- ;bool ň,ŕ=џ;double Ň;for(int Ç=0;Ç<Ŋ.Length&&Ç<200;Ç++){if(Ĥ())yield return Ѡ;if(!Ŋ[Ç].StartsWith("//")&&Ǝ(Ŋ[Ç],out ō,out
- Ō)){ň=ž(Ō,Ѣ);double.TryParse(Ō,out Ň);switch(ō.ToLower()){case"type":switch(Ō.ToLower()){case"item":Ĭ.dž=ͺ.ͷ;break;case
- "cargo":Ĭ.dž=ͺ.Ͷ;break;case"output":Ĭ.dž=ͺ.Ƀ;break;case"status":Ĭ.dž=ͺ.ʹ;break;case"span":Ĭ.dž=ͺ.ͳ;break;}ŋ.Append($"{Ĭ.dž}");break;
- case"categories":ʼn=Ō.ToLower().Split('|');Ĭ.Ʀ.Clear();for(int Ĩ=0;Ĩ<ʼn.Length;Ĩ++){if(Ĥ())yield return Ѡ;if(ĥ(ʼn[Ĩ])){Ĭ.Ʀ.Add(
- ʼn[Ĩ]);ŋ.Append(ʼn[Ĩ]);}}break;case"items":while(!Ԋ(ѻ[22],ѻ[46],Ĭ.ǃ,Ō.ToLower()))yield return Ѡ;if(Ĭ.ǃ.nj()>0)while(!ӻ(ŋ,Ĭ.ǃ
- ,џ))yield return Ѡ;break;case"sorting":switch(Ō.ToLower()){case"alphabetical":Ĭ.LJ=Ή.Έ;break;case"ascendingamount":Ĭ.LJ=Ή.Ά
- ;break;case"descendingamount":Ĭ.LJ=Ή.ͽ;break;case"ascendingpercent":Ĭ.LJ=Ή.ͼ;break;case"descendingpercent":Ĭ.LJ=Ή.ͻ;break;}ŋ
- .Append(Ĭ.LJ.ToString());break;case"text color":Ă(out Ĭ.ǂ,Ō);ŋ.Append(Ĭ.ǂ.ToVector4());break;case"number color":Ă(out Ĭ.ǁ,
- Ō);ŋ.Append(Ĭ.ǁ);break;case"back color":Ă(out Ĭ.ǀ,Ō);ŋ.Append(Ĭ.ǀ);break;case"rows":Ĭ.Ƥ=(int)Ň;ŕ=Ѡ;break;case
- "name length":Ĭ.Ƣ=(int)Ň;ŋ.Append(Ĭ.Ƣ);break;case"decimals":Ĭ.Û=(int)Ň;ŋ.Append(Ĭ.Û);break;case"update delay":Ĭ.ơ=Ň;ˤ=Math.Min(ˤ,Ň);
- break;case"span id":Ĭ.ņ=Ō;break;case"span child id":Ĭ.ƽ=Ō;Ĭ.Ş=Ō.Length>0;break;case"number suffixes":ʼn=Ō.Split('|');Ĭ.Ü.Clear
- ();Ĭ.Ü.AddRange(ʼn);break;case"options":ʼn=Ō.ToLower().Split('|');Ĭ.Ʋ=ʼn.Contains("belowquota");Ĭ.lj=!ʼn.Contains(
- "hideprogressbar");break;case"minimum value":Ĭ.Ơ=Ň;ŋ.Append(Ĭ.Ơ);break;case"maximum value":Ĭ.Ɵ=Ň;ŋ.Append(Ĭ.Ɵ);break;case"font":Ĭ.ê=ą(((
- IMyTextSurfaceProvider)ª.C).GetSurface(0),Ō);break;case"item display":switch(Ō.ToLower()){case"detailed":Ĭ.Dž=ΐ.Ώ;break;case"compactamount":Ĭ.Dž
- =ΐ.Ύ;break;case"standard":Ĭ.Dž=ΐ.Λ;break;case"compactpercent":Ĭ.Dž=ΐ.Ό;break;}break;}}}if(Ĭ.dž!=ͺ.Ͳ){IMyTextSurface é=Ĭ.Ȣ();
- Ĭ.ß=é.SurfaceSize;Ĭ.ƿ=é.TextureSize-é.SurfaceSize;if(Ĭ.Lj||Ĭ.ƞ||ķ=="LargeTextPanel"||ķ=="LargeLCDPanel5x3")Ĭ.ƿ/=2f;Ĭ.ƾ=ŋ.
- ToString();if(!ŕ)Ĭ.Ƥ=15;switch(Ĭ.dž){case ͺ.Ͷ:Ĭ.ƣ=1;if(!ŕ)Ĭ.Ƥ=Ĭ.Ʀ.Count;break;case ͺ.Ƀ:if(!ŕ)Ĭ.Ƥ=13;Ĭ.ƣ=2;if(ŕ&&Ĭ.Ƥ==0)Ĭ.ƣ=1;
- break;case ͺ.ʹ:Ĭ.ƣ=2;if(!ŕ)Ĭ.Ƥ=8;if(ŕ&&Ĭ.Ƥ==0)Ĭ.ƣ=1;break;case ͺ.ͳ:Ĭ.ƣ=1;break;}}else ª.ț.Remove(w);}}Ĭ.Ƽ=Ŏ;yield return џ;}
- bool ţ(ƫ Ĭ){string Ģ=ѻ[3];if(!Ƒ(Ģ)){ȿ(Ţ(Ĭ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ţ(ƫ Ĭ){Ĭ.Ʃ.Clear();int ş=0;if(Ĭ
- .þ.Count>0){while(!š(Ĭ,Ĭ.þ,ş,џ))yield return Ѡ;ş=1;}if(Ĭ.ƨ.Count>0)while(!š(Ĭ,Ĭ.ƨ,ş,Ѡ))yield return Ѡ;yield return џ;}
- bool š(ƫ Ĭ,List<ʊ>þ,float ş,bool Ş){string Ģ=ѻ[18];if(!Ƒ(Ģ)){ȿ(Ť(Ĭ,þ,ş,Ş),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>
- Ť(ƫ Ĭ,List<ʊ>þ,float ş,bool Ş){List<ʊ>ŝ=new List<ʊ>();IMyTextSurface é=Ĭ.Ȣ();int Ŝ=Ĭ.Û+4;float á;if(Ĭ.Û>0)Ŝ++;Vector2 ś=ƀ
- (Ĭ.ƣ,Ĭ.Ƥ),Ś,ř,Ř,ŗ,Ŗ;if(!Ş)ś.Y=þ.Count;ř=ƀ(Ĭ.ß.X/ś.X,Ĭ.ß.Y/ś.Y);Ś=ƀ(ş);foreach(ʊ ü in þ){if(Ĥ())yield return Ѡ;if(!Ş||Ś.Y<
- ś.Y){Ř=ƀ(Ś.X*ř.X,Ś.Y*ř.Y)+Ĭ.ƿ;if(ü.ʈ.Length>0&&Ĭ.ǀ.A>0)Ĭ.Ʃ.Add(Ę(ü.ʈ,Ĭ.ǀ,Ř,ř));foreach(ɭ Š in ü.ʆ){if(Ĥ())yield return Ѡ;
- if(ü.F){á=Math.Min(1f,(float)(Š.ɫ/Š.ɪ));switch(Ĭ.Dž){case ΐ.Ύ:ŗ=ƀ(ř.X*0.75f,ř.Y);Ĭ.Ʃ.Add(ð(Š.ɬ,Ĭ.ǂ,Ř,ŗ,Š.ë,Ĭ.ê,é));Ŗ=ƀ(ŗ.X)
- ;ŗ=ƀ(ř.X*0.25f,ř.Y);Ĭ.Ʃ.Add(ð(ñ(Š.ɫ,Ĭ.Ü,Ĭ.Û,Ŝ),Ĭ.ǁ,Ř+Ŗ,ŗ,Š.ë,Ĭ.ê,é));break;case ΐ.Ό:ŗ=ƀ(ř.X*0.75f,ř.Y);Ĭ.Ʃ.Add(ð(Š.ɬ,Ĭ.ǂ,
- Ř,ŗ,Š.ë,Ĭ.ê,é));Ŗ=ƀ(ŗ.X);if(Ĭ.lj){ŗ=ƀ(ř.X*0.25f,ř.Y);Ĭ.Ʃ.AddRange(â(á,Ř+Ŗ,ŗ));}break;case ΐ.Ώ:ŗ=ƀ(ř.X*0.6f,ř.Y/2f);Ĭ.Ʃ.Add
- (ð(Š.ɬ,Ĭ.ǂ,Ř,ŗ,Š.ë,Ĭ.ê,é));Ŗ=ƀ(ŗ.X);ŗ.X=ř.X*0.2f;Ĭ.Ʃ.Add(ð($"{ñ(Š.ɫ,Ĭ.Ü,Ĭ.Û,Ŝ)}/",Ĭ.ǁ,Ř+Ŗ,ŗ,Š.ë,Ĭ.ê,é));Ŗ+=ƀ(ŗ.X);if(Ĭ.lj)
- Ĭ.Ʃ.AddRange(â(á,Ř+Ŗ,ŗ));Ĭ.Ʃ.Add(ð(ñ(Š.ɪ,Ĭ.Ü,Ĭ.Û,Ŝ),Ĭ.ǁ,Ř+Ŗ,ŗ,Š.ë,Ĭ.ê,é));Ŗ=ƀ(0,ŗ.Y);ˡ.Clear();if(Š.ƶ>0)ˡ.Append(
- $"Assembling: {ñ(Š.ƶ,Ĭ.Ü,Ĭ.Û,Ŝ)}");if(Š.Ƶ>0){if(ˡ.Length>0)ˡ.Append(", ");ˡ.Append($"Disassembling: {ñ(Š.Ƶ,Ĭ.Ü,Ĭ.Û,Ŝ)}");}ŗ.X=ř.X*0.75f;Ĭ.Ʃ.Add(ð(ˡ.
- ToString(),Ĭ.ǂ,Ř+Ŗ,ŗ,Š.ë,Ĭ.ê,é));Ŗ+=ƀ(ŗ.X);ŗ.X=ř.X*0.25f;Ĭ.Ʃ.Add(ð($"Rate: {ñ(Š.ƴ,Ĭ.Ü,Ĭ.Û,Ŝ)}",Ĭ.ǂ,Ř+Ŗ,ŗ,Š.ë,Ĭ.ê,é));break;case
- ΐ.Λ:ŗ=ƀ(ř.X*0.6f,ř.Y);Ĭ.Ʃ.Add(ð(Š.ɬ,Ĭ.ǂ,Ř,ŗ,Š.ë,Ĭ.ê,é));Ŗ=ƀ(ŗ.X);ŗ=ƀ(ř.X*0.2f,ř.Y);Ĭ.Ʃ.Add(ð($"{ñ(Š.ɫ,Ĭ.Ü,Ĭ.Û,Ŝ)}/",Ĭ.ǁ,Ř
- +Ŗ,ŗ,Š.ë,Ĭ.ê,é));Ŗ+=ƀ(ŗ.X);Ĭ.Ʃ.AddRange(â(á,Ř+Ŗ,ŗ));Ĭ.Ʃ.Add(ð(ñ(Š.ɪ,Ĭ.Ü,Ĭ.Û,Ŝ),Ĭ.ǁ,Ř+Ŗ,ŗ,Š.ë,Ĭ.ê,é));break;}}else{ŗ=ƀ(ř.X
- *Š.Ȧ,ř.Y);if(Š.ė.Length>0)Ĭ.Ʃ.Add(Ę(Š.ė,Š.ʌ,Ř,ŗ));else if(Š.ï.Length>0)Ĭ.Ʃ.Add(ð(Š.ï,Ĭ.ǂ,Ř,ŗ,Š.ë,Ĭ.ê,é));else Ĭ.Ʃ.Add(ð(ñ
- (Š.R,Ĭ.Ü,Ĭ.Û,Ŝ),Ĭ.ǂ,Ř,ŗ,Š.ë,Ĭ.ê,é));if(Š.ȣ)Ř+=ƀ(ŗ.X);}}Ś.Y+=1f;}else if(Ĭ.Ş)ŝ.Add(ü.ǔ());else break;}foreach(Ǻ ņ in Ĭ.ƥ){
- if(Ĥ())yield return Ѡ;Й[ņ.P].ț[ņ.w].ƨ.Clear();if(ŝ.Count>0)ÿ(Й[ņ.P].ț[ņ.w].ƨ,ŝ);}yield return џ;}bool Ļ(ƫ Ĭ){string Ģ=ѻ[51
- ];if(!Ƒ(Ģ)){ȿ(ĵ(Ĭ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>ĵ(ƫ Ĭ){if(DateTime.Now>=Ĭ.DŽ){string Ĵ=Ĭ.ƾ;Ĭ.þ.Clear(
- );if(Ĭ.dž!=ͺ.ͳ){bool ij=Ĵ.Length>0;Ĭ.ƨ.Clear();if(ij&&Α.ContainsKey(Ĵ)&&Α[Ĵ].DŽ>DateTime.Now){ÿ(Ĭ.þ,Α[Ĵ].þ);ÿ(Ĭ.ƨ,Α[Ĵ].ƨ);}
- else{switch(Ĭ.dž){case ͺ.Ͷ:while(!ı(Ĭ))yield return Ѡ;break;case ͺ.ͷ:while(!Į(Ĭ))yield return Ѡ;break;case ͺ.Ƀ:while(!Ņ(Ĭ))
- yield return Ѡ;break;case ͺ.ʹ:while(!ŀ(Ĭ))yield return Ѡ;break;}if(ij){if(!Α.ContainsKey(Ĵ))Α[Ĵ]=new ɮ();else{Α[Ĵ].þ.Clear();Α
- [Ĵ].ƨ.Clear();}ÿ(Α[Ĵ].þ,Ĭ.þ);ÿ(Α[Ĵ].ƨ,Ĭ.ƨ);Α[Ĵ].DŽ=DateTime.Now.AddSeconds(ˤ);}}}Ĭ.DŽ=DateTime.Now.AddSeconds(Ĭ.ơ);while(!ţ
- (Ĭ))yield return Ѡ;if(Ĥ())yield return Ѡ;MySpriteDrawFrame IJ=Ĭ.Ȣ().DrawFrame();IJ.AddRange(Ĭ.Ʃ);IJ.Dispose();for(int Ç=0;Ç<
- Α.Count;Ç+=0){if(Ĥ())yield return Ѡ;if((DateTime.Now-Α.Values[Ç].DŽ).TotalSeconds>=60)Α.RemoveAt(Ç);else Ç++;}}yield
- return џ;}bool ı(ƫ Ĭ){string Ģ=ѻ[54];if(!Ƒ(Ģ)){ȿ(İ(Ĭ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>İ(ƫ Ĭ){double į=0;if(Ĭ
- .Ʀ.Contains("all")||Ĭ.Ʀ.Contains("*")){while(!Օ(ref į,о))yield return Ѡ;Ĭ.Ʊ("Total:".PadRight(Ĭ.Ƣ),џ,0.75f,Ѡ,Ѡ);if(Ĭ.lj)Ĭ.
- ƻ(ä((float)į));Ĭ.Ʊ($"{ñ(į*100.0,Ĭ.Ü,2,5)}%",џ,0.25f,џ);}foreach(string ĕ in Ĭ.Ʀ){if(Ĥ())yield return Ѡ;if(ĕ!="all"&&ĕ!=
- "*"&&М.ContainsKey(ĕ)){while(!Օ(ref į,М[ĕ]))yield return Ѡ;Ĭ.Ʊ($"{Ƙ(ĕ)}:".PadRight(Ĭ.Ƣ),џ,0.75f,Ѡ,Ѡ);if(Ĭ.lj)Ĭ.ƻ(ä((float)į)
- );Ĭ.Ʊ($"{ñ(į*100.0,Ĭ.Ü,2,5)}%",џ,0.25f,џ);}}yield return џ;}bool Į(ƫ Ĭ){string Ģ=ѻ[55];if(!Ƒ(Ģ)){ȿ(ĭ(Ĭ),Ģ);if(Ĥ())return
- џ;}return Ħ(Ģ);}IEnumerator<bool>ĭ(ƫ Ĭ){List<ȭ>ī=ƚ(),Ī=new List<ȭ>();bool ĩ;foreach(ȭ F in ī){if(Ĥ())yield return Ѡ;ĩ=Ĭ.Ʀ
- .Contains(F.ĕ);if(!ĩ)Ĭ.ǃ.ǘ(out ĩ,F.A,F.D);if(ĩ&&F.ǣ&&F.ȫ>=Ĭ.Ơ&&F.ȫ<=Ĭ.Ɵ&&(!Ĭ.Ʋ||F.ȫ<F.ǩ))Ī.Add(F);}switch(Ĭ.LJ){case Ή.Έ:Ī
- =Ī.OrderBy(Ĩ=>Ĩ.Ȭ).ToList();break;case Ή.Ά:Ī=Ī.OrderBy(Ĩ=>Ĩ.ȫ).ToList();break;case Ή.ͽ:Ī=Ī.OrderByDescending(Ĩ=>Ĩ.ȫ).
- ToList();break;case Ή.ͼ:Ī=Ī.OrderBy(Ĩ=>ę(Ĩ)).ToList();break;case Ή.ͻ:Ī=Ī.OrderByDescending(Ĩ=>ę(Ĩ)).ToList();break;}foreach(ȭ
- F in Ī){if(Ĥ())yield return Ѡ;Ĭ.Ƹ(F.Ȭ.PadRight(Ĭ.Ƣ),F.ȫ,F.ǩ,F.Ȫ,F.ȩ,F.ƴ);}yield return џ;}bool Ņ(ƫ Ĭ){string Ģ=ѻ[7];if(!Ƒ
- (Ģ)){ȿ(Ń(Ĭ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ń(ƫ Ĭ){List<ɽ>ł;ʢ(Ĭ,$"NDS Inventory Manager {ѷ}");ʢ(Ĭ,ϗ);ʢ(
- Ĭ,$"Runtime: {Ɣ(Ѫ)}");ʢ(Ĭ,$"Blocks: {ñ(Й.Count,Ĭ.Ü)}");ʢ(Ĭ,$"Storages: {ñ(о.Count,Ĭ.Ü)}");ʢ(Ĭ,
- $"Assemblers: {ñ(ш.Count,Ĭ.Ü)}");ʢ(Ĭ,$"H2/O2 Gens: {ñ(ц.Count,Ĭ.Ü)}");ʢ(Ĭ,$"Refineries: {ñ(п.Count,Ĭ.Ü)}");ʢ(Ĭ,$"H2 Tanks: {ñ(у.Count,Ĭ.Ü)}");ʢ(Ĭ,
- $"O2 Tanks: {ñ(т.Count,Ĭ.Ü)}");ʢ(Ĭ,$"Weapons: {ñ(ф.Count,Ĭ.Ü)}");ʢ(Ĭ,$"Reactors: {ñ(р.Count,Ĭ.Ü)}");if(ҁ){ł=new List<ɽ>(Щ);ʢ(Ĭ,
- $"Errors: {ñ(ј,Ĭ.Ü,0,6)} of {ñ(ї,Ĭ.Ü,0,6)}");}else{ł=new List<ɽ>(Џ);ʢ(Ĭ,$"Status: {ñ(Ϯ,null,3,6)}%");}foreach(ɽ Ł in ł){if(Ĥ())yield return Ѡ;Ĭ.Ʊ(Ł.Ƀ(),Ѡ);}yield
- return џ;}bool ŀ(ƫ Ĭ){string Ģ=ѻ[5];if(!Ƒ(Ģ)){ȿ(Ŀ(Ĭ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}IEnumerator<bool>Ŀ(ƫ Ĭ){SortedList<
- string,int>ľ=new SortedList<string,int>(),Ľ=new SortedList<string,int>();int ń=0,ļ=0,ĺ=0,ù=0;foreach(long P in ш){if(Ĥ())yield
- return Ѡ;ʡ(P,ref ń,ref ļ,ref ĺ,ref ù,ľ,Ľ);}foreach(KeyValuePair<string,int>Ĺ in ľ){if(Ĥ())yield return Ѡ;Ĭ.Ʊ(
- $"Assembling x{ñ(Ĺ.Value,Ĭ.Ü,Ĭ.Û,4,џ)} {v(Ĺ.Key,Ĭ.Ƣ,Ѡ)}",Ѡ);}foreach(KeyValuePair<string,int>Ĺ in Ľ){if(Ĥ())yield return Ѡ;Ĭ.Ʊ(
- $"Disassembling x{ñ(Ĺ.Value,Ĭ.Ü,Ĭ.Û,4,џ)} {v(Ĺ.Key,Ĭ.Ƣ,Ѡ)}",Ѡ);}ľ.Clear();Ľ.Clear();ʢ(Ĭ,û($"Assemblers x{ñ(ш.Count,Ĭ.Ü,Ĭ.Û,4,џ)}",ù).PadRight(Ĭ.Ƣ));ʢ(Ĭ,
- $" Assembling: {ñ(ń,Ĭ.Ü,Ĭ.Û,4)}".PadRight(Ĭ.Ƣ));ʢ(Ĭ,$" Disassembling: {ñ(ļ,Ĭ.Ü,Ĭ.Û,4)}".PadRight(Ĭ.Ƣ));ʢ(Ĭ,$" Idle: {ñ(ĺ,Ĭ.Ü,Ĭ.Û,4)}".PadRight(
- Ĭ.Ƣ));ń=0;ĺ=0;ù=0;foreach(long P in п){if(Ĥ())yield return Ѡ;ʡ(P,ref ń,ref ļ,ref ĺ,ref ù,ľ,Ľ);}foreach(KeyValuePair<
- string,int>Ĺ in ľ){if(Ĥ())yield return Ѡ;Ĭ.Ʊ($"Refining x{ñ(Ĺ.Value,Ĭ.Ü,Ĭ.Û,4,џ)} {v(Ĺ.Key,Ĭ.Ƣ,Ѡ)}",Ѡ);}ľ.Clear();ʢ(Ĭ,û(
- $"Refineries x{ñ(п.Count,Ĭ.Ü,Ĭ.Û,4,џ)}",ù).PadRight(Ĭ.Ƣ));ʢ(Ĭ,$" Refining: {ñ(ń,Ĭ.Ü,Ĭ.Û,4)}".PadRight(Ĭ.Ƣ));ʢ(Ĭ,$" Idle: {ñ(ĺ,Ĭ.Ü,Ĭ.Û,4)}".
- PadRight(Ĭ.Ƣ));ń=0;ĺ=0;ù=0;foreach(long P in ц){if(Ĥ())yield return Ѡ;ʡ(P,ref ń,ref ļ,ref ĺ,ref ù,ľ,Ľ);}ʢ(Ĭ,û(
- $"O2/H2 Gens x{ñ(ц.Count,Ĭ.Ü,Ĭ.Û,4,џ)}",ù).PadRight(Ĭ.Ƣ));ʢ(Ĭ,$" Active: {ñ(ń,Ĭ.Ü,Ĭ.Û,4)}".PadRight(Ĭ.Ƣ));ʢ(Ĭ,$" Idle: {ñ(ĺ,Ĭ.Ü,Ĭ.Û,4)}".
- PadRight(Ĭ.Ƣ));foreach(KeyValuePair<string,int>Ĺ in ľ){if(Ĥ())yield return Ѡ;Ĭ.Ʊ(
- $"Processing x{ñ(Ĺ.Value,Ĭ.Ü,Ĭ.Û,4,џ)} {v(Ĺ.Key,Ĭ.Ƣ,Ѡ)}",Ѡ);}yield return џ;}bool ĸ(ȝ ķ,StringBuilder Æ){string Ģ=ѻ[56];if(!Ƒ(Ģ)){ȿ(Ķ(ķ,Æ),Ģ);if(Ĥ())return џ;}return Ħ(Ģ);}
- IEnumerator<bool>Ķ(ȝ ķ,StringBuilder Æ){IMyTerminalBlock C=ķ.C;StringBuilder ƍ=new StringBuilder();Æ.AppendLine($"Automatic={!ķ.Ǐ}"
- );Æ.Append("Options=");ʏ(Æ,ƍ,ϭ,ķ.ȕ);ʏ(Æ,ƍ,Ѝ,ķ.Ȕ);ʏ(Æ,ƍ,"Excluded",ķ.ȓ);if(C.InventoryCount>0){ʏ(Æ,ƍ,"Storage",ķ.Ȗ);ʏ(Æ,ƍ,
- "AutoConveyor",ķ.ȥ);ʏ(Æ,ƍ,"KeepInput",ķ.ȼ);ʏ(Æ,ƍ,"RemoveInput",ķ.Ⱥ);ʏ(Æ,ƍ,"NoSpreading",ķ.ȶ);ʏ(Æ,ƍ,"NoCounting",ķ.ȵ);if(C.
- InventoryCount>1){ʏ(Æ,ƍ,"KeepOutput",ķ.Ȼ);ʏ(Æ,ƍ,"RemoveOutput",ķ.ȹ);ʏ(Æ,ƍ,"NoSorting",ķ.ȷ);if(C is IMyAssembler){ʏ(Æ,ƍ,"AssemblyOnly",
- ķ.Ȓ);ʏ(Æ,ƍ,"DisassemblyOnly",ķ.ȧ);ʏ(Æ,ƍ,"NoIdleReset",ķ.ȸ);ʏ(Æ,ƍ,"UniqueBlueprintsOnly",ķ.ȴ);}}}Æ.AppendLine();Æ.
- AppendLine(ƍ.ToString());ƍ.Clear();Æ.AppendLine($"Priority={ķ.ȱ}");if(C.InventoryCount>0){if(!ķ.Ȗ)Æ.Append("//");Æ.Append(
- "Storage=");ʏ(Æ,ƍ,"All",!ķ.Ȗ||ķ.ș.Contains("all")||ķ.ș.Contains("*"));foreach(string ĕ in ж){if(Ĥ())yield return Ѡ;ʏ(Æ,ƍ,ĕ,!ķ.Ȗ||ķ
- .ș.Contains(ĕ));}Æ.AppendLine();Æ.AppendLine(ƍ.ToString());ƍ.Clear();if(ķ.Ȳ.nj()>0){Æ.Append("Loadout=");while(!ӻ(Æ,ķ.Ȳ,Ѡ)
- )yield return Ѡ;Æ.AppendLine();}else ʏ(Æ,"Loadout=10:ingot:iron:silicon:nickel|50:ore:ice");if(ķ.ȳ.nj()>0){Æ.Append(
- "Limit=");while(!ӻ(Æ,ķ.ȳ,Ѡ))yield return Ѡ;Æ.AppendLine();}else ʏ(Æ,"Limit=25:ingot:*|100:ore:ice");}if(C is IMyFunctionalBlock)
- {if(ķ.Ț.Count>0){if(ķ.Ș)Æ.Append("LogicAnd=");else Æ.Append("LogicOr=");foreach(ư ƌ in ķ.Ț){if(Ĥ())yield return Ѡ;if(Æ[Æ.
- Length-1]!='=')Æ.Append("|");Æ.Append(ƌ.Ư());}Æ.AppendLine();}else{ʏ(Æ,"LogicAnd=ingot:iron<100 | ore:iron>=quota*0.1");ʏ(Æ,
- "LogicOr=ingot:iron<quota*0.95 | ingot:silicon<quota*0.95");}}yield return џ;}TimeSpan Ƌ(TimeSpan Ş){if(Ş.TotalMilliseconds>=ϥ.TotalMilliseconds)return Ş-ϥ;return new TimeSpan(0)
- ;}bool Ɗ(IMyTerminalBlock C,string A,string D){Ю.Clear();C.GetInventory(0).GetAcceptedItems(Ю);if(Ю.Count==0)return Ѡ;for
- (int Ç=0;Ç<Ю.Count;Ç++)if(Ю[Ç].ToString()==$"{A}/{D}")return Ѡ;return џ;}double Ɖ(string ō){if(И.ContainsKey(ō))return И[
- ō].K;return 1;}string ƈ(string m){if(Д.ContainsKey(m))return Д[m];string A,D;ə(m,out A,out D);if(Đ(A))return Ϛ;else if(Ď(
- A))return ϛ;else if(Ē(A))return ϝ;else if(đ(A))return Ϝ;else if(č(A))return ϙ;return A;}bool Ƈ(string Ō){return Ō.Length>
- 0&&!ž(Ō,"none");}bool Ɔ(MyInventoryItem F,ref string ƃ){if(ѕ<0)return џ;try{string ƅ=Ɯ(F.Type.SubtypeId),Ƃ;for(int Ç=0;Ç<
- д.Count;Ç++){Ƃ=Ɯ(д[Ç]);if(Math.Abs(Ƃ.Length-ƅ.Length)>ѕ)continue;if(Č(ƅ,Ƃ)||ƅ.EndsWith(Ƃ)||Č(Ƃ,ƅ)||Ƃ.EndsWith(ƅ)){ƃ=д[Ç];
- return Ѡ;}}}catch{Ƀ("Error/Temp: Error finding blueprint match");}return џ;}bool Ƅ(MyProductionItem Î,ref string ƃ){if(ѕ<0)
- return џ;try{string ƅ,Ƃ=Ɯ(ƒ(Î)),D,A;for(int Ç=0;Ç<Ф.Count;Ç++){ə(Ф.Keys[Ç],out A,out D);ƅ=Ɯ(D);if(Math.Abs(Ƃ.Length-ƅ.Length)>
- ѕ)continue;if(Č(ƅ,Ƃ)||ƅ.EndsWith(Ƃ)||Č(Ƃ,ƅ)||Ƃ.EndsWith(ƅ)){ƃ=Ф.Keys[Ç];return Ѡ;}}}catch{Ƀ(
- "Error/Temp: Error finding blueprint item");}return џ;}string Ɯ(string ƛ){return ƛ.ToLower().Replace("component","").Replace("magazine","").Replace("blueprint",""
- ).Replace("tier","t").Replace("hydrogen","hydro").Replace("thruster","thrust");}List<ȭ>ƚ(){Э.Clear();foreach(KeyValuePair
- <string,SortedList<string,ȭ>>ƙ in Н)Э.AddRange(ƙ.Value.Values);return Э;}string Ƙ(string ï){if(ï.Length>1)return
- $"{ï.Substring(0,1).ToUpper()}{ï.Substring(1).ToLower()}";return ï.ToUpper();}List<MyInventoryItem>Ɨ(){return new List<MyInventoryItem>();}List<MyProductionItem>Ɩ(){return new
- List<MyProductionItem>();}bool ƕ(string Ė,string ō){if(Ė.Length>=ō.Length&&ō.Length>0){return Ė.ToLower().Contains(ō.ToLower
- ());}return џ;}string Ɣ(double Ɲ){if(Ɲ>=1000.0){return$"{ñ(Ɲ/1000.0)}s";}return$"{ñ(Ɲ)}ms";}string Ɠ(IMyTerminalBlock C){
- return C.BlockDefinition.SubtypeName;}string ƒ(MyProductionItem Î){return Î.BlueprintId.SubtypeName;}bool Ƒ(string ō,bool Ɛ=џ)
- {if(Ɛ)return Х.ContainsKey(ō);if(ˠ.ContainsKey(ō)){if(!Х.ContainsKey(ō))Х[ō]="Initialize";return Ѡ;}return џ;}bool Ə(
- IMyTerminalBlock C){return(ϔ.Length==0||ƕ(C.CustomName,ϔ))&&!П[ѥ].Contains(Ɠ(C));}bool Ǝ(string ï,out string ō,out string Ō){int P=ï.
- IndexOf("=");if(P!=-1){ō=ï.Substring(0,P);Ō=ï.Substring(P+1);return Ѡ;}ō=ï;Ō=ï;return Ō.Length>0&&ō.Length>0;}bool ů(ȝ ª,string
- A,string D){IMyTerminalBlock C=ª.C;if(!Ɗ(ª.C,A,D))return џ;bool ű;double Ű=ª.ȳ.ǘ(out ű,A,D);if(ű&&Ű<=0.0)return џ;if(Đ(A)
- &&Е.ContainsKey(Ɠ(C)))return Е[Ɠ(C)]==D;return Ѡ;}bool ů(ȝ ª,MyInventoryItem F){return ů(ª,F.Type.TypeId,F.Type.SubtypeId)
- ;}bool Ů(ȝ ª,ref double ŭ,MyInventoryItem F){bool Ŭ;double ū=ª.ȳ.ǘ(out Ŭ,F);if(!Ŭ)ū=ª.Ȳ.ǘ(out Ŭ,F);if(Ŭ){ŭ=ū;return Ѡ;}
- return џ;}string Ū(string ō,bool ũ=Ѡ){foreach(KeyValuePair<string,SortedList<string,string>>Ĺ in Ц){if(Ĺ.Value.ContainsKey(ō))
- {if(ũ)return Ĺ.Value[ō].ToLower();return Ĺ.Value[ō];}}return"-0.1";}double Ũ(string ō){foreach(KeyValuePair<string,
- SortedList<string,double>>Ĺ in Т){if(Ĺ.Value.ContainsKey(ō)){return Ĺ.Value[ō];}}return-0.1;}bool ŧ(string ō){foreach(KeyValuePair
- <string,SortedList<string,bool>>Ĺ in С){if(Ĺ.Value.ContainsKey(ō)){return Ĺ.Value[ō];}}return џ;}bool Ŧ(string ō,string Ō
- ){foreach(KeyValuePair<string,SortedList<string,string>>Ĺ in Ц){if(Ĺ.Value.ContainsKey(ō)){Ĺ.Value[ō]=Ō;return Ѡ;}}return
- џ;}bool ť(string ō,double Ō){foreach(KeyValuePair<string,SortedList<string,double>>Ĺ in Т){if(Ĺ.Value.ContainsKey(ō)){Ĺ.
- Value[ō]=Ō;return Ѡ;}}return џ;}bool Ɓ(string ō,bool Ō){foreach(KeyValuePair<string,SortedList<string,bool>>Ĺ in С){if(Ĺ.
- Value.ContainsKey(ō)){Ĺ.Value[ō]=Ō;return Ѡ;}}return џ;}Vector2 ƀ(float Ĩ=0f,float ſ=0f){return new Vector2(Ĩ,ſ);}bool ž(
- string Ž,string ż){return Ž.Length==ż.Length&&string.Compare(Ž,ż,Ѡ)==0;}double Ż(MyInventoryItem F){double ź=0.5,Ź;ȭ Z;bool Ÿ=
- Ѡ;for(int Ĩ=0;Ĩ<У.Count;Ĩ++){if(n(out Z,У.Keys[Ĩ])){Ź=Z.ǟ.IndexOf(F.Type.SubtypeId);if(Ź!=-1){if(Ÿ){ź=Z.ǻ()+(Ź*0.00001);Ÿ
- =џ;}else ź=Math.Min(ź,Z.ǻ()+(Ź*0.00001));}}}return ź;}Ƴ ŷ(ȭ Z){return new Ƴ{Ë=Z.Ë,D=Z.D,A=Z.A,K=Z.ǵ};}bool Ŷ(
- MyInventoryItem F){ȭ Z;return!Ф.ContainsKey(F.Type.ToString())&&!n(out Z,F.Type.ToString());}bool ŵ(MyProductionItem Î){if(ƒ(Î)==ϖ){
- return џ;}return!д.Contains(ƒ(Î))&&!И.ContainsKey(ƒ(Î));}bool ų(Ǔ Ŵ){return ų(Ŵ.ǒ)||ų(Ŵ.Ǒ);}bool ų(SortedList<string,double>ý)
- {for(int Ç=0;Ç<ý.Count;Ç++)if(ý.Values[Ç]>0)return Ѡ;return џ;}bool Ų(ȭ Z,string ħ,string T){try{string Å=T.ToLower();
- double Ä=0,Ã;if(Å.StartsWith("quota")){Ä=Z.ǰ;int Â=Å.IndexOf("+"),Á=Å.IndexOf("*");if(Â>0){if(!double.TryParse(Å.Substring(Â+1
- ),out Ã))Ä+=Ã;}else if(Á>0&&!double.TryParse(Å.Substring(Á+1),out Ã))Ä*=Ã;}else if(ƕ(T,"/")){ȭ À;if(n(out À,T))Ä=À.ȫ;}
- else if(!double.TryParse(Å,out Ä))return џ;if(ħ==">=")return Z.ȫ>=Ä;else if(ħ=="<=")return Z.ȫ<=Ä;else if(ħ==">")return Z.ȫ>
- Ä;else if(ħ=="<")return Z.ȫ<Ä;else if(ħ=="=")return Z.ȫ==Ä;}catch{}return џ;}bool º(IMyTerminalBlock C){return!(C is
- IMyTextSurfaceProvider)||C is IMyShipController||ƕ(C.CustomName,ϫ);}bool µ(ȝ ª,int w=0){return ª.ț.ContainsKey(w)&&ª.ț[w].dž!=ͺ.Ͳ;}string v(
- string u,int t=20,bool r=џ){string q;if(u.Length<=t)q=u;else q=
- $"{u.Substring(0,(int)Math.Ceiling((t-1.0)/2.0))}.{u.Substring(u.Length-(int)Math.Floor((t-1.0)/2.0))}";if(r)q=q.PadRight(t);return q;}bool o(long P){try{if(!Й.ContainsKey(P))return џ;Γ=Й[P];if(Γ.C==null)return џ;return Γ.C
- .CubeGrid.CubeExists(Γ.C.Position)&&Γ.C.IsFunctional&&!Γ.C.Closed;}catch{}return џ;}bool n(out ȭ Z,string m){string A,D;ə
- (m,out A,out D);if(Н.ContainsKey(A)&&Н[A].TryGetValue(D,out Z))return Ѡ;Z=null;return џ;}string l(double k,int j){return
- $"{Math.Floor(k*(Math.Pow(10.0,j)))/(Math.Pow(10.0,j))}";}void h(ref StringBuilder Æ,ȭ Z){Æ.Append($"Name={Z.Ȭ}||Category={Ƙ(Z.ĕ)}||Quota={Z.Ʒ}");if(Z.Ʒ>=0&&Z.dz>Z.Ʒ)Æ.
- AppendLine($"<{Z.dz}");else Æ.AppendLine();Æ.Append($"^Type={Z.A}||Subtype={Z.D}");if(Ƈ(Z.Ë))Æ.Append(
- $"||Blueprint={Z.Ë}||Assembly Multiplier={Z.ǵ}||Assemble={Z.Ǧ}||Disassemble={Z.ǥ}");else if(ž(Z.Ë,"none"))Æ.Append("||Blueprint=None");if(đ(Z.A))Æ.Append($"||Refine={Z.Ǥ}");Æ.Append(
- $"||Fuel={Z.ǧ}||Display={Z.ǣ}");if(Z.ǡ||Ó(Z.A,Z.D))Æ.Append($"||Gas={Z.ǡ}");if(Ē(Z.A)||Z.ǟ.Count>0){Æ.Append("||Ore Keys=[");for(int Ç=0;Ç<Z.ǟ.Count;Ç
- ++){if(Ç>0)Æ.Append("|");Æ.Append(Z.ǟ[Ç]);}Æ.Append("]");}Æ.AppendLine();}bool Ô(MyInventoryItem F){return Ô(F.Type.TypeId
- ,F.Type.SubtypeId);}bool Ô(string A,string D){ȭ Z;if(n(out Z,$"{A}/{D}"))return Z.ǡ;return Ó(A,D);}bool Ó(string A,string
- D){return đ(A)&&D=="Ice";}bool Ò(ȝ C,MyDefinitionId Ë,MyAssemblerMode Ñ){IMyAssembler S=(IMyAssembler)C.C;if(!S.Enabled)
- return џ;if(!ŧ(ҏ)&&Ë.SubtypeName!=ϖ&&ƕ(Ɠ(S),"survival"))return џ;if((C.Ȓ&&Ñ==ѝ)||(C.ȧ&&Ñ==ў))return џ;return S.CanUseBlueprint
- (Ë)&&(S.IsQueueEmpty||S.Mode==Ñ);}string Õ(Ƴ Î){return$"{Ё}/{Î.Ë}";}double Ï(Ƴ Î,bool Í=џ){ȭ Z;if(n(out Z,$"{Î.A}/{Î.D}")
- ){if(Í&&Z.DZ<0)return-Z.DZ;else if(!Í&&Z.DZ>0)return Z.DZ;}return 0;}double Ì(MyDefinitionId Ë){if(Ë.SubtypeName==ϖ)return
- double.MaxValue;string A,D;if(ď(Ë.SubtypeName,out A,out D))return Ê(A,D);return-1;}double Ê(string A,string D){ȭ Z;if(n(out Z,
- $"{A}/{D}"))return Z.ǻ();return 100;}bool É(string È){if(!Ϥ.ContainsKey(È)){Ϥ[È]=new TimeSpan(0);return Ѡ;}return Ϥ[È].
- TotalMilliseconds<=0.0;}TimeSpan Ð(double g){return TimeSpan.FromSeconds(g);}double Y(IMyTerminalBlock C){return(double)C.GetInventory(0)
- .MaxVolume-(double)C.GetInventory(0).CurrentVolume;}double Q(long P){return(double)Й[P].C.GetInventory(0).CurrentVolume/(
- double)Й[P].C.GetInventory(0).MaxVolume;}bool O(double M,double L,double K){return M>L+(L*K);}bool N(double M,double L,double
- K){return M<L-(L*K);}Ǔ J(){return new Ǔ{ƪ=this};}bool I(MyInventoryItem F,ȝ C){if(Ĕ(C,F))return џ;string D=F.Type.
- SubtypeId;return(đ(F)&&H(F))||Đ(F)||d(F)||(х.Count>0&&Ē(F)&&D=="Stone")||(Ď(F)&&D=="Canvas")||Ô(F);}bool H(MyInventoryItem F){ȭ G
- ;if(n(out G,F.Type.ToString()))return G.Ǥ;return Ѡ;}double E(MyInventoryItem F,IMyTerminalBlock C){return E(F.Type.TypeId
- ,F.Type.SubtypeId,C);}double E(string A,string D,IMyTerminalBlock C){try{if(C is IMyGasGenerator){if(Ô(A,D))return B(Ũ(Ҟ)
- ,A,D,C);}else if(C is IMyRefinery){if(ћ>0)return((double)C.GetInventory(0).MaxVolume/ћ)/e(A,D);}else if(C is
- IMyUserControllableGun)return Math.Ceiling(B(Ũ(Ҝ),A,D,C));else if(C is IMyReactor)return B(Ũ(ҝ),A,D,C);else if(C is IMyParachute)return Math.
- Ceiling(B(Ũ(қ),A,D,C));}catch{}return double.MaxValue;}double B(double R,string A,string D,IMyTerminalBlock C){if(R<=1.0)return
- ((double)C.GetInventory(0).MaxVolume/e(A,D))*R;return R;}double e(string A,string D){try{ȭ G;if(n(out G,$"{A}/{D}")&&G.Dz
- !=0.0)return G.Dz;}catch{}return 0.17;}bool d(MyInventoryItem F){ȭ Z;return n(out Z,F.Type.ToString())&&Z.ǧ;}string c(
- MyInventoryItem F){return c(F.Type.TypeId,F.Type.SubtypeId);}string c(string A,string D){ȭ Z;if(n(out Z,$"{A}/{D}"))return Z.Ȭ;return D
- ;}double f(MyInventoryItem F,IMyTerminalBlock C){return Y(C)/e(F);}bool X(MyInventoryItem F){return F.Type.GetItemInfo().
- UsesFractions;}bool W(ȝ V,int U){if(U==0&&V.ȼ)return џ;if(U==1&&V.Ȼ)return џ;IMyTerminalBlock C=V.C;if(V.ȗ||C is IMyRefinery)return U
- ==1;if(C is IMyAssembler){IMyAssembler S=(IMyAssembler)C;return(S.IsQueueEmpty||((S.Mode==ў&&U==1)||(S.Mode==ѝ&&U==0)));}
- if(C is IMyReactor||C is IMyParachute||C is IMyUserControllableGun||C is IMySafeZoneBlock)return џ;return Ѡ;}bool W(
- MyInventoryItem F,ȝ V,int U=0){IMyTerminalBlock C=V.C;if(ю&&ē(F)&&!(C is IMyGasGenerator||C is IMyGasTank))return Ѡ;if(U==0&&(Ĕ(V,F)||Ö
- (V,F)||(C is IMyGasGenerator&&(Ô(F)))))return џ;if(C is IMyAssembler){IMyAssembler S=(IMyAssembler)C;return S.
- IsQueueEmpty||(U==0&&S.Mode==ѝ)||(U==1&&S.Mode==ў);}if(C is IMyShipWelder&&((IMyShipWelder)C).Enabled&&Ď(F))return џ;return Ѡ;}bool
- Ö(ȝ C,MyInventoryItem F){string m=F.Type.ToString(),ĕ;if(C.ș.Contains("all")||C.ș.Contains("*"))return Ѡ;ĕ=ƈ(m);return C.
- ș.Contains(ĕ);}bool Ĕ(ȝ C,MyInventoryItem F){return C.Ȳ.ǘ(F)>0;}double e(MyInventoryItem F){return F.Type.GetItemInfo().
- Volume;}bool ē(MyInventoryItem F){return ē(F.Type.TypeId);}bool ē(string A){return ž(A,Ї)||ž(A,І);}bool Ē(string A){return A==
- "*"||ž(A,Љ)||ž(A,ϝ)||(A.Length>1&&Č(ϝ,A));}bool đ(string A){return A=="*"||ž(A,Њ)||ž(A,Ϝ)||(A.Length>1&&Č(Ϝ,A));}bool Đ(
- string A){return A=="*"||ž(A,Ѕ)||ž(A,Ϛ)||(A.Length>1&&Č(Ϛ,A));}bool ď(string Ë,out string A,out string D){Ƴ Î;A="";D="";if(И.
- TryGetValue(Ë,out Î)){A=Î.A;D=Î.D;return Ѡ;}return џ;}bool Ď(string A){return A=="*"||ž(A,Ћ)||ž(A,ϛ)||(A.Length>1&&Č(ϛ,A));}bool č(
- string A){return A=="*"||ž(A,Ј)||ē(A)||ž(A,Є)||ž(A,Ѓ)||ž(A,Ђ)||ž(A,ϙ)||(A.Length>1&&(Č(Ј,A)||Č(Є,A)||Č(Ѓ,A)||Č(Ђ,A)||Č(ϙ,A)));
- }bool Č(string Ė,string ċ){return Ė.Replace(" ","").ToLower().StartsWith(ċ.Replace(" ","").ToLower());}bool Ē(
- MyInventoryItem F){return F.Type.GetItemInfo().IsIngot;}bool đ(MyInventoryItem F){return F.Type.GetItemInfo().IsOre;}bool Ď(
- MyInventoryItem F){return F.Type.GetItemInfo().IsComponent;}bool č(MyInventoryItem F){return F.Type.GetItemInfo().IsTool||č(F.Type.
- TypeId);}bool Đ(MyInventoryItem F){return F.Type.GetItemInfo().IsAmmo;}bool ĥ(string A){return A=="*"||A=="all"||ж.Contains(A.
- ToLower());}bool Ĥ(double K=0.95){double ģ=K;if(overheatAverage>0)ģ=Math.Min(ģ,1.0-(Ѫ/(overheatAverage*1.5)));if(ģ<=0)ģ=0.01;
- return Runtime.CurrentInstructionCount>=(Runtime.MaxInstructionCount*actionLimiterMultiplier*ģ)||(DateTime.Now-Ϣ).
- TotalMilliseconds>=runTimeLimiter*ģ;}bool Ħ(string Ģ,bool ġ=Ѡ){if(ġ)Ϡ=Ģ;bool Ġ,ğ;double Ğ=1.0/(double)ѻ.Length;DateTime ĝ=DateTime.Now,Ĝ;
- int ě=Runtime.CurrentInstructionCount;try{Ġ=ˠ[Ģ].MoveNext();ğ=А.Contains(Ģ);Ĝ=DateTime.Now;ϣ[Ģ].ɻ+=Runtime.
- CurrentInstructionCount-ě;ϣ[Ģ].Ʉ++;}catch{Ƀ($"Error in function: {Ģ} : {Х[Ģ]}");Ϯ-=Ğ;Ϯ=Math.Max(0,Ϯ);ʘ(Ģ);return Ѡ;}if(Ģ.Length!=0)ϣ[Ģ].Ş+=Ĝ-ĝ;
- if(!Ġ||ğ){ϣ[Ģ].ɰ();if(Ϯ>=99.9999)Ϯ=100.0;else{Ϯ+=(100.0-Ϯ)*(0.01/(double)ѻ.Length);Ϯ=Math.Min(Ϯ,100.0);}ʘ(Ģ,!ğ);}return!Ġ
- ||ğ;}double Ě(double k,int Û=2){return Math.Round(k,Û);}double ę(ȭ F){if(F.ǩ<=0.0)return 0;return F.ȫ/F.ǩ;}MySprite Ę(
- string ė,Color î,Vector2 í,Vector2 ß){return new MySprite(SpriteType.TEXTURE,ė,í+(ß/2f),ß,î);}MySprite ð(string ï,Color î,
- Vector2 í,Vector2 ì,TextAlignment ë,string ê,IMyTextSurface é){Vector2 è,ç,æ=ì*0.035f,ß;ß=ì*0.93f;ˡ.Clear();ˡ.Append(ï);ç=é.
- MeasureStringInPixels(ˡ,ê,1f);float å=Math.Min(ß.X/ç.X,ß.Y/ç.Y);ç=é.MeasureStringInPixels(ˡ,ê,(float)å);if(ë==ː)è=ƀ(ß.X*0.5f);else è=ƀ();è.Y=
- (ß.Y*0.5f)-(ç.Y*0.5f);return new MySprite(SpriteType.TEXT,ï,í+è+æ,ß,î,ê,ë,å);}List<ɭ>ä(float á){List<ɭ>ã=new List<ɭ>{new
- ɭ{ė="SquareHollow",ʌ=new Color(0,0,0,180),Ȧ=0.25f},new ɭ{ė="SquareSimple",ʌ=new Color((int)(230f*(1f-(float)á)),(int)(
- 230f*(float)á),0,220),Ȧ=0.25f*á}};return ã;}List<MySprite>â(float á,Vector2 à,Vector2 ß){List<MySprite>Þ=new List<MySprite>{
- Ę("SquareHollow",new Color(0,0,0,180),à,ß),Ę("SquareSimple",new Color((int)(230f*(1f-(float)á)),(int)(230f*(float)á),0,
- 220),à,ƀ(ß.X*á,ß.Y))};return Þ;}string Ý(double k,List<string>Ü,int Û){double Ú=1,Ù=Math.Abs(k);int P=-1,Ø=-1;while(k>=Ú*
- 1000.0&&P+1<Ü.Count){Ú*=1000.0;P++;if(Ü[P].Length>0)Ø=P;}Ù/=Math.Pow(1000,Ø+1);if(Ø>=0)return$"{l(Ù,Û)}{Ü[Ø]}";else return l(Ù
- ,Û);}string ñ(double k,List<string>ĉ=null,int Û=2,int Ĉ=0,bool ć=Ѡ){List<string>Ü=new List<string>();if(ĉ==null)Ü.
- AddRange(П[ѣ]);else Ü.AddRange(ĉ);string Ć="";if(k<0)Ć="-";if(ć)return$"{Ć}{Ý(Math.Abs(k),Ü,Û)}".PadLeft(Ĉ);return
- $"{Ć}{Ý(Math.Abs(k),Ü,Û)}".PadRight(Ĉ);}string ą(IMyTextSurface é,string Ą){List<string>ă=new List<string>();é.GetFonts(ă);for(int Ç=0;Ç<ă.Count;Ç
- ++){if(ž(Ą,ă[Ç])){return ă[Ç];}}return"Monospace";}bool Ă(out Color ā,string Ċ){ā=Color.White;try{string[]Ā=Ċ.Split(':');
- if(Ā.Length==4)ā=new Color(int.Parse(Ā[0]),int.Parse(Ā[1]),int.Parse(Ā[2]),int.Parse(Ā[3]));else if(Ā.Length==3)ā=new
- Color(int.Parse(Ā[0]),int.Parse(Ā[1]),int.Parse(Ā[2]));else return џ;return Ѡ;}catch{}return џ;}void ÿ(List<ʊ>þ,List<ʊ>ý){try
- {þ.Clear();foreach(ʊ ü in ý)þ.Add(ü.ǔ());}catch{Ƀ("Error cloning panel objects");}}string û(string ú,int ù){string ø=ú;if
- (ù>0)ø+=$" -({ñ(ù)})";return ø;}static List<long>ö(int õ=200){return new List<long>(õ);}void ô(){ϥ=Runtime.
- TimeSinceLastRun;Ƌ(ref ϧ);Ƌ(ref Ϧ);try{for(int Ç=0;Ç<Ϥ.Count;Ç++)Ϥ[Ϥ.Keys[Ç]]=Ƌ(Ϥ.Values[Ç]);}catch{}}void ó(ref ȭ Z){Z.ó();if(Z.ǟ.Count
- >0)У[Z.ǹ()]=Z.D;else У.Remove(Z.ǹ());}void ò(string ĕ){if(!ж.Contains(ĕ))ж.Add(ĕ);if(!М.ContainsKey(ĕ))М[ĕ]=ö();}void ɠ(
- ref StringBuilder Æ,string ɟ){string Ć="",ɞ="",ɝ="",ɜ="";for(int Ç=0;Ç<ɟ.Length;Ç++){Ć+="/";ɞ+=@"\";ɝ+=" ";ɜ+="|";}Æ.
- AppendLine();Æ.AppendLine($"{Ć}{ɝ}{ɞ}");Æ.AppendLine($"{ɜ} {ɟ} {ɜ}");Æ.AppendLine($"{ɞ}{ɝ}{Ć}");Æ.AppendLine();}void ɛ(int[]ɚ){
- for(int Ç=0;Ç<ɚ.Length;Ç++)ʘ(ѻ[ɚ[Ç]]);}void Ƌ(ref TimeSpan Ş){Ş=Ƌ(Ş);}void ə(string m,out string A,out string D){int P=m.
- IndexOf("/");A=m.Substring(0,P);D=m.Substring(P+1);}void ɘ(){ϗ="Idle";}void ɗ(string ï){ϕ=ï;ϡ=DateTime.Now.AddSeconds(15);}void
- ɖ(string u,string ɕ){Ǔ Ŵ;double M,Ɍ;ɧ(ɕ,out M,out Ɍ);if(О.TryGetValue(u.ToLower(),out Ŵ)){int õ=Ŵ.nj();for(int Ç=0;Ç<õ;Ç++
- )ɔ(Ŵ.Ǘ(Ç),M,Ɍ);}}void ɔ(string m,double M,double Ɍ){string ɩ,D;ə(m,out ɩ,out D);ɔ(ɩ,D,M,Ɍ);}void ɔ(string A,string D,
- double M,double Ɍ){ȭ Z;if(n(out Z,$"{A}/{D}"))ɡ(Z,M,Ɍ);}void ɨ(string u,string ɕ){if(u.Length>0){double M,Ɍ;ɧ(ɕ,out M,out Ɍ);
- if(ĥ(u)){if(u=="*"||u=="all")ɦ(M,Ɍ,"","");else ɦ(M,Ɍ,"",u);}else ɦ(M,Ɍ,u);}}void ɧ(string Ō,out double M,out double Ɍ){int
- P=Ō.IndexOf("<");if(P>0){M=double.Parse(Ō.Substring(0,P));Ɍ=double.Parse(Ō.Substring(P+1));}else{M=double.Parse(Ō);Ɍ=M;}}
- void ɦ(double M,double Ɍ,string ɥ="",string ĕ=""){List<ȭ>ɤ=ƚ();string ɣ=ɥ.Replace(" ","");bool ɢ=џ;if(ɣ.Length>2){if(ɣ.
- StartsWith("'")&&ɣ.EndsWith("'")){ɢ=Ѡ;ɣ=ɣ.Substring(1,ɣ.Length-2);}}for(int Ç=0;Ç<ɤ.Count;Ç++){if((ĕ.Length==0||ž(ĕ,ɤ[Ç].ĕ))&&(ɣ.
- Length==0||(!ɢ&&Č(ɤ[Ç].Ȭ,ɣ))||(ɢ&&ž(ɤ[Ç].Ȭ.Replace(" ",""),ɣ))))ɡ(ɤ[Ç],M,Ɍ);}}void ɡ(ȭ Z,double M,double ɒ){double Ɍ=ɒ+Z.Ƿ;Z.Ʒ
- =M;Z.dz=Ɍ;if(Z.dz<M)Z.dz=M;if(Z.dz<0)Z.dz=0;Z.Ǽ();}void ɋ(MyInventoryItem F){string D=F.Type.SubtypeId,m=F.Type.ToString(),Ɋ=D
- ;if(Ɏ(D,D,F.Type.TypeId,""))ѐ=Ѡ;if(Ē(F)||đ(F))return;if(д.Contains(Ɋ)||Ɔ(F,ref Ɋ)){if(ʖ(m,Ɋ)){ɗ(
- $"Merged Mod Item: {v(D,15)}");ѐ=Ѡ;}}else if(!Ф.ContainsKey(m))Ф[m]=D;}void ɉ(MyProductionItem Î){string D=ƒ(Î),Ɉ="";if(Ƅ(Î,ref Ɉ)){if(ʖ(Ɉ,D)){ɗ(
- $"Merged Mod Item: {v(Ɉ,15)}");ѐ=Ѡ;}}else if(!д.Contains(D))д.Add(D);}void ɇ(){while(ˠ.Count>0)ʘ(ˠ.Keys[0]);}void Ɇ(){if(ѓ>0){if(Ѻ==null||Ѻ.Length!=ѓ
- ){Ѻ=new double[ѓ];њ=0;for(int Ç=0;Ç<Ѻ.Length;Ç++)Ѻ[Ç]=-1;}Ѻ[њ]=Runtime.LastRunTimeMs;њ++;if(њ>=Ѻ.Length)њ=0;double Ʌ=0,Ʉ=
- 0;for(int Ç=0;Ç<Ѻ.Length;Ç++){if(Ѻ[Ç]!=-1){Ʌ+=Ѻ[Ç];Ʉ++;}}ҍ=Ʌ/Ʉ;}else{if(Ѻ!=null)Ѻ=null;ҍ=0;}ѫ+=Runtime.LastRunTimeMs*ѩ;ѫ
- *=1.0-ѩ;Ѫ=Math.Max(ҍ,ѫ);}void Ƀ(string Ɂ){if(Ɂ.Length!=0){if(Č(Ɂ,"Error")){ј++;ї++;ɂ(Ɂ,ref Щ);ɗ(Ɂ);}ɂ(Ɂ,ref Џ,ђ);}}void ɂ(
- string Ɂ,ref List<ɽ>ý,int Ű=30){bool ɀ=Ѡ;for(int Ç=0;Ç<ý.Count;Ç++){if(ý[Ç].ï==Ɂ){ý[Ç].õ++;ý.Move(Ç,0);ɀ=џ;break;}}if(ɀ)ý.
- Insert(0,new ɽ{ï=Ɂ});if(ý.Count>Ű)ý.RemoveRange(Ű,ý.Count-Ű);}void ȿ(IEnumerator<bool>Ⱦ,string Ģ){ˠ[Ģ]=Ⱦ;if(!ϣ.ContainsKey(Ģ))
- ϣ[Ģ]=new ʙ();Х[Ģ]="Initialize";}void ɍ(){Runtime.UpdateFrequency=UpdateFrequency.None;Runtime.UpdateFrequency&=~
- UpdateFrequency.Update1;Runtime.UpdateFrequency&=~UpdateFrequency.Update10;Runtime.UpdateFrequency&=~UpdateFrequency.Update100;if(є==
- 100)Runtime.UpdateFrequency=UpdateFrequency.Update100;else if(є==1)Runtime.UpdateFrequency=UpdateFrequency.Update1;else
- Runtime.UpdateFrequency=UpdateFrequency.Update10;}void Ƚ(string Ë,bool ɓ,double M,bool ǿ){Ƴ Î;if(И.TryGetValue(Ë,out Î))Ƚ(Î.A,Î
- .D,ɓ,M,ǿ);}void Ƚ(MyProductionItem F,bool ɓ,bool ǿ=џ){if(И.ContainsKey(ƒ(F))){Ƴ Î=И[ƒ(F)];Ƚ(Î.A,Î.D,ɓ,(double)F.Amount,ǿ)
- ;}}void Ƚ(string A,string D,bool ɓ,double M,bool ǿ){ȭ Z;if(n(out Z,$"{A}/{D}")){if(ɓ)Z.ȁ((MyFixedPoint)M,ǿ);else Z.Ȁ((
- MyFixedPoint)M,ǿ);}}void Ȃ(MyInventoryItem F,bool ǿ=џ){ȭ Z;if(n(out Z,F.Type.ToString())){Z.Ȃ(F.Amount,ǿ);if(Z.Dz==0){Z.Dz=F.Type.
- GetItemInfo().Volume;Z.Ǡ=X(F);}}}void ɑ(ȝ ª){IMyTerminalBlock C=ª.C;bool ɐ=џ,ȥ=ª.ȥ,ɏ;if(C is IMyAssembler)((IMyProductionBlock)C).
- UseConveyorSystem=Ѡ;else if(C is IMyRefinery)((IMyProductionBlock)C).UseConveyorSystem=ȥ||ŧ(Ҵ);else if(C is IMyReactor)((IMyReactor)C).
- UseConveyorSystem=ȥ||ŧ(ҳ);else if(C is IMyGasGenerator)((IMyGasGenerator)C).UseConveyorSystem=ȥ||ŧ(Ҳ);else if(C is IMySmallGatlingGun){ɏ=
- ((IMySmallGatlingGun)C).UseConveyorSystem;if(ȥ||ŧ(ұ))ɐ=!ɏ;else ɐ=ɏ;}else if(C is IMyLargeGatlingTurret){ɏ=((
- IMyLargeGatlingTurret)C).UseConveyorSystem;if(ȥ||ŧ(ұ))ɐ=!ɏ;else ɐ=ɏ;}else if(C is IMyLargeMissileTurret){ɏ=((IMyLargeMissileTurret)C).
- UseConveyorSystem;if(ȥ||ŧ(ұ))ɐ=!ɏ;else ɐ=ɏ;}else if(C is IMySmallMissileLauncherReload){ɏ=((IMySmallMissileLauncherReload)C).
- UseConveyorSystem;if(ȥ||ŧ(ұ))ɐ=!ɏ;else ɐ=ɏ;}else if(C is IMySmallMissileLauncher){ɏ=((IMySmallMissileLauncher)C).UseConveyorSystem;if(ȥ||
- ŧ(ұ))ɐ=!ɏ;else ɐ=ɏ;}if(ɐ)C.ApplyAction("UseConveyor");}bool Ɏ(string u,string D,string A,string Ë="None",bool ǣ=Ѡ,List<
- string>ǟ=null){if(!Н.ContainsKey(A))Н[A]=new SortedList<string,ȭ>();if(!Н[A].ContainsKey(D)){Н[A][D]=new ȭ{A=A,D=D,Ȭ=u,Ë=Ë,ǣ=ǣ
- };ʗ($"{A}/{D}",Ë,ǟ);return Ѡ;}return џ;}void ʗ(string m,string Ë,List<string>ǟ=null){ȭ Z;if(n(out Z,m)){if(Ē(Z.A)){Z.Ʒ=
- 100;Z.dz=100;if(Z.D=="Uranium")Z.ǧ=Ѡ;}Z.ĕ=ƈ(Z.ǹ());if(Ó(Z.A,Z.D)){Z.ǡ=Ѡ;Z.Ǥ=џ;}else if(đ(Z.A))Z.Ǥ=Ѡ;ʖ(m,Ë,ǟ);}}bool ʖ(string
- m,string Ë="",List<string>ǟ=null){ȭ Z;if(n(out Z,m)){if(Ē(Z.A)&&Z.ǟ.Count==0)Z.ǟ.Add(Z.D);if(ǟ!=null)Z.ǟ.AddRange(ǟ);ó(
- ref Z);if(Ƈ(Z.Ë))И.Remove(Z.Ë);Z.Ë=Ë;if(Ƈ(Ë))И[Ë]=ŷ(Z);string ĕ=Z.ĕ;Д[Z.ǹ()]=ĕ;ò(ĕ);ʕ(Z);return Ѡ;}return џ;}void ʕ(ȭ Z){if
- (!Ē(Z.A)&&!đ(Z.A)&&Z.Ë.Length==0){if(!Ф.ContainsKey(Z.ǹ()))Ф[Z.ǹ()]=Z.D;}else Ф.Remove(Z.ǹ());if(Ƈ(Z.Ë))д.Remove(Z.Ë);}
- void ʘ(string Ģ,bool ʔ=Ѡ){if(ʔ){try{ˠ[Ģ].Dispose();}catch{}try{ˠ[Ģ]=null;}catch{}ˠ.Remove(Ģ);}Х.Remove(Ģ);А.Remove(Ģ);}void
- ʓ(ref Ǔ Ŵ,bool ʑ=Ѡ,bool ʐ=џ){if(Ŵ==null)Ŵ=J();else Ŵ.ǐ(ʑ,ʐ);}void ʒ(ȝ C,bool ʑ=Ѡ,bool ʐ=џ){ʓ(ref C.ȳ,ʑ,ʐ);ʓ(ref C.Ȳ,ʑ,ʐ);
- }void ʏ(StringBuilder Æ,string ʎ){Æ.AppendLine($"//{ʎ}");}void ʍ(ȝ ķ,int w=0){ƫ Ĭ=ķ.ț[w];string ʣ=Ĭ.ȟ();if(!Г.Contains(ʣ)
- ){Г.Add(ʣ);IMyTextSurface é=Ĭ.Ȣ();if(é.ContentType!=ContentType.SCRIPT)é.ContentType=ContentType.SCRIPT;if(é.Script!=
- "None")é.Script="None";if(é.ScriptForegroundColor==ˢ){é.ScriptForegroundColor=Color.Black;é.ScriptBackgroundColor=new Color(73
- ,141,255,255);}}}void ʢ(ƫ Ĭ,string ï){Ĭ.Ʊ(ï.PadRight(Ĭ.Ƣ));}void ʡ(long P,ref int ń,ref int ļ,ref int ĺ,ref int ù,
- SortedList<string,int>ľ,SortedList<string,int>Ľ){IMyTerminalBlock C=Й[P].C;MyInventoryItem F;MyProductionItem ʠ;string ō;if(!o(P)
- ||!((IMyFunctionalBlock)C).Enabled){ù++;return;}if(C is IMyAssembler){IMyAssembler S=(IMyAssembler)C;if(S.IsQueueEmpty)ĺ++
- ;else{List<MyProductionItem>ʟ=Ɩ();S.GetQueue(ʟ);ʠ=ʟ[0];ō=ƒ(ʠ);if(И.ContainsKey(ō)){Ƴ Î=И[ō];ō=c(Î.A,Î.D);}if(S.Mode==ў){ń
- ++;if(!ľ.ContainsKey(ō))ľ[ō]=(int)ʠ.Amount;else ľ[ō]+=(int)ʠ.Amount;}else{ļ++;if(!Ľ.ContainsKey(ō))Ľ[ō]=(int)ʠ.Amount;else
- Ľ[ō]+=(int)ʠ.Amount;}}}else if(C is IMyRefinery){if(C.GetInventory(0).ItemCount==0)ĺ++;else{ń++;F=(MyInventoryItem)C.
- GetInventory(0).GetItemAt(0);ō=c(F);if(!ľ.ContainsKey(ō))ľ[ō]=(int)(F).Amount;else ľ[ō]+=(int)(F).Amount;}}else if(C is
- IMyGasGenerator){if(C.GetInventory(0).ItemCount>0){F=(MyInventoryItem)C.GetInventory(0).GetItemAt(0);ō=c(F);if(!ľ.ContainsKey(ō))ľ[ō]=(
- int)F.Amount;else ľ[ō]+=(int)F.Amount;if(Ô(F))ń++;else ĺ++;}else ĺ++;}}void ʏ(StringBuilder ʞ,StringBuilder ƍ,string ʝ,bool
- ʜ){if(ʜ){if(ʞ[ʞ.Length-1]!='=')ʞ.Append("|");ʞ.Append(Ƙ(ʝ));}else{if(ƍ.Length>0)ƍ.Append("|");else ƍ.Append("//");ƍ.
- Append(Ƙ(ʝ));}}void ʛ(ref bool ʚ,string ō,List<string>Ŕ){ʚ=Ŕ.Contains(ō);}class ʙ{public int Ʉ=0,ɻ=0,ʃ=0,ɺ=0,ɹ=0,ɸ=0,ɷ=0,ɶ=0,ɵ
- =0;public double ɴ=0,ɳ=0,ɲ;public TimeSpan Ş=new TimeSpan(0),ɱ=new TimeSpan(0);public void ɰ(){bool ɯ=ɹ==0;ɹ++;ʃ=Ʉ;Ʉ=0;ɺ=
- ɻ;ɻ=0;ɲ=Ş.TotalMilliseconds;Ş-=Ş;if(ɯ){ɸ=ɷ=ʃ;ɶ=ɵ=ɺ;ɴ=ɳ=ɲ;}else{ɸ=Math.Min(ɸ,ʃ);ɷ=Math.Max(ɷ,ʃ);ɶ=Math.Min(ɶ,ɺ);ɵ=Math.Max
- (ɵ,ɺ);ɴ=Math.Min(ɴ,ɲ);ɳ=Math.Max(ɳ,ɲ);}}}class ɮ{public DateTime DŽ=DateTime.Now.AddSeconds(1);public List<ʊ>þ=new List<ʊ>
- (),ƨ=new List<ʊ>();}class ɭ{public string ɬ="",ï="",ė="";public double ɫ=0,ɪ=0,R=0,ƶ=0,Ƶ=0,ƴ=0;public TextAlignment ë=ˑ;
- public float Ȧ=-1;public bool ȣ=џ;public Color ʌ=Color.White;public ɭ ǔ(){ɭ Š=new ɭ(){ɬ=ɬ,ï=ï,ė=ė,ɫ=ɫ,ɪ=ɪ,R=R,ƶ=ƶ,Ƶ=Ƶ,ƴ=ƴ,ë=ë,
- Ȧ=Ȧ,ȣ=ȣ,ʌ=new Color(ʌ,ʌ.A)};return Š;}}class ʊ{public double ʉ=0;public string ʈ="SquareSimple",ʇ="";public bool F=џ;
- public List<ɭ>ʆ=new List<ɭ>();public ʊ ǔ(){ʊ ü=new ʊ{ʉ=ʉ,ʈ=ʈ,ʇ=ʇ,F=F};foreach(ɭ Š in ʆ)ü.ʆ.Add(Š.ǔ());return ü;}}class ʅ{
- public MyAssemblerMode Ñ;public SortedList<string,double>ʋ=new SortedList<string,double>();public DateTime ʄ=DateTime.Now;
- public float ʂ=0f;public IMyAssembler S;public bool ʁ=џ;public bool ʀ(double ɿ){try{if(DateTime.Now<ʄ)return џ;bool Ɛ=S.
- Enabled&&!S.IsQueueEmpty&&S.CurrentProgress==ʂ&&S.Mode==Ñ;if(!Ɛ){ʋ.Clear();ʁ=џ;ʄ=DateTime.Now.AddSeconds(5);}else ʄ=DateTime.
- Now.AddSeconds(ɿ);Ñ=S.Mode;ʂ=S.CurrentProgress;return Ɛ;}catch{}return џ;}public void ɾ(){ʁ=џ;ʋ.Clear();ʄ=DateTime.Now.
- AddSeconds(5);}}class ɽ{public string ï="";public int õ=1;public string Ƀ(){if(õ>1)return$"{ï} x{õ}";else return ï;}}class ɼ{
- public double M=0;public string ō="",ï="";public int ǖ=0;}class Ƴ{public string Ë="",A="",D="";public double M=0,K=1;public Ƴ
- ǔ(){return new Ƴ{Ë=Ë,A=A,D=D,M=M,K=K};}}class Ǔ{public Program ƪ;public SortedList<string,double>ǒ=new SortedList<string,
- double>(),Ǒ=new SortedList<string,double>();public Ǔ(Ǔ Ʒ){ƪ=Ʒ.ƪ;Ǎ(Ʒ);}public Ǔ(){}public void ǐ(bool Ǐ=Ѡ,bool ǎ=џ){if(Ǐ)ǒ.
- Clear();if(ǎ)Ǒ.Clear();}public void Ǎ(Ǔ Ŵ){foreach(KeyValuePair<string,double>Ĺ in Ŵ.ǒ){if(!ǒ.ContainsKey(Ĺ.Key))ǒ[Ĺ.Key]=Ĺ.
- Value;else ǒ[Ĺ.Key]+=Ĺ.Value;}foreach(KeyValuePair<string,double>Ĺ in Ŵ.Ǒ){if(!Ǒ.ContainsKey(Ĺ.Key))Ǒ[Ĺ.Key]=Ĺ.Value;else Ǒ[Ĺ
- .Key]+=Ĺ.Value;}}public int nj(){return ǒ.Count+Ǒ.Count;}public ȭ Nj(int P){if(P<nj())return NJ(P);return new ȭ();}public ȭ NJ
- (int P){string A,D;int Ǖ=P;double M;if(Ǖ<ǒ.Count){ƪ.ə(ǒ.Keys[Ǖ],out A,out D);M=ǒ.Values[Ǖ];}else{Ǖ-=ǒ.Count;ƪ.ə(Ǒ.Keys[Ǖ]
- ,out A,out D);M=Ǒ.Values[Ǖ];}return new ȭ{A=A,D=D,ȫ=M};}public string Ǘ(int P){int Ǖ=P;if(Ǖ<ǒ.Count)return ǒ.Keys[Ǖ];else
- {Ǖ-=ǒ.Count;return Ǒ.Keys[Ǖ];}}public void Ǜ(string A,string D,double M,bool ǜ=Ѡ,bool Ǐ=Ѡ){if(Ǐ)ǚ(A,D,M,ǜ,ǒ);else if(!ǒ.
- ContainsKey($"{A}/{D}"))ǚ(A,D,M,ǜ,Ǒ);}public void Ǜ(MyInventoryItem F){Ǜ(F.Type.TypeId,F.Type.SubtypeId,(double)F.Amount);}public
- void ǚ(string A,string D,double M,bool ǜ,SortedList<string,double>ý){string m=$"{A}/{D}";if(!ǜ||!ý.ContainsKey(m))ý[m]=M;
- else ý[m]+=M;}public double ǘ(MyInventoryItem F){bool Ǚ;return ǘ(out Ǚ,F);}public double ǘ(string A,string D){bool Ǚ;return
- ǘ(out Ǚ,A,D);}public double ǘ(out bool ĩ,MyInventoryItem F){return ǘ(out ĩ,F.Type.TypeId,F.Type.SubtypeId);}public double
- ǘ(out bool ĩ,string A,string D){ĩ=Ѡ;double õ;string m=$"{A}/{D}";if(ǒ.TryGetValue(m,out õ)||Ǒ.TryGetValue(m,out õ))return
- õ;ĩ=џ;return 0;}}class ư{public string A="",ħ="",Å="";public string Ư(){return$"{A}{ħ}{Å}";}}class Ʈ{public long P;public
- bool ƭ,Ƭ;}class ƫ{public ȝ ƪ;public List<MySprite>Ʃ=new List<MySprite>();public List<ʊ>þ=new List<ʊ>(),ƨ=new List<ʊ>(),ŝ=new
- List<ʊ>(),Ƨ=new List<ʊ>();public List<string>Ʀ=new List<string>(),Ü;public List<Ǻ>ƥ=new List<Ǻ>();public int Û=2,Ƥ=-1,ƣ=1,Ƣ=
- 18,w=0;public double ơ=1,Ơ=0,Ɵ=double.MaxValue;public bool Ş=џ,ƞ=џ,Ʋ=џ,lj=Ѡ,Lj=џ;public Ή LJ=Ή.Έ;public ͺ dž=ͺ.Ͳ;public ΐ Dž=ΐ.
- Λ;public DateTime DŽ=DateTime.Now;public Ǔ ǃ;public Color ǂ=Color.Black,ǁ=Color.Black,ǀ=Color.GhostWhite;public Vector2 ß=
- new Vector2(1,1),ƿ=new Vector2(0,0);public string ê="Monospace",ƾ="",ņ="",ƽ="",Ƽ="";public void ƻ(List<ɭ>ý){þ[þ.Count-1].ʆ.
- AddRange(ý);}void ƺ(bool ƹ=џ,bool F=џ){if(ƹ)ƨ.Add(new ʊ{F=F});else þ.Add(new ʊ());}public void Ƹ(string u,double M,double Ʒ,
- double ƶ,double Ƶ,double ƴ){ƺ(Ѡ,Ѡ);ƨ[ƨ.Count-1].ʇ=u.Trim();if(LJ==Ή.ͼ||LJ==Ή.ͻ){if(Ʒ>0)ƨ[ƨ.Count-1].ʉ=M/Ʒ;else ƨ[ƨ.Count-1].ʉ=0;
- }ƨ[ƨ.Count-1].ʆ.Add(new ɭ{ɫ=M,ɬ=u,ɪ=Ʒ,ƶ=ƶ,Ƶ=Ƶ,ƴ=ƴ});}public void Ʊ(string ï,bool ƹ=џ,float Ȧ=1f,bool Ȥ=Ѡ,bool ȣ=џ,
- TextAlignment ë=ˑ){if(Ȥ)ƺ(ƹ);if(ƹ)ƨ[ƨ.Count-1].ʆ.Add(new ɭ{ï=ï,Ȧ=Ȧ,ȣ=ȣ,ë=ë});else þ[þ.Count-1].ʆ.Add(new ɭ{ï=ï,Ȧ=Ȧ,ȣ=ȣ,ë=ë});}public
- IMyTextSurface Ȣ(){if(!Lj)return(IMyTextPanel)ƪ.C;return((IMyTextSurfaceProvider)ƪ.C).GetSurface(w);}public string ȡ(){if(Lj){
- IMyTextSurface é=Ȣ();StringBuilder Æ=new StringBuilder();é.ReadText(Æ);return Æ.ToString();}return ƪ.C.CustomData;}public void Ƞ(
- string ï){if(Lj){IMyTextSurface é=Ȣ();StringBuilder Æ=new StringBuilder(ï);é.WriteText(Æ);}else ƪ.C.CustomData=ï;}public string
- ȟ(){string Ȟ=ƪ.C.EntityId.ToString();if(Lj)Ȟ+=$":{w}";return Ȟ;}}class ȝ{public Program ƪ;public IMyTerminalBlock C;public
- ʅ Ȝ;public SortedList<int,ƫ>ț=new SortedList<int,ƫ>();public List<ư>Ț=new List<ư>();public List<string>ș=new List<string>
- ();public bool Ș=џ,ȗ=џ,Ȗ=џ,Ǐ=Ѡ,ȕ=џ,Ȕ=џ,ȓ=џ,ȥ=џ,Ȓ=џ,ȧ=џ,ȼ=џ,Ȼ=џ,Ⱥ=џ,ȹ=џ,ȸ=џ,ȷ=џ,ȶ=џ,ȵ=џ,ȴ=џ;public Ǔ ȳ,Ȳ;public double ȱ=1
- ;public string Ƽ="";public string ȡ(){return C.CustomData;}public void Ƞ(string ï){C.CustomData=ï;}}class ȯ{public double
- õ=0,ļ=0;public DateTime Ȯ=DateTime.Now;}class ȭ{public string A="",D="",Ë="",Ȭ="",ĕ="";public double ȫ=0,Ȫ=0,ȩ=0,Ȩ=0,Ȱ=0,
- ȑ=0,Ʒ=0,ƴ=0,Ƿ=0,Ƕ=1,ǵ=1,Ǵ=0,dz=0,Dz=0,DZ=0,ǰ=0,ǯ=0,Ǯ=0,ǭ=0,Ǭ=0,ǫ=0,Ǫ=0,ǩ=0,Ǩ=0;public bool ǧ=џ,Ǧ=Ѡ,ǥ=Ѡ,Ǥ=Ѡ,ǣ=Ѡ,Ǣ=џ,ǡ=џ,Ǡ=Ѡ;
- public List<string>ǟ=new List<string>();public List<ȯ>Ǟ=new List<ȯ>();public DateTime Ǹ=DateTime.Now,ǝ=DateTime.Now;public
- string ǹ(){return A+"/"+D;}public void ó(){if(ǟ.Count>0)ǟ=ǟ.Distinct().ToList();}public void ȏ(double Ȏ,bool ȍ,double Ȍ,double
- ȋ,double Ȋ,bool ȉ){ȫ=Ȩ;Ȩ=0;if(DateTime.Now>=Ǹ){Ǟ.Add(new ȯ{õ=ȫ,Ȯ=DateTime.Now,ļ=ȩ});Ǹ=DateTime.Now.AddSeconds(1.25);if(Ǟ.
- Count>12)Ǟ.RemoveRange(0,Ǟ.Count-12);}double Ȉ=Math.Min(20,(DateTime.Now-Ǟ[0].Ȯ).TotalSeconds+0.0001),ȇ=(DateTime.Now-ǝ).
- TotalSeconds,Ȇ,ȅ=0,Ȅ=Math.Max(Ǟ[0].ļ,ȩ);if(Ǟ.Count>1&&Ȉ==20)Ǟ.RemoveAt(0);bool ȃ=ȫ<1.0;if(Ȉ>0)ƴ=(ȫ-Ǟ[0].õ)/Ȉ;else ƴ=0;Ȇ=ƴ;if(Ʒ>0)ȅ+=
- Ʒ;if(Ƿ>0)ȅ+=Ʒ;if(ȍ&&ȅ>0){if(ȇ>=1){if(ȉ&&ȃ)Ȇ-=ȅ*0.001;if(!ȃ&&Ȇ==0.0)Ȇ+=ȅ*0.1;if(Ȅ>=1)Ȇ=ȅ*0.005;if(ȫ>=ȅ)Ȇ=ȅ*0.15;Ǵ+=((Ȇ/ȅ)*
- Ȉ)*Math.Min(2.5,ȇ);if(Ǵ<=-Ȍ){Ƕ+=Ȋ;if(Ƕ>Ȏ)Ƕ=Ȏ;Ǵ=0;}else if(Ǵ>=ȋ){Ƕ-=Ȋ;if(Ƕ<1)Ƕ=1;Ǵ=0;}ǝ=DateTime.Now;}}else{Ƕ=1;ǝ=DateTime
- .Now;Ǵ=ȋ*0.95;}Ǽ();}public void Ȑ(){Ȫ=Math.Floor(Ȱ);ȩ=Math.Floor(ȑ);Ȱ=0;ȑ=0;}public void Ȃ(MyFixedPoint M,bool ǿ){if(ǿ)Ȩ
- +=(double)M;else Ȩ+=(double)M;}public void ȁ(MyFixedPoint M,bool ǿ){if(ǿ)Ȫ+=(double)M;else Ȱ+=(double)M;}public void Ȁ(
- MyFixedPoint M,bool ǿ){if(ǿ)ȩ+=(double)M;else ȑ+=(double)M;}public void Ǿ(double ǽ){Ǫ=0;DZ=0;ǭ=0;Ǭ=0;ǯ=Ȫ*ǵ;Ǯ=ȩ;Ǩ=ȫ+(ǯ)-(Ǯ);Ǽ();if(Ë.
- Length>0&&Ë!="None"){if(ǰ<0)ǫ=0;else{if(dz>ǰ)ǫ=dz;else if(ǰ>0)ǫ=Math.Floor(ǰ*(1.0+ǽ));else ǫ=double.MaxValue;}if(!Ǣ){if(ǯ>0&&ȫ+ǯ
- >ǫ)ǭ=(ȫ+ǯ)-ǫ;if(Ǯ>0&&ȫ-Ǯ<ǰ)Ǭ=ǰ-(ȫ-Ǯ);}else{ǭ=Ȫ;if(Ǯ>0&&Ǯ>ȫ)Ǭ=Ǯ-ȫ;}if(ǭ>0)ǭ=Math.Floor(ǭ/ǵ);if(Ǯ>0&&Ǯ<ǵ)Ǭ=Ǯ;if(!Ǧ)ǭ=0;if(!
- ǥ)Ǭ=0;if(Ǣ){if(Ǩ>0)DZ=-Ǩ;}else{if(ǰ==0)DZ=0;else{if(Ǩ<ǰ)DZ=ǰ-Ǩ;else if(Ǩ>ǫ)DZ=ǫ-Ǩ;}}if(DZ>0)DZ=Math.Ceiling(DZ/ǵ);else if(DZ<0){
- if(Math.Abs(DZ)<ǵ)DZ=0;else DZ=Math.Floor(Math.Abs(DZ)/ǵ)*-ǵ;}if(DZ>0)Ǫ=DZ;if(DZ>0&&(Ǯ>0||!Ǧ))DZ=0;if(DZ<0&&(ǯ>0||!ǥ))DZ=0;}}public
- void Ǽ(){ǰ=0;if(Ʒ>0)ǰ+=Ʒ;if(Ƿ>0)ǰ+=Ƿ;Ǣ=ǰ==0&&Ʒ<0;if(!Ǣ&&ǰ>0)ǰ*=Ƕ;ǰ=Math.Floor(ǰ);ǩ=ǰ;if(Ǣ)ǩ=-1;}public double ǻ(){if(ǰ==0)
- return 100;return(ȫ/ǰ)*100.0;}}class Ǻ{public long P;public int w=0;}
Add Comment
Please, Sign In to add comment