complete revision
This commit is contained in:
parent
abf06bd213
commit
2e9a878a7f
6 changed files with 54 additions and 155 deletions
10
README.md
10
README.md
|
@ -1,17 +1,19 @@
|
||||||
Regrowing Fruits for Ethereal Mod
|
Regrowing Fruits
|
||||||
===
|
===
|
||||||
|
|
||||||
Info
|
Info
|
||||||
----
|
----
|
||||||
|
|
||||||
This mod causes fruits on ethereal trees to regrow like apples in the 0.5 release of Minetest Game. If you placed the fruits by hand or removed the tree leaves, the fruits don't regrow.
|
This mod causes fruits on trees from other mods to regrow like apples in the 5.0 release of Minetest Game. If you placed the fruits by hand or removed the tree leaves, the fruits don't regrow.
|
||||||
|
|
||||||
In Minetest Settings you can disable the different types of regrowing fruits. Regrowing golden apples are disabled in default settings to keep them special fruits. Bananas, coconuts and oranges are all enabled.
|
In the moment only ethereal mod is supported, but I'm sure there are other mods with this problem I do not use. Please tell me on Minetest Forum page!
|
||||||
|
|
||||||
|
There is also the possibility to enable regrowing apples in Minetest Settings. Notice that this is only necessary for older versions than MT 5.0.
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
----
|
----
|
||||||
|
|
||||||
This mod is based on "endless_apples" by Shara RedCat (2018).
|
This mod is inspired on "endless_apples" by Shara RedCat (2018).
|
||||||
|
|
||||||
License
|
License
|
||||||
----
|
----
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
default
|
default
|
||||||
ethereal
|
|
||||||
|
|
132
init.lua
132
init.lua
|
@ -1,55 +1,19 @@
|
||||||
local regrowing_bananas = minetest.settings:get_bool("regrowing_bananas", true)
|
local regrowing_apples = minetest.settings:get_bool("regrowing_apples", true)
|
||||||
local regrowing_coconuts = minetest.settings:get_bool("regrowing_coconuts", true)
|
|
||||||
local regrowing_goldapples = minetest.settings:get_bool("regrowing_goldapples", true)
|
|
||||||
local regrowing_oranges = minetest.settings:get_bool("regrowing_oranges", true)
|
|
||||||
|
|
||||||
-- override ethereal fruits
|
local add_fruit_regrowable = function(fruit, node, leaves)
|
||||||
if regrowing_bananas then
|
|
||||||
minetest.override_item("ethereal:banana", {
|
-- override fruit
|
||||||
|
minetest.override_item(node, {
|
||||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||||
if oldnode.param2 == 0 then
|
if oldnode.param2 == 0 then
|
||||||
minetest.set_node(pos, {name = "regrowing_fruits:banana_mark"})
|
minetest.set_node(pos, {name = "regrowing_fruits:"..fruit.."_mark"})
|
||||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
end
|
|
||||||
|
|
||||||
if regrowing_coconuts then
|
-- air node to mark fruit pos
|
||||||
minetest.override_item("ethereal:coconut", {
|
minetest.register_node("regrowing_fruits:"..fruit.."_mark", {
|
||||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
|
||||||
if oldnode.param2 == 0 then
|
|
||||||
minetest.set_node(pos, {name = "regrowing_fruits:coconut_mark"})
|
|
||||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
if regrowing_goldapples then
|
|
||||||
minetest.override_item("ethereal:golden_apple", {
|
|
||||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
|
||||||
if oldnode.param2 == 0 then
|
|
||||||
minetest.set_node(pos, {name = "regrowing_fruits:goldapple_mark"})
|
|
||||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
if regrowing_oranges then
|
|
||||||
minetest.override_item("ethereal:orange", {
|
|
||||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
|
||||||
if oldnode.param2 == 0 then
|
|
||||||
minetest.set_node(pos, {name = "regrowing_fruits:orange_mark"})
|
|
||||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- air nodes to mark fruit pos
|
|
||||||
minetest.register_node("regrowing_fruits:banana_mark", {
|
|
||||||
description = "Air!",
|
description = "Air!",
|
||||||
drawtype = "airlike",
|
drawtype = "airlike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
@ -61,84 +25,24 @@ minetest.register_node("regrowing_fruits:banana_mark", {
|
||||||
drop = "",
|
drop = "",
|
||||||
groups = {not_in_creative_inventory = 1},
|
groups = {not_in_creative_inventory = 1},
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
if not minetest.find_node_near(pos, 1, "ethereal:bananaleaves")
|
if not minetest.find_node_near(pos, 1, leaves) then
|
||||||
or not regrowing_bananas then
|
|
||||||
minetest.remove_node(pos)
|
minetest.remove_node(pos)
|
||||||
elseif minetest.get_node_light(pos) < 13 then
|
elseif minetest.get_node_light(pos) < 13 then
|
||||||
minetest.get_node_timer(pos):start(200)
|
minetest.get_node_timer(pos):start(200)
|
||||||
else
|
else
|
||||||
minetest.set_node(pos, {name = "ethereal:banana"})
|
minetest.set_node(pos, {name = node})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_node("regrowing_fruits:coconut_mark", {
|
if regrowing_apples then
|
||||||
description = "Air!",
|
add_fruit_regrowable("apple", "default:apple", "default:leaves")
|
||||||
drawtype = "airlike",
|
|
||||||
paramtype = "light",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
walkable = false,
|
|
||||||
pointable = false,
|
|
||||||
diggable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
drop = "",
|
|
||||||
groups = {not_in_creative_inventory = 1},
|
|
||||||
on_timer = function(pos, elapsed)
|
|
||||||
if not minetest.find_node_near(pos, 1, "ethereal:palmleaves")
|
|
||||||
or not regrowing_coconuts then
|
|
||||||
minetest.remove_node(pos)
|
|
||||||
elseif minetest.get_node_light(pos) < 13 then
|
|
||||||
minetest.get_node_timer(pos):start(200)
|
|
||||||
else
|
|
||||||
minetest.set_node(pos, {name = "ethereal:coconut"})
|
|
||||||
end
|
end
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("regrowing_fruits:goldapple_mark", {
|
if minetest.get_modpath("ethereal") then
|
||||||
description = "Air!",
|
add_fruit_regrowable("banana","ethereal:banana", "ethereal:bananaleaves")
|
||||||
drawtype = "airlike",
|
add_fruit_regrowable("coconut", "ethereal:coconut", "ethereal:palmleaves")
|
||||||
paramtype = "light",
|
add_fruit_regrowable("goldapple", "ethereal:golden_apple", "ethereal:yellowleaves")
|
||||||
sunlight_propagates = true,
|
add_fruit_regrowable("orange", "ethereal:orange", "ethereal:orange_leaves")
|
||||||
walkable = false,
|
|
||||||
pointable = false,
|
|
||||||
diggable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
drop = "",
|
|
||||||
groups = {not_in_creative_inventory = 1},
|
|
||||||
on_timer = function(pos, elapsed)
|
|
||||||
if not minetest.find_node_near(pos, 1, "ethereal:yellowleaves")
|
|
||||||
or not regrowing_goldapples then
|
|
||||||
minetest.remove_node(pos)
|
|
||||||
elseif not regrowing_goldapples then
|
|
||||||
return
|
|
||||||
elseif minetest.get_node_light(pos) < 13 then
|
|
||||||
minetest.get_node_timer(pos):start(200)
|
|
||||||
else
|
|
||||||
minetest.set_node(pos, {name = "ethereal:golden_apple"})
|
|
||||||
end
|
end
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("regrowing_fruits:orange_mark", {
|
|
||||||
description = "Air!",
|
|
||||||
drawtype = "airlike",
|
|
||||||
paramtype = "light",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
walkable = false,
|
|
||||||
pointable = false,
|
|
||||||
diggable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
drop = "",
|
|
||||||
groups = {not_in_creative_inventory = 1},
|
|
||||||
on_timer = function(pos, elapsed)
|
|
||||||
if not minetest.find_node_near(pos, 1, "ethereal:orange_leaves")
|
|
||||||
or not regrowing_oranges then
|
|
||||||
minetest.remove_node(pos)
|
|
||||||
elseif minetest.get_node_light(pos) < 13 then
|
|
||||||
minetest.get_node_timer(pos):start(200)
|
|
||||||
else
|
|
||||||
minetest.set_node(pos, {name = "ethereal:orange"})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2020 philipmi, 2018 Shara RedCat
|
Copyright (c) 2020 philipmi
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
4
mod.conf
4
mod.conf
|
@ -1,4 +1,4 @@
|
||||||
name = regrowing_fruits
|
name = regrowing_fruits
|
||||||
author = philipmi
|
author = philipmi
|
||||||
description = Fruits on ethereal trees will regrow.
|
description = Fruits on trees from other mods will regrow.
|
||||||
title = Regrowing Fruits for Ethereal Mod
|
title = Regrowing Fruits
|
||||||
|
|
|
@ -1,7 +1 @@
|
||||||
regrowing_bananas (Enable regrowing bananas) bool true
|
regrowing_apples (Regrowing apples(unnecessary for MT 5.x)) bool false
|
||||||
|
|
||||||
regrowing_coconuts (Enable regrowing coconuts) bool true
|
|
||||||
|
|
||||||
regrowing_goldapples (Enable regrowing golden apples) bool false
|
|
||||||
|
|
||||||
regrowing_oranges (Enable regrowing oranges) bool true
|
|
Loading…
Reference in a new issue