added sponges to coral reefs
This commit is contained in:
parent
4a19552fe4
commit
94f52e9fd7
@ -14,6 +14,7 @@ Ethereal Mapgen mod for Minetest (works on all except v6)
|
||||
|
||||
- Added Etherium ore and dust
|
||||
- Added sparse decoration of dry grass and shrub to caves biome
|
||||
- Added sponges that spawn near coral, dry sponge in furnace to soak up water
|
||||
|
||||
### 1.26
|
||||
|
||||
|
97
sealife.lua
97
sealife.lua
@ -165,19 +165,24 @@ minetest.register_abm({
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
|
||||
local sel = math.random(1, 5)
|
||||
local sel = math.random(1, 6)
|
||||
|
||||
pos.y = pos.y + 1
|
||||
|
||||
local nod = minetest.get_node(pos).name
|
||||
|
||||
if nod == "default:water_source"
|
||||
and sel == 6 then
|
||||
|
||||
minetest.swap_node(pos, {name = "ethereal:sponge_wet"})
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
if nod == "default:water_source"
|
||||
and sel > 1 then
|
||||
|
||||
if minetest.get_node(pos).name == "default:water_source" then
|
||||
|
||||
minetest.swap_node(pos, {name = "ethereal:coral" .. sel})
|
||||
end
|
||||
minetest.swap_node(pos, {name = "ethereal:coral" .. sel})
|
||||
|
||||
return
|
||||
end
|
||||
@ -206,3 +211,85 @@ minetest.register_abm({
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- sponges
|
||||
|
||||
minetest.register_node("ethereal:sponge_air", {
|
||||
drawtype = "airlike",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
sunlight_propagates = true,
|
||||
pointable = false,
|
||||
drop = "",
|
||||
groups = {not_in_creative_inventory = 1},
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("ethereal:sponge", {
|
||||
description = S("Sponge"),
|
||||
tiles = {"ethereal_sponge.png"},
|
||||
groups = {crumbly = 3},
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
|
||||
-- get player name
|
||||
local name = placer:get_player_name()
|
||||
|
||||
-- is area protected
|
||||
if minetest.is_protected(pos, name) then
|
||||
return
|
||||
end
|
||||
|
||||
-- get water nodes within range
|
||||
local num = minetest.find_nodes_in_area(
|
||||
{x = pos.x - 3, y = pos.y - 3, z = pos.z - 3},
|
||||
{x = pos.x + 3, y = pos.y + 3, z = pos.z + 3},
|
||||
{"group:water"})
|
||||
|
||||
-- no water
|
||||
if #num == 0 then return end
|
||||
|
||||
-- replace water nodes with sponge air
|
||||
for _, w in pairs(num) do
|
||||
|
||||
if not minetest.is_protected(pos, name) then
|
||||
minetest.swap_node(w, {name = "ethereal:sponge_air"})
|
||||
end
|
||||
end
|
||||
|
||||
-- replace dry sponge with wet sponge
|
||||
minetest.swap_node(pos, {name="ethereal:sponge_wet"})
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("ethereal:sponge_wet", {
|
||||
description = S("Wet sponge"),
|
||||
tiles = {"ethereal_sponge_wet.png"},
|
||||
groups = {crumbly = 3},
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
-- cook wet sponge into dry sponge
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
recipe = "ethereal:sponge_wet",
|
||||
output = "ethereal:sponge",
|
||||
cooktime = 3,
|
||||
})
|
||||
|
||||
-- use leaf decay to remove sponge air nodes
|
||||
default.register_leafdecay({
|
||||
trunks = {"ethereal:sponge_wet"},
|
||||
leaves = {"ethereal:sponge_air"},
|
||||
radius = 3
|
||||
})
|
||||
|
||||
-- dry sponges can be used as fuel
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "ethereal:sponge",
|
||||
burntime = 5,
|
||||
})
|
||||
|
BIN
textures/ethereal_sponge.png
Normal file
BIN
textures/ethereal_sponge.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 272 B |
BIN
textures/ethereal_sponge_wet.png
Normal file
BIN
textures/ethereal_sponge_wet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 272 B |
Loading…
Reference in New Issue
Block a user