public static void MakeTablePairsByThing(List <ThingStuffPair> pairList)
        {
            DefMap <ThingDef, float> totalCommMult = new DefMap <ThingDef, float>();
            DefMap <ThingDef, float> totalComm     = new DefMap <ThingDef, float>();
            DefMap <ThingDef, int>   pairCount     = new DefMap <ThingDef, int>();

            foreach (ThingStuffPair current in pairList)
            {
                DefMap <ThingDef, float> defMap;
                ThingDef thing;
                (defMap = totalCommMult)[thing = current.thing] = defMap[thing] + current.commonalityMultiplier;
                ThingDef thing2;
                (defMap = totalComm)[thing2 = current.thing] = defMap[thing2] + current.Commonality;
                DefMap <ThingDef, int> pairCount2;
                ThingDef thing3;
                (pairCount2 = pairCount)[thing3 = current.thing] = pairCount2[thing3] + 1;
            }
            IEnumerable <ThingDef> arg_192_0 = from d in DefDatabase <ThingDef> .AllDefs
                                               where pairList.Any((ThingStuffPair pa) => pa.thing == d)
                                               select d;

            TableDataGetter <ThingDef>[] expr_F3 = new TableDataGetter <ThingDef> [5];
            expr_F3[0] = new TableDataGetter <ThingDef>("thing", (ThingDef t) => t.defName);
            expr_F3[1] = new TableDataGetter <ThingDef>("pair count", (ThingDef t) => pairCount[t].ToString());
            expr_F3[2] = new TableDataGetter <ThingDef>("total commonality multiplier ", (ThingDef t) => totalCommMult[t].ToString("F4"));
            expr_F3[3] = new TableDataGetter <ThingDef>("total commonality", (ThingDef t) => totalComm[t].ToString("F4"));
            expr_F3[4] = new TableDataGetter <ThingDef>("def-commonality", (ThingDef t) => t.generateCommonality.ToString("F4"));
            DebugTables.MakeTablesDialog <ThingDef>(arg_192_0, expr_F3);
        }
Example #2
0
        public static void ListChannels()
        {
            IEnumerable <LogisticChannel> dataSources = LogisticChannel.AllChannels;

            TableDataGetter <LogisticChannel>[] array = new TableDataGetter <LogisticChannel> [4];
            array[0] = new TableDataGetter <LogisticChannel>("name", ( LogisticChannel c ) => c.name);
            array[1] = new TableDataGetter <LogisticChannel>("total", ( LogisticChannel c ) => c.interfaces.Count);
            array[2] = new TableDataGetter <LogisticChannel>("providers", ( LogisticChannel c ) => c.PassiveProviders.Count());
            array[3] = new TableDataGetter <LogisticChannel>("requesters", ( LogisticChannel c ) => c.Requesters.Count());

            DebugTables.MakeTablesDialog(dataSources, array);
        }
Example #3
0
        public static void ProvidedItems()
        {
            IEnumerable <Thing> dataSources =
                Manager.Channels
                .SelectMany(c => Manager.ThingsProvided(c));

            TableDataGetter <Thing>[] array = new TableDataGetter <Thing> [2];
            array[0] = new TableDataGetter <Thing>("thing", ( Thing d ) => d.def);
            array[1] = new TableDataGetter <Thing>("quantity", ( Thing d ) => d.stackCount);

            DebugTables.MakeTablesDialog(dataSources, array);
        }
