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); } }
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; }
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; } } }
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); }
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); } }
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; }
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); }