From 6efbb5f42ff502866956c82e9a371e85b85d3094 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 10 Feb 2017 04:15:14 +0100 Subject: [PATCH] Add nether wart --- mods/mcl_nether/init.lua | 15 +- mods/mcl_nether/nether_wart.lua | 130 ++++++++++++++++++ .../textures/mcl_nether_nether_wart.png | Bin 0 -> 270 bytes .../mcl_nether_nether_wart_stage_0.png | Bin 0 -> 254 bytes .../mcl_nether_nether_wart_stage_1.png | Bin 0 -> 554 bytes .../mcl_nether_nether_wart_stage_2.png | Bin 0 -> 971 bytes 6 files changed, 138 insertions(+), 7 deletions(-) create mode 100644 mods/mcl_nether/nether_wart.lua create mode 100644 mods/mcl_nether/textures/mcl_nether_nether_wart.png create mode 100644 mods/mcl_nether/textures/mcl_nether_nether_wart_stage_0.png create mode 100644 mods/mcl_nether/textures/mcl_nether_nether_wart_stage_1.png create mode 100644 mods/mcl_nether/textures/mcl_nether_nether_wart_stage_2.png diff --git a/mods/mcl_nether/init.lua b/mods/mcl_nether/init.lua index 3fbe7783..8ed09a58 100644 --- a/mods/mcl_nether/init.lua +++ b/mods/mcl_nether/init.lua @@ -217,24 +217,25 @@ minetest.register_craft({ minetest.register_craft({ output = "mcl_nether:red_nether_brick", recipe = { - {'mcl_nether:nether_wart', 'mcl_nether:netherbrick'}, - {'mcl_nether:netherbrick', 'mcl_nether:nether_wart'}, + {'mcl_nether:nether_wart_item', 'mcl_nether:netherbrick'}, + {'mcl_nether:netherbrick', 'mcl_nether:nether_wart_item'}, } }) minetest.register_craft({ output = "mcl_nether:red_nether_brick", recipe = { - {'mcl_nether:netherbrick', 'mcl_nether:nether_wart'}, - {'mcl_nether:nether_wart', 'mcl_nether:netherbrick'}, + {'mcl_nether:netherbrick', 'mcl_nether:nether_wart_item'}, + {'mcl_nether:nether_wart_item', 'mcl_nether:netherbrick'}, } }) minetest.register_craft({ output = "mcl_nether:nether_wart_block", recipe = { - {'mcl_nether:nether_wart', 'mcl_nether:nether_wart', 'mcl_nether:nether_wart'}, - {'mcl_nether:nether_wart', 'mcl_nether:nether_wart', 'mcl_nether:nether_wart'}, - {'mcl_nether:nether_wart', 'mcl_nether:nether_wart', 'mcl_nether:nether_wart'}, + {'mcl_nether:nether_wart_item', 'mcl_nether:nether_wart_item', 'mcl_nether:nether_wart_item'}, + {'mcl_nether:nether_wart_item', 'mcl_nether:nether_wart_item', 'mcl_nether:nether_wart_item'}, + {'mcl_nether:nether_wart_item', 'mcl_nether:nether_wart_item', 'mcl_nether:nether_wart_item'}, } }) +dofile(minetest.get_modpath(minetest.get_current_modname()).."/nether_wart.lua") diff --git a/mods/mcl_nether/nether_wart.lua b/mods/mcl_nether/nether_wart.lua new file mode 100644 index 00000000..63bfed34 --- /dev/null +++ b/mods/mcl_nether/nether_wart.lua @@ -0,0 +1,130 @@ +minetest.register_node("mcl_nether:nether_wart_0", { + paramtype = "light", + walkable = false, + buildable_to = true, + drawtype = "plantlike", + drop = "mcl_nether:nether_wart_item", + tiles = {"mcl_nether_nether_wart_stage_0.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.125, 0.5} + }, + }, + groups = {dig_immediate=3, not_in_creative_inventory=1,attached_node=1,dig_by_water=1}, + sounds = mcl_core.node_sound_leaves_defaults(), +}) + +minetest.register_node("mcl_nether:nether_wart_1", { + paramtype = "light", + walkable = false, + buildable_to = true, + drawtype = "plantlike", + drop = "mcl_nether:nether_wart_item", + tiles = {"mcl_nether_nether_wart_stage_1.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.15, 0.5} + }, + }, + groups = {dig_immediate=3, not_in_creative_inventory=1,attached_node=1,dig_by_water=1}, + sounds = mcl_core.node_sound_leaves_defaults(), +}) + +minetest.register_node("mcl_nether:nether_wart_2", { + paramtype = "light", + walkable = false, + buildable_to = true, + drawtype = "plantlike", + drop = "mcl_nether:nether_wart_item", + tiles = {"mcl_nether_nether_wart_stage_1.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.15, 0.5} + }, + }, + groups = {dig_immediate=3, not_in_creative_inventory=1,attached_node=1,dig_by_water=1}, + sounds = mcl_core.node_sound_leaves_defaults(), +}) + +minetest.register_node("mcl_nether:nether_wart", { + paramtype = "light", + walkable = false, + buildable_to = true, + drawtype = "plantlike", + drop = { + max_items = 2, + items = { + { items = {"mcl_nether:nether_wart_item 2"}, rarity = 1 }, + { items = {"mcl_nether:nether_wart_item 2"}, rarity = 3 }, + { items = {"mcl_nether:nether_wart_item 1"}, rarity = 3 }, + }, + }, + tiles = {"mcl_nether_nether_wart_stage_2.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.45, 0.5} + }, + }, + groups = {dig_immediate=3, not_in_creative_inventory=1,attached_node=1,dig_by_water=1}, + sounds = mcl_core.node_sound_leaves_defaults(), +}) + +minetest.register_craftitem("mcl_nether:nether_wart_item", { + description = "Nether Wart", + inventory_image = "mcl_nether_nether_wart.png", + wield_image = "mcl_nether_nether_wart.png", + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + -- Check for correct soil type + local chk = minetest.get_item_group(minetest.get_node(pointed_thing.under).name, "soil_nether_wart") + if chk ~= 0 and chk ~= nil then + -- Check if node above soil node allows placement + if minetest.registered_items[minetest.get_node(pointed_thing.above).name].buildable_to then + minetest.set_node(pointed_thing.above, {name="mcl_nether:nether_wart_0"}) + if not minetest.setting_get("creative_mode") then + itemstack:take_item() + end + return itemstack + end + end + end, + groups = { craftitem = 1 }, +}) + +local names = {"mcl_nether:nether_wart_0", "mcl_nether:nether_wart_1", "mcl_nether:nether_wart_2"} + +minetest.register_abm({ + nodenames = {"mcl_nether:nether_wart_0", "mcl_nether:nether_wart_1", "mcl_nether:nether_wart_2"}, + neighbors = {"group:soil_nether_wart"}, + interval = 35, + chance = 11, + action = function(pos, node) + pos.y = pos.y-1 + if minetest.get_item_group(minetest.get_node(pos).name, "soil_nether_wart") == 0 then + return + end + pos.y = pos.y+1 + local step = nil + for i,name in ipairs(names) do + if name == node.name then + step = i + break + end + end + if step == nil then + return + end + local new_node = {name=names[step+1]} + if new_node.name == nil then + new_node.name = "mcl_nether:nether_wart" + end + minetest.swap_node(pos, new_node) + end +}) + diff --git a/mods/mcl_nether/textures/mcl_nether_nether_wart.png b/mods/mcl_nether/textures/mcl_nether_nether_wart.png new file mode 100644 index 0000000000000000000000000000000000000000..be0a6a98580539d40d830f6745437dbcd1cd99fb GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}S3O-ELn02powl3zumO+D zR;R8V9`o&_ca%TmG>SiVB8z98K*0jhS|zVWMllv1(Yo_Cv&sY}emKvi_kc;SK&$cl zF3wk_^&U2dODcZ ZubJh(N{ecAGcYhPc)I$ztaD0e0swU@Yc2o) literal 0 HcmV?d00001 diff --git a/mods/mcl_nether/textures/mcl_nether_nether_wart_stage_0.png b/mods/mcl_nether/textures/mcl_nether_nether_wart_stage_0.png new file mode 100644 index 0000000000000000000000000000000000000000..7a73f345eaece6e66e2c9211333df09949ff2391 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}M?GB}Ln00*|M>sk{;)$* zTOfOnRl*g<#e5Q_2Uak<$r`+B2xRB6W`Dw^@$Y!s%SQ|oTqm36{CjWmp($BFzNOHz zDa)=glJD>lt0s-Z6AF1|zo-xT+E8HFtP!?XMLOhwV)Ipnm|qTJhYei$7$SKNAF*Iq zHZ6%=A-d;0qrqMU%bZt*FAu(C$Pp7RV&HgO#Nc^TV97y7jn+H?51#pn3U7`bYG25& z;#OqYaGJ5@6w@v%1`(+jZIfRWY?5WzBr`2+f~?~zW(Jl{_UrN+PQPSeU|{fc^>bP0 Hl+XkKwnJV% literal 0 HcmV?d00001 diff --git a/mods/mcl_nether/textures/mcl_nether_nether_wart_stage_1.png b/mods/mcl_nether/textures/mcl_nether_nether_wart_stage_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e8c79504415aa886b8154eac84cdd185556d5508 GIT binary patch literal 554 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfA3a?hLn02popRdmP=JW* z>Lwv2{)HkstereEvnAa5N*-L9vErbFXk!PXu=*^EPws!j_rE={uV~ig)43~suN*PB z@zVEp?X_2zm6TrVC+o6^F>yDx9@sBhp}9k3s=O$}gW7a`qvnvt9;U*xj}O_G_5Ycn zA~gHBU`Nyb$ejxs;(W9Y7B70Res$RnhX_yee(eR#lJh(qW*ry2a8Sr@+q6ThJ_&bi z&RHig8QX*$U@@C{zFM%b?~U=4-^TMFmY;oI+oz*&aM`|#F;1lgGCM>Z<^@+)Ma9k5 zKj6yAYwWL85PasWxJ3Bgnd!^Lf9Aco$jaca)3DZ);r53AM^1WOvu{5*$Aj^Wi{$P0 zs?XeU8ka35FHN*s+cjOaebIwIix0`nc^&_=gpd0{go6X$(O>KCh6y>}Uih#|Pod#q zVgetxhQ)zEreC6^UZJWDCDL+tt+r_?S}fyc(6A3*Q+RIW^NTBP1w05m7#3~${5F&L z>@tUj#AP0gPxb{Zj$66p*_^9$7clTY`Sg&5<43}7SKIST*9C_aJh6xmaV^>bf)KduC8K-S$^#BWC*uceh_~#rBm^@v?c5D*d2Mf zfy-a6QYxBo_J`}5pJK&N3ePFVdQ&MBb@00?~a2mk;8 literal 0 HcmV?d00001 diff --git a/mods/mcl_nether/textures/mcl_nether_nether_wart_stage_2.png b/mods/mcl_nether/textures/mcl_nether_nether_wart_stage_2.png new file mode 100644 index 0000000000000000000000000000000000000000..384f5fc1a3dc411e8ce804e341c738ba41aa7cfc GIT binary patch literal 971 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANOKlRRAg>?m^l zbvI*G&&J7f*{gIxwz4+OG>vX^LScV6`rWgI4&ak}E;KZt3d#BCHt(sSn z`e6E*35$K?!t#CC&OUPGn7uRj!ug-GV|o?l^c=OYyl40$_{fG%vqL`xxtIDrsjy7b zm)bb*<9B{pJMDXHA8gGtdpB9WTC(==B#sTb3@ffFA2_~FLVRX4gVEkoF(zuow;WRS z*5^ttm}&UxO6f^K2iERm675b5w*^CHPkEou$kD{`VWvV3gT31Fsn6~oTUT_EZ7oyH z+}Rs>=Js7+YnUWH`KP1F8kPfw=T*KlFfEvK=I8wlx0bYItT75_?5Ga-+!;C{`Sm+S zNe8p=RDWL8a7UZ+ixDQ<8GKyXif&4$`t!D)y6$j9#jNCPP+<1@-HvNJHB%gJTBj<^ zmghXKDBaD_7w^1z+s+vWm%ZDZ;`Ll__T}nbCD$G)R>*aK5M27J<7(|i4hIu4Mwi9P ztsnk23O-`U=UH6JuvsjJOL9)j;R1;Z3m<(inz{9u)8fass+cN8&2t!5+|A+ocFDHJ z#gs*0w!rh>TX+9ndV4KP#px2AP$$+6^E(c?z2RAs$m&uox!~2e1AWh0&+e1RU)1!h z?R?b=zJ@a|B_9Vy-({Opy?Dc}@ao|I|#HVb!AQhtrndWm>U8*`cAv>>-cCGp&ZA_$_=7B#kS3_a5XCWN;Tf za5$#Em?7&Bt5^pE>)GVo4@=tTDjLVXd;g4~yjMYn&HCZob%)Ci9OpG$cSZPN@tPAg z7mg>Np6ncu!l1o4GeYM4fuL>Td7D$D{_##_5ROzmkmt}`bSZ#=dgfbLNRClAR&4OXy<3gSWg|wu^h?#P&m!>*u7+iij zQACGV-SU7A^DY5~Iq!K?bQxqgn-~I~Gjn9gFu0qzujN-;aKuc1gPYS`1EvkvWZQzw zI7Q2r-QLN#Pmb|}E!XvgZyX;g%4E8PnXd`@EMIhvq0-Ht;aR|^7zUP)#~H4FF=mjt z-u`=s7f;eu#|Z~RR1Tc(`OLmjg8jhPFV#;1jkzK%G iG=*^mdlcgj)=u8;;+^x%7cnp}FnGH9xvX