コード例 #1
0
        public Tower MakeTower()
        {
            var tower = new Tower()
            {
                Color       = Palette.Aqua,
                Floors      = 20,
                Perimeter   = Shaper.PolygonBox(60.0, 20.0),
                StoryHeight = 4.0
            };

            tower.Stack();
            var entry = new Room()
            {
                Height = 6.0
            };

            entry.SetPerimeter(new Vector3(30.0, -0.1), new Vector3(30.0, 6.0), 2.0);
            tower.Stories[0].AddCorridor(entry);
            var coreShaft = new Room()
            {
                Perimeter = Shaper.PolygonBox(5.0, 8.0, new Vector3(27.5, 6.0))
            };

            for (int i = 0; i < 2; i++)
            {
                tower.Stories[i].Color = Palette.Green;
                tower.SetStoryHeight(i, 6.0);
                tower.Stories[i].RoomsByDivision(4, 1, 5.5, 0.5, "Retail");
                tower.Stories[i].AddExclusion(coreShaft);
            }
            var corridor = new Room()
            {
                Height = 3.5
            };

            corridor.SetPerimeter(new Vector3(0.5, 10.0), new Vector3(59.5, 10), 2.0);
            for (int i = 2; i < tower.Stories.Count; i++)
            {
                tower.Stories[i].RoomsByDivision(4, 2, 3.5, 0.5, "Office");
                tower.Stories[i].AddCorridor(corridor);
                tower.Stories[i].AddExclusion(coreShaft);
            }
            tower.AddServiceCore(coreShaft.Perimeter, 0, 3.0, Palette.Granite);
            return(tower);
        }