Esempio n. 1
0
 public void RemovePart(StockpilePart part)
 {
     _parts.Remove(part);
     if (_parts.Count == 0)
     {
         StockpileManager.GetInstance().RemoveStockpile(this);
     }
 }
 public StockpilePart FindStockpilePartForItem(Item item)
 {
     foreach (Stockpile stockpile in _stockpiles)
     {
         StockpilePart part = stockpile.FindPlaceForItem(item);
         if (part != null)
         {
             return(part);
         }
     }
     return(null);
 }
Esempio n. 3
0
    protected override void PlanJob()
    {
        _task = new HaulTask(_item, _destinationPosition, _worker.MotionComponent, _worker.Inventory);

        _worker.CommandProcessor.AddTask(_task);
        _task.ResultHandler += OnJobFinish;

        StockpilePart part = Utils.TileAt(_destinationNode.Position).Contents.StockpilePart;

        if (part != null)
        {
            JobResultHandler += part.HaulJobResultHandler;
        }
    }
    private void TryHaulingItemToAnyStockpile(Item item)
    {
        if (Utils.TileAt(item.Position).Contents.StockpilePart != null || item.HasHaulJob)
        {
            return;
        }

        StockpilePart part = FindStockpilePartForItem(item);

        if (part != null)
        {
            HaulJob job = new HaulJob(item, part.position);
            part.SetHaulJob(job);
            JobSystem.GetInstance().AddJob(job);
        }
    }
Esempio n. 5
0
 public void SetStockpilePart(StockpilePart value) => StockpilePart = value;
Esempio n. 6
0
 public void AddPart(StockpilePart part)
 {
     _parts.Add(part);
     part.spriteRenderer.color = _stockpileColor;
 }