Add Grass Palette Group #3481
|
@ -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
|
||||
|
|
|
@ -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"},
|
||||
|
|
|
@ -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 = "",
|
||||
|
|
|
@ -75,11 +75,13 @@ function mcl_flowerpots.register_potted_flower(name, def)
|
|||
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()
|
||||
|
|
|
@ -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
|
||||
FossFanatic marked this conversation as resolved
|
||||
}
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Is this safe if it remains nil?
It should be safe, I think?
I messed around in a world on this branch and have encountered no issues so far.
The game interprets
nil
as0
when it comes to groups: https://minetest.gitlab.io/minetest/groups/#usageI wouldn't assume that from those docs:
"When not defined, the rating of a group defaults to 0."
You have defined it, so this probably isn't relevant.
"Thus when you read groups, you must interpret nil and 0 as the same value, 0."
This means we need to interpret nil and zero as the same value, it doesn't say anything about what they do. Have you tested just setting nil and trying to retrieve it? C++ is a statically typed language and it isn't as friendly as lua if you put a non int in an int unless they've wrapped that code.
I have set the
grass_palette
group of grass blocks tonil
just to check for any crashes, and nothing has crashed.Or is there a different way that you want me to test this out?
Nah. I think that is probably fine then. Thanks for checking. It puts my mind at rest.
No problem. I can see why some would be afraid of the usage of
nil
, though.Seems to be a case of déjà vu here as well.