Exemple #1
0
    public void OnEndDrag(PointerEventData eventData)
    {
        if (Thing.FixedPosition)
        {
            return;
        }

        RaycastHit2D raycastHit2D = Physics2D.Raycast(this.transform.position, this.transform.position + Vector3.forward * 10, 10f);

        if (raycastHit2D.collider != null)
        {
            if (Thing.GridBlock != null && Thing.GridBlock != raycastHit2D.collider.GetComponent <GridBlock>())
            {
                Thing.GridBlock.ListAddedThings.Remove(Thing);
            }

            Thing.Init(raycastHit2D.collider.GetComponent <GridBlock>());

            TryToApplyFigure();
        }
        else
        {
            TryToClearListAddedThings();

            OnReset();
        }
    }
    protected void AddedThingsFixed1x2Or2x1(List <DataIndex> dataIndices, ThingFull thingFull, int indexGridBlock)
    {
        //if (thingFull.TypeThing== TypeThing.Type1x2)
        //{
        //    thingFull.SetBack(IconManager.GetRandomSprite1x2());
        //}

        //if (thingFull.TypeThing==TypeThing.Type2x1)
        //{
        //    thingFull.SetBack(IconManager.GetRandomSprite2x1());
        //}

        thingFull.Init(gridBlocks[indexGridBlock]);

        Vector2 Center = Vector2.zero;

        for (int i = 0; i < dataIndices.Count; i++)
        {
            thingFull.GridBlock.gridCells[dataIndices[i].indexI, dataIndices[i].indexJ].SetOccupied(thingFull.thingCells[i]);

            thingFull.GridBlock.gridCells[dataIndices[i].indexI, dataIndices[i].indexJ].SetNonDelete();

            Center += thingFull.GridBlock
                      .gridCells[dataIndices[i].indexI, dataIndices[i].indexJ]
                      .Coordinates;
        }

        thingFull.SetFix();

        thingFull.transform.SetParent(thingFull.GridBlock.transform);

        thingFull.transform.localPosition = Center / dataIndices.Count;

        thingFull.transform.localScale = Vector3.one;
    }
    protected void AddedThingsFixed1x1(int indexI, int indexJ, ThingFull thingFull, int indexGridBlock)
    {
        //TODO
        //thingFull.SetBack(IconManager.GetRandomSprite1x1());

        thingFull.Init(gridBlocks[indexGridBlock]);

        thingFull.GridBlock.gridCells[indexI, indexJ].SetOccupied(thingFull.thingCells[0]);

        thingFull.GridBlock.gridCells[indexI, indexJ].SetNonDelete();

        thingFull.SetFix();

        thingFull.transform.SetParent(thingFull.GridBlock.transform);

        thingFull.transform.localPosition = thingFull.GridBlock
                                            .gridCells[indexI, indexJ]
                                            .Coordinates;

        thingFull.transform.localScale = Vector3.one;
    }