forked from minetest-mods/mesecons
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			mvps-ignor
			...
			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