コード例 #1
0
 public static GamePosition ToGame(this PlaceMarker marker, int userNumber)
 {
     return(new GamePosition(marker.X, marker.Y)
     {
         Value = userNumber
     });
 }
コード例 #2
0
    public void OnClick(RaycastHit hit, Transform t)
    {
        IInteract inter = i.GetHolding();

        if (inter != null)
        {
            PlaceMarker m = null;

            if (gameObject.CompareTag("PShelf"))
            {
                m = i.ClosestMarker(pMarkers.ToArray(), hit.point);
            }
            else
            {
                m = i.ClosestMarker(markers, hit.point);
            }

            if (!m.GetOccupation())
            {
                if (inter.GetObject().CompareTag("Food"))
                {
                    PutFoodDown(inter.GetObject());
                }

                i.OnPutDown(m, null, false);
            }
        }
    }
コード例 #3
0
        public static List <PlaceMarker> GetPlacemarker(string lattitude, string longitude)
        {
            List <PlaceMarker> markers = new List <PlaceMarker>();

            PlaceMarker marker = new PlaceMarker
            {
                Description       = "Awesome monument",
                Name              = "Awesome monument",
                PlaceMarkerId     = 1,
                PlaceMarkerTypeID = 1
            };

            PlaceMarker marker2 = new PlaceMarker
            {
                Description       = "Awesome place",
                Name              = "Awesome place",
                PlaceMarkerId     = 1,
                PlaceMarkerTypeID = 1
            };

            markers.Add(marker);
            markers.Add(marker2);

            return(markers);
        }
コード例 #4
0
 void Start()
 {
     marker       = GetComponentInChildren <PlaceMarker>();
     interact     = FindObjectOfType <Interact>();
     hinge        = transform.Find("Hinge");
     lid          = transform.Find("Lid");
     audioManager = FindObjectOfType <AudioManager>();
 }
コード例 #5
0
 public TicTacToeLogic(PlaceMarker xMarker, PlaceMarker oMarker, EndGame endGame)
 {
     placeXMarker = xMarker;
     placeOMarker = oMarker;
     placeXNext = true;
     boardState = new string[3,3];
     endGameListener = endGame;
     gameOver = false;
 }
コード例 #6
0
 public void OnPutDown(PlaceMarker toPos, Transform t, bool cook) //when the player places an object down
 {
     if (!isMoving)
     {
         GetHolding().GetObject().transform.parent = null;
         physics = GetHolding().GetObject().GetComponent <IPhysics>();
         physics.SetMarker(toPos);
         StartCoroutine(MoveAndRotate(GetHolding().GetObject().transform, toPos.transform.position, .2f, cook));
         StartCoroutine(WaitForFinish(physics, t, .21f));
         toPos.SetOccupation(true);
         SetUI(3, "");
     }
 }
コード例 #7
0
    public PlaceMarker GetMarker(GameObject obj)
    {
        PlaceMarker m = obj.GetComponentInChildren <PlaceMarker>();

        if (m != null)
        {
            if (!m.GetOccupation())
            {
                return(m);
            }
        }
        return(null);
    }
コード例 #8
0
    bool CheckEmptyMarker(Vector3 pos)
    {
        foreach (PlaceMarker p in markers)
        {
            if (!p.GetOccupation())
            {
                return(true);
            }
        }
        PlaceMarker pl = i.ClosestMarker(markers, pos);

        if (!pl.GetOccupation())
        {
            return(true);
        }
        return(false);
    }
コード例 #9
0
 public virtual void Start()
 {
     i        = FindObjectOfType <Interact>();
     au       = FindObjectOfType <AudioManager>();
     menu     = FindObjectOfType <Menu>();
     manager  = FindObjectOfType <GameManager>();
     foodTime = (int)menu.GetItemTime(GetName());
     canvas   = transform.Find("Canvas").GetComponent <Canvas>();
     cookBar  = canvas.transform.Find("CookBar").GetComponent <Image>();
     if (canvas.gameObject.activeInHierarchy)
     {
         canvas.gameObject.SetActive(false);
     }
     thisMarker  = GetComponentInChildren <PlaceMarker>();
     defaultDrag = 600;
     stack       = 1;
 }
コード例 #10
0
    public double EndOfDayRestock(bool clean)
    {
        double cleanCost = UnityEngine.Random.Range(0.45f, .51f);

        Move_S[]     allS    = FindObjectsOfType <Move_S>();
        Food_O[]     allFood = FindObjectsOfType <Food_O>();
        GameObject[] allDeb  = GameObject.FindGameObjectsWithTag("debris");
        if (clean)
        {
            foreach (Food_O f in allFood)
            {
                Destroy(f.gameObject);
            }
            foreach (Move_S surface in allS)
            {
                if (surface.GetMarker() != null)
                {
                    surface.GetMarker().SetOccupation(false);
                }
                Destroy(surface.gameObject);
            }

            GameObject[]  allMObjs   = GameObject.FindGameObjectsWithTag("Marker");
            PlaceMarker[] allMarkers = new PlaceMarker[allMObjs.Length];
            for (int i = 0; i < allMarkers.Length; i++)
            {
                allMarkers[i] = allMObjs[i].GetComponent <PlaceMarker>();
            }

            foreach (PlaceMarker s in allMarkers)
            {
                s.SpwanObject();
            }
            if (allDeb != null)
            {
                foreach (GameObject g in allDeb)
                {
                    Destroy(g);
                }
            }
            cleanCost += dropCount * .2;
            dropCount  = 0;
        }
        return(cleanCost);
    }
