forked from mtcontrib/scifi_nodes
		
	add scifi_nodes.open_door(pos) and api docs
				
					
				
			This commit is contained in:
		| @@ -8,6 +8,8 @@ | ||||
|  | ||||
| Minetest mod that adds scifi themed blocks, doors, materials, plants and other assets. | ||||
|  | ||||
| Lua api: see [api.md](./api.md) | ||||
|  | ||||
| # Changelog | ||||
|  | ||||
| * Added support for unifieddyes | ||||
|   | ||||
							
								
								
									
										12
									
								
								api.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								api.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
|  | ||||
| scifi_nodes api | ||||
|  | ||||
| # Doors | ||||
|  | ||||
| Open scifi_nodes door at given position | ||||
|  | ||||
| ```lua | ||||
| scifi_nodes.open_door(pos) | ||||
| ``` | ||||
|  | ||||
| returns `true` on success, `false` otherwise | ||||
							
								
								
									
										33
									
								
								doors.lua
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								doors.lua
									
									
									
									
									
								
							| @@ -155,7 +155,7 @@ for _, current_door in ipairs(doors) do | ||||
|  | ||||
| 	end | ||||
|  | ||||
| 	local function open_door(pos, node, player, itemstack, pointed_thing) | ||||
| 	local function open_door(pos, node) | ||||
| 		-- play sound | ||||
| 		minetest.sound_play(sound,{ | ||||
| 			max_hear_distance = 16, | ||||
| @@ -240,7 +240,11 @@ for _, current_door in ipairs(doors) do | ||||
| 		drawtype = "nodebox", | ||||
| 		paramtype = "light", | ||||
| 		paramtype2 = "facedir", | ||||
| 		groups = {cracky = 3, oddly_breakable_by_hand = 1}, | ||||
| 		groups = { | ||||
| 			cracky = 3, | ||||
| 			oddly_breakable_by_hand = 1, | ||||
| 			scifi_nodes_door = 1 | ||||
| 		}, | ||||
| 		node_box = { | ||||
| 			type = "fixed", | ||||
| 			fixed = { | ||||
| @@ -253,6 +257,7 @@ for _, current_door in ipairs(doors) do | ||||
| 				{-0.5, -0.5, -0.0625, 0.5, 1.5, 0.0625} | ||||
| 			} | ||||
| 		}, | ||||
| 		_open = open_door, | ||||
| 		mesecons = mesecons_doors_def, | ||||
| 		on_place = onplace, | ||||
| 		after_destruct = afterdestruct, | ||||
| @@ -350,3 +355,27 @@ for _, current_door in ipairs(doors) do | ||||
| 		sounds = scifi_nodes.node_sound_metal_defaults(), | ||||
| 	}) | ||||
| end     -- end of doors table browsing | ||||
|  | ||||
| -- opens the scifi-door at the given position | ||||
| function scifi_nodes.open_door(pos) | ||||
| 	local node = minetest.get_node_or_nil(pos) | ||||
| 	if not node then | ||||
| 		-- area not loaded | ||||
| 		return false | ||||
| 	end | ||||
|  | ||||
| 	local def = minetest.registered_nodes[node.name] | ||||
| 	if type(def._open) ~= "function" then | ||||
| 		-- open function not found | ||||
| 		return false | ||||
| 	end | ||||
|  | ||||
| 	if not def.groups or not def.groups.scifi_nodes_door then | ||||
| 		-- not a scifi_nodes door | ||||
| 		return false | ||||
| 	end | ||||
|  | ||||
| 	-- call open function | ||||
| 	def._open(pos, node) | ||||
| 	return true | ||||
| end | ||||
		Reference in New Issue
	
	Block a user