Esempio n. 1
0
    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;
        }
    }
Esempio n. 2
0
 public WorkEquiptmentPlacement(WorkEquiptmentData equipt, Vec2i localPosition)
 {
     Equiptment   = equipt;
     LocalPositon = localPosition;
 }