diff --git a/mods/mysponge/init.lua b/mods/mysponge/init.lua deleted file mode 100644 index 84157e6..0000000 --- a/mods/mysponge/init.lua +++ /dev/null @@ -1,142 +0,0 @@ -local mysponge_table = { -- item, ,desc, image, scale, nodegroup, bright -{"sponge_dry", "Dry Sponge", "sponge.png", "0.5", {dig_immediate=1, oddly_breakable_by_hand=1, flammable=1}}, -{"sponge_soaked","Wet Sponge", "sponge_wet.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}, - paramtype = "light", - groups = {crumbly=3, level=0, dig_immediate=1} -}) - -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 1", - tiles = {"mysponge_air.png"}, - drawtype = "allfaces", - walkable = false, - pointable = false, - paramtype = "light", - 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.5, - 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.5, - 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.5, - 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 = 6, - chance = 1, - action = function(pos) - minetest.set_node(pos, {name="air"}) - end -}) - -------------------------------------------------------------------------- ---Set Sponge -------------------------------------------------------------------------- - -minetest.register_abm({ - nodenames = {"mysponge:sponge_dry"}, - neighbors = {"mysponge:air1"}, - interval = 3, - chance = 1, - action = function(pos) - minetest.set_node(pos, {name="mysponge:sponge_soaked"}) - 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 = "mysponge:dry_leaves", - recipe = "group:leaves", - cooktime = 3, - }) -minetest.register_craft({ - output = "mysponge:sponge_dry 1", - recipe = { - {"mysponge:dry_leaves","mysponge:dry_leaves"}, - {"mysponge:dry_leaves","mysponge:dry_leaves"}, - }, - cooktime = 3, - }) - - - diff --git a/mods/mysponge/textures/mysponge_air.png b/mods/mysponge/textures/mysponge_air.png deleted file mode 100644 index a8a9e4b..0000000 Binary files a/mods/mysponge/textures/mysponge_air.png and /dev/null differ diff --git a/mods/sponge/init.lua b/mods/sponge/init.lua new file mode 100644 index 0000000..b289a5e --- /dev/null +++ b/mods/sponge/init.lua @@ -0,0 +1,81 @@ +minetest.register_node("sponge:sponge_wet",{ + description = "Wet Sponge", + tiles = {"sponge_wet.png"}, + paramtype = "light", + groups = {crumbly=3, level=0, dig_immediate=1, oddly_breakable_by_hand=1} +}) + +minetest.register_node("sponge:sponge_dry",{ + description = "Dry Sponge", + tiles = {"sponge.png"}, + paramtype = "light", + groups = {crumbly=3, level=0, dig_immediate=1, oddly_breakable_by_hand=1, flammable=1}, + after_place_node = function(pos, placer, itemstack) + local vm = minetest.get_voxel_manip() + local p1 = {x=pos.x-17,y=pos.y-17,z=pos.z-17} + local p2 = {x=pos.x+17,y=pos.y+17,z=pos.z+17} + local emin, emax = vm:read_from_map(p1, p2) + local data = vm:get_data() + local area = VoxelArea:new{ MinEdge = emin, MaxEdge = emax } + local c_air = minetest.get_content_id("air") + local c_w = minetest.get_content_id("water_flowing") + local c_ws = minetest.get_content_id("water_source") + local c_sw = minetest.get_content_id("sponge:sponge_wet") + local iswet = false + for x=pos.x-7,pos.x+7,1 do + for z=pos.z-7,pos.z+7,1 do + for y=pos.y-7,pos.y+7,1 do + local p_pos = area:index(x, y, z) + if data[p_pos] == c_w or data[p_pos] == c_ws then + data[p_pos] = c_air + iswet = true + end + end + end + end + if iswet then + data[area:index(pos.x, pos.y, pos.z)] = c_sw + end + vm:set_data(data) + vm:calc_lighting() + vm:update_liquids() + vm:write_to_map() + vm:update_map() + return false + end, +}) + +minetest.register_node("sponge:dry_leaves",{ + description = "Dry Leaves", + tiles = {"sponge_dry_leaves.png"}, + drawtype = "allfaces_optional", + paramtype = "light", + groups = {dig_immediate=1, oddly_breakable_by_hand=1} +}) + +------------------------------------------------------------------------------------------------- +--Craft + +minetest.register_craft({ + type = "cooking", + output = "sponge:sponge_dry 1", + recipe = "sponge:sponge_wet", + cooktime = 5, + }) +minetest.register_craft({ + type = "cooking", + output = "sponge:dry_leaves", + recipe = "group:leaves", + cooktime = 3, + }) +minetest.register_craft({ + output = "sponge:sponge_dry 1", + recipe = { + {"sponge:dry_leaves","sponge:dry_leaves"}, + {"sponge:dry_leaves","sponge:dry_leaves"}, + }, + cooktime = 3, + }) + + + diff --git a/mods/mysponge/textures/sponge.png b/mods/sponge/textures/sponge.png similarity index 100% rename from mods/mysponge/textures/sponge.png rename to mods/sponge/textures/sponge.png diff --git a/mods/mysponge/textures/mysponge_dry_leaves.png b/mods/sponge/textures/sponge_dry_leaves.png similarity index 100% rename from mods/mysponge/textures/mysponge_dry_leaves.png rename to mods/sponge/textures/sponge_dry_leaves.png diff --git a/mods/mysponge/textures/sponge_wet.png b/mods/sponge/textures/sponge_wet.png similarity index 100% rename from mods/mysponge/textures/sponge_wet.png rename to mods/sponge/textures/sponge_wet.png