add rare thicker Goblin Caps, suitable for use as huts.

This commit is contained in:
FaceDeer 2020-01-28 22:58:32 -07:00
parent d9236c33a3
commit b4293d30c6
12 changed files with 633 additions and 9 deletions

View File

@ -79,7 +79,7 @@ local goblin_cap_cavern_floor = function(abs_cracks, vert_rand, vi, area, data,
elseif math.random() < 0.02 then
df_trees.spawn_spindlestem_vm(vi+ystride, area, data, data_param2, c_red)
elseif math.random() < 0.015 then
df_trees.spawn_goblin_cap_vm(vi+ystride, area, data)
df_trees.spawn_goblin_cap_vm(vi+ystride, area, data, data_param2)
end
end

View File

@ -107,7 +107,7 @@ local mushroom_cavern_floor = function(abs_cracks, vert_rand, vi, area, data, da
if math.random() < 0.01 then
df_trees.spawn_tower_cap_vm(vi+ystride, area, data)
elseif math.random() < 0.01 then
df_trees.spawn_goblin_cap_vm(vi+ystride, area, data)
df_trees.spawn_goblin_cap_vm(vi+ystride, area, data, data_param2)
elseif math.random() < 0.02 then
df_trees.spawn_spindlestem_vm(vi+ystride, area, data, data_param2)
end

View File

@ -103,12 +103,15 @@ minetest.register_craft({
burntime = 2
})
-------------
--- Flour and bread
minetest.register_craftitem("df_farming:cave_flour", {
description = S("Cave Wheat Flour"),
_doc_items_longdesc = df_farming.doc.cave_flour_desc,
_doc_items_usagehelp = df_farming.doc.cave_flour_usage,
inventory_image = "dfcaverns_flour.png",
groups = {flammable = 1, dfcaverns_cookable = 1},
groups = {flammable = 1, dfcaverns_cookable = 1, food_flour = 1},
})
minetest.register_craftitem("df_farming:cave_bread", {
@ -154,6 +157,37 @@ minetest.register_craft({
recipe = "df_farming:cave_flour"
})
--------
-- Straw
minetest.register_node("df_farming:cave_straw", {
description = S("Cave Straw"),
tiles = {"dfcaverns_cave_straw.png"},
is_ground_content = false,
groups = {snappy=3, flammable=4, fall_damage_add_percent=-30, straw=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "df_farming:cave_straw 3",
recipe = {
{"df_farming:cave_wheat", "df_farming:cave_wheat", "df_farming:cave_wheat"},
{"df_farming:cave_wheat", "df_farming:cave_wheat", "df_farming:cave_wheat"},
{"df_farming:cave_wheat", "df_farming:cave_wheat", "df_farming:cave_wheat"},
}
})
minetest.register_craft({
output = "df_farming:cave_wheat 3",
recipe = {
{"df_farming:cave_straw"},
}
})
---------
-- Trample support
if minetest.get_modpath("trail") and trail and trail.register_trample_node then
minetest.register_node("df_farming:wheat_trampled", {
description = S("Flattened Cave Wheat"),

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

View File

@ -4,12 +4,19 @@ dfcaverns_dwarven_syrup_source_animated - derived from default
dfcaverns_dwarven_syrup - derived from default
dfcaverns_dwarven_syrup_flowing_animated - derived from default
dfcaverns_fungi - copied from caverealms
Farming textures are released under CC Attribution 3.0 Unported (CC BY 3.0) and list the following authors:
Copyright (C) 2012-2016 PilzAdam
Copyright (C) 2014-2016 BlockMen
Copyright (C) 2015-2016 MasterGollum
Copyright (C) 2015-2016 Gambit
dfcaverns_cave_wheat - derived from farming wheat
dfcaverns_cave_straw - derived from farming straw
dfcaverns_flour - derived from farming
dfcaverns_bread - derived from farming
dfcaverns_pig_tail_thread - copied from farming
dfcaverns_sugar - derived from farming
dfcaverns_cave_wheat_seed, dfcaverns_pig_tail_seed - all derived from farming wheat seed
dfcaverns_cave_wheat_seed, dfcaverns_pig_tail_seed - derived from farming wheat seed

View File

@ -131,6 +131,22 @@ minetest.register_craft({
burntime = 2,
})
local thick_goblin_cap_schem = dofile(MP.."/schematics/goblin_cap_thick.lua")
local thicker_goblin_cap_schem = dofile(MP.."/schematics/goblin_cap_thicker.lua")
local hut_goblin_cap_schem = dofile(MP.."/schematics/goblin_cap_hut.lua")
-- The hut has a chest near pos, use this to initialize it
local chest_on_construct = minetest.registered_items["default:chest"].on_construct
local init_chest = function(pos)
local chest_pos = minetest.find_node_near({x=pos.x, y=pos.y+1, z=pos.z}, 1, "default:chest")
if chest_pos then
chest_on_construct(chest_pos)
local inv = minetest.get_inventory({type="node", pos=chest_pos})
inv:add_item("main", "default:apple 3")
inv:add_item("main", "default:gold_ingot ".. math.random(1,5))
end
end
-- sapling
minetest.register_node("df_trees:goblin_cap_sapling", {
description = S("Goblin Cap Spawn"),
@ -165,7 +181,16 @@ minetest.register_node("df_trees:goblin_cap_sapling", {
on_timer = function(pos)
minetest.set_node(pos, {name="air"})
df_trees.spawn_goblin_cap(pos)
if minetest.find_node_near({x=pos.x, y=pos.y-1, z=pos.z}, 1, {"group:straw"}) then
if math.random() < 0.5 then
mapgen_helper.place_schematic(pos, thick_goblin_cap_schem)
else
mapgen_helper.place_schematic(pos, thicker_goblin_cap_schem)
end
return
else
df_trees.spawn_goblin_cap(pos)
end
end,
})
@ -173,8 +198,32 @@ local c_stem = minetest.get_content_id("df_trees:goblin_cap_stem")
local c_cap = minetest.get_content_id("df_trees:goblin_cap")
local c_gills = minetest.get_content_id("df_trees:goblin_cap_gills")
if minetest.get_modpath("farming") then
local straw_def = minetest.registered_items["farming:straw"]
if straw_def then
local new_groups = {}
for group, val in pairs(straw_def.groups) do
new_groups[group] = val
end
new_groups.straw = 1
minetest.override_item("farming:straw", {
groups = new_groups
})
end
end
df_trees.spawn_goblin_cap = function(pos)
if math.random() < 0.1 then
if math.random() < 0.5 then
mapgen_helper.place_schematic(pos, thick_goblin_cap_schem)
else
mapgen_helper.place_schematic(pos, thicker_goblin_cap_schem)
end
return
end
local x, y, z = pos.x, pos.y, pos.z
local stem_height = math.random(1,3)
local cap_radius = math.random(3,6)
local maxy = y + stem_height + 3
@ -194,7 +243,21 @@ df_trees.spawn_goblin_cap = function(pos)
vm:update_map()
end
df_trees.spawn_goblin_cap_vm = function(vi, area, data)
df_trees.spawn_goblin_cap_vm = function(vi, area, data, data_param2)
if math.random() < 0.1 then
local pos = area:position(vi)
if math.random() < 0.5 then
mapgen_helper.place_schematic_on_data(data, data_param2, area, pos, thick_goblin_cap_schem)
elseif math.random() < 0.9 then
mapgen_helper.place_schematic_on_data(data, data_param2, area, pos, thicker_goblin_cap_schem)
else
-- easter egg - every once in a while (0.5%), a mapgen Goblin cap is a Smurf house
minetest.after(5, init_chest, pos)
mapgen_helper.place_schematic_on_data(data, data_param2, area, pos, hut_goblin_cap_schem)
end
return
end
local stem_height = math.random(1,3)
local cap_radius = math.random(3,6)
subterrane.giant_mushroom(vi, area, data, c_stem, c_cap, c_gills, stem_height, cap_radius)

View File

@ -1,4 +1,4 @@
name = df_trees
description = Adds various types of underground fungal "trees". Light kills their saplings, they only grow in the dark.
depends = default
optional_depends = intllib, doc, moreblocks, stairs, vessels, basic_materials
optional_depends = intllib, doc, moreblocks, stairs, vessels, basic_materials, farming, doors, beds

View File

@ -0,0 +1,192 @@
local n1 = { name = "air", prob = 0 } -- external air
local n2 = { name = "stairs:stair_goblin_cap_stem_wood" }
local n3 = { name = "air", force_place=true } -- internal air
local n4 = { name = "df_trees:goblin_cap" }
local n5 = { name = "df_trees:goblin_cap_stem_wood" } -- porch filler
local n6 = { name = "df_trees:goblin_cap_gills", param2 = 1 }
local n7 = { name = "df_trees:goblin_cap_stem", force_place=true }
local n8 = { name = "df_trees:goblin_cap_stem_wood", force_place=true } -- internal floor
local n9 = { name = "doors:door_wood_a", force_place=true }
local n10 = { name = "doors:hidden", force_place=true }
local n11 = { name = "beds:bed_bottom", force_place=true }
local n12 = { name = "df_trees:goblin_cap_stem", prob = 198, force_place=true } -- possible window holes
local n13 = { name = "default:chest", force_place=true }
local n14 = { name = "beds:bed_top", force_place=true }
local n15 = { name = "default:torch_wall", param2 = 4, force_place=true}
local n16 = { name = "df_trees:goblin_cap_stem" } -- ground filler
local n17 = { name = "df_trees:goblin_cap_wood", force_place=true } -- internal ceiling
if minetest.get_modpath("vessels") then
n15 = { name = "df_trees:glowing_bottle_red", force_place=true}
end
if not minetest.get_modpath("doors") then
-- replace the door with air
n9 = n3
n10 = n3
end
if not minetest.get_modpath("beds") then
--replace the bed with air
n11 = n3
n14 = n3
end
return {
yslice_prob = { },
size = {y = 8, x = 9, z = 9},
center_pos = {x = 4, y = 2, z = 4},
data = {
-- z=0, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=1
n1, n1, n1, n1, n2, n1, n1, n1, n1,
-- z=0, y=2
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=3
n1, n1, n1, n1, n3, n1, n1, n1, n1,
-- z=0, y=4
n1, n1, n1, n1, n3, n1, n1, n1, n1,
-- z=0, y=5
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=0, y=6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=1, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=1, y=1
n1, n1, n1, n1, n5, n1, n1, n1, n1,
-- z=1, y=2
n1, n1, n1, n1, n2, n1, n1, n1, n1,
-- z=1, y=3
n1, n1, n1, n1, n3, n1, n1, n1, n1,
-- z=1, y=4
n1, n1, n1, n1, n3, n1, n1, n1, n1,
-- z=1, y=5
n1, n4, n4, n6, n6, n6, n4, n4, n1,
-- z=1, y=6
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=1, y=7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=2, y=0
n1, n1, n1, n16, n16, n16, n1, n1, n1,
-- z=2, y=1
n1, n1, n1, n16, n16, n16, n1, n1, n1,
-- z=2, y=2
n1, n1, n1, n7, n8, n7, n1, n1, n1,
-- z=2, y=3
n1, n1, n1, n7, n9, n7, n1, n1, n1,
-- z=2, y=4
n1, n1, n1, n7, n10, n7, n1, n1, n1,
-- z=2, y=5
n1, n4, n6, n7, n7, n7, n6, n4, n1,
-- z=2, y=6
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=2, y=7
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=3, y=0
n1, n1, n16, n16, n16, n16, n16, n1, n1,
-- z=3, y=1
n1, n1, n16, n16, n16, n16, n16, n1, n1,
-- z=3, y=2
n1, n1, n7, n8, n8, n8, n7, n1, n1,
-- z=3, y=3
n1, n1, n7, n3, n3, n3, n7, n1, n1,
-- z=3, y=4
n1, n1, n7, n3, n3, n3, n7, n1, n1,
-- z=3, y=5
n4, n6, n7, n3, n3, n3, n7, n6, n4,
-- z=3, y=6
n1, n4, n4, n17, n17, n17, n4, n4, n1,
-- z=3, y=7
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=4, y=0
n1, n1, n16, n16, n16, n16, n16, n1, n1,
-- z=4, y=1
n1, n1, n16, n16, n16, n16, n16, n1, n1,
-- z=4, y=2
n1, n1, n7, n8, n8, n8, n7, n1, n1,
-- z=4, y=3
n1, n1, n7, n3, n3, n11, n7, n1, n1,
-- z=4, y=4
n1, n1, n12, n3, n3, n3, n12, n1, n1,
-- z=4, y=5
n4, n6, n7, n3, n3, n3, n7, n6, n4,
-- z=4, y=6
n1, n4, n4, n17, n17, n17, n4, n4, n1,
-- z=4, y=7
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=5, y=0
n1, n1, n16, n16, n16, n16, n16, n1, n1,
-- z=5, y=1
n1, n1, n16, n16, n16, n16, n16, n1, n1,
-- z=5, y=2
n1, n1, n7, n8, n8, n8, n7, n1, n1,
-- z=5, y=3
n1, n1, n7, n13, n3, n14, n7, n1, n1,
-- z=5, y=4
n1, n1, n7, n15, n3, n3, n7, n1, n1,
-- z=5, y=5
n4, n6, n7, n3, n3, n3, n7, n6, n4,
-- z=5, y=6
n1, n4, n4, n17, n17, n17, n4, n4, n1,
-- z=5, y=7
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=6, y=0
n1, n1, n1, n16, n16, n16, n1, n1, n1,
-- z=6, y=1
n1, n1, n1, n16, n16, n16, n1, n1, n1,
-- z=6, y=2
n1, n1, n1, n7, n7, n7, n1, n1, n1,
-- z=6, y=3
n1, n1, n1, n7, n7, n7, n1, n1, n1,
-- z=6, y=4
n1, n1, n1, n7, n12, n7, n1, n1, n1,
-- z=6, y=5
n1, n4, n6, n7, n7, n7, n6, n4, n1,
-- z=6, y=6
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=6, y=7
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=7, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=7, y=1
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=7, y=2
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=7, y=3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=7, y=4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=7, y=5
n1, n4, n4, n6, n6, n6, n4, n4, n1,
-- z=7, y=6
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=7, y=7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=8, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=8, y=1
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=8, y=2
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=8, y=3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=8, y=4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=8, y=5
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=8, y=6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=8, y=7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
}
}

View File

@ -0,0 +1,164 @@
local n1 = { name = "air", prob=0 }
local n2 = { name = "df_trees:goblin_cap" }
local n3 = { name = "df_trees:goblin_cap_gills", param2 = 1 }
local n4 = { name = "df_trees:goblin_cap_stem" }
return {
yslice_prob = {},
size = {y = 8, x = 9, z = 9},
center_pos = {x = 4, y = 2, z = 4},
data = {
-- z=-8, y=-7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-5
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-2
n1, n1, n1, n1, n2, n1, n1, n1, n1,
-- z=-8, y=-1
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-5
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-2
n1, n1, n2, n2, n3, n2, n2, n1, n1,
-- z=-7, y=-1
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=-7, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-6, y=-7
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-6, y=-6
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-6, y=-5
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-6, y=-4
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-6, y=-3
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-6, y=-2
n1, n2, n3, n3, n4, n3, n3, n2, n1,
-- z=-6, y=-1
n1, n1, n2, n2, n2, n2, n2, n1, n1,
-- z=-6, y=0
n1, n1, n1, n1, n2, n1, n1, n1, n1,
-- z=-5, y=-7
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-5, y=-6
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-5, y=-5
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-5, y=-4
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-5, y=-3
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-5, y=-2
n1, n2, n3, n4, n4, n4, n3, n2, n1,
-- z=-5, y=-1
n1, n2, n2, n2, n4, n2, n2, n2, n1,
-- z=-5, y=0
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=-4, y=-7
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-6
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-5
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-4
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-3
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-2
n2, n3, n4, n4, n4, n4, n4, n3, n2,
-- z=-4, y=-1
n1, n2, n2, n4, n4, n4, n2, n2, n1,
-- z=-4, y=0
n1, n1, n2, n2, n2, n2, n2, n1, n1,
-- z=-3, y=-7
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-3, y=-6
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-3, y=-5
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-3, y=-4
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-3, y=-3
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-3, y=-2
n1, n2, n3, n4, n4, n4, n3, n2, n1,
-- z=-3, y=-1
n1, n2, n2, n2, n4, n2, n2, n2, n1,
-- z=-3, y=0
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=-2, y=-7
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-2, y=-6
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-2, y=-5
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-2, y=-4
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-2, y=-3
n1, n1, n1, n1, n4, n1, n1, n1, n1,
-- z=-2, y=-2
n1, n2, n3, n3, n4, n3, n3, n2, n1,
-- z=-2, y=-1
n1, n1, n2, n2, n2, n2, n2, n1, n1,
-- z=-2, y=0
n1, n1, n1, n1, n2, n1, n1, n1, n1,
-- z=-1, y=-7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-5
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-2
n1, n1, n2, n2, n3, n2, n2, n1, n1,
-- z=-1, y=-1
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=-1, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-5
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-2
n1, n1, n1, n1, n2, n1, n1, n1, n1,
-- z=0, y=-1
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
}
}

View File

@ -0,0 +1,164 @@
local n1 = { name = "air", prob=0 }
local n2 = { name = "df_trees:goblin_cap" }
local n3 = { name = "df_trees:goblin_cap_gills", param2 = 1 }
local n4 = { name = "df_trees:goblin_cap_stem" }
return {
yslice_prob = {},
size = {y = 8, x = 9, z = 9},
center_pos = {x = 4, y = 2, z = 4},
data = {
-- z=-8, y=-7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-5
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=-2
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=-8, y=-1
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-8, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-5
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-7, y=-2
n1, n2, n2, n3, n3, n3, n2, n2, n1,
-- z=-7, y=-1
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=-7, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-6, y=-7
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-6, y=-6
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-6, y=-5
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-6, y=-4
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-6, y=-3
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-6, y=-2
n1, n2, n3, n4, n4, n4, n3, n2, n1,
-- z=-6, y=-1
n1, n1, n2, n2, n2, n2, n2, n1, n1,
-- z=-6, y=0
n1, n1, n1, n1, n2, n1, n1, n1, n1,
-- z=-5, y=-7
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-5, y=-6
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-5, y=-5
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-5, y=-4
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-5, y=-3
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-5, y=-2
n2, n3, n4, n4, n4, n4, n4, n3, n2,
-- z=-5, y=-1
n1, n2, n2, n4, n4, n4, n2, n2, n1,
-- z=-5, y=0
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=-4, y=-7
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-6
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-5
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-4
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-3
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-4, y=-2
n2, n3, n4, n4, n4, n4, n4, n3, n2,
-- z=-4, y=-1
n1, n2, n2, n4, n4, n4, n2, n2, n1,
-- z=-4, y=0
n1, n1, n2, n2, n2, n2, n2, n1, n1,
-- z=-3, y=-7
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-3, y=-6
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-3, y=-5
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-3, y=-4
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-3, y=-3
n1, n1, n4, n4, n4, n4, n4, n1, n1,
-- z=-3, y=-2
n2, n3, n4, n4, n4, n4, n4, n3, n2,
-- z=-3, y=-1
n1, n2, n2, n4, n4, n4, n2, n2, n1,
-- z=-3, y=0
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=-2, y=-7
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-2, y=-6
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-2, y=-5
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-2, y=-4
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-2, y=-3
n1, n1, n1, n4, n4, n4, n1, n1, n1,
-- z=-2, y=-2
n1, n2, n3, n4, n4, n4, n3, n2, n1,
-- z=-2, y=-1
n1, n1, n2, n2, n2, n2, n2, n1, n1,
-- z=-2, y=0
n1, n1, n1, n1, n2, n1, n1, n1, n1,
-- z=-1, y=-7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-5
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=-1, y=-2
n1, n2, n2, n3, n3, n3, n2, n2, n1,
-- z=-1, y=-1
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=-1, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-7
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-6
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-5
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-4
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-3
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=-2
n1, n1, n1, n2, n2, n2, n1, n1, n1,
-- z=0, y=-1
n1, n1, n1, n1, n1, n1, n1, n1, n1,
-- z=0, y=0
n1, n1, n1, n1, n1, n1, n1, n1, n1,
}
}

@ -1 +1 @@
Subproject commit cfb31b3361c152998a7bd801328f44d643ce9749
Subproject commit 9c7347691d451f6eee329cd8f7e23ccbd27bd298

@ -1 +1 @@
Subproject commit bd5b1d22c8fb3bd3e434e7adfcbe564df793c8ff
Subproject commit 6662133650cb1215c385f7b00d835613b1ea5d4f