예제 #1
0
    public override bool checkProceduralPrecondition(GameObject agent)
    {
        // find the nearest tree that we can mine
        CenterEntity[] centers     = FindObjectsOfType(typeof(CenterEntity)) as CenterEntity[];
        CenterEntity   closest     = null;
        float          closestDist = 0;

        foreach (CenterEntity center in centers)
        {
            if (closest == null)
            {
                // first one, so choose it for now
                closest     = center;
                closestDist = (center.gameObject.transform.position - agent.transform.position).magnitude;
            }
            else
            {
                // is this one closer than the last?
                float dist = (center.gameObject.transform.position - agent.transform.position).magnitude;
                if (dist < closestDist)
                {
                    // we found a closer one, use it
                    closest     = center;
                    closestDist = dist;
                }
            }
        }
        targetCenter = closest;
        target       = targetCenter.gameObject;
        return(closest != null);
    }
예제 #2
0
    public override bool checkProceduralPrecondition(GameObject agent)
    {
        Agent abstractAgent = (Agent)agent.GetComponent(typeof(Agent));

        targetCenter = abstractAgent.center;
        target       = targetCenter.gameObject;
        return(targetCenter != null);
    }
 void Start()
 {
     buttonComponent.onClick.AddListener(HandleClick);
     CenterEntity[] centers = (CenterEntity[])FindObjectsOfType(typeof(CenterEntity));
     if (centers.Length > 0)
     {
         center = centers[0];
     }
 }
        private void center_combobx_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBox centerComboBx = sender as ComboBox;

            if (centerComboBx.SelectedItem != null)
            {
                CenterEntity selectedCenter = centerComboBx.SelectedItem as CenterEntity;
                center_combobx_val = selectedCenter.CenterName;
                CheckValidations();
            }
        }
    public override bool checkProceduralPrecondition(GameObject agent)
    {
        Agent abstractAgent = (Agent)agent.GetComponent(typeof(Agent));

        targetCenter = abstractAgent.center;
        float diff = 0.5f;
        float posX = targetCenter.transform.position.x + Random.Range(-diff, diff);
        float posY = targetCenter.transform.position.y + Random.Range(-diff, diff);

        targetPosition = new Vector3(posX, posY, agent.transform.position.z);
        // Debug.DrawLine(targetPosition, agent.transform.position, Color.white, 3, false);
        return(targetCenter != null);
    }
예제 #6
0
 void Start()
 {
     // Found and save buildings references
     WarehouseEntity[] warehouses = (WarehouseEntity[])FindObjectsOfType(typeof(WarehouseEntity));
     if (warehouses.Length > 0)
     {
         warehouse = warehouses[0];
     }
     CenterEntity[] centers = (CenterEntity[])FindObjectsOfType(typeof(CenterEntity));
     if (centers.Length > 0)
     {
         center = centers[0];
     }
 }
예제 #7
0
    void Awake()
    {
        if (!isAdult)
        {
            // Turn child
            transform.localScale = new Vector3(0.3f, 0.3f, 1f);
            moveSpeed            = 0;
            bornDuration         = 6f;
        }
        // Find center and warehouse
        CenterEntity[] centers = (CenterEntity[])FindObjectsOfType(typeof(CenterEntity));
        if (centers.Length > 0)
        {
            center = centers[0];
        }
        WarehouseEntity[] warehouses = (WarehouseEntity[])FindObjectsOfType(typeof(WarehouseEntity));
        if (warehouses.Length > 0)
        {
            warehouse = warehouses[0];
        }

        HouseBuilding[] houses = (HouseBuilding[])FindObjectsOfType(typeof(HouseBuilding));
        foreach (HouseBuilding hos in houses)
        {
            if (hos.full || !hos.blueprint.done)
            {
                continue;
            }
            if (hos.addAgent())
            {
                house = hos;
                break;
            }
        }

        // No house, add house request
        if (house == null)
        {
            Building building = new Building("Prefabs/Buildings/House", 100, 100, 3, 1);
            center.addNewBuildingRequest(building);
        }
    }
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }
        metrics = new Dictionary <string, int>();
        CenterEntity[] centers = (CenterEntity[])FindObjectsOfType(typeof(CenterEntity));
        if (centers.Length > 0)
        {
            center = centers[0];
        }

        WarehouseEntity[] warehouses = (WarehouseEntity[])FindObjectsOfType(typeof(WarehouseEntity));
        if (warehouses.Length > 0)
        {
            warehouse = warehouses[0];
        }
    }
예제 #9
0
 public override void reset()
 {
     isChecked    = false;
     targetCenter = null;
     startTime    = 0;
 }