From 6267f26027350f0b80d091044ddfc1177aa6fa47 Mon Sep 17 00:00:00 2001
From: Auke Kok <sofar@foo-projects.org>
Date: Mon, 4 Jan 2016 17:56:20 -0800
Subject: [PATCH] Aspen trees.

Adds a birch-like tree to the default_game. Aspen was chosen on
purpose instead of birch, as several birch tree mods already exist
and choosing a different name avoids any conflicts.

Schematics were made for both normal and sapling version, assuring
saplings will not be able to grief. The shape of the Aspen is "fanning
out at the top" and provides an easy tree to walk under, but still a
somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up
to three layers of leaves on top, making it slightly taller than an
Apple tree, but shorter than a Pine tree, which provides a good blend.

Textures were painted from scratch, except tree_top and _wood
variants, which are color modified versions of the pine_wood
variants. Appropriate licenses have been chosen for the new textures.

The leaf texture is light enough to contrast other trees, but dark
enough to offset against our light default grass color. The leaves
are drawn in the typical minetest default fashion with plenty of
transparancy, but enough definition to suggest that you're seeing
something that looks like leaves. The placement of leaves in the
schematic also suggests the top of the tree is sparse and you can
see the sky through the leaves.

Sapling texture is both traditional and different, with lush green
leaves and a well-defined stem, but slightly stick-like and skinny,
as these plants tend to grow up first, then out.

Add fallen Aspen logs. We make these logs a minimum of 2 blocks long,
and up to 3. This allows us to make these logs a place where both
red and brown mushrooms can be found, to these may be attractive to
players. However, the spawn rate for these has been reduced a lot
compared to the other logs, to account for the scarcity of Aspen.

Add stairs, slabs for these wood types as well.

Mapgen will place these trees in deciduous forests only, but in
a way that the biome is a range between entirely Apple trees, and
mostly entirely Aspen trees, with a bias to Apple trees. To make
fallen logs somewhat correlated with trees, we modify the planting
of Apple trees and logs to use perlin noise and not fill ratio,
otherwise you'd always end up with Apple logs in Aspen tree areas,
which would be suspicious. There still is a bit of a mix.
---
 mods/default/README.txt                       |   5 ++
 mods/default/crafting.lua                     |   7 ++
 mods/default/mapgen.lua                       |  65 +++++++++++++++++-
 mods/default/nodes.lua                        |  63 +++++++++++++++++
 mods/default/schematics/aspen_tree.mts        | Bin 0 -> 177 bytes
 .../schematics/aspen_tree_from_sapling.mts    | Bin 0 -> 171 bytes
 .../default/textures/default_aspen_leaves.png | Bin 0 -> 761 bytes
 .../textures/default_aspen_sapling.png        | Bin 0 -> 320 bytes
 mods/default/textures/default_aspen_tree.png  | Bin 0 -> 695 bytes
 .../textures/default_aspen_tree_top.png       | Bin 0 -> 656 bytes
 mods/default/textures/default_aspen_wood.png  | Bin 0 -> 373 bytes
 mods/default/trees.lua                        |  15 +++-
 mods/stairs/init.lua                          |   7 ++
 13 files changed, 159 insertions(+), 3 deletions(-)
 create mode 100644 mods/default/schematics/aspen_tree.mts
 create mode 100644 mods/default/schematics/aspen_tree_from_sapling.mts
 create mode 100644 mods/default/textures/default_aspen_leaves.png
 create mode 100644 mods/default/textures/default_aspen_sapling.png
 create mode 100644 mods/default/textures/default_aspen_tree.png
 create mode 100644 mods/default/textures/default_aspen_tree_top.png
 create mode 100644 mods/default/textures/default_aspen_wood.png

diff --git a/mods/default/README.txt b/mods/default/README.txt
index 5b07a36c..c190cee0 100644
--- a/mods/default/README.txt
+++ b/mods/default/README.txt
@@ -150,6 +150,11 @@ BlockMen (CC BY-SA 3.0):
 
 sofar (CC BY-SA 3.0):
   default_book_written.png, based on default_book.png
