예제 #1
0
 public bool Construct(IBuildable buildable)
 {
     if (CanBuild(buildable.GridPosition, buildable.BuildSize))
     {
         for (int i = 0; i < bufferBuildCoordinates.Count; i++)
         {
             Coordinate    coor      = bufferBuildCoordinates [i];
             BuildGridNode buildNode = Grid [coor.x, coor.y];
             buildNode.RegisteredBuilding = buildable;
         }
         return(true);
     }
     return(false);
 }
 public IEnumerable <IBuildable> GetOccupyingBuildables(IBuildable buildable)
 {
     if (!CanBuild(buildable.GridPosition, buildable.BuildSize))
     {
         for (int i = 0; i < bufferBuildCoordinates.Count; i++)
         {
             Coordinate    coor      = bufferBuildCoordinates[i];
             BuildGridNode buildNode = Grid[coor.x, coor.y];
             if (buildNode.Occupied)
             {
                 yield return(buildNode.RegisteredBuilding);
             }
         }
     }
 }
    public void Unbuild(IBuildable buildable)
    {
        if (TryGetBuildCoordinates(buildable.GridPosition, buildable.BuildSize, bufferBuildCoordinates))
        {
            for (int i = 0; i < bufferBuildCoordinates.Count; i++)
            {
                Coordinate    coor      = bufferBuildCoordinates [i];
                BuildGridNode buildNode = Grid [coor.x, coor.y];

                /*
                 * if (buildNode.Occupied == false)
                 * Debug.Log("Not built");*/
                buildNode.RegisteredBuilding = null;
            }
        }
        else
        {
            throw new System.Exception("Specified area to unbuild is invalid");
        }
    }
예제 #4
0
 public void Unbuild(Coordinate position, int size)
 {
     if (TryGetBuildCoordinates(position, size, bufferBuildCoordinates))
     {
         for (int i = 0; i < bufferBuildCoordinates.Count; i++)
         {
             Coordinate    coor      = bufferBuildCoordinates [i];
             BuildGridNode buildNode = Grid [coor.x, coor.y];
             if (buildNode.Occupied == false)
             {
                 Debug.Log("Not built");
             }
             buildNode.Occupied = false;
         }
     }
     else
     {
         throw new System.Exception("Specified area to unbuild is invalid");
     }
 }