h3d 1.0 # A large castle from Kenney's Castle Kit: a curtain wall twenty-one metres a side with eight towers, # a gatehouse, a keep of four towers, siege engines before the gate and a wood around it. # Every piece is a one metre tile with its origin at the bottom centre, so pieces meet on whole numbers. $keep = open "library:kenney/castle/tower-square-base" replace ## The curtain wall: north, south either side of the gate, west and east each x in -9..-1: add model "library:kenney/castle/wall" as "North wall" at {$x 0 -10} each x in 1..9: add model "library:kenney/castle/wall" as "North wall" at {$x 0 -10} each x in -9..-3: add model "library:kenney/castle/wall" as "South wall" at {$x 0 10} each x in 3..9: add model "library:kenney/castle/wall" as "South wall" at {$x 0 10} each z in -9..-1: add model "library:kenney/castle/wall" as "Side wall" at {-10 0 $z} each z in -9..-1: add model "library:kenney/castle/wall" as "Side wall" at {10 0 $z} each z in 1..9: add model "library:kenney/castle/wall" as "Side wall" at {-10 0 $z} each z in 1..9: add model "library:kenney/castle/wall" as "Side wall" at {10 0 $z} wait each w in models where name = "Side wall": turn $w 0 90 0 each w in models where name = "South wall": turn $w 0 180 0 ## Four corner towers, hexagonal: a base, three storeys and a roof each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-base" at {$x 0 -10} each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-mid" at {$x 1.31 -10} each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-mid" at {$x 1.77 -10} each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-mid" at {$x 2.23 -10} each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-roof" at {$x 2.69 -10} each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-base" at {$x 0 10} each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-mid" at {$x 1.31 10} each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-mid" at {$x 1.77 10} each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-mid" at {$x 2.23 10} each x in -10..10 step 20: add model "library:kenney/castle/tower-hexagon-roof" at {$x 2.69 10} ## Three square towers mid-wall, north, west and east add model "library:kenney/castle/tower-base" at 0 0 -10 add model "library:kenney/castle/tower-square-mid-windows" at 0 1.31 -10 add model "library:kenney/castle/tower-square-top-roof-high" at 0 2.32 -10 add model "library:kenney/castle/tower-base" at -10 0 0 add model "library:kenney/castle/tower-square-mid-windows" at -10 1.31 0 add model "library:kenney/castle/tower-square-top-roof-high" at -10 2.32 0 add model "library:kenney/castle/tower-base" at 10 0 0 add model "library:kenney/castle/tower-square-mid-windows" at 10 1.31 0 add model "library:kenney/castle/tower-square-top-roof-high" at 10 2.32 0 ## The gatehouse: two towers either side of the gate, and the gate between add model "library:kenney/castle/tower-square-base" at -2 0 10 add model "library:kenney/castle/tower-square-mid-windows" at -2 1.01 10 add model "library:kenney/castle/tower-square-top" at -2 2.02 10 add model "library:kenney/castle/tower-square-base" at -1 0 10 add model "library:kenney/castle/tower-square-mid-windows" at -1 1.01 10 add model "library:kenney/castle/tower-square-top" at -1 2.02 10 add model "library:kenney/castle/tower-square-base" at 1 0 10 add model "library:kenney/castle/tower-square-mid-windows" at 1 1.01 10 add model "library:kenney/castle/tower-square-top" at 1 2.02 10 add model "library:kenney/castle/tower-square-base" at 2 0 10 add model "library:kenney/castle/tower-square-mid-windows" at 2 1.01 10 add model "library:kenney/castle/tower-square-top" at 2 2.02 10 add model "library:kenney/castle/gate" as "Gate" at 0 0 10 add model "library:kenney/castle/tower-square-arch" at 0 1.01 10 add model "library:kenney/castle/tower-square-top" at 0 2.02 10 wait each g in models where name = "Gate": turn $g 0 90 0 ## The keep: four towers of three storeys on a base under pointed roofs, with banners add model "library:kenney/castle/tower-square-base" at 0.5 0 -0.5 add model "library:kenney/castle/tower-square-base" at -0.5 0 0.5 add model "library:kenney/castle/tower-square-base" at 0.5 0 0.5 each y in 1.01..3.03 step 1.01: add model "library:kenney/castle/tower-square-mid-windows" at {-0.5 $y -0.5} add model "library:kenney/castle/tower-square-top" at -0.5 4.04 -0.5 add model "library:kenney/castle/tower-square-roof" at -0.5 4.34 -0.5 each y in 1.01..3.03 step 1.01: add model "library:kenney/castle/tower-square-mid-windows" at {0.5 $y -0.5} add model "library:kenney/castle/tower-square-top" at 0.5 4.04 -0.5 add model "library:kenney/castle/tower-square-roof" at 0.5 4.34 -0.5 each y in 1.01..3.03 step 1.01: add model "library:kenney/castle/tower-square-mid-windows" at {-0.5 $y 0.5} add model "library:kenney/castle/tower-square-top" at -0.5 4.04 0.5 add model "library:kenney/castle/tower-square-roof" at -0.5 4.34 0.5 each y in 1.01..3.03 step 1.01: add model "library:kenney/castle/tower-square-mid-windows" at {0.5 $y 0.5} add model "library:kenney/castle/tower-square-top" at 0.5 4.04 0.5 add model "library:kenney/castle/tower-square-roof" at 0.5 4.34 0.5 add model "library:kenney/castle/flag-banner-long" at -0.5 1.2 1.02 add model "library:kenney/castle/flag-banner-long" at 0.5 1.2 1.02 each x in -10..10 step 20: add model "library:kenney/castle/flag-wide" at {$x 3.52 10} wait ## Before the gate: a trebuchet, two catapults, a ram and a siege tower add model "library:kenney/castle/siege-trebuchet" at -7 0 17 add model "library:kenney/castle/siege-catapult" at 6 0 15 add model "library:kenney/castle/siege-catapult" at 10 0 18 add model "library:kenney/castle/siege-ram" at 0 0 13.5 add model "library:kenney/castle/siege-tower" at -14 0 6 ## A wood around the walls, kept clear of them $tree = add model "library:kenney/castle/tree-large" at 0 0 -60 $small = add model "library:kenney/castle/tree-small" at 0 0 -60 $rocks = add model "library:kenney/castle/rocks-large" at 0 0 -60 wait scatter $tree count 140 size 80 20 at 0 0 -24 seed 3 turn 0 360 scale 1.4 2.6 scatter $small count 80 size 80 20 at 0 0 -24 seed 5 turn 0 360 scale 1.2 2 scatter $tree count 60 size 16 44 at -27 0 4 seed 7 turn 0 360 scale 1.4 2.6 scatter $tree count 60 size 16 44 at 27 0 4 seed 8 turn 0 360 scale 1.4 2.6 scatter $small count 40 size 80 10 at 0 0 30 seed 9 turn 0 360 scale 1.2 2 scatter $rocks count 24 size 50 10 at 0 0 22 seed 11 turn 0 360 scale 1 2.5 ## Daylight on a grass field env = kloofendal_48d_partly_cloudy_puresky floor.on = 1 floor.material = grass floor.grid = 0 backdrop.source = 2 camera set Camera eye 22 12 32 aim 0 2 0 lens 32 camera look Camera select none