public void render_maze(tile[,] maze, Vector3 spawn) { resources = new Dictionary <string, GameObject>(); resources["wall"] = (Resources.Load("green_pink_wall") as GameObject); resources["floor"] = (Resources.Load("black_white_checkered_floor") as GameObject); resources["grass"] = (Resources.Load("grass_tile") as GameObject); resources["post"] = (Resources.Load("white_wall_post") as GameObject); resources["flamingo"] = (Resources.Load("flamingo") as GameObject); resources["column_tower"] = (Resources.Load("column_ladder_combo") as GameObject); resources["hedge"] = (Resources.Load("hedge") as GameObject); resources["key"] = (Resources.Load("key") as GameObject); resources["door"] = (Resources.Load("door") as GameObject); resources["door_frame"] = (Resources.Load("door_frame") as GameObject); resources["grass_blade"] = (Resources.Load("grass_blade") as GameObject); resources["butt_column"] = (Resources.Load("butt_column") as GameObject); player = (GameObject)Instantiate((Resources.Load("player_character") as GameObject), spawn, Quaternion.identity); player.transform.LookAt(new Vector3(2, 2, -2)); // enemy = (GameObject) Instantiate((Resources.Load("bust_column") as GameObject), new Vector3(20, 0, -20), Quaternion.identity); Debug.Log("begin render"); for (int z = 0; z < maze.GetLength(0); z++) { //assuming max z == max x (maze is a square) GameObject temp_north_wall = (GameObject)Instantiate(resources["wall"], new Vector3(offset + scale * z, wall_height, 0), Quaternion.identity); temp_north_wall.transform.Rotate(new Vector3(-90, 0, 0)); //north west pole GameObject temp_nw_post = (GameObject)Instantiate(resources["post"], new Vector3(scale * z, post_height, 0), Quaternion.identity); temp_nw_post.transform.Rotate(new Vector3(-90, 0, 0)); //north east pole GameObject temp_ne_post_1 = (GameObject)Instantiate(resources["post"], new Vector3(scale + scale * z, post_height, 0), Quaternion.identity); temp_ne_post_1.transform.Rotate(new Vector3(-90, 0, 0)); GameObject temp_west_wall = (GameObject)Instantiate(resources["wall"], new Vector3(0, wall_height, -offset + -scale * z), Quaternion.identity); temp_west_wall.transform.Rotate(new Vector3(-90, 90, 0)); //south west pole GameObject temp_sw_post_1 = (GameObject)Instantiate(resources["post"], new Vector3(0, post_height, -scale + -scale * z), Quaternion.identity); temp_sw_post_1.transform.Rotate(new Vector3(-90, 0, 0)); for (int x = 0; x < maze.GetLength(0); x++) { //Debug.Log("making tile at (" + x + "," + z + ")"); tile current = maze[z, x]; if (current.get_status() == tile.Status.maze) { if (current.get_type() == tile.Type.normal || current.get_type() == tile.Type.special) { GameObject temp_floor = (GameObject)Instantiate(resources["floor"], new Vector3(offset + scale * x, 0, -offset + -scale * z), Quaternion.identity); temp_floor.transform.Rotate(new Vector3(-90, 0, 0)); } else if (current.get_type() == tile.Type.alcove) { GameObject temp_floor = (GameObject)Instantiate(resources["grass"], new Vector3(offset + scale * x, 0, -offset + -scale * z), Quaternion.identity); temp_floor.transform.Rotate(new Vector3(-90, 0, 0)); } //else if (current.get_type() == tile.Type.special) //{ // GameObject temp_floor = (GameObject)Instantiate(resources["floor"], new Vector3(offset + scale * x, 0, -offset + -scale * z), Quaternion.identity); // temp_floor.transform.Rotate(new Vector3(-90, 0, 0)); //} } //check to see if we need to place something if (current.get_contains() != null) { GameObject thing = (GameObject)Instantiate(resources[current.get_contains()], new Vector3(offset + scale * x, 0, -offset + -scale * z), Quaternion.identity); if (current.get_contains() == "column_tower") { if (current.get_northwall() == tile.Wall.none) { thing.transform.Rotate(new Vector3(0, 90, 0)); } else if (current.get_eastwall() == tile.Wall.none) { thing.transform.Rotate(new Vector3(0, 180, 0)); } else if (current.get_southwall() == tile.Wall.none) { thing.transform.Rotate(new Vector3(0, 270, 0)); } } else if (current.get_contains() == "flamingo") { if (current.get_northwall() == tile.Wall.none || current.get_southwall() == tile.Wall.none) { thing.transform.Rotate(new Vector3(0, 90, 0)); } } else if (current.get_contains() == "butt_column") { if (current.get_eastwall() == tile.Wall.none) { thing.transform.Rotate(new Vector3(0, 90, 0)); } else if (current.get_southwall() == tile.Wall.none) { thing.transform.Rotate(new Vector3(0, 180, 0)); } else if (current.get_westwall() == tile.Wall.none) { thing.transform.Rotate(new Vector3(0, 270, 0)); } } else if (current.get_contains() == "key") { thing.SendMessage("set_number", 1); } } //east wall decision if (current.get_eastwall() != tile.Wall.none) { if (current.get_eastwall() == tile.Wall.wall) { GameObject temp_east_wall = (GameObject)Instantiate(resources["wall"], new Vector3(scale + scale * x, wall_height, -offset + -scale * z), Quaternion.identity); temp_east_wall.transform.Rotate(new Vector3(-90, 90, 0)); } else if (current.get_eastwall() == tile.Wall.door) { GameObject temp_east_door_frame = (GameObject)Instantiate(resources["door_frame"], new Vector3(scale + scale * x, 0, -offset + -scale * z), Quaternion.identity); temp_east_door_frame.transform.Rotate(new Vector3(-90, 0, 0)); GameObject temp_east_door = (GameObject)Instantiate(resources["door"], new Vector3(scale + scale * x, 0, -offset + -scale * z), Quaternion.identity); temp_east_door.transform.Rotate(new Vector3(0, 180, 0)); temp_east_door.SendMessage("set_number", 1); } if (current.get_northwall() != tile.Wall.wall) //north east pole { GameObject temp_ne_post = (GameObject)Instantiate(resources["post"], new Vector3(scale + scale * x, post_height, -scale * z), Quaternion.identity); temp_ne_post.transform.Rotate(new Vector3(-90, 0, 0)); } //south east pole GameObject temp_se_post = (GameObject)Instantiate(resources["post"], new Vector3(scale + scale * x, post_height, -scale + -scale * z), Quaternion.identity); temp_se_post.transform.Rotate(new Vector3(-90, 0, 0)); } //south wall decision if (current.get_southwall() != tile.Wall.none) { if (current.get_southwall() == tile.Wall.wall) { GameObject temp_south_wall = (GameObject)Instantiate(resources["wall"], new Vector3(offset + scale * x, wall_height, -scale + -scale * z), Quaternion.identity); temp_south_wall.transform.Rotate(new Vector3(-90, 0, 0)); } else if (current.get_southwall() == tile.Wall.door) { GameObject temp_south_door_frame = (GameObject)Instantiate(resources["door_frame"], new Vector3(offset + scale * x, 0, -scale + -scale * z), Quaternion.identity); temp_south_door_frame.transform.Rotate(new Vector3(-90, 90, 0)); GameObject temp_south_door = (GameObject)Instantiate(resources["door"], new Vector3(offset + scale * x, 0, -scale + -scale * z), Quaternion.identity); temp_south_door.transform.Rotate(new Vector3(0, 90, 0)); } //south west pole if (current.get_westwall() != tile.Wall.wall) { GameObject temp_sw_post = (GameObject)Instantiate(resources["post"], new Vector3(scale * x, post_height, -scale + -scale * z), Quaternion.identity); temp_sw_post.transform.Rotate(new Vector3(-90, 0, 0)); } //south east pole if (current.get_eastwall() != tile.Wall.wall) { GameObject temp_se_post = (GameObject)Instantiate(resources["post"], new Vector3(scale + scale * x, post_height, -scale + -scale * z), Quaternion.identity); temp_se_post.transform.Rotate(new Vector3(-90, 0, 0)); } } } } }