forked from minetest-mods/mesecons
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			1963bfcc0d
			...
			dispenser
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 1711cbcbd8 | 
							
								
								
									
										1
									
								
								mesecons_dispenser/depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mesecons_dispenser/depends.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | default | ||||||
							
								
								
									
										57
									
								
								mesecons_dispenser/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								mesecons_dispenser/init.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | |||||||
|  | minetest.register_node("mesecons_dispenser:dispenser", { | ||||||
|  | 	description = "Dispenser", | ||||||
|  | 	tiles = {"mesecons_dispenser_top.png" , "mesecons_dispenser_bottom.png", | ||||||
|  | 		 "mesecons_dispenser_side.png", "mesecons_dispenser_side.png"   , | ||||||
|  | 		 "mesecons_dispenser_side.png", "mesecons_dispenser_front.png"}, | ||||||
|  | 	paramtype2 = "facedir", | ||||||
|  | 	groups = {cracky=2}, | ||||||
|  | 	sounds = default.node_sound_stone_defaults(), | ||||||
|  | 	on_construct = function(pos) | ||||||
|  | 		local meta = minetest.env:get_meta(pos) | ||||||
|  | 		meta:set_string("formspec", | ||||||
|  | 				"size[8,7]".. | ||||||
|  | 				"list[current_name;main;2.5,0;3,3;]".. | ||||||
|  | 				"list[current_player;main;0,3;8,4;]") | ||||||
|  | 		local inv = meta:get_inventory() | ||||||
|  | 		inv:set_size("main", 3*3) | ||||||
|  | 	end, | ||||||
|  | 	mesecons = {effector={ | ||||||
|  | 		action_on = function (pos, node) | ||||||
|  | 			local dir = {{x=1, y=0, z=0}} | ||||||
|  | 			for _ = 0, node.param2 do | ||||||
|  | 				dir = mesecon:rotate_rules_left(dir) | ||||||
|  | 			end | ||||||
|  | 			dir = dir[1] | ||||||
|  | 			local objpos = mesecon:addPosRule(pos, {x=dir.x/2, y=dir.y/2, z=dir.z/2}) | ||||||
|  | 			--minetest.env:add_node(mesecon:addPosRule(pos, dir[1]), {name="default:wood"}) | ||||||
|  | 			local inv = minetest.env:get_meta(pos):get_inventory() | ||||||
|  | 			local stacks = {} | ||||||
|  | 			for j = 1, 9 do | ||||||
|  | 				local ts = inv:get_stack("main", j) | ||||||
|  | 				if not ts:is_empty() then | ||||||
|  | 					table.insert(stacks, {stack = ts, id = j}) | ||||||
|  | 				end | ||||||
|  | 			end | ||||||
|  | 			print(dump(stacks)) | ||||||
|  | 			if #stacks > 0 then | ||||||
|  | 				local sn = math.random(1, #stacks) | ||||||
|  | 				local takenitem = stacks[sn].stack:take_item() | ||||||
|  | 				inv:set_stack("main", stacks[sn].id, stacks[sn].stack) | ||||||
|  | 				print(dump(takenitem:to_table())) | ||||||
|  | 				local obj = minetest.env:add_item(objpos, takenitem:to_table()) | ||||||
|  | 				obj:setvelocity({	x=dir.x*5+math.random(1, 100)/50-0.5, | ||||||
|  | 							y=dir.y*5+math.random(1, 100)/50-0.5, | ||||||
|  | 							z=dir.z*5+math.random(1, 100)/50-0.5}) | ||||||
|  | 			end | ||||||
|  | 		end | ||||||
|  | 	}}, | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | minetest.register_craft({ | ||||||
|  | 	output = 'mesecons_dispenser:dispenser', | ||||||
|  | 	recipe = { | ||||||
|  | 		{"default:cobble", "default:cobble", "default:cobble"}, | ||||||
|  | 		{"default:cobble", "mesecons_materials:fiber", "default:cobble"}, | ||||||
|  | 		{"default:cobble", "group:mesecon_conductor_craftable", "default:cobble"}, | ||||||
|  | 	} | ||||||
|  | }) | ||||||
							
								
								
									
										
											BIN
										
									
								
								mesecons_textures/textures/mesecons_dispenser_bottom.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								mesecons_textures/textures/mesecons_dispenser_bottom.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 731 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_textures/textures/mesecons_dispenser_front.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								mesecons_textures/textures/mesecons_dispenser_front.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 827 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_textures/textures/mesecons_dispenser_side.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								mesecons_textures/textures/mesecons_dispenser_side.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 731 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_textures/textures/mesecons_dispenser_top.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								mesecons_textures/textures/mesecons_dispenser_top.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 731 B | 
		Reference in New Issue
	
	Block a user