mirror of
				https://github.com/FaceDeer/dfcaverns.git
				synced 2025-11-01 00:35:23 +01:00 
			
		
		
		
	make ground covers spread
This commit is contained in:
		| @@ -1,5 +1,24 @@ | |||||||
| local S = df_mapitems.S | local S = df_mapitems.S | ||||||
|  |  | ||||||
|  |  | ||||||
|  | local function soil_type_spread(label, node_to_spread, target_node) | ||||||
|  | 	minetest.register_abm{ | ||||||
|  | 		label = label, | ||||||
|  | 		nodenames = {target_node}, | ||||||
|  | 		neighbors = {node_to_spread}, | ||||||
|  | 		interval = 60, | ||||||
|  | 		chance = 15, | ||||||
|  | 		catch_up = true, | ||||||
|  | 		action = function(pos) | ||||||
|  | 			local above_def = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name] | ||||||
|  | 			if above_def and (above_def.buildable_to == true or above_def.walkable == false) then | ||||||
|  | 				minetest.swap_node(pos, {name=node_to_spread}) | ||||||
|  | 			end | ||||||
|  | 		end, | ||||||
|  | 	} | ||||||
|  | end | ||||||
|  |  | ||||||
|  |  | ||||||
| -------------------------------------------------- | -------------------------------------------------- | ||||||
| -- Cave moss | -- Cave moss | ||||||
|  |  | ||||||
| @@ -28,20 +47,7 @@ minetest.register_node("df_mapitems:dirt_with_cave_moss", { | |||||||
| 	_dfcaverns_dead_node = "default:dirt", | 	_dfcaverns_dead_node = "default:dirt", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_abm{ | soil_type_spread("df_mapitems:cave_moss_spread", "df_mapitems:dirt_with_cave_moss", "default:dirt") | ||||||
| 	label = "df_mapitems:cave_moss_spread", |  | ||||||
| 	nodenames = {"default:dirt"}, |  | ||||||
| 	neighbors = {"df_mapitems:dirt_with_cave_moss"}, |  | ||||||
| 	interval = 60, |  | ||||||
| 	chance = 15, |  | ||||||
| 	catch_up = true, |  | ||||||
| 	action = function(pos) |  | ||||||
| 		local above_def = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name] |  | ||||||
| 		if above_def and (above_def.buildable_to == true or above_def.walkable == false) then |  | ||||||
| 			minetest.swap_node(pos, {name="df_mapitems:dirt_with_cave_moss"}) |  | ||||||
| 		end |  | ||||||
| 	end, |  | ||||||
| } |  | ||||||
|  |  | ||||||
| --------------------------------------------------------------- | --------------------------------------------------------------- | ||||||
| -- Sand scum | -- Sand scum | ||||||
| @@ -64,25 +70,7 @@ minetest.register_node("df_mapitems:sand_scum", { | |||||||
| 	_dfcaverns_dead_node = "default:sand", | 	_dfcaverns_dead_node = "default:sand", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| --------------------------------------------------------------- | soil_type_spread("df_mapitems:sand_scum_spread", "df_mapitems:sand_scum", "default:sand") | ||||||
| -- Spongestone |  | ||||||
|  |  | ||||||
| minetest.register_node("df_mapitems:spongestone", { |  | ||||||
| 	description = S("Spongestone"), |  | ||||||
| 	_doc_items_longdesc = df_mapitems.doc.sponge_stone_desc, |  | ||||||
| 	_doc_items_usagehelp = df_mapitems.doc.sponge_stone_usage, |  | ||||||
| 	tiles = {"dfcaverns_ground_cover_sponge_stone.png"}, |  | ||||||
| 	is_ground_content = false, |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 8}, |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| 	soil = { |  | ||||||
| 		base = "df_mapitems:spongestone", |  | ||||||
| 		dry = "farming:soil", |  | ||||||
| 		wet = "farming:soil_wet" |  | ||||||
| 	}, |  | ||||||
| 	_dfcaverns_dead_node = "default:dirt", |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| --------------------------------------------------------------- | --------------------------------------------------------------- | ||||||
| -- Pebble fungus | -- Pebble fungus | ||||||
| @@ -108,6 +96,8 @@ minetest.register_node("df_mapitems:dirt_with_pebble_fungus", { | |||||||
| 	_dfcaverns_dead_node = "default:dirt", | 	_dfcaverns_dead_node = "default:dirt", | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | soil_type_spread("df_mapitems:pebble_fungus_spread", "df_mapitems:dirt_with_pebble_fungus", "default:dirt") | ||||||
|  |  | ||||||
| --------------------------------------------------------------- | --------------------------------------------------------------- | ||||||
| -- Stillworm | -- Stillworm | ||||||
|  |  | ||||||
| @@ -134,56 +124,27 @@ minetest.register_node("df_mapitems:dirt_with_stillworm", { | |||||||
| 	_dfcaverns_dead_node = "default:dirt", | 	_dfcaverns_dead_node = "default:dirt", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| ---------------------------------------------------------------- | soil_type_spread("df_mapitems:stillworm_spread", "df_mapitems:dirt_with_stillworm", "default:dirt") | ||||||
| -- Footprint-capable nodes |  | ||||||
|  |  | ||||||
| if minetest.get_modpath("footprints") then |  | ||||||
| 	local HARDPACK_PROBABILITY = tonumber(minetest.settings:get("footprints_hardpack_probability")) or 0.9 -- Chance walked dirt/grass is worn and compacted to footprints:trail. |  | ||||||
| 	local HARDPACK_COUNT = tonumber(minetest.settings:get("footprints_hardpack_count")) or 10 -- Number of times the above chance needs to be passed for soil to compact. |  | ||||||
|  |  | ||||||
| 	footprints.register_trample_node("df_mapitems:dirt_with_cave_moss", { |  | ||||||
| 		trampled_node_def_override = {description = S("Dirt with Cave Moss and Footprint"),}, |  | ||||||
| 		hard_pack_node_name = "footprints:trail", |  | ||||||
| 		footprint_opacity = 128, |  | ||||||
| 		hard_pack_probability = HARDPACK_PROBABILITY, |  | ||||||
| 		hard_pack_count = HARDPACK_COUNT, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	footprints.register_trample_node("df_mapitems:sand_scum", { |  | ||||||
| 		trampled_node_def_override = {description = S("Sand Scum with Footprint"),}, |  | ||||||
| 		hard_pack_node_name = "default:sand", |  | ||||||
| 		footprint_opacity = 128, |  | ||||||
| 		hard_pack_probability = HARDPACK_PROBABILITY, |  | ||||||
| 		hard_pack_count = HARDPACK_COUNT * 0.5, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	footprints.register_trample_node("df_mapitems:spongestone", { |  | ||||||
| 		trampled_node_def_override = {description = S("Spongestone with Footprint"),}, |  | ||||||
| 		hard_pack_node_name = "footprints:trail", |  | ||||||
| 		footprint_opacity = 128, |  | ||||||
| 		hard_pack_probability = HARDPACK_PROBABILITY, |  | ||||||
| 		hard_pack_count = HARDPACK_COUNT * 2, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	footprints.register_trample_node("df_mapitems:dirt_with_pebble_fungus", { |  | ||||||
| 		trampled_node_def_override = {description = S("Dirt with Pebble Fungus and Footprint"),}, |  | ||||||
| 		hard_pack_node_name = "footprints:trail", |  | ||||||
| 		footprint_opacity = 128, |  | ||||||
| 		hard_pack_probability = HARDPACK_PROBABILITY, |  | ||||||
| 		hard_pack_count = HARDPACK_COUNT, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	footprints.register_trample_node("df_mapitems:dirt_with_stillworm", { |  | ||||||
| 		trampled_node_def_override = {description = S("Dirt with Stillworm and Footprint"),}, |  | ||||||
| 		hard_pack_node_name = "footprints:trail", |  | ||||||
| 		footprint_opacity = 192, |  | ||||||
| 		hard_pack_probability = HARDPACK_PROBABILITY, |  | ||||||
| 		hard_pack_count = HARDPACK_COUNT, |  | ||||||
| 	}) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| --------------------------------------------------------------- | --------------------------------------------------------------- | ||||||
| -- Rock rot | -- Spongestone / Rock rot | ||||||
|  |  | ||||||
|  | minetest.register_node("df_mapitems:spongestone", { | ||||||
|  | 	description = S("Spongestone"), | ||||||
|  | 	_doc_items_longdesc = df_mapitems.doc.sponge_stone_desc, | ||||||
|  | 	_doc_items_usagehelp = df_mapitems.doc.sponge_stone_usage, | ||||||
|  | 	tiles = {"dfcaverns_ground_cover_sponge_stone.png"}, | ||||||
|  | 	is_ground_content = false, | ||||||
|  | 	paramtype = "light", | ||||||
|  | 	groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 8}, | ||||||
|  | 	sounds = default.node_sound_dirt_defaults(), | ||||||
|  | 	soil = { | ||||||
|  | 		base = "df_mapitems:spongestone", | ||||||
|  | 		dry = "farming:soil", | ||||||
|  | 		wet = "farming:soil_wet" | ||||||
|  | 	}, | ||||||
|  | 	_dfcaverns_dead_node = "default:dirt", | ||||||
|  | }) | ||||||
|  |  | ||||||
| minetest.register_node("df_mapitems:rock_rot", { | minetest.register_node("df_mapitems:rock_rot", { | ||||||
| 	description = S("Rock Rot"), | 	description = S("Rock Rot"), | ||||||
| @@ -192,7 +153,7 @@ minetest.register_node("df_mapitems:rock_rot", { | |||||||
| 	tiles = {"default_stone.png^dfcaverns_ground_cover_rock_rot.png", "default_stone.png",  | 	tiles = {"default_stone.png^dfcaverns_ground_cover_rock_rot.png", "default_stone.png",  | ||||||
| 		{name = "default_stone.png^(dfcaverns_ground_cover_rock_rot.png^[mask:dfcaverns_ground_cover_side_mask.png)", | 		{name = "default_stone.png^(dfcaverns_ground_cover_rock_rot.png^[mask:dfcaverns_ground_cover_side_mask.png)", | ||||||
| 			tileable_vertical = false}}, | 			tileable_vertical = false}}, | ||||||
| 	drop = "default:stone", | 	drop = "default:cobble", | ||||||
| 	is_ground_content = false, | 	is_ground_content = false, | ||||||
| 	light_source = 2, | 	light_source = 2, | ||||||
| 	paramtype = "light", | 	paramtype = "light", | ||||||
| @@ -201,6 +162,9 @@ minetest.register_node("df_mapitems:rock_rot", { | |||||||
| 	_dfcaverns_dead_node = "default:stone", | 	_dfcaverns_dead_node = "default:stone", | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | soil_type_spread("df_mapitems:rock_rot_spread", "df_mapitems:rock_rot", "default:stone") | ||||||
|  | soil_type_spread("df_mapitems:spongestone_spread", "df_mapitems:spongestone", "default:rock_rot") | ||||||
|  |  | ||||||
| -------------------------------------------------- | -------------------------------------------------- | ||||||
| -- floor fungus | -- floor fungus | ||||||
|  |  | ||||||
| @@ -273,4 +237,53 @@ minetest.register_node("df_mapitems:ice_with_hoar_moss", { | |||||||
| 	groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1, slippery = 2, light_sensitive_fungus = 8}, | 	groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1, slippery = 2, light_sensitive_fungus = 8}, | ||||||
| 	sounds = default.node_sound_glass_defaults(), | 	sounds = default.node_sound_glass_defaults(), | ||||||
| 	_dfcaverns_dead_node = "default:ice", | 	_dfcaverns_dead_node = "default:ice", | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ---------------------------------------------------------------- | ||||||
|  | -- Footprint-capable nodes | ||||||
|  |  | ||||||
|  | if minetest.get_modpath("footprints") then | ||||||
|  | 	local HARDPACK_PROBABILITY = tonumber(minetest.settings:get("footprints_hardpack_probability")) or 0.9 -- Chance walked dirt/grass is worn and compacted to footprints:trail. | ||||||
|  | 	local HARDPACK_COUNT = tonumber(minetest.settings:get("footprints_hardpack_count")) or 10 -- Number of times the above chance needs to be passed for soil to compact. | ||||||
|  |  | ||||||
|  | 	footprints.register_trample_node("df_mapitems:dirt_with_cave_moss", { | ||||||
|  | 		trampled_node_def_override = {description = S("Dirt with Cave Moss and Footprint"),}, | ||||||
|  | 		hard_pack_node_name = "footprints:trail", | ||||||
|  | 		footprint_opacity = 128, | ||||||
|  | 		hard_pack_probability = HARDPACK_PROBABILITY, | ||||||
|  | 		hard_pack_count = HARDPACK_COUNT, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	footprints.register_trample_node("df_mapitems:sand_scum", { | ||||||
|  | 		trampled_node_def_override = {description = S("Sand Scum with Footprint"),}, | ||||||
|  | 		hard_pack_node_name = "default:sand", | ||||||
|  | 		footprint_opacity = 128, | ||||||
|  | 		hard_pack_probability = HARDPACK_PROBABILITY, | ||||||
|  | 		hard_pack_count = HARDPACK_COUNT * 0.5, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	footprints.register_trample_node("df_mapitems:spongestone", { | ||||||
|  | 		trampled_node_def_override = {description = S("Spongestone with Footprint"),}, | ||||||
|  | 		hard_pack_node_name = "footprints:trail", | ||||||
|  | 		footprint_opacity = 128, | ||||||
|  | 		hard_pack_probability = HARDPACK_PROBABILITY, | ||||||
|  | 		hard_pack_count = HARDPACK_COUNT * 2, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	footprints.register_trample_node("df_mapitems:dirt_with_pebble_fungus", { | ||||||
|  | 		trampled_node_def_override = {description = S("Dirt with Pebble Fungus and Footprint"),}, | ||||||
|  | 		hard_pack_node_name = "footprints:trail", | ||||||
|  | 		footprint_opacity = 128, | ||||||
|  | 		hard_pack_probability = HARDPACK_PROBABILITY, | ||||||
|  | 		hard_pack_count = HARDPACK_COUNT, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	footprints.register_trample_node("df_mapitems:dirt_with_stillworm", { | ||||||
|  | 		trampled_node_def_override = {description = S("Dirt with Stillworm and Footprint"),}, | ||||||
|  | 		hard_pack_node_name = "footprints:trail", | ||||||
|  | 		footprint_opacity = 192, | ||||||
|  | 		hard_pack_probability = HARDPACK_PROBABILITY, | ||||||
|  | 		hard_pack_count = HARDPACK_COUNT, | ||||||
|  | 	}) | ||||||
|  | end | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user