From 778538daea4eb091608fbfb1c73b7b7ccbec0bd7 Mon Sep 17 00:00:00 2001 From: addi Date: Wed, 6 Jul 2016 09:25:45 +0200 Subject: [PATCH] Introducing Tuff and Rhyolitic Tuff Tuff and Rhyolitic Tuff are materials used in the Medival to build churches or houses of rich people. Tuff, Tuff bricks and tuff ruble are now available in Darkage. --- init.lua | 51 ++++++++++ mapgen.lua | 42 ++++++++ nodes.lua | 111 +++++++++++++++++++++ other_textures/darkage_tuff.xcf | Bin 0 -> 4754 bytes stairsplus.lua | 5 + textures/darkage_old_tuff_bricks.png | Bin 0 -> 868 bytes textures/darkage_rhyolitic_tuff.png | Bin 0 -> 728 bytes textures/darkage_rhyolitic_tuff_bricks.png | Bin 0 -> 948 bytes textures/darkage_rhyolitic_tuff_rubble.png | Bin 0 -> 1012 bytes textures/darkage_tuff.png | Bin 0 -> 726 bytes textures/darkage_tuff_bricks.png | Bin 0 -> 938 bytes textures/darkage_tuff_rubble.png | Bin 0 -> 999 bytes walls.lua | 5 +- 13 files changed, 213 insertions(+), 1 deletion(-) create mode 100644 other_textures/darkage_tuff.xcf create mode 100644 textures/darkage_old_tuff_bricks.png create mode 100644 textures/darkage_rhyolitic_tuff.png create mode 100644 textures/darkage_rhyolitic_tuff_bricks.png create mode 100644 textures/darkage_rhyolitic_tuff_rubble.png create mode 100644 textures/darkage_tuff.png create mode 100644 textures/darkage_tuff_bricks.png create mode 100644 textures/darkage_tuff_rubble.png diff --git a/init.lua b/init.lua index fb91811..4142c7c 100644 --- a/init.lua +++ b/init.lua @@ -228,3 +228,54 @@ minetest.register_craft({ } }) +-- Tuff +minetest.register_craft({ + output = "darkage:tuff 2", + recipe = { + {"darkage:gneiss", "default:stone"}, + {"default:stone", "darkage:gneiss"}, + } +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:tuff", + recipe = "darkage:tuff_rubble", +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:tuff", + recipe = "darkage:old_tuff_bricks", +}) + +minetest.register_craft({ + output = "darkage:tuff_bricks", + recipe = { + {"darkage:tuff", "darkage:tuff"}, + {"darkage:tuff", "darkage:tuff"}, + } +}) + +-- Rhyolitic Tuff +minetest.register_craft({ + output = "darkage:rhyolitic_tuff 2", + recipe = { + {"darkage:gneiss", "default:desert_stone"}, + {"default:desert_stone", "darkage:gneiss"}, + } +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:rhyolitic_tuff", + recipe = "darkage:rhyolitic_tuff_rubble", +}) + +minetest.register_craft({ + output = "darkage:rhyolitic_tuff_bricks", + recipe = { + {"darkage:rhyolitic_tuff", "darkage:rhyolitic_tuff"}, + {"darkage:rhyolitic_tuff", "darkage:rhyolitic_tuff"}, + } +}) diff --git a/mapgen.lua b/mapgen.lua index 03b1293..d7cbbaa 100644 --- a/mapgen.lua +++ b/mapgen.lua @@ -157,6 +157,10 @@ local function generate_claylike(data, varea, name, minp, maxp, seed, chance, mi end end +local mgparams = minetest.get_mapgen_params() +local seed = mgparams.seed + + -- Generate desert stone with iron in derset. minetest.register_ore({ ore_type = "scatter", @@ -188,6 +192,44 @@ minetest.register_ore({ }, }) +minetest.register_ore({ + ore_type = "sheet", + ore = "darkage:tuff", + wherein = {"default:stone", "default:dirt", "default:gravel", "default:stone_with_coal"}, + column_height_max = 20, + column_height_min = 15, + y_min = -200, + y_max = 200, + noise_threshold = 0.5, + noise_params = { + offset = 0.35, + scale = 0.19, + seed = seed+12, + spread = {x = 45, y = 45, z = 45}, + octaves = 1, + persistence = 0.6 + }, +}) + +minetest.register_ore({ + ore_type = "sheet", + ore = "darkage:rhyolitic_tuff", + wherein = {"default:stone", "default:dirt", "default:gravel", "default:stone_with_coal"}, + column_height_max = 20, + column_height_min = 15, + y_min = -2000, + y_max = 200, + noise_threshold = 0.53, + noise_params = { + offset = 0.35, + scale = 0.2, + seed = seed+13, + spread = {x = 100, y = 100, z = 100}, + octaves = 1, + persistence = 0.6 + }, +}) + -- Generate strati local function generate_strati(minp, maxp, seed) diff --git a/nodes.lua b/nodes.lua index ccdee6b..e8db214 100644 --- a/nodes.lua +++ b/nodes.lua @@ -233,3 +233,114 @@ minetest.register_node("darkage:marble_tile", { groups = {cracky=2}, sounds = default.node_sound_stone_defaults() }) + +--[[ + Tuff +]] +minetest.register_node("darkage:tuff", { + description = "Tuff", + tiles = {"darkage_tuff.png"}, + is_ground_content = true, + legacy_mineral = true, + groups = {cracky = 3, stone = 1}, + drop = { + max_items = 1, + items = { + { + -- player get tuff node if he is lucky :) + items = {'darkage:tuff'}, + rarity = 3, + }, + { + -- player will get rubble with 2/3 chance + items = {'darkage:tuff_rubble'}, + } + + } + }, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:tuff_bricks", { + description = "Tuff Bricks", + tiles = {"darkage_tuff_bricks.png"}, + is_ground_content = false, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +-- abm to turn Tuff bricks to old Tuff bricks if water is nearby +minetest.register_abm({ + nodenames = {"darkage:tuff_bricks"}, + neighbors = {"group:water"}, + interval = 16, + chance = 200, + catch_up = false, + action = function(pos, node) + minetest.set_node(pos, {name = "darkage:old_tuff_bricks"}) + end +}) + +minetest.register_node("darkage:tuff_rubble", { + description = "Tuff Rubble", + tiles = {"darkage_tuff_rubble.png"}, + groups = {crumbly = 2, falling_node = 1}, + sounds = default.node_sound_gravel_defaults(), +}) +--[[ + Rhyolitic Tuff +]] +minetest.register_node("darkage:rhyolitic_tuff", { + description = "Rhyolitic Tuff", + tiles = {"darkage_rhyolitic_tuff.png"}, + is_ground_content = true, + legacy_mineral = true, + groups = {cracky = 3, stone = 1}, + drop = { + max_items = 1, + items = { + { + -- player get tuff node if he is lucky :) + items = {'darkage:rhyolitic_tuff'}, + rarity = 3, + }, + { + -- player will get rubble with 2/3 chance + items = {'darkage:rhyolitic_tuff_rubble'}, + } + + } + }, + sounds = default.node_sound_stone_defaults() +}) + + + +minetest.register_node("darkage:rhyolitic_tuff_bricks", { + description = "Rhyolitic Tuff Bricks", + tiles = {"darkage_rhyolitic_tuff_bricks.png"}, + is_ground_content = false, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:old_tuff_bricks", { + description = "Old Tuff Bricks", + tiles = {"darkage_old_tuff_bricks.png"}, + is_ground_content = false, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + + + + + +minetest.register_node("darkage:rhyolitic_tuff_rubble", { + description = "Rhyolitic Tuff Rubble", + tiles = {"darkage_rhyolitic_tuff_rubble.png"}, + groups = {crumbly = 2, falling_node = 1}, + sounds = default.node_sound_gravel_defaults(), +}) + + diff --git a/other_textures/darkage_tuff.xcf b/other_textures/darkage_tuff.xcf new file mode 100644 index 0000000000000000000000000000000000000000..bcaa808c4c6e054bdb32eb29360cc2150e7166a8 GIT binary patch literal 4754 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 KMNUMnLSTZJJ3=l1 literal 0 HcmV?d00001 diff --git a/textures/darkage_rhyolitic_tuff_bricks.png b/textures/darkage_rhyolitic_tuff_bricks.png new file mode 100644 index 0000000000000000000000000000000000000000..9abb90779e5c5bc33c402d25073273256eca922a GIT binary patch literal 948 zcmV;l155mgP)WFU8GbZ8()Nlj2>E@cM*00S6FL_t(I%VpBLZyR+0 z!13=re7=j%_wbv9ByG}$XA@Kq6-*T{bzxv&10*I^MpiZ?g!l(wsD$_rkPsUSNT{eS zqzTQ#X`IBd9XogSy?l=!1L{!mH+(+Q{#T!g?opSz<8m=Nr`=g1&oX|z_lS2}RhHJ* zN#;4-qdm+l$Lus&xw1xX);WK?joR7RKwrB_d~gr9Sx2>77$T)~{~zS4$z(c1Q3RW> zy}{9+e~_2Uu(XL~S!fj#b<#Z|jzVNbVduepUfkTm7c!D4C`q8H3T0z~Jc(G{+@i9y zf=Gsp_ji#okkg_-Hx|eQw4ZyP@nDD$0}!-Fn`5VYzI4BJA}3@-X-)aw?iuA_eV<`za-bp24^Qd+?U^?YCHV={nxbXHS$Z32f5(m+qbY99ZGH!c`_bSv24;XU=~EA;|asl z9#WCB^V1JpJp7d;N=XGcE2|(YnC(Sm(?p)0p<0zHPY${~{A-)F%fU0wQ5;ibDV@a@ zHQV80bdEO-80|eGEebAAPf?#bUtPU|Li9gpQ zkR^qxp`uz2Ss_T{fU;^Jl8|JcAW1TjKfrCTAW<;&e6ln~{q*)N!dXBx4_Uwd5;NaN zk>Kw3fIG_u<%&s3mI;%D(Dx9cz-hD)ro}hk-95$xkQo77!A&8w%RC?#5_x3o*+?BWFU8GbZ8()Nlj2>E@cM*00US_L_t(I%T?0PPg?~5 z!0~V2&zAQJEk8yng*LQ+pls8r;HFVF!Gnh_8g*)n#<+t!c`=JO5--LWZyt;uTs)bW znV4lEm~2xrGBVg;M5-{h!uVlnp?&RZ%WGfX^Jd)N@cDSwzWmrtt*4m!`ya;R&9sL) z`SHdQZ#>gaetVnFcpR%*=bOpjd8;>s9%`dI*2BeHtBge&5kh@^JU03os?SSeV31&} z7d;q6m1P9KPOfNT*=3^9D55A*S5@ddjG(p9b@W+8zkM(--Z9Z6Oc>Mp3Nf?KKZ_Sgs>ZxcSvOJ#qD`CD^LKiI`I zO9aE6sNP2Q?k%HxSJ9gqksLfUcohPP1c%mk*eI6J4(h0xGMCm0sCt52WfQZQ$CzEG zYv?fkKr84MOVZzbB{c!+cq`F;rriiBAq_c zgG-%`&OjdbNM?&12ns9vCaH85YzyJQws}6RaUvGt{F#@Ld^%INm$`cVD!S%HRutU- zJ$di=5O0n=#kp5rq@}e5;p;EH;!1K0vzR9}dy{vbj`P9EVNf(&f0zeZ1J?tW?`OI2 z{%PxE=0bCK6hV>+w1o+0%6#|pC9>%>t!?d`8-I>#iz@^L ihj75pW;RDUxx~LXEq>Ur`Q7pW0000WFU8GbZ8()Nlj2>E@cM*00KHmL_t(I%Z1XgrA{0cHrbsDCa*fSeoxA>! zJcoLt!P)f?x9F2*Fc?QviZ;U_U_2b)`9A$Ygf@v2bVFwp&M7%28|4N2EyO!7q7q+8w;2PnM))%M{mh5tgo!=L(jobKMIFM-NQn2;Gu2_Zr0UjLTlYB$`mG zmhs#IgNHFeFv7D{gve7I6Aqg@9KCF!8wQ3Y>0Vq=sg`;7_6>QyU=&U{{`QmcuusV? zP>?#dZ6o@_5PQAID4Y>RF{AN>t6o5w>wNxl%*n5F!UWO`wreE}RiW&=SW*&A=VIo}T+9(^KKIj?%6zB<@> zuL^|?&*AR&7Q?hzEK=5-0vUoZj94Og2&WVsldZ-U(w5}el4v?Zi{lxSIKeVC>eVu) zv}v`wn9{~uGnq#!=|4{lL&q=;tb#*xuYp+UyyA&i<-F?2A2p$77kmFFv;Y7A07*qo IM6N<$g4g^WFU8GbZ8()Nlj2>E@cM*00Rz5L_t(I%Vp9%ZyRL* z!14b*_vYu~^PSIU=Y@tOBqUG}6jU)$iK&PMfz*j^Y+Ec; zG0zNoCw+thE#G5%V+|>F4tsy2?QUITiXs$5nde9;Nh^(&)ip+!6RHYq$K~XFg46WLOSqbabea~E@tE1<3fK3!yb95R zC`C7Prt<{PHfgo5A%ub@4Scsnw|j)^*!Z4H@3@EC^eNMvvdD2<2kpn7e?ij?vNR(M z0z9vQ>nyRzpg%n4s5hXj6qfx4cHP1>`do~z@LDd?(9k}3_Z`fd$)oNOw{E^o7%ecR zkI1XQY^)(&8MG(xH1`|HMeG9MU;n;P=`lY%En9E9QQA8dD+qF?(|{~X(LQ|tHc=R|NHSj8S!X^A5CXpcZJ)RH zcBxxBx~dSxDbpZWFU8GbZ8()Nlj2>E@cM*00T=&L_t(I%T?0fZxaOo z!13?(e)R6z(yp|0t;@Q?=WhB3m3nGy^!zL=Q!Wc&+!;?2Y-{{R!?Bl@sJ zhb9g|1!hJa&~9TtSzX7*y0Ufa_2>1j=bLeV!{;N6fAgi2Ti+m)nP;FsNq5A@%{yt% zpF2x&yFhOuhS5^^e*7jwub$>;D9DL;jLAQz=ue(NN+!C9zZ79*afwrXar|BtUm$>@ z$oMpg-Esp_G)csxNTLf(w26lO=$ghre=njW*w<$sW^mdLcOPWwPbFDc%Fz`GVzz8l zO~IpSEI-XtX*8)en#?Y(VH}jn&Mza4j=YX63e*}VH-5UqPO*e#+r+xM`1QBHI6Kr$ zty-nlF!}7GF^qBrmkUCXPF7d*NR^t2tjHV~O*BQ~(fkTtua_TxzRl+L3l>(N;?*^- zjlE57Ek~duMBB7z+ZO(SA4!!(EJr|f%QTxNmqrFr+zP74N4d1e^xt#LF6F3HE5ssU z+?vkn+6Hb-C*XA>xf~0hDiTTb@M!iJFG^(;)s3@TVkWzcTU9Zt6%LF#o6i?G)7MSV z@4=(V=(>(nEEy#GIyo>Jm}U!IQ<=Cmh23^YC6ALzon$JVei0)_?$h{qx%dZMi6p3$;wYW4b|Czjo&-c}f&xP>(Q+ADxVG}=ja zZiOd{%UroQ%&t)*)Nus2>c(tYhn{Q{%j|CzNya;o6j?x1bz03Pss1D`N#MI5exY8g zAxk1w+o9R0<56X9-+#!3bAxy_m5|@VbYTz4-w~o#tzwj`yxbdPGQY`{%jf@d_UiJX zC-xj*2`Fd`B6U#FB<6as`Qc&FrmTlwn9lTGR2#}))O z3q`iJ3s|;=t7Tf8Jl?~pz62j%yNs$S+