public override void Tick()
 {
     base.Tick();
     if (GetComp <CompPowerTrader>().PowerOn&& Find.TickManager.TicksGame % 35 == 0)
     {
         foreach (var element in ThingsToSelect)
         {
             if (element.def.category == ThingCategory.Item && settings.AllowedToAccept(element))
             {
                 TryStoreThing(element);
                 break;
             }
         }
         if (StoredThing != null)
         {
             if (settings.AllowedToAccept(StoredThing))
             {
                 StoredThing.SetForbidden(true, false);
             }
             else
             {
                 StoredThing.SetForbidden(false, false);
             }
         }
     }
 }
Example #2
0
        public override void Tick()
        {
            base.Tick();
            if (GetComp <CompPowerTrader>().PowerOn&& Find.TickManager.TicksGame % 35 == 0)
            {
                foreach (var element in ThingsToSelect)
                {
                    bool withinLimits = true;
                    if (OutputSettings.useMin)
                    {
                        withinLimits = (element.stackCount >= OutputSettings.min);
                    }

                    if (element.def.category == ThingCategory.Item && settings.AllowedToAccept(element) && withinLimits)
                    {
                        TryStoreThing(element);
                        break;
                    }
                }
                if (StoredThing != null)
                {
                    if (settings.AllowedToAccept(StoredThing))
                    {
                        bool forbidItem = true;

                        if (OutputSettings.useMin || OutputSettings.useMax)
                        {
                            if (OutputSettings.useMin && StoredThing.stackCount < OutputSettings.min)
                            {
                                forbidItem = false;
                            }
                            else if (OutputSettings.useMax && StoredThing.stackCount > OutputSettings.max)
                            {
                                forbidItem = false;
                            }
                        }
                        if (forbidItem)
                        {
                            StoredThing.SetForbidden(true, false);
                            return;
                        }
                    }
                    StoredThing.SetForbidden(false, false);
                }
            }
        }