From 72f5591400f29e50200ada511b938a07ae758b80 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Tue, 14 Nov 2017 23:44:53 +0100 Subject: [PATCH] Add dry-colored grass/fern variants --- mods/ENTITIES/mobs_mc_gameconfig/init.lua | 6 +- mods/ITEMS/mcl_core/functions.lua | 10 +- mods/ITEMS/mcl_core/nodes_base.lua | 26 ++- mods/ITEMS/mcl_core/nodes_trees.lua | 2 +- .../mcl_core/textures/default_dry_grass.png | Bin 0 -> 171 bytes .../textures/default_dry_grass_side.png | Bin 0 -> 183 bytes .../ITEMS/mcl_core/textures/default_grass.png | Bin 171 -> 428 bytes .../mcl_core/textures/default_grass_side.png | Bin 183 -> 306 bytes mods/ITEMS/mcl_dye/init.lua | 28 ++- mods/ITEMS/mcl_farming/shared_functions.lua | 2 +- mods/ITEMS/mcl_flowers/init.lua | 175 +++++++++++------- .../mcl_flowers_double_plant_fern_bottom.png | Bin 388 -> 192 bytes ...l_flowers_double_plant_fern_bottom_dry.png | Bin 0 -> 192 bytes .../mcl_flowers_double_plant_fern_top.png | Bin 372 -> 178 bytes .../mcl_flowers_double_plant_fern_top_dry.png | Bin 0 -> 178 bytes .../mcl_flowers_double_plant_grass_bottom.png | Bin 421 -> 224 bytes ..._flowers_double_plant_grass_bottom_dry.png | Bin 0 -> 224 bytes .../mcl_flowers_double_plant_grass_top.png | Bin 364 -> 166 bytes ...mcl_flowers_double_plant_grass_top_dry.png | Bin 0 -> 166 bytes .../mcl_flowers/textures/mcl_flowers_fern.png | Bin 396 -> 202 bytes .../textures/mcl_flowers_fern_dry.png | Bin 0 -> 202 bytes .../textures/mcl_flowers_tallgrass.png | Bin 390 -> 196 bytes .../textures/mcl_flowers_tallgrass_dry.png | Bin 0 -> 196 bytes mods/ITEMS/mcl_tools/init.lua | 2 +- .../minetest-3d_armor/wieldview/transform.lua | 2 + mods/MAPGEN/mcl_biomes/init.lua | 76 +++++--- mods/MAPGEN/mcl_mapgen_core/init.lua | 25 ++- tools/Texture_Converter.py | 29 +-- 28 files changed, 256 insertions(+), 127 deletions(-) create mode 100644 mods/ITEMS/mcl_core/textures/default_dry_grass.png create mode 100644 mods/ITEMS/mcl_core/textures/default_dry_grass_side.png create mode 100644 mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_bottom_dry.png create mode 100644 mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_top_dry.png create mode 100644 mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_bottom_dry.png create mode 100644 mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_top_dry.png create mode 100644 mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern_dry.png create mode 100644 mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass_dry.png diff --git a/mods/ENTITIES/mobs_mc_gameconfig/init.lua b/mods/ENTITIES/mobs_mc_gameconfig/init.lua index a41a8b448..fbeb3d495 100644 --- a/mods/ENTITIES/mobs_mc_gameconfig/init.lua +++ b/mods/ENTITIES/mobs_mc_gameconfig/init.lua @@ -150,7 +150,9 @@ mobs_mc.override.replace = { -- Sheep eat grass sheep = { { "mcl_core:dirt_with_grass", "mcl_core:dirt", -1 }, + { "mcl_core:dirt_with_dry_grass", "mcl_core:dirt", -1 }, { "mcl_flowers:tallgrass", "air", 0 }, + { "mcl_flowers:tallgrass_dry", "air", 0 }, }, -- Silverfish populate stone, etc. with monster eggs silverfish = { @@ -195,13 +197,13 @@ mobs_mc.override.spawn = { grassland_savanna = { mobs_mc.override.items.grass_block, "group:sand", "mcl_core:sandstone", "mcl_core:redsandstone" }, desert = { "group:sand" }, jungle = { "mcl_core:jungletree", "mcl_core:jungleleaves", "mcl_flowers:fern", "mcl_core:vine" }, - snow = { "mcl_core:snow", "mcl_core:snowblock", "mcl_core:dirt_with_grass_snow" }, + snow = { "mcl_core:snow", "mcl_core:snowblock", "mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_dry_grass_snow" }, -- End stone added for shulkers because End cities don't generate yet end_city = { "mcl_end:end_stone", "mcl_end:purpur_block" }, nether = { "mcl_nether:netherrack", "mcl_nether:quartz_ore" }, -- Netherrack added because there are no Nether fortresses yet. TODO: Remove netherrac from list as soon they're available nether_fortress = { "mcl_nether:nether_brick", "mcl_nether:netherrack" }, - wolf = { mobs_mc.override.items.grass_block, "mcl_core:dirt", "mcl_core:dirt_with_grass_snow", "mcl_core:snow", "mcl_core:snowblock", "mcl_core:podzol" }, + wolf = { mobs_mc.override.items.grass_block, "mcl_core:dirt", "mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_dry_grass_snow", "mcl_core:snow", "mcl_core:snowblock", "mcl_core:podzol" }, } -- This table contains important spawn height references for the mob spawn height. diff --git a/mods/ITEMS/mcl_core/functions.lua b/mods/ITEMS/mcl_core/functions.lua index f008d66f6..a4855063f 100644 --- a/mods/ITEMS/mcl_core/functions.lua +++ b/mods/ITEMS/mcl_core/functions.lua @@ -645,7 +645,7 @@ local grass_spread_randomizer = PseudoRandom(minetest.get_mapgen_setting("seed") minetest.register_abm({ label = "Grass Block and Mycelium spread", nodenames = {"mcl_core:dirt"}, - neighbors = {"air", "mcl_core:dirt_with_grass", "mcl_core:mycelium"}, + neighbors = {"air", "group:grass_block", "mcl_core:mycelium"}, interval = 30, chance = 20, catch_up = false, @@ -1190,6 +1190,12 @@ end -- of the snowed node. mcl_core.register_snowed_node = function(itemstring_snowed, itemstring_clear, tiles, sounds) local def = table.copy(minetest.registered_nodes[itemstring_clear]) + local create_doc_alias + if def.description then + create_doc_alias = true + else + create_doc_alias = false + end -- Just some group clearing def.description = nil def._doc_items_longdesc = nil @@ -1224,7 +1230,7 @@ mcl_core.register_snowed_node = function(itemstring_snowed, itemstring_clear, ti -- Register stuff minetest.register_node(itemstring_snowed, def) - if minetest.get_modpath("doc") then + if create_doc_alias and minetest.get_modpath("doc") then doc.add_entry_alias("nodes", itemstring_clear, "nodes", itemstring_snowed) end end diff --git a/mods/ITEMS/mcl_core/nodes_base.lua b/mods/ITEMS/mcl_core/nodes_base.lua index 0aa6a041e..b8ed7628d 100644 --- a/mods/ITEMS/mcl_core/nodes_base.lua +++ b/mods/ITEMS/mcl_core/nodes_base.lua @@ -295,6 +295,7 @@ minetest.register_node("mcl_core:diorite_smooth", { _mcl_hardness = 1.5, }) +-- Grass Block minetest.register_node("mcl_core:dirt_with_grass", { description = "Grass Block", _doc_items_longdesc = "A grass block is dirt with a grass cover. Grass blocks are resourceful blocks which allow the growth of all sorts of plants. They can be turned into farmland with a hoe and turned into grass paths with a shovel. In light, the grass slowly spreads onto dirt nearby. Under an opaque block or a liquid, a grass block may turn back to dirt.", @@ -302,7 +303,7 @@ minetest.register_node("mcl_core:dirt_with_grass", { tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, is_ground_content = true, stack_max = 64, - groups = {handy=1,shovely=1, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, spreading_dirt_type=1, enderman_takable=1, building_block=1}, + groups = {handy=1,shovely=1, grass_block=1, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, spreading_dirt_type=1, enderman_takable=1, building_block=1}, drop = 'mcl_core:dirt', sounds = mcl_sounds.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, @@ -314,6 +315,29 @@ minetest.register_node("mcl_core:dirt_with_grass", { }) mcl_core.register_snowed_node("mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_grass") +-- Grass Block variant for dry biomes +minetest.register_node("mcl_core:dirt_with_dry_grass", { + _doc_items_create_entry = false, + tiles = {"default_dry_grass.png", "default_dirt.png", "default_dirt.png^default_dry_grass_side.png"}, + is_ground_content = true, + stack_max = 64, + groups = {handy=1,shovely=1, grass_block=1, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, spreading_dirt_type=1, enderman_takable=1, building_block=1, not_in_creative_inventory=1}, + drop = 'mcl_core:dirt', + sounds = mcl_sounds.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), + on_construct = mcl_core.on_snowable_construct, + _mcl_snowed = "mcl_core:dirt_with_dry_grass_snow", + _mcl_blast_resistance = 3, + _mcl_hardness = 0.6, +}) +mcl_core.register_snowed_node("mcl_core:dirt_with_dry_grass_snow", "mcl_core:dirt_with_dry_grass") + +if minetest.get_modpath("doc") then + doc.add_entry_alias("nodes", "mcl_core:dirt_with_grass", "nodes", "mcl_core:dirt_with_dry_grass") + doc.add_entry_alias("nodes", "mcl_core:dirt_with_grass", "nodes", "mcl_core:dirt_with_dry_grass_snow") +end + minetest.register_node("mcl_core:grass_path", { tiles = {"mcl_core_grass_path_top.png", "default_dirt.png", "mcl_core_grass_path_side.png"}, description = "Grass Path", diff --git a/mods/ITEMS/mcl_core/nodes_trees.lua b/mods/ITEMS/mcl_core/nodes_trees.lua index d2ed7d067..75241d8c8 100644 --- a/mods/ITEMS/mcl_core/nodes_trees.lua +++ b/mods/ITEMS/mcl_core/nodes_trees.lua @@ -112,7 +112,7 @@ local register_sapling = function(subname, description, longdesc, texture, selbo local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z}) if not node_below then return false end local nn = node_below.name - return (nn=="mcl_core:dirt_with_grass" or nn=="mcl_core:dirt_with_grass_snow" or + return ((minetest.get_item_group(nn, "grass_block") == 1) or nn=="mcl_core:podzol" or nn=="mcl_core:podzol_snow" or nn=="mcl_core:dirt") end), diff --git a/mods/ITEMS/mcl_core/textures/default_dry_grass.png b/mods/ITEMS/mcl_core/textures/default_dry_grass.png new file mode 100644 index 0000000000000000000000000000000000000000..e610678a629d2b865eac6e1b443c9479e07d17d9 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRdCT0c(hNQXTpBNYzcmjMvT$95L(^9Q-OPwP8 zw3rt??_*$Ki1KuC45?sDPT&YgNJ`+lIOD*9e@?}=&f3Srv)fvGq)jBIZ7@wSh)G}F znQl?@l~o#1= z=zqIkcqg;3ZrAM{dGlnXORe3cH^c_Zy;bvj{q?r-=g4^#t3K+Rm>f76aq+6;2?nD^ gi8CBa=P)uXxF&a_T3|vA0|Nttr>mdKI;Vst0B(^%EC2ui literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_core/textures/default_grass.png b/mods/ITEMS/mcl_core/textures/default_grass.png index c0ec17276a09b727ecd169a04a05bd5e7249c295..56176e5ee73cfa906cbd7c0155f3fb9241849247 100644 GIT binary patch delta 414 zcmZ3@xQ2OxL_G^L0|Ud`yN`kx7#LX69eo`c7&i8E|4C$JU|>*4_6YK2V5m}KU}$Jz zVEDzrz|io5fuYoZf#FpG1B2BJ1_tqhIlBUF7#JA%1AIbU&4TpJ6D+Os9SpoQ|NsAA zyXf~^1_lPkByV>Ymi~;JfeZ``oCO|{#S9F5dqJ4dz5e%vwG0dl>?NMQuIvxkm;^Zu zMAgo%W?*1Q^mK6y;kYi_+sMhF$iu8(+88GO;x*H+cl&R@c2<~hKvqD)T=mW;##^($ zeeq@6xtM3yg#(k`UD*@adn+v`E%KvZiNR@Ws|`Ay-tf z3>vnHA`A?%jt&eW0fG$-0j%O17+6``uP~?zwTdw;5ozTD02F9#6(nYRCp-WE002ov JPDHLkV1jCdFpK~I diff --git a/mods/ITEMS/mcl_core/textures/default_grass_side.png b/mods/ITEMS/mcl_core/textures/default_grass_side.png index d65d050bfbc1e275ee871e95fce5a59bac34debf..a44b9788f982748a830d7f5ff105e19f296e588d 100644 GIT binary patch delta 291 zcmV+;0o?w#0kQ&+7=H)`0000V^Z#K00004VQb$4nuFf3k0002&Nkl_zI*<0V%8${D?&e3m0ftAjMJ+;8)GOee-tS zt~#8K6Mz>9*Ji-hz}akp6$Q?x7IqOUtt6wC&8-M;QtQEaWEz@6D`g5Ap; zVJs`oAD_xPUz-8Z;s%!QFw_I4XzA+?FPh^j{=ngMoJ{e{lMV^91b{BT;HNQd{=?V# pTfM&Tr{}jl{~Ut->IWXUhZ~7`XfDHhgG~Sc002ovPDHLkV1gmUgUA2? delta 167 zcmV;Y09gOB0=EH>7=Hu<0002(-QrRJ000tDOjJcKSv)akLM==&Hg!oRJSG4D03FWD zBme*a26R$RQ~&?}|Nj89zofqa002%&L_t(|0Sv*l0e~R@h>zqz{yzA)gT$j05X9X%m}5N0RW)Z V9@u*jkbD3D002ovPDHLkV1jU4KS=-p diff --git a/mods/ITEMS/mcl_dye/init.lua b/mods/ITEMS/mcl_dye/init.lua index dc8c871aa..4647d30ea 100644 --- a/mods/ITEMS/mcl_dye/init.lua +++ b/mods/ITEMS/mcl_dye/init.lua @@ -137,7 +137,7 @@ mcl_dye.apply_bone_meal = function(pointed_thing) -- Must be on a dirt-type block local below = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}) - if below.name ~= "mcl_core:mycelium" and below.name ~= "mcl_core:dirt" and below.name ~= "mcl_core:dirt_with_grass" and below.name ~= "mcl_core:coarse_dirt" and below.name ~= "mcl_core:podzol" then + if below.name ~= "mcl_core:mycelium" and below.name ~= "mcl_core:dirt" and minetest.get_item_group(below.name, "grass_block") ~= 1 and below.name ~= "mcl_core:coarse_dirt" and below.name ~= "mcl_core:podzol" then return false end @@ -206,7 +206,7 @@ mcl_dye.apply_bone_meal = function(pointed_thing) -- Cocoa: Advance by 1 stage mcl_cocoas.grow(pos) return true - elseif n.name == "mcl_core:dirt_with_grass" or n.name == "mcl_core:dirt_with_grass_snow" then + elseif minetest.get_item_group(n.name, "grass_block") == 1 then -- Grass Block: Generate tall grass and random flowers all over the place for i = -2, 2 do for j = -2, 2 do @@ -215,12 +215,16 @@ mcl_dye.apply_bone_meal = function(pointed_thing) n = minetest.get_node(pos) local n2 = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}) - if n.name ~= "" and n.name == "air" and (n2.name == "mcl_core:dirt_with_grass" or n2.name == "mcl_core:dirt_with_grass_snow") then + if n.name ~= "" and n.name == "air" and (minetest.get_item_group(n2.name, "grass_block") == 1) and (minetest.get_item_group(n2.name, "snowed") == 0) then -- Randomly generate flowers, tall grass or nothing if math.random(1,100) <= 90 then -- 90% tall grass, 10% flower if math.random(1,100) <= 90 then - minetest.add_node(pos, {name="mcl_core:tallgrass"}) + if n2.name == "mcl_core:dirt_with_dry_grass" then + minetest.add_node(pos, {name="mcl_flowers:tallgrass_dry"}) + else + minetest.add_node(pos, {name="mcl_flowers:tallgrass"}) + end else minetest.add_node(pos, {name=flowers_table[math.random(1, #flowers_table)]}) end @@ -253,6 +257,14 @@ mcl_dye.apply_bone_meal = function(pointed_thing) minetest.set_node(toppos, { name = "mcl_flowers:double_grass_top" }) return true end + elseif n.name == "mcl_flowers:tallgrass_dry" then + local toppos = { x=pos.x, y=pos.y+1, z=pos.z } + local topnode = minetest.get_node(toppos) + if minetest.registered_nodes[topnode.name].buildable_to then + minetest.set_node(pos, { name = "mcl_flowers:double_grass_dry" }) + minetest.set_node(toppos, { name = "mcl_flowers:double_grass_dry_top" }) + return true + end elseif n.name == "mcl_flowers:fern" then -- Fern: Grow into large fern @@ -263,6 +275,14 @@ mcl_dye.apply_bone_meal = function(pointed_thing) minetest.set_node(toppos, { name = "mcl_flowers:double_fern_top" }) return true end + elseif n.name == "mcl_flowers:fern_dry" then + local toppos = { x=pos.x, y=pos.y+1, z=pos.z } + local topnode = minetest.get_node(toppos) + if minetest.registered_nodes[topnode.name].buildable_to then + minetest.set_node(pos, { name = "mcl_flowers:double_fern_dry" }) + minetest.set_node(toppos, { name = "mcl_flowers:double_fern_dry_top" }) + return true + end end return false diff --git a/mods/ITEMS/mcl_farming/shared_functions.lua b/mods/ITEMS/mcl_farming/shared_functions.lua index 486f93593..28e397e85 100644 --- a/mods/ITEMS/mcl_farming/shared_functions.lua +++ b/mods/ITEMS/mcl_farming/shared_functions.lua @@ -322,7 +322,7 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s floor = minetest.get_node(floorpos) local block = minetest.get_node(blockpos) local soilgroup = minetest.get_item_group(floor.name, "soil") - if not ((floor.name=="mcl_core:dirt_with_grass" or floor.name=="mcl_core:dirt_with_grass_snow" or floor.name=="mcl_core:dirt" or soilgroup == 2 or soilgroup == 3) and block.name == "air") then + if not ((minetest.get_item_group(floor.name, "grass_block") == 1 or floor.name=="mcl_core:dirt" or soilgroup == 2 or soilgroup == 3) and block.name == "air") then table.remove(neighbors, n) end end diff --git a/mods/ITEMS/mcl_flowers/init.lua b/mods/ITEMS/mcl_flowers/init.lua index 852f305c6..d5b450edd 100644 --- a/mods/ITEMS/mcl_flowers/init.lua +++ b/mods/ITEMS/mcl_flowers/init.lua @@ -22,7 +22,7 @@ local on_place_flower = mcl_util.generate_on_place_plant_function(function(pos, if (light_night and light_night >= 8) or (light_day and light_day >= minetest.LIGHT_MAX) then light_ok = true end - return (soil_node.name == "mcl_core:dirt" or soil_node.name == "mcl_core:dirt_with_grass" or soil_node.name == "mcl_core:dirt_with_grass_snow" or soil_node.name == "mcl_core:coarse_dirt" or soil_node.name == "mcl_core:podzol" or soil_node.name == "mcl_core:podzol_snow") and light_ok + return (soil_node.name == "mcl_core:dirt" or minetest.get_item_group(soil_node.name, "grass_block") == 1 or soil_node.name == "mcl_core:coarse_dirt" or soil_node.name == "mcl_core:podzol" or soil_node.name == "mcl_core:podzol_snow") and light_ok end) local function add_simple_flower(name, desc, image, simple_selection_box) @@ -74,68 +74,96 @@ local wheat_seed_drop = { } } --- Tall Grass -minetest.register_node("mcl_flowers:tallgrass", { - description = "Tall Grass", - _doc_items_longdesc = "Tall grass is a small plant which often occours on the surface of grasslands. It can be harvested for wheat seeds. By using bone meal, tall grass can be turned into double tallgrass which is two blocks high.", - _doc_items_hidden = false, - drawtype = "plantlike", - waving = 1, - tiles = {"mcl_flowers_tallgrass.png"}, - inventory_image = "mcl_flowers_tallgrass.png", - wield_image = "mcl_flowers_tallgrass.png", - selection_box = { - type = "fixed", - fixed = {{ -6/16, -8/16, -6/16, 6/16, 8/16, 6/16 }}, - }, - paramtype = "light", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - is_ground_content = true, +-- Tall Grass and Fern +for i=1,2 do -- CHECKME: How does tall grass behave when pushed by a piston? - groups = {dig_immediate=3, flammable=3,attached_node=1,plant=1,place_flowerlike=1,non_mycelium_plant=1,dig_by_water=1,destroy_by_lava_flow=1,deco_block=1}, - sounds = mcl_sounds.node_sound_leaves_defaults(), - drop = wheat_seed_drop, - _mcl_shears_drop = true, - node_placement_prediction = "", - on_place = on_place_flower, - _mcl_blast_resistance = 0, - _mcl_hardness = 0, -}) + local tgf_groups = {dig_immediate=3, flammable=3,attached_node=1,plant=1,place_flowerlike=1,non_mycelium_plant=1,dig_by_water=1,destroy_by_lava_flow=1,deco_block=1} ---- Fern --- -minetest.register_node("mcl_flowers:fern", { - description = "Fern", - _doc_items_longdesc = "Ferns are small plants which occour naturally in grasslands. They can be harvested for wheat seeds. By using bone meal, a fern can be turned into a large fern which is two blocks high.", - drawtype = "plantlike", - waving = 1, - tiles = { "mcl_flowers_fern.png" }, - inventory_image = "mcl_flowers_fern.png", - wield_image = "mcl_flowers_fern.png", - sunlight_propagates = true, - paramtype = "light", - walkable = false, - stack_max = 64, - -- CHECKME: How does a fern behave when pushed by a piston? - groups = {dig_immediate=3,flammable=2,attached_node=1,plant=1,place_flowerlike=1,non_mycelium_plant=1,dig_by_water=1,destroy_by_lava_flow=1,deco_block=1}, - buildable_to = true, - sounds = mcl_sounds.node_sound_leaves_defaults(), - node_placement_prediction = "", - on_place = on_place_flower, - drop = wheat_seed_drop, - _mcl_shears_drop = true, - selection_box = { - type = "fixed", - fixed = { -4/16, -0.5, -4/16, 4/16, 7/16, 4/16 }, - }, -}) + local id, idf, longdesc, longdesc_fern, create_entry, shears_drop, shears_drop_fern + if i==1 then + id = "tallgrass" + idf = "fern" + longdesc = "Tall grass is a small plant which often occours on the surface of grasslands. It can be harvested for wheat seeds. By using bone meal, tall grass can be turned into double tallgrass which is two blocks high." + longdesc_fern = "Ferns are small plants which occour naturally in grasslands. They can be harvested for wheat seeds. By using bone meal, a fern can be turned into a large fern which is two blocks high." + hidden = false + shears_drop = true + shears_drop_fern = true + else + id = "tallgrass_dry" + idf = "fern_dry" + tgf_groups.not_in_creative_inventory = 1 + create_entry = false + shears_drop = {"mcl_flowers:tallgrass"} + shears_drop_fern = {"mcl_flowers:fern"} + end + + --- Tall Grass --- + minetest.register_node("mcl_flowers:"..id, { + description = "Tall Grass", + drawtype = "plantlike", + _doc_items_longdesc = longdesc, + _doc_items_hidden = hidden, + _doc_items_create_entry = create_entry, + waving = 1, + tiles = {"mcl_flowers_"..id..".png"}, + inventory_image = "mcl_flowers_"..id..".png", + wield_image = "mcl_flowers_"..id..".png", + selection_box = { + type = "fixed", + fixed = {{ -6/16, -8/16, -6/16, 6/16, 8/16, 6/16 }}, + }, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + is_ground_content = true, + groups = tgf_groups, + sounds = mcl_sounds.node_sound_leaves_defaults(), + drop = wheat_seed_drop, + _mcl_shears_drop = shears_drop, + node_placement_prediction = "", + on_place = on_place_flower, + _mcl_blast_resistance = 0, + _mcl_hardness = 0, + }) + + --- Fern --- + minetest.register_node("mcl_flowers:"..idf, { + description = "Fern", + _doc_items_longdesc = longdesc_fern, + _doc_items_create_entry = create_entry, + _doc_items_hidden = hidden, + drawtype = "plantlike", + waving = 1, + tiles = { "mcl_flowers_"..idf..".png" }, + inventory_image = "mcl_flowers_"..idf..".png", + wield_image = "mcl_flowers_"..idf..".png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + stack_max = 64, + groups = tgf_groups, + buildable_to = true, + sounds = mcl_sounds.node_sound_leaves_defaults(), + node_placement_prediction = "", + on_place = on_place_flower, + drop = wheat_seed_drop, + _mcl_shears_drop = shears_drop_fern, + selection_box = { + type = "fixed", + fixed = { -4/16, -0.5, -4/16, 4/16, 7/16, 4/16 }, + }, + }) +end + +doc.add_entry_alias("nodes", "mcl_flowers:tallgrass", "nodes", "mcl_flowers:tallgrass_dry") +doc.add_entry_alias("nodes", "mcl_flowers:fern", "nodes", "mcl_flowers:fern_dry") local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_img, selbox_radius, selbox_top_height, drop, shears_drop, is_flower) if not inv_img then inv_img = top_img end - local flowergroup, usagehelp + local flowergroup, usagehelp, noncreative, create_entry if is_flower == nil then is_flower = true end @@ -143,6 +171,11 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im flowergroup = 1 usagehelp = flowerusagehelp end + if longdesc == nil then + noncreative = 1 + create_entry = false + usagehelp = nil + end -- Drop itself by default local drop_bottom, drop_top if not drop then @@ -153,6 +186,7 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im end minetest.register_node("mcl_flowers:"..name, { description = desc, + _doc_items_create_entry = create_entry, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, drawtype = "plantlike", @@ -217,7 +251,7 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im -- * Allowed on dirt or grass block -- * Only with light level >= 8 -- * Only if two enough space - if (floorname == "mcl_core:dirt" or floorname == "mcl_core:dirt_with_grass" or floorname == "mcl_core:dirt_with_grass_snow" or floorname == "mcl_core:coarse_dirt" or floorname == "mcl_core:podzol" or floorname == "mcl_core:podzol_snow") and bottom_buildable and top_buildable and light_ok then + if (floorname == "mcl_core:dirt" or minetest.get_item_group(floorname, "grass_block") == 1 or floorname == "mcl_core:coarse_dirt" or floorname == "mcl_core:podzol" or floorname == "mcl_core:podzol_snow") and bottom_buildable and top_buildable and light_ok then -- Success! We can now place the flower minetest.sound_play(minetest.registered_nodes["mcl_flowers:"..name].sounds.place, {pos = bottom, gain=1}) minetest.set_node(bottom, {name="mcl_flowers:"..name}) @@ -236,7 +270,7 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im minetest.remove_node(top) end end, - groups = {dig_immediate=3,flammable=2,flower=flowergroup,place_flowerlike=1,non_mycelium_plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1, plant=1,double_plant=1,deco_block=1}, + groups = {dig_immediate=3,flammable=2,flower=flowergroup,place_flowerlike=1,non_mycelium_plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1, plant=1,double_plant=1,deco_block=1,not_in_creative_inventory=noncreative}, sounds = mcl_sounds.node_sound_leaves_defaults(), }) @@ -268,8 +302,9 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im sounds = mcl_sounds.node_sound_leaves_defaults(), }) - if minetest.get_modpath("doc") then + if minetest.get_modpath("doc") and longdesc then doc.add_entry_alias("nodes", "mcl_flowers:"..name, "nodes", "mcl_flowers:"..name.."_top") + -- If no longdesc, help alias must be added manually end end @@ -281,8 +316,24 @@ add_large_plant("lilac", "Lilac", "A lilac is a large plant which occupies two b -- TODO: Make the sunflower face East. Requires a mesh for the top node. add_large_plant("sunflower", "Sunflower", "A sunflower is a large plant which occupies two blocks. It is mainly used in dye production.", "mcl_flowers_double_plant_sunflower_bottom.png", "mcl_flowers_double_plant_sunflower_top.png^mcl_flowers_double_plant_sunflower_front.png", "mcl_flowers_double_plant_sunflower_front.png", 3/16, 4/16) -add_large_plant("double_grass", "Double Tallgrass", "Double tallgrass a variant of tall grass and occupies two blocks. It can be harvested for wheat seeds.", "mcl_flowers_double_plant_grass_bottom.png", "mcl_flowers_double_plant_grass_top.png", nil, 5/16, 7/16, wheat_seed_drop, {"mcl_flowers:tallgrass 2"}, false) -add_large_plant("double_fern", "Large Fern", "Large fern is a variant of fern and occupies two blocks. It can be harvested for wheat seeds.", "mcl_flowers_double_plant_fern_bottom.png", "mcl_flowers_double_plant_fern_top.png", nil, 6/16, 5/16, wheat_seed_drop, {"mcl_flowers:fern 2"}, false) +for i=1, 2 do + local longdesc_grass, longdesc_fern, dry + if i==1 then + longdesc_grass = "Double tallgrass a variant of tall grass and occupies two blocks. It can be harvested for wheat seeds." + longdesc_fern = "Large fern is a variant of fern and occupies two blocks. It can be harvested for wheat seeds." + dry = "" + else + -- ID/texture name modifier + dry = "_dry" + end + add_large_plant("double_grass"..dry, "Double Tallgrass", longdesc_grass, "mcl_flowers_double_plant_grass_bottom"..dry..".png", "mcl_flowers_double_plant_grass_top"..dry..".png", nil, 5/16, 7/16, wheat_seed_drop, {"mcl_flowers:tallgrass 2"}, false) + add_large_plant("double_fern"..dry, "Large Fern", longdesc_fern, "mcl_flowers_double_plant_fern_bottom"..dry..".png", "mcl_flowers_double_plant_fern_top"..dry..".png", nil, 6/16, 5/16, wheat_seed_drop, {"mcl_flowers:fern 2"}, false) +end + +doc.add_entry_alias("nodes", "mcl_flowers:double_grass", "nodes", "mcl_flowers:double_grass_dry") +doc.add_entry_alias("nodes", "mcl_flowers:double_grass", "nodes", "mcl_flowers:double_grass_dry_top") +doc.add_entry_alias("nodes", "mcl_flowers:double_fern", "nodes", "mcl_flowers:double_fern_dry") +doc.add_entry_alias("nodes", "mcl_flowers:double_fern", "nodes", "mcl_flowers:double_fern_dry_top") minetest.register_abm({ label = "Pop out flowers", @@ -299,7 +350,7 @@ minetest.register_abm({ return end -- Pop out flower if not on dirt, grass block or too low brightness - if (below.name ~= "mcl_core:dirt" and below.name ~= "mcl_core:dirt_with_grass" and below.name ~= "mcl_core:dirt_with_grass_snow") or (minetest.get_node_light(pos, 0.5) < 8) then + if (below.name ~= "mcl_core:dirt" and minetest.get_item_group(below.name, "grass_block") ~= 1) or (minetest.get_node_light(pos, 0.5) < 8) then minetest.dig_node(pos) return end diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_bottom.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_bottom.png index 448cdebaffdbb1f511b17e430f654accd0749314..c63d4dbf9b6ef02e03ee85f1ff39815a20f4b63e 100644 GIT binary patch delta 164 zcmV;V09*fr1Hb{0B!3l9OjJbx001pPBsX9=MTbi^QZFz{DLZdKYK*H=00001bW%=J z06^y0W&i*HSxH1eRCobn00KcJ1rTNI5Xb-q$tj^MX&@n`B-dag5Q9lcRZR&jry8i_ z08u3v$^g*?p&8UvLRs7rz=|D1z}gv{6qQsUlA%ytX{rHG)g6IK3{Z0zkQo5%LJUD+ S4X$$l0000k04(LhAK4%hK3dfhF=T}3=JHq)#-DjfL zGB7YOmIV0)GdMiEkp|)Xf6pjB9QfvaFeV&@<4JRY{WT>eOXY456|dhWr_P%tp)%Z=84>H@-{?Wnf@X zEpd$~Nl7e8O|nWZN=+gTe~DWM4ft4L_$ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_bottom_dry.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_bottom_dry.png new file mode 100644 index 0000000000000000000000000000000000000000..f65a1bf00ac03c8ebe8412e7483041d396770d48 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdoVYd_r6q7#MwA5Z z!we(*v~o+Gq)Rom85kHCOM?7@862M7NMm4Ni1c)E45?sDW?*tuWfe$$BXEL&?WE>H zolFJAr7G7Glm(hSJwtstb(Tx5c)}2{6iZByWO(DmJOBUy0d!JMQvg8b z*k%9#08U9nK~#7FV;}^Pxi=yKuv%q9M+LBuu_90{0BI8kBYu)F%K!iX07*qoM6N<$ Ef?U}g9RL6T delta 294 zcmdnQ_=RbLNt+ zz*rLG7tG-B>_!@hljQC0!j_n}qn3ezfxX1j*OmPtyO@Zu1^?6Qhh!KS82mk5978y+ zCnqQ{OpG+I-;k7+>g>+CVZuhG09}SmVRmIBkvI1l7#LJbTq81~t0|SGntDnm{r-UW|xZN*4 z_6YK2V5m}KU}$JzVEDzrz|io5fuYoZf#FpG1B2BJ1_tqhIlBUF7#J8N0(?ST85kH$ zeY6eJoy$F9QPuV@Z%-FoVOh8)+a;lDE4HyI5k!YX$}e z_7YEDSN4bOBElB@Pp==6VPIfz@pN$v;kcfhpde+?Bq*T4u#r)~dNl)QDkB?P+60Xb z1EwO079L3n-UKeu16HAu5+VncJbBh62(qcMEn|^jPO@lWWLRs$tWx@2ERunNLAAs+ zq9i4;B-JXpC^fMpmBGls&|KHRT-V4T#L&{p)Xd7zRNKJF%D~|At5sSk8glbfGSez? WYgn{hXc_|p1B0ilpUXO@geCyjt6e1k diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_top_dry.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_top_dry.png new file mode 100644 index 0000000000000000000000000000000000000000..c708e44b1051d1e125f278a30026acb29c5990a5 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdoVYd_r6q7#K>!v~x?H%3D3N zy;ajvt&_tH&+(oUW?*1oED7=pW^j0RBaMN9!QRuwF{FaA_t-{32Llm?3*RSSe(v)@ z_Sc3c*ExUNFI;#YdVYt3!=lHxHkfIJ%;Ej4XyqZ4l+M_%=@|IVULZbhtqHRVlb}Zr Q0|Nttr>mdKI;Vst05v5wHUIzs literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern.png index 7e6989fc8ad3852030e556f50ab1b4860b888c42..66a58b7b46c89d4c761cb46410f86f9738d4d031 100644 GIT binary patch delta 149 zcmV;G0BZk?1IhuABsdjNOjJbx00290KsR7HL4QX!QZFz{DJ?-HyX|h&00001bW%=J z06^y0W&i*HV@X6oRCobnzz>nU98!Wn0YeohVJAfapdO_ll@JF8238l>5JzKIpn#~L zh@xnq00W~^psG@cq5=bhQ>s#EsuEC5SXydWS_lIG2;2<}LXZ@400000NkvXXu0mjf D6V@${ delta 345 zcmX@b*uy+QrJg0-(btiIVPik{pF~y$1_p&>k04(LhAK4%hK3dfhF=T}3=JVjDtwp`h;MSzWg;|?!Ryxvg{1_lPz64!{5l*E!$tK_28#FA77 zBLhQoT?2DnBZCk_ODj_|D??Ll10yQ~gUhd0X~8s@f_3EPr(~v8;?}WfyU;WS1_lOC LS3j3^P6%(Gg{|3#U3}+gd;@1V-lfxG@tXR;oC}RNw z^WvZdtAaWfF)=p>uL{aoB^2Nr5tS7Y#lg(Lafg@3X@W=*0|Nttr>mdKI;Vst0OFQ8 A?*IS* literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass.png index 63394b15d57aa39cafdca912ff5b8c966f297508..cce0eba70cf6b934a836f3d569b2825d1f88e7b4 100644 GIT binary patch delta 83 zcmZo;KEgOb#X>Z|C&abjT)K6>gISQiW4*h1f~Bsbih-AAsTjvH1_lPkk|4ie28U-i n(ij*RVm)0PLn;`P75FCZi4a)T;2glfz`)??>gTe~DWM4f@ZJ~6 delta 278 zcmX@Y*v33TrJg0-(btiIVPik{pF~y$1_p&>k04(LhAK4%hK3dfhF=T}3=J;M1%w~9Kx zGB7YOmIV0)GdMiEkp|)0%UeCu zQmunsRU`bgq{Ix*F)%PNmIV0)GdMiEk;cHl5bNpU7*fHQtiZ=%WT4p~d4@@=he?5L zapPnImva|R3M@Ku;UdEtmlG}*IhJ^w^l&-qF`?0MhUW=Y7Y`N{