Example #1
0
    public static void newHoldPoint(GameObject obj)
    {
        Vector2 originalVectorPosition = FieldContainer.GetFieldElementByGameObject(obj).Coordinate;
        Vector2 newVectorPosition      = FieldContainer.GetFieldElementByGameObject(obj).Coordinate;
        float   distance  = Vector2.Distance(FieldContainer.GetFieldElementByGameObject(obj).Coordinate, (Vector2)obj.transform.localPosition);
        bool    isChanged = false;

        foreach (FieldElement field in FieldContainer.GetCollection())
        {
            if (field.isFree)
            {
                float tempDistance = Vector2.Distance(field.Coordinate, (Vector2)obj.transform.localPosition);

                if (tempDistance <= distance)
                {
                    newVectorPosition = field.Coordinate;
                    isChanged         = true;
                }
            }
        }
        FieldContainer.SetNewCoordinates(obj, newVectorPosition);

        if (isChanged)
        {
            FieldContainer.GetFreeFieldElement().Coordinate = originalVectorPosition;
        }
    }
Example #2
0
 public static bool HasXRowFreeField(float xValue)
 {
     foreach (FieldElement field in FieldContainer.GetCollection())
     {
         if (field.Coordinate.x == xValue && field.isFree)
         {
             //Debug.Log(field.Coordinate + "\n" + xValue);
             return(true);
         }
     }
     return(false);
 }
Example #3
0
    public static Vector3 GetObjectPosition(GameObject obj)
    {
        Vector3 vect = new Vector3();

        foreach (FieldElement field in FieldContainer.GetCollection())
        {
            if (field.fieldObject != null && obj.GetInstanceID() == field.fieldObject.GetInstanceID())
            {
                vect = field.Coordinate;
            }
        }
        vect.z = FieldContainer.zValue;
        return(vect);
    }
Example #4
0
    public static List <FieldElement> GetOsculantObjects(Vector2 vect, bool onAxisX, bool onAxisY) //TODO
    {
        List <FieldElement> newList = new List <FieldElement>();

        Vector2 freeFieldPosition = new Vector2();

        foreach (FieldElement field in FieldContainer.GetCollection())
        {
            if (field.isFree)
            {
                freeFieldPosition = field.Coordinate;
            }
        }
        foreach (FieldElement field in FieldContainer.GetCollection())
        {
            if (field.Coordinate != vect && onAxisX)
            {
                if (!field.isFree && vect.x == field.Coordinate.x && field.Coordinate.x == freeFieldPosition.x)
                {
                    if ((vect.y > field.Coordinate.y && field.Coordinate.y > freeFieldPosition.y) || (vect.y < field.Coordinate.y && field.Coordinate.y < freeFieldPosition.y))
                    {
                        newList.Add(field);
                    }
                }
            }
            if (field.Coordinate != vect && onAxisY)
            {
                if (!field.isFree && vect.y == field.Coordinate.y && field.Coordinate.y == freeFieldPosition.y)
                {
                    if ((vect.x > field.Coordinate.x && field.Coordinate.x > freeFieldPosition.x) || (vect.x < field.Coordinate.x && field.Coordinate.x < freeFieldPosition.x))
                    {
                        newList.Add(field);
                    }
                }
            }
        }

        return(newList);
    }
Example #5
0
    public static void SetNewCoordinates(GameObject obj, Vector2 newValues)
    {
        FieldElement tempField = FieldContainer.GetCollection().Find(x => x.fieldObject == obj);

        tempField.Coordinate = newValues;
    }
Example #6
0
    public static FieldElement GetFreeFieldElement()
    {
        FieldElement tempField = FieldContainer.GetCollection().Find(x => x.isFree == true);

        return(tempField);
    }
Example #7
0
    public static FieldElement GetFieldElementByGameObject(GameObject obj)
    {
        FieldElement tempField = FieldContainer.GetCollection().Find(x => x.fieldObject == obj);

        return(tempField);
    }