public void Build(ItemShop item, GuiBuyBuilding BuyGui)
    {
        this.BuyGui = BuyGui;
        if (BuildObjectPlacingToGrid == null)
        {
            BuildObjectPlacingToGrid = BuildingSkeleton;
            BuildObjectSprite = TMPsprite;
            BuildObjectPlacingToGrid.ReloadNormal();

        }
        shopitem = item;
        Debug.Log("BUILDER: " + item.DefaultGroup.name);

        Vector3 Position = Camera.main.ScreenToWorldPoint( new Vector3(Camera.main.transform.position.x + Screen.width / 2 ,
                                       Camera.main.transform.position.y + Screen.height / 2,
                                       0));
        Position.z = 0;

           // Building build = item.DefaultGroup.AddBuild(Position);

        GridElement element =  Grid.DetechTouchPositionOnGrid(Position);
           // PlacingToGrid placetogrid = build.GetComponent<PlacingToGrid>();

           // placetogrid.Col = element.getCol();
           // placetogrid.Row = element.getRow();

        BuildObjectSprite.sprite = item.Sprite.sprite;
        BuildObjectSprite.gameObject.SetActive(true);
        BuildObjectSprite.transform.localScale = item.transform.localScale;

        BuildObjectPlacingToGrid.Col_size = item.GetPlacingToGrid().Col_size;
        BuildObjectPlacingToGrid.Row_size = item.GetPlacingToGrid().Row_size;

        BuildObjectPlacingToGrid.setNormalSpace_x( item.GetPlacingToGrid().getNormalSpace_x());
        BuildObjectPlacingToGrid.setNormalSpace_y( item.GetPlacingToGrid().getNormalSpace_y());

        BuildObjectPlacingToGrid.setMirrorSpace_x(item.GetPlacingToGrid().getMirrorSpace_x());
        BuildObjectPlacingToGrid.setMirrorSpace_y(item.GetPlacingToGrid().getMirrorSpace_y());

        BuildObjectPlacingToGrid.Col = element.getCol();
        BuildObjectPlacingToGrid.Row = element.getRow();

        BuildObjectPlacingToGrid.ReloadNormal();

        BoxCollider2D boxcollider = item.GetComponent<BoxCollider2D>();

        Collider2D.size = new Vector2(boxcollider.size.x ,boxcollider.size.y);

        Grid.Place(BuildObjectPlacingToGrid);

        isBuild = true;
        BuildObjectPlacingToGrid.gameObject.SetActive(true);

        CheckGridCollision();

        FirstObjectPosition.Col = BuildObjectPlacingToGrid.Col;
        FirstObjectPosition.Row = BuildObjectPlacingToGrid.Row;
        FirstObjectPosition.scale = BuildObjectPlacingToGrid.scale;
    }
 public void setPrice(ItemShop item, GuiBuyBuilding BuyGui)
 {
     BuyGui.GoldText.text = BuyGui.Gold.get() + " / " + item.Gold;
     BuyGui.WoodText.text = BuyGui.Wood.get() + " / " + item.Wood;
     BuyGui.StoneText.text = BuyGui.Stone.get() + " / " + item.Stone;
     BuyGui.ObsydianText.text = BuyGui.ObsydianBrick.get() + " / " + item.ObsydianBrick;
     BuyGui.RecipeText.text = (int)item.Recipe.simpladata.Value + " / " + item.Recipe.Cost;
 }
    public bool DoAfford(ItemShopSlot slot , GuiBuyBuilding BuyGui)
    {
        bool ErrorFlag = false;

        ItemShop item = slot.ShopItem;
        setPrice(item, BuyGui);

        if (BuyGui.Wood.get() < item.Wood)
        {
            ErrorFlag = true;
            BuyGui.setColor(BuyGui.WoodText, BuyGui.ErrorResourceColor);
        }
        else BuyGui.setColor(BuyGui.WoodText, BuyGui.NormarResourceColor);

        if (BuyGui.Stone.get() < item.Stone)
        {
            ErrorFlag = true;
            BuyGui.setColor(BuyGui.StoneText, BuyGui.ErrorResourceColor);
        }
        else BuyGui.setColor(BuyGui.StoneText, BuyGui.NormarResourceColor);

        if (BuyGui.ObsydianBrick.get() < item.ObsydianBrick)
        {
            ErrorFlag = true;
            BuyGui.setColor(BuyGui.ObsydianText, BuyGui.ErrorResourceColor);
        }
        else BuyGui.setColor(BuyGui.ObsydianText, BuyGui.NormarResourceColor);

        if (item.Recipe.CheckAfford() == false)
        {
            ErrorFlag = true;
            BuyGui.setColor(BuyGui.RecipeText, BuyGui.ErrorResourceColor);
        }
        else BuyGui.setColor(BuyGui.RecipeText, BuyGui.NormarResourceColor);

        if (ErrorFlag == true) return false;
        else return true;
    }
 public void UnLock(GuiBuyBuilding BuyGui)
 {
     BuyGui.BuyButton.interactable = true;
     BuyGui.ErrorText.enabled = false;
 }
    public void CancleBuild()
    {
        if(isTransfered == false)BuildObjectPlacingToGrid.gameObject.SetActive(false);
        BuildObjectSprite.color = DefaultColor;

        BuildObjectPlacingToGrid.Col = FirstObjectPosition.Col;
        BuildObjectPlacingToGrid.Row = FirstObjectPosition.Row;
        BuildObjectPlacingToGrid.scale = FirstObjectPosition.scale;

        BuildObjectPlacingToGrid = null;
        isBuild = false;
        isTransfered = false;

        Controller.DisableDoubleTouch = false;
        BuyGui = null;
    }
    public void FinalizeBuild()
    {
        if(isTransfered == true)
        {
            BuildObjectSprite.color = DefaultColor;

        }
        else
        {
            Building build = shopitem.DefaultGroup.AddBuild(BuildObjectPlacingToGrid.transform.position);
            PlacingToGrid placetogrid = build.GetComponent<PlacingToGrid>();

            placetogrid.Col = BuildObjectPlacingToGrid.Col;
            placetogrid.Row = BuildObjectPlacingToGrid.Row;

            placetogrid.Col_size = BuildObjectPlacingToGrid.Col_size;
            placetogrid.Row_size = BuildObjectPlacingToGrid.Row_size;

            build.transform.localScale = new Vector3(BuildObjectPlacingToGrid.transform.localScale.x,
                                                     BuildObjectPlacingToGrid.transform.localScale.y,
                                                     build.transform.localScale.z);

            build.InConstruction.active = true;
            build.InConstruction.FirstInitialize();
            build.Initialize();
            build.Produce();

            BuildObjectSprite.gameObject.SetActive(false);
            placetogrid.scale = BuildObjectPlacingToGrid.scale;
        }

        BuildObjectSprite.color = DefaultColor;
        isBuild = false;
        isTransfered = false;

        BuildObjectPlacingToGrid = null;
        BuildingSkeleton.RelaseAll();
        Controller.DisableDoubleTouch = false;

        if(BuyGui != null) BuyGui.Finalize();
        BuyGui = null;
    }