+  default_aspen_sapling
+  default_aspen_leaves
+  default_aspen_tree
+  default_aspen_tree_top, derived from default_pine_tree_top (by paramat)
+  default_aspen_wood, derived from default_pine_wood (by paramat)
 
 Neuromancer (CC BY-SA 2.0):
   default_cobble.png, based on texture by Brane praefect
diff --git a/mods/default/crafting.lua b/mods/default/crafting.lua
index fa8df2d6..b470d0d4 100644
--- a/mods/default/crafting.lua
+++ b/mods/default/crafting.lua
@@ -28,6 +28,13 @@ minetest.register_craft({
 	}
 })
 
+minetest.register_craft({
+	output = 'default:aspen_wood 4',
+	recipe = {
+		{'default:aspen_tree'},
+	}
+})
+
 minetest.register_craft({
 	output = 'default:stick 4',
 	recipe = {
diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua
index 0411bcaa..c92514cf 100644
--- a/mods/default/mapgen.lua
+++ b/mods/default/mapgen.lua
@@ -991,8 +991,15 @@ function default.register_decorations()
 	minetest.register_decoration({
 		deco_type = "schematic",
 		place_on = {"default:dirt_with_grass"},
-		sidelen = 80,
-		fill_ratio = 0.0015,
+		sidelen = 16,
+		noise_params = {
+			offset = 0.002,
+			scale = 0.001,
+			spread = {x = 250, y = 250, z = 250},
+			seed = 2,
+			octaves = 3,
+			persist = 0.66
+		},
 		biomes = {"deciduous_forest"},
 		y_min = 1,
 		y_max = 31000,
@@ -1154,6 +1161,60 @@ function default.register_decorations()
 		rotation = "random",
 	})
 
+	-- Aspen tree and log
+
+	minetest.register_decoration({
+		deco_type = "schematic",
+		place_on = {"default:dirt_with_grass"},
+		sidelen = 16,
+		noise_params = {
+			offset = 0.01,
+			scale = -0.02,
+			spread = {x = 250, y = 250, z = 250},
+			seed = 2,
+			octaves = 3,
+			persist = 0.66
+		},
+		biomes = {"deciduous_forest"},
+		y_min = 1,
+		y_max = 31000,
+		schematic = minetest.get_modpath("default").."/schematics/aspen_tree.mts",
+		flags = "place_center_x, place_center_z",
+		rotation = "random",
+	})
+
+	minetest.register_decoration({
+		deco_type = "schematic",
+		place_on = {"default:dirt_with_grass"},
+		sidelen = 16,
+		noise_params = {
+			offset = 0.0005,
+			scale = -0.001,
+			spread = {x = 250, y = 250, z = 250},
+			seed = 2,
+			octaves = 3,
+			persist = 0.66
+		},
+		biomes = {"deciduous_forest"},
+		y_min = 1,
+		y_max = 31000,
+		schematic = {
+			size = { x = 3, y = 3, z = 1},
+			data = {
+				{ name = "air", prob = 0 },
+				{ name = "air", prob = 0 },
+				{ name = "air", prob = 0 },
+				{ name = "default:aspen_tree", param2 = 12 },
+				{ name = "default:aspen_tree", param2 = 12 },
+				{ name = "default:aspen_tree", param2 = 12, prob = 127 },
+				{ name = "flowers:mushroom_red", prob = 63 },
+				{ name = "flowers:mushroom_brown", prob = 63 },
+				{ name = "air", prob = 0 },
+			},
+		},
+		flags = "place_center_x",
+		rotation = "random",
+	})
 	-- Large cactus
 
 	minetest.register_decoration({
diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua
index aecbd357..62d0ec93 100644
--- a/mods/default/nodes.lua
+++ b/mods/default/nodes.lua
@@ -78,6 +78,10 @@ default:acacia_wood
 default:acacia_leaves
 default:acacia_sapling
 
+default:aspen_tree
+default:aspen_wood
+default:aspen_leaves
+default:aspen_sapling
 Ores
 ----
 (1. In stone 2. Block)
@@ -686,6 +690,65 @@ minetest.register_node("default:acacia_sapling", {
 	sounds = default.node_sound_leaves_defaults(),
 })
 
+minetest.register_node("default:aspen_tree", {
+	description = "Aspen Tree",
+	tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png",
+		"default_aspen_tree.png"},
+	paramtype2 = "facedir",
+	is_ground_content = false,
+	groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
+	sounds = default.node_sound_wood_defaults(),
+
+	on_place = minetest.rotate_node
+})
+
+minetest.register_node("default:aspen_wood", {
+	description = "Aspen Wood Planks",
+	tiles = {"default_aspen_wood.png"},
+	is_ground_content = false,
+	groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
+	sounds = default.node_sound_wood_defaults(),
+})
+
+minetest.register_node("default:aspen_leaves", {
+	description = "Aspen Leaves",
+	drawtype = "allfaces_optional",
+	visual_scale = 1.3,
+	tiles = {"default_aspen_leaves.png"},
+	waving = 1,
+	paramtype = "light",
+	is_ground_content = false,
+	groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
+	drop = {
+		max_items = 1,
+		items = {
+			{items = {"default:aspen_sapling"}, rarity = 20},
+			{items = {"default:aspen_leaves"}}
+		}
+	},
+	sounds = default.node_sound_leaves_defaults(),
+
+	after_place_node = default.after_place_leaves,
+})
+
+minetest.register_node("default:aspen_sapling", {
+	description = "Aspen Tree Sapling",
+	drawtype = "plantlike",
+	visual_scale = 1.0,
+	tiles = {"default_aspen_sapling.png"},
+	inventory_image = "default_aspen_sapling.png",
+	wield_image = "default_aspen_sapling.png",
+	paramtype = "light",
+	sunlight_propagates = true,
+	walkable = false,
+	selection_box = {
+		type = "fixed",
+		fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
+	},
+	groups = {snappy = 2, dig_immediate = 3, flammable = 2,
+		attached_node = 1, sapling = 1},
+	sounds = default.node_sound_leaves_defaults(),
+})
 --
 -- Ores
 --
diff --git a/mods/default/schematics/aspen_tree.mts b/mods/default/schematics/aspen_tree.mts
new file mode 100644
index 0000000000000000000000000000000000000000..fe54f6777c8848ea3578c2f7fbf6d6904339fdf1
GIT binary patch
literal 177
zcmeYb3HD`RVPIw8VqmSWkFT!>6Aa7@%!!#r3?eD1X^EvdC02>W1*v)QIjM<dsl^OJ
zsG=oBsi_rno(5jzYf#{5sq69I?XRw38o2#bl)mia9Xpwismx-UeronJfhj-!?b&=X
zS7u+w(%_t~=0{6*1pa;Uu}}Zqj;`(hnCCHcPUPS)`sSJI)?zwc@2pBzet`Mv*(S4X
S%V*vF_@wWC0_%i>hV1}C222P5

literal 0
HcmV?d00001

diff --git a/mods/default/schematics/aspen_tree_from_sapling.mts b/mods/default/schematics/aspen_tree_from_sapling.mts
new file mode 100644
index 0000000000000000000000000000000000000000..6bf0f186595934f7e7118c0e5dfa6bb141543e4b
GIT binary patch
literal 171
zcmeYb3HD`RVPIw8VqmSWkFT!>6Aa7@%!!#r3?eD1X^EvdC02>W1*v)QIjM<dsl^OJ
zsG=oBsi_rno(4MdH5hO#uIpL;_2sE&b2d#}ak*k+%OxFFCp9CMD_v_II&s~fUv9Ru
z_wIAUQm$nWM7o?7|2p}xPygMHuI>MtH9Z5BL%B@9y}andpS>>j^Rv_W6D^;5Ew-L_
M=cBaF{Z@T;01_ff+yDRo

literal 0
HcmV?d00001

diff --git a/mods/default/textures/default_aspen_leaves.png b/mods/default/textures/default_aspen_leaves.png
new file mode 100644
index 0000000000000000000000000000000000000000..17a708d1783819a4acdd09e730a2c1a9698dd686
GIT binary patch
literal 761
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!to4tTmahFF|#opd)_CROBE
zeR|omxpz<cncWV{?7XUwn-!?yv1N;gp2)R^i5EhYvXqn*|GD1Fn3$y88@ELy%D}Zp
zK4GcY%c*}iEHGcXY|`B~$KRYgx5xN+x2bpNh3Bto3eP>Plw(}6w>F|Tn&sopl4rXZ
z=EPL`Exz&a)GY<}8Ig0YEQ(j~G~O4tUzvf=K~FCFtL!G7q`If9tUqdZJMP|l^zel{
zmtK_^#x+jAXS0am@Z00!YFij~9OKz8Z~wC;t<rC+(58<k&wqNgd-AM^>185;yxu8V
zC*FLzoMk*eE=JwcxMqFB$J%{X<<V)=`?HK+B~G5>^&)WXo29a*C$~6ET2}M<roPhU
z;{Mfz3$4ObHtO}d%`SS7(8U;j?%tGJmzHeX#ko!+F|#Gac;BBd-#&a!{P64d@hz9{
zDqdy^+<yA|^LpuTerx@*mkEA<=gzY4L4~T>^?c5TGdglXGC#`xuKOTAqxN~^)}5+d
zRXweC$9jrBelaa%zOVdh`5Uk4QRx~_S6<D0TauXkc9%kvwq&^epI_UZnF69`UD<cG
z^KpyqLylwoJ1c(8I<u!Rf_qVp-Iu%edku2-d=ihWocH<34~yq^JG6@5`)1ZIKYH(j
zVAAbFX_{PL9<^L7a+vn=fCqzgc6rJcnFkhpx6hg}Ot;&on3#}JB6lIDw4<ult&8ue
z!h)N9AGo^CtoK>D)m3l)&%}g>S2g#3c-UJn`0GzL`<Dm*j(1GvtDJZFb^4NPk4&Os
zCoQp)*|UA?*=}y(s-#4x@@#c6wJSeV&((ifJf+#TgX6cB=(liw9*;SZHcJZk_ivpx
z>HXxDk1YA-8TQ!k>bHMYx~T3{`TYA+cP`D$J<eZnr{V0^=tm4J``qVg+Q;tGPhQOS
zc-NPt?)RM0U#;Tj?A25?UZB0qyKP~{f^A=Vf}-tK?GAcpRaEw~W8a@^!Bsi`7JRb*
aA$<R^2Y-K++(rfl1_n=8KbLh*2~7aAKzi!{

literal 0
HcmV?d00001

diff --git a/mods/default/textures/default_aspen_sapling.png b/mods/default/textures/default_aspen_sapling.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8d9136a0b5c0397e3feb54f1abce3e44e75ec47
GIT binary patch
literal 320
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7**#qxLo7}wCmdk%3cvY3
zT|vkoQMl&QS7qmKNyUqJ4{|A4l|E#9qN{#+!w!SX|9N<Lc<O?${F}aJi|XA84*Ylj
zFMNCJN%hgweH+r&G|t$1=aoG(GxOp1_xC?c`gvOSzi_I<L$BBW&&TgeN&tc6<YW-V
zF?Ye||98*ZFR`>wY5G=QoxBum^2T7Elicjq%uoOGEj#t!laHB=jje5qq}YG{*d3=&
z96560z<~n?0yf<FWq*<FiQd*9|35xA*Wh3D{^@Cco|zX8s7ke*yZrZk&az+jrG275
zGY`f%&)Z`FvTwtsz(4;#z81eEJgK!$X?NeA8~@|?*BSr$^|$?CL@3vCZ3b)C$SB>{
T%On{X7#KWV{an^LB{Ts5PGFPH

literal 0
HcmV?d00001

diff --git a/mods/default/textures/default_aspen_tree.png b/mods/default/textures/default_aspen_tree.png
new file mode 100644
index 0000000000000000000000000000000000000000..933b9cad5eee86718a3c916251725c6324ac5824
GIT binary patch
literal 695
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orG$>O5T>Lp08-POuJoZNT8F
z`a1b!*_<1UOeO(Ks~Q!ZC(2&fD01zfSw@7TmX#XomYPce0S6mwj|9H)n5KKW&eg2o
zy(PQebnkOJgI49<wmHw<>=+sv_1dDZSs`L=7>8oEuHusW@5Nmo7MwGm&D*j;=k)vc
z@1H+^zAW>RMOo~1iOVLv&nvG*F*HmOVqlP$mtU-LNJ2U}=K9)Ir#|mlmf2(2W9Z~@
zy)?+{{`b!|>MaV#ZseF<j$&rmc02d>wmHSwy2p0BwpuE3OoCy-)@4)v{rRJi{r30o
z-&e1SGBgD3n!S9Am}}rPRi_o}vhRO4Jmxvc#>VEr$&{dJPfwooTz`GG-}39%uO~`m
zt>sj-UbTDo?xRT)m%V)XGINs3hi~7+6iw#(_4oIet8gq-@m#aj-QE4zjM%Al`}2Et
z?%dfpfByW+dHn5%SFMscesYrz2NTD`w9OCa>|Uqc!g2V5#N*1iK#_{QamL4%Oo@+=
z|NZ-Sp^UfY)SwoD<ArOsCQ6jWF5miYS6@)q>}8p^x9ObL=ql5!xzEm^v9#v?`q#Tw
zX>lkjF3G)pHS4KMpi0XDiRyXJcj+-GoG)G)BGDE(P1Lnf;MLcvImHYIGEAJr#l`>s
z`&%rtd|meW&k8NCzy5mgAi-|_{(bwrG*53@GKJ0Yg2~zA$JvFP_UzreG}CIP&y=9b
zdB(?D1UBEyv61UPo_xLZ`?qhecKKcY^719;yt#7?kFhl~Dn9x2>C>M-H5M{`ZpvPn
z(^3Tvty<M0ps%mree}`y@8b9F-%sx0=jUInq13{msL(Ry(p~=Na|D8}n<n!(S<FBG
zuxRI$pscm!-{yQ);FuD0Ou|cZ>6OAcZ_A`z1sNW^fB)WoZcc8NgZ`d!1_lNOPgg&e
IbxsLQ00!VmbpQYW

literal 0
HcmV?d00001

diff --git a/mods/default/textures/default_aspen_tree_top.png b/mods/default/textures/default_aspen_tree_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..fcca038048fbc05553e0ec6ba102e638e525090c
GIT binary patch
literal 656
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orG$!aZFaLp08-o<H3uV=BUM
z;dS<IxxD4GR=vESqRc2L^oP+}jAP$y)|^dJXZvJ(0$hw%&U-bpYR8`)`_c~nY*v2v
z?p=^q?DbZGHCyjhKaaV+%}X=+jEQgUegDfTJrjeBHsAUl%Tc&9X5SL~mz_%;4#yl<
z3+C~<uDMG*QS{gHmi)R;_f{uL94oBRmf!W+@J;s3y%#i8gBh20O_B;QF^@k#|N80n
z`>$@#59L_6`_H|<A9Cl!UppRH&fc>nKRnR$QqY1ayOMs~DY=xl*T5|@d%Y8fULxn;
z^83Lz7##MWT4m&#$;iZT=xKa!{M4Xpsezwu%-Lsiw||Yw@2%dq?J%#kxH9JypN;RT
z7*15OGhT~Yx|Q$X^pF}$6Fv9yY)kF-3My=hf3#1F>xM>Ss}QHsoMoO|fitu#Ci;d6
zZRS61U%&jP*EvH$t_K3fj9p4C0f!B)+(^&3P{*vw{OrZGNvFSF&e*kT2@AuNMdw&k
zP1mnp^}1^I{OFmYxlB<-o^=bqF3c0`oH^0bJ?+fWKlKL+WtzE{8Z4jUq&4S8eqo$_
z?TiLxtrnk~s#m&<&3zZ2d;ZzzDnqMA#<XY4k{whZq)0Ms5j*%c_rB9QmA1@TS1kIp
zEQ0qQE&l!I$MjWCcgaWbFnK3V{JQbbR?GPfC(mC0w@v)}_wScY_D0>iU$$OYVd80#
z+wV$0bzkVRytd2i@9utn{*vFx=OQJOXUu%Fe)>!PD{J|!i#l(6bNZDoH;LcgW!Lw<
zb=&gC7pvD#OAYkenk&63zGrJ!#_eqk7fgCLe*5^bP@?Vc%a;{4LW0Ks*<T8^SqJ?)
S{egjjfx*+&&t;ucLK6TOtTjUb

literal 0
HcmV?d00001

diff --git a/mods/default/textures/default_aspen_wood.png b/mods/default/textures/default_aspen_wood.png
new file mode 100644
index 0000000000000000000000000000000000000000..d16fdc975d5b4cba98598ead835175743d2ae092
GIT binary patch
literal 373
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFLZ9H8ZLp08}PP*uK$Uvm+
z|K+bq7d%~El#aN_A4vahxyS5cw&Fnr$t}fq4Q@v1pOe|4@F#rva@*zq%cH6)>zGc9
z?@iHZInuai{i#E;X-gu{d%7qvY)HGkgt=+GrHUZq@1<A5l^JH5R#`Cq&Afl*8Xtpe
z7qjC;rUmQM6gcCL6!OG>h%0tp@`H!n=*qhK!r+?PqO9$=9lvlYa24vmRA8J?HaYE>
z0dvAR<1=z{g?{(KQ}^*HGECSRyXok(_bW7la-5g~I-ljl9(|d$knQl|$B+6h<pu5b
z{9eXcw%aOkeP#Q#tM!L(iZgh8+0q<gA<R_T6`SY$Hf7Orz3s6sPV3h*OgXnJr@FTK
zJVWQaQ&0bVz2d^$wBG*SeF^=|ZhT*!=7(q1XUEnqUwt&A$XzKbenDaeqm_N+%fgqJ
d4(qLv4_!J}PT%O|aRvqk22WQ%mvv4FO#ogYpeO(U

literal 0
HcmV?d00001

diff --git a/mods/default/trees.lua b/mods/default/trees.lua
index 51a7a2e6..48718e5d 100644
--- a/mods/default/trees.lua
+++ b/mods/default/trees.lua
@@ -28,7 +28,8 @@ end
 
 minetest.register_abm({
 	nodenames = {"default:sapling", "default:junglesapling",
-		"default:pine_sapling", "default:acacia_sapling"},
+		"default:pine_sapling", "default:acacia_sapling",
+		"default:aspen_sapling"},
 	interval = 10,
 	chance = 50,
 	action = function(pos, node)
@@ -65,6 +66,10 @@ minetest.register_abm({
 			minetest.log("action", "An acacia sapling grows into a tree at "..
 				minetest.pos_to_string(pos))
 			default.grow_new_acacia_tree(pos)
+		elseif node.name == "default:aspen_sapling" then
+			minetest.log("action", "An aspen sapling grows into a tree at "..
+				minetest.pos_to_string(pos))
+			default.grow_new_aspen_tree(pos)
 		end
 	end
 })
@@ -395,3 +400,11 @@ function default.grow_new_acacia_tree(pos)
 	minetest.place_schematic({x = pos.x - 4, y = pos.y - 1, z = pos.z - 4},
 		path, random, nil, false)
 end
+
+-- New aspen tree
+
+function default.grow_new_aspen_tree(pos)
+	local path = minetest.get_modpath("default") .. "/schematics/aspen_tree_from_sapling.mts"
+	minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
+		path, 0, nil, false)
+end
diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua
index b3e09937..c3ce160e 100644
--- a/mods/stairs/init.lua
+++ b/mods/stairs/init.lua
@@ -287,6 +287,13 @@ stairs.register_stair_and_slab("acacia_wood", "default:acacia_wood",
 		"Acacia Wood Slab",
 		default.node_sound_wood_defaults())
 
+stairs.register_stair_and_slab("aspen_wood", "default:aspen_wood",
+		{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
+		{"default_aspen_wood.png"},
+		"Aspen Wood Stair",
+		"Aspen Wood Slab",
+		default.node_sound_wood_defaults())
+
 stairs.register_stair_and_slab("stone", "default:stone",
 		{cracky = 3},
 		{"default_stone.png"},
-- 
GitLab