From bcefc5a7babc8a37d7b5b3748f040c9216d28dfb Mon Sep 17 00:00:00 2001 From: proller Date: Sun, 25 Aug 2013 15:33:29 +0400 Subject: [PATCH 01/18] Weather temps update --- mods/default/nodes.lua | 18 +++++++++--------- mods/fire/init.lua | 2 +- mods/flowers/init.lua | 4 ++++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index b1fd312b..4ae48ece 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -440,7 +440,7 @@ minetest.register_node("default:water_flowing", { liquid_viscosity = WATER_VISC, freezemelt = "default:snow", post_effect_color = {a=64, r=100, g=100, b=200}, - groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, freezes=1, melt_around=1}, + groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, freeze=-5}, }) minetest.register_node("default:water_source", { @@ -472,7 +472,7 @@ minetest.register_node("default:water_source", { liquid_viscosity = WATER_VISC, freezemelt = "default:ice", post_effect_color = {a=64, r=100, g=100, b=200}, - groups = {water=3, liquid=3, puts_out_fire=1, freezes=1}, + groups = {water=3, liquid=3, puts_out_fire=1, freeze=-1}, }) minetest.register_node("default:lava_flowing", { @@ -508,7 +508,7 @@ minetest.register_node("default:lava_flowing", { liquid_renewable = false, damage_per_second = 4*2, post_effect_color = {a=192, r=255, g=64, b=0}, - groups = {lava=3, liquid=2, hot=3, igniter=1, not_in_creative_inventory=1}, + groups = {lava=3, liquid=2, hot=150, igniter=1, not_in_creative_inventory=1}, }) minetest.register_node("default:lava_source", { @@ -541,7 +541,7 @@ minetest.register_node("default:lava_source", { liquid_renewable = false, damage_per_second = 4*2, post_effect_color = {a=192, r=255, g=64, b=0}, - groups = {lava=3, liquid=2, hot=3, igniter=1}, + groups = {lava=3, liquid=2, hot=200, igniter=1}, }) minetest.register_node("default:torch", { @@ -566,7 +566,7 @@ minetest.register_node("default:torch", { wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, }, - groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=2}, + groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=150}, legacy_wallmounted = true, sounds = default.node_sound_defaults(), }) @@ -841,7 +841,7 @@ minetest.register_node("default:furnace_active", { paramtype2 = "facedir", light_source = 8, drop = "default:furnace", - groups = {cracky=2, not_in_creative_inventory=1,hot=1}, + groups = {cracky=2, not_in_creative_inventory=1,hot=60}, legacy_facedir_simple = true, sounds = default.node_sound_stone_defaults(), on_construct = function(pos) @@ -1281,7 +1281,7 @@ minetest.register_node("default:ice", { is_ground_content = true, paramtype = "light", freezemelt = "default:water_source", - groups = {cracky=3, melts=1}, + groups = {cracky=3, melt=3}, sounds = default.node_sound_glass_defaults(), }) @@ -1302,7 +1302,7 @@ minetest.register_node("default:snow", { {-0.5, -0.5, -0.5, 0.5, -0.5+2/16, 0.5}, }, }, - groups = {crumbly=3,falling_node=1, melts=1, float=1}, + groups = {crumbly=3,falling_node=1, melt=1, float=1}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_snow_footstep", gain=0.25}, dug = {name="default_snow_footstep", gain=0.75}, @@ -1321,7 +1321,7 @@ minetest.register_node("default:snowblock", { tiles = {"default_snow.png"}, is_ground_content = true, freezemelt = "default:water_source", - groups = {crumbly=3, melts=1}, + groups = {crumbly=3, melt=2}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_snow_footstep", gain=0.25}, dug = {name="default_snow_footstep", gain=0.75}, diff --git a/mods/fire/init.lua b/mods/fire/init.lua index 9acda876..b12806a4 100644 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -9,7 +9,7 @@ minetest.register_node("fire:basic_flame", { }}, inventory_image = "fire_basic_flame.png", light_source = 14, - groups = {igniter=2,dig_immediate=3,hot=3}, + groups = {igniter=2,dig_immediate=3,hot=200}, drop = '', walkable = false, buildable_to = true, diff --git a/mods/flowers/init.lua b/mods/flowers/init.lua index b4096475..e21ed7c0 100644 --- a/mods/flowers/init.lua +++ b/mods/flowers/init.lua @@ -139,6 +139,10 @@ minetest.register_abm({ if not light or light < 13 then return end + + if minetest.setting_getbool("weather") and minetest.get_heat(pos) < 5 then + return + end local pos0 = {x=pos.x-4,y=pos.y-4,z=pos.z-4} local pos1 = {x=pos.x+4,y=pos.y+4,z=pos.z+4} From 6822ffe78aa061a92ff4f9252e2daa02317a115c Mon Sep 17 00:00:00 2001 From: proller Date: Fri, 30 Aug 2013 23:13:08 +0400 Subject: [PATCH 02/18] melting stone --- mods/default/nodes.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 4ae48ece..115eb2cd 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -4,7 +4,8 @@ minetest.register_node("default:stone", { description = "Stone", tiles = {"default_stone.png"}, is_ground_content = true, - groups = {cracky=3, stone=1}, + groups = {cracky=3, stone=1, melt=3000}, + freezemelt = "default:lava_source", drop = 'default:cobble', legacy_mineral = true, sounds = default.node_sound_stone_defaults(), @@ -14,7 +15,8 @@ minetest.register_node("default:desert_stone", { description = "Desert Stone", tiles = {"default_desert_stone.png"}, is_ground_content = true, - groups = {cracky=3, stone=1}, + groups = {cracky=3, stone=1, melt=3000}, + freezemelt = "default:lava_source", drop = 'default:desert_stone', legacy_mineral = true, sounds = default.node_sound_stone_defaults(), @@ -1098,7 +1100,8 @@ minetest.register_node("default:obsidian", { tiles = {"default_obsidian.png"}, is_ground_content = true, sounds = default.node_sound_stone_defaults(), - groups = {cracky=1,level=2}, + groups = {cracky=1,level=2, melt=5000}, + freezemelt = "default:lava_source", }) minetest.register_node("default:nyancat", { From f5b8611145ff641bd4a6ca45e9e0763f5cd06f76 Mon Sep 17 00:00:00 2001 From: Sfan5 Date: Fri, 6 Sep 2013 21:47:21 +0200 Subject: [PATCH 03/18] Add mapgen_stair_cobble to minetest_game --- mods/default/mapgen.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua index 6bde5e08..5c8ee6b3 100644 --- a/mods/default/mapgen.lua +++ b/mods/default/mapgen.lua @@ -26,6 +26,7 @@ minetest.register_alias("mapgen_stone_with_iron", "default:stone_with_iron") minetest.register_alias("mapgen_mese", "default:mese") minetest.register_alias("mapgen_desert_sand", "default:desert_sand") minetest.register_alias("mapgen_desert_stone", "default:desert_stone") +minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") -- -- Ore generation From eff7bb89ec434586a3614c8c005d62746b80594c Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Wed, 11 Sep 2013 16:32:32 +0200 Subject: [PATCH 04/18] Use 6d facedir to place upside down slabs and stairs --- mods/stairs/init.lua | 128 +++++++++++++++++++++++-------------------- 1 file changed, 69 insertions(+), 59 deletions(-) diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua index 0dbc40c6..85c2978d 100644 --- a/mods/stairs/init.lua +++ b/mods/stairs/init.lua @@ -28,36 +28,35 @@ function stairs.register_stair(subname, recipeitem, groups, images, description, local p0 = pointed_thing.under local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + if p0.y-1 == p1.y then - local fakestack = ItemStack("stairs:stair_" .. subname.."upside_down") - local ret = minetest.item_place(fakestack, placer, pointed_thing) - if ret:is_empty() then - itemstack:take_item() - return itemstack + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 end end - -- Otherwise place regularly - return minetest.item_place(itemstack, placer, pointed_thing) + return minetest.item_place(itemstack, placer, pointed_thing, param2) end, }) + -- for replace ABM minetest.register_node(":stairs:stair_" .. subname.."upside_down", { - drop = "stairs:stair_" .. subname, - drawtype = "nodebox", - tiles = images, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = true, - groups = groups, - sounds = sounds, - node_box = { - type = "fixed", - fixed = { - {-0.5, 0, -0.5, 0.5, 0.5, 0.5}, - {-0.5, -0.5, 0, 0.5, 0, 0.5}, - }, - }, + replace_name = "stairs:stair_" .. subname, + groups = {slabs_replace=1}, }) minetest.register_craft({ @@ -87,6 +86,7 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, drawtype = "nodebox", tiles = images, paramtype = "light", + paramtype2 = "facedir", is_ground_content = true, groups = groups, sounds = sounds, @@ -106,21 +106,32 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, local p0 = pointed_thing.under local p1 = pointed_thing.above local n0 = minetest.get_node(p0) - if n0.name == "stairs:slab_" .. subname and - p0.y+1 == p1.y then + local n1 = minetest.get_node(p1) + local param2 = 0 + + local n0_is_upside_down = (n0.name == "stairs:slab_" .. subname and + n0.param2 >= 20) + + if n0.name == "stairs:slab_" .. subname and not n0_is_upside_down and p0.y+1 == p1.y then slabpos = p0 slabnode = n0 + elseif n1.name == "stairs:slab_" .. subname then + slabpos = p1 + slabnode = n1 end if slabpos then -- Remove the slab at slabpos minetest.remove_node(slabpos) -- Make a fake stack of a single item and try to place it local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + pointed_thing.above = slabpos - fakestack = minetest.item_place(fakestack, placer, pointed_thing) + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) -- If the item was taken from the fake stack, decrement original - if not fakestack or fakestack:is_empty() then - itemstack:take_item(1) + if success then + itemstack:set_count(fakestack:get_count()) -- Else put old node back else minetest.set_node(slabpos, slabnode) @@ -131,16 +142,19 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, -- Upside down slabs if p0.y-1 == p1.y then -- Turn into full block if pointing at a existing slab - if n0.name == "stairs:slab_" .. subname.."upside_down" then + if n0_is_upside_down then -- Remove the slab at the position of the slab minetest.remove_node(p0) -- Make a fake stack of a single item and try to place it local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + pointed_thing.above = p0 - fakestack = minetest.item_place(fakestack, placer, pointed_thing) + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) -- If the item was taken from the fake stack, decrement original - if not fakestack or fakestack:is_empty() then - itemstack:take_item(1) + if success then + itemstack:set_count(fakestack:get_count()) -- Else put old node back else minetest.set_node(p0, n0) @@ -149,43 +163,22 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, end -- Place upside down slab - local fakestack = ItemStack("stairs:slab_" .. subname.."upside_down") - local ret = minetest.item_place(fakestack, placer, pointed_thing) - if ret:is_empty() then - itemstack:take_item() - return itemstack - end + param2 = 20 end -- If pointing at the side of a upside down slab - if n0.name == "stairs:slab_" .. subname.."upside_down" and - p0.y+1 ~= p1.y then - -- Place upside down slab - local fakestack = ItemStack("stairs:slab_" .. subname.."upside_down") - local ret = minetest.item_place(fakestack, placer, pointed_thing) - if ret:is_empty() then - itemstack:take_item() - return itemstack - end + if n0_is_upside_down and p0.y+1 ~= p1.y then + param2 = 20 end - -- Otherwise place regularly - return minetest.item_place(itemstack, placer, pointed_thing) + return minetest.item_place(itemstack, placer, pointed_thing, param2) end, }) + -- for replace ABM minetest.register_node(":stairs:slab_" .. subname.."upside_down", { - drop = "stairs:slab_"..subname, - drawtype = "nodebox", - tiles = images, - paramtype = "light", - is_ground_content = true, - groups = groups, - sounds = sounds, - node_box = { - type = "fixed", - fixed = {-0.5, 0, -0.5, 0.5, 0.5, 0.5}, - }, + replace_name = "stairs:slab_"..subname, + groups = {slabs_replace=1}, }) minetest.register_craft({ @@ -196,6 +189,23 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, }) end +-- Replace old "upside_down" nodes with new param2 versions +minetest.register_abm({ + nodenames = {"group:slabs_replace"}, + interval = 1, + chance = 1, + action = function(pos, node) + node.name = minetest.registered_nodes[node.name].replace_name + node.param2 = node.param2 + 20 + if node.param2 == 21 then + node.param2 = 23 + elseif node.param2 == 23 then + node.param2 = 21 + end + minetest.set_node(pos, node) + end, +}) + -- Nodes will be called stairs:{stair,slab}_ function stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds) stairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds) From 804a9d6ffe8857a52b94c6559f7ec8394371b1c6 Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Tue, 6 Aug 2013 15:39:22 +0200 Subject: [PATCH 05/18] Longer range and insta-dig in creative --- mods/creative/init.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mods/creative/init.lua b/mods/creative/init.lua index 45b7a220..c8f891a9 100644 --- a/mods/creative/init.lua +++ b/mods/creative/init.lua @@ -127,15 +127,16 @@ if minetest.setting_getbool("creative_mode") then type = "none", wield_image = "wieldhand.png", wield_scale = {x=1,y=1,z=2.5}, + range = 10, tool_capabilities = { full_punch_interval = 0.5, max_drop_level = 3, groupcaps = { - crumbly = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, - cracky = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, - snappy = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, - choppy = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, - oddly_breakable_by_hand = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.0, [2]=0.0, [3]=0.0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.0, [2]=0.0, [3]=0.0}, uses=0, maxlevel=3}, + snappy = {times={[1]=0.0, [2]=0.0, [3]=0.0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.0, [2]=0.0, [3]=0.0}, uses=0, maxlevel=3}, + oddly_breakable_by_hand = {times={[1]=0.0, [2]=0.0, [3]=0.0}, uses=0, maxlevel=3}, }, damage_groups = {fleshy = 10}, } From a3ec0064f5d9fb4fbbeec713fc1c0a5e47446b10 Mon Sep 17 00:00:00 2001 From: proller Date: Tue, 22 Oct 2013 19:36:07 +0400 Subject: [PATCH 06/18] cobble melt --- mods/default/nodes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 115eb2cd..c40a90dc 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1016,7 +1016,7 @@ minetest.register_node("default:cobble", { description = "Cobblestone", tiles = {"default_cobble.png"}, is_ground_content = true, - groups = {cracky=3, stone=2}, + groups = {cracky=3, stone=2, melt=2900}, sounds = default.node_sound_stone_defaults(), }) From a5ffa1e2f3687e792a7d94736805ad235976c838 Mon Sep 17 00:00:00 2001 From: proller Date: Sat, 26 Oct 2013 16:43:40 +0400 Subject: [PATCH 07/18] melting cobble --- mods/default/nodes.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index c40a90dc..dbbc5306 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1016,6 +1016,7 @@ minetest.register_node("default:cobble", { description = "Cobblestone", tiles = {"default_cobble.png"}, is_ground_content = true, + freezemelt = "default:lava_source", groups = {cracky=3, stone=2, melt=2900}, sounds = default.node_sound_stone_defaults(), }) From 558f7aa72acd5ed3208d9cc7781bb7374c35a733 Mon Sep 17 00:00:00 2001 From: proller Date: Tue, 29 Oct 2013 17:23:38 +0400 Subject: [PATCH 08/18] fire flamable when temp high --- mods/fire/init.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mods/fire/init.lua b/mods/fire/init.lua index b12806a4..48d100d8 100644 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -190,3 +190,23 @@ minetest.register_abm({ end, }) +-- too hot +if minetest.setting_getbool("weather") then +minetest.register_abm({ + nodenames = {"group:flammable"}, + interval = 5, + chance = 5, + action = function(p0, node, _, _) + -- If there is water or stuff like that around flame, don't ignite + if minetest.get_heat(p0) < 500 then return end + if fire.flame_should_extinguish(p0) then + return + end + local p = fire.find_pos_for_flame_around(p0) + if p then + minetest.set_node(p, {name="fire:basic_flame"}) + fire.on_flame_add_at(p) + end + end, +}) +end From dcccf5016dd47bd2c2f355e67dcab08b093c18e5 Mon Sep 17 00:00:00 2001 From: proller Date: Tue, 29 Oct 2013 21:06:09 +0400 Subject: [PATCH 09/18] melting dirt --- mods/default/nodes.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index dbbc5306..f5225eed 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -128,7 +128,8 @@ minetest.register_node("default:dirt", { description = "Dirt", tiles = {"default_dirt.png"}, is_ground_content = true, - groups = {crumbly=3,soil=1}, + groups = {crumbly=3,soil=1,melt=800}, + freezemelt = "default:sand", sounds = default.node_sound_dirt_defaults(), }) @@ -136,7 +137,8 @@ minetest.register_node("default:sand", { description = "Sand", tiles = {"default_sand.png"}, is_ground_content = true, - groups = {crumbly=3, falling_node=1, sand=1}, + groups = {crumbly=3, falling_node=1, sand=1, melt=1000}, + freezemelt = "default:glass", sounds = default.node_sound_sand_defaults(), }) @@ -340,7 +342,8 @@ minetest.register_node("default:glass", { inventory_image = minetest.inventorycube("default_glass.png"), paramtype = "light", sunlight_propagates = true, - groups = {cracky=3,oddly_breakable_by_hand=3}, + groups = {cracky=3,oddly_breakable_by_hand=3, melt=1500}, + freezemelt = "default:obsidian_glass", sounds = default.node_sound_glass_defaults(), }) From 60a773b04639de1f23c19af40249f6d9f29816a9 Mon Sep 17 00:00:00 2001 From: proller Date: Tue, 29 Oct 2013 21:19:54 +0400 Subject: [PATCH 10/18] next --- mods/default/nodes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index f5225eed..a7d14f1a 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -137,7 +137,7 @@ minetest.register_node("default:sand", { description = "Sand", tiles = {"default_sand.png"}, is_ground_content = true, - groups = {crumbly=3, falling_node=1, sand=1, melt=1000}, + groups = {crumbly=3, falling_node=1, sand=1}, freezemelt = "default:glass", sounds = default.node_sound_sand_defaults(), }) From 5ef100dbdf497570e2029694b2e709a81f7623a1 Mon Sep 17 00:00:00 2001 From: proller Date: Tue, 29 Oct 2013 21:23:17 +0400 Subject: [PATCH 11/18] next --- mods/default/nodes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index a7d14f1a..44b6097b 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -137,7 +137,7 @@ minetest.register_node("default:sand", { description = "Sand", tiles = {"default_sand.png"}, is_ground_content = true, - groups = {crumbly=3, falling_node=1, sand=1}, + groups = {crumbly=3, falling_node=1, sand=1, liquid_flow=1, melt=1000}, freezemelt = "default:glass", sounds = default.node_sound_sand_defaults(), }) From 07f571b672aedbdef1a31c35958529c4c3e870e1 Mon Sep 17 00:00:00 2001 From: proller Date: Tue, 29 Oct 2013 21:24:14 +0400 Subject: [PATCH 12/18] next --- mods/default/nodes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 44b6097b..051ce080 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -138,8 +138,8 @@ minetest.register_node("default:sand", { tiles = {"default_sand.png"}, is_ground_content = true, groups = {crumbly=3, falling_node=1, sand=1, liquid_flow=1, melt=1000}, - freezemelt = "default:glass", sounds = default.node_sound_sand_defaults(), + freezemelt = "default:glass", }) minetest.register_node("default:desert_sand", { From bcbb4fcec4c6a9f2f59919c6ef3ecd83276c8ae4 Mon Sep 17 00:00:00 2001 From: proller Date: Tue, 29 Oct 2013 21:25:16 +0400 Subject: [PATCH 13/18] next --- mods/default/nodes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 051ce080..91e3b581 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -137,7 +137,7 @@ minetest.register_node("default:sand", { description = "Sand", tiles = {"default_sand.png"}, is_ground_content = true, - groups = {crumbly=3, falling_node=1, sand=1, liquid_flow=1, melt=1000}, + groups = {crumbly=3, falling_node=1, sand=1}, sounds = default.node_sound_sand_defaults(), freezemelt = "default:glass", }) From 84224165b6f71ca059940c2bd12ae77b6ed8a5fe Mon Sep 17 00:00:00 2001 From: proller Date: Sun, 3 Nov 2013 03:48:15 +0400 Subject: [PATCH 14/18] weather dirt --- mods/default/nodes.lua | 47 +++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 906e879e..13719708 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1,5 +1,7 @@ -- mods/default/nodes.lua +local weather = minetest.setting_getbool("weather") + minetest.register_node("default:stone", { description = "Stone", tiles = {"default_stone.png"}, @@ -140,14 +142,16 @@ minetest.register_abm({ local above = {x=pos.x, y=pos.y+1, z=pos.z} local name = minetest.get_node(above).name local nodedef = minetest.registered_nodes[name] - if nodedef and (nodedef.sunlight_propagates or nodedef.paramtype == "light") - and nodedef.liquidtype == "none" - and (minetest.get_node_light(above) or 0) >= 13 then - if name == "default:snow" or name == "default:snowblock" then - minetest.set_node(pos, {name = "default:dirt_with_snow"}) - else - minetest.set_node(pos, {name = "default:dirt_with_grass"}) - end + if (weather and minetest.get_heat(pos) < -15) or name == "default:snow" or + name == "default:snowblock" or name == "default:ice" + then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + elseif (not weather or minetest.get_heat(pos) > 5) and + nodedef and (nodedef.sunlight_propagates or nodedef.paramtype == "light") and + nodedef.liquidtype == "none" and + (minetest.get_node_light(above) or 0) >= 13 + then + minetest.set_node(pos, {name = "default:dirt_with_grass"}) end end }) @@ -160,9 +164,28 @@ minetest.register_abm({ local above = {x=pos.x, y=pos.y+1, z=pos.z} local name = minetest.get_node(above).name local nodedef = minetest.registered_nodes[name] - if name ~= "ignore" and nodedef + if (name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") - and nodedef.liquidtype == "none") then + and nodedef.liquidtype == "none")) or (weather + and (minetest.get_heat(pos) < -5 or minetest.get_heat(pos) > 60)) + or name == "default:snow" or name == "default:snowblock" or name == "default:ice" + then + minetest.set_node(pos, {name = "default:dirt"}) + end + end +}) + +minetest.register_abm({ + nodenames = {"default:dirt_with_snow"}, + interval = 2, + chance = 200, + action = function(pos, node) + local above = {x=pos.x, y=pos.y+1, z=pos.z} + local name = minetest.get_node(above).name + local nodedef = minetest.registered_nodes[name] + if (name ~= "ignore" and nodedef and (nodedef.liquidtype ~= "none" or + (weather and minetest.get_heat(pos) > 3 and name ~= "default:snow" and name ~= "default:snowblock" and name ~= "default:ice"))) + then minetest.set_node(pos, {name = "default:dirt"}) end end @@ -732,7 +755,7 @@ minetest.register_node("default:lava_flowing", { liquid_renewable = false, damage_per_second = 4*2, post_effect_color = {a=192, r=255, g=64, b=0}, - groups = {lava=3, liquid=2, hot=150, igniter=1, not_in_creative_inventory=1}, + groups = {lava=3, liquid=2, hot=700, igniter=1, not_in_creative_inventory=1}, }) minetest.register_node("default:lava_source", { @@ -765,7 +788,7 @@ minetest.register_node("default:lava_source", { liquid_renewable = false, damage_per_second = 4*2, post_effect_color = {a=192, r=255, g=64, b=0}, - groups = {lava=3, liquid=2, hot=200, igniter=1}, + groups = {lava=3, liquid=2, hot=1200, igniter=1}, }) minetest.register_node("default:torch", { From 158cfc73dfb2d2bcd9474420634c4fa149794eb8 Mon Sep 17 00:00:00 2001 From: proller Date: Sun, 3 Nov 2013 03:53:23 +0400 Subject: [PATCH 15/18] fm --- mods/default/nodes.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 13719708..aefa61ae 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -197,7 +197,6 @@ minetest.register_node("default:sand", { is_ground_content = true, groups = {crumbly=3, falling_node=1, sand=1}, sounds = default.node_sound_sand_defaults(), - freezemelt = "default:glass", }) minetest.register_node("default:desert_sand", { From 2f527f6cf9cea4cbaaf74800e30c80ea2014e875 Mon Sep 17 00:00:00 2001 From: proller Date: Sun, 3 Nov 2013 04:31:42 +0400 Subject: [PATCH 16/18] no grow tree --- mods/default/nodes.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index aefa61ae..84efe002 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -389,6 +389,7 @@ minetest.register_abm({ interval = 10, chance = 50, action = function(pos, node) + if weather and minetest.get_heat(pos) < 5 then return end local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil if is_soil == nil or is_soil == 0 then return end print("A sapling grows into a tree at "..minetest.pos_to_string(pos)) @@ -486,6 +487,7 @@ minetest.register_abm({ interval = 1, chance = 1, action = function(pos, node) + if weather and minetest.get_heat(pos) < 15 then return end local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil if is_soil == nil or is_soil == 0 then return end print("A jungle sapling grows into a tree at "..minetest.pos_to_string(pos)) From 93d99667d9b72ea65df286ef0fb5247bf38c9cfe Mon Sep 17 00:00:00 2001 From: proller Date: Fri, 8 Nov 2013 22:07:04 +0400 Subject: [PATCH 17/18] dirtfix --- mods/default/nodes.lua | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 1d9f83bf..12867388 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -142,13 +142,12 @@ minetest.register_abm({ local above = {x=pos.x, y=pos.y+1, z=pos.z} local name = minetest.get_node(above).name local nodedef = minetest.registered_nodes[name] + if ( not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") and nodedef.liquidtype == "none")) then return end if (weather and minetest.get_heat(pos) < -15) or name == "default:snow" or name == "default:snowblock" or name == "default:ice" then minetest.set_node(pos, {name = "default:dirt_with_snow"}) - elseif (not weather or minetest.get_heat(pos) > 5) and - nodedef and (nodedef.sunlight_propagates or nodedef.paramtype == "light") and - nodedef.liquidtype == "none" and + elseif (not weather or minetest.get_heat(pos) > 5) and nodedef and (minetest.get_node_light(above) or 0) >= 13 then minetest.set_node(pos, {name = "default:dirt_with_grass"}) From bc8263fdf384f3a14474fbb9de19ae9127a95f2c Mon Sep 17 00:00:00 2001 From: proller Date: Sat, 9 Nov 2013 18:09:04 +0400 Subject: [PATCH 18/18] fix dirt --- mods/default/nodes.lua | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 12867388..49b20c6c 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -142,6 +142,7 @@ minetest.register_abm({ local above = {x=pos.x, y=pos.y+1, z=pos.z} local name = minetest.get_node(above).name local nodedef = minetest.registered_nodes[name] + if (name == "ignore" or not nodedef) then return end if ( not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") and nodedef.liquidtype == "none")) then return end if (weather and minetest.get_heat(pos) < -15) or name == "default:snow" or name == "default:snowblock" or name == "default:ice" @@ -163,8 +164,8 @@ minetest.register_abm({ local above = {x=pos.x, y=pos.y+1, z=pos.z} local name = minetest.get_node(above).name local nodedef = minetest.registered_nodes[name] - if (name ~= "ignore" and nodedef - and not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") + if (name == "ignore" or not nodedef) then return end + if ( not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") and nodedef.liquidtype == "none")) or (weather and (minetest.get_heat(pos) < -5 or minetest.get_heat(pos) > 60)) or name == "default:snow" or name == "default:snowblock" or name == "default:ice" @@ -182,8 +183,10 @@ minetest.register_abm({ local above = {x=pos.x, y=pos.y+1, z=pos.z} local name = minetest.get_node(above).name local nodedef = minetest.registered_nodes[name] - if (name ~= "ignore" and nodedef and (nodedef.liquidtype ~= "none" or - (weather and minetest.get_heat(pos) > 3 and name ~= "default:snow" and name ~= "default:snowblock" and name ~= "default:ice"))) + if (name == "ignore" or not nodedef) then return end + if (not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") + and nodedef.liquidtype == "none") or + (weather and minetest.get_heat(pos) > 3 and name ~= "default:snow" and name ~= "default:snowblock" and name ~= "default:ice")) then minetest.set_node(pos, {name = "default:dirt"}) end