From 2155ecc638488987c6701b8221d9f194f5ac7bbe Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Wed, 10 Dec 2014 16:49:14 +0100 Subject: [PATCH] OK, ROLLBACK! - All the modifications done before 7845fd5f1f1aaa6eb96f27a4236ea0f66ceb8d84 are reverted - Merged commits from http://github.com/minetest/minetest_game from 10 days ago to today. (concerning default mod) TODO: Merge the other mods which have been reverted. Add all the commits of Ombridride after the 7845fd5f1f1aaa6eb96f27a4236ea0f66ceb8d84 one. Signed-off-by: LeMagnesium --- minetestforfun_game/game_api.txt | 13 + minetestforfun_game/mods/bucket/init.lua | 42 +-- minetestforfun_game/mods/default/README.txt | 31 +- minetestforfun_game/mods/default/crafting.lua | 13 + .../mods/default/craftitems.lua | 3 +- .../mods/default/functions.lua | 264 ++++++++++------ minetestforfun_game/mods/default/furnace.lua | 47 +-- minetestforfun_game/mods/default/init.lua | 35 +-- .../mods/default/models/character.png | Bin 2754 -> 1848 bytes minetestforfun_game/mods/default/nodes.lua | 292 ++++-------------- minetestforfun_game/mods/default/player.lua | 81 ++++- .../mods/default/textures/default_grass.png | Bin 859 -> 692 bytes .../default/textures/default_grass_side.png | Bin 473 -> 794 bytes .../default/textures/default_jungleleaves.png | Bin 193 -> 667 bytes minetestforfun_game/mods/default/trees.lua | 1 - minetestforfun_game/mods/fire/init.lua | 2 +- minetestforfun_game/mods/flowers/init.lua | 85 ++--- minetestforfun_game/mods/flowers/mapgen.lua | 28 +- .../textures/flowers_dandelion_white.png | Bin 197 -> 2954 bytes .../textures/flowers_dandelion_yellow.png | Bin 252 -> 3013 bytes .../flowers/textures/flowers_geranium.png | Bin 257 -> 3030 bytes .../mods/flowers/textures/flowers_rose.png | Bin 159 -> 264 bytes .../mods/flowers/textures/flowers_tulip.png | Bin 243 -> 3002 bytes .../mods/flowers/textures/flowers_viola.png | Bin 175 -> 291 bytes minetestforfun_game/mods/stairs/init.lua | 12 +- mods/farming/textures/farming_bread.png | Bin 552 -> 548 bytes mods/farming/textures/farming_cotton.png | Bin 341 -> 166 bytes mods/farming/textures/farming_cotton_1.png | Bin 136 -> 95 bytes mods/farming/textures/farming_cotton_2.png | Bin 161 -> 119 bytes mods/farming/textures/farming_cotton_3.png | Bin 189 -> 148 bytes mods/farming/textures/farming_cotton_4.png | Bin 220 -> 179 bytes mods/farming/textures/farming_cotton_5.png | Bin 263 -> 221 bytes mods/farming/textures/farming_cotton_6.png | Bin 342 -> 290 bytes mods/farming/textures/farming_cotton_7.png | Bin 359 -> 317 bytes mods/farming/textures/farming_cotton_8.png | Bin 339 -> 289 bytes mods/farming/textures/farming_cotton_seed.png | Bin 348 -> 271 bytes mods/farming/textures/farming_flour.png | Bin 378 -> 335 bytes mods/farming/textures/farming_soil.png | Bin 713 -> 835 bytes mods/farming/textures/farming_soil_wet.png | Bin 659 -> 831 bytes .../textures/farming_soil_wet_side.png | Bin 721 -> 109 bytes mods/farming/textures/farming_wheat.png | Bin 566 -> 547 bytes mods/farming/textures/farming_wheat_1.png | Bin 146 -> 105 bytes mods/farming/textures/farming_wheat_2.png | Bin 185 -> 143 bytes mods/farming/textures/farming_wheat_3.png | Bin 228 -> 187 bytes mods/farming/textures/farming_wheat_4.png | Bin 270 -> 227 bytes mods/farming/textures/farming_wheat_5.png | Bin 354 -> 298 bytes mods/farming/textures/farming_wheat_6.png | Bin 456 -> 396 bytes mods/farming/textures/farming_wheat_7.png | Bin 523 -> 479 bytes mods/farming/textures/farming_wheat_8.png | Bin 635 -> 582 bytes mods/farming/textures/farming_wheat_seed.png | Bin 372 -> 325 bytes 50 files changed, 443 insertions(+), 506 deletions(-) diff --git a/minetestforfun_game/game_api.txt b/minetestforfun_game/game_api.txt index 8123c010..4ff5859c 100755 --- a/minetestforfun_game/game_api.txt +++ b/minetestforfun_game/game_api.txt @@ -275,3 +275,16 @@ dye.basecolors dye.excolors ^ Array containing the names of the available extended colors + +Leafdecay +--------- +To enable leaf decay for a node, add it to the "leafdecay" group. + +The rating of the group determines how far from a node in the group "tree" +the node can be without decaying. + +If param2 of the node is ~= 0, the node will always be preserved. Thus, if +the player places a node of that kind, you will want to set param2=1 or so. + +If the node is in the leafdecay_drop group then it will always be dropped as an +item. diff --git a/minetestforfun_game/mods/bucket/init.lua b/minetestforfun_game/mods/bucket/init.lua index 4d2d9b90..927e9543 100644 --- a/minetestforfun_game/mods/bucket/init.lua +++ b/minetestforfun_game/mods/bucket/init.lua @@ -1,8 +1,6 @@ -- Minetest 0.4 mod: bucket -- See README.txt for licensing and other information. -local LIQUID_MAX = 8 --The number of water levels when liquid_finite is enabled - minetest.register_alias("bucket", "bucket:bucket_empty") minetest.register_alias("bucket_water", "bucket:bucket_water") minetest.register_alias("bucket_acid", "bucket:bucket_acid") @@ -73,40 +71,20 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name itemstack) or itemstack end - local place_liquid = function(pos, node, source, flowing, fullness) + local place_liquid = function(pos, node, source, flowing) if check_protection(pos, user and user:get_player_name() or "", "place "..source) then return end - if math.floor(fullness/128) == 1 or - not minetest.setting_getbool("liquid_finite") then - minetest.add_node(pos, {name=source, - param2=fullness}) - return - elseif node.name == flowing then - fullness = fullness + node.param2 - elseif node.name == source then - fullness = LIQUID_MAX - end - - if fullness >= LIQUID_MAX then - minetest.add_node(pos, {name=source, - param2=LIQUID_MAX}) - else - minetest.add_node(pos, {name=flowing, - param2=fullness}) - end + minetest.add_node(pos,{name=source}) end -- Check if pointing to a buildable node - local fullness = tonumber(itemstack:get_metadata()) - if not fullness then fullness = LIQUID_MAX end - if ndef and ndef.buildable_to then -- buildable; replace the node place_liquid(pointed_thing.under, node, - source, flowing, fullness) + flowing) else -- not buildable to; place the liquid above -- check if the node above can be replaced @@ -114,7 +92,7 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name if node and minetest.registered_nodes[node.name].buildable_to then place_liquid(pointed_thing.above, node, source, - flowing, fullness) + flowing) else -- do not remove the bucket with the liquid return @@ -141,9 +119,7 @@ minetest.register_craftitem(":bucket:bucket_empty", { node = minetest.get_node(pointed_thing.under) liquiddef = bucket.liquids[node.name] if liquiddef ~= nil and liquiddef.itemname ~= nil and - (node.name == liquiddef.source or - (node.name == liquiddef.flowing and - minetest.setting_getbool("liquid_finite"))) then + node.name == liquiddef.source then if check_protection(pointed_thing.under, user:get_player_name(), "take ".. node.name) then @@ -162,13 +138,9 @@ minetest.register_craftitem(":bucket:bucket_empty", { minetest.add_node(pointed_thing.under, {name="air"}) count = count - 1 itemstack:set_count(count) - if node.name == liquiddef.source then - node.param2 = LIQUID_MAX - end - bucket_liquid = ItemStack({name = liquiddef.itemname, - metadata = tostring(node.param2)}) inv:add_item("main", bucket_liquid) - return itemstack + return ItemStack(liquiddef.itemname) + --return itemstack else minetest.chat_send_player(user:get_player_name(), "Your inventory is full.") end diff --git a/minetestforfun_game/mods/default/README.txt b/minetestforfun_game/mods/default/README.txt index 695d3b1f..c53e149e 100644 --- a/minetestforfun_game/mods/default/README.txt +++ b/minetestforfun_game/mods/default/README.txt @@ -23,6 +23,13 @@ Everything not listed in here: Copyright (C) 2010-2012 celeron55, Perttu Ahola Cisoun's WTFPL texture pack: + default_chest_front.png + default_chest_lock.png + default_chest_side.png + default_chest_top.png + default_dirt.png + default_grass.png + default_grass_side.png default_jungletree.png default_jungletree_top.png default_lava.png @@ -34,7 +41,7 @@ Cisoun's WTFPL texture pack: default_tree_top.png default_water.png -Cisoun's conifers mod (WTFPL): +Cisoun's conifere mod (WTFPL): default_pine_needles.png Originating from G4JC's Almost MC Texture Pack: @@ -64,12 +71,12 @@ VanessaE (WTFPL): default_sand.png default_sandstone_brick.png -Calinou (CC BY-SA): +Calinou (CC BY-SA 3.0): + crack_anylength.png default_brick.png default_papyrus.png default_copper_lump.png default_mineral_copper.png - default_glass_detail.png MirceaKitsune (WTFPL): character.x @@ -83,6 +90,7 @@ PilzAdam (WTFPL): default_junglewood.png default_obsidian_glass.png default_obsidian_shard.png + default_mossycobble.png default_gold_lump.png default_mineral_gold.png default_snowball.png @@ -97,7 +105,6 @@ Splizard (CC BY-SA 3.0): default_snow.png default_snow_side.png default_ice.png - default_pine_sapling.png Zeg9 (CC BY-SA 3.0): default_coal_block.png @@ -118,6 +125,7 @@ brunob.santos (CC BY-SA 4.0): BlockMen (CC BY-SA 3.0): default_stone_brick.png default_wood.png + default_cobble.png default_clay_brick.png default_tool_steelsword.png default_bronze_ingot.png @@ -131,25 +139,10 @@ BlockMen (CC BY-SA 3.0): default_book.png default_paper.png default_stick.png - default_chest_front.png - default_chest_lock.png - default_chest_side.png - default_chest_top.png bubble.png heart.png gui_*.png -Neuromancer (CC BY-SA 2.0): - default_cobble.png, based on texture by Brane praefect - default_mossycobble.png, based on texture by Brane praefect -Neuromancer (CC BY-SA 3.0): - default_dirt.png - default_furnace_*.png - -Philipbenr (CC BY-SA 3.0): - default_grass.png - default_grass_side.png - Glass breaking sounds (CC BY 3.0): 1: http://www.freesound.org/people/cmusounddesign/sounds/71947/ 2: http://www.freesound.org/people/Tomlija/sounds/97669/ diff --git a/minetestforfun_game/mods/default/crafting.lua b/minetestforfun_game/mods/default/crafting.lua index d8f233af..4d075d1b 100644 --- a/minetestforfun_game/mods/default/crafting.lua +++ b/minetestforfun_game/mods/default/crafting.lua @@ -5,6 +5,19 @@ minetest.register_craft({ recipe = {{"default:tree"},} }) +minetest.register_craft({ + output = 'default:pinewood 4', + recipe = { + {'default:pinetree'}, + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_sapling", + burntime = 10, +}) + minetest.register_craft({ output = "default:junglewood 4", recipe = {{"default:jungletree"},} diff --git a/minetestforfun_game/mods/default/craftitems.lua b/minetestforfun_game/mods/default/craftitems.lua index fcd76240..70ad25b8 100644 --- a/minetestforfun_game/mods/default/craftitems.lua +++ b/minetestforfun_game/mods/default/craftitems.lua @@ -17,14 +17,13 @@ minetest.register_craftitem("default:paper", { minetest.register_craftitem("default:book", { description = "Book", inventory_image = "default_book.png", - groups = {book=1}, + groups = {book = 1}, }) minetest.register_craftitem("default:coal_lump", { description = "Coal Lump", wield_scale = {x = 1, y = 1, z = 2}, inventory_image = "default_coal_lump.png", - groups = {coal = 1} }) minetest.register_craftitem("default:iron_lump", { diff --git a/minetestforfun_game/mods/default/functions.lua b/minetestforfun_game/mods/default/functions.lua index 806e8969..5b921e0d 100644 --- a/minetestforfun_game/mods/default/functions.lua +++ b/minetestforfun_game/mods/default/functions.lua @@ -7,20 +7,40 @@ function default.node_sound_defaults(table) table = table or {} table.footstep = table.footstep or - {name="", gain=1.0} + {name = "default_hard_footstep", gain = 0.6} + table.dig = table.dig or + {name = "default_hard_footstep", gain = 0.7} table.dug = table.dug or - {name="default_dug_node", gain=0.25} + {name = "default_hard_footstep", gain = 0.8} table.place = table.place or - {name="default_place_node_hard", gain=1.0} + {name = "default_hard_footstep", gain = 0.8} return table end function default.node_sound_stone_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_hard_footstep", gain=0.5} + {name = "default_hard_footstep", gain = 0.6} + table.dig = table.dig or + {name = "default_hard_footstep", gain = 0.7} table.dug = table.dug or - {name="default_hard_footstep", gain=1.0} + {name = "default_hard_footstep", gain = 0.8} + table.place = table.place or + {name = "default_hard_footstep", gain = 0.8} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_metal_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_metal_footstep", gain = 0.575} + table.dig = table.dig or + {name = "default_metal_footstep", gain = 0.65} + table.dug = table.dug or + {name = "default_metal_footstep", gain = 0.8} + table.place = table.place or + {name = "default_metal_footstep", gain = 0.8} default.node_sound_defaults(table) return table end @@ -28,11 +48,27 @@ end function default.node_sound_dirt_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_dirt_footstep", gain=1.0} + {name = "default_dirt_footstep", gain = 0.8} + table.dig = table.dig or + {name = "default_dirt_footstep", gain = 0.9} table.dug = table.dug or - {name="default_dirt_footstep", gain=1.5} + {name = "default_dirt_footstep", gain = 1.0} table.place = table.place or - {name="default_place_node", gain=1.0} + {name = "default_dirt_footstep", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_gravel_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_dirt_footstep", gain = 0.8} + table.dig = table.dig or + {name = "default_dirt_footstep", gain = 0.9} + table.dug = table.dug or + {name = "default_dirt_footstep", gain = 1.0} + table.place = table.place or + {name = "default_dirt_footstep", gain = 1.0} default.node_sound_defaults(table) return table end @@ -40,11 +76,13 @@ end function default.node_sound_sand_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_sand_footstep", gain=0.2} + {name = "default_sand_footstep", gain = 0.6} + table.dig = table.dig or + {name = "default_sand_footstep", gain = 0.7} table.dug = table.dug or - {name="default_sand_footstep", gain=0.4} + {name = "default_sand_footstep", gain = 0.8} table.place = table.place or - {name="default_place_node", gain=1.0} + {name = "default_sand_footstep", gain = 0.8} default.node_sound_defaults(table) return table end @@ -52,9 +90,13 @@ end function default.node_sound_wood_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_wood_footstep", gain=0.5} + {name = "default_wood_footstep", gain = 0.625} + table.dig = table.dig or + {name = "default_wood_footstep", gain = 0.7} table.dug = table.dug or - {name="default_wood_footstep", gain=1.0} + {name = "default_wood_footstep", gain = 0.8} + table.place = table.place or + {name = "default_wood_footstep", gain = 0.8} default.node_sound_defaults(table) return table end @@ -62,13 +104,13 @@ end function default.node_sound_leaves_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_grass_footstep", gain=0.35} - table.dug = table.dug or - {name="default_grass_footstep", gain=0.7} + {name = "default_grass_footstep", gain = 0.6} table.dig = table.dig or - {name="default_dig_crumbly", gain=0.4} + {name = "default_grass_footstep", gain = 0.7} + table.dug = table.dug or + {name = "default_snow_footstep", gain = 0.8} table.place = table.place or - {name="default_place_node", gain=1.0} + {name = "default_snow_footstep", gain = 0.8} default.node_sound_defaults(table) return table end @@ -76,27 +118,28 @@ end function default.node_sound_glass_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_glass_footstep", gain=0.5} + {name = "default_hard_footstep", gain = 0.55} + table.dig = table.dig or + {name = "default_hard_footstep", gain = 0.65} table.dug = table.dug or - {name="default_break_glass", gain=1.0} + {name = "default_break_glass", gain = 0.8} + table.place = table.place or + {name = "default_hard_footstep", gain = 0.75} default.node_sound_defaults(table) return table end --- --- Legacy --- - +-- Legacy: function default.spawn_falling_node(p, nodename) spawn_falling_node(p, nodename) end --- Horrible crap to support old code --- Don't use this and never do what this does, it's completely wrong! --- (More specifically, the client and the C++ code doesn't get the group) +-- Horrible crap to support old code, +-- don't use this and never do what this does, it's completely wrong! +-- (more specifically, the client and the C++ code doesn't get the group). function default.register_falling_node(nodename, texture) minetest.log("error", debug.traceback()) - minetest.log('error', "WARNING: default.register_falling_node is deprecated") + minetest.log("error", "WARNING: default.register_falling_node is deprecated.") if minetest.registered_nodes[nodename] then minetest.registered_nodes[nodename].groups.falling_node = 1 end @@ -108,37 +151,89 @@ end -- Global environment step function function on_step(dtime) - -- print("on_step") + -- print("on_step, " .. p .. ", " .. node) end minetest.register_globalstep(on_step) function on_placenode(p, node) - --print("on_placenode") + -- print("on_placenode, " .. p .. ", " .. node) end minetest.register_on_placenode(on_placenode) function on_dignode(p, node) - --print("on_dignode") + -- print("on_dignode, " .. p .. ", " .. node) end minetest.register_on_dignode(on_dignode) function on_punchnode(p, node) + -- print("on_punchnode, " .. p .. ", " .. node) end minetest.register_on_punchnode(on_punchnode) +-- +-- Lava cooling +-- --- --- Lavacooling --- +local function cool_wf_vm(pos, node1, node2) + local t1 = os.clock() + local minp = vector.subtract(pos, 10) + local maxp = vector.add(pos, 10) + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(minp, maxp) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + local nodes = manip:get_data() + + local stone = minetest.get_content_id(node2) + local lava = minetest.get_content_id(node1) + + for i in area:iterp(minp, maxp) do + local p = area:position(i) + if nodes[i] == lava and minetest.find_node_near(p, 1, {"group:water"}) then + nodes[i] = stone + end + end + + manip:set_data(nodes) + manip:write_to_map() + -- minetest.log("action", "Lava cooling happened at (" .. pos.x .. "," .. pos.y .. "," .. pos.z .. ").") + local t1 = os.clock() + manip:update_map() + -- minetest.log("action", string.format("Lava cooling updated the map after ca. %.2fs.", os.clock() - t1)) +end + +local del1 = 0 +local count = 0 default.cool_lava_source = function(pos) - minetest.set_node(pos, {name="default:obsidian"}) - minetest.sound_play("default_cool_lava", {pos = pos, gain = 0.25}) + local del2 = tonumber(os.clock()) + if del2-del1 < 0.1 + and count > 1 then + cool_wf_vm(pos, "default:lava_source", "default:obsidian_cooled") + count = 0 + else + minetest.set_node(pos, {name = "default:obsidian_cooled"}) + minetest.sound_play("default_cool_lava", {pos = pos, gain = 0.2}) + if del2-del1 < 0.1 then + count = count + 1 + end + end + del1 = del2 end default.cool_lava_flowing = function(pos) - minetest.set_node(pos, {name="default:stone"}) - minetest.sound_play("default_cool_lava", {pos = pos, gain = 0.25}) + local del2 = tonumber(os.clock()) + if del2-del1 < 0.1 + and count > 1 then + cool_wf_vm(pos, "default:lava_flowing", "default:cobble_cooled") + count = 0 + else + minetest.set_node(pos, {name = "default:cobble_cooled"}) + minetest.sound_play("default_cool_lava", {pos = pos, gain = 0.2}) + if del2-del1 < 0.1 then + count = count + 1 + end + end + del1 = del2 end minetest.register_abm({ @@ -151,6 +246,12 @@ minetest.register_abm({ end, }) +default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) + local node = minetest.get_node(pos) + node.param2 = 1 + minetest.set_node(pos, node) +end + minetest.register_abm({ nodenames = {"default:lava_source"}, neighbors = {"group:water"}, @@ -169,20 +270,20 @@ minetest.register_abm({ nodenames = {"default:cactus"}, neighbors = {"group:sand"}, interval = 30, - chance = 25, + chance = 50, action = function(pos, node) - pos.y = pos.y-1 + pos.y = pos.y - 1 local name = minetest.get_node(pos).name if minetest.get_item_group(name, "sand") ~= 0 then - pos.y = pos.y+1 + pos.y = pos.y + 1 local height = 0 while minetest.get_node(pos).name == "default:cactus" and height < 4 do - height = height+1 - pos.y = pos.y+1 + height = height + 1 + pos.y = pos.y + 1 end if height < 4 then if minetest.get_node(pos).name == "air" then - minetest.set_node(pos, {name="default:cactus"}) + minetest.set_node(pos, {name = "default:cactus"}) end end end @@ -191,35 +292,35 @@ minetest.register_abm({ minetest.register_abm({ nodenames = {"default:papyrus"}, - neighbors = {"default:dirt", "default:dirt_with_grass"}, + neighbors = {"default:dirt", "default:dirt_with_grass", "default:dirt_with_snow", "default:sand", "default:desert_sand"}, interval = 30, - chance = 25, + chance = 30, action = function(pos, node) - pos.y = pos.y-1 + pos.y = pos.y - 1 local name = minetest.get_node(pos).name - if name == "default:dirt" or name == "default:dirt_with_grass" then + if name == "default:dirt" + or name == "default:dirt_with_grass" + or name == "default:dirt_with_snow" + or name == "default:sand" + or name == "default:desert_sand" then if minetest.find_node_near(pos, 3, {"group:water"}) == nil then return end - pos.y = pos.y+1 + pos.y = pos.y + 1 local height = 0 while minetest.get_node(pos).name == "default:papyrus" and height < 4 do - height = height+1 - pos.y = pos.y+1 + height = height + 1 + pos.y = pos.y + 1 end if height < 4 then if minetest.get_node(pos).name == "air" then - minetest.set_node(pos, {name="default:papyrus"}) + minetest.set_node(pos, {name = "default:papyrus"}) end end end end, }) --- --- dig upwards --- - function default.dig_up(pos, node, digger) if digger == nil then return end local np = {x = pos.x, y = pos.y + 1, z = pos.z} @@ -229,9 +330,7 @@ function default.dig_up(pos, node, digger) end end --- --- Leafdecay --- +if minetest.setting_getbool("leaf_decay") ~= false then -- “If not defined or set to true then” default.leafdecay_trunk_cache = {} default.leafdecay_enable_cache = true @@ -244,30 +343,23 @@ minetest.register_globalstep(function(dtime) math.floor(dtime * finds_per_second) end) -default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) - local node = minetest.get_node(pos) - node.param2 = 1 - minetest.set_node(pos, node) -end - minetest.register_abm({ nodenames = {"group:leafdecay"}, neighbors = {"air", "group:liquid"}, - -- A low interval and a high inverse chance spreads the load - interval = 1, + interval = 1, -- A low interval and a high inverse chance spreads the load. chance = 2, action = function(p0, node, _, _) - --print("leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")") + -- print("leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")") local do_preserve = false local d = minetest.registered_nodes[node.name].groups.leafdecay if not d or d == 0 then - --print("not groups.leafdecay") + -- print("not groups.leafdecay") return end local n0 = minetest.get_node(p0) if n0.param2 ~= 0 then - --print("param2 ~= 0") + -- print("param2 ~= 0") return end local p0_hash = nil @@ -277,13 +369,13 @@ minetest.register_abm({ if trunkp then local n = minetest.get_node(trunkp) local reg = minetest.registered_nodes[n.name] - -- Assume ignore is a trunk, to make the thing work at the border of the active area + -- Assume ignore is a trunk, to make the thing work at the border of the active area: if n.name == "ignore" or (reg and reg.groups.tree and reg.groups.tree ~= 0) then - --print("cached trunk still exists") + -- print("Cached trunk still exists.") return end - --print("cached trunk is invalid") - -- Cache is invalid + -- print("Cached trunk is invalid.") + -- Cache is invalid: table.remove(default.leafdecay_trunk_cache, p0_hash) end end @@ -292,34 +384,30 @@ minetest.register_abm({ end default.leafdecay_trunk_find_allow_accumulator = default.leafdecay_trunk_find_allow_accumulator - 1 - -- Assume ignore is a trunk, to make the thing work at the border of the active area + -- Assume ignore is a trunk, to make the thing work at the border of the active area: local p1 = minetest.find_node_near(p0, d, {"ignore", "group:tree"}) if p1 then do_preserve = true if default.leafdecay_enable_cache then - --print("caching trunk") - -- Cache the trunk + -- print("Caching trunk.") + -- Cache the trunk: default.leafdecay_trunk_cache[p0_hash] = p1 end end if not do_preserve then - -- Drop stuff other than the node itself - local itemstacks = minetest.get_node_drops(n0.name) + -- Drop stuff other than the node itself: + itemstacks = minetest.get_node_drops(n0.name) for _, itemname in ipairs(itemstacks) do - if minetest.get_item_group(n0.name, "leafdecay_drop") ~= 0 or - itemname ~= n0.name then - local p_drop = { - x = p0.x - 0.5 + math.random(), - y = p0.y - 0.5 + math.random(), - z = p0.z - 0.5 + math.random(), - } - minetest.add_item(p_drop, itemname) + if minetest.get_item_group(n0.name, "leafdecay_drop") ~= 0 + or itemname ~= n0.name then + minetest.add_item(p0, itemname) end end - -- Remove node minetest.remove_node(p0) + -- minetest.log("action", n0.name .. " decayed at " .. minetest.pos_to_string(p0) .. ".") nodeupdate(p0) end end }) +end -- Ends: if minetest.setting_getbool("leaf_decay") ~= false diff --git a/minetestforfun_game/mods/default/furnace.lua b/minetestforfun_game/mods/default/furnace.lua index d49d8efe..1bb61b33 100644 --- a/minetestforfun_game/mods/default/furnace.lua +++ b/minetestforfun_game/mods/default/furnace.lua @@ -1,14 +1,15 @@ --- --- Formspecs --- + -- + -- Formspecs + -- local function active_formspec(fuel_percent, item_percent) - local formspec = + local formspec = "size[8,8.5]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. + --gui_slots.. "list[current_name;src;2.75,0.5;1,1;]".. "list[current_name;fuel;2.75,2.5;1,1;]".. "image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. @@ -98,9 +99,9 @@ minetest.register_node("default:furnace", { legacy_facedir_simple = true, is_ground_content = false, sounds = default.node_sound_stone_defaults(), - + can_dig = can_dig, - + allow_metadata_inventory_put = allow_metadata_inventory_put, allow_metadata_inventory_move = allow_metadata_inventory_move, allow_metadata_inventory_take = allow_metadata_inventory_take, @@ -133,7 +134,7 @@ minetest.register_node("default:furnace_active", { can_dig = can_dig, - aallow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_put = allow_metadata_inventory_put, allow_metadata_inventory_move = allow_metadata_inventory_move, allow_metadata_inventory_take = allow_metadata_inventory_take, }) @@ -163,15 +164,15 @@ minetest.register_abm({ local fuel_time = meta:get_float("fuel_time") or 0 local src_time = meta:get_float("src_time") or 0 local fuel_totaltime = meta:get_float("fuel_totaltime") or 0 - + -- -- Inizialize inventory -- local inv = meta:get_inventory() for listname, size in pairs({ - src = 1, - fuel = 1, - dst = 4, + src = 1, + fuel = 1, + dst = 4, }) do if inv:get_size(listname) ~= size then inv:set_size(listname, size) @@ -188,16 +189,16 @@ minetest.register_abm({ -- Check if we have cookable content local cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) local cookable = true - + if cooked.time == 0 then cookable = false end - + -- Check if we have enough fuel to burn if fuel_time < fuel_totaltime then -- The furnace is currently active and has enough fuel fuel_time = fuel_time + 1 - + -- If there is a cookable item then check if it is ready yet if cookable then src_time = src_time + 1 @@ -215,7 +216,7 @@ minetest.register_abm({ if cookable then -- We need to get new fuel local fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) - + if fuel.time == 0 then -- No valid fuel in fuel list fuel_totaltime = 0 @@ -224,10 +225,10 @@ minetest.register_abm({ else -- Take fuel from fuel list inv:set_stack("fuel", 1, afterfuel.items[1]) - + fuel_totaltime = fuel.time fuel_time = 0 - + end else -- We don't need to get new fuel since there is no cookable item @@ -236,7 +237,7 @@ minetest.register_abm({ src_time = 0 end end - + -- -- Update formspec, infotext and node -- @@ -244,7 +245,7 @@ minetest.register_abm({ local item_state = "" local item_percent = 0 if cookable then - item_percent = math.floor(src_time / cooked.time * 100) + item_percent = math.floor(src_time / cooked.time * 100) item_state = item_percent .. "%" else if srclist[1]:is_empty() then @@ -253,7 +254,7 @@ minetest.register_abm({ item_state = "Not cookable" end end - + local fuel_state = "Empty" local active = "inactive " if fuel_time <= fuel_totaltime and fuel_totaltime ~= 0 then @@ -268,9 +269,9 @@ minetest.register_abm({ end swap_node(pos, "default:furnace") end - - local infotext = "Furnace " .. active .. "(Item: " .. item_state .. "; Fuel: " .. fuel_state .. ")" - + + local infotext = "Furnace " .. active .. "(Item: " .. item_state .. "; Fuel: " .. fuel_state .. ")" + -- -- Set meta values -- diff --git a/minetestforfun_game/mods/default/init.lua b/minetestforfun_game/mods/default/init.lua index 792b367f..2f7218de 100644 --- a/minetestforfun_game/mods/default/init.lua +++ b/minetestforfun_game/mods/default/init.lua @@ -1,45 +1,42 @@ -- Minetest 0.4 mod: default -- See README.txt for licensing and other information. --- The API documentation in here was moved into doc/lua_api.txt +default = {} -- Definitions made by this mod are usable by all mods. + +-- The API documentation in here was moved into doc/lua_api.txt. WATER_ALPHA = 160 WATER_VISC = 1 LAVA_VISC = 3 -- Slower movement in lava. LIGHT_MAX = 14 -- 15 is reserved for sunlight. --- Definitions made by this mod that other mods can use too -default = {} - --- GUI related stuff +-- GUI related stuff: default.gui_bg = "bgcolor[#080808BB;true]" default.gui_bg_img = "background[5,5;1,1;gui_formbg.png;true]" default.gui_slots = "listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" function default.get_hotbar_bg(x,y) local out = "" - for i=0,7,1 do - out = out .."image["..x+i..","..y..";1,1;gui_hb_bg.png]" + for i= 0, 7, 1 do + out = out .."image[" .. x + i .. "," .. y .. ";1,1;gui_hb_bg.png]" end return out end -default.gui_suvival_form = "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. - default.gui_slots.. - "list[current_player;main;0,4.25;8,1;]".. - "list[current_player;main;0,5.5;8,3;8]".. - "list[current_player;craft;1.75,0.5;3,3;]".. - "list[current_player;craftpreview;5.75,1.5;1,1;]".. - "image[4.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]".. - default.get_hotbar_bg(0,4.25) +gui_suvival_form = "size[8,8.5]".. + default.gui_slots .. + "list[current_player;main; 0, 4.25; 8, 4; ]" .. + "list[current_player;craft; 1.75, 0.5; 3, 3; ]" .. + "list[current_player;craftpreview; 5.75, 1.5; 1, 1; ]" .. + default.get_hotbar_bg(0, 4.25) .. + default.get_hotbar_bg(0, 5.25) --- Load files +-- Load files: dofile(minetest.get_modpath("default").."/functions.lua") +dofile(minetest.get_modpath("default").."/commands.lua") dofile(minetest.get_modpath("default").."/nodes.lua") -dofile(minetest.get_modpath("default").."/furnace.lua") dofile(minetest.get_modpath("default").."/tools.lua") +dofile(minetest.get_modpath("default").."/furnace.lua") dofile(minetest.get_modpath("default").."/craftitems.lua") dofile(minetest.get_modpath("default").."/crafting.lua") dofile(minetest.get_modpath("default").."/mapgen.lua") diff --git a/minetestforfun_game/mods/default/models/character.png b/minetestforfun_game/mods/default/models/character.png index 05021781e03fbb71cb309d5ac233c6c90f332fda..321f9fb2b2b0b31a8087e8c781cfee2b1fa76c79 100644 GIT binary patch delta 1844 zcmV-42g~@v6}S$N8Gi!+005Okj6ciK|6bKd+4H_5;8W|WH8W+I79UKxJ92y=S z8y_AVARQ7Q9~~hc5g{KHAs`+iAsQng5hEfVBqACmA`vAc8Gj`s9wj6nB_tsxB_k&z z5ho@jC?_Q;B@!tpCMqTrDk&!`ClxCyC@v}$FDn)>HaR#rI5<8*J3Bi&LPkA3JwHD` zKtMo1M@vCSOhQ6JMo&{mM@L6cR7g=(Nm5oyQ&&q=SWHYzOjTJ;R$5M1TTfVAP+472 zT3=CHU{YLRQ-57zR9<6MUu0HbWmjQlSYl^cV`y4rXScYSMker$PvZF+!idx39! zf^dCfYzsh*Qb8hsDjt2hS;fu*s6rss)g99huEu!*{p}!u8G>NjN7k@ z+pvw>v5woZkK3`3+p&?`vXR@elH9S6+_I3|vXb1hk=(PA+_RJ1w3FPll-;wE-L#b5 zw3Xepm4Dr}mfg0N-nN(Cx0l|xnBKUV-?*9IxSHR&n%}vb-@2RNx}4yJgWOTIIA5qYFWlB1W!66%|kxnb9FSs)jOzNKL3&$qZQk z!GCOGBc1Jc_@XjzXmHg&UnE>n21qR?tyG>xYLQ4}MQK0+*9f0yK`p^g6Rs#$B9|Pm z5o$VG@Fv7k8D-jvT0})wBv>81@mwQZaiDNP#Y7s5<2ziVD$vmdt`TZtod$H*V(6f_ zMiW&aYOayKuRx;{VnnIr`+)$7*`WdwZhuyO(FC1AK$G1KuxOg3qV$*yaV{!xgenoh z%@l}>Rdhr}tgzOmszT1zBq6x7rXxugX|z~_1qmby(OCICKLVE$R1#evvJzGBYl=id zYWDahF*S+PSy}||S+Pa}{HFYIOv?}9L+tkwtA3UJfPj*Kb~wX6Z-s376#fDI^?y?D zbJsZ11gN~|pg#WkZ&MDlKRo1*@4i34Ei+QAu2C7x3qHkNa~!LlZvu8CY%b799hx*}tnOj3yL_ zioYxYvp$;-nEQ3-0guvQ$%;lj;(v9DWI4_#X~;3}^0gW3pF(t8`pLojm6DG(Cxw;V z-b+5>(tA&D+VAe&-}@>1ToG1An~(&pXIy%jbjuLisaJzkA5&4QZfwlBMp(%~s>uK7 zQa58UPbzUr-I&j)&5VtE_xJAeIl@W{LLP#da%pFDDoO{}vhy+`6}62ElYerJbR)$G z=ud<01ebopx2xxivdigYtxBh6y_l?j$5gjp#o5|Fn@48vFX8X+=t=S?E(s237j_z) zq*iQ}6>abT`fdK^b$hx|cJ*Mi?akum$);|_jq|ld?t2#lp(dM$Z1s|41nrKScV1K% ztzpxw|Cw8-lSS*a^>pKOV}G8U@ygD2s$0((Hs`&Q%@=p5N!ZkF{;Q*^97((3?!O*< z_7;yG9DVD!yXY@A{O);wY{r8%@ozrshc_0Qdy$%Wy%ltNmaHldO9&L~E z!*Z@)b?0)@O@b|Q)LP}EYAkX^O iZmC5klf;LiQ2RHy1z#|{W8SU+0000wqc3@ literal 2754 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 is the model filename such as "character.x", "foo.b3d", etc. +^ See Model Definition below for format of . + +default.registered_player_models[name] +^ See Model Definition below for format. + +default.player_set_model(player, model_name) +^ is a PlayerRef. +^ is a model registered with player_register_model. + +default.player_set_animation(player, anim_name [, speed]) +^ is a PlayerRef. +^ is the name of the animation. +^ is in frames per second. If nil, default from the model is used + +default.player_set_textures(player, textures) +^ is a PlayerRef. +^ is an array of textures +^ If is nil, the default textures from the model def are used + +default.player_get_animation(player) +^ is a PlayerRef. +^ Returns a table containing fields "model", "textures" and "animation". +^ Any of the fields of the returned table may be nil. + +Model Definition +---------------- + +model_def = { + animation_speed = 30, -- Default animation speed, in FPS. + textures = {"character.png", }, -- Default array of textures. + visual_size = {x = 1, y = 1,}, -- Used to scale the model. + animations = { + -- = { x =, y =, }, + foo = { x = 0, y = 19, }, + bar = { x = 20, y =39, }, + -- ... + }, +} + +]] + -- Player animation blending -- Note: This is currently broken due to a bug in Irrlicht, leave at 0 local animation_blend = 0 @@ -19,14 +68,12 @@ default.player_register_model("character.x", { animation_speed = 35, textures = {"character.png", }, animations = { - -- Standard animations. - stand = { x= 0, y= 79, }, - lay = { x=162, y=166, }, - walk = { x=168, y=187, }, - mine = { x=189, y=198, }, - walk_mine = { x=200, y=219, }, - -- Extra animations (not currently used by the game). - sit = { x= 81, y=160, }, + stand = {x = 0, y = 40}, + lay = {x = 162, y = 166}, + walk = {x = 168, y = 187}, + mine = {x = 189, y = 198}, + walk_mine = {x = 200, y = 219}, + sit = {x = 81, y = 160}, }, }) @@ -46,7 +93,7 @@ function default.player_get_animation(player) } end --- Called when a player's appearance needs to be updated +-- Called when a player"s appearance needs to be updated function default.player_set_model(player, model_name) local name = player:get_player_name() local model = models[model_name] @@ -58,7 +105,7 @@ function default.player_set_model(player, model_name) mesh = model_name, textures = player_textures[name] or model.textures, visual = "mesh", - visual_size = model.visual_size or {x=1, y=1}, + visual_size = model.visual_size or {x = 1, y = 1}, }) default.player_set_animation(player, "stand") else @@ -94,10 +141,10 @@ end minetest.register_on_joinplayer(function(player) default.player_attached[player:get_player_name()] = false default.player_set_model(player, "character.x") - player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 35) + player:set_local_animation({x = 0, y = 40}, {x = 168, y = 187}, {x = 189, y = 198}, {x = 200, y = 219}, 35) -- set GUI - if minetest.setting_getbool("creative_mode") then + if minetest.setting_getbool("creative_mode") then -- creative.set_creative_formspec(player, 0, 1) else player:set_inventory_formspec(gui_suvival_form) @@ -106,6 +153,7 @@ minetest.register_on_joinplayer(function(player) player:hud_set_hotbar_image("gui_hotbar.png") player:hud_set_hotbar_selected_image("gui_hotbar_selected.png") end) +end) minetest.register_on_leaveplayer(function(player) local name = player:get_player_name() @@ -116,7 +164,6 @@ end) -- Localize for better performance. local player_set_animation = default.player_set_animation -local player_attached = default.player_attached -- Check each player and apply animations minetest.register_globalstep(function(dtime) @@ -124,7 +171,7 @@ minetest.register_globalstep(function(dtime) local name = player:get_player_name() local model_name = player_model[name] local model = model_name and models[model_name] - if model and not player_attached[name] then + if model and not default.player_attached[name] then local controls = player:get_player_control() local walking = false local animation_speed_mod = model.animation_speed or 35 @@ -136,13 +183,13 @@ minetest.register_globalstep(function(dtime) -- Determine if the player is sneaking, and reduce animation speed if so if controls.sneak then - animation_speed_mod = animation_speed_mod / 2 + animation_speed_mod = animation_speed_mod * 0.5 end -- Apply animations based on what the player is doing if player:get_hp() == 0 then player_set_animation(player, "lay", animation_speed_mod) - player:set_eye_offset({x = 0, y = -10, z = 0}, {x = 0 + player:set_eye_offset({x = 0, y = -10, z = 0}, {x = 0, y = -10, z = 0}) elseif walking then if player_sneak[name] ~= controls.sneak then player_anim[name] = nil @@ -154,7 +201,7 @@ minetest.register_globalstep(function(dtime) player_set_animation(player, "walk", animation_speed_mod) end elseif controls.LMB or controls.RMB then - player_set_animation(player, "mine", animation_spee + player_set_animation(player, "mine", animation_speed_mod) else player_set_animation(player, "stand", animation_speed_mod * 0.4) end diff --git a/minetestforfun_game/mods/default/textures/default_grass.png b/minetestforfun_game/mods/default/textures/default_grass.png index 8cd9e1fe5080500127311e2de4d2a2b56cdace48..3a82a0ebad29a1e78d5455bb31685a3e2c3d4323 100644 GIT binary patch delta 679 zcmV;Y0$Baq2DAl`8Gix*005AYXf^-<0((hBK~yNu1;N>J+cp#cP%IY&0TQGnO12fp zwbMG=WZH*5ncsk0;YC@W%2FyRz<44vCG zPH|?Z3HPD6%FVv*bPs|P%Gm3x#p+dhto?kY?4fgQSGj4%V1H-3{Y!gsnVD_VcB9Hg zWITvP+G*E~lSt@c*A}OFAozY$wPskYm6bsc6UaF9?LpfhfnHuKqu$Vmjvtxu26zaMYfPqu8`M!5Rz4MDz zdh%{bFzOKUIM5Nz-V~8yj^Va(06=4YdtcFCKQ8j~SzETI8J+9br@85z55zV-cb+p+ zKGY+|SML@tcjbrQUlUabchG7n5uin(p6~Xi>In|(1%FTG(sVvOk!S1d;ik$mSw3sR zISekOB2GAD7|pMWYTvPOD$Tfgtl~T=R;jTAWlTsOd{5thUdxORW55_~jf*fw7%ehs zItxJbrtSh-B}{7%DBv_Eew;S{?!4{Gmo`IqyKNw#9-*%734`K#mMxRpr(=;sjh)IT z4Xb5}0)NuAef#J6{oh+DS)#aUtjeW3=&9#~*x#;Cn&)~LJ;sE-`J*75oL|guzWs~^ zhy=7Ai?fsh;3P&NtWK1!jEEx+&=W*jGmIm;`>*n3vTmRNl;OS`+sYv05*2$Nq!Nu8 zs$;Ka0$>^?#rZt45e^Zd6hy}AvPl(3D5yLgtswdFV>e&tQjq#*^FR0bSsJlFqZj}H N002ovPDHLkV1f`FM1=qV delta 847 zcmV-V1F-zG1=|LY8Gi-<001BJ|6u?C010qNS#tmY3labT3lag+-G2N400Rw4L_t(| zoHdhKQ{o5|M$^?G0s<+PK%fM5ruzlEa6x2E2%AWd9fE`qKoIR2|NrBe2c{oy-KtaP zyLCSy(>oPhLnJ>wqq+$5(03t} z4Uz807576AH9JOiDN(m&3R6ENL!>wh@T==2JNBVj62+;XiXqb4CV2V0Lg@Yei@TwR z&f$XgK83oBP_-n|x`UhkDMdr1x{A{IxT0tTXl)ZTH*xy^{7uCW5z@MYk|9!G%Vc^k zv{e*s6{Yodj(=)N)a)1)GtA?}N6n5g{Q8Nul*o^~)GP_1^>$8LcW~EtksF_(ni0C6 zSCn3ZJRdHpm|+UD0Odu9@;pd&89{jsaocs!Sjz}^12>ILoJ`L}bDN;OPjTIKQd`Tk zc1aX7Ld}lx$F#Lg(0)r&ocbxv0tkhvpG@zR+rFDj&woXJ;^T4RBi(V3pZZZPiPkQ8 zG%!TUhRA*IgwElT;nz=uU;1|{ix7$#Ci8NF^1pIpn>d089uzae!_Y%>6Q{A3DNg<5 zh91;K2q8c9(cC5|zXo~QB`F#KDrT5W@04`MLG$gL$MG4O9iuSyQ=A28tYs84Om65w z&{omoFn{t=U&}N$ak3*X`sWqx_Y|5PqqR#?vttatevs|EDH;JvMgVOo9RVdnq`6HT z7jqHSlE@C+D9Z?{CDB;N=^QS2+9j#mGRkX++|WaNmqh3sE-B4}wD&10i_q~N%Lt`; zkh|Uqsu|(={etp5$nC(*{lLw&?xg#1N!^YiRDb3ogMWX}+{CHdF=}><#x_B96{R=} zP+dwCrhb~6IM4eObvuS;NvLL+@?1nv%`nO$L~-ipapdLh#YuG;p}kL$)*Wb;#KXW% zVdCRjccLu9G}bcry%V1IDTF`GtF5A_W|;i=jKajn?TeG=eTv8N8P#QkvLSNYbsuUm8Sy;ANWtpinJjOaE<#GrkhVR_)0jHrn3fn%p^}H=jXezr z5fCZ-DB$zm7AX-|AEu_<6|DYyCWCJ3_r^T_v%|A&dJNAm1@noAvMr&uU(z*!izOtB%L$Wr6CVHEVDtd#+Bmku_}!Sp z-GR35X{#DP@bE_=%ljSH^^Y^6^AYJjBTqWYvSKkGk$>ei4U#gc&{d0LOLh+@Iw5)c zL(J21&xfBbk>SLpI;4cL2NuL}$kXybeyWhdu$XB4u}4^B)h1lvu5GSC1;)?nE- zudYW7r#{QCCtmpuN!hXcmZE0U0AUR2spR`#&iV592G3Xcp(al%hC`R~kkVBHEKBhI zdPcH7(RM9D2(0%%&yd>U;&RO0A8TCK!u4&^q&S9ZD(GK++T~*)fN_#t$9prpFspGi%CR5RCt{2jLl9HVE{!B z228|+n7D(|Z|0ja)P)NTk&S|pt?OoZ0o}N8 zaX0tedk8Y4Xy~Xlb=AH0b#UeD!--LA=Bab(sdiLSGk4Vf?0+fB9qo>cKAsvS6RUdP zh;VGwyQ!*?xk}GAwD-xXGv823K~xwS1;K?v6#)PMu+jMlX^9C1W?RS#N93y3 z`=oq+=YPoa_TRb5r5wUc|2h(AT#(qtEBk5{27F(wNBUYf$DtZi$oru`g>VCY21x{^ zb=Vp&I0Iui|KG($D-v~Hi!(4-92}l{c$D1qCcO7sZ1PtnFin2tfdYkpUQXgk6Y)-} p46!AA6BJwV=F8B`80}@zpAuyzMZ8f0e*gdg00>D%PDHLkV1iFTwoL#4 delta 177 zcmbQudXRB~L_G^L0|Ud`yN`l^6n}tEh%1m*G?L&Gx?Fnm3uMpY(A)o1v~{ZBa2#j)f(Y`AK7Nz-q-^o>SQ_ a{bbxK$zMC`TjxxmT@0SCelF{r5}E+3Ogs(% diff --git a/minetestforfun_game/mods/default/trees.lua b/minetestforfun_game/mods/default/trees.lua index 5752fe0d..b994cc1f 100644 --- a/minetestforfun_game/mods/default/trees.lua +++ b/minetestforfun_game/mods/default/trees.lua @@ -180,4 +180,3 @@ function default.grow_jungletree(pos, bad) vm:write_to_map() vm:update_map() end - diff --git a/minetestforfun_game/mods/fire/init.lua b/minetestforfun_game/mods/fire/init.lua index ef9c891c..271bb530 100644 --- a/minetestforfun_game/mods/fire/init.lua +++ b/minetestforfun_game/mods/fire/init.lua @@ -11,7 +11,7 @@ minetest.register_node("fire:basic_flame", { }}, inventory_image = "fire_basic_flame.png", light_source = 14, - groups = {igniter=2,dig_immediate=3,hot=3}, + groups = {igniter=2,dig_immediate=3}, drop = '', walkable = false, buildable_to = true, diff --git a/minetestforfun_game/mods/flowers/init.lua b/minetestforfun_game/mods/flowers/init.lua index 86d3ade6..6baae4c8 100644 --- a/minetestforfun_game/mods/flowers/init.lua +++ b/minetestforfun_game/mods/flowers/init.lua @@ -1,6 +1,9 @@ -- Minetest 0.4 mod: default -- See README.txt for licensing and other information. +-- Namespace for functions +flowers = {} + -- Map Generation dofile(minetest.get_modpath("flowers").."/mapgen.lua") @@ -18,16 +21,15 @@ minetest.register_node("flowers:dandelion_white", { tiles = { "flowers_dandelion_white.png" }, inventory_image = "flowers_dandelion_white.png", wield_image = "flowers_dandelion_white.png", - is_ground_content = true, sunlight_propagates = true, paramtype = "light", walkable = false, buildable_to = true, - groups = {snappy = 3, flammable = 2, flower = 1, flora = 1, attached_node = 1, color_white = 1}, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_white=1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", - fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + fixed = { -0.5, -0.5, -0.5, 0.5, -0.2, 0.5 }, }, }) @@ -37,16 +39,15 @@ minetest.register_node("flowers:dandelion_yellow", { tiles = { "flowers_dandelion_yellow.png" }, inventory_image = "flowers_dandelion_yellow.png", wield_image = "flowers_dandelion_yellow.png", - is_ground_content = true, sunlight_propagates = true, paramtype = "light", walkable = false, buildable_to = true, - groups = {snappy = 3, flammable = 2, flower = 1, flora = 1, attached_node = 1, color_yellow = 1}, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_yellow=1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", - fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, }, }) @@ -56,16 +57,15 @@ minetest.register_node("flowers:geranium", { tiles = { "flowers_geranium.png" }, inventory_image = "flowers_geranium.png", wield_image = "flowers_geranium.png", - is_ground_content = true, sunlight_propagates = true, paramtype = "light", walkable = false, buildable_to = true, - groups = {snappy = 3, flammable = 2, flower = 1, flora = 1, attached_node = 1, color_blue = 1}, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_blue=1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", - fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, }, }) @@ -75,16 +75,15 @@ minetest.register_node("flowers:rose", { tiles = { "flowers_rose.png" }, inventory_image = "flowers_rose.png", wield_image = "flowers_rose.png", - is_ground_content = true, sunlight_propagates = true, paramtype = "light", walkable = false, buildable_to = true, - groups = {snappy = 3, flammable = 2, flower = 1, flora = 1, attached_node = 1, color_red = 1}, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_red=1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", - fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + fixed = { -0.15, -0.5, -0.15, 0.15, 0.3, 0.15 }, }, }) @@ -94,16 +93,15 @@ minetest.register_node("flowers:tulip", { tiles = { "flowers_tulip.png" }, inventory_image = "flowers_tulip.png", wield_image = "flowers_tulip.png", - is_ground_content = true, sunlight_propagates = true, paramtype = "light", walkable = false, buildable_to = true, - groups = {snappy = 3, flammable = 2, flower = 1, flora = 1, attached_node = 1, color_orange = 1}, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_orange=1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", - fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, }, }) @@ -113,65 +111,48 @@ minetest.register_node("flowers:viola", { tiles = { "flowers_viola.png" }, inventory_image = "flowers_viola.png", wield_image = "flowers_viola.png", - is_ground_content = true, sunlight_propagates = true, paramtype = "light", walkable = false, buildable_to = true, - groups = {snappy = 3, flammable = 2, flower = 1, flora = 1, attached_node = 1, color_violet = 1}, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_violet=1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", - fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, - }, -}) - -minetest.register_node("flowers:lily_pad", { - description = "Lily Pad", - drawtype = "nodebox", - tiles = { "flowers_lily_pad.png" }, - inventory_image = "flowers_lily_pad.png", - wield_image = "flowers_lily_pad.png", - wield_scale = {x = 1, y = 1, z = 0.001}, - is_ground_content = true, - sunlight_propagates = true, - paramtype = "light", - walkable = false, - buildable_to = true, - groups = {snappy = 3, flammable = 2, flower = 1, flora = 1}, - sounds = default.node_sound_leaves_defaults(), - node_box = { - type = "fixed", - fixed = {-0.5, -0.45, -0.5, 0.5, -0.4375, 0.5}, - }, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + fixed = { -0.5, -0.5, -0.5, 0.5, -0.2, 0.5 }, }, }) minetest.register_abm({ nodenames = {"group:flora"}, neighbors = {"default:dirt_with_grass", "default:desert_sand"}, - interval = 2, - chance = 500, + interval = 50, + chance = 25, action = function(pos, node) pos.y = pos.y - 1 local under = minetest.get_node(pos) pos.y = pos.y + 1 if under.name == "default:desert_sand" then minetest.set_node(pos, {name="default:dry_shrub"}) - elseif under.name ~= "default:dirt_with_grass" then return end + elseif under.name ~= "default:dirt_with_grass" then + return + end local light = minetest.get_node_light(pos) - if not light or light < 13 then return end + if not light or light < 13 then + return + end - local pos0 = {x = pos.x - 4, y = pos.y - 4, z = pos.z - 4} - local pos1 = {x = pos.x + 4, y = pos.y + 4, z = pos.z + 4} - if #minetest.find_nodes_in_area(pos0, pos1, "group:flora_block") > 0 then return end + local pos0 = {x=pos.x-4,y=pos.y-4,z=pos.z-4} + local pos1 = {x=pos.x+4,y=pos.y+4,z=pos.z+4} + if #minetest.find_nodes_in_area(pos0, pos1, "group:flora_block") > 0 then + return + end local flowers = minetest.find_nodes_in_area(pos0, pos1, "group:flora") - if #flowers > 3 then return end + if #flowers > 3 then + return + end local seedling = minetest.find_nodes_in_area(pos0, pos1, "default:dirt_with_grass") if #seedling > 0 then @@ -187,7 +168,3 @@ minetest.register_abm({ end end, }) - -if minetest.setting_getbool("log_mods") then - minetest.log("action", "Carbone: [flowers] loaded.") -end diff --git a/minetestforfun_game/mods/flowers/mapgen.lua b/minetestforfun_game/mods/flowers/mapgen.lua index 20086993..55e0edcc 100644 --- a/minetestforfun_game/mods/flowers/mapgen.lua +++ b/minetestforfun_game/mods/flowers/mapgen.lua @@ -1,4 +1,4 @@ -minetest.register_on_generated(function(minp, maxp, seed) +function flowers.mgv6ongen(minp, maxp, seed) if maxp.y >= 2 and minp.y <= 0 then -- Generate flowers local perlin1 = minetest.get_perlin(436, 3, 0.6, 100) @@ -21,19 +21,19 @@ minetest.register_on_generated(function(minp, maxp, seed) -- Find ground level (0...15) local ground_y = nil for y=30,0,-1 do - if minetest.get_node({x = x, y = y, z = z}).name ~= "air" then + if minetest.get_node({x=x,y=y,z=z}).name ~= "air" then ground_y = y break end end - + if ground_y then - local p = {x = x, y = ground_y + 1, z = z} + local p = {x=x,y=ground_y+1,z=z} local nn = minetest.get_node(p).name -- Check if the node can be replaced if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].buildable_to then - nn = minetest.get_node({x = x, y = ground_y, z = z}).name + nn = minetest.get_node({x=x,y=ground_y,z=z}).name if nn == "default:dirt_with_grass" then local flower_choice = pr:next(1, 6) local flower @@ -50,19 +50,21 @@ minetest.register_on_generated(function(minp, maxp, seed) elseif flower_choice == 6 then flower = "flowers:viola" end - minetest.set_node(p, {name = flower}) - elseif nn == "default:water_source" then - minetest.set_node(p, {name = "flowers:lily_pad"}) - elseif nn == "default:sand" then - minetest.set_node(p, {name = "default:dry_shrub"}) - elseif nn == "default:dirt_with_snow" then - minetest.set_node(p, {name = "default:snow"}) + minetest.set_node(p, {name=flower}) end end end - + end end end end +end + +-- Enable in mapgen v6 only + +minetest.register_on_mapgen_init(function(mg_params) + if mg_params.mgname == "v6" then + minetest.register_on_generated(flowers.mgv6ongen) + end end) diff --git a/minetestforfun_game/mods/flowers/textures/flowers_dandelion_white.png b/minetestforfun_game/mods/flowers/textures/flowers_dandelion_white.png index f3b80d36f2a718a4e96ccb7cb3369201b7959613..8c0e9fe8a14b7d49cf3d94465cbe3d2c61a7bdf3 100644 GIT binary patch literal 2954 zcmV;53w88~P)|D^_ww@lRz|vCuzLs)$;-`! zo*{AqUjza0dRV*yaMRE;fKCVhpQKsoe1Yhg01=zBIT!& zC1$=TK@rP|Ibo3vKKm@PqnO#LJhq6%Ij6Hz*<$V$@wQAMN5qJ)hzm2hoGcOF60t^# zFqJFfH{#e-4l@G)6iI9sa9D{VHW4w29}?su;^hF~NC{tY+*d5%WDCTXa!E_i;d2ub z1#}&jF5T4HnnCyEWTkKf0>c0%E1Ah>(_PY1)0w;+02c53Su*0<(nUqKG_|(0G&D0Z z{i;y^b@OjZ+}lNZ8Th$p5Uu}MTtq^NHl z*T1?CO*}7&0ztZsv2j*bmJyf3G7=Z`5B*PvzoDiKdLpOAxi2$L0#SX*@cY_n(^h55xYX z#km%V()bZjV~l{*bt*u9?FT3d5g^g~#a;iSZ@&02Abxq_DwB(I|L-^bXThc7C4-yr zInE_0gw7K3GZ**7&k~>k0Z0NWkO#^@9q0fwx1%qjZ=)yBuQ3=5 z4Wo^*!gyjLF-e%Um=erBOdIALW)L%unZshS@>qSW9o8Sq#0s#5*edK%>{;v(b^`kb zN5rY%%y90wC>#%$kE_5P!JWYk;U;klcqzOl-UjcFXXA75rT9jCH~u<)0>40zCTJ7v z2qAyk54cquI@7b&LHdZ`+zlTss6bJ7%PQ)z$cROu4wBhpu-r)01)S~6}jY?%U? zgEALn#wiFzo#H}aQ8rT=DHkadR18&{>P1bW7E`~Y4p3)hWn`DhhRJ5j*2tcg9i<^O zEt(fCg;q*CP8+7ZTcWhYX$fb^_9d-LhL+6BEtPYWVlfK zTBusSTASKKb%HuWJzl+By+?gkLq)?+BTu761jmyXF)a;mc z^>(B7bo*HQ1NNg1st!zt28YLv>W*y3CdWx9U8f|cqfXDAO`Q48?auQqHZJR2&bcD4 z9Ip>EY~kKEPV6Wm+eXFV)D)_R=tM0@&p?(!V*Qu1PXHG9o^TY0bZ?)4%0 z1p8F`JoeS|<@=<@RE7GY07EYX@lwd>4oW|Yi!o+Su@M`;WuSK8LKk71XR(_ zRKHM1xJ5XYX`fk>`6eqY>qNG6HZQwBM=xi4&Sb88?zd}EYguc1@>KIS<&CX#T35dw zS|7K*XM_5Nf(;WJJvJWRMA($P>8E^?{IdL4o5MGE7bq2MEEwP7v8AO@qL5!WvekBL z-8R%V?zVyL=G&{be=K4bT`e{#t|)$A!YaA?jp;X)-+bB;zhj`(vULAW%ue3U;av{9 z4wp%n<(7@__S@Z2PA@Mif3+uO&y|X06?J#o zSi8M;ejj_^(0<4Lt#wLu#dYrva1Y$6_o(k^&}yhSh&h;f@JVA>W8b%oZ=0JGnu?n~ z9O4}sJsfnnx7n(>`H13?(iXTy*fM=I`sj`CT)*pTHEgYKqqP+u1IL8No_-(u{qS+0 z<2@%BCt82d{Gqm;(q7a7b>wu+b|!X?c13m#p7cK1({0<`{-e>4hfb-UsyQuty7Ua; zOu?B?XLHZaol8GAb3Wnxcu!2v{R_`T4=x`(GvqLI{-*2AOSimkUAw*F_TX^n z@STz9kDQ$NC=!KfXWC z8h`dn#xL(D3Z9UkR7|Q&Hcy#Notk!^zVUSB(}`#4&lYA1f0h2V_PNgUAAWQEt$#LR zcH#y9#i!p(Udq2b^lI6wp1FXzN3T;~FU%Lck$-deE#qz9yYP3D3t8{6?<+s(e(3(_ z^YOu_)K8!O1p}D#{JO;G(*OVf24YJ`L;yGdO#m=9iDm}?000SaNLh0L01FcU01FcV z0GgZ_00007bV*G`2i^(`6fPMJ65<~K007cSL_t(I%k7gbjsigtg})*T2*h4tEtU*s zh6^wWZr3wr0L2YR-~?Dm2!cBxHmfms>|TIBL4tgU9-5zk!cs{koqDP7byuoQ60by# z7vl|h0|4w%QQ3N$*)!drKduXA=9^F6DN=0uN7(i|D^_ww@lRz|vCuzLs)$;-`! zo*{AqUjza0dRV*yaMRE;fKCVhpQKsoe1Yhg01=zBIT!& zC1$=TK@rP|Ibo3vKKm@PqnO#LJhq6%Ij6Hz*<$V$@wQAMN5qJ)hzm2hoGcOF60t^# zFqJFfH{#e-4l@G)6iI9sa9D{VHW4w29}?su;^hF~NC{tY+*d5%WDCTXa!E_i;d2ub z1#}&jF5T4HnnCyEWTkKf0>c0%E1Ah>(_PY1)0w;+02c53Su*0<(nUqKG_|(0G&D0Z z{i;y^b@OjZ+}lNZ8Th$p5Uu}MTtq^NHl z*T1?CO*}7&0ztZsv2j*bmJyf3G7=Z`5B*PvzoDiKdLpOAxi2$L0#SX*@cY_n(^h55xYX z#km%V()bZjV~l{*bt*u9?FT3d5g^g~#a;iSZ@&02Abxq_DwB(I|L-^bXThc7C4-yr zInE_0gw7K3GZ**7&k~>k0Z0NWkO#^@9q0fwx1%qjZ=)yBuQ3=5 z4Wo^*!gyjLF-e%Um=erBOdIALW)L%unZshS@>qSW9o8Sq#0s#5*edK%>{;v(b^`kb zN5rY%%y90wC>#%$kE_5P!JWYk;U;klcqzOl-UjcFXXA75rT9jCH~u<)0>40zCTJ7v z2qAyk54cquI@7b&LHdZ`+zlTss6bJ7%PQ)z$cROu4wBhpu-r)01)S~6}jY?%U? zgEALn#wiFzo#H}aQ8rT=DHkadR18&{>P1bW7E`~Y4p3)hWn`DhhRJ5j*2tcg9i<^O zEt(fCg;q*CP8+7ZTcWhYX$fb^_9d-LhL+6BEtPYWVlfK zTBusSTASKKb%HuWJzl+By+?gkLq)?+BTu761jmyXF)a;mc z^>(B7bo*HQ1NNg1st!zt28YLv>W*y3CdWx9U8f|cqfXDAO`Q48?auQqHZJR2&bcD4 z9Ip>EY~kKEPV6Wm+eXFV)D)_R=tM0@&p?(!V*Qu1PXHG9o^TY0bZ?)4%0 z1p8F`JoeS|<@=<@RE7GY07EYX@lwd>4oW|Yi!o+Su@M`;WuSK8LKk71XR(_ zRKHM1xJ5XYX`fk>`6eqY>qNG6HZQwBM=xi4&Sb88?zd}EYguc1@>KIS<&CX#T35dw zS|7K*XM_5Nf(;WJJvJWRMA($P>8E^?{IdL4o5MGE7bq2MEEwP7v8AO@qL5!WvekBL z-8R%V?zVyL=G&{be=K4bT`e{#t|)$A!YaA?jp;X)-+bB;zhj`(vULAW%ue3U;av{9 z4wp%n<(7@__S@Z2PA@Mif3+uO&y|X06?J#o zSi8M;ejj_^(0<4Lt#wLu#dYrva1Y$6_o(k^&}yhSh&h;f@JVA>W8b%oZ=0JGnu?n~ z9O4}sJsfnnx7n(>`H13?(iXTy*fM=I`sj`CT)*pTHEgYKqqP+u1IL8No_-(u{qS+0 z<2@%BCt82d{Gqm;(q7a7b>wu+b|!X?c13m#p7cK1({0<`{-e>4hfb-UsyQuty7Ua; zOu?B?XLHZaol8GAb3Wnxcu!2v{R_`T4=x`(GvqLI{-*2AOSimkUAw*F_TX^n z@STz9kDQ$NC=!KfXWC z8h`dn#xL(D3Z9UkR7|Q&Hcy#Notk!^zVUSB(}`#4&lYA1f0h2V_PNgUAAWQEt$#LR zcH#y9#i!p(Udq2b^lI6wp1FXzN3T;~FU%Lck$-deE#qz9yYP3D3t8{6?<+s(e(3(_ z^YOu_)K8!O1p}D#{JO;G(*OVf24YJ`L;yGdO#m=9iDm}?000SaNLh0L01FcU01FcV z0GgZ_00007bV*G`2i^(`6fPI)s?Qhz009k2L_t(I%cWB>PQySDoJFp9LL~Ua(!>-L z6p_;B3+v}VL*Z*vrl+NXG|VdyMT!&@6woY%?X%B0TS6JhlF#0q+1cF_cgHy>CjU_S zclCb~P!NK~qnS*ST;NQ|WDh7lupsjm#(pUdraDt31vv6YnXh>yR^$^^p!DQCjOhd^ zZ4Yv)1lIe~pOii*uMM0s~9hmTJHKyB~SccEj>1q{)cgbL_G^L0|Ud`yN`l^ltF+`h-=zR<8B3szI84$(~M`HNn6w{xAb)UN)3ho zGa3G$0V3o7|Nna?ScT+UK}6P0@0bYG%Tp5M7YwA~;QvI4Wk628r;B3F-&*&c1m$Cxs0geAjrJ#^7wg Z%y9g_U%0H=|D^_ww@lRz|vCuzLs)$;-`! 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 delta 226 zcmdlb{+V%tWIZzj1A~Sxe=v};3GfMV1=5-u{(7Xyh2-mIG@8^-HJ`97bkWY#t>)5~ zv&8Qe%Reksd03_LxJcyx|Nj=gTAm5kA^Fz-(-{8GWOz8|vnEhKe@T!Z$UJ1AzWneO zAV1vG#W6%;YVSEqp#}pU=Zg%{+ngfy6#n0R$)Lx#^_2PkfXU}?#amooeCUQ->y5|E z;U_{AoPMyfooE%(akb;DV0R*0W-lYRJkQ-PwRawX O?DTZ?b6Mw<&;$Tdr&J{X diff --git a/minetestforfun_game/mods/flowers/textures/flowers_viola.png b/minetestforfun_game/mods/flowers/textures/flowers_viola.png index 143044a45b315b521667e28b7e151331dc9c77b6..e1767659f2a4057528a4a43f37bbaac074883831 100644 GIT binary patch delta 276 zcmZ3_xR_~zL_G%^0|SHn=l_X7iY>|8-G#w|!I#0ntTT-rD8gCb5n0T@z%2~Ij105p zNB{-dOFVsD+3#_2i|8rsk>s`p3T^OoaSX9Iotz-Sy10QOKq{a&e4gNZx2eZ<|4T|p zNW437&A`aOz@Q{QL-pRXnaBSBmo}dA-#ks@f4%+XAOGuD?QnQnc>4dB%{@IVxosPr zKgs@^y=3Ep9URNE)1>|%4|p>3!H4_GM?ct`9S&?TbheCP-lTM%rTu^1<{J_T>kgzz z2s1M?H%A=uWCMb>x7>UN>>r2qVTo8Fe5{?Bm9yuW7?9%lC>{mzqi2dQCWFu51} VFvgmb_Y~0e44$rjF6*2UngGxOXm|hs delta 159 zcmZ3?w4QN-L_G^L0|Ud`yN`l^lwyESh%1mbNn`Pw#a0?nJ=6HVF+;h9udzppp=W|a zNWKG5B=*0vCr}Ywl+CsgNLhHgIEHXUCnqdWGH95Ux>e#-loYG@MyAbT z1zb9@3`_Pdvf$d$V4{7TiO;pHjg?1+hc!n@;w6tTgSZxF-NIIrW{_c?u6{1-oD!M< DVQwv} diff --git a/minetestforfun_game/mods/stairs/init.lua b/minetestforfun_game/mods/stairs/init.lua index c7df28c5..f36e7343 100644 --- a/minetestforfun_game/mods/stairs/init.lua +++ b/minetestforfun_game/mods/stairs/init.lua @@ -288,11 +288,9 @@ stairs.register_stair_and_slab("stonebrick", "default:stonebrick", "Stone Brick Stair", "Stone Brick Slab", default.node_sound_stone_defaults()) - stairs.register_stair_and_slab("pinewood", "default:pinewood", - {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, - {"default_pinewood.png"}, - "Pinewood Stair", - "Pinewood Slab", - default.node_sound_wood_defaults()) - + {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + {"default_pinewood.png"}, + "Pinewood Stair", + "Pinewood Slab", + default.node_sound_wood_defaults()) \ No newline at end of file diff --git a/mods/farming/textures/farming_bread.png b/mods/farming/textures/farming_bread.png index bd00e3e139782539349ad21ace6796e9d323ec79..00e53719cb22db2cd23997923ad9dfb40065167d 100644 GIT binary patch delta 496 zcmV1gx5QV?lUH`6cY{!m>h$2M-jKoVs${Wz~0?;Dy01-6} z5|w!i=%JvXM6@UfMC4=*_9lz%&8~Ov9STGe2vn{(%}Ar8Q=D%`RFzfav7%NE2>!O* z-!(c;7XZ}j0SNd(jVG^W@_(mSE_d+!ZcWRYMZ!9cjOYj|KD5@9Me10dcqFdM(>G^w zC1CiVq95N|JWY7Qo_7#MGn%Rdp2tqNL9cE&n17C#pTbfd@oCPr z4MVt@vK&F=l<|CiK|$5QCTz8YPRH=+>xAT6NtzernI$huCdVgKeQ52#O#=;QFDM9e zi~+(n(eyjMwS*O=VZk_<05t)|;N1rG;Z}4BJs!EuFgdinsr$7$g zHXtAdXv^;uUOyV>mr3*xEx{=`EEWd}9*W9O->-RpsB+~F0A4=4q3X^+At`29eAcxI m8Zy@f_l8IE&qMk@pXmq05ytYZ$;Wg60000Gt(wBnKsnMT1r8S#XIOy@dCU8*9Dh?d&Qk=7aFKH;MNN$ zD7vwT6qo)~l$wc6P4hRMWagaDq-G((oeS}K`2PuiaPMkGo9Tdwe^SW@0p~P(_^K!~ zL-&a;UnK#_HRvMeluL4o`(kOChyt%t5zB{{%+r2t-(^#fY{U9YW$D z6|wa<>U;d+aRJsULbV!m@V!Ons30BY3^U6xFK9K|%o(U$gv&8RU>Nf`)6+Och!#nX zyBKSU0;OyrcF+Rm1!#hI1=PT1!Wn<}!F3_+=*PxB*6R>gY{AVbQ3eu$6tJEGL-5uC z0f~VHl;mb0H@%vSR5#LC@RW?iZXF)2VqQ@@$B}7syhXRPTs>}Ske$Q sqOSvP?lgp1Z=YQA_*;AREuVkkCqr+-oX4|f#Q*>R07*qoM6N<$f{kG6SO5S3 diff --git a/mods/farming/textures/farming_cotton.png b/mods/farming/textures/farming_cotton.png index ee0c2909aed8424e258f03bb03cad6036e23cffa..e2bbfd7af486b64c658bcc7c6101b22ca95ab7e7 100644 GIT binary patch delta 149 zcmcc0w2X0rWIY2ASj||l7f3Oc1o;IsFqBO`YXRiNd%8G=NJz3CT*%vCz`%0gc0H3= z0$0}(IjxBvLbC)`&9??=WmxfiH-p;^W`_%^416&UUo{BGzj08P<492YUYwu1&SAsB uDkis!0ec!E(s{TO4u~*3@n8pO`@nqP-XMGaG`@3>L0nH)KbLh*2~7ZQkT7Hb delta 325 zcmZ3+c$H~_WIY=L1B3kM|A|0~u{g-xiDBJ2nU_G0Y-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$4islg@^*Itt6=!)yt^LA;wBSRZ0>`f89R-w_3#Gymf!@PFW1&>|NU6y(Mg#IiM9 z_+(JRW`~(`k4YSBUZ47tJ0e@N#o>A7q$!i?guFFbHoTv+`j1{zl2_-CI PGRUu)?C7*fHQEb%5mq^Bt`Az$^kyo+_jX~s;W#{Su->eZuJ_pmWAtdL`C T6gBQHWdH(CS3j3^P6Th`$>xk2hnVTB=XP>H9k7nJ&#=x*bj;%2&`0r<+76wmOKbLh* G2~7aJiXPzr diff --git a/mods/farming/textures/farming_cotton_2.png b/mods/farming/textures/farming_cotton_2.png index dc1025ba7064260a077ccd8e8cae4749e35a59ba..af9ed340f4fd331cbd2a504546b0e73b9e79234e 100644 GIT binary patch delta 89 zcmV-f0H*(;0e6rjQ$9&VK~#7FW55kY!6+C7wq~;bk@=>&lK)9Ez{*(Wzdh6tYZGZ8 vO$IR1kpOG7HwPL-E^xMz|L*55F2Q1stHvOOYbJ?y*8Z}J^PDMQ1Z+k@`TR8KQ$>D~HeJl}+_gb#X_Fy^} i_UXUvn<*cp7#ISc^L}kNH$4J0i^0>?&t;ucLK6VvmoL5m diff --git a/mods/farming/textures/farming_cotton_3.png b/mods/farming/textures/farming_cotton_3.png index a1fe3b64fc851558082ca81c6196f85eda968ecf..ba46f3d67eb4e2f92dac8832294cc9cddb14b32f 100644 GIT binary patch delta 73 zcmdnXIE8V73SYFRi(^OyW3og|f=Cb3#Aq3o3SI||iPcgX6MU5lwg&y--y-=)wTSUV cn$tOUhB^GwTc5kn-^l<3p00i_>zopr0AQUMOaK4? delta 161 zcmV;S0ABx;0lfi`B!3BTNLh0L01FcU01FcV0GgZ_00007bV*G`2i*k~4FVYC(c}vN z003M`L_t(I%VS^|1*2fl0X+?||G4CAO=SNQG{C`3?!T=ura~Jdng6D`l7tNaD>jz- zZ=@yhA6<+jueew${D(Q&(m?vZgSi}O27rL8mEwPp&Dgv|G#UWeOvw2FoDUnd1)S>R P00000NkvXXu0mjfqSQXW diff --git a/mods/farming/textures/farming_cotton_4.png b/mods/farming/textures/farming_cotton_4.png index d0096da395270fa79bff41fabd7658972f73d47f..e6708b55ed41f05113048b588e3d885f94f99216 100644 GIT binary patch delta 151 zcmV;I0BHZ*0kZ*+B!7BIL_t(|0b>|eU=-LG$o!|s05ff=|30=Vcnz^Nlm*I@sldTR z?!Tq3G=2k2wI%;M7|VebxtJ@!6+4^C|2Nf=B+iT0`qKYRwNVv2nJEw-KIXo<{}Hxh zdW~pTz+%PKLh(NklO98kKz{=R4x*V{V4@}QpHTV$0N3Ox>=2%28?pcZ002ovPDHLk FV1kA^L!JNt delta 192 zcmV;x06+h;0o(zQB!3BTNLh0L01FcU01FcV0GgZ_00007bV*G`2i*k~4FVaH*3_K< z004VQL_t(I%VS^|1;Yv07|8sm$N)2KssBEAZ@%*jlF`0z3J)j9o-Y&%hY$L0!Hthibz u{s&=_W5p5ZZ&1LIr5OfHv?Tr$N*@5%`z(% diff --git a/mods/farming/textures/farming_cotton_5.png b/mods/farming/textures/farming_cotton_5.png index 11f67fc6224420ac73d874d68f6805d14d2c594a..0ad6a8f5a5b64dca02dd15636d3679ccd18b9402 100644 GIT binary patch delta 154 zcmV;L0A>G&0^I?SBn+fUL_t(|0b`&M7zL48D}QMd!ZJrgxICuGHhQSGTkA^y2Wf)w zZFKRwj={x50Y!n1qR4;bZ~?mrAFwx&g}cI3LlUmoR9*5v$Th^q07x;4UkPeP4=6KD zssHHF=4z_=9~uLM0ni)ZsD*h88Z(3ex~;Z)sG7+!grETcsc%E^6CMdm00000NkvXX It^-0~f&fH7W&i*H delta 196 zcmV;#06YKP0fz#RBsB?eNLh0L01FcU01FcV0GgZ_00007bV*G`2i*k~4FVbp--Rat z005>*L_t(I%VS^|1+)Q?Fe`u6Ca7hOhVuV$nrx$oYP+?r^nZ{h7~e)0zv~!WOcYQQ z=qQT(M-CTs7hwQ<16jB$Of@9oicQre|ASmZbPRwLBm0$T&9Hzn)0Fy;9&N6sivO|3 y05$;f1}thp-a?KUq5;TOTRk#0BO5}<0060PL-CklXmXN1!l4crG=DxZXT2hwU z(pEY$);iKQx-zzUvUd7%_WH6826B#u^3F!`F2)M3CW@|>+V0l+9%f1&R(hT``d&7A z-nRNab_Txoh5=4S!LFvEZl+=GW+oxWP6KUXEU6Fj3ubV5b|VeQ%kp$_45?t8d(bhg z*+7KhK%gPxpCc{-SHv>j*Pqn;z3Xj{`rLhue;ewH7?`4+r`DgVaDP{s?bBhe;j3y@ z^jv(}ucsO_uP}#g3!ipG^vgoS&^D$snQDU5WluCN+$QSqJ?YPxcP=w+rR*8ZrS`A{ V@4xb%m4O>*ucxb@%Q~loCIIQZRy6*N;%;JM^#A{4%+nM* zfJCp(rI}9WZKjs=~jZ8mpJ{oUiyppgqNL@mnzC$>RR_PsB-!l@{ROOjnacI!H`C;Q#V<{&|@ zLReloFCYX3U@XZuo|$86W3}_D;Skwa)eNZw0FeEC>&1b9E)$OCpjsO?^G|h&D%Rcd zlL@CPUCrgTaX$(FArTS?dHEl;3N#Z23-haj3iwp5{9IrkxALg~ Y4+>0lPm0GFd4JRikB2R|aniU_U6Ai6 zCd^jTrdFwli%|zx-u?Wb6A1oaNJdpThL3=*POdm){^ zzW3UqDE}A4;^NFGtiH2Nx&Ami{GsO;SI?GKj32Zti!b49iIxGxb3! z$pLutoFPVKm1gyH@O}Uk)vkwyG|JRSQ9Tpo`G*4!1Q)KO_v|CK2SbnW99I%Y^^KxZ zgDH6c|5e3b( z(v}+1R+`e*nljc}GB#SWHrleb+Ol>!a`r%^E9U@0@{W4)PC%p&L<-LO3N8i;u7-+k zhKlY+O5Ua_|NsBLweRO{pf!voL4LvY3=Yq3qyc$3o-U3d5|XS3IhhVRh_G%5_?7D# zdi>n(|C*{mS)ghL6-LgMSso`uXC8`;ZRRwcw(nx%Z=PE@ikVl88}mL-N;Z^jkjgM# zKC$8Wtpne^!yI1My*hJ&eMRcV*XFv6XVf1rXGr+JkC{Qw{D6Gpgu?F3>~7aE{u0FS6Iq}rp6j@{`4ss!d>l{o(af`6Knj2seT@kV%ay?^Jj|6}tpY!lROBXb002ovPDHLkV1g5~h_L_w diff --git a/mods/farming/textures/farming_cotton_seed.png b/mods/farming/textures/farming_cotton_seed.png index 70d2ac2804508905915c8becfa77e735116c5ec2..cff769b2e0e852114603dabf1eb06d2f23e4d072 100644 GIT binary patch delta 254 zcmVal#;uXZ zuawEMn9H=9%(k7)x1P?qq0hRa(Y>b9zp2x}s@21;*2J&Z#x zz~R%x;nc?G+|cOW(|p7R+5i9m0d!JMQvg8b*k%9#0A@)0S{yV4D$pXsN75791qCp%M5v{(4zrtKmh;%{&67$ejAlDHvj+t07*qoM6N<$ Eg6ZUT$N&HU delta 332 zcmV-S0ki&(0^9tZ!MmMVc?IzO;|P{suo0fse+o|_ zW$Xu4ID-e}2q>uM2FA4*IFfwNk(Qk-oLmvi2a5K*o43-?GXY%JCY;-HRllDtWoFq2 zDsWS8H{b zyhj;nwe0MiyLSfXkH+C}(B*Q`>-Ey(@lX&1Iv$Vu72NH1dcWUF)6}5*{jM+!700nQ zn~kp5>(3&9S(X`46ou-#R#}#ICfc?|2uI&VeBYPnc_M(ju76XW=lw#MJm1gfQ&AM@ zcDu=7tkEy(xTvZM`vCSTaFQf;PmZ7t5q4+4-^+DftdcMok)~-3CP&Z?vq6X&2E1G@ zkCEfAx2AI(&yp68q_NG67yYpU?IpJ1}>w zevqTlNWkjJmZcIYRq00000NkvXX Hu0mjf0%@OC delta 352 zcmV-m0iXWQ0{Q}wBYyx1a7bBm000XU000XU0RWnu7ytkO2XskIMF-sl6%7IxbZ+^Y z0003QNklCYl0c3mfg zVHhyaGsbb0GizN}5u&3HC-?guWm!ri$=kM}@B8 ya2yAR!vU6M3BfQ7=(;Z7rfJHVeIGCJkAW|c$FIeJvoZhx0000$^fuN5`W^8$>E&C|C->}W2B;$ zZG7GsdDGNIEF~m2;~9jLrdD%`Yub9rXg;^KQs{L1vs$Cqo+YxZ^Nf@l zZ;;l0A0*$M*?;ig=?+KLup5Gb;V#%nHGLL_QBym+xt!L6K0L>SnKe^kWwZo3{y1o* z`CNALXKfU?uJ9YJiO6Jtqem9eVW7NYqvGdNQ`0bw#!=m_EbEA4b2yWWckZ@O_A>in zKLVfR(Ru&W=F+4;7>iDK;2XN$cZ=ex6CVnRmpD)PwYr$WMOLoErl=!D zgJ%VwQh%VMicZnkNN=Bh`ax$fDD3S8?X5Mhf{Zzy%6R;+)*aeeOZugS&QHG{e66yb zTKCUbrqQ}}r~U<#y!QIpXScPDB_YeMNKBaqh7iupz2K&$ zbGBuo(T**)=}rWE_38^N?~O*$ac#rPM9lKT&wuxVtCa%Yl`*ECo9q2j3%@;@#VbqY z(&j?ZE-@%}Zyz+)szv>`TEEAROje&PLR+$MBb?$RZZtgymmZFAoeEA14lZcAabh@5 zYPl@dbln*C2FXsr#v5{mc00z$)L~yKxlUBcQnE~1N+jA5!rlXKJg&vJoL>v@?c;Cw6dT$+-s0&;7MKtNW7G1y>jp6ey!)04RkADTwO!**mlmK>_AMffJ zw32S@s}bxMLL5{luuk@4SjNW=Lo?>YRXfL<^a$6<62VGv9;J{2iZqL)(}FGwp&WH0 zw>Zn=up-l002+bVq76B!%XqBNaV!2g2p;Pc+~x^LmPxSCJmo3=>@iQmZJ9vUYvb>6 zBCiv<8gamJ?|%+N!ic5`2sZ`eh-9ak2lnpoSetx~*8G+5!=&baUaRz|d(d zVPxI}@626_X=HqMEICXNx-5vI--c3f4z-jAjg*AOvV>+@LdIprX+uGa&hmacm}JAz zRsw0a1%qN3k4SXk`C1g8v;z8y7dr_zUR4t~uO%@ohJWz=a0B1=SMmEz16SPw+C=)H z&7hI`XPYwKlKsNb>Jqe!4^3Ibc1pzKvKt6HJb6;B#jT=Yv=C5sek2GzI=52$c6=0e`9|AHL}r-j?iaU`hGMy|Ti8M5v+ z8$>tSIDfv#(B#%mPGBhJAB=-zB%pk2D!Y&sty~9c*?x^OO{^m z6?xucv`qglcJSx4hO15<-Lx0S>oga=0_w7puPZPS@hu$CoO~Uq7?owb*oZ;5|8hsc Ye<~lj&|Ie+Bme*a07*qoM6N<$f&qR`-v9sr diff --git a/mods/farming/textures/farming_soil_wet.png b/mods/farming/textures/farming_soil_wet.png index d5e335ef30558faafda5da5df2541be28abb7bff..7e24c70458e5b3d14080b945cf0f68cd0bbc57ec 100644 GIT binary patch delta 809 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 diff --git a/mods/farming/textures/farming_wheat.png b/mods/farming/textures/farming_wheat.png index 8ecd735064606ba600bf4e45e2c6ae1c31141eeb..cba51374e2ca5a909aa27a0f65594553d953772e 100644 GIT binary patch delta 523 zcmV+m0`&d11fv9yBYy$vNklNDOPItLPR%3 zx~ZbIW+pLdQY}6}MXOaS)dW#dV~s|NsYabd6URqlqDJEbr9Z$QaC+xT=w{*~^upzX zdpYNxb3WaFt;k9f_5)_5c5FC{*r3jCVxN)T@BVH^A}HZrl7D2l1&5mwF84m+c*}B| z2w4!9CEUcEw^#cP2GbmSYi4btQzF=1ZHDY?fC`A+k)@UKEKVv;BQ4qliJ*lPG~zny zM07)fN|?TOur7l3Oq2{;5!=XMM_#DG{P$A67XDQSRdSTT7o>!8Vo*x4@l2Coq@$1t z-2Dawe%9hRB!3~a+z7@0kpV{`RpmWl&JG)~G*Jovj0uBZ^0B#4O+kuKe__#G2{l+E z$xPrKdxh~HJ@-VP0kXFSB$>lJBmV@>EWfjo zwt|=X90<7&P+@$G$*-jt?J7i{Q^4w+32UAz9Lf^T6@NQtLBGL@80d4ohWAGq#P`oo zEIj0Pe0U1ah!F#A1#D$y+Qb?BiML{h2u`-G+&ULY9d0i`uR}n8n*j5>Cnz)IX!=|C z*7MbrV*j`Q*8Uv+sW%wwF2Yb}K6Kesmo<;Q`dsDEWn0sOFR}vv1v*7~hDaId#{d8T N07*qoL?wsU4=eq9ey3WyPo^yrPnsDSbAhB=3Wyk{R-G4>DAbEbU-i)~4h(}4z zgDp7OG2;60GfsC+_wj%UF`p54QQQ5^k(I%skHbxaGSP(~IM`^0&)on5L?6hK%BU9; zDlS4T$^>!0NhoNf>K=?zJDvkM1OY<`fU<67WLS4R^UYZhd<#~ z&VpWp6fw|ke-GDW5#+jb%Qx*Mfx$1dpLa6xP9PZ47XSNJeJ-Ha^%6j~ttF3Nx277heOP)qR gYi{W6lNZ4M06Il_hK}P_vj6}907*qoM6N<$f>Q+q{Qv*} diff --git a/mods/farming/textures/farming_wheat_1.png b/mods/farming/textures/farming_wheat_1.png index 49430003b0b9c176c8dc8ea2ece63efc32446ac3..2ca23ee780eea3f1cedf9594f05357cb35adaead 100644 GIT binary patch delta 41 vcmbQlm^nd(-@wzwF{FYqSz=9sNKaGX#27UJA;HgW3_#%N>gTe~DWM4f{)h}V delta 82 zcmd0t#5h64g0sLQvY3H^TNs2H8D`CqU|?WiFY)wsWxvZR%F86g!on*G6f*R5aSXBO hO-_(tU7R4o6Ex9SO<;Z1;^jao22WQ%mvv4FO#rTs5^Mkf diff --git a/mods/farming/textures/farming_wheat_2.png b/mods/farming/textures/farming_wheat_2.png index 63550d1260a334d108bfefd6cea3a0d431640255..6ae90d6014e88007fc3d9b7632e1489d8465f7ad 100644 GIT binary patch delta 114 zcmdnV*v~jYB|FU1#WAFUG5G+W+d&NpR$>13|LRe17jpP)T|1lU-(gkGhHtu#9HzF_ zP6y^JE3Nzgutwv>t;U4y`MfQgtIOK|9WU^EAJ>uaU9Ur}r0n^(1dHlR6FdGh{9CVM S&a55G00N$_elF{r5}E+Z>M*g_@fpRH?WGyQu!#fAB8bdx|<)wh-gOW)Uj{waTUT#(J) zba$Vrz`1ufWxEU*(vsiDbtHV(Yf(!nd;TrKqWaRr4zd3X|JLi6Gx9xa16so1>FVdQ I&MBb@0Mo8G1ONa4 diff --git a/mods/farming/textures/farming_wheat_3.png b/mods/farming/textures/farming_wheat_3.png index 00a8c661d1097c7ac19f69cfb45d30465b30b763..29950fe5b258a62a1db41eccf399ec201beabba5 100644 GIT binary patch delta 97 zcmV-n0G|Kk0lNW^Bn^T|L_t(|0b`&E7zLw|T0u#e4Oa^TQ+7fm<{gUy(+iGA|Hl@v zGY^0aM(BY%dG?_QxB)0G+7tF4s0PCYOU}mr2N?_iw9!x3@k@No00000NkvXXu0mjf Du?8ed delta 138 zcmdnZ_=ItSiWz5tM`SSr1Gg{;GcwGYBf-GHz+U3%>&kwYRg{-WxR}|t87S23>Eak- zaXL9cf^~6&*hE7|&pEuo+-$*RPAbo2yO}O?_qqQ+F1Ep#UxA11b)#kFw}l)c%n$T# o34fDc#&(m{``odA?2mdKI;Vst06WktMF0Q* diff --git a/mods/farming/textures/farming_wheat_4.png b/mods/farming/textures/farming_wheat_4.png index 80b98aa2b4acdfdfbc659176ad3b39177b589d04..cdc2003dd3ed36db11ed119defbffa88d9fac107 100644 GIT binary patch delta 199 zcmV;&0671S0^?pOs~FrMn?lu z9UzByNv+VM?rqrDOWkG=r^`BOY%g`PT95`GyK5PJe)FNLNI= zCR1fK8JjTroyVRH;tz|vfI2IW#@C^i&lMeoKLH(jeIp~PGh+Y%002ovPDHLkV1ncq BS6Bc5 delta 242 zcmV_Ma@vmhTJ(3oh6gNYH={ zha(Yc*6f4W2s3rTM*siVY+AG>2+m%%1IYz2&YZQr|ItlfwQC2VaPd}z%Vw_f`45*| zx*g*5O-CUbVO{}&wfn>2>@6pv;Oy0VL;u5_2eT0@h-53sYsk)q83s}hR?D+T*|;~)X8ww%5m1qa(@<{-xL4<00DGTPE!Ct z=GbNc003!8L_t(|+O@|=62dS51i>bQEz3y`V30^$OY8Gi-<001BJ|6u?C010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-31j53<(h8>30AC0Rc%wK~y-6?NZAQ0YMPlzY_=6n@#+H!~y@}b zF7A(WjV7%SPqyQ@9J*MUw*=#+ShAnKdX;HA%o7kT1`(Qf!?M9>ge2Zg60TlXaXE~V zlMrF{MSWw$sILb&HhU3Lx)nc9unp&arb&WMS(O<5^0^p*AyB~CvHgKjw^m8F;kbY? zkaw7gC-rodm`i--3Cjmnm4>yz6FUfCQZesweT|c;5$@OtrA!GoQ7?EoBOJwluo}g< kY-Sq6Ab`0{Rj1^mJMibrD0Q+Cvj6}907*qoM6N<$f|(YOE&u=k diff --git a/mods/farming/textures/farming_wheat_6.png b/mods/farming/textures/farming_wheat_6.png index 591c1383b3028a0d77e90b79539da4be85701295..f7d8145eecc5a93781ceed5c961c3a746fcdc8c3 100644 GIT binary patch delta 380 zcmV-?0fYX?1B?TZ8Gi!+001a04^sdD0IN_;R7C&)0HKsgp_NCWmPw+NNTQcYqm@gf znM|dZOQo1irkG5onNFvdO{bYlrv|Plt zYR0&1$hvIFx@*j}T+qR8(7|xg!f(>UaMQ$b)WmSu$a2}qbKA>v+{|>{&2@!4Nxc97 z00DGTPE!Ct=GbNc0056kL_t&-83n-!LV`d50Klmf!KhF~A$G0ow8J1f_Wv(y1^@s6 z0002+^9KOfe|32ufWw=S-{dI)hvaq7Mmq9|@zM84#8-T{rnI6)p*}T>&WY{>g{6zIaDOY;oh`h$Qe?JM<)zT)^ZcP%pL9Mp a%E>=2staf-M+r#)0000K~y-6-BQa=!cY+H-zie6^$|C0HAab|=%0XXRfImEAR<^m z4G9ToV<2LJkA+74ma%hh=9VtlxO6u6+|JCIbLLi({#SgCGJo(rK7>CL_&3||=I=9t zQFjMk?)PSrO$NI#?503^eMpOtU zq$6ZFxYyhO>0@{R(<;(ok7J_1ZzuUObwv=8O0WbcG1m6RY8Gi!+001a04^sdD0OU|iR7C&)0H2OWppQzRkVc`8N1=~NqmfCZ zkV>VJNu`rZrjbgfluW0SO{bMhroKdiyP_Ug+u%A$|o>Q@)QL>*>v!GM7pi;G>Q-8LiQn;g1xTI9MqgA=3 zRl25Bx~O8js#LtIX1%CYzp7Qgs#n3RSHZ7m!?9_{v0KNrYst22$+&CFwOz}&ZOyuE z&bw~Uyl>FCT+qF6(Y%jF|;3Id6r z3;Dnm@qx1Im^P7Z>|58Tx#@V(sg^Yz88LNgN=kbzp-Hb7={IdDX&j~&R6@nwi?VDv zwjw$TRiP^+x=H8ey!_Z`)O9np)Zg|_(xr{+WfH>9YWfRUJQH6LTa-Hh0000m-8g5+BqTA2i0GBKR8uqJ&k3Rb&xR zA%GwvK_o=QJrea-D(&Uofj1wWWYRP3>FH@lq4-zNXU7KjHGd2ImH&RTGtF(~*Wj_f zMakFeZRnOZ1mUA?n<9VT?E-R$$dlO2o6ybkm0W8V*QW$(sTFu@SwS(pwZo+PQ-e8p zxZD)$^eYy4X<7;QDr~@4*ABzZXa$_wE6Y~XUai1`26KQ!E{2g0K@nk{H(f|ZfpdNx z;h&xz>X}s`z<<|irp=6-^=aWWpr?=HL-n}00GQ`u#Uqoz8Lx(L$}=b5CFf_!gqsOe z;`5?d2MSffq`!m-1h{)Ey8!j{JfL#Fv<&Eqy=-sf^4sA4}OP1jYoA8Gi!+001a04^sdD0Uc0GR7C&)0Hl;kpN~hHi$tG|N1u*IpO8tQ zkw~GCOQVxXqmxUcl}V(ON~M)arIkyjlS-zROsADir_m$!FkuLSr#|1u{RGM`A#DK#=`24$l|5E%E`6}6;h=Mh0&UpU zP|>J47J7q=HRgQQx#zqTU~_mYX}0K4TG-$Ut-BN;=c%qBw|k3*5;n>np~>?y^_FR? z!ZYx8{4xE5tvV+(an+;BrsY)5FaoS@=vaoWNZl8*Biw&=nIP8&0X}O00000w#%IlOJaK7Vy4u+tb72D;CxJQ*@gEYSAT#}~xjT_3}TmYU7+b{y5*i1=ErwVd># zwiFVlwRTDF^?Vo_Kx@}?vhRD&(*FK7{%;GbDW5oN3yMuP;e}%>&}Ke@MkZv6b-a}F z!>Xo(;*=Nta@VpdS$O0#4P>M3(n0_$^QyKu=hkS4XnzEA?0^BRXB2oN8$mWXAol#7 zbB4__W8LboIQ3i@?gzm};UZ4btfq(1E?>r$bEOX!!n2%W)GE8ZY_jipke^ipYZfDN zlUb)SjP!%^29zN7T@UokvI&;~gT+}NI?h$tGXp3u20;DX1|@Jq^-S1oNUwbF`3RO~ zym0?OP-ZAGLE0P)*T*J;i9FXX&G|)pITb*~4!Vzc!CtG@*V^b$pZ|d%)pQv7#2^Yu zpA41*reDwLtp$`cCaIP5^cI*T8%m)>ZiKIs8GR0qHXr*7B@5L-M#jB-00000NkvXX Hu0mjfmPI9) diff --git a/mods/farming/textures/farming_wheat_seed.png b/mods/farming/textures/farming_wheat_seed.png index 9afcd4dd8e010644340f54e36cf47e64b2f158d1..81fc3b228ed7ac9d6e038c26b753b40628a489e5 100644 GIT binary patch delta 299 zcmV+`0o4BV0>uK5BYy!5NklJ zqEXAK>hBELIT%My0f~`($ournZON@?xf34&lpD?Os!DPwWFvT6LhsuZMOqK-hk0TY?#G%69QOW=S002ovPDHLkV1i