summaryrefslogtreecommitdiff
path: root/water.lua
diff options
context:
space:
mode:
authortenplus1 <kinsellaja@yahoo.com>2014-11-09 19:17:41 +0000
committertenplus1 <kinsellaja@yahoo.com>2014-11-09 19:17:41 +0000
commitc4d4e229f7d63959508e4505099a7fca5ca87534 (patch)
tree55e1164fae6d4876bc7ef5468186384f21ee12f6 /water.lua
First Commit by TenPlus1
Diffstat (limited to 'water.lua')
-rw-r--r--water.lua108
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,
+})