From 1711cbcbd83c7ed4d59827f24da941b4c4d42741 Mon Sep 17 00:00:00 2001 From: Jeija <norrepli@gmail.com> 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 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!to7J0fjhFF}oo$T8!6DrX< z|952URa@h3L+Q;Nkt+l|6a=TL2=H?J(~f-=RNpN<{ax$}C#4mFRcb8H7BAnGwQE`4 z-Cf`J>Q&7+y1Ux4U|w<GuaCd;PbY0u=uYT$)I7T3HsgfN2|dRm*j+mc)t<Y=UT5gw z`1basWwBSq`wO=Wj(2nzoHsr{ujWkt{{KgdcD4j<xM$qjuvLuVxoz3)Qj6yuhL=ou zcPA<=Ka#a|(cPH9P|@1^kN3DA6ZCS-?EOAZr%7+=gkrXY?Y9%xx@Mj|`c(Dw)k#x~ zyLYAaO<a6fly$>3C8d~Lvl{|T4A(4QWgWbEQ!+I4<I~USe|~<SB|hKw+4J~1SIw>4 zXQXY*txk9R`{i)?(skJ`E&r<AWAzz242$0XVD|I#k6b&gnlZT}QK`jYbIv!Odvm`} zxpeWXty}h-ty6*`u9)WkvwZqdo&U%CyR63|9+@Pram;qMc>m#EVte9)U%#sORaKoh z&V26Kzw_aX7aYmDlUn!X=Py1hk<8$s`IdFdwGNJ@B42bLZp+QQJ+1wF|IL`K74Ie5 z9`ac<1aW2eIJyLQO$<tsad&CCu5Z6Ia~ea<*GHPS--^AKaXqy!=GY|@({1moi_R^X zVsI>B?bFxc^FO~oX}NUE6P=vx(R^X6cON=x5q#bBoaGyFfBA=doi%$ealM!E(hL#2 zroO!T(lLXh9(!!x+bXggD?GC9em=v8(AJI*AO0DJhHktWvtUcwjkgvyHcMVtcX5P< z8u|*?UVpn?U|DAnS2D+wIg#0CoB7{=d~(sfJYeqkBe(5e%Vf?wnaO|o*_=QxMJ1Uv zd>f8!+WjtK|9+L!g)5~GiD)bpNIqi8ejsV1!m*CMlI~j1U;gS_eY>mf^DoQ#J(b>? ttq-3))7xg@Yw=t_a9eKo*LnXLEuJ(?y!0Ypj)8%J!PC{xWt~$(695o5W61yj 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 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG za29w(7Bet#3xhBt!>l<H3=9nHC7!;n>~~pt1z7a{B+YbZU|>4o>Eak-ak_W1cScOA zMBDuTMgQhlo;<TeR;4gNDmib7*|tI#Pth*xSdFaKM_wYLQ_2D}Vmr9Sn^tgiMIW8Y zeXvy_OgyQ@N!Mq?k}We$-cE3vQ8ufm`1PH0mj8doY9xuSI{&ZsUirt`M_<F^3x7XT z^I&CMExt}+%7Wt0YR1Bkr<@X9G9_cJ<%aKZ=hm%BT&pU|;^W`5Ic}Z8?!9u)^`>QR zl`@&_n{`!duitEoH_e-`WZy1{(rwusA#}(hrRuzebogqQYl|LRxN*3@ENXS1F7`hv zaGi;RM%mMM4-WoL|5=&JyJqnQgX2{@o3@IrHN6$tJ@rD?_Q=TC<ihtV%lAbeJF0kf zuCzq*j8pv=vaUsF=@cYB4qtLjMa3k`^vJ{I^GhbNBs0~-KhE|{{N@*D@zbvU`DXt6 zDPMzH^PXgw-v07C)+Sj%e(&#T-pg(F#p(%VWL(Lf6J_Tua{SNaWPRK7VO#ssdHO}3 z1s-$XQ}}1a=NK0i8@>3br>pbp9+k<|zD;eJU@={x#pSz|td*II*5Ut(Z%PX}Soqo< z!nd#Xm^i_rGw7E+>$Nr&KZRE1LZ-hr4l-+GzKot9S36sO|G$UZnwGMEyZFvEColJ5 zi&M>~gSXGM)%uC+Cmpsc?|u5?$7TJ0qF=T=`{>O7aC!Meg~~?(jb-{yHs8+#>v1{P z*egu-6|QJ%ooS;lSN~k>;Pdx$7wo9({dOQp*;}H_b3%u5`~1?GIZ_kun3tL#{j7TC zf&jbt^B@0?8>hItOMdyyp>j&vN&0Ytfr4jJPRhjH#g-~U{+ed%;*MuDJ3abmliZ?Y zI!Ddi%*||e>i<6~j#{ljTnj~v`jTyuXY5t?-+YxpwW6Z1?Q(kE!noUP=`+vtZwlUf zEZ^E(W1hC5`PAbQ|NG-VOi8LbFCjg9`!@b`BOX>p&q)h<{j)62emKE#&dO+J;J5SA e=cb$elx<&Uxb*hhlwJk~1_n=8KbLh*2~7Z+9d2s? 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 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!to7J0fjhFF}oo$T8!6DrX< z|952URa@h3L+Q;Nkt+l|6a=TL2=H?J(~f-=RNpN<{ax$}C#4mFRcb8H7BAnGwQE`4 z-Cf`J>Q&7+y1Ux4U|w<GuaCd;PbY0u=uYT$)I7T3HsgfN2|dRm*j+mc)t<Y=UT5gw z`1basWwBSq`wO=Wj(2nzoHsr{ujWkt{{KgdcD4j<xM$qjuvLuVxoz3)Qj6yuhL=ou zcPA<=Ka#a|(cPH9P|@1^kN3DA6ZCS-?EOAZr%7+=gkrXY?Y9%xx@Mj|`c(Dw)k#x~ zyLYAaO<a6fly$>3C8d~Lvl{|T4A(4QWgWbEQ!+I4<I~USe|~<SB|hKw+4J~1SIw>4 zXQXY*txk9R`{i)?(skJ`E&r<AWAzz242$0XVD|I#k6b&gnlZT}QK`jYbIv!Odvm`} zxpeWXty}h-ty6*`u9)WkvwZqdo&U%CyR63|9+@Pram;qMc>m#EVte9)U%#sORaKoh z&V26Kzw_aX7aYmDlUn!X=Py1hk<8$s`IdFdwGNJ@B42bLZp+QQJ+1wF|IL`K74Ie5 z9`ac<1aW2eIJyLQO$<tsad&CCu5Z6Ia~ea<*GHPS--^AKaXqy!=GY|@({1moi_R^X zVsI>B?bFxc^FO~oX}NUE6P=vx(R^X6cON=x5q#bBoaGyFfBA=doi%$ealM!E(hL#2 zroO!T(lLXh9(!!x+bXggD?GC9em=v8(AJI*AO0DJhHktWvtUcwjkgvyHcMVtcX5P< z8u|*?UVpn?U|DAnS2D+wIg#0CoB7{=d~(sfJYeqkBe(5e%Vf?wnaO|o*_=QxMJ1Uv zd>f8!+WjtK|9+L!g)5~GiD)bpNIqi8ejsV1!m*CMlI~j1U;gS_eY>mf^DoQ#J(b>? ttq-3))7xg@Yw=t_a9eKo*LnXLEuJ(?y!0Ypj)8%J!PC{xWt~$(695o5W61yj 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 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!to7J0fjhFF}oo$T8!6DrX< z|952URa@h3L+Q;Nkt+l|6a=TL2=H?J(~f-=RNpN<{ax$}C#4mFRcb8H7BAnGwQE`4 z-Cf`J>Q&7+y1Ux4U|w<GuaCd;PbY0u=uYT$)I7T3HsgfN2|dRm*j+mc)t<Y=UT5gw z`1basWwBSq`wO=Wj(2nzoHsr{ujWkt{{KgdcD4j<xM$qjuvLuVxoz3)Qj6yuhL=ou zcPA<=Ka#a|(cPH9P|@1^kN3DA6ZCS-?EOAZr%7+=gkrXY?Y9%xx@Mj|`c(Dw)k#x~ zyLYAaO<a6fly$>3C8d~Lvl{|T4A(4QWgWbEQ!+I4<I~USe|~<SB|hKw+4J~1SIw>4 zXQXY*txk9R`{i)?(skJ`E&r<AWAzz242$0XVD|I#k6b&gnlZT}QK`jYbIv!Odvm`} zxpeWXty}h-ty6*`u9)WkvwZqdo&U%CyR63|9+@Pram;qMc>m#EVte9)U%#sORaKoh z&V26Kzw_aX7aYmDlUn!X=Py1hk<8$s`IdFdwGNJ@B42bLZp+QQJ+1wF|IL`K74Ie5 z9`ac<1aW2eIJyLQO$<tsad&CCu5Z6Ia~ea<*GHPS--^AKaXqy!=GY|@({1moi_R^X zVsI>B?bFxc^FO~oX}NUE6P=vx(R^X6cON=x5q#bBoaGyFfBA=doi%$ealM!E(hL#2 zroO!T(lLXh9(!!x+bXggD?GC9em=v8(AJI*AO0DJhHktWvtUcwjkgvyHcMVtcX5P< z8u|*?UVpn?U|DAnS2D+wIg#0CoB7{=d~(sfJYeqkBe(5e%Vf?wnaO|o*_=QxMJ1Uv zd>f8!+WjtK|9+L!g)5~GiD)bpNIqi8ejsV1!m*CMlI~j1U;gS_eY>mf^DoQ#J(b>? ttq-3))7xg@Yw=t_a9eKo*LnXLEuJ(?y!0Ypj)8%J!PC{xWt~$(695o5W61yj literal 0 HcmV?d00001 -- GitLab