diff options
author | tenplus1 <kinsellaja@yahoo.com> | 2014-11-09 19:17:41 +0000 |
---|---|---|
committer | tenplus1 <kinsellaja@yahoo.com> | 2014-11-09 19:17:41 +0000 |
commit | c4d4e229f7d63959508e4505099a7fca5ca87534 (patch) | |
tree | 55e1164fae6d4876bc7ef5468186384f21ee12f6 /water.lua |
First Commit by TenPlus1
Diffstat (limited to 'water.lua')
-rw-r--r-- | water.lua | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/water.lua b/water.lua new file mode 100644 index 0000000..4ea4f48 --- /dev/null +++ b/water.lua @@ -0,0 +1,108 @@ +-- Ice Brick +minetest.register_node("ethereal:icebrick", { + description = "Ice Brick", + tiles = {"brick_ice.png"}, + paramtype = "light", + freezemelt = "default:water_source", + groups = {cracky=3, melts=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft({ + output = 'ethereal:icebrick 4', + recipe = { + {'default:ice', 'default:ice'}, + {'default:ice', 'default:ice'}, + } +}) + +-- Snow Brick +minetest.register_node("ethereal:snowbrick", { + description = "Snow Brick", + tiles = {"brick_snow.png"}, + paramtype = "light", +-- leveled = 7, + drawtype = "nodebox", + freezemelt = "default:water_source", + groups = {crumbly=3, melts=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + dug = {name="default_snow_footstep", gain=0.75}, + }), + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end, +}) + +minetest.register_craft({ + output = 'ethereal:snowbrick 4', + recipe = { + {'default:snowblock', 'default:snowblock'}, + {'default:snowblock', 'default:snowblock'}, + } +}) + +-- Over time Cobble placed in water changes to Mossy Cobble +minetest.register_abm({ + nodenames = {"default:cobble"}, + neighbors={"default:water_source"}, + interval = 30, + chance = 10, + action = function(pos, node) + minetest.add_node(pos, {name="default:mossycobble"}) + end +}) + +-- If Crystal Spike, Crystal Dirt, Snow near Water, change Water to Ice +minetest.register_abm({ + nodenames = {"ethereal:crystal_spike", "ethereal:crystal_dirt", "default:snow", "default:snowblock", "ethereal:snowbrick"}, + neighbors = {"default:water_source"}, + interval = 15, + chance = 2, + action = function(pos, node) + local pos0 = {x=pos.x-1,y=pos.y-1,z=pos.z-1} + local pos1 = {x=pos.x+1,y=pos.y+1,z=pos.z+1} + + local water = minetest.env:find_nodes_in_area(pos0, pos1, "default:water_source") + if water then + minetest.env:set_node(water[1], {name="default:ice"}) + end + end, +}) + +-- If Heat Source near Ice or Snow then melt +minetest.register_abm({ + --nodenames = {"default:ice", "default:snowblock", "default:snow", "default:dirt_with_snow"}, + nodenames = {"group:melts", "default:dirt_with_snow"}, + neighbors = {"group:hot"}, + interval = 10, + chance = 2, + action = function(pos, node, active_object_count, active_object_count_wider) + + --print ("NODE:", string.split(node.name, ":")[1]) + + if node.name == "default:ice" or node.name == "default:snowblock" + or node.name == "ethereal:icebrick" or node.name == "ethereal:snowbrick" then + minetest.add_node(pos,{name="default:water_source"}) + elseif node.name == "default:snow" or string.split(node.name, ":")[1]then + minetest.add_node(pos,{name="default:water_flowing"}) + elseif node.name == "default:dirt_with_snow" then + minetest.add_node(pos,{name="default:dirt_with_grass"}) + end + nodeupdate(pos) + end, +}) + +-- If Water Source near Dry Dirt, change to normal Dirt +minetest.register_abm({ + nodenames = {"ethereal:dry_dirt"}, + neighbors = {"group:water"}, + interval = 15, + chance = 2, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.add_node(pos,{name="default:dirt"}) + end, +}) |