// Hanseatic brick warehouse on a canal quay
// ground
fill(0, 0, 0, 63, 5, 47, 'stone');
fill(0, 6, 0, 63, 6, 47, 'grass_block');
// canal
fill(0, 0, 48, 63, 5, 63, 'stone');
fill(0, 6, 48, 63, 9, 63, 'air');
fill(0, 3, 48, 63, 5, 63, 'water');
// cobbled quay strip
fill(0, 6, 43, 63, 6, 47, 'cobblestone');
var x, y, z, i;
// ---- main warehouse box ----
// walls: x20..32, z28..42, from y7 to y20
fill(20, 7, 28, 32, 20, 42, 'bricks');
// hollow it out
fill(21, 7, 29, 31, 20, 41, 'air');
// ground floor and upper floor
fill(21, 7, 29, 31, 7, 41, 'oak_planks');
fill(21, 13, 29, 31, 13, 41, 'oak_planks');
// ---- roof: gable along Z, slopes east and west ----
for (z = 28; z <= 42; z++) {
for (i = 0; i < 7; i++) {
ps(20 + i, 21 + i, z, 'brick_stairs[facing=east]');
ps(32 - i, 21 + i, z, 'brick_stairs[facing=west]');
}
pb(26, 27, z, 'brick_slab');
}
// ---- stepped crow gable on the canal side (z=42) ----
for (i = 0; i < 7; i++) {
fill(20 + i, 21 + i, 42, 32 - i, 21 + i, 42, 'bricks');
fill(20 + i, 21 + i, 43, 32 - i, 21 + i, 43, 'bricks');
}
// back gable
for (i = 0; i < 7; i++) {
fill(20 + i, 21 + i, 28, 32 - i, 21 + i, 28, 'bricks');
}
// ---- hoist beam at the gable peak ----
ps(26, 27, 44, 'oak_log[axis=z]');
ps(26, 27, 45, 'oak_log[axis=z]');
pb(26, 26, 45, 'iron_chain');
pb(26, 25, 45, 'iron_chain');
pb(26, 24, 45, 'barrel');
// ---- windows, small, in rows ----
// front facade z=42
for (i = 0; i < 3; i++) {
x = 22 + i * 4;
fill(x, 10, 42, x + 1, 11, 42, 'glass_pane');
fill(x, 16, 42, x + 1, 17, 42, 'glass_pane');
}
// side walls
for (z = 31; z <= 40; z += 3) {
fill(20, 10, z, 20, 11, z, 'glass_pane');
fill(32, 10, z, 32, 11, z, 'glass_pane');
fill(20, 16, z, 20, 17, z, 'glass_pane');
fill(32, 16, z, 32, 17, z, 'glass_pane');
}
// ---- door ----
fill(25, 8, 42, 27, 9, 42, 'air');
ps(26, 8, 42, 'dark_oak_door[facing=south,half=lower,hinge=left]');
ps(26, 9, 42, 'dark_oak_door[facing=south,half=upper,hinge=left]');
// loft hoist doors
fill(25, 14, 42, 27, 15, 42, 'air');
ps(26, 14, 42, 'dark_oak_door[facing=south,half=lower,hinge=left]');
ps(26, 15, 42, 'dark_oak_door[facing=south,half=upper,hinge=left]');
// ---- wooden stair between the two floors ----
fill(29, 13, 33, 30, 13, 38, 'air');
for (i = 0; i < 6; i++) {
ps(29, 8 + i, 33 + i, 'oak_stairs[facing=south]');
ps(30, 8 + i, 33 + i, 'oak_stairs[facing=south]');
}
// ---- interior: ground floor ----
pb(22, 8, 31, 'barrel');
pb(23, 8, 31, 'barrel');
pb(22, 9, 31, 'barrel');
pb(22, 8, 34, 'chest');
pb(24, 8, 39, 'crafting_table');
pb(25, 8, 39, 'barrel');
pb(30, 8, 30, 'barrel');
pb(29, 8, 30, 'hay_block');
pb(23, 12, 35, 'torch');
pb(28, 12, 38, 'torch');
// ---- interior: loft with sacks and barrels ----
for (i = 0; i < 4; i++) {
pb(22 + i, 14, 30, 'hay_block');
pb(22 + i, 15, 30, 'hay_block');
}
for (i = 0; i < 3; i++) {
pb(22 + i, 14, 32, 'hay_block');
}
pb(28, 14, 31, 'barrel');
pb(29, 14, 31, 'barrel');
pb(28, 15, 31, 'barrel');
pb(28, 14, 34, 'barrel');
pb(24, 14, 40, 'barrel');
pb(25, 14, 40, 'hay_block');
pb(23, 18, 35, 'torch');
pb(29, 18, 38, 'torch');
// ---- quay: mooring bollards ----
for (x = 14; x <= 44; x += 5) {
pb(x, 7, 45, 'oak_log');
pb(x, 8, 45, 'oak_fence');
}
// a couple of crates on the quay
pb(21, 7, 44, 'barrel');
pb(22, 7, 44, 'barrel');
pb(30, 7, 44, 'hay_block');
// lamps along the quay
for (x = 18; x <= 40; x += 11) {
pb(x, 7, 44, 'oak_fence');
pb(x, 8, 44, 'oak_fence');
pb(x, 9, 44, 'lantern');
}
// a path to the door
fill(26, 6, 43, 26, 6, 47, 'stone_bricks');
// some grass and flowers around
for (x = 6; x <= 58; x += 3) {
for (z = 10; z <= 26; z += 3) {
pb(x, 7, z, 'short_grass');
}
}
pb(10, 7, 20, 'oak_sapling');
pb(46, 7, 22, 'oak_sapling');