mirror of
				https://github.com/mt-mods/homedecor_modpack.git
				synced 2025-10-31 07:55:28 +01:00 
			
		
		
		
	Add Shower Head water flow
This commit is contained in:
		| @@ -163,10 +163,24 @@ homedecor.register("shower_tray", { | |||||||
| 	}, | 	}, | ||||||
| 	groups = {cracky=2}, | 	groups = {cracky=2}, | ||||||
| 	sounds = default.node_sound_stone_defaults(), | 	sounds = default.node_sound_stone_defaults(), | ||||||
|  | 	on_destruct = function(pos) | ||||||
|  | 		if id and s_handle then | ||||||
|  | 			minetest.delete_particlespawner(id) | ||||||
|  | 			minetest.after(0, function(s_handle) | ||||||
|  | 				minetest.sound_stop(s_handle) | ||||||
|  | 			end, s_handle) | ||||||
|  | 		else return end | ||||||
|  | 	end | ||||||
| }) | }) | ||||||
|  |  | ||||||
| --Shower Head | --Shower Head | ||||||
|  |  | ||||||
|  | local fdir_to_flowpos = { | ||||||
|  | 	minx = { 0.15, 0.05, -0.15, -0.05 }, maxx = { -0.15, -0.3, 0.15, 0.3 }, | ||||||
|  | 	minz = { 0.05, 0.15, -0.05, -0.15 }, maxz = { -0.3, -0.15, 0.3, 0.15 }, | ||||||
|  | 	velx = { 0, -0.2, 0, 0.2 }, velz = { -0.2, 0, 0.2, 0 } | ||||||
|  | } | ||||||
|  |  | ||||||
| local sh_cbox = { | local sh_cbox = { | ||||||
| 	type = "fixed", | 	type = "fixed", | ||||||
| 	fixed = { -0.2, -0.4, -0.05, 0.2, 0.1, 0.5 } | 	fixed = { -0.2, -0.4, -0.05, 0.2, 0.1, 0.5 } | ||||||
| @@ -184,6 +198,45 @@ homedecor.register("shower_head", { | |||||||
| 	groups = {snappy=3}, | 	groups = {snappy=3}, | ||||||
| 	selection_box = sh_cbox, | 	selection_box = sh_cbox, | ||||||
| 	collision_box = sh_cbox, | 	collision_box = sh_cbox, | ||||||
|  | 	on_rightclick = function (pos, node, clicker) | ||||||
|  | 		local below = minetest.get_node({x=pos.x, y=pos.y-2.0, z=pos.z}) | ||||||
|  | 		local is_tray = string.find(below.name, "homedecor:shower_tray") | ||||||
|  | 		local this_spawner_meta = minetest.get_meta(pos) | ||||||
|  | 		local fdir = node.param2 | ||||||
|  | 		local minx = fdir_to_flowpos.minx[fdir + 1] | ||||||
|  | 		local maxx = fdir_to_flowpos.maxx[fdir + 1] | ||||||
|  | 		local minz = fdir_to_flowpos.minz[fdir + 1] | ||||||
|  | 		local maxz = fdir_to_flowpos.maxz[fdir + 1] | ||||||
|  | 		local velx = fdir_to_flowpos.velx[fdir + 1] | ||||||
|  | 		local velz = fdir_to_flowpos.velz[fdir + 1] | ||||||
|  |  | ||||||
|  | 		if fdir and fdir < 4 and this_spawner_meta:get_string("active") ~= "yes" and is_tray | ||||||
|  | 		 or this_spawner_meta:get_string("active") == "yes" and id == nil and is_tray then | ||||||
|  | 			this_spawner_meta:set_string("active", "yes") | ||||||
|  | 			id = minetest.add_particlespawner({ | ||||||
|  | 				amount = 60, time = 0, collisiondetection = true, | ||||||
|  | 				minpos = {x=pos.x - minx, y=pos.y-0.45, z=pos.z - minz}, | ||||||
|  | 				maxpos = {x=pos.x - maxx, y=pos.y-0.45, z=pos.z - maxz}, | ||||||
|  | 				minvel = {x=velx, y=-2, z=velz}, maxvel = {x=velx, y=-2, z=velz}, | ||||||
|  | 				minacc = {x=0, y=0, z=0}, maxacc = {x=0, y=-0.05, z=0}, | ||||||
|  | 				minexptime = 2, maxexptime = 4, minsize = 0.5, maxsize = 1, | ||||||
|  | 				texture = "homedecor_water_particle.png", | ||||||
|  | 			}) | ||||||
|  | 			s_handle = minetest.sound_play("homedecor_shower", { | ||||||
|  | 				pos = pos, max_hear_distance = 5, loop = true  | ||||||
|  | 			}) | ||||||
|  | 		elseif this_spawner_meta:get_string("active") == "yes" and id then | ||||||
|  | 			this_spawner_meta:set_string("active", "no") | ||||||
|  | 			minetest.after(0, function(s_handle) | ||||||
|  | 				minetest.sound_stop(s_handle) | ||||||
|  | 			end, s_handle) | ||||||
|  | 			local player = clicker:get_player_name() | ||||||
|  | 			minetest.delete_particlespawner(id, player) | ||||||
|  | 		end | ||||||
|  | 	end, | ||||||
|  | 	on_destruct = function(pos) | ||||||
|  | 		minetest.delete_particlespawner(id) | ||||||
|  | 	end | ||||||
| }) | }) | ||||||
|  |  | ||||||
| local bs_cbox = { | local bs_cbox = { | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								homedecor/sounds/homedecor_shower.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								homedecor/sounds/homedecor_shower.ogg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								homedecor/textures/homedecor_water_particle.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								homedecor/textures/homedecor_water_particle.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 118 B | 
		Reference in New Issue
	
	Block a user