rename mod to x_bonemeal
parent
d88886e79a
commit
2e3bfbe5fc
|
@ -1,4 +1,4 @@
|
|||
# Bonemeal by SaKeL [bonemeal]
|
||||
# Bonemeal by SaKeL [x_bonemeal]
|
||||
Mod for Minetest. It provides one kind of simple bone meal (fertilizer) for fast growing plants, flowers, saplings, papyrus, grass...
|
||||
|
||||
Based on default minetest_game API with as less additions as possible what makes this mod super light-weight and suitable for online multiplayer servers.
|
||||
|
|
34
api.lua
34
api.lua
|
@ -1,12 +1,12 @@
|
|||
------------
|
||||
-- Main API for bonemeal Mod
|
||||
-- Main API for x_bonemeal Mod
|
||||
-- @author Juraj Vajda
|
||||
-- @license GNU LGPL 2.1
|
||||
----
|
||||
|
||||
--- Main bonemeal class
|
||||
-- @classmod bonemeal
|
||||
bonemeal = {}
|
||||
--- Main x_bonemeal class
|
||||
-- @classmod x_bonemeal
|
||||
x_bonemeal = {}
|
||||
|
||||
--- Get creative mode setting from minetest.conf
|
||||
-- @local
|
||||
|
@ -16,7 +16,7 @@ local creative_mode_cache = minetest.settings:get_bool('creative_mode')
|
|||
-- @function
|
||||
-- @param name Player name
|
||||
-- @return Boolean
|
||||
function bonemeal.is_creative(name)
|
||||
function x_bonemeal.is_creative(name)
|
||||
return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
|
||||
end
|
||||
|
||||
|
@ -24,7 +24,7 @@ end
|
|||
-- @function
|
||||
-- @param under table of position
|
||||
-- @return Boolean
|
||||
function bonemeal.is_on_soil(under)
|
||||
function x_bonemeal.is_on_soil(under)
|
||||
local below = minetest.get_node({x = under.x, y = under.y - 1, z = under.z})
|
||||
if minetest.get_item_group(below.name, 'soil') == 0 then
|
||||
return false
|
||||
|
@ -36,7 +36,7 @@ end
|
|||
-- @function
|
||||
-- @param under table of position
|
||||
-- @return Boolean
|
||||
function bonemeal.is_on_sand(under)
|
||||
function x_bonemeal.is_on_sand(under)
|
||||
local below = minetest.get_node({x = under.x, y = under.y - 1, z = under.z})
|
||||
if minetest.get_item_group(below.name, 'sand') == 0 then
|
||||
return false
|
||||
|
@ -63,7 +63,7 @@ local farming_steps = {
|
|||
--- Particle and sound effect after the bone meal is successfully used
|
||||
-- @function
|
||||
-- @param pos table containing position
|
||||
function bonemeal.particle_effect(pos)
|
||||
function x_bonemeal.particle_effect(pos)
|
||||
minetest.sound_play('bonemeal_grow', {
|
||||
pos = pos,
|
||||
gain = 0.5,
|
||||
|
@ -92,7 +92,7 @@ function bonemeal.particle_effect(pos)
|
|||
})
|
||||
end
|
||||
|
||||
function bonemeal.tableContains(table, value)
|
||||
function x_bonemeal.tableContains(table, value)
|
||||
local found = false
|
||||
|
||||
for k, v in ipairs(table) do
|
||||
|
@ -107,7 +107,7 @@ end
|
|||
|
||||
--- Handle growth of decorations based on biome
|
||||
-- @function
|
||||
function bonemeal.grow_grass_and_flowers(itemstack, user, pointed_thing)
|
||||
function x_bonemeal.grow_grass_and_flowers(itemstack, user, pointed_thing)
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
|
||||
if not node then
|
||||
|
@ -167,7 +167,7 @@ function bonemeal.grow_grass_and_flowers(itemstack, user, pointed_thing)
|
|||
local found = false
|
||||
|
||||
-- filter based on biome name in `biomes` table and node name in `place_on` table
|
||||
if bonemeal.tableContains(v.biomes, biome_name) then
|
||||
if x_bonemeal.tableContains(v.biomes, biome_name) then
|
||||
table.insert(registered_decorations_filtered, v)
|
||||
end
|
||||
|
||||
|
@ -271,7 +271,7 @@ function bonemeal.grow_grass_and_flowers(itemstack, user, pointed_thing)
|
|||
returned_itemstack = random_decor_item_def.on_place(ItemStack(random_decor_item), user, pt)
|
||||
|
||||
if returned_itemstack and returned_itemstack:is_empty() then
|
||||
bonemeal.particle_effect(pt.above)
|
||||
x_bonemeal.particle_effect(pt.above)
|
||||
end
|
||||
elseif random_decor_item_def ~= nil then
|
||||
-- everything else
|
||||
|
@ -282,7 +282,7 @@ function bonemeal.grow_grass_and_flowers(itemstack, user, pointed_thing)
|
|||
end
|
||||
|
||||
returned_itemstack = ItemStack('')
|
||||
bonemeal.particle_effect(random_pos)
|
||||
x_bonemeal.particle_effect(random_pos)
|
||||
minetest.set_node({x = random_pos.x, y = random_pos.y + pos_y, z = random_pos.z}, { name = random_decor_item })
|
||||
end
|
||||
|
||||
|
@ -292,7 +292,7 @@ function bonemeal.grow_grass_and_flowers(itemstack, user, pointed_thing)
|
|||
end
|
||||
|
||||
-- take item
|
||||
if returned_itemstack and returned_itemstack:is_empty() and not bonemeal.is_creative(user:get_player_name()) then
|
||||
if returned_itemstack and returned_itemstack:is_empty() and not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
|
||||
|
@ -303,7 +303,7 @@ end
|
|||
-- @function
|
||||
-- @param pos table containing position
|
||||
-- @param replace_node_name the node/plant what we are growing/replacing with new growth stage
|
||||
function bonemeal.grow_farming(pos, itemstack, user, replace_node_name)
|
||||
function x_bonemeal.grow_farming(pos, itemstack, user, replace_node_name)
|
||||
local ndef = minetest.registered_nodes[replace_node_name]
|
||||
|
||||
if not ndef.next_plant or ndef.next_plant == 'farming_addons:pumpkin_fruit' or ndef.next_plant == 'farming_addons:melon_fruit' then return itemstack end
|
||||
|
@ -348,11 +348,11 @@ function bonemeal.grow_farming(pos, itemstack, user, replace_node_name)
|
|||
placenode.param2 = ndef.place_param2
|
||||
end
|
||||
|
||||
bonemeal.particle_effect(pos)
|
||||
x_bonemeal.particle_effect(pos)
|
||||
minetest.swap_node(pos, placenode)
|
||||
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
|
||||
|
|
92
init.lua
92
init.lua
|
@ -4,7 +4,7 @@
|
|||
-- @license GNU LGPL 2.1
|
||||
----
|
||||
|
||||
local path = minetest.get_modpath("bonemeal")
|
||||
local path = minetest.get_modpath("x_bonemeal")
|
||||
|
||||
--- API include
|
||||
-- @submodule
|
||||
|
@ -12,9 +12,9 @@ dofile(path.."/api.lua")
|
|||
|
||||
--- Register craftitem definition - added to minetest.registered_items[name]
|
||||
-- @function
|
||||
minetest.register_craftitem("bonemeal:bonemeal", {
|
||||
minetest.register_craftitem("x_bonemeal:bonemeal", {
|
||||
description = "Bonemeal - use it as a fertilizer for most plants",
|
||||
inventory_image = "bonemeal_bonemeal.png",
|
||||
inventory_image = "x_bonemeal_bonemeal.png",
|
||||
-- wield_scale = {x=1.5, y=1.5, z=1},
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
local under = pointed_thing.under
|
||||
|
@ -35,7 +35,7 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
--
|
||||
|
||||
if mod == "farming" or mod == "farming_addons" then
|
||||
bonemeal.grow_farming(under, itemstack, user, node.name)
|
||||
x_bonemeal.grow_farming(under, itemstack, user, node.name)
|
||||
|
||||
--
|
||||
-- Default (Trees, Bushes, Papyrus)
|
||||
|
@ -44,7 +44,7 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
-- christmas tree
|
||||
elseif node.name == "x_default:christmas_tree_sapling" then
|
||||
local chance = math.random(2)
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
|
||||
if chance == 1 then
|
||||
if minetest.find_node_near(under, 1, {"group:snowy"}) then
|
||||
|
@ -53,10 +53,10 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
x_default.grow_christmas_tree(under)
|
||||
end
|
||||
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -64,14 +64,14 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
-- apple tree
|
||||
elseif node.name == "default:sapling" then
|
||||
local chance = math.random(2)
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
|
||||
if chance == 1 then
|
||||
default.grow_new_apple_tree(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -79,14 +79,14 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
-- jungle tree
|
||||
elseif node.name == "default:junglesapling" then
|
||||
local chance = math.random(2)
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
|
||||
if chance == 1 then
|
||||
default.grow_new_jungle_tree(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -94,14 +94,14 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
-- emergent jungle tree
|
||||
elseif node.name == "default:emergent_jungle_sapling" then
|
||||
local chance = math.random(2)
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
|
||||
if chance == 1 then
|
||||
default.grow_new_emergent_jungle_tree(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -109,14 +109,14 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
-- acacia tree
|
||||
elseif node.name == "default:acacia_sapling" then
|
||||
local chance = math.random(2)
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
|
||||
if chance == 1 then
|
||||
default.grow_new_acacia_tree(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -124,14 +124,14 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
-- aspen tree
|
||||
elseif node.name == "default:aspen_sapling" then
|
||||
local chance = math.random(2)
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
|
||||
if chance == 1 then
|
||||
default.grow_new_aspen_tree(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -139,16 +139,16 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
-- pine tree
|
||||
elseif node.name == "default:pine_sapling" then
|
||||
local chance = math.random(4)
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
|
||||
if chance == 3 then
|
||||
default.grow_new_snowy_pine_tree(under)
|
||||
elseif chance == 1 then
|
||||
default.grow_new_pine_tree(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -158,12 +158,12 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
local chance = math.random(2)
|
||||
|
||||
if chance == 1 then
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
default.grow_bush(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -173,12 +173,12 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
local chance = math.random(2)
|
||||
|
||||
if chance == 1 then
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
default.grow_acacia_bush(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -188,12 +188,12 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
local chance = math.random(2)
|
||||
|
||||
if chance == 1 then
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
default.grow_pine_bush(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -203,12 +203,12 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
local chance = math.random(2)
|
||||
|
||||
if chance == 1 then
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
default.grow_blueberry_bush(under)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -218,12 +218,12 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
local chance = math.random(2)
|
||||
|
||||
if chance == 1 then
|
||||
if not bonemeal.is_on_soil(under) then return end
|
||||
if not x_bonemeal.is_on_soil(under) then return end
|
||||
default.grow_papyrus(under, node)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
|
@ -233,17 +233,17 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
local chance = math.random(2)
|
||||
|
||||
if chance == 1 then
|
||||
if not bonemeal.is_on_sand(under) then return end
|
||||
if not x_bonemeal.is_on_sand(under) then return end
|
||||
default.grow_large_cactus(under, node)
|
||||
bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
x_bonemeal.particle_effect({x = under.x, y = under.y + 1, z = under.z})
|
||||
end
|
||||
-- take item if not in creative
|
||||
if not bonemeal.is_creative(user:get_player_name()) then
|
||||
if not x_bonemeal.is_creative(user:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
else
|
||||
bonemeal.grow_grass_and_flowers(itemstack, user, pointed_thing)
|
||||
x_bonemeal.grow_grass_and_flowers(itemstack, user, pointed_thing)
|
||||
end
|
||||
|
||||
return itemstack
|
||||
|
@ -255,14 +255,14 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||
--
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'bonemeal:bonemeal 9',
|
||||
output = 'x_bonemeal:bonemeal 9',
|
||||
recipe = {
|
||||
{'bones:bones'}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'bonemeal:bonemeal 9',
|
||||
output = 'x_bonemeal:bonemeal 9',
|
||||
recipe = {
|
||||
{'default:coral_skeleton'}
|
||||
}
|
||||
|
|
2
mod.conf
2
mod.conf
|
@ -1,3 +1,3 @@
|
|||
name = bonemeal
|
||||
name = x_bonemeal
|
||||
description = Mod bonemeal for Minetest.
|
||||
depends = default, x_default, farming, bones, flowers
|
Before Width: | Height: | Size: 185 B After Width: | Height: | Size: 185 B |
Before Width: | Height: | Size: 235 B After Width: | Height: | Size: 235 B |
Loading…
Reference in New Issue