示例#1
0
 public void ModifyWorldData(int x, int z, int y, Tile.ID id)
 {
     if (x < worldData.GetWidth() && z < worldData.GetLength() && y < worldData.GetHeight() && x >= 0 && z >= 0 && y >= 0)
     {
         worldData.SetData(x, z, y, id);
         WorldObjectManager.ReplaceObject(worldObjects, x, z, y, id);
     }
 }
示例#2
0
 public void Init(WorldObjectContainer worldObjectContainer, Tile.ID id, int x, int z, int y)
 {
     this.worldObjectContainer = worldObjectContainer;
     this.id = id;
     this.x  = x;
     this.z  = z;
     this.y  = y;
 }
示例#3
0
    public static bool IsBlock(Tile.ID id)
    {
        switch (id)
        {
        case ID.BlockGrass:
        case ID.BlockDirt:
        case ID.BlockBrick:

            return(true);

        default: return(false);
        }
    }
    private void CheckSelectObject()
    {
        // Middle click to select Tile.ID for placement
        if (Input.GetMouseButton(2))
        {
            Tile.ID newId = worldController.GetWorldDataContainer().GetData((int)gridPosition.x, (int)gridPosition.z, placeHeight);

            if (newId != Tile.ID.Empty && newId != Tile.ID.EmptyButBlocked)
            {
                idToPlace = newId;
            }
        }
    }
示例#5
0
    public static void InstantiateObject(int x, int z, int y, Tile.ID id, WorldObjectContainer worldObjects)
    {
        GameObject obj = WorldObjectFactory.Instantiate(x, z, y, id);

        if (obj == null)
        {
            return;
        }

        ObjectData objData = obj.AddComponent <ObjectData>();

        objData.Init(worldObjects, id, x, z, y);
        worldObjects.SetObject(x, z, y, obj);
        obj.transform.SetParent(worldObjects.GetParent());
    }
    public Tile.ID[,] GetNeighbors(int x, int z, int y)
    {
        Tile.ID[,] neighbors = new Tile.ID[3, 3];

        for (int ix = 0; ix <= 2; ix++)
        {
            for (int iz = 0; iz <= 2; iz++)
            {
                if (ix + x - 1 >= 0 && iz + z - 1 >= 0 && ix + x - 1 < GetWidth() && iz + z - 1 < GetLength())
                {
                    neighbors[ix, iz] = worldData[ix + x - 1, iz + z - 1, y];
                }
            }
        }

        return(neighbors);
    }
示例#7
0
    public static GameObject Instantiate(int x, int z, int y, Tile.ID id)
    {
        GameObject obj;

        switch (id)
        {
        case (Tile.ID.Empty): return(null);

        case (Tile.ID.EmptyButBlocked): return(null);

        case (Tile.ID.BlockGrass):
            obj = InstantiateGameObject(Resource.pfb["Block"], x, z, y, 0, id);
            obj.GetComponent <Block>().Init(Resource.mat["Grass"], Resource.mat["Dirt"], true);
            return(obj);

        case (Tile.ID.BlockDirt):
            obj = InstantiateGameObject(Resource.pfb["Block"], x, z, y, 0, id);
            obj.GetComponent <Block>().Init(Resource.mat["Dirt"], Resource.mat["Dirt"], true);
            return(obj);

        case (Tile.ID.BlockBrick):
            obj = InstantiateGameObject(Resource.pfb["Block"], x, z, y, 0, id);
            obj.GetComponent <Block>().Init(Resource.mat["Brick"], Resource.mat["Brick"], false);
            return(obj);

        case (Tile.ID.Tree):
            obj = InstantiateGameObject(Resource.pfb["Tree"], x, z, y, 0, id);
            return(obj);

        case (Tile.ID.Grass):
            obj = InstantiateGameObject(Resource.pfb["Grass"], x, z, y, 0, id);
            return(obj);

        default: return(null);
        }
    }
示例#8
0
 private static GameObject InstantiateGameObject(GameObject prefab, int x, int z, int y, float r, Tile.ID id)
 {
     return(GameObject.Instantiate(prefab, new Vector3(x, y * 0.5f, z), Quaternion.Euler(0, r, 0)) as GameObject);
 }
 public void SetData(int x, int z, int y, Tile.ID id)
 {
     worldData[x, z, y] = id;
 }
示例#10
0
    public static void ReplaceObject(WorldObjectContainer worldObjects, int x, int z, int y, Tile.ID id)
    {
        // TODO: Check ID of object to see if it is the same, if so, do nothing.

        DestroyObject(worldObjects, x, z, y);
        InstantiateObject(x, z, y, id, worldObjects);
    }