Beispiel #1
0
        protected override void Generate(ThingSetMakerParams parms, List <Thing> outThings)
        {
            TraderKindDef traderKindDef = parms.traderDef ?? DefDatabase <TraderKindDef> .AllDefsListForReading.RandomElement();

            Faction traderFaction = parms.traderFaction;
            int?    tile          = parms.tile;
            int     forTile       = tile.HasValue ? parms.tile.Value : ((Find.AnyPlayerHomeMap != null) ? Find.AnyPlayerHomeMap.Tile : ((Find.CurrentMap == null) ? (-1) : Find.CurrentMap.Tile));

            for (int i = 0; i < traderKindDef.stockGenerators.Count; i++)
            {
                StockGenerator stockGenerator = traderKindDef.stockGenerators[i];
                foreach (Thing item in stockGenerator.GenerateThings(forTile))
                {
                    if (!item.def.tradeability.TraderCanSell())
                    {
                        Log.Error(traderKindDef + " generated carrying " + item + " which can't be sold by traders. Ignoring...");
                    }
                    else
                    {
                        item.PostGeneratedForTrader(traderKindDef, forTile, traderFaction);
                        outThings.Add(item);
                    }
                }
            }
        }
        protected override void Generate(ItemCollectionGeneratorParams parms, List <Thing> outThings)
        {
            TraderKindDef traderKindDef = parms.traderDef ?? DefDatabase <TraderKindDef> .AllDefsListForReading.RandomElement();

            Faction traderFaction = parms.traderFaction;
            int?    tile          = parms.tile;
            int     forTile       = (!tile.HasValue) ? ((Find.AnyPlayerHomeMap == null) ? ((Find.VisibleMap == null) ? (-1) : Find.VisibleMap.Tile) : Find.AnyPlayerHomeMap.Tile) : parms.tile.Value;

            for (int i = 0; i < traderKindDef.stockGenerators.Count; i++)
            {
                StockGenerator stockGenerator = traderKindDef.stockGenerators[i];
                foreach (Thing item in stockGenerator.GenerateThings(forTile))
                {
                    if (item.def.tradeability != Tradeability.Stockable)
                    {
                        Log.Error(traderKindDef + " generated carrying " + item + " which has is not Stockable. Ignoring...");
                    }
                    else
                    {
                        item.PostGeneratedForTrader(traderKindDef, forTile, traderFaction);
                        outThings.Add(item);
                    }
                }
            }
        }
        protected override void Generate(ThingSetMakerParams parms, List <Thing> outThings)
        {
            TraderKindDef traderKindDef = parms.traderDef ?? DefDatabase <TraderKindDef> .AllDefsListForReading.RandomElement <TraderKindDef>();

            Faction traderFaction = parms.traderFaction;
            int?    tile          = parms.tile;
            int     forTile;

            if (tile != null)
            {
                forTile = parms.tile.Value;
            }
            else if (Find.AnyPlayerHomeMap != null)
            {
                forTile = Find.AnyPlayerHomeMap.Tile;
            }
            else if (Find.CurrentMap != null)
            {
                forTile = Find.CurrentMap.Tile;
            }
            else
            {
                forTile = -1;
            }
            for (int i = 0; i < traderKindDef.stockGenerators.Count; i++)
            {
                StockGenerator stockGenerator = traderKindDef.stockGenerators[i];
                foreach (Thing thing in stockGenerator.GenerateThings(forTile))
                {
                    if (!thing.def.tradeability.TraderCanSell())
                    {
                        Log.Error(string.Concat(new object[]
                        {
                            traderKindDef,
                            " generated carrying ",
                            thing,
                            " which can't be sold by traders. Ignoring..."
                        }), false);
                    }
                    else
                    {
                        thing.PostGeneratedForTrader(traderKindDef, forTile, traderFaction);
                        outThings.Add(thing);
                    }
                }
            }
        }
Beispiel #4
0
        protected override void Generate(ItemCollectionGeneratorParams parms, List <Thing> outThings)
        {
            TraderKindDef traderKindDef = parms.traderDef ?? DefDatabase <TraderKindDef> .AllDefsListForReading.RandomElement <TraderKindDef>();

            Faction traderFaction = parms.traderFaction;
            int?    tile          = parms.tile;
            int     forTile;

            if (tile.HasValue)
            {
                forTile = parms.tile.Value;
            }
            else if (Find.AnyPlayerHomeMap != null)
            {
                forTile = Find.AnyPlayerHomeMap.Tile;
            }
            else if (Find.VisibleMap != null)
            {
                forTile = Find.VisibleMap.Tile;
            }
            else
            {
                forTile = -1;
            }
            for (int i = 0; i < traderKindDef.stockGenerators.Count; i++)
            {
                StockGenerator stockGenerator = traderKindDef.stockGenerators[i];
                foreach (Thing current in stockGenerator.GenerateThings(forTile))
                {
                    if (current.def.tradeability != Tradeability.Stockable)
                    {
                        Log.Error(string.Concat(new object[]
                        {
                            traderKindDef,
                            " generated carrying ",
                            current,
                            " which has is not Stockable. Ignoring..."
                        }));
                    }
                    else
                    {
                        current.PostGeneratedForTrader(traderKindDef, forTile, traderFaction);
                        outThings.Add(current);
                    }
                }
            }
        }