Compare commits

..

1 Commits

Author SHA1 Message Date
Nils Dagsson Moskopp 6059b79785
Generate podzol when growing large spruce trees
When 4 spruce saplings are put into a 2×2 square, they may grow into a
large spruce tree. With this patch, dirt group group nodes nearby that
have air above and nodes under the stem are replaced by podzol nodes.

Note that this commit uses a different placement method than MineClone2
commit a83a2e9aba122d0fb4f1c120252a0d4eb07a1f10 to create one connected
podzol patch instead of randomly scattered nodes. It also places podzol
nodes in bulk at once for better performance.
2022-04-22 13:45:16 +02:00
17 changed files with 129 additions and 218 deletions

View File

@ -1 +0,0 @@
name = walkover

View File

@ -1 +0,0 @@
name = mcl_experience

View File

@ -1,2 +1 @@
name = mcl_formspec
description = Helper mod to simplify creation of formspecs a little bit

View File

@ -1 +0,0 @@
name = mcl_tmp_message

View File

@ -585,6 +585,69 @@ mcl_core.generate_spruce_tree = function(pos)
minetest.place_schematic({ x = pos.x - 3, y = pos.y - 1, z = pos.z - 3 }, path, "0", nil, false)
end
local vector_distance_xz = function(a, b)
return vector.distance(
{ x=a.x, y=0, z=a.z },
{ x=b.x, y=0, z=b.z }
)
end
local podzol_spread_randomizer = PseudoRandom(minetest.get_mapgen_setting("seed"))
local generate_spruce_podzol = function(pos)
local podzol_positions = {}
local podzol_positions_xz = {}
local add_podzol = function(position)
podzol_positions[#podzol_positions+1] = position
local x,z = position.x, position.z
if nil == podzol_positions_xz[x] then
podzol_positions_xz[x] = {}
end
podzol_positions_xz[x][z] = true
end
-- add podzol under tree
add_podzol( { x=pos.x+0, y=pos.y, z=pos.z+0 } )
add_podzol( { x=pos.x+0, y=pos.y, z=pos.z+1 } )
add_podzol( { x=pos.x+1, y=pos.y, z=pos.z+0 } )
add_podzol( { x=pos.x+1, y=pos.y, z=pos.z+1 } )
local corner_1 = { x=pos.x-5, y=pos.y-3, z=pos.z-5 }
local corner_2 = { x=pos.x+5, y=pos.y+3, z=pos.z+5 }
local dirt_positions = minetest.find_nodes_in_area_under_air(
corner_1,
corner_2,
{ "group:dirt" }
)
-- sort dirt positions according to distance from origin
table.sort(
dirt_positions,
function(a, b)
return vector_distance_xz(pos, a) < vector_distance_xz(pos, b)
end
)
-- spread podzol
for j=1, #dirt_positions do
local dirt_position = dirt_positions[j]
local distance = math.ceil(vector_distance_xz(pos, dirt_position) + 0.5)
local k = podzol_spread_randomizer:next(0, distance)
local x, z = dirt_position.x, dirt_position.z
if (
k < (10 - distance) and
not (podzol_positions_xz[x] and podzol_positions_xz[x][z]) and (
podzol_positions_xz[x] and podzol_positions_xz[x][z-1] or
podzol_positions_xz[x] and podzol_positions_xz[x][z+1] or
podzol_positions_xz[x-1] and podzol_positions_xz[x-1][z] or
podzol_positions_xz[x+1] and podzol_positions_xz[x+1][z]
)
) then
add_podzol(dirt_position)
end
end
minetest.bulk_set_node(
podzol_positions,
{ name = "mcl_core:podzol" }
)
end
mcl_core.generate_huge_spruce_tree = function(pos)
local r1 = math.random(1, 2)
local r2 = math.random(1, 4)
@ -601,6 +664,14 @@ mcl_core.generate_huge_spruce_tree = function(pos)
path = minetest.get_modpath("mcl_core") .. "/schematics/mcl_core_spruce_huge_up_"..r2..".mts"
end
minetest.place_schematic(vector.add(pos, offset), path, "0", nil, false)
generate_spruce_podzol(
-- position under +x/+z sapling
{
x = pos.x + offset.x + 4,
y = pos.y - 1,
z = pos.z + offset.z + 4
}
)
end
-- END of spruce tree functions --

View File

@ -18,21 +18,19 @@ minetest.register_node("mcl_farming:beetroot_0", {
_doc_items_longdesc = S("Beetroot plants are plants which grow on farmland under sunlight in 4 stages. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature."),
_doc_items_entry_name = S("Premature Beetroot Plant"),
paramtype = "light",
paramtype2 = "meshoptions",
sunlight_propagates = true,
-- keep place_param2 for plantlike drawtype compatiblity
place_param2 = 3,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
drawtype = "plantlike",
drop = "mcl_farming:beetroot_seeds",
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_beetroot_0.png") },
use_texture_alpha = "clip",
tiles = {"mcl_farming_beetroot_0.png"},
inventory_image = "mcl_farming_beetroot_0.png",
wield_image = "mcl_farming_beetroot_0.png",
selection_box = {
type = "fixed",
fixed = {
{-0.5, -9/16, -0.5, 0.5, -6/16, 0.5}
{-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
},
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
@ -44,21 +42,19 @@ minetest.register_node("mcl_farming:beetroot_1", {
description = S("Premature Beetroot Plant (Stage 2)"),
_doc_items_create_entry = false,
paramtype = "light",
paramtype2 = "meshoptions",
sunlight_propagates = true,
-- keep place_param2 for plantlike drawtype compatiblity
place_param2 = 3,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
drawtype = "plantlike",
drop = "mcl_farming:beetroot_seeds",
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_beetroot_1.png") },
use_texture_alpha = "clip",
tiles = {"mcl_farming_beetroot_1.png"},
inventory_image = "mcl_farming_beetroot_1.png",
wield_image = "mcl_farming_beetroot_1.png",
selection_box = {
type = "fixed",
fixed = {
{-0.5, -9/16, -0.5, 0.5, -4/16, 0.5}
{-0.5, -0.5, -0.5, 0.5, -3/16, 0.5}
},
},
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
@ -70,21 +66,19 @@ minetest.register_node("mcl_farming:beetroot_2", {
description = S("Premature Beetroot Plant (Stage 3)"),
_doc_items_create_entry = false,
paramtype = "light",
paramtype2 = "meshoptions",
sunlight_propagates = true,
-- keep place_param2 for plantlike drawtype compatiblity
place_param2 = 3,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
drawtype = "plantlike",
drop = "mcl_farming:beetroot_seeds",
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_beetroot_2.png") },
use_texture_alpha = "clip",
tiles = {"mcl_farming_beetroot_2.png"},
inventory_image = "mcl_farming_beetroot_2.png",
wield_image = "mcl_farming_beetroot_2.png",
selection_box = {
type = "fixed",
fixed = {
{-0.5, -9/16, -0.5, 0.5, 1/16, 0.5}
{-0.5, -0.5, -0.5, 0.5, 2/16, 0.5}
},
},
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
@ -97,12 +91,11 @@ minetest.register_node("mcl_farming:beetroot", {
_doc_items_longdesc = S("A mature beetroot plant is a farming plant which is ready to be harvested for a beetroot and some beetroot seeds. It won't grow any further."),
_doc_items_create_entry = true,
paramtype = "light",
paramtype2 = "meshoptions",
sunlight_propagates = true,
-- keep place_param2 for plantlike drawtype compatiblity
place_param2 = 3,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
drawtype = "plantlike",
drop = {
--[[ drops 1 beetroot guaranteed.
drops 1-4 beetroot seeds:
@ -119,14 +112,13 @@ minetest.register_node("mcl_farming:beetroot", {
{ items = {"mcl_farming:beetroot_seeds 1"}, rarity = 4 },
},
},
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_beetroot_3.png") },
use_texture_alpha = "clip",
tiles = {"mcl_farming_beetroot_3.png"},
inventory_image = "mcl_farming_beetroot_3.png",
wield_image = "mcl_farming_beetroot_3.png",
selection_box = {
type = "fixed",
fixed = {
{-0.5, -9/16, -0.5, 0.5, 2/16, 0.5}
{-0.5, -0.5, -0.5, 0.5, 3/16, 0.5}
},
},
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,beetroot=4},

View File

@ -28,20 +28,18 @@ for i=1, 7 do
_doc_items_longdesc = longdesc,
paramtype = "light",
sunlight_propagates = true,
-- keep place_param2 for plantlike drawtype compatiblity
paramtype2 = "meshoptions",
place_param2 = 3,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
drawtype = "plantlike",
drop = "mcl_farming:carrot_item",
tiles = { mcl_farming:align_plantlike_nodebox_texture(texture) },
use_texture_alpha = "clip",
tiles = {texture},
inventory_image = texture,
wield_image = texture,
selection_box = {
type = "fixed",
fixed = {
{-0.5, -9/16, -0.5, 0.5, sel_height - 1/16, 0.5}
{-0.5, -0.5, -0.5, 0.5, sel_height, 0.5}
},
},
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
@ -55,13 +53,11 @@ minetest.register_node("mcl_farming:carrot", {
_doc_items_longdesc = S("Mature carrot plants are ready to be harvested for carrots. They won't grow any further."),
paramtype = "light",
sunlight_propagates = true,
-- keep place_param2 for plantlike drawtype compatiblity
paramtype2 = "meshoptions",
place_param2 = 3,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
tiles = { mcl_farming:align_plantlike_nodebox_texture("farming_carrot_4.png") },
use_texture_alpha = "clip",
drawtype = "plantlike",
tiles = {"farming_carrot_4.png"},
inventory_image = "farming_carrot_4.png",
wield_image = "farming_carrot_4.png",
drop = {
@ -76,7 +72,7 @@ minetest.register_node("mcl_farming:carrot", {
selection_box = {
type = "fixed",
fixed = {
{-0.5, -9/16, -0.5, 0.5, 3/16, 0.5}
{-0.5, -0.5, -0.5, 0.5, 4/16, 0.5}
},
},
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},

View File

@ -27,73 +27,3 @@ dofile(minetest.get_modpath("mcl_farming").."/potatoes.lua")
-- ========= BEETROOT =========
dofile(minetest.get_modpath("mcl_farming").."/beetroot.lua")
-- This function generates a row of plantlike and nodebox nodes whose
-- name starts with a given string, starting at a given position. It
-- places a given node below so that the rendering can be examined.
local function generate_plant_row(prefix, pos, below_node)
local i = 1
for node_name, node in pairs(minetest.registered_nodes) do
if (
1 == node_name:find(prefix) and
(
"plantlike" == node.drawtype or
"nodebox" == node.drawtype
)
) then
local node_pos = {
x = pos.x + i,
y = pos.y,
z = pos.z,
}
minetest.set_node(
node_pos,
{
name = node_name,
param2 = node.place_param2 or 0
}
)
local below_pos = {
x = node_pos.x,
y = node_pos.y - 1,
z = node_pos.z
}
minetest.set_node(
below_pos,
below_node
)
i = i + 1
end
end
end
minetest.register_chatcommand("generate_farming_plant_rows",{
description = "Generates rows of mcl_farming plant nodes on farming soil and glass",
privs = { debug = true },
func = function(name, param)
local player = minetest.get_player_by_name(name)
local pos = player:get_pos()
local node_prefixes = {
"mcl_farming:beetroot",
"mcl_farming:carrot",
"mcl_farming:melon",
"mcl_farming:potato",
"mcl_farming:pumpkin",
"mcl_farming:wheat",
}
for i,node_prefix in ipairs(node_prefixes) do
generate_plant_row(
node_prefix,
pos,
{ name = "mcl_farming:soil" }
)
pos.z = pos.z + 2
generate_plant_row(
node_prefix,
pos,
{ name = "mcl_core:glass" }
)
pos.z = pos.z + 2
end
end
})

View File

@ -91,18 +91,16 @@ for s=1,7 do
_doc_items_longdesc = longdesc,
paramtype = "light",
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_plus_nodebox(),
drawtype = "plantlike",
sunlight_propagates = true,
drop = stem_drop,
tiles = { mcl_farming:align_plantlike_nodebox_texture(texture) },
use_texture_alpha = "clip",
tiles = {texture},
wield_image = texture,
inventory_image = texture,
selection_box = {
type = "fixed",
fixed = {
{-0.15, -9/16, -0.15, 0.15, -9/16+h, 0.15}
{-0.15, -0.5, -0.15, 0.15, -0.5+h, 0.15}
},
},
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1, plant_melon_stem=s},

View File

@ -6,13 +6,13 @@ for i=1, 7 do
local texture, selbox
if i < 3 then
texture = "mcl_farming_potatoes_stage_0.png"
selbox = { -0.5, -9/16, -0.5, 0.5, -6/16, 0.5 }
selbox = { -0.5, -0.5, -0.5, 0.5, -5/16, 0.5 }
elseif i < 5 then
texture = "mcl_farming_potatoes_stage_1.png"
selbox = { -0.5, -9/16, -0.5, 0.5, -3/16, 0.5 }
selbox = { -0.5, -0.5, -0.5, 0.5, -2/16, 0.5 }
else
texture = "mcl_farming_potatoes_stage_2.png"
selbox = { -0.5, -9/16, -0.5, 0.5, 1/16, 0.5 }
selbox = { -0.5, -0.5, -0.5, 0.5, 2/16, 0.5 }
end
local create, name, longdesc
@ -33,15 +33,13 @@ for i=1, 7 do
_doc_items_entry_name = name,
_doc_items_longdesc = longdesc,
paramtype = "light",
paramtype2 = "meshoptions",
sunlight_propagates = true,
-- keep place_param2 for plantlike drawtype compatiblity
place_param2 = 3,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
drawtype = "plantlike",
drop = "mcl_farming:potato_item",
tiles = { mcl_farming:align_plantlike_nodebox_texture(texture) },
use_texture_alpha = "clip",
tiles = { texture },
inventory_image = texture,
wield_image = texture,
selection_box = {
@ -59,14 +57,12 @@ minetest.register_node("mcl_farming:potato", {
description = S("Mature Potato Plant"),
_doc_items_longdesc = S("Mature potato plants are ready to be harvested for potatoes. They won't grow any further."),
paramtype = "light",
paramtype2 = "meshoptions",
sunlight_propagates = true,
-- keep place_param2 for plantlike drawtype compatiblity
place_param2 = 3,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_potatoes_stage_3.png") },
use_texture_alpha = "clip",
drawtype = "plantlike",
tiles = {"mcl_farming_potatoes_stage_3.png"},
wield_image = "mcl_farming_potatoes_stage_3.png",
inventory_image = "mcl_farming_potatoes_stage_3.png",
drop = {
@ -81,7 +77,7 @@ minetest.register_node("mcl_farming:potato", {
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -9/16, -0.5, 0.5, 0, 0.5 }
{ -0.5, -0.5, -0.5, 0.5, 1/16, 0.5 }
}
},
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},

View File

@ -63,18 +63,16 @@ for s=1,7 do
_doc_items_longdesc = longdesc,
paramtype = "light",
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_plus_nodebox(),
drawtype = "plantlike",
sunlight_propagates = true,
drop = stem_drop,
tiles = { mcl_farming:align_plantlike_nodebox_texture(texture) },
use_texture_alpha = "clip",
tiles = {texture},
inventory_image = texture,
wield_image = texture,
selection_box = {
type = "fixed",
fixed = {
{-0.15, -9/16, -0.15, 0.15, -9/16+h, 0.15}
{-0.15, -0.5, -0.15, 0.15, -0.5+h, 0.15}
},
},
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1,},

View File

@ -265,7 +265,7 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
stem_def.selection_box = {
type = "fixed",
fixed = {
{-0.15, -9/16, -0.15, 0.15, 7/16, 0.15}
{-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}
},
}
end
@ -273,20 +273,7 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
stem_def.paramtype = "light"
end
if not stem_def.drawtype then
stem_def.drawtype = "nodebox"
end
if not stem_def.node_box then
stem_def.node_box = mcl_farming:get_plantlike_plus_nodebox()
end
if stem_def.tiles then
for i=1,#stem_def.tiles do
stem_def.tiles[i] = mcl_farming:align_plantlike_nodebox_texture(
stem_def.tiles[i]
)
end
end
if not stem_def.use_texture_alpha then
stem_def.use_texture_alpha = "clip"
stem_def.drawtype = "plantlike"
end
if stem_def.walkable == nil then
stem_def.walkable = false
@ -313,9 +300,7 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
minetest.register_node(stem_itemstring, stem_def)
-- Register connected stems
local connected_stem_texture = mcl_farming:align_plantlike_nodebox_texture(
connected_stem_texture
)
local connected_stem_tiles = {
{ "blank.png", --top
"blank.png", -- bottom
@ -347,16 +332,16 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
}
}
local connected_stem_nodebox = {
{-0.5, -9/16, 0, 0.5, 7/16, 0},
{-0.5, -9/16, 0, 0.5, 7/16, 0},
{0, -9/16, -0.5, 0, 7/16, 0.5},
{0, -9/16, -0.5, 0, 7/16, 0.5},
{-0.5, -0.5, 0, 0.5, 0.5, 0},
{-0.5, -0.5, 0, 0.5, 0.5, 0},
{0, -0.5, -0.5, 0, 0.5, 0.5},
{0, -0.5, -0.5, 0, 0.5, 0.5},
}
local connected_stem_selectionbox = {
{-0.1, -9/16, -0.1, 0.5, 0.2 - 1/16, 0.1},
{-0.5, -9/16, -0.1, 0.1, 0.2 - 1/16, 0.1},
{-0.1, -9/16, -0.1, 0.1, 0.2 - 1/16, 0.5},
{-0.1, -9/16, -0.5, 0.1, 0.2 - 1/16, 0.1},
{-0.1, -0.5, -0.1, 0.5, 0.2, 0.1},
{-0.5, -0.5, -0.1, 0.1, 0.2, 0.1},
{-0.1, -0.5, -0.1, 0.1, 0.2, 0.5},
{-0.1, -0.5, -0.5, 0.1, 0.2, 0.1},
}
for i=1, 4 do
@ -484,40 +469,3 @@ minetest.register_lbm({
mcl_farming:grow_plant(identifier, pos, node, false, false, low_speed)
end,
})
-- This function returns a nodebox that imitates a plantlike plus (+)
-- drawtype, but is shifted 1/16 lower, into the empty space above
-- farming soil. The regular plantlike drawtype can not do this.
function mcl_farming:get_plantlike_plus_nodebox()
return {
type = "fixed",
fixed = {
{ 0, -9/16, -0.15, 0, 7/16, 0.15 },
{ -0.15, -9/16, 0, 0.15, 7/16, 0 }
}
}
end
-- This function returns a nodebox that imitates a plantlike grid (#)
-- drawtype, but is shifted 1/16 lower, into the empty space above
-- farming soil. The regular plantlike drawtype can not do this.
function mcl_farming:get_plantlike_grid_nodebox()
return {
type = "fixed",
fixed = {
{ 4/16, -9/16, -8/16, 4/16, 7/16, 8/16},
{-4/16, -9/16, -8/16, -4/16, 7/16, 8/16},
{-8/16, -9/16, -4/16, 8/16, 7/16, -4/16},
{-8/16, -9/16, 4/16, 8/16, 7/16, 4/16},
}
}
end
-- This function takes a texture and returns a modified texture where
-- the bottom row is at the top, assuming 16px × 16px textures. This
-- is used to align textures to a “plantlike” nodebox shifted 1/16
-- below its own node into the empty space above farming soil.
function mcl_farming:align_plantlike_nodebox_texture(texture)
local texture = texture:gsub("%^", "\\%^"):gsub(":", "\\:")
return "[combine:16x16:0,-15=" .. texture .. ":0,1=" .. texture
end

View File

@ -39,21 +39,19 @@ for i=1,7 do
_doc_items_entry_name = name,
_doc_items_longdesc = longdesc,
paramtype = "light",
-- keep place_param2 for plantlike drawtype compatiblity
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
drawtype = "plantlike",
drop = "mcl_farming:wheat_seeds",
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_wheat_stage_"..(i-1)..".png") },
use_texture_alpha = "clip",
tiles = {"mcl_farming_wheat_stage_"..(i-1)..".png"},
inventory_image = "mcl_farming_wheat_stage_"..(i-1)..".png",
wield_image = "mcl_farming_wheat_stage_"..(i-1)..".png",
selection_box = {
type = "fixed",
fixed = {
{-0.5, -9/16, -0.5, 0.5, sel_heights[i] - 1/16, 0.5}
{-0.5, -0.5, -0.5, 0.5, sel_heights[i], 0.5}
},
},
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1, dig_by_piston=1},
@ -67,21 +65,13 @@ minetest.register_node("mcl_farming:wheat", {
_doc_items_longdesc = S("Mature wheat plants are ready to be harvested for wheat and wheat seeds. They won't grow any further."),
sunlight_propagates = true,
paramtype = "light",
-- keep place_param2 for plantlike drawtype compatiblity
paramtype2 = "meshoptions",
place_param2 = 3,
walkable = false,
drawtype = "nodebox",
node_box = mcl_farming:get_plantlike_grid_nodebox(),
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_wheat_stage_7.png") },
use_texture_alpha = "clip",
drawtype = "plantlike",
tiles = {"mcl_farming_wheat_stage_7.png"},
inventory_image = "mcl_farming_wheat_stage_7.png",
wield_image = "mcl_farming_wheat_stage_7.png",
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -9/16, -0.5, 0.5, 7/16, 0.5 }
}
},
drop = {
max_items = 4,
items = {

View File

@ -1 +0,0 @@
name = screwdriver

View File

@ -1 +0,0 @@
name = mcl_engine_workarounds

View File

@ -1 +0,0 @@
name = mcl_selftests

View File

@ -1 +0,0 @@
name = mcl_player