public NPCTaskDoJob(Entity entity, IWorkBuilding building, float priority, float taskTime = -1) : base(entity, priority, taskTime) { WorkBuilding = building.WorkBuilding; List <WorkEquiptmentData> wed = new List <WorkEquiptmentData>(10); foreach (WorldObjectData wed_ in WorkBuilding.GetBuildingObjects()) { if (wed_ is WorkEquiptmentData && (wed_ as WorkEquiptmentData).CurrentUser == null) { wed.Add(wed_ as WorkEquiptmentData); } } WorkEquiptment = GameManager.RNG.RandomFromList(wed); if (WorkEquiptment != null) { WorkEquiptment.CurrentUser = Entity as NPC; CanWork = QuickDistance(Entity, WorkEquiptment.WorldPosition) <= 1; } else { CanWork = true; } }
public WorkEquiptmentPlacement(WorkEquiptmentData equipt, Vec2i localPosition) { Equiptment = equipt; LocalPositon = localPosition; }