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); }
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); } }
public void SetStockpilePart(StockpilePart value) => StockpilePart = value;
public void AddPart(StockpilePart part) { _parts.Add(part); part.spriteRenderer.color = _stockpileColor; }