コード例 #11
0
ファイル: Cooker.cs プロジェクト: joshuadenton5/CookingDemo
 public void OnClick(RaycastHit hit, Transform t)
 {
     if (CheckForFood())
     {
         PlaceMarker m = i.AnyMarker(markers.ToList(), hit.point);
         if (!m.GetOccupation())
         {
             GameObject obj  = i.GetHolding().GetObject();
             Food_O     food = obj.GetComponent <Food_O>();
             if (!food.HasChild() && CheckScene())
             {
                 StartCoroutine(WaitToCook(food));
                 i.OnPutDown(m, null, true);
                 obj.transform.rotation = Quaternion.identity;
             }
         }
     }
 }
コード例 #12
0
    public void OnClick(RaycastHit hit, Transform t)
    {
        IInteract obj = i.GetHolding();

        if (obj != null)
        {
            if (obj.GetObject().CompareTag("Plate") && ticket != null)
            {
                PlaceMarker m = i.ClosestMarker(markers, hit.point);
                if (!m.GetOccupation())
                {
                    SendMeal();
                    SetTicket(null);
                    i.OnPutDown(m, null, true);
                }
            }
        }
    }
コード例 #13
0
    void PutFoodOnFood(GameObject obj) //when food is in hand and want to place on other food.
    {
        Food_O[] food = obj.GetComponentsInChildren <Food_O>();
        Food_O   last = food[food.Length - 1];   //getting the last in the stack, may only be the one

        if (last.stack + stack <= 7 && !inStack) //may change stack limit
        {
            PlaceMarker m = i.GetMarker(gameObject);
            if (m != null)
            {
                for (int i = 0; i < food.Length; i++)
                {
                    food[i].ChangeDrag(food[i].defaultDrag); //restting the drag and stack varibales
                    if (food[i] != obj.GetComponent <Food_O>())
                    {
                        food[i].stack = food[i - 1].stack + 1;
                    }
                    else
                    {
                        food[i].stack = stack + 1;
                    }
                }
                if (GetParents() != null)
                {
                    Food_O bottom = GetParents()[GetParents().Length - 1];//getting item at the bottom of the stack
                    foreach (Food_O f in food)
                    {
                        bottom.foodStack.Add(f); //reordering the stack
                        f.firstOnStack = bottom;
                    }
                }
                Move_S move = m.GetComponentInParent <Move_S>(); //checing if the placemarker belongs to a plate/board/tray
                if (move != null)
                {
                    for (int i = 0; i < food.Length; i++)
                    {
                        food[i].SetOnSurface(true);
                        move.ListOfFood().Add(food[i]); //adding food to the surface accordingly
                    }
                }
                i.OnPutDown(m, transform, false);
            }
        }
    }
コード例 #14
0
    public PlaceMarker ClosestMarker(PlaceMarker[] t, Vector3 pos) //function to find closest marker to where ray hit
    {
        PlaceMarker  closest     = null;
        float        minDistance = float.MaxValue;
        List <float> distances   = new List <float>();

        for (int i = 0; i < t.Length; i++)
        {
            float distance = Vector3.Distance(pos, t[i].transform.position);
            distances.Add(distance);
            distances[i] = distance;
            if (distances[i] < minDistance)
            {
                minDistance = distances[i];
                closest     = t[i];
            }
        }
        return(closest);
    }
コード例 #15
0
    void PutFoodOn(RaycastHit hit, GameObject food) //putting food on
    {
        PlaceMarker a = interact.AnyMarker(MarkerList(), hit.point);

        if (a != null)
        {
            Food_O[] foods = food.GetComponentsInChildren <Food_O>();
            if (foods != null) //checking how many objects
            {
                int i = 1;
                foreach (Food_O f in foods)
                {
                    ListOfFood().Add(f); //setting the food varibales
                    f.SetOnSurface(true);
                    f.ChangeDrag(f.defaultDrag);
                    f.stack = i;
                    i++;
                }
            }
            interact.OnPutDown(a, transform, false);
        }
    }
コード例 #16
0
 public PlaceMarker AnyMarker(List <PlaceMarker> markers, Vector3 pos) //fucntion to find any free placemarker
 {
     if (markers.Count > 0)
     {
         PlaceMarker  closest     = null;
         float        minDistance = float.MaxValue;
         List <float> distances   = new List <float>();
         for (int i = 0; i < markers.Count; i++)
         {
             float distance = Vector3.Distance(pos, markers[i].transform.position);
             distances.Add(distance);
             distances[i] = distance;
             if (distances[i] < minDistance)
             {
                 minDistance = distances[i];
                 closest     = markers[i];
             }
         }
         markers.Remove(closest);
         return(closest);
     }
     return(null);
 }
コード例 #17
0
 public void SetMarker(PlaceMarker m)
 {
     marker = m;
 }