From e82ff4781af2c5e0db7552b9ae43d615fb3895fa Mon Sep 17 00:00:00 2001 From: FossFanatic Date: Fri, 24 Feb 2023 13:52:04 +0000 Subject: [PATCH 1/5] Add grass palette nodes in a special group This commit adds any nodes which make use of a grass palette to a `grass_palette` group, to avoid having to create a list of said nodes every time. --- mods/ITEMS/mcl_core/functions.lua | 3 ++- mods/ITEMS/mcl_core/nodes_base.lua | 4 ++-- mods/ITEMS/mcl_core/nodes_cactuscane.lua | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mods/ITEMS/mcl_core/functions.lua b/mods/ITEMS/mcl_core/functions.lua index b211fe008..ac03c1113 100644 --- a/mods/ITEMS/mcl_core/functions.lua +++ b/mods/ITEMS/mcl_core/functions.lua @@ -1511,7 +1511,7 @@ end -- -- The snowable nodes also MUST have _mcl_snowed defined to contain the name -- of the snowed node. -function mcl_core.register_snowed_node(itemstring_snowed, itemstring_clear, tiles, sounds, clear_colorization, desc) +function mcl_core.register_snowed_node(itemstring_snowed, itemstring_clear, tiles, sounds, clear_colorization, desc, grass_palette) local def = table.copy(minetest.registered_nodes[itemstring_clear]) local create_doc_alias if def.description then @@ -1525,6 +1525,7 @@ function mcl_core.register_snowed_node(itemstring_snowed, itemstring_clear, tile def._doc_items_usagehelp = nil def._doc_items_create_entry = false def.groups.not_in_creative_inventory = 1 + def.groups.grass_palette = grass_palette if def.groups.grass_block == 1 then def.groups.grass_block_no_snow = nil def.groups.grass_block_snow = 1 diff --git a/mods/ITEMS/mcl_core/nodes_base.lua b/mods/ITEMS/mcl_core/nodes_base.lua index 8c7d19e9e..6da9d8357 100644 --- a/mods/ITEMS/mcl_core/nodes_base.lua +++ b/mods/ITEMS/mcl_core/nodes_base.lua @@ -380,7 +380,7 @@ minetest.register_node("mcl_core:dirt_with_grass", { handy = 1, shovely = 1, dirt = 2, grass_block = 1, grass_block_no_snow = 1, soil = 1, soil_sapling = 2, soil_sugarcane = 1, cultivatable = 2, spreading_dirt_type = 1, enderman_takable = 1, building_block = 1, - compostability = 30, path_creation_possible=1 + compostability = 30, path_creation_possible = 1, grass_palette = 1 }, drop = "mcl_core:dirt", sounds = mcl_sounds.node_sound_dirt_defaults({ @@ -401,7 +401,7 @@ minetest.register_node("mcl_core:dirt_with_grass", { _mcl_hardness = 0.6, _mcl_silk_touch_drop = true, }) -mcl_core.register_snowed_node("mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_grass", nil, nil, true, S("Dirt with Snow")) +mcl_core.register_snowed_node("mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_grass", nil, nil, true, S("Dirt with Snow"), 1) minetest.register_node("mcl_core:grass_path", { tiles = {"mcl_core_grass_path_top.png", "default_dirt.png", "mcl_core_grass_path_side.png"}, diff --git a/mods/ITEMS/mcl_core/nodes_cactuscane.lua b/mods/ITEMS/mcl_core/nodes_cactuscane.lua index cb33a6f3e..79b440f61 100644 --- a/mods/ITEMS/mcl_core/nodes_cactuscane.lua +++ b/mods/ITEMS/mcl_core/nodes_cactuscane.lua @@ -84,7 +84,7 @@ minetest.register_node("mcl_core:reeds", { stack_max = 64, groups = { dig_immediate = 3, craftitem = 1, deco_block = 1, dig_by_piston = 1, - plant = 1, non_mycelium_plant = 1, compostability = 50 + plant = 1, non_mycelium_plant = 1, compostability = 50, grass_palette = 1 }, sounds = mcl_sounds.node_sound_leaves_defaults(), node_placement_prediction = "", From b4d41d12840963dccf9dea5ae60bf0c00e3226f3 Mon Sep 17 00:00:00 2001 From: FossFanatic Date: Fri, 24 Feb 2023 13:53:35 +0000 Subject: [PATCH 2/5] Prepare some things for future additions Adds a couple of lines of code in preparation for when I try to add biome coloured potted ferns, which currently use a fixed colour instead of the biome's colour. --- mods/ITEMS/mcl_flowerpots/init.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_flowerpots/init.lua b/mods/ITEMS/mcl_flowerpots/init.lua index 4d45e6ffd..c5070a51e 100644 --- a/mods/ITEMS/mcl_flowerpots/init.lua +++ b/mods/ITEMS/mcl_flowerpots/init.lua @@ -70,16 +70,18 @@ function mcl_flowerpots.register_potted_flower(name, def) drawtype = "mesh", mesh = "flowerpot.obj", tiles = { - "[combine:32x32:0,0=mcl_flowerpots_flowerpot.png:0,0=" .. def.image, + "[combine:32x32:0,0=mcl_flowerpots_flowerpot.png:0,0=" .. def.image .. ":0,0=mcl_flowerpots_flowerpot.png", }, use_texture_alpha = "clip", visual_scale = 0.5, paramtype = "light", + paramtype2 = def.paramtype2, + palette = def.palette, sunlight_propagates = true, selection_box = pot_box, collision_box = pot_box, is_ground_content = false, - groups = { dig_immediate = 3, attached_node = 1, dig_by_piston = 1, not_in_creative_inventory = 1, flower_pot = 2 }, + groups = { dig_immediate = 3, attached_node = 1, dig_by_piston = 1, not_in_creative_inventory = 1, flower_pot = 2, grass_palette = def.grass_palette_group }, sounds = mcl_sounds.node_sound_stone_defaults(), on_rightclick = function(pos, item, clicker) local player_name = clicker:get_player_name() From 260a76e5ee1d1792da5961cd7ca1ceff49d86ec8 Mon Sep 17 00:00:00 2001 From: FossFanatic Date: Fri, 24 Feb 2023 13:55:48 +0000 Subject: [PATCH 3/5] Add grass palette nodes in a special group & more This commit adds any nodes which make use of a grass palette to a `grass_palette` group, to avoid having to create a list of said nodes every time. I also added one line of code to potted ferns, in preparation for when I get to adding biome coloured potted ferns, which currently use a fixed colour instead of the biome's colour. --- mods/ITEMS/mcl_flowers/init.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_flowers/init.lua b/mods/ITEMS/mcl_flowers/init.lua index acc59e104..e89d01b65 100644 --- a/mods/ITEMS/mcl_flowers/init.lua +++ b/mods/ITEMS/mcl_flowers/init.lua @@ -156,7 +156,7 @@ local def_tallgrass = { handy = 1, shearsy = 1, attached_node = 1, deco_block = 1, plant = 1, place_flowerlike = 2, non_mycelium_plant = 1, flammable = 3, fire_encouragement = 60, fire_flammability = 100, - dig_by_water = 1, destroy_by_lava_flow = 1, compostability = 30 + dig_by_water = 1, destroy_by_lava_flow = 1, compostability = 30, grass_palette = 1 }, sounds = mcl_sounds.node_sound_leaves_defaults(), drop = wheat_seed_drop, @@ -190,6 +190,7 @@ if has_mcl_flowerpots then name = "fern", desc = S("Fern"), image = "mcl_flowers_fern_inv.png", + grass_palette_group = 1 }) end @@ -206,7 +207,7 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im attached_node = 1, deco_block = 1, dig_by_water = 1, destroy_by_lava_flow = 1, dig_by_piston = 1, flammable = 2, fire_encouragement = 60, fire_flammability = 100, - plant = 1, double_plant = 1, non_mycelium_plant = 1, compostability = 65 + plant = 1, double_plant = 1, non_mycelium_plant = 1, compostability = 65, grass_palette = nil } if name == "double_grass" then bottom_groups.compostability = 50 @@ -223,6 +224,7 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im if grass_color then paramtype2 = "color" palette = "mcl_core_palette_grass.png" + bottom_groups.grass_palette = 1 end if longdesc == nil then bottom_groups.not_in_creative_inventory = 1 From b80dd0294c3bf215dd49e4787462372d63f1296d Mon Sep 17 00:00:00 2001 From: FossFanatic Date: Fri, 24 Feb 2023 13:57:35 +0000 Subject: [PATCH 4/5] Change the grass LBM & generator This commit makes the grass LBM & generator look for nodes in the `grass_palette` group, instead of looking at a local list. --- mods/MAPGEN/mcl_mapgen_core/init.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mods/MAPGEN/mcl_mapgen_core/init.lua b/mods/MAPGEN/mcl_mapgen_core/init.lua index 7885d66c3..b9d0e5b48 100644 --- a/mods/MAPGEN/mcl_mapgen_core/init.lua +++ b/mods/MAPGEN/mcl_mapgen_core/init.lua @@ -345,15 +345,13 @@ local function world_structure(vm, data, data2, emin, emax, area, minp, maxp, bl return lvm_used, lvm_used, deco, ores end -local affected_grass_blocks = {"mcl_core:dirt_with_grass", "mcl_flowers:tallgrass", "mcl_flowers:double_grass", "mcl_flowers:double_grass_top", "mcl_flowers:fern", "mcl_flowers:double_fern", "mcl_flowers:double_fern_top", "mcl_core:reeds", "mcl_core:dirt_with_grass_snow"} - local function block_fixes_grass(vm, data, data2, emin, emax, area, minp, maxp, blockseed) local biomemap = minetest.get_mapgen_object("biomemap") local lvm_used = false local pr = PseudoRandom(blockseed) if minp.y <= mcl_vars.mg_overworld_max and maxp.y >= mcl_vars.mg_overworld_min then -- Set param2 (=color) of nodes which use the grass colour palette. - lvm_used = set_grass_palette(minp,maxp,data2,area,biomemap,affected_grass_blocks) + lvm_used = set_grass_palette(minp,maxp,data2,area,biomemap,{"group:grass_palette"}) end return lvm_used end @@ -424,7 +422,7 @@ end, 100, true) minetest.register_lbm({ label = "Fix grass palette indexes", -- This LBM fixes any incorrect grass palette indexes. name = "mcl_mapgen_core:fix_grass_palette_indexes", - nodenames = affected_grass_blocks, + nodenames = {"group:grass_palette"}, run_at_every_load = false, action = function(pos, node) local grass_palette_index = mcl_util.get_palette_indexes_from_pos(pos).grass_palette_index From 261b5dda987bec327e634cf431b5fd8aac3c12e1 Mon Sep 17 00:00:00 2001 From: FossFanatic Date: Fri, 24 Feb 2023 14:04:39 +0000 Subject: [PATCH 5/5] Remove excessive code This removes a piece of excessive code, which I accidentally left behind. --- mods/ITEMS/mcl_flowerpots/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_flowerpots/init.lua b/mods/ITEMS/mcl_flowerpots/init.lua index c5070a51e..14350fac6 100644 --- a/mods/ITEMS/mcl_flowerpots/init.lua +++ b/mods/ITEMS/mcl_flowerpots/init.lua @@ -70,7 +70,7 @@ function mcl_flowerpots.register_potted_flower(name, def) drawtype = "mesh", mesh = "flowerpot.obj", tiles = { - "[combine:32x32:0,0=mcl_flowerpots_flowerpot.png:0,0=" .. def.image .. ":0,0=mcl_flowerpots_flowerpot.png", + "[combine:32x32:0,0=mcl_flowerpots_flowerpot.png:0,0=" .. def.image, }, use_texture_alpha = "clip", visual_scale = 0.5,