Exemplo n.º 1
0
 public void AddPattern(PatternInfo p)
 {
     //create new random colour for this pattern
     colours.Add(RandomColour());
     SetPosition(p);
     points.Add(RaycastOnMap(CalculatePoints(p)));
 }
Exemplo n.º 2
0
 private void SetPosition(PatternInfo p)
 {
     if (map != null)
     {
         //place this transform into correct position, dictated by pattern
         transform.position = map.TransformDirection(p.relativePosition);
         //transform.rotation = p.rotation * transform.rotation;
     }
 }
Exemplo n.º 3
0
        //set values in creator to passed in patternInfo, used in Edit
        public void SetInfo(PatternInfo info)
        {
            transform.position = info.relativePosition;
            //transform.rotation = info.rotation;

            amountOfPoints = info.fillerAmount;
            radius         = info.radius;
            angleOffset    = info.angleOffset;
            spawnShape     = info.shape;

            Configure();
        }
Exemplo n.º 4
0
        //returns patternInfo based upon current values in creator
        public PatternInfo CreateInfo()
        {
            PatternInfo temp = new PatternInfo();

            //set to relative position from map
            temp.relativePosition = map.InverseTransformDirection(transform.position);
            //temp.rotation = transform.rotation;
            temp.fillerAmount   = amountOfPoints;
            temp.radius         = radius;
            temp.angleOffset    = angleOffset;
            temp.viewPercentage = percentage;
            temp.shape          = currentShape;
            temp.towardsCenter  = towardsCenter;

            return(temp);
        }
Exemplo n.º 5
0
    //takes in patterInfo and calls all relevant shape calls
    public static Vector3[] CreatePattern(PatternCreator.PatternInfo p)
    {
        switch (p.shape)
        {
        case SpawnShape.CIRCLE:
            return(Shapes.Circle(p.radius, p.angleOffset, p.circlePoints));

        case SpawnShape.STAR:
            return(Shapes.Star(p.radius, p.radiusSecond, p.fillerAmount));

        case SpawnShape.X:
            return(Shapes.Cross(p.radius, p.angleOffset, p.fillerAmount));

        case SpawnShape.CheckMark:
            return(Shapes.CheckMark(p.radius, p.radiusSecond, p.angleOffset, p.fillerAmount));

        default:
            return(Shapes.Simple(p.shape, p.radius, p.angleOffset, p.fillerAmount));
        }
    }
Exemplo n.º 6
0
        private Vector3[] CalculatePoints(PatternInfo p)
        {
            Vector3 mapXZ = map.transform.position;

            mapXZ.y            = transform.position.y;
            transform.rotation = Quaternion.FromToRotation(transform.forward, mapXZ - transform.position) * transform.rotation;
            transform.rotation = Quaternion.FromToRotation(transform.forward, map.position - transform.position) * transform.rotation;
            //store/update the rotation...
            currentInfo.rotation = transform.up;

            //calculate points for each pattern info
            List <Vector3> list = new List <Vector3>(PatternHelper.CreatePattern(p));

            //setup rotation
            Vector3    spawnAxis = Quaternion.AngleAxis(p.angleOffset, map.position - transform.position) * transform.up;
            Quaternion rot       = Quaternion.LookRotation(map.position - transform.position, spawnAxis);

            //apply rotation to points
            for (int i = 0; i < list.Count; i++)
            {
                list[i] = rot * list[i];
            }
            //reset rotation of transform
            transform.rotation = Quaternion.identity;
            int numberToHide = Mathf.RoundToInt(list.Count * (1 - (p.viewPercentage * 0.01f)));

            if (numberToHide > 0)
            {
                for (int i = 0; i < numberToHide; i++)
                {
                    list.RemoveAt(list.Count - 1);
                }
            }

            return(list.ToArray());
        }
Exemplo n.º 7
0
 public void SetSelection(PatternInfo p, int index)
 {
     currentSelection = index;
     currentInfo      = p;
 }
 public void AddPatternInfo(PatternInfo p)
 {
     values = ArrayEX.Grow(values, values.Length + 1, p);
 }