From 3202e62ac33e44ccc566ade5011fb2a919b5fd4f Mon Sep 17 00:00:00 2001 From: HybridDog Date: Wed, 28 May 2014 21:44:53 +0200 Subject: [PATCH] update some more mods --- mods/carts/textures/carts_rail_brk.png | Bin 0 -> 524 bytes .../textures/carts_rail_crossing_brk.png | Bin 0 -> 498 bytes .../textures/carts_rail_crossing_pwr.png | Bin 0 -> 604 bytes mods/carts/textures/carts_rail_curved_brk.png | Bin 0 -> 555 bytes mods/carts/textures/carts_rail_curved_pwr.png | Bin 0 -> 577 bytes mods/carts/textures/carts_rail_pwr.png | Bin 0 -> 533 bytes .../textures/carts_rail_t_junction_brk.png | Bin 0 -> 548 bytes .../textures/carts_rail_t_junction_pwr.png | Bin 0 -> 584 bytes mods/conifers/README.txt | 16 + mods/conifers/rest/c1.gif | Bin 0 -> 26148 bytes mods/conifers/rest/c2.jpg | Bin 0 -> 33340 bytes mods/conifers/rest/init_old.lua | 510 ++++++++++++++++++ mods/farming_plus/pumpkin.lua | 482 +++++++++++++++++ .../textures/farming_bread_pumpkin.png | Bin 0 -> 511 bytes .../textures/farming_cake_mix_pumpkin.png | Bin 0 -> 343 bytes mods/farming_plus/textures/farming_potato.png | Bin 0 -> 525 bytes .../textures/farming_potato_1.png | Bin 0 -> 473 bytes .../textures/farming_potato_2.png | Bin 0 -> 502 bytes .../textures/farming_potato_3.png | Bin 0 -> 292 bytes .../textures/farming_potato_seed.png | Bin 0 -> 221 bytes .../textures/farming_pumpkin_big_side.png | Bin 0 -> 600 bytes .../textures/farming_pumpkin_big_top.png | Bin 0 -> 600 bytes .../farming_pumpkin_big_top_corner.png | Bin 0 -> 289 bytes .../textures/farming_pumpkin_big_top_side.png | Bin 0 -> 378 bytes .../textures/farming_pumpkin_face.png | Bin 0 -> 622 bytes .../textures/farming_pumpkin_face_light.png | Bin 0 -> 632 bytes .../textures/farming_pumpkin_seed.png | Bin 0 -> 312 bytes .../textures/farming_pumpkin_side.png | Bin 0 -> 627 bytes .../textures/farming_pumpkin_top.png | Bin 0 -> 623 bytes .../textures/farming_scarecrow_front.png | Bin 0 -> 634 bytes .../farming_scarecrow_front_light.png | Bin 0 -> 641 bytes .../textures/farming_scarecrow_side.png | Bin 0 -> 613 bytes .../textures/farming_scarecrow_top.png | Bin 0 -> 639 bytes mods/farming_plus/textures/farming_weed.png | Bin 0 -> 591 bytes mods/farming_plus/weed.lua | 40 ++ mods/glow/depends.txt | 1 - mods/glow/init.lua | 39 -- mods/glow/textures/glow_lamp.png | Bin 1795 -> 0 bytes mods/glow/textures/glow_stone.png | Bin 1651 -> 0 bytes mods/hydro/.gitignore | 4 + mods/hydro/init.lua | 462 ++++++++-------- mods/hydro/textures/hydro_coffee.png | Bin 1166 -> 426 bytes mods/hydro/textures/hydro_coffee1.png | Bin 1179 -> 386 bytes mods/hydro/textures/hydro_coffee2.png | Bin 1179 -> 377 bytes mods/hydro/textures/hydro_coffee3.png | Bin 1179 -> 393 bytes mods/hydro/textures/hydro_coffee4.png | Bin 1166 -> 384 bytes mods/hydro/textures/hydro_coffeecup.png | Bin 4236 -> 797 bytes mods/hydro/textures/hydro_grapes.png | Bin 1179 -> 429 bytes mods/hydro/textures/hydro_grapes1.png | Bin 1179 -> 386 bytes mods/hydro/textures/hydro_grapes2.png | Bin 1179 -> 377 bytes mods/hydro/textures/hydro_grapes3.png | Bin 1179 -> 393 bytes mods/hydro/textures/hydro_grapes4.png | Bin 1166 -> 383 bytes mods/hydro/textures/hydro_growlamp.png | Bin 1179 -> 0 bytes mods/hydro/textures/hydro_growlamp_bottom.png | Bin 0 -> 104 bytes mods/hydro/textures/hydro_growlamp_side.png | Bin 0 -> 149 bytes mods/hydro/textures/hydro_growlamp_top.png | Bin 0 -> 100 bytes mods/hydro/textures/hydro_habanero.png | Bin 1179 -> 309 bytes mods/hydro/textures/hydro_habanero1.png | Bin 1179 -> 375 bytes mods/hydro/textures/hydro_habanero2.png | Bin 1179 -> 480 bytes mods/hydro/textures/hydro_habanero3.png | Bin 1179 -> 533 bytes mods/hydro/textures/hydro_habanero4.png | Bin 1179 -> 542 bytes mods/hydro/textures/hydro_peas.png | Bin 1179 -> 324 bytes mods/hydro/textures/hydro_peas1.png | Bin 1179 -> 375 bytes mods/hydro/textures/hydro_peas2.png | Bin 1179 -> 475 bytes mods/hydro/textures/hydro_peas3.png | Bin 1179 -> 516 bytes mods/hydro/textures/hydro_peas4.png | Bin 1179 -> 533 bytes mods/hydro/textures/hydro_promix.png | Bin 1179 -> 687 bytes mods/hydro/textures/hydro_roastedcoffee.png | Bin 3212 -> 2869 bytes mods/hydro/textures/hydro_rosebush.png | Bin 1179 -> 509 bytes mods/hydro/textures/hydro_roses1.png | Bin 1179 -> 375 bytes mods/hydro/textures/hydro_roses2.png | Bin 1179 -> 459 bytes mods/hydro/textures/hydro_roses3.png | Bin 1179 -> 540 bytes mods/hydro/textures/hydro_roses4.png | Bin 1179 -> 396 bytes mods/hydro/textures/hydro_seedlings.png | Bin 1179 -> 295 bytes mods/hydro/textures/hydro_seeds.png | Bin 1179 -> 375 bytes mods/hydro/textures/hydro_sproutlings.png | Bin 1179 -> 327 bytes mods/hydro/textures/hydro_tomato.png | Bin 1179 -> 187 bytes mods/hydro/textures/hydro_tomato1.png | Bin 1179 -> 375 bytes mods/hydro/textures/hydro_tomato2.png | Bin 1179 -> 459 bytes mods/hydro/textures/hydro_tomato3.png | Bin 1179 -> 489 bytes mods/hydro/textures/hydro_tomato4.png | Bin 1179 -> 478 bytes mods/hydro/textures/hydro_wildplant.png | Bin 1179 -> 320 bytes mods/hydro/textures/hydro_wine.png | Bin 4267 -> 696 bytes mods/minetest-exchange | 1 + mods/minetest-glow | 1 + 85 files changed, 1270 insertions(+), 286 deletions(-) create mode 100644 mods/carts/textures/carts_rail_brk.png create mode 100644 mods/carts/textures/carts_rail_crossing_brk.png create mode 100644 mods/carts/textures/carts_rail_crossing_pwr.png create mode 100644 mods/carts/textures/carts_rail_curved_brk.png create mode 100644 mods/carts/textures/carts_rail_curved_pwr.png create mode 100644 mods/carts/textures/carts_rail_pwr.png create mode 100644 mods/carts/textures/carts_rail_t_junction_brk.png create mode 100644 mods/carts/textures/carts_rail_t_junction_pwr.png create mode 100644 mods/conifers/README.txt create mode 100644 mods/conifers/rest/c1.gif create mode 100644 mods/conifers/rest/c2.jpg create mode 100644 mods/conifers/rest/init_old.lua create mode 100644 mods/farming_plus/pumpkin.lua create mode 100644 mods/farming_plus/textures/farming_bread_pumpkin.png create mode 100644 mods/farming_plus/textures/farming_cake_mix_pumpkin.png create mode 100644 mods/farming_plus/textures/farming_potato.png create mode 100644 mods/farming_plus/textures/farming_potato_1.png create mode 100644 mods/farming_plus/textures/farming_potato_2.png create mode 100644 mods/farming_plus/textures/farming_potato_3.png create mode 100644 mods/farming_plus/textures/farming_potato_seed.png create mode 100644 mods/farming_plus/textures/farming_pumpkin_big_side.png create mode 100644 mods/farming_plus/textures/farming_pumpkin_big_top.png create mode 100644 mods/farming_plus/textures/farming_pumpkin_big_top_corner.png create mode 100644 mods/farming_plus/textures/farming_pumpkin_big_top_side.png create mode 100644 mods/farming_plus/textures/farming_pumpkin_face.png create mode 100644 mods/farming_plus/textures/farming_pumpkin_face_light.png create mode 100644 mods/farming_plus/textures/farming_pumpkin_seed.png create mode 100644 mods/farming_plus/textures/farming_pumpkin_side.png create mode 100644 mods/farming_plus/textures/farming_pumpkin_top.png create mode 100644 mods/farming_plus/textures/farming_scarecrow_front.png create mode 100644 mods/farming_plus/textures/farming_scarecrow_front_light.png create mode 100644 mods/farming_plus/textures/farming_scarecrow_side.png create mode 100644 mods/farming_plus/textures/farming_scarecrow_top.png create mode 100644 mods/farming_plus/textures/farming_weed.png create mode 100644 mods/farming_plus/weed.lua delete mode 100644 mods/glow/depends.txt delete mode 100644 mods/glow/init.lua delete mode 100644 mods/glow/textures/glow_lamp.png delete mode 100644 mods/glow/textures/glow_stone.png create mode 100644 mods/hydro/.gitignore delete mode 100644 mods/hydro/textures/hydro_growlamp.png create mode 100644 mods/hydro/textures/hydro_growlamp_bottom.png create mode 100644 mods/hydro/textures/hydro_growlamp_side.png create mode 100644 mods/hydro/textures/hydro_growlamp_top.png create mode 160000 mods/minetest-exchange create mode 160000 mods/minetest-glow diff --git a/mods/carts/textures/carts_rail_brk.png b/mods/carts/textures/carts_rail_brk.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e0ff9827359b670d25f3add9c2fb6f109397d7 GIT binary patch literal 524 zcmV+n0`vWeP)A|3PFX6z$qY3;%^^=|YhroLw7R)FvdsLRv)Y z7KVc0Drw_n3XUK~Op*A?(Gi{3yf<_2J1u7BQHwU!!Vk{oaQS`beB1+VEiEqy(5XL3 z0BOGkzyK^hyq-0lj9w%k80j{eRKWK&wYtSR;qW-2FjoTL#l0c9{ivu6!2C*?k>M5~ z+&^OfxXHPE7g|Hp3N8h$;cVVyqpWRz`+c^*T|x7YG5{|puVlp8i9xJQrSC$3rxal| zp(ilJ4M$jwx&M3~y2E6^SOLtCFPg2h0G;7rpqS&F7B8pw+yt?(DZs8|swAN2_g-~Sx O0000@;nyt(Z)u?^2qll$Z4`y5o zpsfYHsxaMOO?`CQQ>V1JfbG3AC9oTgf9%C*W3ba96J1UW|xH#kC<`)9VFctioZnJ)JDJ0 oE|c8`8{6%&K3;2TBme!*FVUvIJ(yG}sQ>@~07*qoM6N<$g3ce>{{R30 literal 0 HcmV?d00001 diff --git a/mods/carts/textures/carts_rail_crossing_pwr.png b/mods/carts/textures/carts_rail_crossing_pwr.png new file mode 100644 index 0000000000000000000000000000000000000000..d63f1339b7d7274a498484e6b69689605ab2be29 GIT binary patch literal 604 zcmV-i0;BzjP)V)PQZ_NrG2*~yF;3E;rK2|c87h1jcPT3H*eFlom-!(jo&bU zemyaOipC-}NB*Z0K}3*h56&LjDUUC;NCmrga*qsL4N0{J6)d0>>iPAs7QBD4nWN47 z*t*5wNmmO`yIN^Fu$QGmiDZw*8;G}}6e80 z;@xCU^FC#5FNNDfmZ|`WS2mmLgXDh{Fh^~5@AaHoExHI`jyhT(k+N0I7?+ky?ATVX z-whiL+_Jxi2Ebt4%Q)E+=HPyp05BL2iL+Q>Q(ch4s>|K;hjinE&co7SzF+eo``z;( zGnHq0W)>r;`1r-*=fWbEGmio+dtURtPS37+AcEX_W@(`JMV_K7EU&oq4LkG>S*#Sx zY;V{=BISM5H*6z<{P!ZM>Q#R9u%FXsPW`o^CZ~E6FSj?!osK3g+*I0000L?ZwI0k}y- zK~y-)y_3yLRACgxfA7qAofrnn$RuGVFsyK)XpxI{)-2o&qED zwGSZ(+PEE|Ah^PX`v*uE^dG1QDvV_2ooViToEAE_8NG&XI=lBhoagyH91i@?dU5BH z%#K}=>c7Bo1lBigx^7Ql#&AW{QHM>-5P(=u@A0rr%aFZc0Yr~SoxtsEtB9D@J=002ovPDHLkV1mGX^ArF8 literal 0 HcmV?d00001 diff --git a/mods/carts/textures/carts_rail_curved_pwr.png b/mods/carts/textures/carts_rail_curved_pwr.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ac67a3560029716fc2586a184f20c9422916a7 GIT binary patch literal 577 zcmV-H0>1r;P){cJFrfwb*kYg^gO|Dd%~ghk1X@KwES3Rq5+5 zi3q|UB!cwymt=0f>SheU%kc~D;Ni_~rbmqAjV2ZFea&toA+f^v_1Kloj-HXL_ZO7` zc>cP^mEOzBx`F$W8VsA;)(BXYqPchAe^u{Rlmk6-F^wv7*;>x7MzPhUNh0;3^r3C$$M z(+UdN+~RVupBOwH>vfHfZl7XyRLgE;$@!WSM+?+~5Whn+F<@PAX5_S7d+;`6u&}(& zrHh%dTB~C`O`~b?6s!k6VQfhfAqB{_8LaFp29=>6*ZAztIi8fQ#4XE@ohDtKMG`A~ z+m4tTR4zC%&@Hzn-~WCG-|1=_uimYZ&uJQQ%7L6_X={ftvM8kpBMXO50xx XbKL87*YKfV00000NkvXXu0mjf*Ussa literal 0 HcmV?d00001 diff --git a/mods/carts/textures/carts_rail_t_junction_brk.png b/mods/carts/textures/carts_rail_t_junction_brk.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2c1cbd8f35c0b567b5bc56a78b0ea342cc1e0f GIT binary patch literal 548 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 CONIFERS_ALTITUDE + and (not conifers:is_node_in_cube({"conifers:trunk"}, pos, CONIFERS_DISTANCE)) then + conifers:make_conifer(p, math.random(0, 1)) + end + end +}) + +-- Saplings. +minetest.register_abm({ + nodenames = "conifers:sapling", + interval = INTERVAL, + chance = SAPLING_CHANCE, + + action = function(pos, node) + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then + conifers:make_conifer(pos, math.random(0, 1)) + end + end +}) + +-- Should we remove all the trees above the conifers altitude? +if REMOVE_TREES == true then + minetest.register_abm({ + nodenames = { + "default:tree", + "default:leaves" + }, + interval = INTERVAL/100, + chance = 1, + + action = function(pos, node) + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" + and pos.y >= CONIFERS_ALTITUDE then + minetest.add_node(pos , {name = "air"}) + end + end + }) +end + + + +-------------------------------------------------------------------------------- +-- +-- Functions +-- +-------------------------------------------------------------------------------- + +-- +-- table_contains(t, v) +-- +-- Taken from the Flowers mod by erlehmann. +-- +function conifers:table_contains(t, v) + for _,i in ipairs(t) do + if i == v then + return true + end + end + return false +end + +-- +-- is_node_in_cube(nodenames, node_pos, radius) +-- +-- Taken from the Flowers mod by erlehmann. +-- +function conifers:is_node_in_cube(nodenames, pos, size) + local hs = math.floor(size / 2) + for x = pos.x-size, pos.x+size do + for y = pos.y-hs, pos.y+hs do + for z = pos.z-size, pos.z+size do + n = minetest.get_node_or_nil({x=x, y=y, z=z}) + if n == nil + or n.name == 'ignore' + or conifers:table_contains(nodenames, n.name) then + return true + end + end + end + end + return false +end + +-- +-- are_leaves_surrounded(position) +-- +-- Return a boolean value set to 'true' if a leaves block is surrounded +-- by something else than +-- - air +-- - leaves +-- - special leaves +-- +-- If a leaves block is surrounded by the blocks above, +-- it can be placed. +-- Otherwise, it will replace blocks we want to keep. +-- +function conifers:are_leaves_surrounded(pos) + -- + -- Check if a leaves block does not interfer with something else than the air or another leaves block. + -- + local replacable_nodes = { + "air", + "conifers:leaves", + "conifers:leaves_special" + } + + -- Let's check if the neighboring node is a replacable node. + for i = -1,1,2 do + if not (conifers:table_contains(replacable_nodes, minetest.get_node({x=pos.x+i, y=pos.y, z=pos.z}).name) + or conifers:table_contains(replacable_nodes, minetest.get_node({x=pos.x, y=pos.y, z=pos.z+i}).name) + ) then + return true + end + end + return false +end + +-- +-- add_leaves_block(position, type of leaves, near trunk?) +-- +-- Put a simple leaves block. +-- Leaves must be positioned near a trunk or surrounded by air. +-- Types of leaves are: +-- 0: dark leaves +-- 1: bright leaves (special) +-- +function conifers:add_leaves_block(pos, special, near_trunk) + if (not conifers:are_leaves_surrounded(pos)) + or near_trunk then + if special == 0 then + minetest.add_node(pos , { name = "conifers:leaves" }) + else + minetest.add_node(pos , { name = "conifers:leaves_special" }) + end + end +end + +-- +-- make_leaves(middle point, min radius, max radius, type of leaves) +-- +-- Make a circle of leaves with a center given by 'middle point'. +-- Types of leaves are: +-- 0: dark leaves +-- 1: bright leaves (special) +-- +function conifers:make_leaves(c, radius_min, radius_max, special) + -- + -- Using the midpoint circle algorithm from Bresenham we can trace a circle of leaves. + -- + for r = radius_min, radius_max do + local m_x = 0 + local m_z = r + local m_m = 5 - 4 * r + while m_x <= m_z do + if radius_max > 1 then + if r == 1 then + -- Add a square of leaves (fixing holes near the trunk). + -- [ ] [ ] + -- [#] + -- [ ] [ ] + conifers:add_leaves_block({x = -1 + c.x, y = c.y, z = 1 + c.z}, special) + conifers:add_leaves_block({x = 1 + c.x, y = c.y, z = 1 + c.z}, special) + conifers:add_leaves_block({x = -1 + c.x, y = c.y, z = -1 + c.z}, special) + conifers:add_leaves_block({x = 1 + c.x, y = c.y, z = -1 + c.z}, special) + -- [ ] + -- [ ][#][ ] + -- [ ] + conifers:add_leaves_block({x = c.x, y = c.y, z = -1 + c.z}, special, true) + conifers:add_leaves_block({x = c.x, y = c.y, z = 1 + c.z}, special, true) + conifers:add_leaves_block({x = -1 + c.x, y = c.y, z = c.z}, special, true) + conifers:add_leaves_block({x = 1 + c.x, y = c.y, z = c.z}, special, true) + else + conifers:add_leaves_block({x = m_x + c.x, y = c.y, z = m_z + c.z}, special) + conifers:add_leaves_block({x = m_z + c.x, y = c.y, z = m_x + c.z}, special) + conifers:add_leaves_block({x = -m_x + c.x, y = c.y, z = m_z + c.z}, special) + conifers:add_leaves_block({x = -m_z + c.x, y = c.y, z = m_x + c.z}, special) + conifers:add_leaves_block({x = m_x + c.x, y = c.y, z = -m_z + c.z}, special) + conifers:add_leaves_block({x = m_z + c.x, y = c.y, z = -m_x + c.z}, special) + conifers:add_leaves_block({x = -m_x + c.x, y = c.y, z = -m_z + c.z}, special) + conifers:add_leaves_block({x = -m_z + c.x, y = c.y, z = -m_x + c.z}, special) + end + else + -- Put a small circle of leaves around the trunk. + -- [ ] + -- [ ][#][ ] + -- [ ] + conifers:add_leaves_block({x = c.x, y = c.y, z = -1 + c.z}, special, true) + conifers:add_leaves_block({x = c.x, y = c.y, z = 1 + c.z}, special, true) + conifers:add_leaves_block({x = -1 + c.x, y = c.y, z = c.z}, special, true) + conifers:add_leaves_block({x = 1 + c.x, y = c.y, z = c.z}, special, true) + end + -- Stuff... + if m_m > 0 then + m_z = m_z - 1 + m_m = m_m - 8 * m_z + end + m_x = m_x + 1 + m_m = m_m + 8 * m_x + 4 + end + end +end + +-- +-- make_conifer(position, type) +-- +-- Make a conifer at a given position. +-- Types are: +-- 0: regular pine +-- 1: narrow pine +-- +function conifers:make_conifer(pos, conifer_type) + -- Check if we can gros a conifer at this place. + local node = minetest.get_node(pos).name + if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "default:dirt_with_grass" + and (node ~= "air" + or node ~= "conifers:sapling" + ) then + return false + --else + --if minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "conifers:sapling" then + --minetest.add_node(pos , {name = "air"}) + --end + end + + local height = math.random(TRUNK_MINHEIGHT, TRUNK_MAXHEIGHT) -- Random height of the conifer. + + -- Let's check if we can grow a tree here. + -- That means, we must have a column of 'height' high which contains + -- only air. + for j = 1, height - 1 do -- Start from 1 so we can grow a sapling. + if minetest.get_node({x=pos.x, y=pos.y+j, z=pos.z}).name ~= "air" then + -- Abort + return false + end + end + + local t1 = os.clock() + + local leaves_height = math.random(LEAVES_MINHEIGHT, LEAVES_MAXHEIGHT) -- Level from where the leaves grow. + local current_block = {} -- Duh... + local leaves_radius = 1 + local leaves_max_radius = 2 + local special = math.random(0, 1) + + -- Create the trunk and add the leaves. + for i = 0, height - 1 do + current_block = {x=pos.x, y=pos.y+i, z=pos.z} + -- Put a trunk block. + minetest.add_node(current_block , {name = "conifers:trunk"}) + -- Put some leaves. + if i >= leaves_height then + -- Put some leaves. + conifers:make_leaves({x=pos.x, y=pos.y+leaves_height+height-1-i, z=pos.z}, 1, leaves_radius, special) + -- + -- TYPE OF CONIFER + -- + if conifer_type == 1 then -- Regular type + -- Prepare the next circle of leaves. + leaves_radius = leaves_radius+1 + -- Check if the current radius is the maximum radius at this level. + if leaves_radius > leaves_max_radius then + leaves_radius = 1 + leaves_max_radius = leaves_max_radius+1 + -- Does it exceeds the maximum radius? + if leaves_max_radius > LEAVES_MAXRADIUS then + leaves_max_radius = LEAVES_MAXRADIUS + end + end + else -- Narrow type + if i % 2 == 0 then + leaves_radius = LEAVES_NARROWRADIUS-math.random(0,1) + else + leaves_radius = math.floor(LEAVES_NARROWRADIUS/2) + end + end + end + end + + -- Put a top leaves block. + current_block.y = current_block.y+1 + conifers:add_leaves_block(current_block, special) + + -- Blahblahblah + print (string.format('[conifers] A conifer has grown at ('..pos.x..','..pos.y..','..pos.z..') with a height of '..height..' after ca. %.2fs', os.clock() - t1)) + return true +end diff --git a/mods/farming_plus/pumpkin.lua b/mods/farming_plus/pumpkin.lua new file mode 100644 index 0000000..2309e72 --- /dev/null +++ b/mods/farming_plus/pumpkin.lua @@ -0,0 +1,482 @@ +minetest.register_craftitem(":farming:pumpkin_seed", { + description = "Pumpkin Seed", + inventory_image = "farming_pumpkin_seed.png", + on_place = function(itemstack, placer, pointed_thing) + local above = minetest.env:get_node(pointed_thing.above) + if above.name == "air" then + above.name = "farming:pumpkin_1" + minetest.env:set_node(pointed_thing.above, above) + itemstack:take_item(1) + return itemstack + end + end +}) + +minetest.register_node(":farming:pumpkin_1", { + paramtype = "light", + sunlight_propagates = true, + drawtype = "nodebox", + drop = "", + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png"}, + node_box = { + type = "fixed", + fixed = { + {-0.2, -0.5, -0.2, 0.2, -0.1, 0.2} + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.2, -0.5, -0.2, 0.2, -0.1, 0.2} + }, + }, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, not_in_creative_inventory=1, plant=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node(":farming:pumpkin_2", { + paramtype = "light", + sunlight_propagates = true, + drawtype = "nodebox", + drop = "", + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png"}, + node_box = { + type = "fixed", + fixed = { + {-0.35, -0.5, -0.35, 0.35, 0.2, 0.35} + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.35, -0.5, -0.35, 0.35, 0.2, 0.35} + }, + }, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, not_in_creative_inventory=1, plant=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node(":farming:pumpkin", { + description = "Pumpkin", + paramtype2 = "facedir", + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, plant=1}, + sounds = default.node_sound_wood_defaults(), + + on_punch = function(pos, node, puncher) + local tool = puncher:get_wielded_item():get_name() + if tool and tool == "default:sword_wood" or tool == "default:sword_stone" or tool == "default:sword_steel" then + node.name = "farming:pumpkin_face" + minetest.env:set_node(pos, node) + puncher:get_inventory():add_item("main", ItemStack("farming:pumpkin_seed")) + if math.random(1, 5) == 1 then + puncher:get_inventory():add_item("main", ItemStack("farming:pumpkin_seed")) + end + end + end +}) + +farming:add_plant("farming:pumpkin", {"farming:pumpkin_1", "farming:pumpkin_2"}, 80, 20) + +minetest.register_node(":farming:pumpkin_face", { + description = "Pumpkin", + paramtype2 = "facedir", + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node(":farming:pumpkin_face_light", { + description = "Pumpkin", + paramtype2 = "facedir", + light_source = LIGHT_MAX-2, + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face_light.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:pumpkin_face_light", + recipe = {"farming:pumpkin_face", "default:torch"} +}) + +-- ========= BIG PUMPKIN ========= +minetest.register_node(":farming:big_pumpkin", { + description = "Big Pumpkin", + paramtype2 = "facedir", + tiles = {"farming_pumpkin_big_side.png"}, + selection_box = { + type = "fixed", + fixed = { + {-1, -0.5, -1, 1, 1.5, 1} + } + }, + groups = {choppy=1, oddly_breakable_by_hand=1, flammable=2, plant=1}, + sounds = default.node_sound_wood_defaults(), + + after_place_node = function(pos, placer) + for dx=-1,1 do + for dy=0,1 do + for dz=-1,1 do + pos.x = pos.x+dx + pos.y = pos.y+dy + pos.z = pos.z+dz + if dx ~= 0 or dy ~= 0 or dz ~= 0 then + if minetest.env:get_node(pos).name ~= "air" then + pos.x = pos.x-dx + pos.y = pos.y-dy + pos.z = pos.z-dz + minetest.env:remove_node(pos) + minetest.after(0.1, function(placer) + local inv = placer:get_inventory() + local index = placer:get_wield_index() + inv:set_stack("main", index, ItemStack("farming:big_pumpkin")) + end, placer) + return + end + end + pos.x = pos.x-dx + pos.y = pos.y-dy + pos.z = pos.z-dz + end + end + end + for dy=0,1 do + pos.y = pos.y+dy + pos.z = pos.z+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_side", param2=2}) + pos.x = pos.x-1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_corner", param2=2}) + pos.x = pos.x+1 + pos.z = pos.z-2 + minetest.env:set_node(pos, {name="farming:big_pumpkin_side", param2=4}) + pos.x = pos.x+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_corner", param2=4}) + pos.z = pos.z+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_side", param2=3}) + pos.z = pos.z+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_corner", param2=3}) + pos.z = pos.z-1 + pos.x = pos.x-2 + minetest.env:set_node(pos, {name="farming:big_pumpkin_side", param2=1}) + pos.z = pos.z-1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_corner", param2=1}) + pos.z = pos.z+1 + pos.x = pos.x+1 + pos.y = pos.y-dy + end + pos.y = pos.y+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_top"}) + end, + + after_destruct = function(pos, oldnode) + for dx=-1,1 do + for dy=0,1 do + for dz=-1,1 do + pos.x = pos.x+dx + pos.y = pos.y+dy + pos.z = pos.z+dz + local name = minetest.env:get_node(pos).name + if string.find(name, "farming:big_pumpkin") then + minetest.env:remove_node(pos) + end + pos.x = pos.x-dx + pos.y = pos.y-dy + pos.z = pos.z-dz + end + end + end + end +}) + +minetest.register_node(":farming:big_pumpkin_side", { + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + tiles = {"farming_pumpkin_big_top_side.png", "farming_pumpkin_big_side.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, 0.5, 0.5, 0.5} + } + }, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0} + } + }, + groups = {not_in_creative_inventory=1, plant=1}, +}) +minetest.register_node(":farming:big_pumpkin_corner", { + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + tiles = {"farming_pumpkin_big_top_corner.png", "farming_pumpkin_big_side.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, 0, 0.5, 0.5} + } + }, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0} + } + }, + groups = {not_in_creative_inventory=1, plant=1}, +}) + +minetest.register_node(":farming:big_pumpkin_top", { + paramtype = "light", + sunlight_propagates = true, + tiles = {"farming_pumpkin_big_top.png"}, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0} + } + }, + groups = {not_in_creative_inventory=1, plant=1}, +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:big_pumpkin", + recipe = {"bucket:bucket_water", "farming:pumpkin"}, + replacements = { + {"bucket:bucket_water", "bucket:bucket_empty"} + } +}) + +-- ========= SCARECROW ========= +local box1 = { + {-1, -8, -1, 1, 8, 1}, +} + +local box2 = { + {-1, -8, -1, 1, 8, 1}, + {-12, -8, -1, 12, -7, 1}, + {-5, -2, -5, 5, 8, 5} +} + +for j,list in ipairs(box1) do + for i,int in ipairs(list) do + list[i] = int/16 + end + box1[j] = list +end + +for j,list in ipairs(box2) do + for i,int in ipairs(list) do + list[i] = int/16 + end + box2[j] = list +end + +minetest.register_node(":farming:scarecrow", { + description = "Scarecrow", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + tiles = {"farming_scarecrow_top.png", "farming_scarecrow_top.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_front.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = box2 + }, + selection_box = { + type = "fixed", + fixed = { + {-12/16, -1.5, -0.5, 12/16, 0.5, 0.5} + } + }, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + + after_place_node = function(pos, placer) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + pos.y = pos.y+1 + if minetest.env:get_node(pos).name ~= "air" then + pos.y = pos.y-1 + minetest.env:remove_node(pos) + minetest.after(0.1, function(placer) + local inv = placer:get_inventory() + local index = placer:get_wield_index() + inv:set_stack("main", index, ItemStack("farming:scarecrow")) + end, placer) + return + end + minetest.env:set_node(pos, node) + pos.y = pos.y-1 + node.name = "farming:scarecrow_bottom" + minetest.env:set_node(pos, node) + end, + + after_destruct = function(pos, oldnode) + pos.y = pos.y-1 + if minetest.env:get_node(pos).name == "farming:scarecrow_bottom" then + minetest.env:remove_node(pos) + end + end +}) + +minetest.register_node(":farming:scarecrow_bottom", { + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + tiles = {"default_wood.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = box1 + }, + groups = {not_in_creative_inventory=1}, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0} + } + } +}) + +minetest.register_craft({ + output = "farming:scarecrow", + recipe = { + {"", "farming:pumpkin_face", "",}, + {"default:stick", "default:stick", "default:stick",}, + {"", "default:stick", "",} + } +}) + +minetest.register_node(":farming:scarecrow_light", { + description = "Scarecrow", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + light_source = LIGHT_MAX-2, + tiles = {"farming_scarecrow_top.png", "farming_scarecrow_top.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_front_light.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = box2 + }, + selection_box = { + type = "fixed", + fixed = { + {-12/16, -1.5, -0.5, 12/16, 0.5, 0.5} + } + }, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + + after_place_node = function(pos, placer) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + pos.y = pos.y+1 + if minetest.env:get_node(pos).name ~= "air" then + pos.y = pos.y-1 + minetest.env:remove_node(pos) + minetest.after(0.1, function(placer) + local inv = placer:get_inventory() + local index = placer:get_wield_index() + inv:set_stack("main", index, ItemStack("farming:scarecrow_light")) + end, placer) + return + end + minetest.env:set_node(pos, node) + pos.y = pos.y-1 + node.name = "farming:scarecrow_bottom" + minetest.env:set_node(pos, node) + end, + + after_destruct = function(pos, oldnode) + pos.y = pos.y-1 + if minetest.env:get_node(pos).name == "farming:scarecrow_bottom" then + minetest.env:remove_node(pos) + end + end +}) + +minetest.register_craft({ + output = "farming:scarecrow_light", + recipe = { + {"", "farming:pumpkin_face_light", "",}, + {"default:stick", "default:stick", "default:stick",}, + {"", "default:stick", "",} + } +}) + +--=============== +minetest.register_craftitem(":farming:pumpkin_bread", { + description = "Pumpkin Bread", + inventory_image = "farming_bread_pumpkin.png", + stack_max = 1, + on_use = minetest.item_eat(8) +}) + +minetest.register_craftitem(":farming:pumpkin_flour", { + description = "Pumpkin Flour", + inventory_image = "farming_cake_mix_pumpkin.png", +}) +minetest.register_alias("farming:pumpkin_cake_mix", "farming:pumpkin_flour") + +minetest.register_craft({ + output = "farming:pumpkin_flour", + type = "shapeless", + recipe = {"farming:flour", "farming:pumpkin"} +}) + +minetest.register_craft({ + type = "cooking", + output = "farming:pumpkin_bread", + recipe = "farming:pumpkin_flour", + cooktime = 10 +}) + + +-- ========= FUEL ========= +minetest.register_craft({ + type = "fuel", + recipe = "farming:pumpkin_seed", + burntime = 1 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:pumpkin", + burntime = 5 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:pumpkin_face", + burntime = 5 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:pumpkin_face_light", + burntime = 7 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:big_pumpkin", + burntime = 10 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:scarecrow", + burntime = 5 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:scarecrow_light", + burntime = 5 +}) diff --git a/mods/farming_plus/textures/farming_bread_pumpkin.png b/mods/farming_plus/textures/farming_bread_pumpkin.png new file mode 100644 index 0000000000000000000000000000000000000000..44db02e254c97d2d3ae003eb3192236258aeca54 GIT binary patch literal 511 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m1E01m1FT&pG+00007bV*G`2iyn` z5eysp4`Rds00DnVL_t(2&xMk|O9EjS$3GY4A{fdAq7Zl_2sIUvLP3KBbxr;ihcY5J{KhNjO^E`rW+x&Lq zWXSWVlsW>y*k4do^r0N+Xn;F zM!WBSfpRiruPp}2$r`l>C|2SCtj<-5h2iij!da%p&Z$VZXAMCo-fYYdKu*@kD-xRv z8pTQ+wP66zd^YL!ER<4572#`ty*j&(nVZ2e0 z3#JkQ@`^+zUFBt9QLMyiJoVXMZ;gZi#+{4P6ackhd~3u{2te3a3fl8Ce#D@Uwr-M5 zH@PT8el@vKl~PBzy))c7#lrjxeOrK^3;h=a@Chq7+kHZuO{4$-002ovPDHLkV1k^( B(3t=L literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_cake_mix_pumpkin.png b/mods/farming_plus/textures/farming_cake_mix_pumpkin.png new file mode 100644 index 0000000000000000000000000000000000000000..171e486703dae23880edc55c83aa53c49815ffc5 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf<4t_yy^;wD?EkL2`o-U3d7N_q9 zE#y07AW$1?@VoP-+hCRN?r?J?>Zx- zw{uDP-tX`3K5ekya`)!1AQ_37jaL)yN7}6qV^+BBsWnqHb!VwN%K|ygR}*j5T-4Fv zNSP&U>SWB|aJ@)LG$7@hzm|hdZ4<|h{?@b?QGQMz%3GwjzH4kvE8sdcLNEG}l)CqW4{wFP9d9r6zIUYS@41aNGm9LKy<>2wPfdG!ZI!M1 hN9QQT&yD+&^*t^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww(-(bG+g$(_ za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOxq6>V*@D*$t=l9WmxgHT|jDUc^T(Ud{*%^I%b>b;o^X16(aGA-v$*d|=W8mGU2Ipz8TQ-;}2G3yRyF>G>* zX?qCdCGOx!a`8W9AtcBQ1kEk;Ox?PUyk>Gbcl;Go%(??<*38U(dl*7JLedVsVgg39 Yz{22Z+pBDAfo^2*boFyt=akR{02iUMg#Z8m literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_potato_1.png b/mods/farming_plus/textures/farming_potato_1.png new file mode 100644 index 0000000000000000000000000000000000000000..75a36d9251c7a25e40a17f0f080e00fc960193f1 GIT binary patch literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww)6{t7pYR+k ziU&OF--5C#{5LXFM$T`2DvM4h>ql94%{~0TwC?8m~C^fMpGe1wEBr`Xa z!Sp*nCs2kHBomyUR#Ki=l*$lW@E@d{8zktGS)81c2vl0cu>HW6exNW1NH{#PC@(WF zo#BA=vv!~uJ4AnJQF1E7*ZWXh(+()$-Z0+iX5%;oz+*q4k=%I?sDY4H7pw?ByOp3{Il8LtEEzybpGNO)|dnF z4zF5QPJf!yEPk`*nqt)K(vB<>HinDw9}dZ0_|C|n;wZE+H7n=twdB)ZcBMYx-thUc a?jC86%6X3_{y7P>kHOQ`&t;ucLK6U$l%rMv literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_potato_2.png b/mods/farming_plus/textures/farming_potato_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6491d34ddc2d6ad713f554468e5a89678eda1b52 GIT binary patch literal 502 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww(^690e#;6h ziU&OF--5C#{5LXFM$T`2DvM4h>ql94%{~3@%KCoy}YGO%dex5=}W^O8j z>34okpbRHSCOAK>q&%@Gl_9p^KS((@NYEv-I5{T~sI-V-`++U}Kw%D$aCl--US?i8 z!vX1M?LaYhi2l-|Q|C?XKlsV_;=BDPAFnl{RZ9hOhf3 zPZ!4!i{7_Ej$8*6cvf$k{-XTK{#EZkYNv^(E)5pEQ`qRFnL8^(l)moS%W}ZPr)26=gNu&eH0nHRikp+XLS8$b?|h;7;&99+-+j|2Z1t6!^dhzK zw5ZvE>LtBTr9GMgdFmaLQWLuqUhGYLJt6I|i;MZTj~hL{*KUmhI)=g1)z4*}Q$iB} DUS6;$ literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_potato_3.png b/mods/farming_plus/textures/farming_potato_3.png new file mode 100644 index 0000000000000000000000000000000000000000..37a2c972bf486830438d387b1c00aefe86cf6edb GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sDEfH31!Z9ZwBAbW|YuPgf<4tahS@!Es6OhBO}o-U3d7N?g^ zIw*KpfrrJvr(UzU>cQN&n2z5K@m3y!SBid0^tVkk@O;aKYPv=}5t{GI_;atd{(1%Ot#a z-MYYam|1b!k$KCkx5oS~XRkG9&92dVkS3IEKgp2O+%=+b{?-j^p{y|y+EN@PZ!4!i_^&o z5*Y_LlD|BU`jeiJkWlgKnKm;JIG_J?y61?*0hg8B5geKdPmFeObE(fym@;u%g2DB0 zwOcTQX!a9K2Q*+ou<>c>XqN*&TUK#LeWUHx3v IIVCg!0QfyfsQ>@~ literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_pumpkin_big_side.png b/mods/farming_plus/textures/farming_pumpkin_big_side.png new file mode 100644 index 0000000000000000000000000000000000000000..2651380b2f624c3d4859b36a054a6ab5059de262 GIT binary patch literal 600 zcmV-e0;m0nP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z4k0JvFreW800G!ZL_t(2&n=QmZX-t!1tYVvKV(ysX5bV1nm&PHKoTf5$*#(e7n(@}pV*rBXS=*q4$|FS1p|N#XP}GDf2r7s98qYxf733= z{2~>`EyLB1Z^U%D>P(bGR>cv0Z|keO>qZ=3QsMV^)U=t#zY%?>GK)5yDucG>4wW{| zww-gQ#-2NXOq=FTNh7;XXUfe?n=ujJU(y!QW>*{gVOR70S%~U}R3Mh)?)wwS@wDxn zMdk2*m-Uw{4V?j1Rei%hfXp3P8g0#S*J-uwOl5q9RM`19Boh@w?PR(^rM=E(CfZcB zf4++dl{!-yH6DNpT5r zO{PuSGCp>ZCe!IBQFc`43vFdUzu7c1U5GArDrrB6=zHw{A(qDtPyoLJF%Gd4qSzUr z-+<|D`D4}w*s3ZuGF&cAZLYEV{avS(?Bnwwy>w~Q(&nxFA?vTqRCjOl)>LS#KfI2} z@hpThlvC;MRe@N=$U^Ig=sRsCI|DnPDe#s7^ me)Fo5>4a!iRUGLZTmJ|1{4#PGCFczQ0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z4kI$X+a`zr00G!ZL_t(2&n=QmZX-t!1tYVvKV(ysX5bV1nm&PHKoTf5$*#(e7n(@}pV*rBXS=*q4$|FS1p|N#XP}GDf2r7s98qYxf733= z{2~>`EyLB1Z^U%D>P(bGR>cv0Z|keO>qZ=3QsMV^)U=t#zY%?>GK)5yDucG>4wW{| zww-gQ#-2NXOq=FTNh7;XXUfe?n=ujJU(y!QW>*{gVOR70S%~U}R3Mh)?)wwS@wDxn zMdk2*m-Uw{4V?j1Rei%hfXp3P8g0#S*J-uwOl5q9RM`19Boh@w?PR(^rM=E(CfZcB zf4++dl{!-yH6DNpT5r zO{PuSGCp>ZCe!IBQFc`43vFdUzu7c1U5GArDrrB6=zHw{A(qDtPyoLJF%Gd4qSzUr z-+<|D`D4}w*s3ZuGF&cAZLYEV{avS(?Bnwwy>w~Q(&nxFA?vTqRCjOl)>LS#KfI2} z@hpThlvC;MRe@N=$U^Ig=sRsCI|DnPDe#s7^ me)Fo5>4a!iRUGLZTmJ|1{4#PGCFczQ0000QL70(Y)*K0-AbW|YuPgf<4t_p$0iNrNGJrx0JzX3_Bre;Y zyXbq^K!oAI=kDaCstR=y(_JGM22Bizj=Ej=W5p5Qf|sw2-y6KU`{m!lSies(E|FI+ zNA|3peCWnsZ%xUsO8ZjuEE?U$$-ECVXlXd7|90#XR}-C9BSu zH*Z(nKbI6I5&Gqx@6)3qotYQwcmLfe`8IF*k$*RGzW%D|@luxWzL>W}$K==dV!p>- eTI=0hx$2`=cqu+RD0v&`SO!m5KbLh*2~7Y1%5)k4 literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_pumpkin_big_top_side.png b/mods/farming_plus/textures/farming_pumpkin_big_top_side.png new file mode 100644 index 0000000000000000000000000000000000000000..e2eb1a75f5528df9ec7a863145c6e976cadd9427 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2~4hMP3{LQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sf9S(jzH51MA3$uJQd(o`pPl)Vq@9%puj$f z-fiBm+9Yx%PqS``c+bGX@P{+u%hYYmtlQWd%Gd+WUEUul(r{MkjNIYMkd3oyKRypV z)sykJ+_mD=lGIC89`%L)dN>Np*RqQ`rPo)kQ~qV`_@=QWWykMt*6#f+PpsUc7Z@*E zc=(&?FJTko+euf{f;746r~OoU@j=>yse^UR@(hNf@8`|bu?{dYJ}z}H;j{eY4HJxF TW;{9s3Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX2o4PfAF2&=CIA2e07*naR4C6) zlD$qFQ51yd{Opf+jZIL5gp@K+_`Om`se^>6sCk|gya(wbMNvd#9Prw^_nv!B3S6Z9 zicd46p@%Og9~LRRAl%*U8Qen`rn;T{hmo@@LU4y zW;@6nRG&~3#S36u(jKJTEVxDqDjrd$k_Ks)X2w0r^h!}|zX2gu^$j5@WfSjwcf4nz@n&7cCRGO)$M+Dk33AeP#eYoG0#9z zKa9}+dooTjh?x2MQJ7+9-$A7y$A zCRG!qaFhaK4_tnITHS$&K3;ED_n@jLX)f0TkzB2J0I2FcL#gf{ik#jwm$ygX$Lr0J ztdEQO^a6kZz>fPo-Yx(<-gE%I-!%V2VgVox)5GWbqEA60A_y-Y)odAg$lIxU*9Qst z1k&(K&GN_3CoWc`?u7}`+QDKfp2q;81Huq)W)TIXQL+OZsgyK8T6jW+cD3g{NL7!& z6m5uvSYUf?dWONCK|}z20M#d+0AhQwh@ff);)sYcxg|*R5A%^NSJ;GpZU6uP07*qo IM6N<$f*3Odk^lez literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_pumpkin_face_light.png b/mods/farming_plus/textures/farming_pumpkin_face_light.png new file mode 100644 index 0000000000000000000000000000000000000000..cef48664d85091313841b76e1ef9ba90b7028a10 GIT binary patch literal 632 zcmV-;0*C#HP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX2o4Pk4eT0xBLDyb3Q0skR4C6) zlDlqGQ4mG>N!PG+ycfWtwGAo9@i*A#UsjCQZMbo%(z1t?g}jdW3sG zs!4c(wB7^ZTGiT3y+`EUdjKGvs&5b^@Wj>h+1X^%SDWX&bXV zf4V)6PY-tF>}YG$$6Ejl0JigU`Surp%k%F5uFk*y4~YeUG)xyS>Z2|NiHIP)cvO=` zOmJI!KxJ*0&v zWazZ^yauW2?k`0fA|V#oTAPkxup1B&0PjKd+!H`-w-ympO+XwGQAW1}Y5oD|YAJEa S?TTXn0000F6yYrJh%9Dc;1&j9Muu5)B!GhKC7!;n>~}c$c=VZi`d=vng(OQ{BTAg} zb8}PkN*J7rQWHy3QxwWGOEMJPJ$(bh8~Mb6iY9xyIEGl9PX6=%zdf^RLuaGY0jA_T znU9hafZ)g9pT^8U(46+Y-fB04xWW^o9o!+O%nS?+j0`t?`Y8Oih7AbZVm1~m?|g5+ z=`0TqPftax1IL3R$%||&uGAfP&zjR%x;*lMeTcDgPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX2o4M)C7dfE1poj59cffpbVF}# zZDnqB0000007G(RVRU6=Aa`kWXdp*PO;BVmWd{HN0o+MMK~yNuEs{xY*`Bl9PR zB1|l{SpFF1b;C%MCzm(Y#aA$Ww=fax>Fr48+%` zv`Mtt&H8rO&3toi!=Ipx; zv#kr2@flKK%O8*oRCaB1(-kW1c{DT8rmE-rtB6pkBb8D84yaK6P{1yh_fw|lejep_ zonPosj@octD~|8If&Mmfo5zFHPPypY7=!e(^QEUM?KY-z7`fb(*v`JOUGhD7sZLGfe{;I=F zp8fqGy>x2B)W)^^F7uDd)bMEI+Ei$>-@T5={wRb6%Bghssz9uwCup4!=SG{!la4K8 z_8l>^-@j}&i8RrM?>4Q9<8O!vkQ*{SY9K N002ovPDHLkV1mDD8Lj{T literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_pumpkin_top.png b/mods/farming_plus/textures/farming_pumpkin_top.png new file mode 100644 index 0000000000000000000000000000000000000000..edef2d94bd59cd02eeb0dbbec9206e6e638c9521 GIT binary patch literal 623 zcmV-#0+9WQP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX2o4M)Dh!l7lmGw#9cffpbVF}# zZDnqB0000007G(RVRU6=Aa`kWXdp*PO;BVmWd{HN0oX}IK~yNuEs{%aBS#PgBeSwU zWK)!8;1m0rK7nCC5-2svuF8)Wn(bRe0D&j}{QXKiD}&0+^bd5yu5TQl*qZleyS!8m z(%oGJ1Aq)?po`9bso04eQE0k<(=N#TA{E9h!_|*(#B{mpOq4`c#SwjP>#Mu#MjT&K z;rDmcw3)`g5q+mJi#DAqgSO@ll{U?`opYzgo;!d{o90eQBfCy#%FRrhF%jQi(iYKX zR~!3bSM&W@i0Xz^AeQ6q`xD6VwC$Wl#xjIcW?97RA{R|ypG86EQB+ZQ|azifmp@JLhFd=J8dO913S+-?ueQF z`DL?3q=`2CKCLgxz&{WXAa`Vb$qu4^^Qw~RglJV&9O)ff{|EE@GIALu=M4Y=002ov JPDHLkV1n8|5Yqqv literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_scarecrow_front.png b/mods/farming_plus/textures/farming_scarecrow_front.png new file mode 100644 index 0000000000000000000000000000000000000000..364738fd6f3020f97686e0350c7b20cb01ebca52 GIT binary patch literal 634 zcmV-=0)_pFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z3pEH~gop+J00H_*L_t(I%cYXfY7o*UA3{&Q4t(G zMd^ZNMupAB;*x#+Lb(RmfbuX1EVqg&Q}R)ay`F(oEHkn$S%&2J+1Mut5gz!F;qY~pJoa|c^$q4Crm@?(;u!a#9`FIE!%sKVr zJi=BM09M7qSr>@P2Kji1?bk5*1S2FmPe3Sa$K~i-|Hgy8c7tgWv*uMX(_;`0Tl+%* zP7fw*byB(q69vBTkw-d0{NjW`mX?13FJHho2MQqlC zMTn1YpDp&Fdhv;Seuh*I7>#rTvf&7O!v|AwLWdH#53(SF!$Ao)-I1^FG; UvMH`M-~a#s07*qoM6N<$f{x1#`2YX_ literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_scarecrow_front_light.png b/mods/farming_plus/textures/farming_scarecrow_front_light.png new file mode 100644 index 0000000000000000000000000000000000000000..b4b3cf289b9525f2d4ae8004719a924434bb925a GIT binary patch literal 641 zcmV-{0)G98P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z3eCM9?yGOiu z+%jD1`TgH4`6;Hz&|0HYP$fXkA*7Ab8F_lnoA0eLf?B)hF)N*DWJzL`J&Ghk>Kvqv zaLOp1GtH=Gy*9a|U%yby12&*s3<9fE#uN$JAi`cuK`N#h+3AOjLyy1+3u(KozOEuI zMR67(tP<<*8f3$Se0a_@qegKAz}}xB&AU(x3XBu8_o{<11=4jfMZ&@M0K0OV?Cbt&SDS>+bOa0t#{?YW~;_1j+l4Ln9(i> zhsMhVV1fPMh(@qXJLs|+ECFz^Jz%pn<-sV9Xx1-^2*(AZ0cdX>(+HN?4~|$3mS}Gs zU;a?YO4Xl)`1tn8WDm;SPu%fRq;kM$WXUHz8DLjDFgXYXw#)l&{c41thdt)qG62mu z1rHFC{4_;+1C+18zc6NI_eYiepzge## b`A_`?RC(3*j&oOz00000NkvXXu0mjfqj(y4 literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_scarecrow_side.png b/mods/farming_plus/textures/farming_scarecrow_side.png new file mode 100644 index 0000000000000000000000000000000000000000..e22e84ba1dd15382c478abe92c35b03ffd9ba9f7 GIT binary patch literal 613 zcmV-r0-F7aP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z3pEq#;X&#E00HGmL_t(I%cYXfiqlXOhrfGsle9@2+Jab&2zD{dl)9MBJb~cC2XNs+ zpT~#s8QeOEf(}Jov?vw}g)mLpbn@?B7qy+VA_{)H1NS@p&bddtd^$4x;>F2V?gu%h zD$rV^b5Jgz8VG4)bU~Tl@ap4er=U(B_#C4%jdUee+o#GBq%J|)2&awGC3Qy)2jRZR z-@T=30ydyL3pPKsz*=rlrl9;V8WP7AvmP^=b^!_HHmCNZ|M0I(VsPDdab zU5eEL+wY;v9FXWD1);DVm&^CF+XNS*kWHG<^xBxs6$poFy?_Etu|@z@nju>OWfJ3b zdR&ac!x4sqknv=Oa6K?NmVbvI>m_%uGwhDLT`HiO3Z2C~><7R9!f+5GzJEYhB{EwQ z1{&%1$QKcI*QZ*=SiTRo$9Pg3VLX}9^xE4dX%0RhB;_(k`VlHnU`nLt0bsJ_{yl(r z{^ZQmk7&2he?>hS1P6x!@cPXc&QJS)l{aaE0;rDxaDLi9Sk#{hwhfLG?5JPqal`36 z-X<6h!h?s$?8NCj=JIOBv&U!q_`^YnRP00000NkvXXu0mjfYmf>R literal 0 HcmV?d00001 diff --git a/mods/farming_plus/textures/farming_scarecrow_top.png b/mods/farming_plus/textures/farming_scarecrow_top.png new file mode 100644 index 0000000000000000000000000000000000000000..3a4addcd66f7399cedc6e9c415ff044c18ae5ec7 GIT binary patch literal 639 zcmV-_0)YLAP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z3p51=F2(u)00I9=L_t(I%YBniYZFlv#eeV3o0(=NGo%4&As{rXHl%`^euA!a*Nt1h zkDtV?Tm1rdBVwtdn1UEB1cJ#VGo3&0Jr`jnomf1(d%5>=IOkmP^7+_u4`rnRaFx@l zYt;Q3>iBWkYK(@1R{i?jXI`A20B}8-vJ3I%)kTZJ&F%7^p)5@vJPx4lFFY~tc@`H~ zU1E&E6rg;dyN8f2cJ+~}xZ`bc-t5RMO~}%O4_|JZrpXObO57;ISin>px?Y4*s$rF- z3F^~i*$7koO3)p^1yq1V;P??%=almVw^x8vTwZOpP-o)-S(?xZBFwidtZ;CY5Bd)2 z$5e|sPB+5s3CeX2z}a}Kh04-|(Qv@^WQsZfJ=a(-MRXlZI!6WpR_92si@P6Fu4Wwd zVkY35fXl z9iuB`zF-g=q~E8Q&2jfb^lFI{hTsM~Jw9x#RCPor6wd92!gvHQ;d!|tmC Z`~`sUPx#24YJ`L;$M*_CX>@2HM@dakSAh-}00051NklfLOTQsQV_b`<}95(!NFT^ zN`%M_fo@I_pB6GD)fRK4TnF#}`ch+;e$%`E_r3T3{@;5C{|O7=D)dlsLS_E~fcB?V zEpW;?fT?_C|AJW||Ax778icpa4?py@K*b3vPH@V(XL$g-R(DZxLZ_T#Do002ovPDHLkV1n!j{hR;* literal 0 HcmV?d00001 diff --git a/mods/farming_plus/weed.lua b/mods/farming_plus/weed.lua new file mode 100644 index 0000000..17d523a --- /dev/null +++ b/mods/farming_plus/weed.lua @@ -0,0 +1,40 @@ +minetest.register_node(":farming:weed", { + description = "Weed", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + drawtype = "plantlike", + tiles = {"farming_weed.png"}, + inventory_image = "farming_weed.png", + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+4/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, plant=1}, + sounds = default.node_sound_leaves_defaults() +}) + +minetest.register_abm({ + nodenames = {"farming:soil_wet", "farming:soil"}, + interval = 50, + chance = 10, + action = function(pos, node) + if minetest.env:find_node_near(pos, 4, {"farming:scarecrow", "farming:scarecrow_light"}) ~= nil then + return + end + pos.y = pos.y+1 + if minetest.env:get_node(pos).name == "air" then + node.name = "farming:weed" + minetest.env:set_node(pos, node) + end + end +}) + +-- ========= FUEL ========= +minetest.register_craft({ + type = "fuel", + recipe = "farming:weed", + burntime = 1 +}) diff --git a/mods/glow/depends.txt b/mods/glow/depends.txt deleted file mode 100644 index 4ad96d5..0000000 --- a/mods/glow/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/mods/glow/init.lua b/mods/glow/init.lua deleted file mode 100644 index 84a1002..0000000 --- a/mods/glow/init.lua +++ /dev/null @@ -1,39 +0,0 @@ --- glow/init.lua --- mod by john and Zeg9 - -LIGHT_MAX = 14 - -minetest.register_node("glow:stone", { - description = "Glowing stone", - tile_images = {"glow_stone.png"}, - light_source = LIGHT_MAX, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), -}) - -minetest.register_node("glow:lamp", { - description = "Lamp", - tile_images = {"glow_lamp.png"}, - light_source = LIGHT_MAX, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), -}) - - -minetest.register_craft( { - output = '"glow:stone" 2', - recipe = { - { 'default:stone','default:coal_lump','default:stone' } - }, -}) - -minetest.register_craft( { - output = '"glow:lamp" 6', - recipe = { - { 'default:stick','default:glass', 'default:stick' }, - { 'default:glass','glow:stone', 'default:glass' }, - { 'default:stick','default:glass', 'default:stick' }, - }, -}) - -minetest.register_alias("glow:lantern", "glow:lamp") diff --git a/mods/glow/textures/glow_lamp.png b/mods/glow/textures/glow_lamp.png deleted file mode 100644 index f7532d3575d1f767c6415b7eb4d86fa6ea082b7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1795 zcmV+e2mJVnP)Px#24YJ`L;yknA^-`QWtw~d000SaNLh0L01l=A01l=Bhuo=e00007bV*G`2iyw; z5;PT<&#_CX>@2HM@dakSAh-}000JFNklCz-61*lq%LOcEdjg^Lsrsv0##5LFebWR>;-P$Md( zh^lIZ@&F1Cg-WPZY5RbL$^$|nLfl$`MbbF5wv{>;)`}A#ah)ZJL zcF!3n0>J}aX|*#ubLRWzfBC-uxh^*|6R02{Pys4XC>0O{3Z)c5ppZ&m3zX8=1AVN| z^|1^TK@bqg>N8aBc|j0Z=Tbl4!g4E0@rxg9;s5b@Wba>am6QNvv)ON*fK(D!DOLNU ze5-3Z(70oR3({uPaYqwE?e=r^aVqcM324xBXL>tlkA z-H`Bsq*>P64M|UzP5g=>@#32vxe1-x77vn1$egkXRH8L7b_{Z#!2d>Ja0vDvGvGHR z1e-R3pAJ*xSiFm{(uZx!;YUA&=N>gAc0ccNYzWSM1}#mn<9;gzN=9qo?;nEWLM{(u z*BS5|<^+Wbe0&n>9JqBJuJ1Ardgpy8EWl5H0$aBO%itAX(D$?^@xp$eyVnR3aUBKD z*hOe}fdg%AFkCR;&;3j=JFDg4^l2C#fuqM^Q@2^xvJCFK9d5e=SOqKx;_%Y11&{61 zBo5=VzCjR+Efykaitx5x`17Cv|NU;k^}c=>Wmww<{%SaM5Z>ztTJ^ft6m+c%@2iA* zq9Cype)D6&v#*AN<@>Y=0bwV|io&hPN{xUG{>na~^Xvij`g*JpZg!!$3I068!ksW~=_+9}kfYo8OCqp7j!EFRD2_04qG&RG) zLvZdC6f$8qEoc=i&O$r^{8vPzyQ%|`BCN`5-(K%)naX9?<8lF>e)&soYLCixjlkjv ze3Q>NU01oP3qpoZ?hc@%*;$y&L179eFGFrlo6D-@L_K6SEWWvL zp70=*hFf}JTpI8@SBVG#S6Xct14c4}&7rI9$7e@TT+`28I|9?8f5fkzC;s|@0e}2^ zf{|m3rPy-AbiMZRiHsl}l6V&%mIxdNHuq{jpPq(fi$x$G3eW_!Kl6y- z!X(UG`I32{J_cRwP*R{u0(?W_!7ZZZ=g#7CE`)C^%{xk>-7NnhhGYIKd(u=cEo4loS--dnEd05msi(uo8- z^j&!OQ)?ixBT)78haZC5x9IjcGyr>cnMl;H@hAsirIO)6?e{kL&$kN(hM-)A^Apgt z6f;lMyr6<>x1sIlE3U&X&36JTZ2_8c6IE^zHcy z7c5a5CKm6Cs`CVcUt?<~RWt(Mwj0*wfqVL%vbN>+_Bq^kt3YqTmAs2&5t)xcXkD_yQ{`0O&rA+Iau~002ovPDHLkV1i-hHlF|h diff --git a/mods/glow/textures/glow_stone.png b/mods/glow/textures/glow_stone.png deleted file mode 100644 index 71b97c0e942a06deb259e85c4e4be612db2a0346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1651 zcmV-(28{WMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01l=A01l=Bhuo=e00007bV*G`2iyw; z4mdJ|Oc28W000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000HfNklGqyTMi&g<0>C~z|s;shPgk>=?hE^Q+UFTF~-Jelqr_DcAE+wpoO=`dGFU8JdEAw zLyQQ|QNTRcukg1INo^wDvJE}q0;xB6e}vX7XU?&>L>9Ln@z(dr4^yr1sLX>o?xFtD z`Lhq0xlSCht3+=eo6vTLnwFdzan}jRwPI26ALJ1tef|~ot_Os_xDk$6sWHF6?n!oy(Q2_&q_oQ7GTXP&KS11C zBPwDI>7<=T0$If7EL(@@&rzw-Y?98fbC^z?yGqnUwn4GUES7F?>o$|Ssn+O>NcYgw z%ce{y5qE|Cu@=h7Bi4nlQF5U=;kQ|FzPEM;<@__=ZT&Z zHPO34>%tSxULczdn=%>R`2m>`3zk@mIO^wL0f6 zGdW2m`+my2y63f0C(bM#mT$4g{;Lv1KIDhc$LiFfz{BGyLOY{%|_bsSY8gDRO`e&q?_osM_^e2pr@!C)#VvFGtt3}qDq`H}#B|AVm6(->6I{6gw;{x~QSz2Xu56@$w zH1df_btnH;Kqan_8)Vl6Bb&)Tr#H))vy2QexJd7K5V2~FS|uoFv&G{DMz&FFusKoO z_~8RSE{6_}loAmdNZv8CQCKT5UT5G(sl;H8W3Tf1v9RW^e`mGATR&#UDAkqV2lZ8! z%Ry-Sv*dF@4e#6|zETc8)WYq52j?5BpqPAo+0SdCvxPaXTxMjH6UTXxC*IA4Jn`q# z|DPw~&Y+UH!H_4SI7oIp+oqqln>xe(5shr42ui1g`uyPb?=8mN&A*H}gaky_6@WgR#YXr`q%LcJoBs zuAjGZ?d6F$+T5O>zxz&md7|^=`{|SI_<7G$+Q}1fyMEqoo`~$ diff --git a/mods/hydro/.gitignore b/mods/hydro/.gitignore new file mode 100644 index 0000000..d9c069a --- /dev/null +++ b/mods/hydro/.gitignore @@ -0,0 +1,4 @@ +## Generic ignorable patterns and files +*~ +.*.swp +debug.txt diff --git a/mods/hydro/init.lua b/mods/hydro/init.lua index 83fc83b..1ed3cb1 100644 --- a/mods/hydro/init.lua +++ b/mods/hydro/init.lua @@ -1,67 +1,97 @@ -HYDRO_GROW_INTERVAL = 100 -PLANTS = { - tomato = {name='tomato',growtype='growtall'}, - peas = {name='peas',growtype='growtall'}, - habanero = {name='habanero',growtype='growtall'}, - grapes = {name='grapes',growtype='permaculture'}, - coffee = {name='coffee',growtype='permaculture'}, - roses = {name='roses',growtype='growtall',give_on_harvest='hydro:rosebush'} +local HYDRO_GROW_INTERVAL = 100 +local PLANTS = { + tomato = {name='tomato', description="Tomato", growtype='growtall'}, + peas = {name='peas', description="Peas", growtype='growtall'}, + habanero = {name='habanero', description="Habanero", growtype='growtall'}, + grapes = {name='grapes', description="Grapes", growtype='permaculture'}, + coffee = {name='coffee', description="Coffee", growtype='permaculture'}, + roses = {name='roses', description="Roses", growtype='growtall',give_on_harvest='hydro:rosebush'} } -PLANTLIKE = function(nodeid, nodename,type,option) - if option == nil then option = false end +minetest.register_node("hydro:wine", { + description = 'Wine Bottle', + drawtype = "plantlike", + tile_images = {"hydro_wine.png"}, + inventory_image = "hydro_wine.png", + wield_image = "hydro_wine.png", + use_texture_alpha = true, + paramtype = "light", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + walkable = false, + on_use = minetest.item_eat(1) +}) - local params ={ description = nodename, drawtype = "plantlike", tile_images = {"hydro_"..nodeid..'.png'}, - inventory_image = "hydro_"..nodeid..'.png', wield_image = "hydro_"..nodeid..'.png', paramtype = "light", } - - if type == 'veg' then - params.groups = {snappy=2,dig_immediate=3,flammable=2} - params.sounds = default.node_sound_leaves_defaults() - if option == false then params.walkable = false end - elseif type == 'met' then -- metallic - params.groups = {cracky=3} - params.sounds = default.node_sound_stone_defaults() - elseif type == 'cri' then -- craft items - params.groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3} - params.sounds = default.node_sound_wood_defaults() - if option == false then params.walkable = false end - elseif type == 'eat' then -- edible - params.groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3} - params.sounds = default.node_sound_wood_defaults() - params.walkable = false - params.on_use = minetest.item_eat(option) - end - minetest.register_node("hydro:"..nodeid, params) -end -GLOWLIKE = function(nodeid,nodename,drawtype) - if drawtype == nil then - drawtype = 'glasslike' - inv_image = minetest.inventorycube("hydro_"..nodeid..".png") - else - inv_image = "hydro_"..nodeid..".png" - end - minetest.register_node("hydro:"..nodeid, { - description = nodename, - drawtype = drawtype, - tile_images = {"hydro_"..nodeid..".png"}, - inventory_image = inv_image, - light_propagates = true, - paramtype = "light", - sunlight_propagates = true, - light_source = 15 , - is_ground_content = true, - groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, - sounds = default.node_sound_glass_defaults(), +minetest.register_node("hydro:coffeecup", { + description = 'Coffee Cup', + drawtype = "plantlike", + tile_images = {"hydro_coffeecup.png"}, + inventory_image = "hydro_coffeecup.png", + wield_image = "hydro_coffeecup.png", + use_texture_alpha = true, + paramtype = "light", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + walkable = false, + on_use = minetest.item_eat(2) +}) + +minetest.register_node("hydro:growlamp", { + description = "Growlamp", + drawtype = 'nodebox', + node_box = { + type = "fixed", + fixed = { + {-1/16, -7/16, -1/16, 1/16, 8/16, 1/16}, + {-2/16, 3/16, -2/16, 2/16, 6/16, 2/16}, + {-3/16, -6/16, -2/16, 3/16, 3/16, 2/16}, + {-2/16, -6/16, -3/16, 2/16, 3/16, 3/16}, + } + }, + tile_images = {"hydro_growlamp_top.png", "hydro_growlamp_bottom.png", "hydro_growlamp_side.png"}, + --inventory_image = "hydro_growlamp_side.png", + paramtype = "light", + light_propagates = true, + sunlight_propagates = true, + light_source = 15, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), + node_placement_prediction = "hydro:coffeecup", +}) + +minetest.on_place = minetest.on_place or function(name, func) + local previous_on_place = minetest.registered_nodes[name].on_place + minetest.override_item(name, { + on_place = function(itemstack, placer, pointed_thing) + if func(itemstack, placer, pointed_thing) then + return previous_on_place(itemstack, placer, pointed_thing) + end + end }) end -PLANTLIKE('wine','Wine Bottle','eat',1) -PLANTLIKE('coffeecup','Coffee Cup','eat',2) -GLOWLIKE('growlamp','Growlamp','plantlike') +minetest.on_place("hydro:growlamp", function(itemstack, placer, pointed_thing) + if not pointed_thing then + return + end + local pos = minetest.get_pointed_thing_position(pointed_thing, true) + if not pos then + return + end + local nd_above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name + local nd_above_info = minetest.registered_nodes[nd_above] + if nd_above == "air" + or nd_above == "hydro:growlamp" + or not nd_above_info.walkable + or nd_above_info.buildable_to then + return + end + return true +end) + minetest.register_node("hydro:promix", { description = "Promix", tile_images = {"hydro_promix.png"}, - is_ground_content = true, groups = {crumbly=3}, sounds = default.node_sound_dirt_defaults(), }) @@ -69,7 +99,6 @@ minetest.register_node("hydro:roastedcoffee", { description = "Roasted Coffee", tile_images = {"hydro_roastedcoffee.png"}, inventory_image = minetest.inventorycube("hydro_roastedcoffee.png"), - is_ground_content = true, groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, sounds = default.node_sound_stone_defaults(), }) @@ -83,20 +112,15 @@ minetest.register_node("hydro:rosebush", { sounds = default.node_sound_leaves_defaults(), }) -get_plantname = {} -- plants index by nodenames (tomato1, tomato2, seeds_tomato, etc..) -get_plantbynumber = {} -- plants index by number (for random select) -get_wildplants = {} -- wildplant nodenames (pop control) +local get_plantname = {} -- plants index by nodenames (tomato1, tomato2, seeds_tomato, etc..) +local get_plantbynumber = {} -- plants index by number (for random select) +local get_wildplants = {} -- wildplant nodenames (pop control) -local is_specialharvest = function(plantname) - local result = 'hydro:'..plantname - if PLANTS[plantname].give_on_harvest ~= nil then result = PLANTS[plantname].give_on_harvest end - return result -end - -for index,plant in pairs(PLANTS) do +for _,plant in pairs(PLANTS) do -- define nodes - minetest.register_node("hydro:wild_"..plant.name, { - description = "Wild Plant", + local wild_plant = "hydro:wild_"..plant.name + minetest.register_node(wild_plant, { + description = "Wild "..plant.description.." Plant", drawtype = "plantlike", visual_scale = 1.0, tile_images = {"hydro_wildplant.png"}, @@ -111,7 +135,7 @@ for index,plant in pairs(PLANTS) do }, }) minetest.register_node("hydro:seeds_"..plant.name, { - description = plant.name.." Seeds", + description = plant.description.." Seeds", drawtype = "signlike", tile_images = {"hydro_seeds.png"}, inventory_image = "hydro_seeds.png", @@ -158,7 +182,7 @@ for index,plant in pairs(PLANTS) do drop = '', }) minetest.register_node('hydro:'..plant.name..'1', { - description = 'Tomato Plant (Young)', + description = plant.description..' Plant (Young)', drawtype = 'plantlike', visual_scale = 1.0, tile_images = { 'hydro_'..plant.name..'1.png' }, @@ -172,16 +196,8 @@ for index,plant in pairs(PLANTS) do drop = '', }) - local after_dig_node = nil - if plant.growtype == 'permaculture' then - plant.growtype = 'growshort' - after_dig_node = function(pos,node) - minetest.env:add_node(pos,{type='node',name='hydro:'..plant.name..'1'}) - end - - end minetest.register_node('hydro:'..plant.name..'2', { - description = 'Tomato Plant (Youngish)', + description = plant.description..' Plant (Youngish)', drawtype = 'plantlike', visual_scale = 1.0, tile_images = { 'hydro_'..plant.name..'2.png' }, @@ -195,7 +211,7 @@ for index,plant in pairs(PLANTS) do drop = '', }) minetest.register_node('hydro:'..plant.name..'3', { - description = 'Tomato Plant (Fruitings)', + description = plant.description..' Plant (Fruitings)', drawtype = 'plantlike', visual_scale = 1.0, tile_images = { 'hydro_'..plant.name..'3.png' }, @@ -211,10 +227,21 @@ for index,plant in pairs(PLANTS) do local harvest = 'hydro:'..plant.name - if plant.give_on_harvest then harvest = plant.give_on_harvest end + if plant.give_on_harvest then + harvest = plant.give_on_harvest + end + local after_dig_node + if plant.growtype == 'permaculture' then + plant.growtype = 'growshort' + after_dig_node = function(pos) + minetest.add_node(pos, {name='hydro:'..plant.name..'1'}) + end + + end + minetest.register_node('hydro:'..plant.name..'4', { - description = 'Tomato Plant (Ripe)', + description = plant.description..' Plant (Ripe)', drawtype = 'plantlike', visual_scale = 1.0, tile_images = { 'hydro_'..plant.name..'4.png' }, @@ -238,7 +265,7 @@ for index,plant in pairs(PLANTS) do }, }) - if plant.give_on_harvest == nil then + if not plant.give_on_harvest then minetest.register_node("hydro:"..plant.name, { description = plant.name, drawtype = "plantlike", @@ -253,7 +280,7 @@ for index,plant in pairs(PLANTS) do sounds = default.node_sound_defaults(), }) end - table.insert(get_wildplants, 'hydro:wild_'..plant.name) + table.insert(get_wildplants, wild_plant) table.insert(get_plantbynumber, plant.name) get_plantname["hydro:"..plant.name.."4"] = plant.name get_plantname["hydro:"..plant.name.."3"] = plant.name @@ -265,191 +292,134 @@ for index,plant in pairs(PLANTS) do end -- GROW (TALL) FUNCTION -growtall = function (plantname, nodename, grnode) - if nodename == 'hydro:'..plantname..'3' then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:"..plantname.."4"}) - minetest.env:add_node(grnode.grow2,{type="node",name="hydro:"..plantname.."4"}) - elseif nodename == 'hydro:'..plantname..'2' then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:"..plantname.."3"}) - minetest.env:add_node(grnode.grow2,{type="node",name="hydro:"..plantname.."3"}) - elseif nodename == 'hydro:'..plantname..'1' then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:"..plantname.."2"}) - minetest.env:add_node(grnode.grow2,{type="node",name="hydro:"..plantname.."2"}) - elseif nodename =='hydro:sproutlings_'..plantname then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:"..plantname.."1"}) - elseif nodename == 'hydro:seedlings_'..plantname then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:sproutlings_"..plantname}) - elseif nodename == 'hydro:seeds_'..plantname then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:seedlings_"..plantname}) +local function grow_plant(plantname, nodename, pos, tall) + local name, above + if nodename == 'hydro:'..plantname..'3' then + name = plantname.."4" + above = true + elseif nodename == 'hydro:'..plantname..'2' then + name = plantname.."3" + above = true + elseif nodename == 'hydro:'..plantname..'1' then + name = plantname.."2" + above = true + elseif nodename =='hydro:sproutlings_'..plantname then + name = plantname.."1" + elseif nodename == 'hydro:seedlings_'..plantname then + name = "sproutlings_"..plantname + elseif nodename == 'hydro:seeds_'..plantname then + name = "seedlings_"..plantname + else + return end - -end - -growshort = function (plantname, nodename, grnode) - if nodename == 'hydro:'..plantname..'3' then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:"..plantname.."4"}) --- minetest.env:add_node(grnode.grow2,{type="node",name="hydro:"..plantname.."4"}) - elseif nodename == 'hydro:'..plantname..'2' then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:"..plantname.."3"}) --- minetest.env:add_node(grnode.grow2,{type="node",name="hydro:"..plantname.."3"}) - elseif nodename == 'hydro:'..plantname..'1' then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:"..plantname.."2"}) --- minetest.env:add_node(grnode.grow2,{type="node",name="hydro:"..plantname.."2"}) - elseif nodename =='hydro:sproutlings_'..plantname then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:"..plantname.."1"}) - elseif nodename == 'hydro:seedlings_'..plantname then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:sproutlings_"..plantname}) - elseif nodename == 'hydro:seeds_'..plantname then minetest.env:add_node(grnode.grow1,{type="node",name="hydro:seedlings_"..plantname}) + minetest.add_node(pos, {name="hydro:"..name}) + if above + and tall then + minetest.add_node({x=pos.x, y=pos.y+1, z=pos.z}, {name="hydro:"..name}) end - end -- WILD PLANTS/SEEDS GENERATING +local function get_random(pos, seed) + return PseudoRandom(math.abs(pos.x+pos.y*3+pos.z*5)+seed) +end + minetest.register_abm({ - nodenames = { "default:dirt_with_grass" }, - interval = 600, - chance = 80, - action = function(pos, node, active_object_count, active_object_count_wider) - local air = { x=pos.x, y=pos.y+1,z=pos.z } - local is_air = minetest.env:get_node_or_nil(air) - if is_air ~= nil and is_air.name == 'air' then - local count = table.getn(get_plantbynumber) - local random_plant = math.random(1,count) - local nodename = "hydro:wild_"..get_plantbynumber[random_plant] - if nodename ~= "hydro:wild_rubberplant" then minetest.env:add_node({x=pos.x,y=pos.y+1,z=pos.z},{type="node",name=nodename}) end + nodenames = { "default:dirt_with_grass" }, + interval = 600, + chance = 80, + action = function(p, node) + local pr = get_random(p, 17) + if pr:next(1,20) ~= 1 then + return + end + p.y = p.y+1 + local is_air = minetest.get_node_or_nil(p) + if is_air + and is_air.name == 'air' then + local count = table.getn(get_plantbynumber) + local random_plant = math.random(1, count) + local nodename = "hydro:wild_"..get_plantbynumber[random_plant] + if nodename ~= "hydro:wild_rubberplant" then + minetest.add_node(p, {name=nodename}) end end -}) -minetest.register_abm({ - nodenames = get_wildplants, - interval = 600, - chance = 2, - action = function(pos, node, active_object_count, active_object_count_wider) - minetest.env:remove_node({x=pos.x,y=pos.y,z=pos.z}) - end + end }) -- GROWING minetest.register_abm({ - nodenames = { "hydro:growlamp" }, - interval = HYDRO_GROW_INTERVAL, - chance = 1, - - action = function(pos, node, active_object_count, active_object_count_wider) - local grnode1 = {water = {x=pos.x,y=pos.y-5,z=pos.z}, mix = {x=pos.x,y=pos.y-4,z=pos.z},grow1 = {x=pos.x,y=pos.y-3,z=pos.z}, grow2 = {x=pos.x,y=pos.y-2,z=pos.z}} - local grnode2 = {water = {x=pos.x-1,y=pos.y-5,z=pos.z}, mix = {x=pos.x-1,y=pos.y-4,z=pos.z},grow1 = {x=pos.x-1, y=pos.y-3,z=pos.z}, grow2 = {x=pos.x-1,y=pos.y-2,z=pos.z}} - local grnode3 = {water = {x=pos.x+1,y=pos.y-5,z=pos.z}, mix = {x=pos.x+1,y=pos.y-4,z=pos.z},grow1 = {x=pos.x+1, y=pos.y-3,z=pos.z}, grow2 = {x=pos.x+1,y=pos.y-2,z=pos.z}} - local grnode4 = {water = {x=pos.x,y=pos.y-5,z=pos.z-1}, mix = {x=pos.x,y=pos.y-4,z=pos.z-1},grow1 = {x=pos.x, y=pos.y-3, z=pos.z-1}, grow2 = {x=pos.x,y=pos.y-2,z=pos.z-1}} - local grnode5 = {water = {x=pos.x,y=pos.y-5,z=pos.z+1}, mix = {x=pos.x,y=pos.y-4,z=pos.z+1},grow1 = {x=pos.x, y=pos.y-3, z=pos.z+1}, grow2 = {x=pos.x,y=pos.y-2,z=pos.z+1}} - local grnode6 = {water = {x=pos.x-1,y=pos.y-5,z=pos.z-1}, mix = {x=pos.x-1,y=pos.y-4,z=pos.z-1},grow1 = {x=pos.x-1,y=pos.y-3,z=pos.z-1}, grow2 = {x=pos.x-1,y=pos.y-2,z=pos.z-1}} - local grnode7 = {water = {x=pos.x-1,y=pos.y-5,z=pos.z+1}, mix = {x=pos.x-1,y=pos.y-4,z=pos.z+1},grow1 = {x=pos.x-1,y=pos.y-3,z=pos.z+1}, grow2 = {x=pos.x-1,y=pos.y-2,z=pos.z+1}} - local grnode8 = {water = {x=pos.x+1,y=pos.y-5,z=pos.z-1}, mix = {x=pos.x+1,y=pos.y-4,z=pos.z-1},grow1 = {x=pos.x+1,y=pos.y-3,z=pos.z-1}, grow2 = {x=pos.x+1,y=pos.y-2,z=pos.z-1}} - local grnode9 = {water = {x=pos.x+1,y=pos.y-5,z=pos.z+1}, mix = {x=pos.x+1,y=pos.y-4,z=pos.z+1},grow1 = {x=pos.x+1,y=pos.y-3,z=pos.z+1}, grow2 = {x=pos.x+1,y=pos.y-2,z=pos.z+1}} - - - local water1 = minetest.env:get_node(grnode1.water) - if water1.name == 'default:water_source' or water1.name == 'default:water_flowing' then water1 = true end - local ismix1 = minetest.env:get_node(grnode1.mix) - local water2 = minetest.env:get_node(grnode2.water) - if water2.name == 'default:water_source' or water2.name == 'default:water_flowing' then water2 = true end - local ismix2 = minetest.env:get_node(grnode2.mix) - local water3 = minetest.env:get_node(grnode3.water) - if water3.name == 'default:water_source' or water3.name == 'default:water_flowing' then water3 = true end - local ismix3 = minetest.env:get_node(grnode3.mix) - local water4 = minetest.env:get_node(grnode4.water) - if water4.name == 'default:water_source' or water4.name == 'default:water_flowing' then water4 = true end - local ismix4 = minetest.env:get_node(grnode4.mix) - local water5 = minetest.env:get_node(grnode5.water) - if water5.name == 'default:water_source' or water5.name == 'default:water_flowing' then water5 = true end - local ismix5 = minetest.env:get_node(grnode5.mix) - local water6 = minetest.env:get_node(grnode6.water) - if water6.name == 'default:water_source' or water6.name == 'default:water_flowing' then water6 = true end - local ismix6 = minetest.env:get_node(grnode6.mix) - local water7 = minetest.env:get_node(grnode7.water) - if water7.name == 'default:water_source' or water7.name == 'default:water_flowing' then water7 = true end - local ismix7 = minetest.env:get_node(grnode7.mix) - local water8 = minetest.env:get_node(grnode8.water) - if water8.name == 'default:water_source' or water8.name == 'default:water_flowing' then water8 = true end - local ismix8 = minetest.env:get_node(grnode8.mix) - local water9 = minetest.env:get_node(grnode9.water) - if water9.name == 'default:water_source' or water9.name == 'default:water_flowing' then water9 = true end - local ismix9 = minetest.env:get_node(grnode9.mix) - - - if water1 == true and ismix1.name == 'hydro:promix' then - local grow1 = minetest.env:get_node(grnode1.grow1) - local curplant = get_plantname[grow1.name] - if curplant ~= nil and PLANTS[curplant].growtype == 'growtall' then growtall(curplant,grow1.name,grnode1) -- *** GENERIC GROW FUNCTION - elseif curplant ~= nil and PLANTS[curplant].growtype == 'growshort' then growshort(curplant,grow1.name,grnode1) end -- *** GENERIC GROW FUNCTION - end - if water2 == true and ismix2.name == 'hydro:promix' then - local grow2 = minetest.env:get_node(grnode2.grow1) - local curplant = get_plantname[grow2.name] - if curplant ~= nil and PLANTS[curplant].growtype == 'growtall' then growtall(curplant,grow2.name,grnode2) -- *** GENERIC GROW FUNCTION - elseif curplant ~= nil and PLANTS[curplant].growtype == 'growshort' then growshort(curplant,grow2.name,grnode2) end -- *** GENERIC GROW FUNCTION - end - if water3 == true and ismix3.name == 'hydro:promix' then - local grow3 = minetest.env:get_node(grnode3.grow1) - local curplant = get_plantname[grow3.name] - if curplant ~= nil and PLANTS[curplant].growtype == 'growtall' then growtall(curplant,grow3.name,grnode3) -- *** GENERIC GROW FUNCTION - elseif curplant ~= nil and PLANTS[curplant].growtype == 'growshort' then growshort(curplant,grow3.name,grnode3) end -- *** GENERIC GROW FUNCTION - - end - if water4 == true and ismix4.name == 'hydro:promix' then - local grow4 = minetest.env:get_node(grnode4.grow1) - local curplant = get_plantname[grow4.name] - if curplant ~= nil and PLANTS[curplant].growtype == 'growtall' then growtall(curplant,grow4.name,grnode4) -- *** GENERIC GROW FUNCTION - elseif curplant ~= nil and PLANTS[curplant].growtype == 'growshort' then growshort(curplant,grow4.name,grnode4) end -- *** GENERIC GROW FUNCTION - - end - if water5 == true and ismix5.name == 'hydro:promix' then - local grow5 = minetest.env:get_node(grnode5.grow1) - local curplant = get_plantname[grow5.name] - if curplant ~= nil and PLANTS[curplant].growtype == 'growtall' then growtall(curplant,grow5.name,grnode5) -- *** GENERIC GROW FUNCTION - elseif curplant ~= nil and PLANTS[curplant].growtype == 'growshort' then growshort(curplant,grow5.name,grnode5) end -- *** GENERIC GROW FUNCTION - - end - if water6 == true and ismix6.name == 'hydro:promix' then - local grow6 = minetest.env:get_node(grnode6.grow1) - local curplant = get_plantname[grow6.name] - if curplant ~= nil and PLANTS[curplant].growtype == 'growtall' then growtall(curplant,grow6.name,grnode6) -- *** GENERIC GROW FUNCTION - elseif curplant ~= nil and PLANTS[curplant].growtype == 'growshort' then growshort(curplant,grow6.name,grnode6) end -- *** GENERIC GROW FUNCTION - - end - if water7 == true and ismix7.name == 'hydro:promix' then - local grow7 = minetest.env:get_node(grnode7.grow1) - local curplant = get_plantname[grow7.name] - if curplant ~= nil and PLANTS[curplant].growtype == 'growtall' then growtall(curplant,grow7.name,grnode7) -- *** GENERIC GROW FUNCTION - elseif curplant ~= nil and PLANTS[curplant].growtype == 'growshort' then growshort(curplant,grow7.name,grnode7) end -- *** GENERIC GROW FUNCTION - - end - if water8 == true and ismix8.name == 'hydro:promix' then - local grow8 = minetest.env:get_node(grnode8.grow1) - local curplant = get_plantname[grow8.name] - if curplant ~= nil and PLANTS[curplant].growtype == 'growtall' then growtall(curplant,grow8.name,grnode8) -- *** GENERIC GROW FUNCTION - elseif curplant ~= nil and PLANTS[curplant].growtype == 'growshort' then growshort(curplant,grow8.name,grnode8) end -- *** GENERIC GROW FUNCTION - - end - if water9 == true and ismix9.name == 'hydro:promix' then - local grow9 = minetest.env:get_node(grnode9.grow1) - local curplant = get_plantname[grow9.name] - if curplant ~= nil and PLANTS[curplant].growtype == 'growtall' then growtall(curplant,grow9.name,grnode9) -- *** GENERIC GROW FUNCTION - elseif curplant ~= nil and PLANTS[curplant].growtype == 'growshort' then growshort(curplant,grow9.name,grnode9) end -- *** GENERIC GROW FUNCTION - - end - + nodenames = { "hydro:growlamp" }, + interval = HYDRO_GROW_INTERVAL, + chance = 1, + action = function(pos, node) + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" + or minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "air" then + return end + for i = -1,1 do + for j = -1,1 do + local p = {x=pos.x+j, y=pos.y, z=pos.z+i} + local water = minetest.get_node({x=p.x, y=p.y-5, z=p.z}).name + if (water == 'default:water_source' or water == 'default:water_flowing') + and minetest.get_node({x=p.x, y=p.y-4, z=p.z}).name == 'hydro:promix' then + local grow = minetest.get_node({x=p.x, y=p.y-3, z=p.z}).name + local curplant = get_plantname[grow] + if curplant then + local growtype = PLANTS[curplant].growtype + local tall + if growtype == 'growtall' then + tall = true + end + grow_plant(curplant, grow, {x=p.x, y=p.y-3, z=p.z}, tall) + end + end + end + end + end }) -minetest.register_craft({ output = 'hydro:growlamp 1', recipe = { - {'glass', 'torch','glass'}, - {'glass', 'torch','glass'}, - {'glass', 'torch','glass'}, -}}) -minetest.register_craft({ output = 'hydro:promix 6', recipe = { + +--Crafting +minetest.register_craft({ + output = 'hydro:growlamp', + recipe = { + {'default:glass', 'default:torch','default:glass'}, + {'default:glass', 'default:torch','default:glass'}, + {'default:glass', 'default:torch','default:glass'}, + } +}) + +minetest.register_craft({ + output = 'hydro:promix 6', + recipe = { {'', 'default:clay_lump',''}, {'default:dirt', 'default:dirt', 'default:dirt'}, {'default:dirt', 'default:dirt', 'default:dirt'}, -}}) -minetest.register_craft({ output = 'hydro:wine 1', recipe = { + } +}) + +minetest.register_craft({ + output = 'hydro:wine', + recipe = { {'default:glass', 'hydro:grapes','default:glass'}, {'default:glass', 'hydro:grapes','default:glass'}, {'default:glass', 'hydro:grapes','default:glass'}, - }}) -minetest.register_craft({ output = 'node "hydro:coffeecup" 1', recipe = { + } +}) + +minetest.register_craft({ + output = "hydro:coffeecup", + recipe = { {'','',''}, {'default:clay_lump','hydro:roastedcoffee','default:clay_lump'}, {'','default:clay_lump',''}, - }}) -minetest.register_craft({ type = "cooking", output = "hydro:roastedcoffee", recipe = "hydro:coffee", }) + } +}) +minetest.register_craft({ + type = "cooking", + output = "hydro:roastedcoffee", + recipe = "hydro:coffee", +}) diff --git a/mods/hydro/textures/hydro_coffee.png b/mods/hydro/textures/hydro_coffee.png index fffd1d50c1d70905b967fd1af84b8d594ad6a19d..f8d6841782c282773e6703be1e0322affab95d80 100644 GIT binary patch delta 342 zcmV-c0jd6u3918-U4H>LNkl)r--q~?}qfUj)eB~naXIDD2AA* z&A;x|DFD*LDsleXc~aMk*F=hKyOJgUNF^^)H(Iw;0RN`4Ie%jBiN-GfuKxv21n~sP z2FKvLMN{^(7xyb&$0slwTN(+w=e@kjPf6U!RmH9N`0cXV1^_w<6tY#^EH5;sMke3` z#RsZ~6~IZ3iokqO>ER48L~QCTd2(76s|d3LL#310EpUyu!@g!`8_doXN6oGV0;s^W zqS=9QOGs900Z*&pv6vZX6~ySZJFs)WuFVY8iSZ&SSRr$|oB==1`=dMC`(Xx)Ce!ru1O<&{P!Md>re4hXb2{(&c0NAOIOjd@&-0w~z0cYGlm4zM z$2JFmDqpvDid#3$3L9T{F0o78*e)OI(!l69Ha+o}M=Ec2_x1x$FHHsU(Rv=VM|{US z?ddIc*Z#e4V|!Ksb-PbHbmo9ZajOg5HH{N-8)};K!P4><{Qfg52zmypu~Gt46ej!+54PqV zp+P-&+X;290-rU(h6qU&NCk#G0MSe6}6ce z0+b2L0Ng5k#nHbHaW{})*vkbWUZ=hkPAhueCb70ZqbYparX;>0Ny8_ zi+FqBoY==g1!Y%!2oo3*aX~=fAE78H!B00p{B*qu1~u>v{R)8zBS}PB-XIDWPw6ug zxXu#rGHFR-QcKnvyfWY~zXJ{c2NDr8Pak-q?I@*Xdixq=IJXa z)}>H<_X+>7fgED|yxm5Qxl_oWokHX2;AROWiBy3IUtY|J?=|P>cJemTQr;LOQEOwJ g@TtIDM0?87A?A2TEVsjwKhi=VU#DMtakww~A7mN|g8%>k diff --git a/mods/hydro/textures/hydro_coffee1.png b/mods/hydro/textures/hydro_coffee1.png index a3c5be71c66cf748b4ec40188549c728b6687530..df72b3afa2d1a24ff9e54a1eea569e3005208486 100644 GIT binary patch delta 289 zcmV++0p9+b34#NVYJUL&Nkl6*Thu)W8{ z#~UP9ACgQrIJSYfN|Wr}E2)@Vyz^kTZ^1Hmi{{D21FTJ-fq$$LjY6PlIFK`ID=Mc~ zr=-GH#0Hy3ps;pvZi486q+KCvGRk#OqVw*n&XaZ9F zmn($@C(vqLTaZL$(=@&(50Z4D?-_ACTab{m=AaT5DQy~LVr>p^1zQg2LZXRg4tUy# n!|C+DW6b~-)*6KcIj;Tzmae_SWnPt;00000NkvXXu0mjfJ;Z58etD4_>^L`h!}mA|+JqK@WwPrY2gAn~d+x_H8z?FYN5T`DWhty`S7Un@WU( z?LhztCkM?Dd`IbN_T##*sK)Rm#zzwUF!Q!!6&?Sjp@a#Fe$&q$-N&76*9I?)1B6=W z5nxU3#?3$`d3qqQ+$5uiI_KXXz6)UNO`509AB%~ovGx~F)a;DqH`?MmRc*)lIyVtf z=9Q2l49{Tvno0f~y>%R7xn7%neh=S>s6S=&gcEl*UHvqQH?r&~0SuuUvgwIAn0xS3UxX=uIMu}G z15)()Wtqr?R=_M>C!|>44v<@0P^5^0uu+O+(GDp{kzrJ|uLBUv!2?G{aruZ=z%1s~ zpbo;9DfrT2NzPAgh^O~{Yh`W`KdiifeCsQqLr-r1sAFNQvueO=%XX+W{}xN{{#~jk zZAfP2Biv%z_hPOBI+(Kj@I~rQR!NQ5Fc%H58pd=N$f03be^&vLxu-{lvEM~L#2ERQ z0)WK`fL5@@u(+2SF`5Gk$RTt9ZeyWb7Mm$B4ql9Aq_IOf1$S5wr(x+smOzsaTDqjL zE*6|YLaZ$g&>HC$*-vj&BU?^H~)^k2|uU3AL}nS|nYVTQBFN+5nNug;y-+V}Uzh$F7_e z7IdK9M!q09oz0=id&(fWHq=<7kMriB5f+g)=3E#-R-;go_p^7o!>d{cHwL>W4$uMgTlb z^a(KMTJW%LG<>eN?%O`icdG01itZWh+iHWZ=>U9!Jq2fVVl?fyAASh9xYMAU5w?|?H~$ZbkPsl&Cl}ZujQ)f zzt;+oMyB^>t}D#`+a9T}x>B*HR3OZUrY~;`5-2uCIj{-PhiquX#}bfuvL)WgnCup& zXm7#v91b8x-F6 zDNja`4*qkw9e6dnZ9RTDpOkHZKaK|v2MYwsZ`Iln(;;FyfhtX4T{r7xXxOD#u&?uY zv&E|7vE86c_&_5N`#HCmQsH#SZ?%yOV(>#l?f}K9NAU`Zh^8DXtM4Fv@IBp8Lv?|6 zB$mvl0vs#qaJWPBV!yMcD`g+qA56qC*|W=_hFGk}dwrw>3dRssZQMM|FN#KKWnZS1SnA*)ba+2q_;*?c8eQwQWL8tDohSY6=iQVM(3#=i8nYJ^rL lB2JhD!(w6D?4y-@)N1>ff9_doI^CL~vv6<3SO`S#{|94%EtCKN diff --git a/mods/hydro/textures/hydro_coffee3.png b/mods/hydro/textures/hydro_coffee3.png index 033beacc20925f6cd41b262449cc7ddc1bbe2aeb..fadba85a19efebfddc259dc4059cbfc14ec9bc43 100644 GIT binary patch delta 296 zcmV+@0oVSU35f%cYJULHs*;VlVqZSlF~Qx-b>!p7_nBjq}tEAWW2S$v}nFh37D8?)Lf#s)^P+Q#Fx_?SG>=L_?B-nw;+P^Bk z6A*Ci;#hO<3IJ3!6~;h5E~*uF usdFH+)>JqZo*_i(Dj?xY^b6R5AMXo!E*yAKA!%~}0000nq(Qq>+|rp?^r!zVa!cNM`(Gycb^T<iFPpN&17BMMx>Yf%1m z7hihQ@w=nmoiuEs2 z$1#lGI4)6VvbQKw7^;dbGO-X+|#PfhMfBFikH)s(54?f%9YKl;st6VA(jWHXXrOa2lZRCwFDy1L?y7>3pZUUp- zwF-(Ent`**Q3p}sa6^HSM&XZuz?N9kJQa6cq6+$eD){e2nj81buR+9zCSFgOF4*U? zalsCPL=fc7C+#XW>(hboCG#E{>c6Ue=aR(`R0OrEA|nP%iIrSiqKYtp?hF*4u(6Xw zk!1k`t`>AAix1!uFVcX5reTaHCsiuG@1XCyzx92yZ*$d0H|~|m+vcWs*`kiQFvcG) zEJWk{-LKh;gdLGRkO|q5LRpWIw+*!UPW#0t{c%pn29WNe2hKe}veVaULK;N6+o}pc pFa@v^HX>~XPyhl3(3=Bb!`D3COsUWPY3<`@O^H8FRj8}{Gnn6=|QlEqBlWL zi-MrwO{gaYJ&1>@2!-N7q|}0VP-B`Jg*NRv&NtyrhV6uzH#6Ux?|u8;%k2~8fsWMX z6cKflivCGuJ2Ab4TDR5Zuri5rM+bb8_&t2}N|f%x6cpayq%M=ArDOfc z*>zrad+PI*vpAgA8=`O4&kJdOICfxPCdD*&Y?oN$mn?w_gPUfioXGVVgHoYc#;nrWODy0YSEo;uf zYia4udzIi3azdmDK21d?N>=$n4JO77ibU~2Lt9|vI0Qv=?;1LoCa|L{CW$Hw(-Mk6 zFiwsH2`tX+>$?ANY%1U=a})c79mT(xGLM0Q{8=CzD0+TpNf-jKD?scVo04#fM*&vt zeos3*m&&1xY(-iI79+85gWMgsZG2`2E-`XrV>$=80Bbo+(3hoE9pyvlnC}LON`Nl$ z$N9GejET(#%~D&8sQx-lJ(p{lT|x94q;Od|kVtTjcB}aK91C29={{r^=&$nv}&?FIc2AI#frrT~_daNB8 zLm9abY?USos$fScj(DaUfk7RsVXGhWqUuit)dx7o9dHH)A{*P&*Y&bz<4QN)l={p5 J)5AmK{{iGrF&+Q_ diff --git a/mods/hydro/textures/hydro_coffeecup.png b/mods/hydro/textures/hydro_coffeecup.png index 23c8a1805c3f64d2dd1939b830d97d1df5cd54e8..c63671bed6b0c1968cbce498abf1f3c7e0a372af 100644 GIT binary patch delta 734 zcmV<40wMj3A)N-0OMe2qNkll}1zCJLfz)@60(c*IaYWHP>8o{of_i{-~+~NZkw(F@Jcs2%sXO{}q4%@n7duPx`fD!>fcF{w!GPg-z@xQo zZrysH8}Hm0y>RNx?mq@lRS}W;+wZ>q=IWIs z?>JE#J->3U zG8~R%Mu67d5E_C}&_K7lNS5NUIWfT|%hk(dI;n5nMVQvu3qd%{s-H3v~5 ziHISoB{XJ|2t*8^h$KWHrO05kbtHj#YW$dr zQY58xu#8Eh)Izj{(8;%UpBZ4U|G0G^DrF297g5_FG-$HKs0VkTwL(cL5K}{0)KrC; z4WQRuP5}Mk@PW1dVv>RomCz{81)TGL0e~1IF;xr)1D@@jn!OPLWPahx@pyF6$e0)- zp^jMJV1JGK6M%@2Qlzd6#``1AzH&1BD*z$L=exUu>oM|DT?Z=P;9QNh?$9d`6i6{p z6eFCsKd-L-_#*Id=2@Vs=JuVB-`LsN`D|%v>G?d%aW=!)!+k&yQOa_ksxE%$_PXz0 zy>jirQNzkiHL*m}#`>@KHa8!Cu=Z#@?(Gd|npZ$oRtKvrDt5NFSzG&MYh!)my=jvF zt!W5w^XA(f@3Xh+y8b97I>(&ys_*?(USD$|JMVKb$?*<)J4vHoY Qd;kCd07*qoM6N<$g2bO^H~;_u literal 4236 zcmeHJO-L0{6h8OP-+TVfONplv87&ONEX9OylPD^rNE8$V8Acm7kQ@6cV}+r&TB;C{YA^(fiq{gKj(bsJLle+d*fq6wN=ek z08l$JJa7(etI&{&&*_<&44Uwb;Y-s1)eS-kJa`nvLG9Ma=%BWuX!_yE(Bj!60DAk# zz?t(G!=zRJmcSJisW4Dspu#|ffeHf^2L5vfNV)lQ&c#|{J82+9y0!(gv$tXL+GM7=sjcX5S5W|hb`<-=$2V`s$3|IKXAd}z3-OIO z$dUpwl|jY8LbOl_WL1IsNFBJ`;a%OGAw|_XN+nnn0B#o9amzB=y1P$8U!M-9>43{z zAXM^ufua>6D+*|u3Zbxus>1GW8q(=ZP%eK>zDEfFx$-jR0HauP&Oq0z{XnV~#*9@2 zk&7V==M)$+!AX8 zo(rkWMo9!>S3x0IVD44I3<@ zD8at(q6|dzsLx?ConDY6rPm_{Fbv8Z4zkQpl|KLgf)Y(=K^pIb1CgeH>4LT>fMA!Z zgkNQ|nO;h=egI~>ASn(=*dzNH5bvT)wrxOmHv=8V8(H9^kSz-UW8_&Pk-CD(9kXo) z76zAP8zf2IcM7mEF^Y$!GK>t~3)0u6rO!ukXt_{uF<$bRh(&lK(&uvz`?t5ZpVrjW z9Mn_|Z$cF)YQTW7;=5#;yI|SIq8`z&kB?nmz;XY)2tWCxbeG^RbmGOT2r+ uJAQ_YxlEE^8Bf5SpUEGupFDn9vi`!adgwykiMg16<&F%F4ZP@|xcdt?>}#U{ diff --git a/mods/hydro/textures/hydro_grapes.png b/mods/hydro/textures/hydro_grapes.png index 1475cff05130229ccc9d4054e10ac13e3fead002..7b51809812447d34bcc87b45a513586a047e0fb2 100644 GIT binary patch delta 332 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 diff --git a/mods/hydro/textures/hydro_grapes3.png b/mods/hydro/textures/hydro_grapes3.png index 033beacc20925f6cd41b262449cc7ddc1bbe2aeb..fadba85a19efebfddc259dc4059cbfc14ec9bc43 100644 GIT binary patch delta 296 zcmV+@0oVSU35f%cYJULHs*;VlVqZSlF~Qx-b>!p7_nBjq}tEAWW2S$v}nFh37D8?)Lf#s)^P+Q#Fx_?SG>=L_?B-nw;+P^Bk z6A*Ci;#hO<3IJ3!6~;h5E~*uF usdFH+)>JqZo*_i(Dj?xY^b6R5AMXo!E*yAKA!%~}0000nq(Qq>+|rp?^r!zVa!cNM`(Gycb^T<iFPpN&17BMMx>Yf%1m z7hihQ@w=nmoiuEs2 z$1#lGI4)6VvbQKw7^;dbGO-X+|#PfhMfBFikH)s(54?f%9YKl;st6VA(jWHXXrOa2lZRCwFDy1L?y7>3pZUUp- zwF-(Ent`**Q3p}sa6^HSM&XZuz?N9kJQa6cq6+$eD){e2nj81buR+9zCSFgOF4*U? zalsCPL=fc7C+#XW>(hboCG#E{>c6Ue=aR(`R0OrEA|nP%iIrSiqKYtp?hF*4u(6Xw zk!1k`t`>AAix1!uFVcX5reTaHCsiuG@1XCyzx92yZ*$d0H|~|m+vcWs*`kiQFvcG) zEJWk{-LKh;gdLGRkO|q5LRpWIw+*!UPW#0t{c%pn29WNe2hKe}veVaULK;N6+o}pc pFa@v^HX>~XPyhl3(3=Bb!`D3COsUWPY3<`@j*qRYn_AYyP5H>KoGkZ5jR_zTVGR|3FLz*1|0#@{NjdnKo z`1830$t9#D3u%6A5@RKj?AftYB(^sVg)_+xo(SUdxNrDPY_Wo6o z!>AzO-o>eIzZC$eYATF@e4JJ*Oll1mfZ+{X6=2J}W+wd+$&E@RsA$qu*kWwr9fk^T zfPdM@7;j^IVZjE4T1yW5ELLrl_tb(U9rD^Jv3MK&FmDb@Vfm`OD77%@koA!4Gb*ki xRa{KX0h34@D)B1QCIU28&PD%Ojhtc69e1;Gd^;=zO3vmPWU z2t9ZZ1i_Qw$wTQyp_lehs!}`@;(rfmYMjnD_H8!NPMFNR`QH1!H}l@U?@n|Ed=Gp? z6o^Hw9=TRx8eaMT=t{hni+Auvr$qw4)t$8kc~U+S?HeWXS7B&f;7y1W!Pk#DN2TJ_BxHk$u|(6_la&dz0wa%ykkR)~StX_j+$tBLOG=;Z3uFX> zA({~&!3vvwb^Qire!u~$kx;$Bz2iw!SZ{p}2{1fjqpg=PnG=lz2`DuAHW8N>{yvs jhX5Ot2vxwo*a0@M;__~V_2$yKx*%d=9SLjW*}%+So>U+f diff --git a/mods/hydro/textures/hydro_growlamp.png b/mods/hydro/textures/hydro_growlamp.png deleted file mode 100644 index 86c2a177d8967b00a937c7b67ccf3a63ab8a6a4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf<77-BPV7%w|@hx{rdAi zLv0Wbk_-;!s(=6C0K|@)_K^XE(E$s(0EpkW^(%@n$R$tYAxama$S^Qq^`NsS7dYT9 z0Z9Sa`2&MsK5DdV?6ciL-LSP!h0FWq5 zBS;gB4H5^%0LX>N0ILDW3Sc&a3`(*5j4TCaW5fc;kC>5#(1)G|FkArgBeJt$T464M z@nJNE0U!x%ib00{{P~lCU@U+P04auH7$0OPdJKT%@PdoLBn(Q%CTSQ!g;yVnBq7aq Ws^NhL?#xR7Y4UXSb6Mw<&;$Su6?zr` diff --git a/mods/hydro/textures/hydro_growlamp_bottom.png b/mods/hydro/textures/hydro_growlamp_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c2136f98db026d2b828a75eddb717420061c932c GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9>z052Z~yzRedi}1P(;?# z#W95AdUApTGcV5>KAtr^JU;vqGx!Y*7I`x>Shg_bKU^I39;lGP)78&qol`;+0M5u8 A0{{R3 literal 0 HcmV?d00001 diff --git a/mods/hydro/textures/hydro_growlamp_side.png b/mods/hydro/textures/hydro_growlamp_side.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d20139a5abd33f9e7cc2408d674f0954eba498 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWwYIjlwY5!4OI!8t|HXg* zfuNpsVn0yU&eO#)gyVX0L1AHG5~C20LL0}F#79i2GuRGGC>m&{3mY7kT*IaEh$r+7 t&$Tus*5rn%3%Vq%54-q02y$Rx(AuEz^oq%wXF!t}JYD@<);T3K0RRGgF+uO3c~T~Scd<|7+E7sGl~HqO)x`Xn$8zMFuGwN12DV=GXPyPI)=%kdke+s zxHQ4!kiCUr2)Y5dT!YmB5J2}kKCfVnS5gcBxfsKCVhq3;226xBBgX(nET9{JD;8jZ zjWyZhvlW(3@a7v_sSiDW!14%I18`|X4snp}AdC?U$WBAnjLo^oVgNyiGZpaeE*Jm+ N002ovPDHLkV1muHRNepp literal 1179 zcmZ`&ODKd<6h2pfGajk&DxqwoY!MP=G#Zl(iG_voC|OBSYF4sPwrn&}Qx=j^l%*^N zAz3LK3kxabu~3xPxZnNfyNwynbpLbDIp6o)bN>I%VsAK@pIeqIBKe`tK%e$LtZa{d zR=y-gv{Tc4!FJicsJPdGXS6FAkOY3Q{f%Xv$(iaLoEFI|!cr1lE!9cyOsKoVd+n5D zdFxIh{na8)c_`rTZz@ne=lMe;Tnk5WP^R^)pruSBUQMp~GpjnYGH>15;}#FfNI!BZ`^#;gEG;K>A_11{FOt`6;pMnKO*{4Wn8PbZn4 zK-)pO2+0Kg=dA$0>wm!XJYGD^3Jk^H?Of^L)EJ$?*s&|)=FGg<{?$H-do?ZQ4v4sy z%XW~|FfR2)fk-kg)aA{IJQbf=_@4r-lBh3_insaA$!wjNUn4L{B4QAmSxEZAhX%cK zM@Y^ivNfdt*D1ymk-{b8$^2S(=ier01pq{Gcl_P_xe&u{zK%@Jjoc@3h@!DMU(IcN O6Z=p{II!J5JpTjP9->bG diff --git a/mods/hydro/textures/hydro_habanero1.png b/mods/hydro/textures/hydro_habanero1.png index d4a099854bff2a9f77dd5bbd5b32e10465d5033e..577335a95057941aa335a86fcd436d46f80372be 100644 GIT binary patch delta 278 zcmV+x0qOpm3HJh!YJULtNklF$6PofzhVpCZB cg@S)CMCsGMPY)yy-T(jq07*qoM6N<$f?rX2@c;k- literal 1179 zcmZ`&O=uHA6#iz}ByO9OO-+|j6|s?C1o04x2QQYCG!}ytQAEV*AqVjww0IEo;6YHl z^%i<4v>;vzdJqx3hzC&#QdA_A>Ol%AR%7#1O+&`_COexS;)LDVdEcA&_kFp4CY=oR z4fg>Er6v>8wA=jb@zeWYNnW8%%uXlAv69C^jftmgd*(7mmy< z*^)8xq4=$3=+BvZCouS9tgg>`zxm9O)hfjlP0Q0vZL2+q$>zByVOUmP778^wc`?mrmmHzO8~JD#OQiMkp8_a8r!M{5vIA(fO~6! h_y_Ai2kqV&W2)QNom?gAT>SlxZK;WLVr6{h?mx{r7?uD4 diff --git a/mods/hydro/textures/hydro_habanero2.png b/mods/hydro/textures/hydro_habanero2.png index 9d7f1619a0d6dd472a45144f0d281029043d2363..bee795ed8ddd1fdb346d817e20892f4882993474 100644 GIT binary patch delta 383 zcmV-_0f7FS3E%^eYJUM>NklWJ1&m^^gVqU#p&~o0SqUDIREI`BYy&mhp&FcLg8TEv4+!| zCZ62(El2J0X&6&4=RW|?LK6&X*h}y4#iC5-d&yadK6n zB4`#iA}D#iEqG`^G?Zn6#I^-GO$g~NCeKt=B+-Jb0ibQ$a_`ke$_~W}AlYc5@e?cn z2qf2nY927GM!s)hN%#I|BX8|N5z(v46+DYvKo2?OSAFds_-*q`lNYI@TonR=#pg9a dK39uG`~Y^#2*&@9Qm6m`002ovPDHLkV1hRGt&acz literal 1179 zcmYjQUr1A76hGhHb#vE0T{qLE!u*qhn}oqo1A9?CM16={HI`Y4n$17+PR+ZqukRe&&2#y_^WF2E@BI6n^PtV&oTU^f z0FdQt@wN-D;z~D*-Kp_T!B}s5b0dt+6#WuE=8LV(Uf}pWpBQ~2B-YCIhqNO zZ&f1s13E1407It|-sHMxAs+wASAKuuq$#$K^Y39TcM?{Y;t+`lPn8-w5EFiaX|OeC zWx;-7O%NHFpSBoYQ0TBKd}BNtkMQFSXD`ZbvQ$J;nh8WiyduCj%E&;jC+N)M}w>kI>*Kg6V; zuNhm6YE)<{BIb)!;6Zztpck#N&FKuDEwZpHX;crqvneV#JW^76D^eJ=%9RZuM;s}Tv&NbVSl$F3aNVhOHUFL yOYU$Q4f1r!fUBl7&nOUHivPW7-8*xfK$IazVs~o;4O0tu@a${yd&e3(2LA$hG+E04 diff --git a/mods/hydro/textures/hydro_habanero3.png b/mods/hydro/textures/hydro_habanero3.png index 81c5e0b396e1c1c137b8d6432f12b746a8698c27..f0a822a794979ce104cbac310f3421c919777e91 100644 GIT binary patch delta 437 zcmV;m0ZRUx36%tpYJUNhNkl@ zDhhXv?e$f6+NsLnT}jCKnoZuwh4a(vg;0R=?oJ%dr%0OZHGcqHrB;;I%Ss$d5CAL- ziLF*Hem}S@$^KO#fHxj0?tOkH)9-5;&5k7ouq+h806Rb%QPD|CLeAH^kFN^>WHf6e z0Lt<>Oxm;z0Ptr30q9Q4ZZO`J!DLUypC<`GcV2bR)5x`lNe7kz0Nn>UKUyvZ@DX-! z`&xE4Zw1$xEPuyEmVu4yKKxy%C8*6Pp^{Og3>5MPI}$UVRg4Hn<)KJB;;TC#M|ZkV z{bnRV1v>C-RV}i40Mb$ZnC-$8V6j+)7HyvHyblD=1OU4*T_OMk%d>g)LF$=*AU>Eo zbsH=}An_wRum~)wg30B1qb73{1Qz?Q fK1lDPeo^*cjnHatBRaUx00000NkvXXu0mjf02jt{ literal 1179 zcmZ8gT}V_>5dO~H>+ZT)Z5nD86s0|+P>88XP?=`i&n6N=VP#?VNB<$3QYa`^P*g7^ zK}CrVg_6=s5S0&685Nj5sGybUTB~lfy1KjWY33|z)?DsAb7tnuH}jpjmvZenvn_EJ z0JCkIv+`)Q@@qEIckyqzpB8a8FDDa?9~KSK#&}?BP8K9T_ntT0Bun_I&AZM5v!eJF zsJjzOM$%<&%dGE(7{PTh@l1>GOnDAN2_eQDUz%f;Q%k3lW|bRqkoK zqt=RqeFiz|@}jFjBC*Q7e6ZHq9b4)`bFmjXpZiFK$|N~AMYt;T{LIq40s zE`CKo#)MnCVk*6Gcpw;5C17uf=bA!co#k`i8$5}xLBZf9NG%}hmz80iyB5yQFj2PK zCJmZJPIw*AIQXRd>NE=PW5X>nX-PVcSS#?gMT!@aT%<%f>L^7Y4Dx#e^eQkO={9d*V9 zJR6ciXZqt~BPH7@MkV2o_CH~4yuPVxkXL4Zrk@50$49S7o=o<$XnZ9h!qRs6FhV7> z`113yqv!lTgmMcs2ZAS)s#Qs}^=Ykw3G+Fe1!b$ydH4| zPN!GsdH{trYlDNtq)i#7F!nK#ZlQ}%G!P1NqKITdqobzCXO>iz9+#r|2i^w+65a)G z;dQeMZ<~HAwz-8qhf@#=2t__E3gCQu8H!$3gxb^Tk5!fO-#9HP#X9)qTbMSI!i;mN eEbQZXVH>Y3tqB`X+`ZVeh;>`GJ*zRZu<8#y2xZ>@ diff --git a/mods/hydro/textures/hydro_habanero4.png b/mods/hydro/textures/hydro_habanero4.png index 8053f3df74828edb31b81ee9d441bb0fd4812927..357f007b422b7d3a6a8abe3cd95050e675404231 100644 GIT binary patch delta 446 zcmV;v0YUzo37!OyYJUNqNkl+APpYOrIhZ0=$cWkttB7bRhYY>=fqa>ZzMH?#M z2|^Ws%}&m~@3qTj_p0d0j~}W=MlbSvy&eaav}m00AFE2tj{RF`q|O`AXvFyq*&DKVtJdiA;B#RuC#cpniZQt>qvf zya%^$6>~Exnt$H=f=vn)a9sUJ?n3U?{<6)@OhQLSk}8nM8|sXh_QHt~{^)o}(uyEZ z55TBS4b|VwNHCEK617;9LL36u%D-}GSl1Cur&C{Ih*Mp%2g1&Hg3vHE5ds49LR|O2 z?M#-0pl`Qrs8|di6xSBmndW`bn(LGJmjZ3ISH& ojhxI;5>&!>-2-Px#07*qoM6N<$f*H%n(EtDd literal 1179 zcmY*YZAg<*6n^e}opa5aPWrX+%3MKj#L_t(Y27OQ_WMyvZ+!Uv4+pD*Gu59RedG9^67#T zqAUgGVlf-(*J;JLVU`~k6RR!G&xP&7+HtYao;Z+i2B+`di-$LaCGu>+(OO`YiGGIe zo&;fxIBz+a7cs2Ftxn&1?9rZj3H;fF%ee>*yWX?f1Sy=aq4j5Ax#+R|a}^DmOl zW(?r*k@}(dW+)JRwrgV>YIX zG)ol(vt$V5MVX)s9e+GB0|kwVD>kZqq+)xK3g_emTrL+_MC1|%c~t_y0EcHTAj@2y zfr5g;q}%RHD}{&#p;EDXRMa5E@hgDQaUZl10a~ueVA3lH;t?bCT~?!7=F_sr4L-?K zh%Q2uC=e1YAb5pa0aT=ql&z)+tqP zoSIi98-hMBv5-_(M{%JU{P}G@QJKN*hvRv}YZJ0J#qq*!Z6fss)v?^aIU$CVUF?yE z(4Zl}xX&vo3D(xRZ^%wgLVvlR7&_y=%BeHSPoh~)34!PmC6fe7N>Di5umVuJg6IQA zow@&8=I}J6U&Qz2|R@S@%uP+tYiq4#$SJ~t@o%F?-7VzwdjxU;B;Ypbqb!=b}VqRi_uN%j^ zC$kc5y26OVDf?e!fosrx8zyPw%oFo|2Ii;m;e9( diff --git a/mods/hydro/textures/hydro_peas.png b/mods/hydro/textures/hydro_peas.png index be738acbead15d067ccb2b90a80b1e0ee52468ba..1eca85519dfd3a2390310f9635ebffb2a4a1de6f 100644 GIT binary patch delta 226 zcmV<803H9E3B&@BYJUL4Nkl(sR&Rk^0K^Q)h8%c1 z1;sl^YOx16vLP@RKn?kY?h2gY0&*JEfPdHm6d~PmA`wmK#b?cLn^~*RG`q7i^PAtBncc1rheIx>*C~W>S^dEXX*X6`DecX# zxd~Fnd?eH>j&7SC$tay12n9tBzk`#*ZSs`I`^V;msHnj*L}IU=oaTZx*k|53>I|QA zWP0X82uGt8>>2fY47VfmL5RGB6Znu_hIUYrT^Mi7?)T*EVIj7rPL1elK!y&M&i{i5 zkQj)7*}JnI@6E zv=n#!X%TICp4$MI!US0Y%XXM#V{H?FDs1|kQt2!4Tzdnz6iJXwd_IuXz$Az)EXD;$ z$oG3yh`O1J_99$H)c9FS#$gro$UUPbkj4=yQ+02AfXs14Z;gQ$uupBdL4bNnUX ztHQN0Skoq-8ON=t3NT%i#sE$z)Qn?)z7Dc5U2nVML;RZ-JMbptEDCW9uuYfdpkkCP z-wA0OP6x>r0K)$O8iIGhZzJy!3I|&OF_mIzc#!N9$FzzRlvgoP*29Ka56ri X<6!S*_5-Q$xn-QKzHsoUH@flz*j&Hm diff --git a/mods/hydro/textures/hydro_peas1.png b/mods/hydro/textures/hydro_peas1.png index b428df4c174be717f9eec94bfb4ae1d79488365a..0a2ee057c9ef5bfddae673c910980b3c102978fb 100644 GIT binary patch delta 278 zcmV+x0qOpm3HJh!YJULtNklF$6PofzhVpCZB cg@S)CMCsGMPY)yy-T(jq07*qoM6N<$f?rX2@c;k- literal 1179 zcmZ`&J!n%=6#nk>CGoXMd8z3mRHbO3i%=Xwad5Guq_G&Jh#(?XhYacGIyeX};vgzPii(6%9i)(AH8yFgX~^}Qn|EJ+h&Q}<-#y>C=kNP+|7KW_-5K2uXrf9eM+3%SQtj$-l*ykLSr^-JG~E1N0u? zMRRTdqy3*<{t_Xl;kTd%ZKPvRb(#}p#m5_pO>X?2biR4crDJo#`2A#n;VGHOvo2* zMck@T={U>xjlT%^Yht?>h#dPQ56AOuv)~qak*{!l)ma7LELL$ul-7=eE6`ao%eD%l zFLUrOt7YTKwQVtfzN{+q8vgk04Sq)6f}I|m-fYXFu_MyN`)sYQQvdHYdeo8ejA`hs z+D}u=_EyZRfE~#RUxi|_&ee1*1?XxtrdZ$ui-l?AGNW-LM0}UDlg9W=EdW`KxTJRx zi+8ybV;yin9iolK+^e#1ThKVurYL5t8$+svPO)5e)kZC`+B_i*#DL8Y!(!K7l}@BV zhBpH}+0P4k(gE7k){4;(jlsAE=d1g7L9FHf(X;xXu#dI iK>UMspo4bqj4{=%>rQSb>RkN&j%}&&bYf*}`tCmh^%rvh diff --git a/mods/hydro/textures/hydro_peas2.png b/mods/hydro/textures/hydro_peas2.png index edef1805342ab4c70d00745c0b7041ddf82b7b93..fd442fd5d1fe470352ab8e1774f03434538ade9a 100644 GIT binary patch delta 378 zcmV-=0fqjX3EKmZYJUM+NklVMa@#MCN)KX7Fj#`P!m&5W1K;P4+QJg+*8NhHdFc42-aew#GuUIJT%{$g`eAUFG z>%Qfvoj(j?>gD_c;910=hMn~OTrA3TzL%VZSZ?0e17nJ1e|KyEOe28VYcJSD_uo_f zsexlL0AEXBYXU6*d?+CeGK;yOS~^=zE>upaKocx5D#sa%xt^c4Xh29jn#3p(5ma>q zC9k)B#>RlMOmmRfHbAEdA-%=qnW~B;T97pWv~64Ny}C%*p;!SV8%;ERf&~D9m{xfyvkXDduaUFX4UIoyK{JsfEI zv`hjfCn%^wntabRBobfc;-62FEphue`wo`#$6;w90pT!4s)&j`F@VEuDjexBiH*hvydcX2k9uTqg#T~+=&7U4~yB! z*-#I2+A<6N3eHGNafa-`xxYe`I6Wd7ssu_i9c8aS!WR#gR2vRHe~2kRM}(Mpl&`bU-5HDU9Ym?bB7pt)A8Qc%j*>o#7yh=)WqY>vjyiW`y`7%Lf(>0i%NGX&N zl&!N7Wk3*rSCT+=yRVcpH+n!;)VSr1q$DGx6d^#gw2_3jk7o$J1eJGB3vlge&Ltdh z*ccid78xE=-Ukrz$H|+n;06F;P&WbFiL&t zu-*aZg$)B@LTD}eMbc!ZZP`H@#>MrBz%p3(swYIfpg|(o1nG7m1gE;}?8KOPy5+)B zP#|dzvNAQuF5MJk*A+P4>1L diff --git a/mods/hydro/textures/hydro_peas3.png b/mods/hydro/textures/hydro_peas3.png index b4f9085bed4fb5306d04acbbebb32452dea7c014..056fc00e4bc64a18d0a90bfd2f9187caa28c9153 100644 GIT binary patch delta 420 zcmV;V0bBl?34{cYYJUNQNkl>E-YY{=x+1MBh zL9nne2SSt*&i!@@N#@{jSx9*$V4J_HrynAnU-h_~2vg(G*Rkt%P`^H`8 z0>_K?=RMFMguvI?w$Hc>$V5(oft zhoD{$!u?0j7GHZ?g8F*|Yly6_f&xkqXdcw!({>)-2L_2hAtqoAk=0dD0K~*Kk9aq* z5P)qtAifT)JuEP z1f^;7grTV-{Etgh(6S!h-5Y`oF9Y`1gY3cA}b9u6@N&D8uURw z%+-(j<)1Jx>R%KTVj>lk1v1E@{D{p>HWjzm-R^VceXBF>d+$B>obx>AV_jt)w=F3n ziHK~)MXn05+p$)f#dl+bSBs4`R=5kO|NZ)DaWU5%bGwM+_vmHcJ)v23vFJo2(P}3a zBj3X`p|o5sE-AG5)zoCihWr=PSBTVg#jeB0^Vc%F8j3SvBE{n~lenm(?bdi!N7T?y zb=qmmDHDalF+SGEDZ3+@GTCVlrZtCYz#AhK-oLuLiNZ3Dc8EIV!4b%nyZNM_7GnvH z%dC}100f9M666>_6=@|tO$)dA>B%l>2;JxLA-b-5C^#ACfk2ENq+elcqC`8YO)Rg@ z!g99Tq^%5aA$p4o6!=N%U)rraCo`Yw>}~Yp8E3D0Lq z?G%*|wt9C1eQij#RZfpFbx7qN4vC#z-Zf0KN-xN(pk%qx}O?CtGf%Gz(n&4;b z@^WW1om$>Fxmc9DDV3M{%r?vh3Lx(C?dT;ZZBBD==%Ld^GFVt#Zi~+C?vb$w3{d^@ zCyHzt?@&`plX)I|o++k(Q0G~`>nvXV;uEk<$CV!cC{OfZ7T0D4={8c0L$Uf%k6 zAC34l(%%er)&_>jRMiBpx^dud5rrR{`;bj&73Sby6uf~Q-UKTpdG{Qfn2oTRl;Pz7 zg9Bmq?rB6;8!3!W1#}d8UYlSopRQ8v>oz?-MRWv2<-buL@Y&;4r8uDCpbEho b<^?+Jkdd>QH9g*QZ*eXz^tk#9syhAv`5i*k diff --git a/mods/hydro/textures/hydro_peas4.png b/mods/hydro/textures/hydro_peas4.png index 618b14920ef9d349e92d970d4cc04bd7cdf0281d..5736872d0396fee7f2d6fbbd2a7d2cfe2368c199 100644 GIT binary patch delta 437 zcmV;m0ZRUx36%tpYJUNhNklQ@C8B7h@rsPl$pLPzwuFoEXws zXrmT_VqswdLYfGvtn(d$ACS%>jo4q~cZ~Zs`zCt>%PlkS-kY5_A|diwRW4@LN;|75 z?mUNkn{qX7O7A&U)Ep*74mFFv>C_GhZYEuS25*@RMqBC#q<_(_d6HPf2x1i!I(HSH zKfO)m zHdA4Z7NaZdO#YJi;Ti}(BY`Kxo5>owqeEPEv(dL2ye3v!P{+=a@{e_ z@9#0e!HaqbM-p^;kV2k2mcGjQ}JcjS}M!x!d2A)mzyv#^m! zQnn#0MxZP~06+!?j$l$9k7A#;wFhu{sTTveee;dNUBLyxB?$t71U$>Q3ELR{L-l%6 z)MOyP-&lDpf8c8DzLo`VPj(w={@!9}GIhcHYYOiM!dgkXO?nVQ`TX*e$Q=a%%R*Te za+opCVDcfH$H<= zM7@kJ3_XqL2;Bke839ki^YJUPRNkl7g{j%{Q zr{WHrh0FcaFQP>mx4QpOzsh+1Ix>HNO*q1&T|qo*VLuz=C7oj2D8X)(;dUx;nq{2h z2~LTFJhBlEn)1B{GaWSauoD74j7Dv(`~8kdtDc@@s}dR1R`$2VH0z! z1+QCGwPWlevAYQ5%zE2Cz*G)n9> zTJ@4*ScdEbtR;uP@85A*h4_(85%j9aydJ)Z(oEVU0iEUIBZg)n5D4;%P% zN)^1FS=da6n1A+ah{r8N)`MW_bg{5I`kk%hg5x)nM~*(YUawdOGL2xU1U%E?=P}hl z!$DoaZ`--H^^*En`F$ALIw!7@u>Tba!Xc7zTOD1p0KfBvhRXoiGRZTyr(%Y-LKz1` zBY~zb{d1HAKY4xazaWUm9nFHdsRP<1m<~RUOMLy@X@B2-x1u2y1QZFR_hPveCnVQ7z(SEWsm9%4XqwS~Qr2_o zDX|i;cv;MwA<^bxKGC_K7p{u%&6A9-SUB#EVVcF}@u4b6uLnt+%fc`@b1G8cQzpV< zP7KxX4@oZwb;X4vn62`cXTuHrI3(agQJLFCC%Ws+N7^ik5J<;t eljG0lHvR#>%VN2K+aNQ@4-KOh&_Y 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 Y2jz;7Es|XXqyPW_07*qoM6N<$f=6hR$^ZZW literal 3212 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 Y{JV|y#csb@d0tE{-r5-(YPo#pFNUaQl>h($ diff --git a/mods/hydro/textures/hydro_roses1.png b/mods/hydro/textures/hydro_roses1.png index d5f6d1b54240113cfae6539d506f385b8eb27dd7..d92b7f1859910c6d97637f8748213d75460b9835 100644 GIT binary patch delta 278 zcmV+x0qOpm3HJh!YJULtNklF$6PofzhVpCZB cg@S)CMCsGMPY)yy-T(jq07*qoM6N<$f?rX2@c;k- literal 1179 zcmZ`&O=uHA6n?X861PocQ`05XifEu0L3&t<2QMutX)K0PL=X|Hha98_p~Ztx5f6f1 zds})av`~5p)Po1Xi+B)~AVo_FrFxJ;iq)8;siq<0dy{>eAL4}F*?Hfa_xF8yHkC?* zdIov`Ae5YlPvdUVbHb1Bvn6>4H!(Mz7=ui9FpmfS-N{58B>k3OuPvg*xIb}Y4xslG zJp!DiC>jIv$*bdm9o-7qk;lc^41j(*86UlNDJ)F=*D-oDSIY70{jomTv^2gJURg4| zVoJi$2je%F#-B4!FGJstks6$O_DuCwmd09>#0!(5xw3Z*fh1J=Dn;Rg8GeKW) zE236~N=I3~@BM{5Qiqg(7Pz9VNy=tl; ze3^o8ZE2XcCTWxp*8W9Os}ADvoVrT*V*-;O<&L h{(*GBK|6QCi0an$D0>*SZvOs2w&Zv!o*A2Y@(;im7?S`1 diff --git a/mods/hydro/textures/hydro_roses2.png b/mods/hydro/textures/hydro_roses2.png index 002bd02ddbdd0a44e3bb2e44a9a6411bc00fa086..73f605978ea0f845c297e09b0bdf2e2892d1a6bc 100644 GIT binary patch delta 362 zcmV-w0hRun3CjbJYJUMsNklNM9)_96C_m%Z7mceofbBU zm4%>%2mu?5)Tz?i+4+yI@pr8It@qa1B?HUty_tJ&?#(#Y$JKV=uD63~($=24&h+Ha z-M%0D%csVZ3pEWGxfJ&wvvfqD_xY;z^S7f&FrL&N3=#>%cz^yLWhx}jmQ^gcSTz3p zVH7cPH?Lz)?ecT@PheFjk~#&aZS8*6>(rgC1&bk-$FF@yn^K_w0=f~w-Dc=wM=yU} z?exH^Kwxu$Y)_<#fENMsKq@${T)2BpCNoiEBta1>@&K%NzS0!z$p||N7FP%TJzFH=7gG=pl1LWJGXMYp07*qo IM6N<$g0Ft5Bme*a literal 1179 zcmYjQO-xfk5T1Q~{FN5^gG~h@f2j$r@l**WaF7(C8mkg7CM1F}BwmOHHHgMT6AdO_ z)Wief;Kgt;9Pla!6Ay*}F-D3uMbQ{5*ixWHp>6uyZ|ZwGFT1mEc6a8R`DX8*3H4ab zwPqr+273d2Qrj@fOXb{<)&`{#BYizxG`(2ACVxsVp6m&bhVSX@)MII>xYB!mgs9Sq zA!uUKEsbT@f~UI6VyesPcMa#QVIs9I7&vyW-7aiuDktO-me52g$scv;jwR;}XAJv~ zaT|Fqn6%VpmZDP{`NEl+__!_U9^Iswp)9GmJ#epsD8YX6L=j#%5^bzY`(xT(w!rHx z3z0q1mZZ@+r$&@SPz5_Rz9q`#R%hFzy_p5Jcqh^kh@f;-*GE!?=RA-2`(;qcU z+?jA!pjcFNu)0uYM1c{}4>h)9Nnc-R;#td0p(9dCOaw&V7EKy#j6jdla&%7sCZYh5 ze(7{jxkUW$QP@_ClprRYl}9mk{=`=P=vI?N`G4H7Kfx1zyKuqE6)fdJ$bNjR}FFQx;FYC7hmCK zX)2g#zhALRzSB5#*8G4xb^El`a#p(2=vID)fVA$@4GzF5WOn~G3#<>1N7Kmrvh6k< z=vNGib%xNHd|OWJK&NqiXG?5I$dKn_G1S6nB5v^m`D^|ZOF+&c!PZ%}OokS+1GK#|8mXh7(G@Cd`u^v$r zRFRYlpd-&*F$Ls{fyyI=|GQ0R0rmKso+4i?$HQwh#6P4GMq9JXC=fQ~fAO^z*BV|R ZY|xOmM>^MDJ(=IaI@lcwOm_{0{{U$LVSNAq diff --git a/mods/hydro/textures/hydro_roses3.png b/mods/hydro/textures/hydro_roses3.png index 6f5944cea409fe1ad9faa2a074af0ad1bb70db3e..881d40ec83df2a6c7e34da2fb212bf49477fd60f 100644 GIT binary patch delta 444 zcmV;t0YmuM?cMYor}+kFm@C$S!=0Hs^PPV`5o6o0CF?uA zbuAXMTJNXr8t43|9ZT&hvj6t`>1bndPPpUkr`wgvQ6m=HETRCw*>^sd zB^+@GlS!lAP;Fz8=`@j@c8_gyt+_ell;BDV>z^hvKQ%^Db+aY|*66=}llfO<33CuK m2+z?50M?AS)~{6E1n^(FEX5j0000JHM45$sWLX^2518_q@}vt1OuP8xYQv&CFmb0Cwb1)oTm3zXh1L<15*LY>#9A-_FH zmZN(q?nNU}V(_}b=MPgyAB8>b!7Nv&+N-nsVX!F-oZv@S7u1T6sX{A93~#I65L#jg zc>&faU0I31hZhu%Hs%vw)~J@TvjcW14yQ7n>KT}_jD4D|13oy@TiTO)(G24hu(DCJUESY(S47Q)b(G2ADN1e96@h@NO1%=dAK zgK-X0DXfMlPu^*DTPz0!+h+OMA)|v#^v=K$qn`gVlIFDK!1(lgxGq>hqZDA?DZ;Ef z1TwkEF^Sl$-7=W(RKt`cLN7d%6CzRwE{ibyc`M{Dr31^nFx-_cjy2g67-Zm8;8bkD z+G0z-Wu{|>-_FVw!73PRHtrL*oDFqgTfI%0Siti<1@v}*#yx*W0G&*KiR@joov^Z_ z$avm3LCqB%Wnuvo3lj9d870zwEC9f{;4PSwYyT;-;npv)5Z1*)7M6dKMMi>6tgD0L zlb69*sY%vFvdFm9|47IVod(N8_cf$|B2^$yuDamx10#1tZHR$2*i@9sNp?$(WGylk zdkgh94)R-Z_}b&3IVV|eSx8=etep7B;_^-s8Kg zWQo^^Ud2rUcb2@;(9!P;iO}|M-w0{V2FesmvUh4|iEUSDDEjLyl45)5u^g)_EINyG MOPSR?V5)Eb4UbJ~VgLXD diff --git a/mods/hydro/textures/hydro_roses4.png b/mods/hydro/textures/hydro_roses4.png index d480a3b5a302b89a843e0859e9471dcea4d10b42..4f3f0ce412654202d30a2b0ce0610c89e7072c22 100644 GIT binary patch delta 299 zcmV+`0o4AR35)}fYJUL?Nkl0m;oF3EG_*Xt_g%ed>{tNg;b0G2N@u$0x=xJkc0Cd8^ARo(?AT8cSsim(;ycF zRf_({v>mGW0uRssbsQXULvDnu=tEWqG9aW*;y=tq2m_%0hkw}&G6>lP$Od5dKQs_O z+FSpBZKsYB79jcPM#=xMKxDuLV4)2PsHa(h4lvEgPBv2#!)*Wzpog?$sxXYt0+Sda|0IMG8CDnIOJpbVmKPw40RUlF4{U*`T$}&^002ovPDHLkV1gZ*d0hYi literal 1179 zcmZuwT}YE*6h7aaTTO;bS?#YMYFByF3bNbDWUgq%SQk+jCDdgoc2hx+&_!25-IN7( z6N3;z0&gP9iy#Xc2Hw;RBEO}%A8jJ~X}-PB`SyO!wQszC&w0;z&w0+X2j`Pva zi?+3I9A=l7>Gkxq=_rHg`}>E0zk5=) zGPN}~5i&wau(5&bbV#z1fqZp#W`>S*bihvTsVU1D{N(0K)){s?CjJbAw!(+V5CzLw znJ(S)i}I2|Uo-ruf_Y^Q+}SKgZJm6t9nCM&pA&&7tav?r*C*DEExz35+J29LMw2&e zwo$b!dd;j=p6$xk$j`!X2~1l+%|>aY1~N$mpz17)H_?I1va-K|M(;0ZN=PJ0j{NvW zAQ1wC4@%_PQ70TA76kbC{r3*08;J}8Ll9=A_-ljSJ}oj(pQe1xkBh3s)~f3aa~G5| zBXX+aAP>A=WHRst;5$+UaPsh8p*R?s2mq3Q-2X+U1jZSdx6HXDc^Dm>*Pwr;52}i6 t&ADWWOc7b@%X?%{52{X}#UE~D`e0Ysi`)4x)RNo;mgr8##=5Qy{sYgy348zm diff --git a/mods/hydro/textures/hydro_seedlings.png b/mods/hydro/textures/hydro_seedlings.png index ae7cb6222b2884c4bad09f504b73e0449db5f932..6722c07e4926cd9048b60a794a30cc46f63bcf72 100644 GIT binary patch delta 197 zcmV;$06PDh38w;(YJUKyNklu;vr}N2JoN31;PSANnW@?Krt9Qq0Q#MNgB(4kQfF4N`e)DY z&tYN=t5>fE%Rw<%3RtR^Ko&z{V|W1oVs6#RO=z^$00000NkvXXu0mjfxH?F6 literal 1179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf<7BOB$o+a8sZx|R@q&;06Lo5Ut z1z6tyW&|n$1HV~pEI`H|D3=&YcvIT1x5x$%qX}J&FcZ26iF|fS4R}VW0SrUWfdA-$ z4EF*sPEq6-89)gTKLF{08vs(u_>TpIK?#`mKLf--kQfXIy)k2WcIMxIkQmHDxB&@m zHVlIAjQ;;;`tyF0+pW(teIGJ_GyugIVg;9i*kI@DC|EFp#9#n!{FMhMz+zG&5Ho-N z{K)_klQLmq*m`>+Sni$3DVRPu4R^trS${x^!AV;|K>@4)BnATQiK{^vp6tPbPy+4( z5Fg}Z2spw3GXx|iDJcmS26+sGE)+H( zu?Bm@k@wx4xh|93y!Xz`J#*&gMRc~h_hT^`MQt_qxLuz*iZ3=>58}98#dJI@*x|DL z9AWY)M&G)8-fx~HEd&DPgkXN^B~^-X4ASC68ksREz~`7^5`RH0mokL8I?B*#5=bWB zVDI3a_liCg0$p;MauDoO5cX?Yg_YW1S1@W?Soj`Lg5JqS6OmlUrJ0KvkUj{jC)6CH z*GtA$4;)JblEfIv=oo$Rh9`o0LH=Q1WAs&K4_ZAyfw0s>Uu6jNqy#7TDI|lr^*g6| ccNp1UWx~_oZx7V*xc~qF07*qoM6N<$g2e59VE_OC literal 1179 zcmZ8gUr3Wt6hC);Y&J3HRx&IS3L<*QMPn2gnS3_apAjZR^kN}`Z-IXj38IoQgI@AM z7<&+3B1j)TBq%f@C1q(XDT#=Po-A}?(Wv#&*ZrNZ`#E>U{qD~1o_o&uopbKsxp=g~ zTjM37ideJWB6lBFnOlBqe^{60Cc0XpjWqsh*H@{yubhtRWZ^e5b$>`ATdy`>>>?@; zUuCG5tjAkt*TS*8WHfTjD7KJ#K68 zMxUkhx1Z-Iw>?7vuSV$y2E)Kcw_F#qGtUK_etBGGXModVMRQx{FGf-+~jOprmO@3km;GKI6HMHD1&U}qfM8g z$m}j5I%m4`iqv6J_ln5I0a95UEjYf z6ou^AcW&*0_I>OCcq!&kKy@dcJQb)kqCn85)x1gITlqf787fS5i5;LY{*?%~tS0Ot zqocqM6b1!d!W<|pw0?@)$P~aWT*Oz=`T4sbN^4MThkFhMR3GVLKvcwHOcfSbZ%;Rm zGwgVj@n=3|%Ap~`fDB9yaAw)D4Gcr0>}a^8jqrZF{Gg!sr2dM0GN6oZ1^8j&)KLq TBX?ii?!j5CDXxz;3dzieYaU2o5O;3y>dggRv+s zdBaFF%?O&@&r51e$x(wfi;(L|pcb%G9kH)~T*y;`Xe`f+7GBB*#)Z@Z$w`_9ZLm?q zBzLuyz8*3+#E?@y&uD3hWLHh0v_Sd%1IZM8(Ly!_{YYZN{+hy13u>dsbP7yu&J>jXl@BlJt(#_A98|J0Yi z&6`s$WR~gjVe*YHp`DeCM?QYloAVQ92KKUBWun12mP3`ZaVEq2xz%*|$sLW(^gVxH zWQp8~oVT>O5Oapzk6%`_kgtS@mn(PK*G?nIqXVq-p$B@za#i{vUJcwKz+OCBq}co1 zr_I4OQlAGEM-UAF2CxM5_;O3{i95r?3AWe!CRGn=4wGSHu>Uw+eO-9GB0vCWumqYx zkgiExjNpQFO*!DXB%hZ^NSlUqfn-8sYWk^?Ys!HQx@4-Y(bIjU0Rw7Nps@gK43k~A zMgu^Bbg}qFEk#P;Adc9DgO9!#G|M=0r+e9<369Trq{%O<4R<&rGYtU33Npm$e+eh0 zU<%9`AK|o#=s49|b@H5zbHK4r4O8&hZlPw*8bGIDb=dAWpB*W~iqifPQBQY=!3pfM zaM=Hyf-SH+jx#sae9rhb0BxexK!|h-5b+(^{W}HN6$lb^x`UGoY=K57+MT@~oAx#y NLFCeT?{c|#_yF$6PofzhVpCZB cg@S)CMCsGMPY)yy-T(jq07*qoM6N<$f?rX2@c;k- literal 1179 zcmZ`&O=uHA6n?X861PocQ`05XifEu0L3&t<2QMutX)K0PL=X|Hha98_p~Ztx5f6f1 zds})av`~5p)Po1Xi+B)~AVo_FrFxJ;iq)8;siq<0dy{>eAL4}F*?Hfa_xF8yHkC?* zdIov`Ae5YlPvdUVbHb1Bvn6>4H!(Mz7=ui9FpmfS-N{58B>k3OuPvg*xIb}Y4xslG zJp!DiC>jIv$*bdm9o-7qk;lc^41j(*86UlNDJ)F=*D-oDSIY70{jomTv^2gJURg4| zVoJi$2je%F#-B4!FGJstks6$O_DuCwmd09>#0!(5xw3Z*fh1J=Dn;Rg8GeKW) zE236~N=I3~@BM{5Qiqg(7Pz9VNy=tl; ze3^o8ZE2XcCTWxp*8W9Os}ADvoVrT*V*-;O<&L h{(*GBK|6QCi0an$D0>*SZvOs2w&Zv!o*A2Y@(;im7?S`1 diff --git a/mods/hydro/textures/hydro_tomato2.png b/mods/hydro/textures/hydro_tomato2.png index 002bd02ddbdd0a44e3bb2e44a9a6411bc00fa086..73f605978ea0f845c297e09b0bdf2e2892d1a6bc 100644 GIT binary patch delta 362 zcmV-w0hRun3CjbJYJUMsNklNM9)_96C_m%Z7mceofbBU zm4%>%2mu?5)Tz?i+4+yI@pr8It@qa1B?HUty_tJ&?#(#Y$JKV=uD63~($=24&h+Ha z-M%0D%csVZ3pEWGxfJ&wvvfqD_xY;z^S7f&FrL&N3=#>%cz^yLWhx}jmQ^gcSTz3p zVH7cPH?Lz)?ecT@PheFjk~#&aZS8*6>(rgC1&bk-$FF@yn^K_w0=f~w-Dc=wM=yU} z?exH^Kwxu$Y)_<#fENMsKq@${T)2BpCNoiEBta1>@&K%NzS0!z$p||N7FP%TJzFH=7gG=pl1LWJGXMYp07*qo IM6N<$g0Ft5Bme*a literal 1179 zcmYjQO-xfk5T1Q~{FN5^gG~h@f2j$r@l**WaF7(C8mkg7CM1F}BwmOHHHgMT6AdO_ z)Wief;Kgt;9Pla!6Ay*}F-D3uMbQ{5*ixWHp>6uyZ|ZwGFT1mEc6a8R`DX8*3H4ab zwPqr+273d2Qrj@fOXb{<)&`{#BYizxG`(2ACVxsVp6m&bhVSX@)MII>xYB!mgs9Sq zA!uUKEsbT@f~UI6VyesPcMa#QVIs9I7&vyW-7aiuDktO-me52g$scv;jwR;}XAJv~ zaT|Fqn6%VpmZDP{`NEl+__!_U9^Iswp)9GmJ#epsD8YX6L=j#%5^bzY`(xT(w!rHx z3z0q1mZZ@+r$&@SPz5_Rz9q`#R%hFzy_p5Jcqh^kh@f;-*GE!?=RA-2`(;qcU z+?jA!pjcFNu)0uYM1c{}4>h)9Nnc-R;#td0p(9dCOaw&V7EKy#j6jdla&%7sCZYh5 ze(7{jxkUW$QP@_ClprRYl}9mk{=`=P=vI?N`G4H7Kfx1zyKuqE6)fdJ$bNjR}FFQx;FYC7hmCK zX)2g#zhALRzSB5#*8G4xb^El`a#p(2=vID)fVA$@4GzF5WOn~G3#<>1N7Kmrvh6k< z=vNGib%xNHd|OWJK&NqiXG?5I$dKn_G1S6nB5v^m`D^|ZOF+&c!PZ%}OokS+1GK#|8mXh7(G@Cd`u^v$r zRFRYlpd-&*F$Ls{fyyI=|GQ0R0rmKso+4i?$HQwh#6P4GMq9JXC=fQ~fAO^z*BV|R ZY|xOmM>^MDJ(=IaI@lcwOm_{0{{U$LVSNAq diff --git a/mods/hydro/textures/hydro_tomato3.png b/mods/hydro/textures/hydro_tomato3.png index 90ebe67682e28eaaf7c95c28b257b35cccad2328..6faac4a46e6ed1539ee1a887474bc524885634c6 100644 GIT binary patch delta 393 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 diff --git a/mods/hydro/textures/hydro_wine.png b/mods/hydro/textures/hydro_wine.png index d0944ea03ca2010af6c7e92b7725c458462bc075..96f2b9d6e61bdd67ad5668b41285f8394febe749 100644 GIT binary patch delta 601 zcmV-f0;c_|A-DyQYJUPaNkl3`wBmM?sVPWoec6K*h4wPuLQHxZu z5JAz+^3beFQp%_kTG`H>=PG;@>!$$;m>NqQ=cGV9DF-31Z;?C4kY7pb-2nr34M8q0 zzN{eDRS=9IyyyD8Kb?Dz(Crj&15{~Oq%GN5!}L&ATWxmC-h~SPin3Sh2H@>5O1_Gs zaq)CJJVLlZMjpby~8J{R&g01CpcBY({61$g`TPV}bH~XOAb0~6js3uQG?#`y_~~aq n*sVaBR0&vX)6|}WfAh^Bcjm!WNXUyA00000NkvXXu0mjfjanMZ literal 4267 zcmcguT}TvB6h3!m_Q&0}wNx~5Yazl130i#VB`{mjEtC*J#eOUbDIyFbLn_T)5+W*# z$a;`S>_s1f9twgIgbZq-9zu#TEusfA$;$nidpq~8&FP0dc%GS&gGub<{j$8bBvVfPh2&YBi2!0-#eD zCDrAk=!Jj8Y*@qN?IWHw!#+hwJ`?>(Av;>I82LM1( zJTP?sz~zrj`8)xt3<;@mtL+S`W8+i#pV<5u5W;srJ_oSjLuEFnKHD(={M9JD@g*{2 zf{7FX0oCX`#eg0Jikm1|a2G2l8qoC zJ|8#}w9^_{JG%K6^b)XZ$oF z$YmfUy}M3dHG19OdB_A*W)ry#q|m){?nvf{lG>DzlAiy`TrL9(pgjF8wLusOzlMiT zUxF_`2YOHJgH;~+qoHI566QSpgAYcbeQyms>FWgkeeB|GOF5Awki_UY+60=KEd5p| zqGbXemov#`36k6#i2h=MdzYqx*ye!YAv9%K3J$6wRfxEcTn6+wuXk9GL^&46kR^0p zxXKX_$35(}sJt1Vxqfk0GMJ^R<{9 diff --git a/mods/minetest-exchange b/mods/minetest-exchange new file mode 160000 index 0000000..144a3f9 --- /dev/null +++ b/mods/minetest-exchange @@ -0,0 +1 @@ +Subproject commit 144a3f92031d2f69b0276bbc2d2a92998f56d14b diff --git a/mods/minetest-glow b/mods/minetest-glow new file mode 160000 index 0000000..2826178 --- /dev/null +++ b/mods/minetest-glow @@ -0,0 +1 @@ +Subproject commit 282617852b5c35cec31664bbd091e6f076b871b5