форк від mtcontrib/minetest-mod-sea
		
	Порівняти коміти
	
		
			5 Коміти
		
	
	
		
			nalc-1.0
			...
			b0fd455b7e
		
	
	| Автор | SHA1 | Дата | |
|---|---|---|---|
| b0fd455b7e | |||
| e1ca03e6f3 | |||
| b2fc8936bf | |||
| 5ec73557de | |||
| ef1efe65d9 | 
| @@ -1,3 +1,6 @@ | |||||||
|  | local sand_sounds = minetest.registered_nodes["default:sand"].sounds | ||||||
|  | local dirt_sounds = minetest.registered_nodes["default:dirt"].sounds | ||||||
|  |  | ||||||
| -- NODES | -- NODES | ||||||
|  |  | ||||||
| minetest.register_node("clams:sandalgae", { | minetest.register_node("clams:sandalgae", { | ||||||
| @@ -16,7 +19,7 @@ minetest.register_node("clams:sandalgae", { | |||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
| 	sounds = default.node_sound_sand_defaults(), | 	sounds = sand_sounds, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_node("clams:dirtalgae", { | minetest.register_node("clams:dirtalgae", { | ||||||
| @@ -35,25 +38,25 @@ minetest.register_node("clams:dirtalgae", { | |||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
| 	sounds = default.node_sound_dirt_defaults,	 | 	sounds = dirt_sounds, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_node("clams:sandalgaeused", { | minetest.register_node("clams:sandalgaeused", { | ||||||
| 	description = "Used sandalgae", | 	description = "Used sandalgae", | ||||||
| 	tiles = {"default_sand.png^clams_algaeused.png"}, | 	tiles = {"default_sand.png^clams_algaeused.png"}, | ||||||
| 	inventory_image = {"default_sand.png^clams_algaeused.png"}, | 	inventory_image = "default_sand.png^clams_algaeused.png", | ||||||
| 	is_ground_content = true, | 	is_ground_content = true, | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1}, | 	groups = {crumbly=3, falling_node=1, sand=1}, | ||||||
| 	sounds = default.node_sound_sand_defaults(), | 	sounds = sand_sounds, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_node("clams:dirtalgaeused", { | minetest.register_node("clams:dirtalgaeused", { | ||||||
| 	description = "Used dirtalgae", | 	description = "Used dirtalgae", | ||||||
| 	tiles = {"default_dirt.png^clams_algaeused.png"}, | 	tiles = {"default_dirt.png^clams_algaeused.png"}, | ||||||
| 	inventory_image = {"default_dirt.png^clams_algaeused.png"}, | 	inventory_image = "default_dirt.png^clams_algaeused.png", | ||||||
| 	is_ground_content = true, | 	is_ground_content = true, | ||||||
| 	groups = {crumbly=3}, | 	groups = {crumbly=3}, | ||||||
| 	sounds = default.node_sound_dirt_defaults(), | 	sounds = dirt_sounds, | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| default | default | ||||||
| noairblocks | nalc_lib | ||||||
| unifieddyes | unifieddyes | ||||||
| colormachine? | colormachine? | ||||||
| @@ -1,613 +1,148 @@ | |||||||
| -- NODES | -- NODES | ||||||
|  |  | ||||||
|  | -- Add magenta, aqua, skyblue seacorals | ||||||
| minetest.register_node("seacoral:coralcyan", { | for color, cname in pairs({magenta = "Magenta", aqua = "Aqua", skyblue = "Skyblue"}) do | ||||||
| 	description = "Cyan Coral", | 	minetest.register_node( | ||||||
| 	drawtype = "plantlike", | 		"seacoral:coral_"..color, { | ||||||
| 	tiles = {"seacoral_coralcyan.png"}, | 			description = cname.." Coral", | ||||||
| 	inventory_image = "seacoral_coralcyan.png", | 			drawtype = "plantlike_rooted", | ||||||
| 	wield_image = "seacoral_coralcyan.png", | 			waving = 1, | ||||||
| 			paramtype = "light", | 			paramtype = "light", | ||||||
| 	walkable = false, | 			tiles = {"default_coral_skeleton.png"}, | ||||||
| 	climbable = true, | 			special_tiles = {{name = "seacoral_coral"..color..".png", tileable_vertical = true}}, | ||||||
| 	drowning = 1, | 			inventory_image = "seacoral_coral"..color..".png", | ||||||
| 	is_ground_content = true, | 			groups = {snappy = 3, seacoral = 1}, | ||||||
| 			selection_box = { | 			selection_box = { | ||||||
| 				type = "fixed", | 				type = "fixed", | ||||||
| 		fixed = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3} | 				fixed = { | ||||||
|  | 					{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, | ||||||
|  | 					{-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, | ||||||
| 				}, | 				}, | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seacoral=1, sea=1,basecolor_cyan=1}, |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:coralmagenta", { |  | ||||||
| 	description = "Magenta Coral", |  | ||||||
| 	drawtype = "plantlike", |  | ||||||
| 	tiles = {"seacoral_coralmagenta.png"}, |  | ||||||
| 	inventory_image = "seacoral_coralmagenta.png", |  | ||||||
| 	wield_image = "seacoral_coralmagenta.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} |  | ||||||
| 			}, | 			}, | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, | 			node_dig_prediction = "default:coral_skeleton", | ||||||
| 	groups = {snappy=3, seacoral=1, sea=1,basecolor_magenta=1}, | 			node_placement_prediction = "", | ||||||
| 	sounds = default.node_sound_dirt_defaults(), | 			sounds = default.node_sound_stone_defaults( | ||||||
|  | 				{ | ||||||
|  | 					dig = {name = "default_dig_snappy", gain = 0.2}, | ||||||
|  | 					dug = {name = "default_grass_footstep", gain = 0.25}, | ||||||
|  | 				}), | ||||||
|  |  | ||||||
|  | 			on_place = function(itemstack, placer, pointed_thing) | ||||||
|  | 				if pointed_thing.type ~= "node" or not placer then | ||||||
|  | 					return itemstack | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				local player_name = placer:get_player_name() | ||||||
|  | 				local pos_under = pointed_thing.under | ||||||
|  | 				local pos_above = pointed_thing.above | ||||||
|  |  | ||||||
|  | 				if minetest.get_node(pos_under).name ~= "default:coral_skeleton" or | ||||||
|  | 				minetest.get_node(pos_above).name ~= "default:water_source" then | ||||||
|  | 					return itemstack | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				if minetest.is_protected(pos_under, player_name) or | ||||||
|  | 				minetest.is_protected(pos_above, player_name) then | ||||||
|  | 					minetest.chat_send_player(player_name, "Node is protected") | ||||||
|  | 					minetest.record_protection_violation(pos_under, player_name) | ||||||
|  | 					return itemstack | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				minetest.set_node(pos_under, {name = "seacoral:coral"..color}) | ||||||
|  | 				if not (creative and creative.is_enabled_for(player_name)) then | ||||||
|  | 					itemstack:take_item() | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				return itemstack | ||||||
|  | 			end, | ||||||
|  |  | ||||||
|  | 			after_destruct = function(pos, oldnode) | ||||||
|  | 				minetest.set_node(pos, {name = "default:coral_skeleton"}) | ||||||
|  | 			end, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:coralaqua", { | 	-- Replace Old seacorals with new defined ones | ||||||
| 	description = "Aqua Coral", | 	minetest.register_alias("seacoral:coral"..color, "default:water_source") | ||||||
| 	drawtype = "plantlike", | 	minetest.register_alias("seacoral:seacoralsand"..color, "seacoral:coral_"..color) | ||||||
| 	tiles = {"seacoral_coralaqua.png"}, | 	minetest.register_alias("seacoral:seacoraldirt"..color, "seacoral:coral_"..color) | ||||||
| 	inventory_image = "seacoral_coralaqua.png", | end | ||||||
| 	wield_image = "seacoral_coralaqua.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seacoral=1, sea=1,excolor_aqua=1}, |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:corallime", { | -- Replace cyan, redviolet, lime seacorals with default Minetest's ones | ||||||
| 	description = "Lime Coral", | minetest.register_alias("seacoral:coralcyan", "default:water_source") | ||||||
| 	drawtype = "plantlike", | minetest.register_alias("seacoral:seacoralsandcyan", "default:coral_cyan") | ||||||
| 	tiles = {"seacoral_corallime.png"}, | minetest.register_alias("seacoral:seacoraldirtcyan", "default:coral_cyan") | ||||||
| 	inventory_image = "seacoral_corallime.png", | nalc.add_group("default:coral_cyan", "seacoral", 1) | ||||||
| 	wield_image = "seacoral_corallime.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seacoral=1, sea=1,excolor_lime=1}, |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:coralskyblue", { | minetest.register_alias("seacoral:coralredviolet", "default:water_source") | ||||||
| 	description = "Skyblue Coral", | minetest.register_alias("seacoral:seacoralsandredviolet", "default:coral_pink") | ||||||
| 	drawtype = "plantlike", | minetest.register_alias("seacoral:seacoraldirtredviolet", "default:coral_pink") | ||||||
| 	tiles = {"seacoral_coralskyblue.png"}, | nalc.add_group("default:coral_pink", "seacoral", 1) | ||||||
| 	inventory_image = "seacoral_coralskyblue.png", |  | ||||||
| 	wield_image = "seacoral_coralskyblue.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seacoral=1, sea=1,excolor_skyblue=1}, |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:coralredviolet", { |  | ||||||
| 	description = "Redviolet Coral", |  | ||||||
| 	drawtype = "plantlike", |  | ||||||
| 	tiles = {"seacoral_coralredviolet.png"}, |  | ||||||
| 	inventory_image = "seacoral_coralredviolet.png", |  | ||||||
| 	wield_image = "seacoral_coralredviolet.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seacoral=1, sea=1,excolor_redviolet=1}, |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoralsandcyan", { |  | ||||||
| 	description = "Sea coral sand cyan", |  | ||||||
| 	tiles = {"default_sand.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:sand', |  | ||||||
| 	sounds = default.node_sound_sand_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoraldirtcyan", { |  | ||||||
| 	description = "Sea coral dirt cyan", |  | ||||||
| 	tiles = {"default_dirt.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:dirt', |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoralsandmagenta", { |  | ||||||
| 	description = "Sea coral sand magenta", |  | ||||||
| 	tiles = {"default_sand.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:sand', |  | ||||||
| 	sounds = default.node_sound_sand_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoraldirtmagenta", { |  | ||||||
| 	description = "Sea coral dirt magenta", |  | ||||||
| 	tiles = {"default_dirt.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:dirt', |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoralsandaqua", { |  | ||||||
| 	description = "Sea coral sand aqua", |  | ||||||
| 	tiles = {"default_sand.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:sand', |  | ||||||
| 	sounds = default.node_sound_sand_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoraldirtaqua", { |  | ||||||
| 	description = "Sea coral dirt aqua", |  | ||||||
| 	tiles = {"default_dirt.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:dirt', |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoralsandlime", { |  | ||||||
| 	description = "Sea coral sand lime", |  | ||||||
| 	tiles = {"default_sand.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:sand', |  | ||||||
| 	sounds = default.node_sound_sand_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoraldirtlime", { |  | ||||||
| 	description = "Sea coral dirt lime", |  | ||||||
| 	tiles = {"default_dirt.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:dirt', |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoralsandskyblue", { |  | ||||||
| 	description = "Sea coral sand skyblue", |  | ||||||
| 	tiles = {"default_sand.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:sand', |  | ||||||
| 	sounds = default.node_sound_sand_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoraldirtskyblue", { |  | ||||||
| 	description = "Sea coral dirt skyblue", |  | ||||||
| 	tiles = {"default_dirt.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:dirt', |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoralsandredviolet", { |  | ||||||
| 	description = "Sea coral sand redviolet", |  | ||||||
| 	tiles = {"default_sand.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:sand', |  | ||||||
| 	sounds = default.node_sound_sand_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seacoral:seacoraldirtredviolet", { |  | ||||||
| 	description = "Sea coral dirt redviolet", |  | ||||||
| 	tiles = {"default_dirt.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:dirt', |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
|  | minetest.register_alias("seacoral:corallime", "default:water_source") | ||||||
|  | minetest.register_alias("seacoral:seacoralsandlime", "default:coral_green") | ||||||
|  | minetest.register_alias("seacoral:seacoraldirtlime", "default:coral_green") | ||||||
|  | nalc.add_group("default:coral_green", "seacoral", 1) | ||||||
|  |  | ||||||
| -- CRAFTING | -- CRAFTING | ||||||
|  |  | ||||||
|  |  | ||||||
| if( minetest.get_modpath( "colormachine") == nil ) then | if( minetest.get_modpath( "colormachine") == nil ) then | ||||||
| 	register_seacoral_craft = function(output,recipe) | 	register_seacoral_craft = function(output,recipe) | ||||||
|     	minetest.register_craft({ | 		minetest.register_craft( | ||||||
|  | 			{ | ||||||
| 				type = 'shapeless', | 				type = 'shapeless', | ||||||
| 				output = output, | 				output = output, | ||||||
| 				recipe = recipe, | 				recipe = recipe, | ||||||
| 			}) | 			}) | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| register_seacoral_craft('dye:cyan 4', {'seacoral:coralcyan'}) | 	register_seacoral_craft('dye:cyan 4', {'default:coral_cyan'}) | ||||||
| register_seacoral_craft('dye:magenta 4', {'seacoral:coralmagenta'}) | 	register_seacoral_craft('dye:magenta 4', {'seacoral:coral_magenta'}) | ||||||
| register_seacoral_craft('dye:lime 4', {'seacoral:corallime'}) | 	register_seacoral_craft('dye:lime 4', {'default:coral_green'}) | ||||||
| register_seacoral_craft('dye:aqua 4', {'seacoral:coralaqua'}) | 	register_seacoral_craft('dye:spring 4', {'seacoral:coral_aqua'}) | ||||||
| register_seacoral_craft('dye:skyblue 4', {'seacoral:coralskyblue'}) | 	register_seacoral_craft('dye:azure 4', {'seacoral:coral_skyblue'}) | ||||||
| register_seacoral_craft('dye:redviolet 4', {'seacoral:coralredviolet'}) | 	register_seacoral_craft('dye:pink 4', {'default:coral_pink'}) | ||||||
| end | end | ||||||
|  |  | ||||||
| -- SEACORAL SAND AND DIRT GENERATION | -- SEACORAL SAND AND DIRT GENERATION | ||||||
|  |  | ||||||
|  | -- Coral reef | ||||||
|  |  | ||||||
| minetest.register_ore({ | minetest.register_decoration( | ||||||
| 	ore_type       = "scatter", | 	{ | ||||||
| 	ore            = "seacoral:seacoralsandcyan", | 		name = "seacoral:corals", | ||||||
| 	wherein        = "default:sand", | 		deco_type = "simple", | ||||||
| 	clust_scarcity = 10*10*10, | 		place_on = {"default:sand"}, | ||||||
| 	clust_num_ores = 24, | 		place_offset_y = -1, | ||||||
| 	clust_size     = 4, | 		sidelen = 4, | ||||||
| 	y_max     = -4, | 		noise_params = { | ||||||
|  | 			offset = -4, | ||||||
|  | 			scale = 4, | ||||||
|  | 			spread = {x = 50, y = 50, z = 50}, | ||||||
|  | 			seed = 7014, | ||||||
|  | 			octaves = 3, | ||||||
|  | 			persist = 0.7, | ||||||
|  | 		}, | ||||||
|  | 		biomes = { | ||||||
|  | 			"desert_ocean", | ||||||
|  | 			"savanna_ocean", | ||||||
|  | 			"rainforest_ocean", | ||||||
|  | 		}, | ||||||
|  | 		y_max = -2, | ||||||
| 		y_min = -8, | 		y_min = -8, | ||||||
|  | 		flags = "force_placement", | ||||||
|  | 		decoration = { | ||||||
|  | 			"seacoral:coral_magenta", "default:coral_orange", | ||||||
|  | 			"seacoral:coral_aqua", "default:coral_brown", | ||||||
|  | 			"seacoral:coral_skyblue", "default:coral_skeleton", | ||||||
|  | 			"default:coral_green", "default:coral_pink", | ||||||
|  | 			"default:coral_cyan" | ||||||
|  | 		}, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoraldirtcyan", |  | ||||||
| 	wherein        = "default:dirt", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoralsandmagenta", |  | ||||||
| 	wherein        = "default:sand", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoraldirtmagenta", |  | ||||||
| 	wherein        = "default:dirt", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoralsandaqua", |  | ||||||
| 	wherein        = "default:sand", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoraldirtaqua", |  | ||||||
| 	wherein        = "default:dirt", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoralsandlime", |  | ||||||
| 	wherein        = "default:sand", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoraldirtlime", |  | ||||||
| 	wherein        = "default:dirt", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoralsandskyblue", |  | ||||||
| 	wherein        = "default:sand", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoraldirtskyblue", |  | ||||||
| 	wherein        = "default:dirt", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoralsandredviolet", |  | ||||||
| 	wherein        = "default:sand", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seacoral:seacoraldirtredviolet", |  | ||||||
| 	wherein        = "default:dirt", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -4, |  | ||||||
| 	y_min     = -8, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, y_min, y_max) |  | ||||||
| 	if maxp.y < y_min or minp.y > y_max then |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| 	local y_min = math.max(minp.y, y_min) |  | ||||||
| 	local y_max = math.min(maxp.y, y_max) |  | ||||||
| 	if chunk_size >= y_max - y_min + 1 then |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| 	local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1) |  | ||||||
| 	local pr = PseudoRandom(seed) |  | ||||||
| 	local num_chunks = math.floor(chunks_per_volume * volume) |  | ||||||
| 	local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk) |  | ||||||
| 	for i=1,num_chunks do |  | ||||||
| 		local y0 = pr:next(y_min, y_max-chunk_size+1) |  | ||||||
| 		if y0 >= y_min and y0 <= y_max then |  | ||||||
| 			local x0 = pr:next(minp.x, maxp.x-chunk_size+1) |  | ||||||
| 			local z0 = pr:next(minp.z, maxp.z-chunk_size+1) |  | ||||||
| 			local p0 = {x=x0, y=y0, z=z0} |  | ||||||
| 			for x1=0,chunk_size-1 do |  | ||||||
| 			for y1=0,chunk_size-1 do |  | ||||||
| 			for z1=0,chunk_size-1 do |  | ||||||
| 				if pr:next(1,inverse_chance) == 1 then |  | ||||||
| 					local x2 = x0+x1 |  | ||||||
| 					local y2 = y0+y1 |  | ||||||
| 					local z2 = z0+z1 |  | ||||||
| 					local p2 = {x=x2, y=y2, z=z2} |  | ||||||
| 					if minetest.get_node(p2).name == wherein then |  | ||||||
| 						minetest.set_node(p2, {name=name}) |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
| 			end |  | ||||||
| 			end |  | ||||||
| 			end |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- ABM'S | -- ABM'S | ||||||
|  |  | ||||||
|  | minetest.register_abm( | ||||||
| minetest.register_abm({ | 	{ | ||||||
| nodenames = {"seacoral:seacoraldirtcyan"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralcyan"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoralsandcyan"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralcyan"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoraldirtmagenta"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralmagenta"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoralsandmagenta"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralmagenta"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoraldirtaqua"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralaqua"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoralsandaqua"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralaqua"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoraldirtlime"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:corallime"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoralsandlime"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:corallime"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoraldirtskyblue"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralskyblue"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoralsandskyblue"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralskyblue"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoraldirtredviolet"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralredviolet"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seacoral:seacoralsandredviolet"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seacoral:coralredviolet"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| 		nodenames = {"group:seacoral"}, | 		nodenames = {"group:seacoral"}, | ||||||
| 		interval = 3, | 		interval = 3, | ||||||
| 		chance = 1, | 		chance = 1, | ||||||
| @@ -633,7 +168,7 @@ end | |||||||
|  |  | ||||||
|  |  | ||||||
| if( minetest.get_modpath( "colormachine") ~= nil ) then | if( minetest.get_modpath( "colormachine") ~= nil ) then | ||||||
| 	colormachine.basic_dye_sources  = { "flowers:rose", "flowers:tulip", "flowers:dandelion_yellow", "seacoral:corallime", "default:cactus", "seacoral:coralaqua", "seacoral:coralcyan", "seacoral:coralskyblue", "flowers:geranium", "flowers:viola", "seacoral:coralmagenta", "seacoral:coralredviolet", "default:stone", "", "", "", "default:coal_lump" }; | 	colormachine.basic_dye_sources  = { "flowers:rose", "flowers:tulip", "flowers:dandelion_yellow", "default:coral_green", "default:cactus", "seacoral:coral_aqua", "default::coral_cyan", "seacoral:coral_skyblue", "flowers:geranium", "flowers:viola", "seacoral:coral_magenta", "default:coral_pink", "default:stone", "", "", "", "default:coal_lump" }; | ||||||
| 	else | 	else | ||||||
| 	return | 	return | ||||||
| end | end | ||||||
| @@ -645,8 +180,8 @@ end | |||||||
| minetest.register_alias("seadye:cyan","dye:cyan") | minetest.register_alias("seadye:cyan","dye:cyan") | ||||||
| minetest.register_alias("seadye:magenta","dye:magenta") | minetest.register_alias("seadye:magenta","dye:magenta") | ||||||
| minetest.register_alias("seadye:lime","dye:lime") | minetest.register_alias("seadye:lime","dye:lime") | ||||||
| minetest.register_alias("seadye:aqua","dye:aqua") | minetest.register_alias("seadye:aqua","dye:spring") | ||||||
| minetest.register_alias("seadye:skyblue","dye:skyblue") | minetest.register_alias("seadye:skyblue","dye:azure") | ||||||
| minetest.register_alias("seadye:redviolet","dye:redviolet") | minetest.register_alias("seadye:redviolet","dye:pink") | ||||||
|  |  | ||||||
| minetest.log("action", "[sea - seacoral] loaded.") | minetest.log("action", "[sea - seacoral] loaded.") | ||||||
|   | |||||||
| @@ -1,248 +1,107 @@ | |||||||
| -- NODES | -- NODES | ||||||
|  |  | ||||||
|  | local repl = { | ||||||
|  |    ["off"] = "", | ||||||
|  |    ["on"] = "off", | ||||||
|  | } | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglass", { | local colors = {"yellow", "red", "blue", "white", "black"} | ||||||
| 	description = "Standard seaglass on", |  | ||||||
|  | local function register_glass(suffix, color, cgroups) | ||||||
|  |    -- suffix : bool (false:off | true:on) | ||||||
|  |    local desc = "Seaglass " | ||||||
|  |  | ||||||
|  |    local col, c = "", "" | ||||||
|  |    if color and color ~= "" then | ||||||
|  |       col,c = color, "_"..color | ||||||
|  |       desc = desc..color.." " | ||||||
|  |    end | ||||||
|  |  | ||||||
|  |    local l, light, ls = "", "on", 7 | ||||||
|  |    if not suffix then | ||||||
|  |       l,light = "off","off" | ||||||
|  |       ls = 0 | ||||||
|  |    end | ||||||
|  |  | ||||||
|  |    desc = desc..light | ||||||
|  |     | ||||||
|  |    minetest.register_node( | ||||||
|  |       "seaglass:seaglass"..l..c, | ||||||
|  |       { | ||||||
|  | 	 description = desc, | ||||||
| 	 drawtype = "glasslike", | 	 drawtype = "glasslike", | ||||||
| 	tiles = {"seaglass_seaglass.png"}, | 	 tiles = {"seaglass_seaglass"..c..".png"}, | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass.png"), | 	 inventory_image = minetest.inventorycube("seaglass_seaglass"..c..".png"), | ||||||
| 	 paramtype = "light", | 	 paramtype = "light", | ||||||
| 	 sunlight_propagates = true, | 	 sunlight_propagates = true, | ||||||
| 	light_source = 14, | 	 light_source = ls, | ||||||
| 	 is_ground_content = true, | 	 is_ground_content = true, | ||||||
| 	drop = 'seaglass:seaglassoff', | 	 drop = "seaglass:seaglassoff"..c, | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1}, | 	 groups = cgroups, -- {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1}, | ||||||
| 	 sounds = default.node_sound_glass_defaults(), | 	 sounds = default.node_sound_glass_defaults(), | ||||||
|  | 	 on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
|  | 	    node.name = "seaglass:seaglass"..repl[light]..c | ||||||
|  | 	    minetest.set_node(pos, node) | ||||||
|  | 	 end, | ||||||
|       }) |       }) | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglass_yellow", { |    stairs.register_stair_and_slab("seaglass"..l..c, "seaglass:seaglass"..l..c, | ||||||
| 	description = "Seaglass yellow on", | 				       cgroups, | ||||||
| 	drawtype = "glasslike", | 				       {"seaglass_seaglass"..c..".png"}, | ||||||
| 	tiles = {"seaglass_seaglass_yellow.png"}, | 				       "Seaglass stair "..light.." "..col, | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_yellow.png"), | 				       "Seaglass slab "..light.." "..col, | ||||||
| 	paramtype = "light", | 				       default.node_sound_glass_defaults()) | ||||||
| 	sunlight_propagates = true, |     | ||||||
| 	light_source = 14, |    for _,i in ipairs({"slab", "stair", "stair_outer", "stair_inner"}) do | ||||||
| 	is_ground_content = true, |       minetest.override_item( | ||||||
| 	drop = 'seaglass:seaglassoff_yellow', | 	 "stairs:"..i.."_seaglass"..l..c, | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, shine=1, yellowshine=1, not_in_creative_inventory=1}, | 	 { | ||||||
| 	sounds = default.node_sound_glass_defaults(), | 	    light_source = ls, | ||||||
|  | 	    drop = "stairs:"..i.."_seaglassoff"..c, | ||||||
|  | 	    on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
|  | 	       node.name = "stairs:"..i.."_seaglass"..repl[light]..c | ||||||
|  | 	       minetest.set_node(pos, node) | ||||||
|  | 	    end | ||||||
| 	 }) | 	 }) | ||||||
|  |       if suffix then | ||||||
|  | 	 minetest.register_alias("stairsshine:"..i.."_seaglass"..c, "stairs:"..i.."_seaglass"..c) | ||||||
|  |       end | ||||||
|  |    end | ||||||
|     |     | ||||||
| minetest.register_node("seaglass:seaglass_red", { | end | ||||||
| 	description = "Seaglass red on", |  | ||||||
| 	drawtype = "glasslike", |  | ||||||
| 	tiles = {"seaglass_seaglass_red.png"}, |  | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_red.png"), |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	sunlight_propagates = true, |  | ||||||
| 	light_source = 14, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	drop = 'seaglass:seaglassoff_red', |  | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, shine=1, redshine=1, not_in_creative_inventory=1}, |  | ||||||
| 	sounds = default.node_sound_glass_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglass_blue", { | for _,color in ipairs(colors) do | ||||||
| 	description = "Seaglass blue on", |    local groups_off = {noshine=1, snappy=2, cracky=3, oddly_breakable_by_hand=3} | ||||||
| 	drawtype = "glasslike", |    local groups_on = {not_in_creative_inventory=1, shine=1, snappy=2, cracky=3, oddly_breakable_by_hand=3} | ||||||
| 	tiles = {"seaglass_seaglass_blue.png"}, |  | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_blue.png"), |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	sunlight_propagates = true, |  | ||||||
| 	light_source = 14, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	drop = 'seaglass:seaglassoff_blue', |  | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, shine=1, blueshine=1, not_in_creative_inventory=1}, |  | ||||||
| 	sounds = default.node_sound_glass_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglass_white", { |    if color == "yellow" then | ||||||
| 	description = "Seaglass white on", |       groups_off.color_yellow = 1 | ||||||
| 	drawtype = "glasslike", |       groups_on.color_yellow = 1 | ||||||
| 	tiles = {"seaglass_seaglass_white.png"}, |       groups_on.yellowshine = 1 | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_white.png"), |    elseif color == "red" then | ||||||
| 	paramtype = "light", |       groups_off.color_red = 1 | ||||||
| 	sunlight_propagates = true, |       groups_on.color_red = 1 | ||||||
| 	light_source = 14, |       groups_on.redshine = 1 | ||||||
| 	is_ground_content = true, |    elseif color == "blue" then | ||||||
| 	drop = 'seaglass:seaglassoff_white', |       groups_off.color_blue = 1 | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, shine=1, whiteshine=1, not_in_creative_inventory=1}, |       groups_on.color_blue = 1 | ||||||
| 	sounds = default.node_sound_glass_defaults(), |       groups_on.blueshine = 1 | ||||||
| }) |    elseif color == "white" then | ||||||
|  |       groups_off.color_white = 1 | ||||||
|  |       groups_on.color_white = 1 | ||||||
|  |       groups_on.whiteshine = 1 | ||||||
|  |    elseif color == "black" then | ||||||
|  |       groups_off.color_black = 1 | ||||||
|  |       groups_on.color_black = 1 | ||||||
|  |       groups_on.blackshine = 1 | ||||||
|  |    end | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglass_black", { |    register_glass(false, color, groups_off) | ||||||
| 	description = "Seaglass black on", |    register_glass(true, color, groups_on) | ||||||
| 	drawtype = "glasslike", | end | ||||||
| 	tiles = {"seaglass_seaglass_black.png"}, |  | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_black.png"), |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	sunlight_propagates = true, |  | ||||||
| 	light_source = 14, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	drop = 'seaglass:seaglassoff_black', |  | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, shine=1, blackshine=1, not_in_creative_inventory=1}, |  | ||||||
| 	sounds = default.node_sound_glass_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglassoff", { | register_glass(false, nil, {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, noshine=1}) | ||||||
| 	description = "Standard seaglass off", | register_glass(true, nil, {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1}) | ||||||
| 	drawtype = "glasslike", |  | ||||||
| 	tiles = {"seaglass_seaglass.png"}, |  | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass.png"), |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	sunlight_propagates = true, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, noshine=1}, |  | ||||||
| 	sounds = default.node_sound_glass_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglassoff_yellow", { |  | ||||||
| 	description = "Seaglass yellow off", |  | ||||||
| 	drawtype = "glasslike", |  | ||||||
| 	tiles = {"seaglass_seaglass_yellow.png"}, |  | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_yellow.png"), |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	sunlight_propagates = true, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, noshine=1}, |  | ||||||
| 	sounds = default.node_sound_glass_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglassoff_red", { |  | ||||||
| 	description = "Seaglass red off", |  | ||||||
| 	drawtype = "glasslike", |  | ||||||
| 	tiles = {"seaglass_seaglass_red.png"}, |  | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_red.png"), |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	sunlight_propagates = true, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, noshine=1}, |  | ||||||
| 	sounds = default.node_sound_glass_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglassoff_blue", { |  | ||||||
| 	description = "Seaglass blue off", |  | ||||||
| 	drawtype = "glasslike", |  | ||||||
| 	tiles = {"seaglass_seaglass_blue.png"}, |  | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_blue.png"), |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	sunlight_propagates = true, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, noshine=1}, |  | ||||||
| 	sounds = default.node_sound_glass_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglassoff_white", { |  | ||||||
| 	description = "Seaglass white off", |  | ||||||
| 	drawtype = "glasslike", |  | ||||||
| 	tiles = {"seaglass_seaglass_white.png"}, |  | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_white.png"), |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	sunlight_propagates = true, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, noshine=1}, |  | ||||||
| 	sounds = default.node_sound_glass_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaglass:seaglassoff_black", { |  | ||||||
| 	description = "Seaglass black off", |  | ||||||
| 	drawtype = "glasslike", |  | ||||||
| 	tiles = {"seaglass_seaglass_black.png"}, |  | ||||||
| 	inventory_image = minetest.inventorycube("seaglass_seaglass_black.png"), |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	sunlight_propagates = true, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, noshine=1}, |  | ||||||
| 	sounds = default.node_sound_glass_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- STAIRS |  | ||||||
|  |  | ||||||
| stairsshine.register_stair_and_slab("seaglass", "seaglass:seaglass", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1}, |  | ||||||
| 		{"seaglass_seaglass.png"}, |  | ||||||
| 		"Seaglass stair on", |  | ||||||
| 		"Seaglass slab on", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairsshine.register_stair_and_slab("seaglass_yellow", "seaglass:seaglass_yellow", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, shine=1, yellowshine=1, not_in_creative_inventory=1}, |  | ||||||
| 		{"seaglass_seaglass_yellow.png"}, |  | ||||||
| 		"seaglass stair on yellow", |  | ||||||
| 		"seaglass slab on yellow", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairsshine.register_stair_and_slab("seaglass_red", "seaglass:seaglass_red", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, shine=1, redshine=1, not_in_creative_inventory=1}, |  | ||||||
| 		{"seaglass_seaglass_red.png"}, |  | ||||||
| 		"Seaglass stair on red", |  | ||||||
| 		"Seaglass slab on red", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairsshine.register_stair_and_slab("seaglass_blue", "seaglass:seaglass_blue", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, shine=1, blueshine=1, not_in_creative_inventory=1}, |  | ||||||
| 		{"seaglass_seaglass_blue.png"}, |  | ||||||
| 		"Seaglass stair on blue", |  | ||||||
| 		"Seaglass slab on blue", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairsshine.register_stair_and_slab("seaglass_white", "seaglass:seaglass_white", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, shine=1, whiteshine=1, not_in_creative_inventory=1}, |  | ||||||
| 		{"seaglass_seaglass_white.png"}, |  | ||||||
| 		"Seaglass stair on white", |  | ||||||
| 		"Seaglass slab on white", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairsshine.register_stair_and_slab("seaglass_black", "seaglass:seaglass_black", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, shine=1, blackshine=1, not_in_creative_inventory=1}, |  | ||||||
| 		{"seaglass_seaglass_black.png"}, |  | ||||||
| 		"Seaglass stair on black ", |  | ||||||
| 		"Seaglass slab on black", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairs.register_stair_and_slab("seaglassoff", "seaglass:seaglassoff", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, noshine=1}, |  | ||||||
| 		{"seaglass_seaglass.png"}, |  | ||||||
| 		"Seaglass stair off", |  | ||||||
| 		"Seaglass slab off", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairs.register_stair_and_slab("seaglassoff_yellow", "seaglass:seaglassoff_yellow", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, noshine=1}, |  | ||||||
| 		{"seaglass_seaglass_yellow.png"}, |  | ||||||
| 		"seaglass stair off yellow", |  | ||||||
| 		"seaglass slab off yellow", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairs.register_stair_and_slab("seaglassoff_red", "seaglass:seaglassoff_red", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, noshine=1}, |  | ||||||
| 		{"seaglass_seaglass_red.png"}, |  | ||||||
| 		"Seaglass stair off red", |  | ||||||
| 		"Seaglass slab off red", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairs.register_stair_and_slab("seaglassoff_blue", "seaglass:seaglassoff_blue", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, noshine=1}, |  | ||||||
| 		{"seaglass_seaglass_blue.png"}, |  | ||||||
| 		"Seaglass stair off blue", |  | ||||||
| 		"Seaglass slab off blue", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairs.register_stair_and_slab("seaglassoff_white", "seaglass:seaglassoff_white", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, noshine=1}, |  | ||||||
| 		{"seaglass_seaglass_white.png"}, |  | ||||||
| 		"Seaglass stair off white", |  | ||||||
| 		"Seaglass slab off white", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
| stairs.register_stair_and_slab("seaglassoff_black", "seaglass:seaglassoff_black", |  | ||||||
| 		{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, noshine=1}, |  | ||||||
| 		{"seaglass_seaglass_black.png"}, |  | ||||||
| 		"Seaglass stair off black ", |  | ||||||
| 		"Seaglass slab off black", |  | ||||||
| 		default.node_sound_glass_defaults()) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- CRAFTING | -- CRAFTING | ||||||
| @@ -290,444 +149,61 @@ register_seaglass_craft("seaglass:seaglass_blue", {'seaglass:seaglassoff_blue'}) | |||||||
| register_seaglass_craft("seaglass:seaglass_white", {'seaglass:seaglassoff_white'}) | register_seaglass_craft("seaglass:seaglass_white", {'seaglass:seaglassoff_white'}) | ||||||
| register_seaglass_craft("seaglass:seaglass_black", {'seaglass:seaglassoff_black'}) | register_seaglass_craft("seaglass:seaglass_black", {'seaglass:seaglassoff_black'}) | ||||||
|  |  | ||||||
| register_seaglass_craft("stairsshine:stair_seaglass", {'stairs:stair_seaglassoff'}) | register_seaglass_craft("stairs:stair_seaglass", {'stairs:stair_seaglassoff'}) | ||||||
| register_seaglass_craft("stairsshine:stair_seaglass_yellow", {'stairs:stair_seaglassoff_yellow'}) | register_seaglass_craft("stairs:stair_seaglass_yellow", {'stairs:stair_seaglassoff_yellow'}) | ||||||
| register_seaglass_craft("stairsshine:stair_seaglass_red", {'stairs:stair_seaglassoff_red'}) | register_seaglass_craft("stairs:stair_seaglass_red", {'stairs:stair_seaglassoff_red'}) | ||||||
| register_seaglass_craft("stairsshine:stair_seaglass_blue", {'stairs:stair_seaglassoff_blue'}) | register_seaglass_craft("stairs:stair_seaglass_blue", {'stairs:stair_seaglassoff_blue'}) | ||||||
| register_seaglass_craft("stairsshine:stair_seaglass_white", {'stairs:stair_seaglassoff_white'}) | register_seaglass_craft("stairs:stair_seaglass_white", {'stairs:stair_seaglassoff_white'}) | ||||||
| register_seaglass_craft("stairsshine:stair_seaglass_black", {'stairs:stair_seaglassoff_black'}) | register_seaglass_craft("stairs:stair_seaglass_black", {'stairs:stair_seaglassoff_black'}) | ||||||
|  |  | ||||||
| register_seaglass_craft("stairs:stair_seaglassoff", {'stairsshine:stair_seaglass'}) | register_seaglass_craft("stairs:stair_seaglassoff", {'stairs:stair_seaglass'}) | ||||||
| register_seaglass_craft("stairs:stair_seaglassoff_yellow", {'stairsshine:stair_seaglass_yellow'}) | register_seaglass_craft("stairs:stair_seaglassoff_yellow", {'stairs:stair_seaglass_yellow'}) | ||||||
| register_seaglass_craft("stairs:stair_seaglassoff_red", {'stairsshine:stair_seaglass_red'}) | register_seaglass_craft("stairs:stair_seaglassoff_red", {'stairs:stair_seaglass_red'}) | ||||||
| register_seaglass_craft("stairs:stair_seaglassoff_blue", {'stairsshine:stair_seaglass_blue'}) | register_seaglass_craft("stairs:stair_seaglassoff_blue", {'stairs:stair_seaglass_blue'}) | ||||||
| register_seaglass_craft("stairs:stair_seaglassoff_white", {'stairsshine:stair_seaglass_white'}) | register_seaglass_craft("stairs:stair_seaglassoff_white", {'stairs:stair_seaglass_white'}) | ||||||
| register_seaglass_craft("stairs:stair_seaglassoff_black", {'stairsshine:stair_seaglass_black'}) | register_seaglass_craft("stairs:stair_seaglassoff_black", {'stairs:stair_seaglass_black'}) | ||||||
|  |  | ||||||
| register_seaglass_craft("stairsshine:slab_seaglass", {'stairs:slab_seaglassoff'}) | register_seaglass_craft("stairs:stair_outer_seaglass", {'stairs:stair_outer_seaglassoff'}) | ||||||
| register_seaglass_craft("stairsshine:slab_seaglass_yellow", {'stairs:slab_seaglassoff_yellow'}) | register_seaglass_craft("stairs:stair_outer_seaglass_yellow", {'stairs:stair_outer_seaglassoff_yellow'}) | ||||||
| register_seaglass_craft("stairsshine:slab_seaglass_red", {'stairs:slab_seaglassoff_red'}) | register_seaglass_craft("stairs:stair_outer_seaglass_red", {'stairs:stair_outer_seaglassoff_red'}) | ||||||
| register_seaglass_craft("stairsshine:slab_seaglass_blue", {'stairs:slab_seaglassoff_blue'}) | register_seaglass_craft("stairs:stair_outer_seaglass_blue", {'stairs:stair_outer_seaglassoff_blue'}) | ||||||
| register_seaglass_craft("stairsshine:slab_seaglass_white", {'stairs:slab_seaglassoff_white'}) | register_seaglass_craft("stairs:stair_outer_seaglass_white", {'stairs:stair_outer_seaglassoff_white'}) | ||||||
| register_seaglass_craft("stairsshine:slab_seaglass_black", {'stairs:slab_seaglassoff_black'}) | register_seaglass_craft("stairs:stair_outer_seaglass_black", {'stairs:stair_outer_seaglassoff_black'}) | ||||||
|  |  | ||||||
| register_seaglass_craft("stairs:slab_seaglassoff", {'stairsshine:slab_seaglass'}) | register_seaglass_craft("stairs:stair_outer_seaglassoff", {'stairs:stair_outer_seaglass'}) | ||||||
| register_seaglass_craft("stairs:slab_seaglassoff_yellow", {'stairsshine:slab_seaglass_yellow'}) | register_seaglass_craft("stairs:stair_outer_seaglassoff_yellow", {'stairs:stair_outer_seaglass_yellow'}) | ||||||
| register_seaglass_craft("stairs:slab_seaglassoff_red", {'stairsshine:slab_seaglass_red'}) | register_seaglass_craft("stairs:stair_outer_seaglassoff_red", {'stairs:stair_outer_seaglass_red'}) | ||||||
| register_seaglass_craft("stairs:slab_seaglassoff_blue", {'stairsshine:slab_seaglass_blue'}) | register_seaglass_craft("stairs:stair_outer_seaglassoff_blue", {'stairs:stair_outer_seaglass_blue'}) | ||||||
| register_seaglass_craft("stairs:slab_seaglassoff_white", {'stairsshine:slab_seaglass_white'}) | register_seaglass_craft("stairs:stair_outer_seaglassoff_white", {'stairs:stair_outer_seaglass_white'}) | ||||||
| register_seaglass_craft("stairs:slab_seaglassoff_black", {'stairsshine:slab_seaglass_black'}) | register_seaglass_craft("stairs:stair_outer_seaglassoff_black", {'stairs:stair_outer_seaglass_black'}) | ||||||
|  |  | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglass", {'stairs:stair_inner_seaglassoff'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglass_yellow", {'stairs:stair_inner_seaglassoff_yellow'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglass_red", {'stairs:stair_inner_seaglassoff_red'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglass_blue", {'stairs:stair_inner_seaglassoff_blue'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglass_white", {'stairs:stair_inner_seaglassoff_white'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglass_black", {'stairs:stair_inner_seaglassoff_black'}) | ||||||
|  |  | ||||||
| -- FUNCTIONS | register_seaglass_craft("stairs:stair_inner_seaglassoff", {'stairs:stair_inner_seaglass'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglassoff_yellow", {'stairs:stair_inner_seaglass_yellow'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglassoff_red", {'stairs:stair_inner_seaglass_red'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglassoff_blue", {'stairs:stair_inner_seaglass_blue'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglassoff_white", {'stairs:stair_inner_seaglass_white'}) | ||||||
|  | register_seaglass_craft("stairs:stair_inner_seaglassoff_black", {'stairs:stair_inner_seaglass_black'}) | ||||||
|  |  | ||||||
|  | register_seaglass_craft("stairs:slab_seaglass", {'stairs:slab_seaglassoff'}) | ||||||
|  | register_seaglass_craft("stairs:slab_seaglass_yellow", {'stairs:slab_seaglassoff_yellow'}) | ||||||
|  | register_seaglass_craft("stairs:slab_seaglass_red", {'stairs:slab_seaglassoff_red'}) | ||||||
|  | register_seaglass_craft("stairs:slab_seaglass_blue", {'stairs:slab_seaglassoff_blue'}) | ||||||
|  | register_seaglass_craft("stairs:slab_seaglass_white", {'stairs:slab_seaglassoff_white'}) | ||||||
|  | register_seaglass_craft("stairs:slab_seaglass_black", {'stairs:slab_seaglassoff_black'}) | ||||||
|  |  | ||||||
| local on_lamp_puncher = function (pos, node, puncher) | register_seaglass_craft("stairs:slab_seaglassoff", {'stairs:slab_seaglass'}) | ||||||
| 	if node.name == "seaglass:seaglass" then | register_seaglass_craft("stairs:slab_seaglassoff_yellow", {'stairs:slab_seaglass_yellow'}) | ||||||
| 		minetest.add_node(pos, {name="seaglass:seaglassoff"}) | register_seaglass_craft("stairs:slab_seaglassoff_red", {'stairs:slab_seaglass_red'}) | ||||||
| 		nodeupdate(pos) | register_seaglass_craft("stairs:slab_seaglassoff_blue", {'stairs:slab_seaglass_blue'}) | ||||||
| 			elseif node.name == "seaglass:seaglassoff" then | register_seaglass_craft("stairs:slab_seaglassoff_white", {'stairs:slab_seaglass_white'}) | ||||||
| 			minetest.add_node(pos, {name="seaglass:seaglass"}) | register_seaglass_craft("stairs:slab_seaglassoff_black", {'stairs:slab_seaglass_black'}) | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglass_yellow" then |  | ||||||
| 		minetest.add_node(pos, {name="seaglass:seaglassoff_yellow"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglassoff_yellow" then |  | ||||||
| 			minetest.add_node(pos, {name="seaglass:seaglass_yellow"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglass_red" then |  | ||||||
| 		minetest.add_node(pos, {name="seaglass:seaglassoff_red"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglassoff_red" then |  | ||||||
| 			minetest.add_node(pos, {name="seaglass:seaglass_red"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglass_blue" then |  | ||||||
| 		minetest.add_node(pos, {name="seaglass:seaglassoff_blue"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglassoff_blue" then |  | ||||||
| 			minetest.add_node(pos, {name="seaglass:seaglass_blue"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglass_white" then |  | ||||||
| 		minetest.add_node(pos, {name="seaglass:seaglassoff_white"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglassoff_white" then |  | ||||||
| 			minetest.add_node(pos, {name="seaglass:seaglass_white"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglass_black" then |  | ||||||
| 		minetest.add_node(pos, {name="seaglass:seaglassoff_black"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 	elseif node.name == "seaglass:seaglassoff_black" then |  | ||||||
| 			minetest.add_node(pos, {name="seaglass:seaglass_black"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
|  |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 0 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 0}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 0 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 0}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 1 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 1}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 1 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 1}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 2 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 2}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 2 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 2}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 3 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 3}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 3 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 3}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 21 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 21}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 21 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 21}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 22 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 22}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 22 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 22}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 23 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 23}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 23 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 23}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 0 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 0}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 0 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 0}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 1 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 1}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 1 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 1}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 2 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 2}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 2 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 2}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 3 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 3}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 3 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 3}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 21 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 21}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 21 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 21}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 22 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 22}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 22 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 22}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 23 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 23}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 23 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 23}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 0 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 0}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 0 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 0}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 1 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 1}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 1 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 1}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 2 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 2}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 2 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 2}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 3 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 3}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 3 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 3}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 21 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 21}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 21 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 21}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 22 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 22}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 22 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 22}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 23 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 23}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 23 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 23}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 0 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 0}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 0 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 0}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 1 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 1}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 1 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 1}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 2 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 2}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 2 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 2}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 3 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 3}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 3 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 3}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 21 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 21}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 21 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 21}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 22 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 22}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 22 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 22}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 23 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 23}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 23 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 23}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
|  |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 0 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 0}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 0 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 0}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 1 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 1}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 1 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 1}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 2 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 2}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 2 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 2}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 3 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 3}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 3 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 3}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 21 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 21}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 21 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 21}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 22 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 22}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 22 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 22}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 23 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 23}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 23 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 23}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 0 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 0}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 0 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 0}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 1 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 1}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 1 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 1}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 2 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 2}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 2 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 2}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 3 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 3}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 3 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 3}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 21 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 21}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 21 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 21}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 22 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 22}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 22 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 22}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 23 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 23}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 23 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 23}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
|  |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass" then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff" then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_yellow" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_yellow", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_yellow" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_yellow", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_yellow" then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_yellow"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_yellow" then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_yellow"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_red" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_red", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_red" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_red", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_red" then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_red"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_red" then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_red"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_blue" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_blue", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_blue" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_blue", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_blue" then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_blue"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_blue" then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_blue"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_white" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_white", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_white" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_white", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_white" then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_white"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_white" then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_white"}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_black" and node.param2 == 20 then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_black", param2 = 20}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_black" and node.param2 == 20 then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_black", param2 = 20}) |  | ||||||
| 			nodeupdate(pos) |  | ||||||
| 	elseif node.name == "stairsshine:slab_seaglass_black" then |  | ||||||
| 		minetest.add_node(pos, {name="stairs:slab_seaglassoff_black"}) |  | ||||||
| 		nodeupdate(pos) |  | ||||||
| 			elseif node.name == "stairs:slab_seaglassoff_black" then |  | ||||||
| 			minetest.add_node(pos, {name="stairsshine:slab_seaglass_black"}) |  | ||||||
| 			nodeupdate(pos) else |  | ||||||
| 			return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| minetest.register_on_punchnode(on_lamp_puncher) |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- ALIASES | -- ALIASES | ||||||
|   | |||||||
| @@ -1,2 +1 @@ | |||||||
| default | default | ||||||
| noairblocks |  | ||||||
| @@ -1,202 +1,155 @@ | |||||||
| -- NODES | -- NODES | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:kelpgreen", { | for color, cname in pairs({green = "Green", brown = "Brown"}) do | ||||||
| 	description = "Green Kelp", | 	minetest.register_node( | ||||||
| 	drawtype = "plantlike", | 		"seaplants:sand_with_kelp_"..color, { | ||||||
| 	tiles = {"seaplants_kelpgreen.png"}, | 			description = cname.." Kelp", | ||||||
| 	inventory_image = "seaplants_kelpgreen.png", | 			drawtype = "plantlike_rooted", | ||||||
| 	wield_image = "seaplants_kelpgreen.png", | 			waving = 1, | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seaplants=1, sea=1}, |  | ||||||
| 	sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 	on_use = minetest.item_eat(1) |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:kelpgreenmiddle", { |  | ||||||
| 	description = "Green Kelp middle", |  | ||||||
| 	drawtype = "plantlike", |  | ||||||
| 	tiles = {"seaplants_kelpgreenmiddle.png"}, |  | ||||||
| 	inventory_image = "seaplants_kelpgreenmiddle.png", |  | ||||||
| 	wield_image = "seaplants_kelpgreenmiddle.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seaplants=1, sea=1}, |  | ||||||
| 	drop = "seaplants:kelpgreen", |  | ||||||
| 	sounds = default.node_sound_leaves_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:kelpbrown", { |  | ||||||
| 	description = "Brown Kelp ", |  | ||||||
| 	drawtype = "plantlike", |  | ||||||
| 	tiles = {"seaplants_kelpbrown.png"}, |  | ||||||
| 	inventory_image = "seaplants_kelpbrown.png", |  | ||||||
| 	wield_image = "seaplants_kelpbrown.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seaplants=1, sea=1}, |  | ||||||
| 	sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 	on_use = minetest.item_eat(1) |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:kelpbrownmiddle", { |  | ||||||
| 	description = "Brown Kelp middle", |  | ||||||
| 	drawtype = "plantlike", |  | ||||||
| 	tiles = {"seaplants_kelpbrownmiddle.png"}, |  | ||||||
| 	inventory_image = "seaplants_kelpbrownmiddle.png", |  | ||||||
| 	wield_image = "seaplants_kelpbrownmiddle.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seaplants=1, sea=1}, |  | ||||||
| 	drop = "seaplants:kelpbrown", |  | ||||||
| 	sounds = default.node_sound_leaves_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seagrassgreen", { |  | ||||||
| 	description = "Green Seagrass", |  | ||||||
| 	drawtype = "plantlike", |  | ||||||
| 	tiles = {"seaplants_seagrassgreen.png"}, |  | ||||||
| 	inventory_image = "seaplants_seagrassgreen.png", |  | ||||||
| 	wield_image = "seaplants_seagrassgreen.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seaplants=1, sea=1}, |  | ||||||
| 	sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 	on_use = minetest.item_eat(1) |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seagrassred", { |  | ||||||
| 	description = "Red Seagrass", |  | ||||||
| 	drawtype = "plantlike", |  | ||||||
| 	tiles = {"seaplants_seagrassred.png"}, |  | ||||||
| 	inventory_image = "seaplants_seagrassred.png", |  | ||||||
| 	wield_image = "seaplants_seagrassred.png", |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	walkable = false, |  | ||||||
| 	climbable = true, |  | ||||||
| 	drowning = 1, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3} |  | ||||||
| 	}, |  | ||||||
| 	post_effect_color = {a=64, r=100, g=100, b=200}, |  | ||||||
| 	groups = {snappy=3, seaplants=1, sea=1}, |  | ||||||
| 	sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 	on_use = minetest.item_eat(1) |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seaplantssandkelpgreen", { |  | ||||||
| 	description = "Sea plants sand kelp green", |  | ||||||
| 			tiles = {"default_sand.png"}, | 			tiles = {"default_sand.png"}, | ||||||
| 	is_ground_content = true, | 			special_tiles = {{name = "seaplants_kelp"..color.."middle.png", tileable_vertical = true}}, | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, | 			inventory_image = "seaplants_kelp"..color..".png", | ||||||
| 	drop = 'default:sand', | 			paramtype = "light", | ||||||
| 	sounds = default.node_sound_sand_defaults(), | 			paramtype2 = "leveled", | ||||||
|  | 			groups = {snappy = 3}, | ||||||
|  | 			selection_box = { | ||||||
|  | 				type = "fixed", | ||||||
|  | 				fixed = { | ||||||
|  | 					{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, | ||||||
|  | 					{-2/16, 0.5, -2/16, 2/16, 3.5, 2/16}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			node_dig_prediction = "default:sand", | ||||||
|  | 			node_placement_prediction = "", | ||||||
|  | 			sounds = default.node_sound_sand_defaults( | ||||||
|  | 				{ | ||||||
|  | 					dig = {name = "default_dig_snappy", gain = 0.2}, | ||||||
|  | 					dug = {name = "default_grass_footstep", gain = 0.25}, | ||||||
|  | 				}), | ||||||
|  | 			 | ||||||
|  | 			on_use = minetest.item_eat(1), | ||||||
|  | 			 | ||||||
|  | 			on_place = function(itemstack, placer, pointed_thing) | ||||||
|  | 				-- Call on_rightclick if the pointed node defines it | ||||||
|  | 				if pointed_thing.type == "node" and placer and | ||||||
|  | 				not placer:get_player_control().sneak then | ||||||
|  | 					local node_ptu = minetest.get_node(pointed_thing.under) | ||||||
|  | 					local def_ptu = minetest.registered_nodes[node_ptu.name] | ||||||
|  | 					if def_ptu and def_ptu.on_rightclick then | ||||||
|  | 						return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer, | ||||||
|  | 															  itemstack, pointed_thing) | ||||||
|  | 					end | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				local pos = pointed_thing.under | ||||||
|  | 				if minetest.get_node(pos).name ~= "default:sand" then | ||||||
|  | 					return itemstack | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				local height = math.random(4, 6) | ||||||
|  | 				local pos_top = {x = pos.x, y = pos.y + height, z = pos.z} | ||||||
|  | 				local node_top = minetest.get_node(pos_top) | ||||||
|  | 				local def_top = minetest.registered_nodes[node_top.name] | ||||||
|  | 				local player_name = placer:get_player_name() | ||||||
|  |  | ||||||
|  | 				if def_top and def_top.liquidtype == "source" and | ||||||
|  | 				minetest.get_item_group(node_top.name, "water") > 0 then | ||||||
|  | 					if not minetest.is_protected(pos, player_name) and | ||||||
|  | 					not minetest.is_protected(pos_top, player_name) then | ||||||
|  | 						minetest.set_node(pos, {name = "seaplants:sand_with_kelp_"..color, | ||||||
|  | 														param2 = height * 16}) | ||||||
|  | 						if not (creative and creative.is_enabled_for | ||||||
|  | 								  and creative.is_enabled_for(player_name)) then | ||||||
|  | 							itemstack:take_item() | ||||||
|  | 						end | ||||||
|  | 					else | ||||||
|  | 						minetest.chat_send_player(player_name, "Node is protected") | ||||||
|  | 						minetest.record_protection_violation(pos, player_name) | ||||||
|  | 					end | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				return itemstack | ||||||
|  | 			end, | ||||||
|  |  | ||||||
|  | 			after_destruct  = function(pos, oldnode) | ||||||
|  | 				minetest.set_node(pos, {name = "default:sand"}) | ||||||
|  | 			end | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seaplantsdirtkelpgreen", { | 	-- Replace Old Kelps by new ones | ||||||
| 	description = "Sea plants dirt kelp green", | 	minetest.register_alias("seaplants:kelp"..color, "default:water_source") | ||||||
| 	tiles = {"default_dirt.png"}, | 	minetest.register_alias("seaplants:kelp"..color.."middle", "default:water_source") | ||||||
| 	is_ground_content = true, | 	minetest.register_alias("seaplants:seaplantssandkelp"..color, "seaplants:sand_with_kelp_"..color) | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, | 	minetest.register_alias("seaplants:seaplantsdirtkelp"..color, "seaplants:sand_with_kelp_"..color) | ||||||
| 	drop = 'default:dirt', | end | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seaplantssandkelpbrown", { | for color, cname in pairs({green = "Green", red = "Red"}) do | ||||||
| 	description = "Sea plants sand kelp brown", | 	minetest.register_node( | ||||||
|  | 		"seaplants:seagrass_"..color, { | ||||||
|  | 			description = cname.." Seagrass", | ||||||
|  | 			drawtype = "plantlike_rooted", | ||||||
|  | 			waving = 1, | ||||||
|  | 			paramtype = "light", | ||||||
| 			tiles = {"default_sand.png"}, | 			tiles = {"default_sand.png"}, | ||||||
| 	is_ground_content = true, | 			special_tiles = {{name = "seaplants_seagrass"..color..".png", tileable_vertical = true}}, | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, | 			inventory_image = "seaplants_seagrass"..color..".png", | ||||||
| 	drop = 'default:sand', | 			groups = {snappy = 3}, | ||||||
| 	sounds = default.node_sound_sand_defaults(), | 			selection_box = { | ||||||
|  | 				type = "fixed", | ||||||
|  | 				fixed = { | ||||||
|  | 					{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, | ||||||
|  | 					{-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			node_dig_prediction = "default:sand", | ||||||
|  | 			node_placement_prediction = "", | ||||||
|  | 			sounds = default.node_sound_sand_defaults( | ||||||
|  | 				{ | ||||||
|  | 					dig = {name = "default_dig_snappy", gain = 0.2}, | ||||||
|  | 					dug = {name = "default_grass_footstep", gain = 0.25}, | ||||||
|  | 				}), | ||||||
|  |  | ||||||
|  | 			on_use = minetest.item_eat(1), | ||||||
|  |  | ||||||
|  | 			on_place = function(itemstack, placer, pointed_thing) | ||||||
|  | 				if pointed_thing.type ~= "node" or not placer then | ||||||
|  | 					return itemstack | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				local player_name = placer:get_player_name() | ||||||
|  | 				local pos_under = pointed_thing.under | ||||||
|  | 				local pos_above = pointed_thing.above | ||||||
|  |  | ||||||
|  | 				if minetest.get_node(pos_under).name ~= "default:sand" or | ||||||
|  | 				minetest.get_node(pos_above).name ~= "default:water_source" then | ||||||
|  | 					return itemstack | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				if minetest.is_protected(pos_under, player_name) or | ||||||
|  | 				minetest.is_protected(pos_above, player_name) then | ||||||
|  | 					minetest.chat_send_player(player_name, "Node is protected") | ||||||
|  | 					minetest.record_protection_violation(pos_under, player_name) | ||||||
|  | 					return itemstack | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				minetest.set_node(pos_under, {name = "seaplants:seagrass_"..color}) | ||||||
|  | 				if not (creative and creative.is_enabled_for(player_name)) then | ||||||
|  | 					itemstack:take_item() | ||||||
|  | 				end | ||||||
|  |  | ||||||
|  | 				return itemstack | ||||||
|  | 			end, | ||||||
|  |  | ||||||
|  | 			after_destruct = function(pos, oldnode) | ||||||
|  | 				minetest.set_node(pos, {name = "default:sand"}) | ||||||
|  | 			end, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seaplantsdirtkelpbrown", { | 	-- Replace Old seagrasses by new ones | ||||||
| 	description = "Sea plants dirt kelp brown", | 	minetest.register_alias("seaplants:seagrass"..color, "default:water_source") | ||||||
| 	tiles = {"default_dirt.png"}, | 	minetest.register_alias("seaplants:seaplantssandseagrass"..color, "seaplants:seagrass_"..color) | ||||||
| 	is_ground_content = true, | 	minetest.register_alias("seaplants:seaplantsdirtseagrass"..color, "seaplants:seagrass_"..color) | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, | end | ||||||
| 	drop = 'default:dirt', |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seaplantssandseagrassgreen", { |  | ||||||
| 	description = "Sea plants sand seagrass green", |  | ||||||
| 	tiles = {"default_sand.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:sand', |  | ||||||
| 	sounds = default.node_sound_sand_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seaplantsdirtseagrassgreen", { |  | ||||||
| 	description = "Sea plants dirt seagrass green", |  | ||||||
| 	tiles = {"default_dirt.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:dirt', |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seaplantssandseagrassred", { |  | ||||||
| 	description = "Sea plants sand seagrass red", |  | ||||||
| 	tiles = {"default_sand.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:sand', |  | ||||||
| 	sounds = default.node_sound_sand_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("seaplants:seaplantsdirtseagrassred", { |  | ||||||
| 	description = "Sea plants dirt seagrass red", |  | ||||||
| 	tiles = {"default_dirt.png"}, |  | ||||||
| 	is_ground_content = true, |  | ||||||
| 	groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, |  | ||||||
| 	drop = 'default:dirt', |  | ||||||
| 	sounds = default.node_sound_dirt_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- CRAFT ITEMS | -- CRAFT ITEMS | ||||||
| @@ -214,328 +167,61 @@ minetest.register_craftitem("seaplants:seasaladmix", { | |||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	type = "shapeless", | 	type = "shapeless", | ||||||
| 	output = "seaplants:seasaladmix", | 	output = "seaplants:seasaladmix", | ||||||
| 	recipe = {"seaplants:kelpgreen", "seaplants:kelpbrown", "seaplants:seagrassgreen", "seaplants:seagrassred"} | 	recipe = {"seaplants:sand_with_kelp_green", "seaplants:sand_with_kelp_brown", "seaplants:seagrass_green", "seaplants:seagrass_red"} | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  |  | ||||||
| -- SEAPLANTS SAND AND DIRT GENERATION | -- SEAPLANTS GENERATION | ||||||
|  |  | ||||||
|  | -- Kelp | ||||||
|  |  | ||||||
| minetest.register_ore({ | minetest.register_decoration( | ||||||
| 	ore_type       = "scatter", | 	{ | ||||||
| 	ore            = "seaplants:seaplantssandkelpgreen", | 		name = "seaplants:seaplants", | ||||||
| 	wherein        = "default:sand", | 		deco_type = "simple", | ||||||
| 	clust_scarcity = 10*10*10, | 		place_on = {"default:sand"}, | ||||||
| 	clust_num_ores = 24, | 		place_offset_y = -1, | ||||||
| 	clust_size     = 4, | 		sidelen = 16, | ||||||
| 	y_max     = -14, | 		noise_params = { | ||||||
| 	y_min     = -31000, | 			offset = -0.04, | ||||||
| }) | 			scale = 0.1, | ||||||
|  | 			spread = {x = 200, y = 200, z = 200}, | ||||||
| minetest.register_ore({ | 			seed = 87113, | ||||||
| 	ore_type       = "scatter", | 			octaves = 3, | ||||||
| 	ore            = "seaplants:seaplantsdirtkelpgreen", | 			persist = 0.7 | ||||||
| 	wherein        = "default:dirt", | 		}, | ||||||
| 	clust_scarcity = 10*10*10, | 		biomes = { | ||||||
| 	clust_num_ores = 24, | 			"taiga_ocean", | ||||||
| 	clust_size     = 4, | 			"snowy_grassland_ocean", | ||||||
| 	y_max     = -14, | 			"grassland_ocean", | ||||||
| 	y_min     = -31000, | 			"coniferous_forest_ocean", | ||||||
| }) | 			"deciduous_forest_ocean", | ||||||
|  | 			"sandstone_desert_ocean", | ||||||
| minetest.register_ore({ | 			"cold_desert_ocean"}, | ||||||
| 	ore_type       = "scatter", | 		y_max = -5, | ||||||
| 	ore            = "seaplants:seaplantssandkelpbrown", | 		y_min = -10, | ||||||
| 	wherein        = "default:sand", | 		flags = "force_placement", | ||||||
| 	clust_scarcity = 10*10*10, | 		decoration = { | ||||||
| 	clust_num_ores = 24, | 			"default:sand_with_kelp", "seaplants:sand_with_kelp_green", | ||||||
| 	clust_size     = 4, | 			"seaplants:sand_with_kelp_brown", "seaplants:seagrass_green", | ||||||
| 	y_max     = -14, | 			"seaplants:seagrass_red" | ||||||
| 	y_min     = -31000, | 		}, | ||||||
| }) | 		param2 = 48, | ||||||
|  | 		param2_max = 96, | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seaplants:seaplantsdirtkelpbrown", |  | ||||||
| 	wherein        = "default:dirt", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -14, |  | ||||||
| 	y_min     = -31000, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seaplants:seaplantssandseagrassgreen", |  | ||||||
| 	wherein        = "default:sand", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -14, |  | ||||||
| 	y_min     = -31000, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seaplants:seaplantsdirtseagrassgreen", |  | ||||||
| 	wherein        = "default:dirt", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -14, |  | ||||||
| 	y_min     = -31000, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seaplants:seaplantssandseagrassred", |  | ||||||
| 	wherein        = "default:sand", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -14, |  | ||||||
| 	y_min     = -31000, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_ore({ |  | ||||||
| 	ore_type       = "scatter", |  | ||||||
| 	ore            = "seaplants:seaplantsdirtseagrassred", |  | ||||||
| 	wherein        = "default:dirt", |  | ||||||
| 	clust_scarcity = 10*10*10, |  | ||||||
| 	clust_num_ores = 24, |  | ||||||
| 	clust_size     = 4, |  | ||||||
| 	y_max     = -14, |  | ||||||
| 	y_min     = -31000, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, y_min, y_max) |  | ||||||
| 	if maxp.y < y_min or minp.y > y_max then |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| 	local y_min = math.max(minp.y, y_min) |  | ||||||
| 	local y_max = math.min(maxp.y, y_max) |  | ||||||
| 	if chunk_size >= y_max - y_min + 1 then |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| 	local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1) |  | ||||||
| 	local pr = PseudoRandom(seed) |  | ||||||
| 	local num_chunks = math.floor(chunks_per_volume * volume) |  | ||||||
| 	local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk) |  | ||||||
| 	for i=1,num_chunks do |  | ||||||
| 		local y0 = pr:next(y_min, y_max-chunk_size+1) |  | ||||||
| 		if y0 >= y_min and y0 <= y_max then |  | ||||||
| 			local x0 = pr:next(minp.x, maxp.x-chunk_size+1) |  | ||||||
| 			local z0 = pr:next(minp.z, maxp.z-chunk_size+1) |  | ||||||
| 			local p0 = {x=x0, y=y0, z=z0} |  | ||||||
| 			for x1=0,chunk_size-1 do |  | ||||||
| 			for y1=0,chunk_size-1 do |  | ||||||
| 			for z1=0,chunk_size-1 do |  | ||||||
| 				if pr:next(1,inverse_chance) == 1 then |  | ||||||
| 					local x2 = x0+x1 |  | ||||||
| 					local y2 = y0+y1 |  | ||||||
| 					local z2 = z0+z1 |  | ||||||
| 					local p2 = {x=x2, y=y2, z=z2} |  | ||||||
| 					if minetest.get_node(p2).name == wherein then |  | ||||||
| 						minetest.set_node(p2, {name=name}) |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
| 			end |  | ||||||
| 			end |  | ||||||
| 			end |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- ABM'S |  | ||||||
|  |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:seaplantsdirtkelpgreen"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seaplants:kelpgreen"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:seaplantssandkelpgreen"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seaplants:kelpgreen"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:kelpgreen"}, |  | ||||||
| interval = 6, |  | ||||||
| chance = 3, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	local yyp = {x = pos.x, y = pos.y + 2, z = pos.z} |  | ||||||
| 	local yyyp = {x = pos.x, y = pos.y + 3, z = pos.z} |  | ||||||
| 	if minetest.get_node(pos).name == "seaplants:kelpgreen" and |  | ||||||
| 		(minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 		minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 			if (minetest.get_node(yyp).name == "default:water_source" or |  | ||||||
| 			minetest.get_node(yyp).name == "noairblocks:water_sourcex") then |  | ||||||
| 				if (minetest.get_node(yyyp).name == "default:water_source" or |  | ||||||
| 				minetest.get_node(yyyp).name == "noairblocks:water_sourcex") then |  | ||||||
| 					minetest.add_node(pos, {name = "seaplants:kelpgreenmiddle"})  |  | ||||||
| 					pos.y = pos.y + 1 |  | ||||||
| 					minetest.add_node(pos, {name = "seaplants:kelpgreen"})  |  | ||||||
| 				else |  | ||||||
| 				return |  | ||||||
| 			end |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:seaplantsdirtkelpbrown"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seaplants:kelpbrown"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:seaplantssandkelpbrown"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seaplants:kelpbrown"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:kelpbrown"}, |  | ||||||
| interval = 6, |  | ||||||
| chance = 3, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	local yyp = {x = pos.x, y = pos.y + 2, z = pos.z} |  | ||||||
| 	local yyyp = {x = pos.x, y = pos.y + 3, z = pos.z} |  | ||||||
| 	if minetest.get_node(pos).name == "seaplants:kelpbrown" and |  | ||||||
| 		(minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 		minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 			if (minetest.get_node(yyp).name == "default:water_source" or |  | ||||||
| 			minetest.get_node(yyp).name == "noairblocks:water_sourcex") then |  | ||||||
| 				if (minetest.get_node(yyyp).name == "default:water_source" or |  | ||||||
| 				minetest.get_node(yyyp).name == "noairblocks:water_sourcex") then |  | ||||||
| 					minetest.add_node(pos, {name = "seaplants:kelpbrownmiddle"})  |  | ||||||
| 					pos.y = pos.y + 1 |  | ||||||
| 					minetest.add_node(pos, {name = "seaplants:kelpbrown"})  |  | ||||||
| 				else |  | ||||||
| 				return |  | ||||||
| 			end |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:seaplantsdirtseagrassgreen"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seaplants:seagrassgreen"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:seaplantssandseagrassgreen"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seaplants:seagrassgreen"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:seaplantsdirtseagrassred"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seaplants:seagrassred"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| nodenames = {"seaplants:seaplantssandseagrassred"}, |  | ||||||
| interval = 12, |  | ||||||
| chance = 12, |  | ||||||
| action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 	local yp = {x = pos.x, y = pos.y + 1, z = pos.z} |  | ||||||
| 	if (minetest.get_node(yp).name == "default:water_source" or |  | ||||||
| 	minetest.get_node(yp).name == "noairblocks:water_sourcex") then |  | ||||||
| 		pos.y = pos.y + 1 |  | ||||||
| 		minetest.add_node(pos, {name = "seaplants:seagrassred"}) else |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
|  |  | ||||||
| -- ALIASES | -- ALIASES | ||||||
|  |  | ||||||
|  |  | ||||||
| minetest.register_alias("seaplants:stemsgreen","default:sand") | minetest.register_alias("seaplants:stemsgreen","default:sand") | ||||||
| minetest.register_alias("seaplants:stemsbrown","default:dirt") | minetest.register_alias("seaplants:stemsbrown","default:dirt") | ||||||
| minetest.register_alias("seaplants:leafyblue","default:sand") | minetest.register_alias("seaplants:leafyblue","default:sand") | ||||||
| minetest.register_alias("seaplants:leafygreen","default:dirt") | minetest.register_alias("seaplants:leafygreen","default:dirt") | ||||||
|  |  | ||||||
| minetest.register_alias("seaplants:chewstickgreen","seaplants:kelpgreen") | minetest.register_alias("seaplants:chewstickgreen","seaplants:sand_with_kelp_green") | ||||||
| minetest.register_alias("seaplants:chewstickbrown","seaplants:kelpbrown") | minetest.register_alias("seaplants:chewstickbrown","seaplants:sand_with_kelp_brown") | ||||||
| minetest.register_alias("seaplants:leavysnackgreen","seaplants:seagrassgreen") | minetest.register_alias("seaplants:leavysnackgreen","seaplants:seagrass_green") | ||||||
| minetest.register_alias("seaplants:leavysnackblue","seaplants:seagrassred") | minetest.register_alias("seaplants:leavysnackblue","seaplants:seagrass_red") | ||||||
| minetest.register_alias("seaplants:seasalad","seaplants:seasaladmix") | minetest.register_alias("seaplants:seasalad","seaplants:seasaladmix") | ||||||
|  |  | ||||||
| minetest.log("action", "[sea - seaplants] loaded.") | minetest.log("action", "[sea - seaplants] loaded.") | ||||||
|   | |||||||
		Посилання в новій задачі
	
	Block a user