From daf5bf90a44cea62ee30cf7dbf117f747826faf1 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Fri, 4 Nov 2022 20:59:46 -0600 Subject: [PATCH 01/14] Add Honey, Honeycomb, and respective blocks --- mods/ITEMS/mcl_honey/init.lua | 83 ++++++++++++++++++ .../textures/mcl_honey_block_bottom.png | Bin 0 -> 839 bytes .../textures/mcl_honey_block_side.png | Bin 0 -> 830 bytes .../textures/mcl_honey_block_top.png | Bin 0 -> 830 bytes .../textures/mcl_honey_honey_bottle.png | Bin 0 -> 1998 bytes .../textures/mcl_honey_honeycomb.png | Bin 0 -> 1996 bytes .../textures/mcl_honey_honeycomb_block.png | Bin 0 -> 2114 bytes mods/ITEMS/mcl_mobitems/init.lua | 10 +-- 8 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 mods/ITEMS/mcl_honey/init.lua create mode 100644 mods/ITEMS/mcl_honey/textures/mcl_honey_block_bottom.png create mode 100644 mods/ITEMS/mcl_honey/textures/mcl_honey_block_side.png create mode 100644 mods/ITEMS/mcl_honey/textures/mcl_honey_block_top.png create mode 100644 mods/ITEMS/mcl_honey/textures/mcl_honey_honey_bottle.png create mode 100644 mods/ITEMS/mcl_honey/textures/mcl_honey_honeycomb.png create mode 100644 mods/ITEMS/mcl_honey/textures/mcl_honey_honeycomb_block.png diff --git a/mods/ITEMS/mcl_honey/init.lua b/mods/ITEMS/mcl_honey/init.lua new file mode 100644 index 000000000..7ced3b65d --- /dev/null +++ b/mods/ITEMS/mcl_honey/init.lua @@ -0,0 +1,83 @@ +--------------- +---- Honey ---- +--------------- + +-- Variables +local S = minetest.get_translator(minetest.get_current_modname()) + +-- Honeycomb +minetest.register_craftitem("mcl_honey:honeycomb", { + description = S("Honeycomb"), + _doc_items_longdesc = S("Used to craft beehives and protect copper blocks from further oxidation."), + _doc_items_usagehelp = S("Use on copper blocks to prevent further oxidation."), + inventory_image = "mcl_honey_honeycomb.png", + groups = { craftitem = 1 }, +}) + +minetest.register_node("mcl_honey:honeycomb_block", { + description = S("Honeycomb Block"), + _doc_items_longdesc = S("Honeycomb Block. Used as a decoration."), + tiles = { + "mcl_honey_honeycomb_block.png" + }, + groups = { handy = 1, deco_block = 1 }, + _mcl_blast_resistance = 0.6, + _mcl_hardness = 0.6, +}) + +-- Honey +minetest.register_craftitem("mcl_honey:honey_bottle", { + description = S("Honey Bottle"), + _doc_items_longdesc = S("Honey Bottle is used to craft honey blocks and to restore hunger points."), + _doc_items_usagehelp = S("Drinking will restore 6 hunger points. Can also be used to craft honey blocks."), + inventory_image = "mcl_honey_honey_bottle.png", + groups = { craftitem = 1, food = 3, eatable = 6, can_eat_when_full=1 }, + on_place = minetest.item_eat(6, "mcl_potions:glass_bottle"), + on_secondary_use = minetest.item_eat(6, "mcl_potions:glass_bottle"), + _mcl_saturation = 1.2, + stack_max = 16, +}) + +minetest.register_node("mcl_honey:honey_block", { + description = S("Honey Block"), + _doc_items_longdesc = S("Honey Block. Used as a decoration and in redstone. Is sticky on some sides."), + tiles = { + "mcl_honey_block_top.png", "mcl_honey_block_bottom.png", + "mcl_honey_block_side.png", "mcl_honey_block_side.png", + "mcl_honey_block_side.png", "mcl_honey_block_side.png", + }, + groups = { handy = 1, deco_block = 1 }, + _mcl_blast_resistance = 0, + _mcl_hardness = 0, +}) + +-- Crafting +minetest.register_craft({ + output = "mcl_honey:honeycomb_block", + recipe = { + { "mcl_honey:honeycomb", "mcl_honey:honeycomb" }, + { "mcl_honey:honeycomb", "mcl_honey:honeycomb" }, + }, +}) + +minetest.register_craft({ + output = "mcl_honey:honey_block", + recipe = { + { "mcl_honey:honey_bottle", "mcl_honey:honey_bottle" }, + { "mcl_honey:honey_bottle", "mcl_honey:honey_bottle" }, + }, +}) + +minetest.register_craft({ + output = "mcl_honey:honey_bottle 4", + recipe = { + { "mcl_potions:glass_bottle", "mcl_potions:glass_bottle", "mcl_honey:honey_block" }, + { "mcl_potions:glass_bottle", "mcl_potions:glass_bottle", "" }, + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "mcl_core:sugar 3", + recipe = { "mcl_honey:honey_bottle" }, +}) diff --git a/mods/ITEMS/mcl_honey/textures/mcl_honey_block_bottom.png b/mods/ITEMS/mcl_honey/textures/mcl_honey_block_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..9de96528442e5aa14376c55d3600418fe6ce3e42 GIT binary patch literal 839 zcmV-N1GxN&P)EX>4Tx04R}tkv&MmKpe$iQ>7vmQ7eczWT;LSL`58>ibb$c+6t{Ym|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfadlF3krMxx6k5c1aNLh~_a1le0HI!Hs@X9CsG4OY zV^J}aT@?eb2%-;z5YR6%Q;(+>)9@T$_we!cF2b|C&;2=il$^-`pGZ8%bi*RvAfDN@ zbk6(4Ay$+W;&bA0gDyz?$aUG}H_ioz1)do)(#d(^5V2TjW4Vo4(NKw}iNlJjQNECI zS>e3JSuIyt^Pc>L!JM{|;yTR{#IS@o5)dJyiW17O5TR8g#YB?!qaOZY$DbgVOs*0b zITlcX3d!+<|H1EW&HU7)n-q)!oiDciF$x5Bfkw@?zmILZaRT_Cfh(=$uhfCrPtt2G zEqny@ZUYzBElu77E_Z;TCtWfmNAlAY@_FF>jJ_!g4BP_UYi@7NeVjf3Y3geE1~@nb z#tM|Z?(y!f_TK(I)9mjDHuZ9kU_3~v0004gNklo_n6>?(KcQ z2Opfo{*a>w{iO%``Bm8-fJNQ_5V*qpaoryA&H0)U-qy`qGGOvV)eb!jY1k<}MXb!luNPBq*4jGbxuF@Kg-oN6CrRUH^a zTCvC*dy_PX4==A*9=Hn>go8u!<@Jhlaie?oEJGsOdLRY2St8QP8xmiB%pc(Z`W>1f z(u(zRL-zIzK)WqGu;KkB#b|1Mfg^zb=7wT4^@dJChDX+myg2~Wr6GBIqTLoplez)- zb==&}wCsN&aKEieGV0Q>UT$nIPBoKpMO_-J-v#W;pBCDpFH17(forZxGPd&>Kxg8q zKKTzS$t-Z3YR{WUD=-Z`*+zGnM58pil;z1~nJfcI>{peg2Y_iHugP)EX>4Tx04R}tkv&MmKpe$iQ>7vmQ7eczWT;LSL`58>ibb$c+6t{Ym|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfadlF3krMxx6k5c1aNLh~_a1le0HI!Hs@X9CsG4OY zV^J}aT@?eb2%-;z5YR6%Q;(+>)9@T$_we!cF2b|C&;2=il$^-`pGZ8%bi*RvAfDN@ zbk6(4Ay$+W;&bA0gDyz?$aUG}H_ioz1)do)(#d(^5V2TjW4Vo4(NKw}iNlJjQNECI zS>e3JSuIyt^Pc>L!JM{|;yTR{#IS@o5)dJyiW17O5TR8g#YB?!qaOZY$DbgVOs*0b zITlcX3d!+<|H1EW&HU7)n-q)!oiDciF$x5Bfkw@?zmILZaRT_Cfh(=$uhfCrPtt2G zEqny@ZUYzBElu77E_Z;TCtWfmNAlAY@_FF>jJ_!g4BP_UYi@7NeVjf3Y3geE1~@nb z#tM|Z?(y!f_TK(I)9mjDHuZ9kU_3~v0004XNkl3-r5QV=x++Zcgv2ZAX z0|{K}7}BIkrI6o|pO+>O1ciW&jVPp45aAj{SProguP}wq-tLj9mNzqR=e^wtzCXer zYH>VO=T@`ATFojactaA;k9PpXsb;g-(e1T8($BB0tpS)X&j5sOvqYp7D#<+T={_J% zHF2teswV_En9@s12+4S~1)#`{ol;~qL{pI)n}}1*em3P`O4jCLr;1bUll*S46GU1u zU!LtvQXoF`2OW>xB??>3E7%`&_%9xGV9(MdvaJV_aEm1(t-L1jWo<6Bn$W1&43SoB z7CW-{Hvr20$|LLc+N_2X>kHfn{5LnOh7+%;PSU+iJzt)$1VwI0US28ptD8wxgZnxz zb}%K!6NK)!RY^vX8#arb#o|;m9&IUdWA(d)4f)eDw&=@}%zEIOtCEcUYzk1BSl1{2 zK_!_bj#KS<6KMtJOd#9nE|X}KLU&|&a#^OJzRvY^t>g9FAM_ZlA~g`^;s5{u07*qo IM6N<$f{EXMHvj+t literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_honey/textures/mcl_honey_block_top.png b/mods/ITEMS/mcl_honey/textures/mcl_honey_block_top.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f330440817859c5f52277de140c4f8bcb477b1 GIT binary patch literal 830 zcmV-E1Ht@>P)EX>4Tx04R}tkv&MmKpe$iQ>7vmQ7eczWT;LSL`58>ibb$c+6t{Ym|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfadlF3krMxx6k5c1aNLh~_a1le0HI!Hs@X9CsG4OY zV^J}aT@?eb2%-;z5YR6%Q;(+>)9@T$_we!cF2b|C&;2=il$^-`pGZ8%bi*RvAfDN@ zbk6(4Ay$+W;&bA0gDyz?$aUG}H_ioz1)do)(#d(^5V2TjW4Vo4(NKw}iNlJjQNECI zS>e3JSuIyt^Pc>L!JM{|;yTR{#IS@o5)dJyiW17O5TR8g#YB?!qaOZY$DbgVOs*0b zITlcX3d!+<|H1EW&HU7)n-q)!oiDciF$x5Bfkw@?zmILZaRT_Cfh(=$uhfCrPtt2G zEqny@ZUYzBElu77E_Z;TCtWfmNAlAY@_FF>jJ_!g4BP_UYi@7NeVjf3Y3geE1~@nb z#tM|Z?(y!f_TK(I)9mjDHuZ9kU_3~v0004XNkl3-r5QV=x++Zcgv2ZAX z0|{K}7}BIkrI6o|pO+>O1Z`qtBMK=MM7Tx~mP4$>D@>uYw|iu&<;~37d2e@u?~m|@ zS{zT+xz((&RpiN-__7x(|p` zO`K|=>Inf3ru32$LNXq00Vr}~rxaNY(NyHdCgN1HpG`TKlC`S(^*3CNwHGL!=d( z#g6R#4S;gL^2oZqHml*p`T{os|IH1n;lyjIlXP!W&zI*bL6IAhmsiUD>Sj{a;J%KF z9Zbpb1flzFRgzKUhRtGUu{hO?M_Y>ASp6dNxT$U-QuXBA}>v%o)2mPk4D2_DGga7~l07*qo IM6N<$g0cF8VgLXD literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_honey/textures/mcl_honey_honey_bottle.png b/mods/ITEMS/mcl_honey/textures/mcl_honey_honey_bottle.png new file mode 100644 index 0000000000000000000000000000000000000000..16956f56e62f4fcee9d6f8f0e0cfe96c6a30eee1 GIT binary patch literal 1998 zcmV;<2Qm1GP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+TB-KmLw+({O1%t0@_%P!}^|Y;Nv?;sHJPVJUu=B zu`^#5q!J_%AqmQjzy6%=4_r(doLWpFhv0E(*31Q+jwj}#0S6lFeH4xtmo`_$Q@FRZCKV$d;;Jx>PpTBt~4>-1>+p@w7 zPDf7mBA2@v{@@Yu-7-IWq{T=7d_CbeXHRpEy}GjEC~G*2x-I4EVPJ(Sxuyl&5s#rC zuRG&TzW4^#I+j|UuXxGCKzx!?r$Up))i!EyQF(Ag%iMtYk|l|pxq%E4T{lgRPO@}K zV5NaMftc^U&}BC-doY$@xf4b*K^Zvyc)M4@ckd61=3HS;}Cj zYg499n_9iOFgF1+9(w(~pb8mTbK=)U9nBQyN+W|6K-p0F1YD2##h`nYDEGa*n3Ydhna9~9jp8n?6P0+(*2`rCrylLP?Ugjb4{q{i zcNmJ`2wS7W!OPENGH}eixmxwtGuORy_1V*D<-F^ZL7?%ZG0ws_4%{$CnWemA6-Tko zH>T|PID=o)XFjX=lpgoh$bI4OD1y%kCEZJR<)lStT~M`CyJxF9>)P~g6(^@w_vEZ2 z3vKTz4l#2rz>&=|GV1?t=D+(qzmFoD8An$9KPuZs0Qg}8op7XmcGtb}S1KJ4tP76i zw@i4O2<~4&+Ls+ivs**7w3f~QLb!|%(JlFSxORYB7>;)0p+|Ld*^}^y>Tm8xDE_mY zU1dcz{wX}WP4~s=Hr`Z2-$eMpr@Z3m(p-pJjDHDz-tdirlY^j=ecjRb8{`af$2aR# zIh9CpO8I1pdlrm%>owcc2(agVue9ZTA$4D?v_EhEvx?%xfiJti0j!b%C^KkxZ~y=S zglR)VP)S2WAaHVTW@&6?004NLeUUv#!$2IxUsFq^R2=Le>X4y2Sr8R*lqwd%LTM|s z>R@u|7c^-|Qd}Gb*Mfr|i&X~~XI&j!1wrrw#L3Y~(M3x9Us7lhM{K$3LSDQzS=msD zr-`GAs!_g>b6MfM#aXS^S^J*+h2es>lHoed5hSpLBvKF|qmBxyun?nFBgI6T_TwJ@ zA;+I0mrSk-7&#VDg9^#?i4sjut%v`nQ3L>y9Sx0hc?#;FB&Hk|X(P3dJJuen#Jv2L^6|(3;y@dmpC{ zK$f~%z5xynfw2;0uY0_^x4XB0&$Rpd0srQ5dA~;>*#H0l24YJ`L;(K){{a7>y{D4^ z000SaNLh0L04^f{04^f|c%?sf00007bV*G`2jl`90}(jIL{%LC0081iL_t(I%VS^| z)Zo>bE&nHG#Q(>qh6$I%w$tzbA3b!Q;o-9v43k!z!)XW$E{QvL?=z^_<}fHoc{4nH z_M9}Qm-lV`zwPw<|H!ThN$&YimSz~3wBj6ALomExZ)?S1bWoDv*J_#ntm5i$@!v1~ z7@lg+Bt8(|c|B&>&bbDv`6dGc0|SG!lq6vT?%ci4@ZrsG1_lNO2A2oA2m>F!AuSpi zrgLHlsVFNFZ@@YG=LBuX8i=qsS6VB=@J@u4K?o}T;mvP`J9qCBHsJ2n>kPYGPop|l g0TMPOCn&lA00F;Y; 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mobitems/init.lua b/mods/ITEMS/mcl_mobitems/init.lua index 256be9025..e1b39660f 100644 --- a/mods/ITEMS/mcl_mobitems/init.lua +++ b/mods/ITEMS/mcl_mobitems/init.lua @@ -402,11 +402,11 @@ minetest.register_alias("mobs_mc:gold_horse_armor", "mcl_mobitems:gold_horse_arm minetest.register_alias("mobs_mc:diamond_horse_armor", "mcl_mobitems:diamond_horse_armor") minetest.register_craftitem("mcl_mobitems:glow_ink_sac", { - description = S("Glow Ink Sac"), - _doc_items_longdesc = S("Use it to craft the Glow Item Frame."), - _doc_items_usagehelp = S("Use the Glow Ink Sac and the normal Item Frame to craft the Glow Item Frame."), - inventory_image = "extra_mobs_glow_ink_sac.png", - groups = { craftitem = 1 }, + description = S("Glow Ink Sac"), + _doc_items_longdesc = S("Use it to craft the Glow Item Frame."), + _doc_items_usagehelp = S("Use the Glow Ink Sac and the normal Item Frame to craft the Glow Item Frame."), + inventory_image = "extra_mobs_glow_ink_sac.png", + groups = { craftitem = 1 }, }) From 4bb824cd388d0703346d50adf178775a971a218b Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Sat, 5 Nov 2022 09:28:17 -0600 Subject: [PATCH 02/14] Add mcl_honey mod.conf file along with translation templates --- mods/ITEMS/mcl_honey/locale/template.txt | 10 ++++++++++ mods/ITEMS/mcl_honey/mod.conf | 3 +++ 2 files changed, 13 insertions(+) create mode 100644 mods/ITEMS/mcl_honey/locale/template.txt create mode 100644 mods/ITEMS/mcl_honey/mod.conf diff --git a/mods/ITEMS/mcl_honey/locale/template.txt b/mods/ITEMS/mcl_honey/locale/template.txt new file mode 100644 index 000000000..a9814d617 --- /dev/null +++ b/mods/ITEMS/mcl_honey/locale/template.txt @@ -0,0 +1,10 @@ +Honeycomb= +Used to craft beehives and protect copper blocks from further oxidation.= +Use on copper blocks to prevent further oxidation.= +Honeycomb Block= +Honeycomb Block. Used as a decoration.= +Honey Bottle= +Honey Bottle is used to craft honey blocks and to restore hunger points.= +Drinking will restore 6 hunger points. Can also be used to craft honey blocks.= +Honey Block= +Honey Block. Used as a decoration and in redstone. Is sticky on some sides.= \ No newline at end of file diff --git a/mods/ITEMS/mcl_honey/mod.conf b/mods/ITEMS/mcl_honey/mod.conf new file mode 100644 index 000000000..6ef9d7e45 --- /dev/null +++ b/mods/ITEMS/mcl_honey/mod.conf @@ -0,0 +1,3 @@ +name = mcl_honey +author = PrairieWind +description = MineClone 2 mod that adds honey and honeycomb and the respective block versions. \ No newline at end of file From db0b44326b6b0a0756ed93654b2ae2bc64a24fe5 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Sat, 5 Nov 2022 09:28:38 -0600 Subject: [PATCH 03/14] Add crafting recipe item replacements --- mods/ITEMS/mcl_honey/init.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mods/ITEMS/mcl_honey/init.lua b/mods/ITEMS/mcl_honey/init.lua index 7ced3b65d..576a5459f 100644 --- a/mods/ITEMS/mcl_honey/init.lua +++ b/mods/ITEMS/mcl_honey/init.lua @@ -66,6 +66,12 @@ minetest.register_craft({ { "mcl_honey:honey_bottle", "mcl_honey:honey_bottle" }, { "mcl_honey:honey_bottle", "mcl_honey:honey_bottle" }, }, + replacements = { + { "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" }, + { "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" }, + { "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" }, + { "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" }, + }, }) minetest.register_craft({ @@ -80,4 +86,7 @@ minetest.register_craft({ type = "shapeless", output = "mcl_core:sugar 3", recipe = { "mcl_honey:honey_bottle" }, + replacements = { + { "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" }, + }, }) From 89b02c126aff1dde1c1d6f592809bc8f5e1c9c08 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Sat, 5 Nov 2022 10:38:21 -0600 Subject: [PATCH 04/14] Add basic beehives and bee nests Still need to add functionality --- mods/ITEMS/mcl_beehives/init.lua | 47 ++++++++++++++++++ mods/ITEMS/mcl_beehives/locale/template.txt | 4 ++ mods/ITEMS/mcl_beehives/mod.conf | 3 ++ .../textures/mcl_beehives_bee_nest_bottom.png | Bin 0 -> 2051 bytes .../textures/mcl_beehives_bee_nest_front.png | Bin 0 -> 6152 bytes .../mcl_beehives_bee_nest_front_honey.png | Bin 0 -> 6254 bytes .../textures/mcl_beehives_bee_nest_side.png | Bin 0 -> 6252 bytes .../textures/mcl_beehives_bee_nest_top.png | Bin 0 -> 6155 bytes .../textures/mcl_beehives_beehive_end.png | Bin 0 -> 2008 bytes .../textures/mcl_beehives_beehive_front.png | Bin 0 -> 2131 bytes .../mcl_beehives_beehive_front_honey.png | Bin 0 -> 2370 bytes .../textures/mcl_beehives_beehive_side.png | Bin 0 -> 2085 bytes 12 files changed, 54 insertions(+) create mode 100644 mods/ITEMS/mcl_beehives/init.lua create mode 100644 mods/ITEMS/mcl_beehives/locale/template.txt create mode 100644 mods/ITEMS/mcl_beehives/mod.conf create mode 100644 mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_bottom.png create mode 100644 mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_front.png create mode 100644 mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_front_honey.png create mode 100644 mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_side.png create mode 100644 mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_top.png create mode 100644 mods/ITEMS/mcl_beehives/textures/mcl_beehives_beehive_end.png create mode 100644 mods/ITEMS/mcl_beehives/textures/mcl_beehives_beehive_front.png create mode 100644 mods/ITEMS/mcl_beehives/textures/mcl_beehives_beehive_front_honey.png create mode 100644 mods/ITEMS/mcl_beehives/textures/mcl_beehives_beehive_side.png diff --git a/mods/ITEMS/mcl_beehives/init.lua b/mods/ITEMS/mcl_beehives/init.lua new file mode 100644 index 000000000..a9a1656fa --- /dev/null +++ b/mods/ITEMS/mcl_beehives/init.lua @@ -0,0 +1,47 @@ +------------------ +---- Beehives ---- +------------------ + +-- Variables +local S = minetest.get_translator(minetest.get_current_modname()) + +-- Beehive +minetest.register_node("mcl_beehives:beehive", { + description = S("Beehive"), + _doc_items_longdesc = S("Artificial bee nest."), + tiles = { + "mcl_beehives_beehive_end.png", "mcl_beehives_beehive_end.png", + "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_side.png", + "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_front.png", + }, + paramtype2 = "facedir", + groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1 }, + _mcl_blast_resistance = 0.6, + _mcl_hardness = 0.6, +}) + +-- Bee Nest +minetest.register_node("mcl_beehives:bee_nest", { + description = S("Bee Nest"), + _doc_items_longdesc = S("A naturally generating block that houses bees and a tasty treat...if you can get it."), + tiles = { + "mcl_beehives_bee_nest_top.png", "mcl_beehives_bee_nest_bottom.png", + "mcl_beehives_bee_nest_side.png", "mcl_beehives_bee_nest_side.png", + "mcl_beehives_bee_nest_side.png", "mcl_beehives_bee_nest_front.png", + }, + paramtype2 = "facedir", + groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 30 }, + _mcl_blast_resistance = 0.3, + _mcl_hardness = 0.3, +}) + +-- Crafting +minetest.register_craft({ + output = "mcl_beehives:beehive", + recipe = { + { "group:wood", "group:wood", "group:wood" }, + { "mcl_honey:honeycomb", "mcl_honey:honeycomb", "mcl_honey:honeycomb" }, + { "group:wood", "group:wood", "group:wood" }, + }, +}) + diff --git a/mods/ITEMS/mcl_beehives/locale/template.txt b/mods/ITEMS/mcl_beehives/locale/template.txt new file mode 100644 index 000000000..135786c7c --- /dev/null +++ b/mods/ITEMS/mcl_beehives/locale/template.txt @@ -0,0 +1,4 @@ +Beehive= +Artificial bee nest.= +Bee Nest= +A naturally generating block that houses bees and a tasty treat...if you can get it.= \ No newline at end of file diff --git a/mods/ITEMS/mcl_beehives/mod.conf b/mods/ITEMS/mcl_beehives/mod.conf new file mode 100644 index 000000000..905c86d5b --- /dev/null +++ b/mods/ITEMS/mcl_beehives/mod.conf @@ -0,0 +1,3 @@ +name = mcl_beehives +author = PrairieWind +description = Adds beehives and bee nests to MineClone 2. \ No newline at end of file diff --git a/mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_bottom.png b/mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..f3ad4a418efc7e8a4bfe8ce5bf9eada9d230cbaa GIT binary patch literal 2051 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 LuJ(Bg1ET*8&%jl= literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_front_honey.png b/mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_front_honey.png new file mode 100644 index 0000000000000000000000000000000000000000..d88dd655501b8f47a3395060b9dd8f2fb7c83d2b GIT binary patch literal 6254 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_side.png b/mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_side.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0de93d7fd8206022e4a72805e786a09f5208a3 GIT binary patch literal 6252 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_top.png b/mods/ITEMS/mcl_beehives/textures/mcl_beehives_bee_nest_top.png new file mode 100644 index 0000000000000000000000000000000000000000..5f80eb98e435444fdf30d0f335c1cd69d944d8e8 GIT binary patch literal 6155 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 q9b6~YBwPJ8rO zaB^>EX>4U6ba`-PAZ2)IW&i+q+O=2Nk?b}M{AUynfdB~};qa_-1`glNL&s=#_Pu>& zk7`8-qJU;M2x(RO=kKom!jE-u%8CyzI;Zio(MC=%f?mHhlD6}_FZ5x&_|n2fVbP9U;WCL9VhHSN8}yQjLZz9Zjd{W;pL}&ts*ZYx!ZE~UoRYoOY*w) zytW=>R6#t$ikl&$=b2X~0~98jG(7X{d3eIKHO?|;KKN7m&f$Z=(|Yiy%l4a#juq%w zmV5BD{Ul%WH(9zPB0e+o3!5Pj=3?4gKs+6cxn`5B@h?X0JZe}iQrZ0g0$YqLR$3dOFf<6_B zuqjZ^z|AKXnt9{MhhzbnD`6%Rf(=Dq4)t{W>G2Y%_fh6VI-Fbq7mum|jG^2(V-^IV zzB!f2FR3-?=WhsWprA~e0~VNcULms3Ra<82Y_up$wR-Ir@^uFQMaV4xLk0?HM@Gnz z_RO9LJO=2KfSirx3)tcW=A5+q7;##txMIqycFO5S+u#XIkP@X@DWf(;T}@F9d4QsijR#zaLIeGD)N+2@dBP6g#tY?0!MFQLSeDpym{0#tR?*HB|kjT%a+*(S|3 z-$IKmb<|on-FE4&`yP7i=~Qj2`l{Mfx$jk@tr}0E#yo$i2DkS|2pa7~hGtNVEkSWV z6hJ}q&`bximWOgfGacC|V}yZHhB%dmVo=aFV(D~hcPaN#HwAWosvCc$oEp;o7s{z2 z-A%c7-M&z*rrB=I6lm;1aEcCTu>A_Kgv2@MZfyh>Tww`3jq$EpBUUqv%r<2!1V$p> zN5ep?-G-JG3o3J}!zm8J&AXc15xX2QuWY3cLvePHw9Y3)OAITOYhXMqZ;bXmo1R9{ z?3PEN(6;NmMeA0Hr{@jgb0nuu%taPW9RQ(j^w@3BE2htK7eZd_? z>ZQXPAEP?f%WL|yyr30jSx;$~j{6@+^>Ela4eSZ$S25-J3R@BRis*S+-ct#Sqw)Ao z9lSv=Sw+-bY-mvnpexRP-e+T*sn>mWPALlxJ}8gvLQA9;#>dQ}tN=ec*tAu*p&Om+ z#*XjQQ&y^bb%jS4-m2d)9_=BZr>Kvc=~snGVI}vL5NMPA!Xm!5<^)G2JvG4p8t+YN zRrYt1{$w114xtl`SK90{DEqBQu&dy9y-8ed>mK103ZkA%Y2M_ca_uJo{wNlQcb04( zNX7a#^9JT#br%?yFSY*nesqc(%~jGDLcbBl=H2Tf>YIjhFOZ*4-8alLbaU)F1r>BtmsDa2Q{jy(m;l9mYdX@U3d0lV#W|!HzDUJJ~Rpon?t+WcL zE5CQ6&nO-5J{2R?MT3;&RC`~@ug0^B+F06wO@+7QA9umWaRgIqr5~r9K`&M=pYQnS z!vEdsUmkI=jGm}ViU0rsglR)VP)S2WAaHVTW@&6?004NLeUUv#!$2IxUsI(b6;UgQ zIAo|!7DPoHrHVzcP}&NuI+$Gg1x*@~6cM{K$3LaarNK#aS&^S@WL!g~6P*lHxke5yY^BI1&&c zqlyyBun?hDBgI6L_M;yDVaJ~!mrSk_7&#VDfeOj-ga5(rZq5AEq?;6s0-Z0m{V@sz zc7aCCw!e>UyKw^epMfi_<*(F%*-z4IEiHTm^lk$e*DX!n11@)fp(kB3BuDbo6!LlC z{fxdT3k=)>-D_@d&3&9c0BP!K`35*R1jY)Kz3%buuJ+#kJ=5&(2R8L`kKW6o?peU{i4&o*bBDlHxTl^>PT^-%K zhKepN9i+qzO-t{CYatHTyXLHQ$Oi{`+@b-}>;BZ)ZT4xthGj-fFzMpM$<{z!tAh5B+~2?m#^%mo0JP6+9QP<0pp1cFx* zOH$fk+uy2au-xGEAOryPhBLIA!A5~e--Mhdgc<;Jk}&|-HVnCZ;)o*@t9Clc7=hs0 z;Nfg%O=u<*z9TeaG%OGtz2VHhp5}9x`5P}eS+2B!B!!E^*mT<= zFKW7l+oQ-4nHEe?qzdO44FGueSC>|~>6ezI92^J^NeY4B_yK2ak@}E}sM`Pl002ov JPDHLkV1mgT^2-1K literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beehives/textures/mcl_beehives_beehive_front_honey.png b/mods/ITEMS/mcl_beehives/textures/mcl_beehives_beehive_front_honey.png new file mode 100644 index 0000000000000000000000000000000000000000..e47a7c776e6fc2ecaf5aa37ba6bdeef5a52de31b GIT binary patch literal 2370 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beehives/textures/mcl_beehives_beehive_side.png b/mods/ITEMS/mcl_beehives/textures/mcl_beehives_beehive_side.png new file mode 100644 index 0000000000000000000000000000000000000000..820acb4916c59d02bf1037482fb4f6a7e9025944 GIT binary patch literal 2085 zcmV+=2-^3FP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvvg0-k{O2ih1QH;)9EWRFZjj@rxoENMH}hU5 zQrUoD5(K*eP*&}qzq|Si7isU56(3x5PUEuCMoLhEUe}UF+xfj8^r5`i)%gR##E`rm zUEAXm>~c-;cH8r-UHP*8gzf0?ydCmbnV{4i}Ef!NJ~lXww?Xyh2k(tUOzpb ztp^xY;EzdBW5arW(^`oU1xHT9GQT|yOSoC$JAO*vF?;}cY7hK$*>=9*SdNZuxd%?$ zZsaq56Qz4ZhR&7gB_h^d->*A(lg`UU7IWnmPo7ze!cePMy%=A&13-ke1;H2w1KJrDZ;DQe!#E>FIMjI0qUGy=;7*oQc z$tL(p7@uIslsVfh*=3(YjyV;iPq9UcE53vhOR7}4q6Mhxs;{BOnwn`yrDmHn*L({t zw$zbpoxAPQUH3io*we|{X7!b|Cv(4M&1}|a5;ey8i#3?NKU|p6PGoQf#>g5l?gs-% zXd0a9V63IV+~7<{V#O?kC}ogS&0q`++Ga?)Ik~%-`;s>WbbrblePT`x>i!Sr)S&Lh z+&ga{SgUEaTb=}sDg>tJkc{#xh$SS-L3e-{#)H-|O$A#yETyku4w%za1AuHpDx|8_ z%cjXqCF#UGe@!)%5SBk}ZMI^pXmqXRx!8KHstyIv4J8wHzn1mrEN(d|`kIlJJBc_O zr{5*jq1>dT9aug?O?CVz&Kh^@x4e2(uQS=Kz-lQcFm<`hd|~yJSr8H2VVyIYwXamd z5zSYUs>~=gvJZ+HF9FkHwFxU&*BpGVFwm!d=W$8(y8+*o9~@Cx$P)j=mHLxdC@+{S z>7=%)uP9J%2Vy^z>ZcQsG>dec_~oF#<))_E45#u{l04;A1NUN7-0dXaqhihF5$G&i z4()1XijJC!rPZ~O&bHff?}o4SIdXsx%aIl8Elu2FH=1)&sI!*6H6ft1Fs084}%cUFELY(rxw%j9AEeF@%1jkv%Js!IeL_w$pD{7JjZmyBHkdL*|c=d z`@|tuloaA~;&Fp6Nc_lk+2uFR1&0Nm88XtzdEyYUSZHIpjaku9iKmIfimFk*ka1bz zyv129S6TC({Dr}swvysH%@M?~gg6oqA)|^C%CHcjRU^ejlJ=t>{$av%Of!R;eYb`B& z1oUnL7uPLK-UBXofT1T{G9*Xx(-iV~;QfrgDGLnT0^MtFZ_Rz2J^*RzYWW5@I0VKD zl)dip?ymOU{yo#|?*}&Za*y82qT~Po00v@9M??U(0NMcm_P8(*00009a7bBm001r{ z001r{0eGc9b^rhX2XskIMF-;y5&#SnOYgr+0003*Nkl ztYDCUAf&Mnf55`tLIl6TZ}Cs;)A|p#!NMk@O;}T86WqZ`a4j}(oi!VaTzD|NdG|7N z?`z%PT^9gGw*W}9C10y=da*|O((9;*qoj?%`2sbb2=L;5Y1wcnd)fp7AQQ%g@ zMv-Pq0AiyUPjVCx3{zc7KfGJ4MM9`_?nvj3U7-N1(L0fI=SzY8_TG*H>ld7zbQ=ep zFRFB!kd9m_AkH>n@sB;$=u$wkeSZ67(6?I&vJ=((dqxB>9L)geCAu~oRxiNo zM>DL^rNHg^!3I&#HSHQvARJ|lu6eNGM}t4%jLMy7&_8Vav#j|xyiV6CJUo5WzTtdP zoj={OG2X|QjAIj(9$cL!HIjHR&3r`&OE>_no6CzL%yrw!{>?vk9&0o|U1O4n%r Date: Sat, 5 Nov 2022 13:18:38 -0600 Subject: [PATCH 05/14] Add basic functionality to beehives Uses a temporary ABM to progress through honey levels --- mods/ITEMS/mcl_beehives/init.lua | 88 +++++++++++++++++++++++++++++++- mods/ITEMS/mcl_honey/init.lua | 1 + 2 files changed, 88 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_beehives/init.lua b/mods/ITEMS/mcl_beehives/init.lua index a9a1656fa..d2b0ee643 100644 --- a/mods/ITEMS/mcl_beehives/init.lua +++ b/mods/ITEMS/mcl_beehives/init.lua @@ -5,6 +5,34 @@ -- Variables local S = minetest.get_translator(minetest.get_current_modname()) +-- Function to allow harvesting honey and honeycomb from the beehive and bee nest. +local honey_harvest = function(pos, node, player, itemstack, pointed_thing) + local inv = player:get_inventory() + local beehive = "mcl_beehives:beehive" + + if node.name == "mcl_beehives:beehive_5" then + beehive = "mcl_beehives:beehive" + elseif node.name == "mcl_beehives:bee_nest_5" then + beehive = "mcl_beehives:bee_nest" + end + + if player:get_wielded_item():get_name() == "mcl_potions:glass_bottle" then + local honey = "mcl_honey:honey_bottle" + if inv:room_for_item("main", honey) then + node.name = beehive + minetest.set_node(pos, node) + inv:add_item("main", "mcl_honey:honey_bottle") + if not minetest.is_creative_enabled(player:get_player_name()) then + itemstack:take_item() + end + end + elseif player:get_wielded_item():get_name() == "mcl_tools:shears" then + minetest.add_item(pos, "mcl_honey:honeycomb 3") + node.name = beehive + minetest.set_node(pos, node) + end +end + -- Beehive minetest.register_node("mcl_beehives:beehive", { description = S("Beehive"), @@ -15,11 +43,43 @@ minetest.register_node("mcl_beehives:beehive", { "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_front.png", }, paramtype2 = "facedir", - groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1 }, + groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1, beehive = 1 }, _mcl_blast_resistance = 0.6, _mcl_hardness = 0.6, }) +for l = 1, 4 do + minetest.register_node("mcl_beehives:beehive_" .. l, { + description = S("Beehive"), + _doc_items_longdesc = S("Artificial bee nest."), + tiles = { + "mcl_beehives_beehive_end.png", "mcl_beehives_beehive_end.png", + "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_side.png", + "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_front.png", + }, + paramtype2 = "facedir", + groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1, not_in_creative_inventory = 1, beehive = 1 }, + _mcl_blast_resistance = 0.6, + _mcl_hardness = 0.6, + drops = "mcl_beehives:beehive", + }) +end + +minetest.register_node("mcl_beehives:beehive_5", { + description = S("Beehive"), + _doc_items_longdesc = S("Artificial bee nest."), + tiles = { + "mcl_beehives_beehive_end.png", "mcl_beehives_beehive_end.png", + "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_side.png", + "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_front_honey.png", + }, + paramtype2 = "facedir", + groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1, not_in_creative_inventory = 1, beehive = 1 }, + _mcl_blast_resistance = 0.6, + _mcl_hardness = 0.6, + on_rightclick = honey_harvest, +}) + -- Bee Nest minetest.register_node("mcl_beehives:bee_nest", { description = S("Bee Nest"), @@ -45,3 +105,29 @@ minetest.register_craft({ }, }) +-- Temporary ABM to update honey levels +minetest.register_abm({ + label = "Update Beehive Honey Levels", + nodenames = "group:beehive", + interval = 500, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local beehive = "mcl_beehives:beehive" + if node.name == beehive then + node.name = beehive.."_1" + minetest.set_node(pos, node) + elseif node.name == beehive.."_1" then + node.name = beehive.."_2" + minetest.set_node(pos, node) + elseif node.name == beehive.."_2" then + node.name = beehive.."_3" + minetest.set_node(pos, node) + elseif node.name == beehive.."_3" then + node.name = beehive.."_4" + minetest.set_node(pos, node) + elseif node.name == beehive.."_4" then + node.name = beehive.."_5" + minetest.set_node(pos, node) + end + end, +}) diff --git a/mods/ITEMS/mcl_honey/init.lua b/mods/ITEMS/mcl_honey/init.lua index 576a5459f..0300eb7b9 100644 --- a/mods/ITEMS/mcl_honey/init.lua +++ b/mods/ITEMS/mcl_honey/init.lua @@ -47,6 +47,7 @@ minetest.register_node("mcl_honey:honey_block", { "mcl_honey_block_side.png", "mcl_honey_block_side.png", }, groups = { handy = 1, deco_block = 1 }, + paramtype2 = "facedir", _mcl_blast_resistance = 0, _mcl_hardness = 0, }) From a79692a68bfd0fa62fb16b657b5efc6114d825e0 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Sat, 5 Nov 2022 16:21:01 -0600 Subject: [PATCH 06/14] Add harvesting functionality to bee nests Still has temporary abm updating --- mods/ITEMS/mcl_beehives/init.lua | 62 +++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_beehives/init.lua b/mods/ITEMS/mcl_beehives/init.lua index d2b0ee643..e852727f8 100644 --- a/mods/ITEMS/mcl_beehives/init.lua +++ b/mods/ITEMS/mcl_beehives/init.lua @@ -77,6 +77,7 @@ minetest.register_node("mcl_beehives:beehive_5", { groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1, not_in_creative_inventory = 1, beehive = 1 }, _mcl_blast_resistance = 0.6, _mcl_hardness = 0.6, + drops = "mcl_beehives:beehive", on_rightclick = honey_harvest, }) @@ -90,11 +91,44 @@ minetest.register_node("mcl_beehives:bee_nest", { "mcl_beehives_bee_nest_side.png", "mcl_beehives_bee_nest_front.png", }, paramtype2 = "facedir", - groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 30 }, + groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 30, bee_nest = 1 }, _mcl_blast_resistance = 0.3, _mcl_hardness = 0.3, }) +for i = 1, 4 do + minetest.register_node("mcl_beehives:bee_nest_"..i, { + description = S("Bee Nest"), + _doc_items_longdesc = S("A naturally generating block that houses bees and a tasty treat...if you can get it."), + tiles = { + "mcl_beehives_bee_nest_top.png", "mcl_beehives_bee_nest_bottom.png", + "mcl_beehives_bee_nest_side.png", "mcl_beehives_bee_nest_side.png", + "mcl_beehives_bee_nest_side.png", "mcl_beehives_bee_nest_front.png", + }, + paramtype2 = "facedir", + groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 30, not_in_creative_inventory = 1, bee_nest = 1 }, + _mcl_blast_resistance = 0.3, + _mcl_hardness = 0.3, + drops = "mcl_beehives:bee_nest", + }) +end + +minetest.register_node("mcl_beehives:bee_nest_5", { + description = S("Bee Nest"), + _doc_items_longdesc = S("A naturally generating block that houses bees and a tasty treat...if you can get it."), + tiles = { + "mcl_beehives_bee_nest_top.png", "mcl_beehives_bee_nest_bottom.png", + "mcl_beehives_bee_nest_side.png", "mcl_beehives_bee_nest_side.png", + "mcl_beehives_bee_nest_side.png", "mcl_beehives_bee_nest_front_honey.png", + }, + paramtype2 = "facedir", + groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 30, not_in_creative_inventory = 1, bee_nest = 1 }, + _mcl_blast_resistance = 0.3, + _mcl_hardness = 0.3, + drops = "mcl_beehives:bee_nest", + on_rightclick = honey_harvest, +}) + -- Crafting minetest.register_craft({ output = "mcl_beehives:beehive", @@ -131,3 +165,29 @@ minetest.register_abm({ end end, }) + +minetest.register_abm({ + label = "Update Bee Nest Honey Levels", + nodenames = "group:bee_nest", + interval = 500, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local beehive = "mcl_beehives:bee_nest" + if node.name == beehive then + node.name = beehive.."_1" + minetest.set_node(pos, node) + elseif node.name == beehive.."_1" then + node.name = beehive.."_2" + minetest.set_node(pos, node) + elseif node.name == beehive.."_2" then + node.name = beehive.."_3" + minetest.set_node(pos, node) + elseif node.name == beehive.."_3" then + node.name = beehive.."_4" + minetest.set_node(pos, node) + elseif node.name == beehive.."_4" then + node.name = beehive.."_5" + minetest.set_node(pos, node) + end + end, +}) From 8a3c1eaa6e6ae785552e174b9eae7f903d8a0e77 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Fri, 11 Nov 2022 14:27:23 -0700 Subject: [PATCH 07/14] Add harvest and digging damage, and campfire usage Damage is temporary until bees are implemented --- mods/ITEMS/mcl_beehives/init.lua | 72 ++++++++++++++++++++++++-------- mods/ITEMS/mcl_beehives/mod.conf | 3 +- 2 files changed, 56 insertions(+), 19 deletions(-) diff --git a/mods/ITEMS/mcl_beehives/init.lua b/mods/ITEMS/mcl_beehives/init.lua index e852727f8..41582d363 100644 --- a/mods/ITEMS/mcl_beehives/init.lua +++ b/mods/ITEMS/mcl_beehives/init.lua @@ -8,7 +8,10 @@ local S = minetest.get_translator(minetest.get_current_modname()) -- Function to allow harvesting honey and honeycomb from the beehive and bee nest. local honey_harvest = function(pos, node, player, itemstack, pointed_thing) local inv = player:get_inventory() + local shears = player:get_wielded_item():get_name() == "mcl_tools:shears" + local bottle = player:get_wielded_item():get_name() == "mcl_potions:glass_bottle" local beehive = "mcl_beehives:beehive" + local is_creative = minetest.is_creative_enabled(player:get_player_name()) if node.name == "mcl_beehives:beehive_5" then beehive = "mcl_beehives:beehive" @@ -16,20 +19,45 @@ local honey_harvest = function(pos, node, player, itemstack, pointed_thing) beehive = "mcl_beehives:bee_nest" end - if player:get_wielded_item():get_name() == "mcl_potions:glass_bottle" then + local campfire_area = vector.offset(pos, 0, -5, 0) + local campfire = minetest.find_nodes_in_area(pos, campfire_area, "group:lit_campfire") + + if bottle then local honey = "mcl_honey:honey_bottle" if inv:room_for_item("main", honey) then node.name = beehive minetest.set_node(pos, node) inv:add_item("main", "mcl_honey:honey_bottle") - if not minetest.is_creative_enabled(player:get_player_name()) then + if not is_creative then itemstack:take_item() end + if not campfire[1] then mcl_util.deal_damage(player, 10) end end - elseif player:get_wielded_item():get_name() == "mcl_tools:shears" then + elseif shears then minetest.add_item(pos, "mcl_honey:honeycomb 3") node.name = beehive minetest.set_node(pos, node) + if not campfire[1] then mcl_util.deal_damage(player, 10) end + end +end + +-- Dig Function for Beehives +local dig_hive = function(pos, node, oldmetadata, digger) + local wield_item = digger:get_wielded_item() + local beehive = string.find(node.name, "mcl_beehives:beehive") + local beenest = string.find(node.name, "mcl_beehives:bee_nest") + local silk_touch = mcl_enchanting.has_enchantment(wield_item, "silk_touch") + local is_creative = minetest.is_creative_enabled(digger:get_player_name()) + + if beehive then + minetest.add_item(pos, "mcl_beehives:beehive") + if not silk_touch and not is_creative then mcl_util.deal_damage(digger, 10) end + elseif beenest then + if silk_touch or is_creative then + minetest.add_item(pos, "mcl_beehives:bee_nest") + else + mcl_util.deal_damage(digger, 10) + end end end @@ -46,22 +74,25 @@ minetest.register_node("mcl_beehives:beehive", { groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1, beehive = 1 }, _mcl_blast_resistance = 0.6, _mcl_hardness = 0.6, + drop = "", + after_dig_node = dig_hive, }) for l = 1, 4 do minetest.register_node("mcl_beehives:beehive_" .. l, { - description = S("Beehive"), - _doc_items_longdesc = S("Artificial bee nest."), - tiles = { - "mcl_beehives_beehive_end.png", "mcl_beehives_beehive_end.png", - "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_side.png", - "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_front.png", - }, - paramtype2 = "facedir", - groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1, not_in_creative_inventory = 1, beehive = 1 }, - _mcl_blast_resistance = 0.6, - _mcl_hardness = 0.6, - drops = "mcl_beehives:beehive", + description = S("Beehive"), + _doc_items_longdesc = S("Artificial bee nest."), + tiles = { + "mcl_beehives_beehive_end.png", "mcl_beehives_beehive_end.png", + "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_side.png", + "mcl_beehives_beehive_side.png", "mcl_beehives_beehive_front.png", + }, + paramtype2 = "facedir", + groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1, not_in_creative_inventory = 1, beehive = 1 }, + _mcl_blast_resistance = 0.6, + _mcl_hardness = 0.6, + drop = "", + after_dig_node = dig_hive, }) end @@ -77,8 +108,9 @@ minetest.register_node("mcl_beehives:beehive_5", { groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 5, material_wood = 1, not_in_creative_inventory = 1, beehive = 1 }, _mcl_blast_resistance = 0.6, _mcl_hardness = 0.6, - drops = "mcl_beehives:beehive", on_rightclick = honey_harvest, + drop = "", + after_dig_node = dig_hive, }) -- Bee Nest @@ -94,6 +126,8 @@ minetest.register_node("mcl_beehives:bee_nest", { groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 30, bee_nest = 1 }, _mcl_blast_resistance = 0.3, _mcl_hardness = 0.3, + drop = "", + after_dig_node = dig_hive, }) for i = 1, 4 do @@ -109,7 +143,8 @@ for i = 1, 4 do groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 30, not_in_creative_inventory = 1, bee_nest = 1 }, _mcl_blast_resistance = 0.3, _mcl_hardness = 0.3, - drops = "mcl_beehives:bee_nest", + drop = "", + after_dig_node = dig_hive, }) end @@ -125,8 +160,9 @@ minetest.register_node("mcl_beehives:bee_nest_5", { groups = { axey = 1, deco_block = 1, flammable = 0, fire_flammability = 30, not_in_creative_inventory = 1, bee_nest = 1 }, _mcl_blast_resistance = 0.3, _mcl_hardness = 0.3, - drops = "mcl_beehives:bee_nest", on_rightclick = honey_harvest, + drop = "", + after_dig_node = dig_hive, }) -- Crafting diff --git a/mods/ITEMS/mcl_beehives/mod.conf b/mods/ITEMS/mcl_beehives/mod.conf index 905c86d5b..0a7855bec 100644 --- a/mods/ITEMS/mcl_beehives/mod.conf +++ b/mods/ITEMS/mcl_beehives/mod.conf @@ -1,3 +1,4 @@ name = mcl_beehives author = PrairieWind -description = Adds beehives and bee nests to MineClone 2. \ No newline at end of file +description = Adds beehives and bee nests to MineClone 2. +depends = mcl_util, mcl_enchanting From 0aaaa051648c774f458634fdbaf152f759d101ba Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Fri, 11 Nov 2022 14:52:09 -0700 Subject: [PATCH 08/14] Bee Our Guest Advancement --- mods/HUD/mcl_achievements/init.lua | 9 +++++++++ mods/HUD/mcl_achievements/locale/template.txt | 2 ++ mods/ITEMS/mcl_beehives/init.lua | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/mods/HUD/mcl_achievements/init.lua b/mods/HUD/mcl_achievements/init.lua index f76662fce..5d0b14511 100644 --- a/mods/HUD/mcl_achievements/init.lua +++ b/mods/HUD/mcl_achievements/init.lua @@ -389,6 +389,15 @@ awards.register_achievement("mcl:theEndAgain", { group = "End", }) +-- Triggered in mcl_beehives +awards.register_achievement("mcl:bee_our_guest", { + title = S("Bee Our Guest"), + description = S("Use a campfire to collect a bottle of honey from a beehive without aggrivating the bees inside."), + icon = "mcl_honey_honey_bottle.png", + type = "Advancement", + group = "Husbandry", +}) + -- NON-PC ACHIEVEMENTS (XBox, Pocket Edition, etc.) if non_pc_achievements then diff --git a/mods/HUD/mcl_achievements/locale/template.txt b/mods/HUD/mcl_achievements/locale/template.txt index cd3726b05..8db3bb1cb 100644 --- a/mods/HUD/mcl_achievements/locale/template.txt +++ b/mods/HUD/mcl_achievements/locale/template.txt @@ -87,3 +87,5 @@ Sky's The Limit= Find the elytra and prepare to fly above and beyond!= Free the End= Kill the ender dragon. Good Luck!= +Bee Our Guest= +Use a campfire to collect a bottle of honey from a beehive without aggrivating the bees inside.= diff --git a/mods/ITEMS/mcl_beehives/init.lua b/mods/ITEMS/mcl_beehives/init.lua index 41582d363..c117b519a 100644 --- a/mods/ITEMS/mcl_beehives/init.lua +++ b/mods/ITEMS/mcl_beehives/init.lua @@ -31,7 +31,7 @@ local honey_harvest = function(pos, node, player, itemstack, pointed_thing) if not is_creative then itemstack:take_item() end - if not campfire[1] then mcl_util.deal_damage(player, 10) end + if not campfire[1] then mcl_util.deal_damage(player, 10) else awards.unlock(player:get_player_name(), "mcl:bee_our_guest") end end elseif shears then minetest.add_item(pos, "mcl_honey:honeycomb 3") From bbb908239b4734f038f1f2dac18d25e1f81867d3 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Fri, 11 Nov 2022 15:09:17 -0700 Subject: [PATCH 09/14] Total Beelocation Advancement --- mods/HUD/mcl_achievements/init.lua | 8 ++++++++ mods/HUD/mcl_achievements/locale/template.txt | 2 ++ mods/ITEMS/mcl_beehives/init.lua | 1 + 3 files changed, 11 insertions(+) diff --git a/mods/HUD/mcl_achievements/init.lua b/mods/HUD/mcl_achievements/init.lua index 5d0b14511..5d139e6dc 100644 --- a/mods/HUD/mcl_achievements/init.lua +++ b/mods/HUD/mcl_achievements/init.lua @@ -398,6 +398,14 @@ awards.register_achievement("mcl:bee_our_guest", { group = "Husbandry", }) +awards.register_achievement("mcl:total_beelocation", { + title = S("Total Beelocation"), + description = S("Move a bee nest, with 3 bees inside, using a silk touch enchanted tool."), + icon = "mcl_beehives_bee_nest_front_honey.png", + type = "Advancement", + group = "Husbandry", +}) + -- NON-PC ACHIEVEMENTS (XBox, Pocket Edition, etc.) if non_pc_achievements then diff --git a/mods/HUD/mcl_achievements/locale/template.txt b/mods/HUD/mcl_achievements/locale/template.txt index 8db3bb1cb..4334438e5 100644 --- a/mods/HUD/mcl_achievements/locale/template.txt +++ b/mods/HUD/mcl_achievements/locale/template.txt @@ -89,3 +89,5 @@ Free the End= Kill the ender dragon. Good Luck!= Bee Our Guest= Use a campfire to collect a bottle of honey from a beehive without aggrivating the bees inside.= +Total Beelocation= +Move a bee nest, with 3 bees inside, using a silk touch enchanted tool.= diff --git a/mods/ITEMS/mcl_beehives/init.lua b/mods/ITEMS/mcl_beehives/init.lua index c117b519a..a7a1a7623 100644 --- a/mods/ITEMS/mcl_beehives/init.lua +++ b/mods/ITEMS/mcl_beehives/init.lua @@ -55,6 +55,7 @@ local dig_hive = function(pos, node, oldmetadata, digger) elseif beenest then if silk_touch or is_creative then minetest.add_item(pos, "mcl_beehives:bee_nest") + awards.unlock(digger:get_player_name(), "mcl:total_beelocation") else mcl_util.deal_damage(digger, 10) end From 16f878d3dc901f4144d1fea504bf6eba47f43503 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Fri, 11 Nov 2022 19:02:01 -0700 Subject: [PATCH 10/14] Make Honey Blocks Sticky Uses slime block stickiness code. --- mods/ITEMS/mcl_honey/init.lua | 35 +++++++++++++++++++++++++++++++++++ mods/ITEMS/mcl_honey/mod.conf | 3 ++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_honey/init.lua b/mods/ITEMS/mcl_honey/init.lua index 0300eb7b9..972112ea3 100644 --- a/mods/ITEMS/mcl_honey/init.lua +++ b/mods/ITEMS/mcl_honey/init.lua @@ -4,6 +4,7 @@ -- Variables local S = minetest.get_translator(minetest.get_current_modname()) +local alldirs = {{x=0,y=0,z=1}, {x=1,y=0,z=0}, {x=0,y=0,z=-1}, {x=-1,y=0,z=0}, {x=0,y=-1,z=0}, {x=0,y=1,z=0}} -- Honeycomb minetest.register_craftitem("mcl_honey:honeycomb", { @@ -50,6 +51,40 @@ minetest.register_node("mcl_honey:honey_block", { paramtype2 = "facedir", _mcl_blast_resistance = 0, _mcl_hardness = 0, + mvps_sticky = function(pos, node, piston_pos) + local connected = {} + for n, v in ipairs(alldirs) do + local neighbor_pos = vector.add(pos, v) + local neighbor_node = minetest.get_node(neighbor_pos) + if neighbor_node then + if neighbor_node.name == "ignore" then + minetest.get_voxel_manip():read_from_map(neighbor_pos, neighbor_pos) + neighbor_node = minetest.get_node(neighbor_pos) + end + local name = neighbor_node.name + if name ~= "air" and name ~= "ignore" and not mesecon.mvps_unsticky[name] then + local piston, piston_side, piston_up, piston_down = false, false, false, false + if name == "mesecons_pistons:piston_sticky_off" or name == "mesecons_pistons:piston_normal_off" then + piston, piston_side = true, true + elseif name == "mesecons_pistons:piston_up_sticky_off" or name == "mesecons_pistons:piston_up_normal_off" then + piston, piston_up = true, true + elseif name == "mesecons_pistons:piston_down_sticky_off" or name == "mesecons_pistons:piston_down_normal_off" then + piston, piston_down = true, true + end + if not( (piston_side and (n-1==neighbor_node.param2)) or (piston_up and (n==5)) or (piston_down and (n==6)) ) then + if piston and piston_pos then + if piston_pos.x == neighbor_pos.x and piston_pos.y == neighbor_pos.y and piston_pos.z == neighbor_pos.z then + -- Loopback to the same piston! Preventing unwanted behavior: + return {}, true + end + end + table.insert(connected, neighbor_pos) + end + end + end + end + return connected, false + end, }) -- Crafting diff --git a/mods/ITEMS/mcl_honey/mod.conf b/mods/ITEMS/mcl_honey/mod.conf index 6ef9d7e45..436811291 100644 --- a/mods/ITEMS/mcl_honey/mod.conf +++ b/mods/ITEMS/mcl_honey/mod.conf @@ -1,3 +1,4 @@ name = mcl_honey author = PrairieWind -description = MineClone 2 mod that adds honey and honeycomb and the respective block versions. \ No newline at end of file +description = MineClone 2 mod that adds honey and honeycomb and the respective block versions. +depends = mesecons_mvps From fb651a49224909452ae4fce22b19a8dc3b26a0b2 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Tue, 15 Nov 2022 10:38:29 -0700 Subject: [PATCH 11/14] Wax On and Wax Off Advancements --- mods/HUD/mcl_achievements/init.lua | 17 +++++++++++++++++ mods/HUD/mcl_achievements/locale/template.txt | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/mods/HUD/mcl_achievements/init.lua b/mods/HUD/mcl_achievements/init.lua index 5d139e6dc..952fc1789 100644 --- a/mods/HUD/mcl_achievements/init.lua +++ b/mods/HUD/mcl_achievements/init.lua @@ -406,6 +406,23 @@ awards.register_achievement("mcl:total_beelocation", { group = "Husbandry", }) +-- Triggered in mcl_copper +awards.register_achievement("mcl:wax_on", { + title = S("Wax On"), + description = S("Apply honeycomb to a copper block to protect it from the elements."), + icon = "mcl_honey_honeycomb.png", + type = "Advancement", + group = "Husbandry", +}) + +awards.register_achievement("mcl:wax_off", { + title = S("Wax Off"), + description = S("Scrape wax off of a copper block."), + icon = "default_tool_stoneaxe.png", + type = "Advancement", + group = "Husbandry", +}) + -- NON-PC ACHIEVEMENTS (XBox, Pocket Edition, etc.) if non_pc_achievements then diff --git a/mods/HUD/mcl_achievements/locale/template.txt b/mods/HUD/mcl_achievements/locale/template.txt index 4334438e5..3420a39dc 100644 --- a/mods/HUD/mcl_achievements/locale/template.txt +++ b/mods/HUD/mcl_achievements/locale/template.txt @@ -91,3 +91,7 @@ Bee Our Guest= Use a campfire to collect a bottle of honey from a beehive without aggrivating the bees inside.= Total Beelocation= Move a bee nest, with 3 bees inside, using a silk touch enchanted tool.= +Wax On= +Apply honeycomb to a copper block to protect it from the elements.= +Wax Off= +Scrape wax off of a copper block.= From c767c617f870ac0fb941429e9fb7c1913c1b2af8 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Tue, 15 Nov 2022 14:02:05 -0700 Subject: [PATCH 12/14] Add waxing copper blocks --- mods/ITEMS/mcl_copper/crafting.lua | 20 ++- mods/ITEMS/mcl_copper/functions.lua | 28 ++++ mods/ITEMS/mcl_copper/init.lua | 2 +- mods/ITEMS/mcl_copper/locale/template.txt | 20 +++ mods/ITEMS/mcl_copper/nodes.lua | 196 ++++++++++++++++++++-- 5 files changed, 246 insertions(+), 20 deletions(-) diff --git a/mods/ITEMS/mcl_copper/crafting.lua b/mods/ITEMS/mcl_copper/crafting.lua index 7b1e183c7..ce280fcdf 100644 --- a/mods/ITEMS/mcl_copper/crafting.lua +++ b/mods/ITEMS/mcl_copper/crafting.lua @@ -47,6 +47,17 @@ minetest.register_craft({ }, }) +local waxable_blocks = { "block", "block_cut", "block_exposed", "block_exposed_cut", "block_weathered", "block_weathered_cut", "block_oxidized", "block_oxidized_cut" } + +for _, w in ipairs(waxable_blocks) do + minetest.register_craft({ + output = "mcl_copper:waxed_"..w, + recipe = { + { "mcl_copper:"..w, "mcl_honey:honeycomb" }, + }, + }) +end + minetest.register_craft({ output = "mcl_copper:copper_ingot 4", recipe = { @@ -73,4 +84,11 @@ minetest.register_craft({ output = "mcl_copper:copper_ingot", recipe = "mcl_copper:stone_with_copper", cooktime = 10, -}) \ No newline at end of file +}) + +minetest.register_craft({ + type = "cooking", + output = "mcl_copper:block", + recipe = "mcl_copper:block_raw", + cooktime = 90, +}) diff --git a/mods/ITEMS/mcl_copper/functions.lua b/mods/ITEMS/mcl_copper/functions.lua index b6e0cb7e2..81dfdb69d 100644 --- a/mods/ITEMS/mcl_copper/functions.lua +++ b/mods/ITEMS/mcl_copper/functions.lua @@ -12,6 +12,34 @@ local function register_oxidation_abm(abm_name, node_name, oxidized_variant) }) end +function waxing_copper_block(pos, node, player, itemstack, convert_to) + if itemstack:get_name() == "mcl_honey:honeycomb" then + node.name = convert_to + minetest.set_node(pos, node) + awards.unlock(player:get_player_name(), "mcl:wax_on") + if not minetest.is_creative_enabled(player:get_player_name()) then + itemstack:take_item() + end + else + return true + end +end + +function scraping_copper_block(pos, node, player, itemstack, convert_to) + if itemstack:get_name():find("axe") then + node.name = convert_to + minetest.set_node(pos, node) + awards.unlock(player:get_player_name(), "mcl:wax_off") + if not minetest.is_creative_enabled(player:get_player_name()) then + local tool = itemstack:get_name() + local wear = mcl_autogroup.get_wear(tool, "axey") + itemstack:add_wear(wear) + end + else + return true + end +end + --[[ local stairs = { {"stair", "exposed", "_inner", "cut_inner"}, diff --git a/mods/ITEMS/mcl_copper/init.lua b/mods/ITEMS/mcl_copper/init.lua index ea15e5827..a99d03f2c 100644 --- a/mods/ITEMS/mcl_copper/init.lua +++ b/mods/ITEMS/mcl_copper/init.lua @@ -1,6 +1,6 @@ local path = minetest.get_modpath("mcl_copper") +dofile(path .. "/functions.lua") dofile(path .. "/nodes.lua") dofile(path .. "/items.lua") dofile(path .. "/crafting.lua") -dofile(path .. "/functions.lua") \ No newline at end of file diff --git a/mods/ITEMS/mcl_copper/locale/template.txt b/mods/ITEMS/mcl_copper/locale/template.txt index 050c099ee..7022780ff 100644 --- a/mods/ITEMS/mcl_copper/locale/template.txt +++ b/mods/ITEMS/mcl_copper/locale/template.txt @@ -2,36 +2,56 @@ A block of copper is mostly a decorative block.= A block used for compact raw copper storage.= Block of Copper= +Waxed Block of Copper= Block of Raw Copper= Copper Ingot= Copper Ore= Cut copper is a decorative block.= Cut Copper= +Waxed Cut Copper= Double Slab of Cut Copper= Double Slab of Exposed Cut Copper= Double Slab of Oxidized Cut Copper= Double Slab of Weathered Cut Copper= +Waxed Double Slab of Cut Copper= +Waxed Double Slab of Exposed Cut Copper= +Waxed Double Slab of Oxidized Cut Copper= +Waxed Double Slab of Weathered Cut Copper= Exposed copper is a decorative block.= Exposed Copper= +Waxed Exposed Copper= Exposed cut copper is a decorative block.= Exposed Cut Copper= +Waxed Exposed Cut Copper= Molten Raw Copper. It is used to craft blocks.= Oxidized copper is a decorative block.= Oxidized Copper= +Waxed Oxidized Copper= Oxidized cut copper is a decorative block.= Oxidized Cut Copper= +Waxed Oxidized Cut Copper= Raw Copper. Mine a Copper Ore to get it.= Raw Copper= Slab of Cut Copper= Slab of Exposed Cut Copper= Slab of Oxidized Cut Copper= Slab of Weathered Cut Copper= +Waxed Slab of Cut Copper= +Waxed Slab of Exposed Cut Copper= +Waxed Slab of Oxidized Cut Copper= +Waxed Slab of Weathered Cut Copper= Some copper contained in stone, it is pretty common and can be found below sea level.= Stairs of Cut Copper= Stairs of Exposed Cut Copper= Stairs of Oxidized Cut Copper= Stairs of Weathered Cut Copper= +Waxed Stairs of Cut Copper= +Waxed Stairs of Exposed Cut Copper= +Waxed Stairs of Oxidized Cut Copper= +Waxed Stairs of Weathered Cut Copper= Weathered copper is a decorative block.= Weathered Copper= +Waxed Weathered Copper= Weathered cut copper is a decorative block.= Weathered Cut Copper= +Waxed Weathered Cut Copper= diff --git a/mods/ITEMS/mcl_copper/nodes.lua b/mods/ITEMS/mcl_copper/nodes.lua index 22c1bf807..75c2973da 100644 --- a/mods/ITEMS/mcl_copper/nodes.lua +++ b/mods/ITEMS/mcl_copper/nodes.lua @@ -35,6 +35,19 @@ minetest.register_node("mcl_copper:block", { sounds = mcl_sounds.node_sound_metal_defaults(), _mcl_blast_resistance = 6, _mcl_hardness = 3, + on_rightclick = function(pos, node, player, itemstack) waxing_copper_block(pos, node, player, itemstack, "mcl_copper:waxed_block") end, +}) + +minetest.register_node("mcl_copper:waxed_block", { + description = S("Waxed Block of Copper"), + _doc_items_longdesc = S("A block of copper is mostly a decorative block."), + tiles = {"mcl_copper_block.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 3, + on_rightclick = function(pos, node, player, itemstack) scraping_copper_block(pos, node, player, itemstack, "mcl_copper:block") end, }) minetest.register_node("mcl_copper:block_exposed", { @@ -47,18 +60,19 @@ minetest.register_node("mcl_copper:block_exposed", { _mcl_blast_resistance = 6, _mcl_hardness = 5, _mcl_anti_oxidation_varient = "mcl_copper:block", + on_rightclick = function(pos, node, player, itemstack) waxing_copper_block(pos, node, player, itemstack, "mcl_copper:waxed_block_exposed") end, }) -minetest.register_node("mcl_copper:block_oxidized", { - description = S("Oxidized Copper"), - _doc_items_longdesc = S("Oxidized copper is a decorative block."), - tiles = {"mcl_copper_oxidized.png"}, +minetest.register_node("mcl_copper:waxed_block_exposed", { + description = S("Waxed Exposed Copper"), + _doc_items_longdesc = S("Exposed copper is a decorative block."), + tiles = {"mcl_copper_exposed.png"}, is_ground_content = false, groups = {pickaxey = 2, building_block = 1}, sounds = mcl_sounds.node_sound_metal_defaults(), _mcl_blast_resistance = 6, _mcl_hardness = 5, - _mcl_anti_oxidation_varient = "mcl_copper:block_weathered", + on_rightclick = function(pos, node, player, itemstack) scraping_copper_block(pos, node, player, itemstack, "mcl_copper:block") end, }) minetest.register_node("mcl_copper:block_weathered", { @@ -71,6 +85,44 @@ minetest.register_node("mcl_copper:block_weathered", { _mcl_blast_resistance = 6, _mcl_hardness = 5, _mcl_anti_oxidation_varient = "mcl_copper:block_exposed", + on_rightclick = function(pos, node, player, itemstack) waxing_copper_block(pos, node, player, itemstack, "mcl_copper:waxed_block_weathered") end, +}) + +minetest.register_node("mcl_copper:waxed_block_weathered", { + description = S("Waxed Weathered Copper"), + _doc_items_longdesc = S("Weathered copper is a decorative block."), + tiles = {"mcl_copper_weathered.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + on_rightclick = function(pos, node, player, itemstack) scraping_copper_block(pos, node, player, itemstack, "mcl_copper:block_exposed") end, +}) + +minetest.register_node("mcl_copper:block_oxidized", { + description = S("Oxidized Copper"), + _doc_items_longdesc = S("Oxidized copper is a decorative block."), + tiles = {"mcl_copper_oxidized.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + _mcl_anti_oxidation_varient = "mcl_copper:block_weathered", + on_rightclick = function(pos, node, player, itemstack) waxing_copper_block(pos, node, player, itemstack, "mcl_copper:waxed_block_oxidized") end, +}) + +minetest.register_node("mcl_copper:waxed_block_oxidized", { + description = S("Waxed Oxidized Copper"), + _doc_items_longdesc = S("Oxidized copper is a decorative block."), + tiles = {"mcl_copper_oxidized.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + on_rightclick = function(pos, node, player, itemstack) scraping_copper_block(pos, node, player, itemstack, "mcl_copper:block_weather") end, }) minetest.register_node("mcl_copper:block_cut", { @@ -82,6 +134,19 @@ minetest.register_node("mcl_copper:block_cut", { sounds = mcl_sounds.node_sound_metal_defaults(), _mcl_blast_resistance = 6, _mcl_hardness = 5, + on_rightclick = function(pos, node, player, itemstack) waxing_copper_block(pos, node, player, itemstack, "mcl_copper:waxed_block_cut") end, +}) + +minetest.register_node("mcl_copper:waxed_block_cut", { + description = S("Waxed Cut Copper"), + _doc_items_longdesc = S("Cut copper is a decorative block."), + tiles = {"mcl_copper_block_cut.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + on_rightclick = function(pos, node, player, itemstack) scraping_copper_block(pos, node, player, itemstack, "mcl_copper:block_cut") end, }) minetest.register_node("mcl_copper:block_exposed_cut", { @@ -94,18 +159,19 @@ minetest.register_node("mcl_copper:block_exposed_cut", { _mcl_blast_resistance = 6, _mcl_hardness = 5, _mcl_anti_oxidation_varient = "mcl_copper:block_cut", + on_rightclick = function(pos, node, player, itemstack) waxing_copper_block(pos, node, player, itemstack, "mcl_copper:waxed_block_exposed_cut") end, }) -minetest.register_node("mcl_copper:block_oxidized_cut", { - description = S("Oxidized Cut Copper"), - _doc_items_longdesc = S("Oxidized cut copper is a decorative block."), - tiles = {"mcl_copper_oxidized_cut.png"}, +minetest.register_node("mcl_copper:waxed_block_exposed_cut", { + description = S("Waxed Exposed Cut Copper"), + _doc_items_longdesc = S("Exposed cut copper is a decorative block."), + tiles = {"mcl_copper_exposed_cut.png"}, is_ground_content = false, groups = {pickaxey = 2, building_block = 1}, sounds = mcl_sounds.node_sound_metal_defaults(), _mcl_blast_resistance = 6, _mcl_hardness = 5, - _mcl_anti_oxidation_varient = "mcl_copper:block_weathered_cut", + on_rightclick = function(pos, node, player, itemstack) scraping_copper_block(pos, node, player, itemstack, "mcl_copper:block_cut") end, }) minetest.register_node("mcl_copper:block_weathered_cut", { @@ -118,6 +184,44 @@ minetest.register_node("mcl_copper:block_weathered_cut", { _mcl_blast_resistance = 6, _mcl_hardness = 5, _mcl_anti_oxidation_varient = "mcl_copper:block_exposed_cut", + on_rightclick = function(pos, node, player, itemstack) waxing_copper_block(pos, node, player, itemstack, "mcl_copper:waxed_block_weathered_cut") end, +}) + +minetest.register_node("mcl_copper:waxed_block_weathered_cut", { + description = S("Waxed Weathered Cut Copper"), + _doc_items_longdesc = S("Weathered cut copper is a decorative block."), + tiles = {"mcl_copper_weathered_cut.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + on_rightclick = function(pos, node, player, itemstack) scraping_copper_block(pos, node, player, itemstack, "mcl_copper:block_exposed_cut") end, +}) + +minetest.register_node("mcl_copper:block_oxidized_cut", { + description = S("Oxidized Cut Copper"), + _doc_items_longdesc = S("Oxidized cut copper is a decorative block."), + tiles = {"mcl_copper_oxidized_cut.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + _mcl_anti_oxidation_varient = "mcl_copper:block_weathered_cut", + on_rightclick = function(pos, node, player, itemstack) waxing_copper_block(pos, node, player, itemstack, "mcl_copper:waxed_block_oxidized_cut") end, +}) + +minetest.register_node("mcl_copper:waxed_block_oxidized_cut", { + description = S("Waxed Oxidized Cut Copper"), + _doc_items_longdesc = S("Oxidized cut copper is a decorative block."), + tiles = {"mcl_copper_oxidized_cut.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + on_rightclick = function(pos, node, player, itemstack) scraping_copper_block(pos, node, player, itemstack, "mcl_copper:block_weathered_cut") end, }) mcl_stairs.register_slab("copper_cut", "mcl_copper:block_cut", @@ -127,6 +231,13 @@ mcl_stairs.register_slab("copper_cut", "mcl_copper:block_cut", nil, nil, nil, S("Double Slab of Cut Copper")) +mcl_stairs.register_slab("waxed_copper_cut", "mcl_copper:waxed_block_cut", + {pickaxey = 2}, + {"mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png"}, + S("Waxed Slab of Cut Copper"), + nil, nil, nil, + S("Waxed Double Slab of Cut Copper")) + mcl_stairs.register_slab("copper_exposed_cut", "mcl_copper:block_exposed_cut", {pickaxey = 2}, {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, @@ -134,12 +245,12 @@ mcl_stairs.register_slab("copper_exposed_cut", "mcl_copper:block_exposed_cut", nil, nil, nil, S("Double Slab of Exposed Cut Copper")) -mcl_stairs.register_slab("copper_oxidized_cut", "mcl_copper:block_oxidized_cut", +mcl_stairs.register_slab("waxed_copper_exposed_cut", "mcl_copper:waxed_block_exposed_cut", {pickaxey = 2}, - {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, - S("Slab of Oxidized Cut Copper"), + {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, + S("Waxed Slab of Exposed Cut Copper"), nil, nil, nil, - S("Double Slab of Oxidized Cut Copper")) + S("Waxed Double Slab of Exposed Cut Copper")) mcl_stairs.register_slab("copper_weathered_cut", "mcl_copper:block_weathered_cut", {pickaxey = 2}, @@ -148,6 +259,27 @@ mcl_stairs.register_slab("copper_weathered_cut", "mcl_copper:block_weathered_cut nil, nil, nil, S("Double Slab of Weathered Cut Copper")) +mcl_stairs.register_slab("waxed_copper_weathered_cut", "mcl_copper:waxed_block_weathered_cut", + {pickaxey = 2}, + {"mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png"}, + S("Waxed Slab of Weathered Cut Copper"), + nil, nil, nil, + S("Waxed Double Slab of Weathered Cut Copper")) + +mcl_stairs.register_slab("copper_oxidized_cut", "mcl_copper:block_oxidized_cut", + {pickaxey = 2}, + {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, + S("Slab of Oxidized Cut Copper"), + nil, nil, nil, + S("Double Slab of Oxidized Cut Copper")) + +mcl_stairs.register_slab("waxed_copper_oxidized_cut", "mcl_copper:waxed_block_oxidized_cut", + {pickaxey = 2}, + {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, + S("Waxed Slab of Oxidized Cut Copper"), + nil, nil, nil, + S("Waxed Double Slab of Oxidized Cut Copper")) + mcl_stairs.register_stair("copper_cut", "mcl_copper:block_cut", {pickaxey = 2}, {"mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png"}, @@ -155,6 +287,13 @@ mcl_stairs.register_stair("copper_cut", "mcl_copper:block_cut", nil, 6, nil, "woodlike") +mcl_stairs.register_stair("waxed_copper_cut", "mcl_copper:waxed_block_cut", + {pickaxey = 2}, + {"mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png"}, + S("Waxed Stairs of Cut Copper"), + nil, 6, nil, + "woodlike") + mcl_stairs.register_stair("copper_exposed_cut", "mcl_copper:block_exposed_cut", {pickaxey = 2}, {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, @@ -162,10 +301,10 @@ mcl_stairs.register_stair("copper_exposed_cut", "mcl_copper:block_exposed_cut", nil, 6, nil, "woodlike") -mcl_stairs.register_stair("copper_oxidized_cut", "mcl_copper:block_oxidized_cut", +mcl_stairs.register_stair("waxed_copper_exposed_cut", "mcl_copper:waxed_block_exposed_cut", {pickaxey = 2}, - {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, - S("Stairs of Oxidized Cut Copper"), + {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, + S("Waxed Stairs of Exposed Cut Copper"), nil, 6, nil, "woodlike") @@ -174,4 +313,25 @@ mcl_stairs.register_stair("copper_weathered_cut", "mcl_copper:block_weathered_cu {"mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png"}, S("Stairs of Weathered Cut Copper"), nil, 6, nil, - "woodlike") \ No newline at end of file + "woodlike") + +mcl_stairs.register_stair("waxed_copper_weathered_cut", "mcl_copper:waxed_block_weathered_cut", + {pickaxey = 2}, + {"mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png"}, + S("Waxed Stairs of Weathered Cut Copper"), + nil, 6, nil, + "woodlike") + +mcl_stairs.register_stair("copper_oxidized_cut", "mcl_copper:block_oxidized_cut", + {pickaxey = 2}, + {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, + S("Stairs of Oxidized Cut Copper"), + nil, 6, nil, + "woodlike") + +mcl_stairs.register_stair("waxed_copper_oxidized_cut", "mcl_copper:waxed_block_oxidized_cut", + {pickaxey = 2}, + {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, + S("Waxed Stairs of Oxidized Cut Copper"), + nil, 6, nil, + "woodlike") From b17dcf26da8fa59663c8314105116f5f21e8fe6c Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Tue, 15 Nov 2022 14:32:53 -0700 Subject: [PATCH 13/14] Make beehives transparent and not launch entities, thanks MysticTempest! --- mods/ITEMS/REDSTONE/mesecons_mvps/init.lua | 2 +- mods/ITEMS/mcl_honey/init.lua | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/mods/ITEMS/REDSTONE/mesecons_mvps/init.lua b/mods/ITEMS/REDSTONE/mesecons_mvps/init.lua index a27904e48..b2ff0916e 100644 --- a/mods/ITEMS/REDSTONE/mesecons_mvps/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_mvps/init.lua @@ -364,7 +364,7 @@ function mesecon.mvps_move_objects(pos, dir, nodestack) for _, r in ipairs(mesecon.rules.alldirs) do local adjpos = vector.add(np, r) local adjnode = minetest.get_node(adjpos) - if minetest.registered_nodes[adjnode.name] and minetest.registered_nodes[adjnode.name].mvps_sticky then + if minetest.registered_nodes[adjnode.name] and minetest.registered_nodes[adjnode.name].mvps_sticky and adjnode.name == "mcl_core:slimeblock" then local np = vector.add(obj:get_pos(), dir) -- Reset acceleration of all objects before launching. diff --git a/mods/ITEMS/mcl_honey/init.lua b/mods/ITEMS/mcl_honey/init.lua index 972112ea3..e736320aa 100644 --- a/mods/ITEMS/mcl_honey/init.lua +++ b/mods/ITEMS/mcl_honey/init.lua @@ -42,13 +42,21 @@ minetest.register_craftitem("mcl_honey:honey_bottle", { minetest.register_node("mcl_honey:honey_block", { description = S("Honey Block"), _doc_items_longdesc = S("Honey Block. Used as a decoration and in redstone. Is sticky on some sides."), - tiles = { - "mcl_honey_block_top.png", "mcl_honey_block_bottom.png", - "mcl_honey_block_side.png", "mcl_honey_block_side.png", - "mcl_honey_block_side.png", "mcl_honey_block_side.png", + tiles = {"mcl_honey_block_side.png"}, + use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "blend" or true, + groups = { handy = 1, deco_block = 1, fall_damage_add_percent = -80 }, + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.4, -0.4, -0.4, 0.4, 0.4, 0.4}, + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + } + }, + selection_box = { + type = "regular", }, - groups = { handy = 1, deco_block = 1 }, - paramtype2 = "facedir", _mcl_blast_resistance = 0, _mcl_hardness = 0, mvps_sticky = function(pos, node, piston_pos) From 89a342a34f449c6c425d3507a9265a8e6930c539 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Tue, 15 Nov 2022 20:19:50 -0700 Subject: [PATCH 14/14] Add Bee Nest Tree Schematics and generation --- .../schematics/mcl_core_birch_bee_nest.mts | Bin 0 -> 175 bytes .../mcl_core_oak_classic_bee_nest.mts | Bin 0 -> 180 bytes .../schematics/mcl_mangrove_bee_nest.mts | Bin 0 -> 682 bytes mods/MAPGEN/mcl_biomes/init.lua | 86 +++++++++++++++++- 4 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_birch_bee_nest.mts create mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_oak_classic_bee_nest.mts create mode 100644 mods/ITEMS/mcl_mangrove/schematics/mcl_mangrove_bee_nest.mts diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_birch_bee_nest.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_birch_bee_nest.mts new file mode 100644 index 0000000000000000000000000000000000000000..fff8fddc4a40a5ba8bc678ec7c738d321b5302c4 GIT binary patch literal 175 zcmeYb3HD`RVPIw8U|_9>0wA9`F|&w4BsV!HJ~_WA)ha2oC^;i1HL)zUm_ZyQnv|NF zkqP8k0U7amsl_GnrVK);%1eq;Q!D0N?K{ZDpupiAUbkbv+|&rRw#sbgn-4A7T0+}$ zPp!z4y=JgiJ5b@P|0T6szlvu6t#$1*f4bdZ^Bitt4neioGKXVl`SaatII++FD#LqY GIX(c%tV2Zr literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_oak_classic_bee_nest.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_oak_classic_bee_nest.mts new file mode 100644 index 0000000000000000000000000000000000000000..1f793f47c825b119361eee42b3188f63034f8d8e GIT binary patch literal 180 zcmeYb3HD`RVPIw8U|_9>0wA9`F|&w)KQ}oiJ~_WA)hZ`7u`IQiffp`NQk0s?AP(Xt zrKVtd^*KIwF5dYXXXVNEE$;b>`MHU{zhfC>D|)ALluSyKZ@X6-n&I)y=FSv_ S=`X%7-&ePPjh`d4G#3EBB}@GP literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mangrove/schematics/mcl_mangrove_bee_nest.mts b/mods/ITEMS/mcl_mangrove/schematics/mcl_mangrove_bee_nest.mts new file mode 100644 index 0000000000000000000000000000000000000000..630117463135d0c2f07b779988d94c14ceff3ee5 GIT binary patch literal 682 zcmeYb3HD`RVc=xoW8kVs0Ss&m%!!#r47|C?Iq}K)MX6S0nR%%U(jabbVqSVtep#v& zj1gaypI=gpLoz2du`IQiK?=LhlA_d9262#FQfg{OCQzjnkP)AkT3ixuS~2Hp#OG}#n--ju_*0q2nbK#eN$4pPu-F;aqZgTdV?J;f9gLcvGS@c>3_4fwdT^j z@bh;o8sEg~y^OMKT&wwN-M!p-2^SI~%52viU#Dg2p@7Uz*=C-*=LS=l8kbs0xeSvhQ?X9WGGen`AY~ z;@ry3y;fb}+b=u`6jAx9(-(32VRd7g2G7bIVYS5*6jTIN{1t8He$gq~5SbUb#Jyj^xOQIBPq`1W$K7_=a^y&?aw=0&JJ+ANHGC77G*i0cvma+V?b77~ zV}G4{%ckPM$1o*+>eZdDi}JY(7yaOO&{O}rX1khd-*y|0OO(hkN?ak6wgq=Ef_tv_-t7gqs cUA;lEK+NS_)LhAn&vRsh?`@11z1Fb`0H1t2;s5{u literal 0 HcmV?d00001 diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index d468ae4f4..2869a5315 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -3160,7 +3160,48 @@ local function register_decorations() flags = "place_center_x, place_center_z", rotation = "random", }) - + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"group:grass_block_no_snow", "mcl_core:dirt"}, + sidelen = 16, + --[[noise_params = { + offset = 0.01, + scale = 0.00001, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.33 + },]]-- + fill_ratio = 0.0002, + biomes = {"FlowerForest"}, + y_min = 1, + y_max = mcl_vars.mg_overworld_max, + schematic = mod_mcl_core.."/schematics/mcl_core_oak_classic_bee_nest.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + spawn_by = "group:flower", + }) + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"group:grass_block_no_snow", "mcl_core:dirt"}, + sidelen = 16, + --[[noise_params = { + offset = 0.01, + scale = 0.00001, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.33 + },]]-- + fill_ratio = 0.00002, + biomes = {"Forest"}, + y_min = 1, + y_max = mcl_vars.mg_overworld_max, + schematic = mod_mcl_core.."/schematics/mcl_core_oak_classic_bee_nest.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + spawn_by = "group:flower", + }) -- Rare balloon oak minetest.register_decoration({ @@ -3269,7 +3310,27 @@ local function register_decorations() flags = "place_center_x, place_center_z, force_placement", rotation = "random", }) - + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"mcl_mud:mud"}, + sidelen = 80, + --[[noise_params = { + offset = 0.01, + scale = 0.00001, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.33 + },]]-- + fill_ratio = 0.0005, + biomes = {"MangroveSwamp"}, + y_min = 1, + y_max = mcl_vars.mg_overworld_max, + schematic = mod_mcl_mangrove.."/schematics/mcl_mangrove_bee_nest.mts", + flags = "place_center_x, place_center_z, force_placement", + rotation = "random", + spawn_by = "group:flower", + }) minetest.register_decoration({ deco_type = "simple", place_on = {"mcl_mud:mud"}, @@ -3630,6 +3691,27 @@ local function register_decorations() schematic = mod_mcl_core.."/schematics/mcl_core_birch.mts", flags = "place_center_x, place_center_z", }) + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"group:grass_block_no_snow", "mcl_core:dirt"}, + sidelen = 16, + --[[noise_params = { + offset = 0.01, + scale = 0.00001, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.33 + },]]-- + fill_ratio = 0.00002, + biomes = {"Forest", "BirchForest", "BirchForestM"}, + y_min = 1, + y_max = mcl_vars.mg_overworld_max, + schematic = mod_mcl_core.."/schematics/mcl_core_birch_bee_nest.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + spawn_by = "group:flower", + }) -- Dark Oak minetest.register_decoration({