From 1711cbcbd83c7ed4d59827f24da941b4c4d42741 Mon Sep 17 00:00:00 2001 From: Jeija Date: Wed, 19 Jun 2013 14:23:29 +0200 Subject: [PATCH] Add dispenser --- mesecons_dispenser/depends.txt | 1 + mesecons_dispenser/init.lua | 57 ++++++++++++++++++ .../textures/mesecons_dispenser_bottom.png | Bin 0 -> 731 bytes .../textures/mesecons_dispenser_front.png | Bin 0 -> 827 bytes .../textures/mesecons_dispenser_side.png | Bin 0 -> 731 bytes .../textures/mesecons_dispenser_top.png | Bin 0 -> 731 bytes 6 files changed, 58 insertions(+) create mode 100644 mesecons_dispenser/depends.txt create mode 100644 mesecons_dispenser/init.lua create mode 100644 mesecons_textures/textures/mesecons_dispenser_bottom.png create mode 100644 mesecons_textures/textures/mesecons_dispenser_front.png create mode 100644 mesecons_textures/textures/mesecons_dispenser_side.png create mode 100644 mesecons_textures/textures/mesecons_dispenser_top.png diff --git a/mesecons_dispenser/depends.txt b/mesecons_dispenser/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mesecons_dispenser/depends.txt @@ -0,0 +1 @@ +default diff --git a/mesecons_dispenser/init.lua b/mesecons_dispenser/init.lua new file mode 100644 index 0000000..f974b4a --- /dev/null +++ b/mesecons_dispenser/init.lua @@ -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"}, + } +}) diff --git a/mesecons_textures/textures/mesecons_dispenser_bottom.png b/mesecons_textures/textures/mesecons_dispenser_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c86782a2147130bb2b12644fb767e33ad5f4b1de GIT binary patch literal 731 zcmV<10wn#3P)vTw>QaA;8<*}~=t3f>5qc&B=A);& zYPzOw-MaU^E_#^7yL&lso^y`+@%wMfVzD5LV2wd3#jx7}kh5Tn##jeMh;b(8L|xYa zhzR!W$vJaMc<<2KFvp09FwZm3o_x%2zyHN@xr9=%-ZO=OwH5&9J$Bo5IOm8l(liab zVIZf(YPF)>Tv1gOec$7}N5&CKL1~Tmo-BecrI2$5V7J?0twm|g#pNZ-)smDmi@Iix zk)y*E1+dm4B3x}Y*bo8$);a2G!P(gvRaNoj^Jo0|_nH@>$t15Qp)S*@0P0b__^B7{J*Z1xP^o%fW|(e*t>Yn-)| zQdrbAZ~i&u@h1=X@7)E)SmHEctU+r-IPdV@VTWPh`uchgB_%=#%=3)Dx#8&O2xBdh zg}!fZqssO!i@5wo(wB#&o zw_6TYtGmL*I8)a(&N=KCPaomELn)2Y3hx|BDO3^GC#QST#xTW5yglzdAq2*8#IE0O z0Pt0Xi16_KF;!Ku*<7HsX4vgGJUpc9dx{8ERWVHyeb?=`5T=Pz3S$W5oLOtlgAecV zH3bV+lqek`Z<5Rc}ppU;pXNpwm3~V=MWLLZHx7u{{cAUfRWPZZyo>u N002ovPDHLkV1f`gW61yj literal 0 HcmV?d00001 diff --git a/mesecons_textures/textures/mesecons_dispenser_front.png b/mesecons_textures/textures/mesecons_dispenser_front.png new file mode 100644 index 0000000000000000000000000000000000000000..ea07ed15dc4970cbb905a9f9d32d47628ef72393 GIT binary patch literal 827 zcmV-B1H}A^P)SXkCa4 z7lNn=id)5%3&DjTRu^J~LM=?Nq_mkd?T|*8cAAWH>)g&c|M^`gVil^-{(ate@qOa; zS6^}a<|ar50jn3TAe5kU^CmMBg%)v(#(bbXqNhvse2iffmlpq8 zQLZ#VD0b!U;KBQ6`FUjxtfR0n$9lPfwHB>4+F6U0&}z3?SzTjs?OBBcalVdME&sMdLXAF-N=26B+ym9=f z^ISwEJT6~a<*RRg;&vQ;?PY|JIF}%VME5!!IyOWq!~Y@db#Vv;4u?Qjx2s5zkT{7_ z`acEMh9piPg(GnS{n)_+C~4_ipI&{NFTeibwt}Sx_R;P|Y;JAgghG7s!Q0M;eNGoI zV#7Xnjpg|G(=YxN^t9&jLl5Dncab1@;!uHhFG4)`%u_B3Lwr9VlT8zNf`yqpFCKsA z7QyH5ouIgWjrPD|BTE=|Nsx#mho5zsY#NZQH#SB#n`Qs}Bta^LQVO9I zGLBWQ_m-002ovPDHLk FV1k+*ZfgJl literal 0 HcmV?d00001 diff --git a/mesecons_textures/textures/mesecons_dispenser_side.png b/mesecons_textures/textures/mesecons_dispenser_side.png new file mode 100644 index 0000000000000000000000000000000000000000..c86782a2147130bb2b12644fb767e33ad5f4b1de GIT binary patch literal 731 zcmV<10wn#3P)vTw>QaA;8<*}~=t3f>5qc&B=A);& zYPzOw-MaU^E_#^7yL&lso^y`+@%wMfVzD5LV2wd3#jx7}kh5Tn##jeMh;b(8L|xYa zhzR!W$vJaMc<<2KFvp09FwZm3o_x%2zyHN@xr9=%-ZO=OwH5&9J$Bo5IOm8l(liab zVIZf(YPF)>Tv1gOec$7}N5&CKL1~Tmo-BecrI2$5V7J?0twm|g#pNZ-)smDmi@Iix zk)y*E1+dm4B3x}Y*bo8$);a2G!P(gvRaNoj^Jo0|_nH@>$t15Qp)S*@0P0b__^B7{J*Z1xP^o%fW|(e*t>Yn-)| zQdrbAZ~i&u@h1=X@7)E)SmHEctU+r-IPdV@VTWPh`uchgB_%=#%=3)Dx#8&O2xBdh zg}!fZqssO!i@5wo(wB#&o zw_6TYtGmL*I8)a(&N=KCPaomELn)2Y3hx|BDO3^GC#QST#xTW5yglzdAq2*8#IE0O z0Pt0Xi16_KF;!Ku*<7HsX4vgGJUpc9dx{8ERWVHyeb?=`5T=Pz3S$W5oLOtlgAecV zH3bV+lqek`Z<5Rc}ppU;pXNpwm3~V=MWLLZHx7u{{cAUfRWPZZyo>u N002ovPDHLkV1f`gW61yj literal 0 HcmV?d00001 diff --git a/mesecons_textures/textures/mesecons_dispenser_top.png b/mesecons_textures/textures/mesecons_dispenser_top.png new file mode 100644 index 0000000000000000000000000000000000000000..c86782a2147130bb2b12644fb767e33ad5f4b1de GIT binary patch literal 731 zcmV<10wn#3P)vTw>QaA;8<*}~=t3f>5qc&B=A);& zYPzOw-MaU^E_#^7yL&lso^y`+@%wMfVzD5LV2wd3#jx7}kh5Tn##jeMh;b(8L|xYa zhzR!W$vJaMc<<2KFvp09FwZm3o_x%2zyHN@xr9=%-ZO=OwH5&9J$Bo5IOm8l(liab zVIZf(YPF)>Tv1gOec$7}N5&CKL1~Tmo-BecrI2$5V7J?0twm|g#pNZ-)smDmi@Iix zk)y*E1+dm4B3x}Y*bo8$);a2G!P(gvRaNoj^Jo0|_nH@>$t15Qp)S*@0P0b__^B7{J*Z1xP^o%fW|(e*t>Yn-)| zQdrbAZ~i&u@h1=X@7)E)SmHEctU+r-IPdV@VTWPh`uchgB_%=#%=3)Dx#8&O2xBdh zg}!fZqssO!i@5wo(wB#&o zw_6TYtGmL*I8)a(&N=KCPaomELn)2Y3hx|BDO3^GC#QST#xTW5yglzdAq2*8#IE0O z0Pt0Xi16_KF;!Ku*<7HsX4vgGJUpc9dx{8ERWVHyeb?=`5T=Pz3S$W5oLOtlgAecV zH3bV+lqek`Z<5Rc}ppU;pXNpwm3~V=MWLLZHx7u{{cAUfRWPZZyo>u N002ovPDHLkV1f`gW61yj literal 0 HcmV?d00001