Example #4
0
        public static void RequestedItems()
        {
            IEnumerable <LogisticRequester> dataSources =
                Manager.Requesters;

            TableDataGetter <LogisticRequester>[] array = new TableDataGetter <LogisticRequester> [4];
            array[0] = new TableDataGetter <LogisticRequester>("thingDef", ( LogisticRequester r ) => r.requestFilter.Summary);
            array[1] = new TableDataGetter <LogisticRequester>("amount", ( LogisticRequester r ) => r.Count);
            array[2] = new TableDataGetter <LogisticRequester>("activeReq", ( LogisticRequester r ) => r.activeRequestCount);
            array[3] = new TableDataGetter <LogisticRequester>("missing", ( LogisticRequester r ) => r.Missing);

            DebugTables.MakeTablesDialog(dataSources, array);
        }
        internal static void MakeTableApparelPairs()
        {
            IEnumerable <ThingStuffPair> arg_129_0 = from p in PawnApparelGenerator.allApparelPairs
                                                     orderby p.thing.defName descending
                                                     select p;

            TableDataGetter <ThingStuffPair>[] expr_2D = new TableDataGetter <ThingStuffPair> [6];
            expr_2D[0] = new TableDataGetter <ThingStuffPair>("thing", (ThingStuffPair p) => p.thing.defName);
            expr_2D[1] = new TableDataGetter <ThingStuffPair>("stuff", (ThingStuffPair p) => (p.stuff == null) ? string.Empty : p.stuff.defName);
            expr_2D[2] = new TableDataGetter <ThingStuffPair>("price", (ThingStuffPair p) => p.Price.ToString());
            expr_2D[3] = new TableDataGetter <ThingStuffPair>("commonality", (ThingStuffPair p) => (p.Commonality * 100f).ToString("F4"));
            expr_2D[4] = new TableDataGetter <ThingStuffPair>("def-commonality", (ThingStuffPair p) => p.thing.generateCommonality.ToString("F4"));
            expr_2D[5] = new TableDataGetter <ThingStuffPair>("insulationCold", (ThingStuffPair p) => (p.InsulationCold != 0f) ? p.InsulationCold.ToString() : string.Empty);
            DebugTables.MakeTablesDialog <ThingStuffPair>(arg_129_0, expr_2D);
        }
        private static void ApparelPairs()
        {
            IEnumerable <ThingStuffPair> dataSources = from p in PawnApparelGenerator.allApparelPairs
                                                       orderby p.thing.defName descending
                                                       select p;

            TableDataGetter <ThingStuffPair>[] array = new TableDataGetter <ThingStuffPair> [7];
            array[0] = new TableDataGetter <ThingStuffPair>("thing", (ThingStuffPair p) => p.thing.defName);
            array[1] = new TableDataGetter <ThingStuffPair>("stuff", (ThingStuffPair p) => (p.stuff == null) ? string.Empty : p.stuff.defName);
            array[2] = new TableDataGetter <ThingStuffPair>("price", (ThingStuffPair p) => p.Price.ToString());
            array[3] = new TableDataGetter <ThingStuffPair>("commonality", (ThingStuffPair p) => (p.Commonality * 100f).ToString("F4"));
            array[4] = new TableDataGetter <ThingStuffPair>("generateCommonality", (ThingStuffPair p) => p.thing.generateCommonality.ToString("F4"));
            array[5] = new TableDataGetter <ThingStuffPair>("insulationCold", (ThingStuffPair p) => (p.InsulationCold != 0f) ? p.InsulationCold.ToString() : string.Empty);
            array[6] = new TableDataGetter <ThingStuffPair>("headgear", (ThingStuffPair p) => (!PawnApparelGenerator.IsHeadgear(p.thing)) ? string.Empty : "*");
            DebugTables.MakeTablesDialog <ThingStuffPair>(dataSources, array);
        }
        internal static void MakeTableWeaponPairs()
        {
            IEnumerable <ThingStuffPair> arg_153_0 = from p in PawnWeaponGenerator.allWeaponPairs
                                                     orderby p.thing.defName descending
                                                     select p;

            TableDataGetter <ThingStuffPair>[] expr_2D = new TableDataGetter <ThingStuffPair> [7];
            expr_2D[0] = new TableDataGetter <ThingStuffPair>("thing", (ThingStuffPair p) => p.thing.defName);
            expr_2D[1] = new TableDataGetter <ThingStuffPair>("stuff", (ThingStuffPair p) => (p.stuff == null) ? string.Empty : p.stuff.defName);
            expr_2D[2] = new TableDataGetter <ThingStuffPair>("price", (ThingStuffPair p) => p.Price.ToString());
            expr_2D[3] = new TableDataGetter <ThingStuffPair>("commonality", (ThingStuffPair p) => p.Commonality.ToString("F5"));
            expr_2D[4] = new TableDataGetter <ThingStuffPair>("commMult", (ThingStuffPair p) => p.commonalityMultiplier.ToString("F5"));
            expr_2D[5] = new TableDataGetter <ThingStuffPair>("def-commonality", (ThingStuffPair p) => p.thing.generateCommonality.ToString("F2"));
            expr_2D[6] = new TableDataGetter <ThingStuffPair>("derp", (ThingStuffPair p) => (!PawnWeaponGenerator.IsDerpWeapon(p.thing, p.stuff)) ? string.Empty : "D");
            DebugTables.MakeTablesDialog <ThingStuffPair>(arg_153_0, expr_2D);
        }
        private static void WeaponPairs()
        {
            IEnumerable <ThingStuffPair> dataSources = from p in PawnWeaponGenerator.allWeaponPairs
                                                       orderby p.thing.defName descending
                                                       select p;

            TableDataGetter <ThingStuffPair>[] array = new TableDataGetter <ThingStuffPair> [7];
            array[0] = new TableDataGetter <ThingStuffPair>("thing", (ThingStuffPair p) => p.thing.defName);
            array[1] = new TableDataGetter <ThingStuffPair>("stuff", (ThingStuffPair p) => (p.stuff == null) ? string.Empty : p.stuff.defName);
            array[2] = new TableDataGetter <ThingStuffPair>("price", (ThingStuffPair p) => p.Price.ToString());
            array[3] = new TableDataGetter <ThingStuffPair>("commonality", (ThingStuffPair p) => p.Commonality.ToString("F5"));
            array[4] = new TableDataGetter <ThingStuffPair>("commMult", (ThingStuffPair p) => p.commonalityMultiplier.ToString("F5"));
            array[5] = new TableDataGetter <ThingStuffPair>("generateCommonality", (ThingStuffPair p) => p.thing.generateCommonality.ToString("F2"));
            array[6] = new TableDataGetter <ThingStuffPair>("derp", (ThingStuffPair p) => (!PawnWeaponGenerator.IsDerpWeapon(p.thing, p.stuff)) ? string.Empty : "D");
            DebugTables.MakeTablesDialog <ThingStuffPair>(dataSources, array);
        }
