public void GetSelectedUIBuilding3D(Vector3 position)
 {
     CurrentSelectedBuilding = buildingSlotSelectionInstance.GetSelectedSlotByInstantiate(poolsystemInstance, position);
     if (CurrentSelectedBuilding != null)
     {
         CurrentSelectedBuilding.SetSelectedBuilding(true);
     }
 }
 void OnMouseDown(RaycastHit hit)
 {
     if (hit.transform != null)
     {
         if ((1 << hit.transform.gameObject.layer & groundMask) > 0)
         {
             if (CurrentSelectedBuilding == null)
             {
                 if (buildingSlotSelectionInstance.IsAnySlotSelected)
                 {
                     Vector3 gridPos = gridSystemInstance.GetGroundHitPosition(hit.point);
                     Debug.Log(gridPos);
                     GetSelectedUIBuilding3D(gridPos);
                     CheckIsValidPosition(gridPos, MOUSECLICKTYPE.MOUSEDOWN);
                 }
             }
             else
             {
                 CurrentSelectedBuilding.SetBuildingDeSelected(poolsystemInstance);
                 CurrentSelectedBuilding = null;
             }
         }
         else if ((1 << hit.transform.gameObject.layer & buildigMask) > 0)
         {
             if (CurrentSelectedBuilding == null)
             {
                 CurrentSelectedBuilding = GetComponentByTransform <Building3DInfo>(hit.transform);
                 CheckIsValidPosition(hit.point, MOUSECLICKTYPE.MOUSEDOWN);
             }
             else
             {
                 CurrentSelectedBuilding.SetBuildingDeSelected(poolsystemInstance);
                 CurrentSelectedBuilding = null;
             }
         }
         else
         {
             if (CurrentSelectedBuilding != null)
             {
                 CurrentSelectedBuilding.SetBuildingDeSelected(poolsystemInstance);
                 CurrentSelectedBuilding = null;
             }
         }
     }
     else
     {
         if (CurrentSelectedBuilding != null)
         {
             CurrentSelectedBuilding.SetBuildingDeSelected(poolsystemInstance);
             CurrentSelectedBuilding = null;
         }
         else
         {
             GetSelectedUIBuilding3D(Input.mousePosition);
         }
     }
 }
    public Building3DInfo GetSelectedSlotByInstantiate(PoolSystemManager pool, Vector3 Position)
    {
        Building3DInfo info = null;

        if (currentSelectedSlot != null)
        {
            info = currentSelectedSlot.InstantiatePrefab(pool, Position);
            currentSelectedSlot = null;
        }
        return(info);
    }
 public Building3DInfo InstantiatePrefab(PoolSystemManager pool, Vector3 position)
 {
     this3DBuildinginfo = pool.GetUnusedBuilding(buildingDimention);
     if (this3DBuildinginfo == null)
     {
         GameObject obj = GameObject.Instantiate(prefab) as GameObject;
         obj.transform.parent = pool.transform;
         this3DBuildinginfo   = obj.GetComponent <Building3DInfo> ();
     }
     this3DBuildinginfo.SetBuildingStateSelected(position, null, MOUSECLICKTYPE.NONE);
     this3DBuildinginfo.SetColor(UIColor);
     return(this3DBuildinginfo);
 }
    public Building3DInfo GetUnusedBuilding(BUILDING_DIMENSION dimension)
    {
        Building3DInfo building = null;

        foreach (Building3DInfo info in unusedBuildingList)
        {
            if (info.info.buildingType == dimension)
            {
                building = info;
                break;
            }
        }
        if (building != null)
        {
            unusedBuildingList.Remove(building);
        }
        return(building);
    }
    public Building3DInfo GetUnusedBuilding(Vector2 size)
    {
        Building3DInfo building = null;

        foreach (Building3DInfo info in unusedBuildingList)
        {
            if (info.info.gridSize.x == size.x && info.info.gridSize.y == size.y)
            {
                building = info;
                break;
            }
        }
        if (building != null)
        {
            unusedBuildingList.Remove(building);
        }
        return(building);
    }
 void OnMouseUp(RaycastHit hit)
 {
     if (hit.transform != null)
     {
         if ((1 << hit.transform.gameObject.layer & groundMask) > 0)
         {
             if (CurrentSelectedBuilding != null)
             {
                 CheckIsValidPosition(hit.point, MOUSECLICKTYPE.MOUSEUP);
                 CurrentSelectedBuilding.SetBuildingDeSelected(poolsystemInstance);
                 CurrentSelectedBuilding = null;
             }
         }
         else if ((1 << hit.transform.gameObject.layer & buildigMask) > 0)
         {
             if (CurrentSelectedBuilding != null)
             {
                 CheckIsValidPosition(hit.point, MOUSECLICKTYPE.MOUSEUP);
                 CurrentSelectedBuilding.SetBuildingDeSelected(poolsystemInstance);
                 CurrentSelectedBuilding = null;
             }
         }
         else
         {
             if (CurrentSelectedBuilding != null)
             {
                 CurrentSelectedBuilding.SetBuildingDeSelected(poolsystemInstance);
                 CurrentSelectedBuilding = null;
             }
         }
     }
     else
     {
         if (CurrentSelectedBuilding != null)
         {
             CurrentSelectedBuilding.SetBuildingDeSelected(poolsystemInstance);
             CurrentSelectedBuilding = null;
         }
     }
 }
 public void SetUnUsedBuildings(Building3DInfo building)
 {
     unusedBuildingList.Add(building);
 }
Esempio n. 9
0
 public bool IsBuildingisSame(this Building3DInfo info)
 {
     return(this == info);
 }
 public void SetSelectedBuilding(Building3DInfo currentSelected)
 {
     CurrentSelectedBuilding = currentSelected;
 }