Esempio n. 1
0
            public static Rectangle MakeRectangle(Rectangle rectanglePrefab, RectanglePreview preview)
            {
                Rectangle rectangle = Instantiate(rectanglePrefab);

                rectangle.Init(preview);
                return(rectangle);
            }
Esempio n. 2
0
            public static RectanglePreview MakePreview(RectanglePreview previewPrefab, Vector3 startPosition)
            {
                RectanglePreview preview = Instantiate(previewPrefab, startPosition, Quaternion.identity);

                preview.Init(startPosition);
                return(preview);
            }
Esempio n. 3
0
            void EndPreview(Vector2 touchPos)
            {
                // Invoke GoodPreview event if conditions met
                if (currentCooldown <= 0 && activePreview.Length >= minLength)
                {
                    OnGoodPreviewEnd?.Invoke(activePreview);
                    currentCooldown = cooldown;
                }

                previewPool.ReturnToPool(activePreview);
                activePreview = null;
            }
            /// <summary>
            /// Returns next available rectangle preview and sets it to active.
            /// Returns null if none can be sent .
            /// </summary>
            /// <returns>(Possibly) Rectangle preview fetched from pool.</returns>
            public RectanglePreview GetNextAvailable(Vector3 startPosition)
            {
                GameObject previewObject = pool.GetNextAvailable();

                if (previewObject)
                {
                    RectanglePreview previewScript = previewObject.GetComponent <RectanglePreview>();

                    if (previewScript)
                    {
                        previewScript.Init(startPosition);
                        return(previewScript);
                    }
                }

                return(null);
            }
Esempio n. 5
0
            /// <summary>
            /// Returns next available rectangle and sets it to active.
            /// Returns null if none can be sent .
            /// </summary>
            /// <returns>(Possibly) Rectangle fetched from pool.</returns>
            public Rectangle GetNextAvailable(RectanglePreview preview)
            {
                GameObject rectangleObject = pool.GetNextAvailable();

                if (rectangleObject)
                {
                    Rectangle rectangleScript = rectangleObject.GetComponent <Rectangle>();

                    if (rectangleScript)
                    {
                        rectangleScript.Init(preview);
                        return(rectangleScript);
                    }
                }

                return(null);
            }
Esempio n. 6
0
 void UpdateColor(RectanglePreview preview)
 {
     if (currentCooldown <= 0)
     {
         if (preview.Length < minLength)
         {
             preview.spriteRenderer.color = badPreviewColor;
         }
         else
         {
             preview.spriteRenderer.color = goodPreviewColor;
         }
     }
     else
     {
         preview.spriteRenderer.color = cooldownColor;
     }
 }
 /// <summary>
 /// Returns a requested rectangle preview to the pool.
 /// Will not take rectangle previews that weren't initially in the pool.
 /// </summary>
 /// <param name="gameObject">Object returned.</param>
 public virtual void ReturnToPool(RectanglePreview preview) => pool.ReturnToPool(preview.gameObject);
Esempio n. 8
0
 void StartPreview(Vector2 touchPos)
 {
     activePreview = previewPool.GetNextAvailable(MainCamera.ScreenToWorldPoint(touchPos));
     UpdateColor(activePreview);
 }
Esempio n. 9
0
 public void Init(RectanglePreview preview)
 {
     transform.position   = preview.transform.position;
     transform.rotation   = preview.transform.rotation;
     transform.localScale = preview.transform.localScale;
 }
Esempio n. 10
0
            public void MakeRectangle(RectanglePreview preview)
            {
                Rectangle rectangle = rectanglePool.GetNextAvailable(preview);

                StartCoroutine(ReturnRectangle(rectangle));
            }