Example #9
0
        internal static IEnumerable <DebugMenuOption> ViewShipments(List <Shipment> shipments)
        {
            foreach (var shipment in shipments)
            {
                yield return(new DebugMenuOption
                {
                    label = "View destination: " + shipment.destination.map.GetUniqueLoadID(),
                    method = () =>
                    {
                        IEnumerable <ShipmentItem> dataSources =
                            shipment.items;

                        TableDataGetter <ShipmentItem>[] array = new TableDataGetter <ShipmentItem> [3];
                        array[0] = new TableDataGetter <ShipmentItem>("thingDef", ( ShipmentItem r ) => r.requester.requestFilter.Summary);
                        array[1] = new TableDataGetter <ShipmentItem>("amount", ( ShipmentItem r ) => r.Count); // thingCounts.Select( tc => tc.Count ).Aggregate( ( a, b ) => a + b ) ) ;
                        array[2] = new TableDataGetter <ShipmentItem>("requested", ( ShipmentItem r ) => r.reqAmount);

                        DebugTables.MakeTablesDialog(dataSources, array);
                    },
                    mode = DebugMenuOptionMode.Action,
                });

                yield return(new DebugMenuOption
                {
                    label = "Send to destination: " + shipment.destination.map.GetUniqueLoadID(),
                    method = () =>
                    {
                        shipment.SetupPods();
                    },
                    mode = DebugMenuOptionMode.Action,
                });

                yield return(new DebugMenuOption
                {
                    label = "Delete: " + shipment.destination.map.GetUniqueLoadID(),
                    method = () =>
                    {
                        shipment.Status = Shipment.ShipmentStatus.Complete;
                    },
                    mode = DebugMenuOptionMode.Action,
                });
            }
        }
        public virtual void DebugTablesIncidentChances(IncidentCategoryDef cat)
        {
            IEnumerable <IncidentDef> dataSources = from d in DefDatabase <IncidentDef> .AllDefs
                                                    where d.category == cat
                                                    orderby this.IncidentChanceFinal(d) descending
                                                    select d;

            TableDataGetter <IncidentDef>[] array = new TableDataGetter <IncidentDef> [10];
            array[0] = new TableDataGetter <IncidentDef>("defName", (IncidentDef d) => d.defName);
            array[1] = new TableDataGetter <IncidentDef>("baseChance", (IncidentDef d) => d.baseChance.ToString());
            array[2] = new TableDataGetter <IncidentDef>("AdjustedChance", (IncidentDef d) => d.Worker.AdjustedChance.ToString());
            array[3] = new TableDataGetter <IncidentDef>("Factor-PopCurrent", (IncidentDef d) => this.IncidentChanceFactor_CurrentPopulation(d).ToString());
            array[4] = new TableDataGetter <IncidentDef>("Factor-PopIntent", (IncidentDef d) => this.IncidentChanceFactor_PopulationIntent(d).ToString());
            array[5] = new TableDataGetter <IncidentDef>("final chance", (IncidentDef d) => this.IncidentChanceFinal(d).ToString());
            array[6] = new TableDataGetter <IncidentDef>("vismap-usable", (IncidentDef d) => (Find.CurrentMap != null) ? ((!this.UsableIncidentsInCategory(cat, Find.CurrentMap).Contains(d)) ? string.Empty : "V") : "-");
            array[7] = new TableDataGetter <IncidentDef>("world-usable", (IncidentDef d) => (!this.UsableIncidentsInCategory(cat, Find.World).Contains(d)) ? string.Empty : "W");
            array[8] = new TableDataGetter <IncidentDef>("pop-current", (IncidentDef d) => PawnsFinder.AllMapsCaravansAndTravelingTransportPods_Alive_Colonists.Count <Pawn>().ToString());
            array[9] = new TableDataGetter <IncidentDef>("pop-intent", (IncidentDef d) => StorytellerUtilityPopulation.PopulationIntent.ToString("F3"));
            DebugTables.MakeTablesDialog <IncidentDef>(dataSources, array);
        }