mirror of
https://github.com/DonBatman/mysponge.git
synced 2024-12-29 12:10:32 +01:00
200 lines
5.1 KiB
Lua
200 lines
5.1 KiB
Lua
local mysponge_table = { -- item, ,desc, image, scale, nodegroup, bright
|
|
{"sponge_dry", "Dry Sponge", "mysponge_sponge.png", "0.5", {dig_immediate=1, oddly_breakable_by_hand=1, flammable=1}},
|
|
{"sponge_moist", "Moist Sponge", "mysponge_sponge2.png", "0.7", {dig_immediate=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1}},
|
|
{"sponge_wet", "Wet Sponge", "mysponge_sponge3.png", "1", {dig_immediate=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1 }},
|
|
{"sponge_soaked","Soaked Sponge", "mysponge_sponge3.png", "1", {dig_immediate=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1}},
|
|
}
|
|
for i in ipairs(mysponge_table) do
|
|
local item = mysponge_table[i][1]
|
|
local desc = mysponge_table[i][2]
|
|
local image = mysponge_table[i][3]
|
|
local scale = mysponge_table[i][4]
|
|
local nodegroup = mysponge_table[i][5]
|
|
|
|
|
|
minetest.register_node("mysponge:"..item,{
|
|
description = desc,
|
|
tiles = {image},
|
|
drawtype = "nodebox",
|
|
visual_scale = scale,
|
|
paramtype = "light",
|
|
groups = nodegroup,
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
|
|
}
|
|
}
|
|
})
|
|
|
|
end
|
|
|
|
local air_nodes = {
|
|
{"air1"},
|
|
{"air2"},
|
|
{"air3"},
|
|
}
|
|
for i in ipairs(air_nodes) do
|
|
local airnode = air_nodes[i][1]
|
|
minetest.register_node("mysponge:"..airnode,{
|
|
description = "Air",
|
|
inventory_image = "unknown_node.png",
|
|
tiles = {"mysponge_air.png"},
|
|
drawtype = "allfaces",
|
|
walkable = false,
|
|
pointable = false,
|
|
paramtype = "light",
|
|
drop = "",
|
|
groups = {not_in_creative_inventory=1}
|
|
})
|
|
end
|
|
|
|
|
|
minetest.register_node("mysponge:dry_leaves",{
|
|
description = "Dry Leaves",
|
|
tiles = {"mysponge_dry_leaves.png"},
|
|
drawtype = "allfaces_optional",
|
|
paramtype = "light",
|
|
groups = {dig_immediate=1, oddly_breakable_by_hand=1}
|
|
})
|
|
|
|
|
|
-------------------------------------------------------------------------
|
|
--ABMs
|
|
-------------------------------------------------------------------------
|
|
--Set Air
|
|
|
|
--Air 1
|
|
minetest.register_abm({
|
|
nodenames = {"group:water"},
|
|
neighbors = {"mysponge:sponge_dry"},
|
|
interval = 0.2,
|
|
chance = 1,
|
|
action = function(pos)
|
|
minetest.set_node(pos, {name="mysponge:air1"})
|
|
end
|
|
})
|
|
|
|
--Air 2
|
|
minetest.register_abm({
|
|
nodenames = {"group:water"},
|
|
neighbors = {"mysponge:air1"},
|
|
interval = 0.2,
|
|
chance = 1,
|
|
action = function(pos)
|
|
minetest.set_node(pos, {name="mysponge:air2"})
|
|
end
|
|
})
|
|
|
|
--Air 3
|
|
minetest.register_abm({
|
|
nodenames = {"group:water"},
|
|
neighbors = {"mysponge:air2"},
|
|
interval = 0.2,
|
|
chance = 1,
|
|
action = function(pos)
|
|
minetest.set_node(pos, {name="mysponge:air3"})
|
|
end
|
|
})
|
|
|
|
-------------------------------------------------------------------------
|
|
--Set default Air
|
|
-------------------------------------------------------------------------
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"mysponge:air1","mysponge:air2","mysponge:air3"},
|
|
interval = 4,
|
|
chance = 1,
|
|
action = function(pos)
|
|
minetest.set_node(pos, {name="air"})
|
|
end
|
|
})
|
|
|
|
-------------------------------------------------------------------------
|
|
--Set Sponge
|
|
-------------------------------------------------------------------------
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"mysponge:sponge_dry"},
|
|
neighbors = {"group:water"},
|
|
interval = 1,
|
|
chance = 1,
|
|
action = function(pos)
|
|
minetest.set_node(pos, {name="mysponge:sponge_soaked"})
|
|
end
|
|
|
|
})
|
|
------------------------------------------------------------------------------------------------
|
|
--Shrink Sponge in Air
|
|
------------------------------------------------------------------------------------------------
|
|
minetest.register_abm({
|
|
nodenames = {"mysponge:sponge_soaked"},
|
|
neighbors = {"air"},
|
|
interval = 60,
|
|
chance = 1,
|
|
action = function(pos)
|
|
minetest.set_node(pos, {name="mysponge:sponge_wet"})
|
|
end,
|
|
})
|
|
minetest.register_abm({
|
|
nodenames = {"mysponge:sponge_wet"},
|
|
neighbors = {"air"},
|
|
interval = 60,
|
|
chance = 1,
|
|
action = function(pos)
|
|
minetest.set_node(pos, {name="mysponge:sponge_moist"})
|
|
end,
|
|
})
|
|
minetest.register_abm({
|
|
nodenames = {"mysponge:sponge_moist"},
|
|
neighbors = {"air"},
|
|
interval = 60,
|
|
chance = 1,
|
|
action = function(pos)
|
|
minetest.set_node(pos, {name="mysponge:sponge_dry"})
|
|
end,
|
|
})
|
|
|
|
|
|
-------------------------------------------------------------------------------------------------
|
|
--Craft
|
|
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "default:water_source 3",
|
|
recipe = "mysponge:sponge_soaked",
|
|
cooktime = 5,
|
|
replacements = {{"mysponge:sponge_soaked", "mysponge:sponge_dry"}},
|
|
})
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "default:water_source 2",
|
|
recipe = "mysponge:sponge_wet",
|
|
cooktime = 5,
|
|
replacements = {{"mysponge:sponge_wet", "mysponge:sponge_dry"}},
|
|
})
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "mysponge:dry_leaves",
|
|
recipe = "group:leaves",
|
|
cooktime = 3,
|
|
})
|
|
minetest.register_craft({
|
|
output = "mysponge:sponge_dry 1",
|
|
recipe = {
|
|
{"default:mese_crystal_fragment","mysponge:dry_leaves","default:mese_crystal_fragment"},
|
|
{"mysponge:dry_leaves","default:mese_crystal_fragment","mysponge:dry_leaves"},
|
|
{"default:mese_crystal_fragment","mysponge:dry_leaves","default:mese_crystal_fragment"},
|
|
},
|
|
cooktime = 3,
|
|
})
|
|
|
|
|
|
|