From ed882224d2ac9d30ee460b1d0f0877e30e097c3e Mon Sep 17 00:00:00 2001 From: Brett O'Donnell Date: Mon, 1 Oct 2012 14:20:13 +0930 Subject: [PATCH] added deploy arrows --- deploy_building/init.lua | 78 +++++++++++++++++ .../textures/deploy_building_arrow.png | Bin 0 -> 213 bytes .../textures/deploy_building_arrow_2.png | Bin 0 -> 213 bytes .../textures/deploy_building_arrow_back.png | Bin 0 -> 225 bytes .../textures/deploy_building_arrow_front.png | Bin 0 -> 189 bytes deploy_cylinder_y/init.lua | 78 +++++++++++++++++ .../textures/deploy_building_arrow_back.png | Bin 0 -> 225 bytes .../textures/deploy_cylinder_y_arrow.png | Bin 0 -> 213 bytes .../textures/deploy_cylinder_y_arrow_2.png | Bin 0 -> 213 bytes .../deploy_cylinder_y_arrow_front.png | Bin 0 -> 189 bytes deploy_maze/init.lua | 78 +++++++++++++++++ deploy_maze/textures/deploy_maze_arrow.png | Bin 0 -> 213 bytes deploy_maze/textures/deploy_maze_arrow_2.png | Bin 0 -> 213 bytes .../textures/deploy_maze_arrow_back.png | Bin 0 -> 225 bytes .../textures/deploy_maze_arrow_front.png | Bin 0 -> 189 bytes deploy_nodes/depends.txt | 3 +- deploy_pyramid/init.lua | 78 +++++++++++++++++ .../textures/deploy_pyramid_arrow.png | Bin 0 -> 213 bytes .../textures/deploy_pyramid_arrow_2.png | Bin 0 -> 213 bytes .../textures/deploy_pyramid_arrow_back.png | Bin 0 -> 225 bytes .../textures/deploy_pyramid_arrow_front.png | Bin 0 -> 189 bytes deploy_sphere/init.lua | 80 +++++++++++++++++- .../textures/deploy_sphere_arrow.png | Bin 0 -> 213 bytes .../textures/deploy_sphere_arrow_2.png | Bin 0 -> 213 bytes .../textures/deploy_sphere_arrow_back.png | Bin 0 -> 225 bytes .../textures/deploy_sphere_arrow_front.png | Bin 0 -> 189 bytes deploy_spiral/init.lua | 78 +++++++++++++++++ .../textures/deploy_spiral_arrow.png | Bin 0 -> 213 bytes .../textures/deploy_spiral_arrow_2.png | Bin 0 -> 213 bytes .../textures/deploy_spiral_arrow_back.png | Bin 0 -> 225 bytes .../textures/deploy_spiral_arrow_front.png | Bin 0 -> 189 bytes 31 files changed, 471 insertions(+), 2 deletions(-) create mode 100644 deploy_building/textures/deploy_building_arrow.png create mode 100644 deploy_building/textures/deploy_building_arrow_2.png create mode 100644 deploy_building/textures/deploy_building_arrow_back.png create mode 100644 deploy_building/textures/deploy_building_arrow_front.png create mode 100644 deploy_cylinder_y/textures/deploy_building_arrow_back.png create mode 100644 deploy_cylinder_y/textures/deploy_cylinder_y_arrow.png create mode 100644 deploy_cylinder_y/textures/deploy_cylinder_y_arrow_2.png create mode 100644 deploy_cylinder_y/textures/deploy_cylinder_y_arrow_front.png create mode 100644 deploy_maze/textures/deploy_maze_arrow.png create mode 100644 deploy_maze/textures/deploy_maze_arrow_2.png create mode 100644 deploy_maze/textures/deploy_maze_arrow_back.png create mode 100644 deploy_maze/textures/deploy_maze_arrow_front.png create mode 100644 deploy_pyramid/textures/deploy_pyramid_arrow.png create mode 100644 deploy_pyramid/textures/deploy_pyramid_arrow_2.png create mode 100644 deploy_pyramid/textures/deploy_pyramid_arrow_back.png create mode 100644 deploy_pyramid/textures/deploy_pyramid_arrow_front.png create mode 100644 deploy_sphere/textures/deploy_sphere_arrow.png create mode 100644 deploy_sphere/textures/deploy_sphere_arrow_2.png create mode 100644 deploy_sphere/textures/deploy_sphere_arrow_back.png create mode 100644 deploy_sphere/textures/deploy_sphere_arrow_front.png create mode 100644 deploy_spiral/textures/deploy_spiral_arrow.png create mode 100644 deploy_spiral/textures/deploy_spiral_arrow_2.png create mode 100644 deploy_spiral/textures/deploy_spiral_arrow_back.png create mode 100644 deploy_spiral/textures/deploy_spiral_arrow_front.png diff --git a/deploy_building/init.lua b/deploy_building/init.lua index b6b2e74..c2e537f 100644 --- a/deploy_building/init.lua +++ b/deploy_building/init.lua @@ -145,6 +145,84 @@ minetest.register_craft({ }, }) +-- arrow +table.insert(arrows,{"deploy_building:arrow", "deploy_building:arrow_entity"}) +minetest.register_craftitem("deploy_building:arrow", { + description = "Building Arrow", + inventory_image = "deploy_building_arrow.png", +}) +minetest.register_node("deploy_building:arrow_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + --Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + --Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"deploy_building_arrow.png", "deploy_building_arrow.png", "deploy_building_arrow_back.png", "deploy_building_arrow_front.png", "deploy_building_arrow_2.png", "deploy_building_arrow.png"}, +}) +minetest.register_entity("deploy_building:arrow_entity", { + physical = false, + timer=0, + visual = "wielditem", + visual_size = {x=0.1, y=0.1}, + textures = {"deploy_building:arrow_box"}, + lastpos={}, + collisionbox = {0,0,0,0,0,0}, + player = "", + on_step = function(self, dtime) + self.timer=self.timer+dtime + local pos = self.object:getpos() + local node = minetest.env:get_node(pos) + if self.timer>0.2 then + local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "deploy_building:arrow_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_building:arrow")) + end + self.object:remove() + end + else + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_building:arrow")) + end + self.object:remove() + end + end + end + if self.lastpos.x~=nil then + if node.name ~= "air" then + deploy_building.deploy(self.lastpos,self.player,"small") + self.object:remove() + end + end + self.lastpos={x=pos.x, y=pos.y, z=pos.z} + end, +}) +minetest.register_craft({ + output = "deploy_building:arrow", + recipe = { + {"default:stick", "default:stick", "deploy_building:small"}, + } +}) + -- blueprint minetest.register_craftitem("deploy_building:blueprint", { description = "Building Blueprint", diff --git a/deploy_building/textures/deploy_building_arrow.png b/deploy_building/textures/deploy_building_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..f95d3e8b30b048c9a2705ed560b4e92f1f9e20bf GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFES`;Q$)20)=uPZ!4!i_^&o z60FU_IrsMbv~PRx|3A-vPtyk0+0ROH#hTcDmaIv?5hQrx00=mBojt*j#=r~&!ph3b t${@V5?MKO)-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFESUt>zw6rfP3r;B5V#p&b( z3Dzx)v(5AW`Ik5U`=5Rw;Pjyb2M%mlsx%?-^Ru)6w}-F@C7zMr;n>r|(^KG_z&4R9 zq0R6hOO4gF$vGU#%FN1VOhwu`zb2)N1jsWm%-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(aUYWttJl{6tR|#}JFt$q5T& z42%qWm=+y)c6RoE<-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(V*<^PXqrKp|UC7sn8b)5!@7 zWDJZ9dzcm-cy@O7|H%sHPIR1J@c+N$zvRHP9-D7Snza2%m(tm2Tya3*R6`HTkBG%0 au|VUO2o~A7iGKzf#Ng@b=d#Wzp$P!)%{(Fi literal 0 HcmV?d00001 diff --git a/deploy_cylinder_y/init.lua b/deploy_cylinder_y/init.lua index dbb6c86..e199e48 100644 --- a/deploy_cylinder_y/init.lua +++ b/deploy_cylinder_y/init.lua @@ -114,6 +114,84 @@ deploy_cylinder_y.register = function(label,name,material,texture) }, }) + -- arrow + table.insert(arrows,{"deploy_cylinder_y:"..name.."_arrow", "deploy_cylinder_y:"..name.."_arrow_entity"}) + minetest.register_craftitem("deploy_cylinder_y:"..name.."_arrow", { + description = label.." Cylinder Y Arrow", + inventory_image = "deploy_cylinder_y_arrow.png", + }) + minetest.register_node("deploy_cylinder_y:"..name.."_arrow_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + --Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + --Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"deploy_cylinder_y_arrow.png", "deploy_cylinder_y_arrow.png", "deploy_cylinder_y_arrow_back.png", "deploy_cylinder_y_arrow_front.png", "deploy_cylinder_y_arrow_2.png", "deploy_cylinder_y_arrow.png"}, + }) + minetest.register_entity("deploy_cylinder_y:"..name.."_arrow_entity", { + physical = false, + timer=0, + visual = "wielditem", + visual_size = {x=0.1, y=0.1}, + textures = {"deploy_cylinder_y:"..name.."_arrow_box"}, + lastpos={}, + collisionbox = {0,0,0,0,0,0}, + player = "", + on_step = function(self, dtime) + self.timer=self.timer+dtime + local pos = self.object:getpos() + local node = minetest.env:get_node(pos) + if self.timer>0.2 then + local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "deploy_cylinder_y:"..name.."_arrow_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_cylinder_y:"..name.."_arrow")) + end + self.object:remove() + end + else + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_cylinder_y:"..name.."_arrow")) + end + self.object:remove() + end + end + end + if self.lastpos.x~=nil then + if node.name ~= "air" then + deploy_cylinder_y.deploy(self.lastpos,self.player,material,3,6) + self.object:remove() + end + end + self.lastpos={x=pos.x, y=pos.y, z=pos.z} + end, + }) + minetest.register_craft({ + output = "deploy_cylinder_y:"..name.."_arrow", + recipe = { + {"default:stick", "default:stick", "deploy_cylinder_y:"..name.."_small"}, + } + }) + end diff --git a/deploy_cylinder_y/textures/deploy_building_arrow_back.png b/deploy_cylinder_y/textures/deploy_building_arrow_back.png new file mode 100644 index 0000000000000000000000000000000000000000..e0bba02794ebfbc6a984f2ba6951d2943af7465d GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(aUYWttJl{6tR|#}JFt$q5T& z42%qWm=+y)c6RoE<-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFES`;Q$)20)=uPZ!4!i_^&o z60FU_IrsMbv~PRx|3A-vPtyk0+0ROH#hTcDmaIv?5hQrx00=mBojt*j#=r~&!ph3b t${@V5?MKO)-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFESUt>zw6rfP3r;B5V#p&b( z3Dzx)v(5AW`Ik5U`=5Rw;Pjyb2M%mlsx%?-^Ru)6w}-F@C7zMr;n>r|(^KG_z&4R9 zq0R6hOO4gF$vGU#%FN1VOhwu`zb2)N1jsWm%-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(V*<^PXqrKp|UC7sn8b)5!@7 zWDJZ9dzcm-cy@O7|H%sHPIR1J@c+N$zvRHP9-D7Snza2%m(tm2Tya3*R6`HTkBG%0 au|VUO2o~A7iGKzf#Ng@b=d#Wzp$P!)%{(Fi literal 0 HcmV?d00001 diff --git a/deploy_maze/init.lua b/deploy_maze/init.lua index 57a1cd3..af21160 100644 --- a/deploy_maze/init.lua +++ b/deploy_maze/init.lua @@ -412,6 +412,84 @@ deploy_maze.register = function(label,name,material,texture) }, }) + -- arrow + table.insert(arrows,{"deploy_maze:"..name.."_arrow", "deploy_maze:"..name.."_arrow_entity"}) + minetest.register_craftitem("deploy_maze:"..name.."_arrow", { + description = label.." Maze Arrow", + inventory_image = "deploy_maze_arrow.png", + }) + minetest.register_node("deploy_maze:"..name.."_arrow_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + --Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + --Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"deploy_maze_arrow.png", "deploy_maze_arrow.png", "deploy_maze_arrow_back.png", "deploy_maze_arrow_front.png", "deploy_maze_arrow_2.png", "deploy_maze_arrow.png"}, + }) + minetest.register_entity("deploy_maze:"..name.."_arrow_entity", { + physical = false, + timer=0, + visual = "wielditem", + visual_size = {x=0.1, y=0.1}, + textures = {"deploy_maze:"..name.."_arrow_box"}, + lastpos={}, + collisionbox = {0,0,0,0,0,0}, + player = "", + on_step = function(self, dtime) + self.timer=self.timer+dtime + local pos = self.object:getpos() + local node = minetest.env:get_node(pos) + if self.timer>0.2 then + local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "deploy_maze:"..name.."_arrow_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_maze:"..name.."_arrow")) + end + self.object:remove() + end + else + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_maze:"..name.."_arrow")) + end + self.object:remove() + end + end + end + if self.lastpos.x~=nil then + if node.name ~= "air" then + deploy_maze.deploy(self.lastpos,self.player,material,11,1) + self.object:remove() + end + end + self.lastpos={x=pos.x, y=pos.y, z=pos.z} + end, + }) + minetest.register_craft({ + output = "deploy_maze:"..name.."_arrow", + recipe = { + {"default:stick", "default:stick", "deploy_maze:"..name.."_small"}, + } + }) + end diff --git a/deploy_maze/textures/deploy_maze_arrow.png b/deploy_maze/textures/deploy_maze_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..f95d3e8b30b048c9a2705ed560b4e92f1f9e20bf GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFES`;Q$)20)=uPZ!4!i_^&o z60FU_IrsMbv~PRx|3A-vPtyk0+0ROH#hTcDmaIv?5hQrx00=mBojt*j#=r~&!ph3b t${@V5?MKO)-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFESUt>zw6rfP3r;B5V#p&b( z3Dzx)v(5AW`Ik5U`=5Rw;Pjyb2M%mlsx%?-^Ru)6w}-F@C7zMr;n>r|(^KG_z&4R9 zq0R6hOO4gF$vGU#%FN1VOhwu`zb2)N1jsWm%-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(aUYWttJl{6tR|#}JFt$q5T& z42%qWm=+y)c6RoE<-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(V*<^PXqrKp|UC7sn8b)5!@7 zWDJZ9dzcm-cy@O7|H%sHPIR1J@c+N$zvRHP9-D7Snza2%m(tm2Tya3*R6`HTkBG%0 au|VUO2o~A7iGKzf#Ng@b=d#Wzp$P!)%{(Fi literal 0 HcmV?d00001 diff --git a/deploy_nodes/depends.txt b/deploy_nodes/depends.txt index 331d858..14d143e 100644 --- a/deploy_nodes/depends.txt +++ b/deploy_nodes/depends.txt @@ -1 +1,2 @@ -default \ No newline at end of file +default +throwing \ No newline at end of file diff --git a/deploy_pyramid/init.lua b/deploy_pyramid/init.lua index 1c8015d..b496618 100644 --- a/deploy_pyramid/init.lua +++ b/deploy_pyramid/init.lua @@ -115,6 +115,84 @@ deploy_pyramid.register = function(label,name,material,texture) }, }) + -- arrow + table.insert(arrows,{"deploy_pyramid:"..name.."_arrow", "deploy_pyramid:"..name.."_arrow_entity"}) + minetest.register_craftitem("deploy_pyramid:"..name.."_arrow", { + description = label.." Pyramid Arrow", + inventory_image = "deploy_pyramid_arrow.png", + }) + minetest.register_node("deploy_pyramid:"..name.."_arrow_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + --Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + --Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"deploy_pyramid_arrow.png", "deploy_pyramid_arrow.png", "deploy_pyramid_arrow_back.png", "deploy_pyramid_arrow_front.png", "deploy_pyramid_arrow_2.png", "deploy_pyramid_arrow.png"}, + }) + minetest.register_entity("deploy_pyramid:"..name.."_arrow_entity", { + physical = false, + timer=0, + visual = "wielditem", + visual_size = {x=0.1, y=0.1}, + textures = {"deploy_pyramid:"..name.."_arrow_box"}, + lastpos={}, + collisionbox = {0,0,0,0,0,0}, + player = "", + on_step = function(self, dtime) + self.timer=self.timer+dtime + local pos = self.object:getpos() + local node = minetest.env:get_node(pos) + if self.timer>0.2 then + local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "deploy_pyramid:"..name.."_arrow_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_pyramid:"..name.."_arrow")) + end + self.object:remove() + end + else + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_pyramid:"..name.."_arrow")) + end + self.object:remove() + end + end + end + if self.lastpos.x~=nil then + if node.name ~= "air" then + deploy_pyramid.deploy(self.lastpos,self.player,material,3,1,1) + self.object:remove() + end + end + self.lastpos={x=pos.x, y=pos.y, z=pos.z} + end, + }) + minetest.register_craft({ + output = "deploy_pyramid:"..name.."_arrow", + recipe = { + {"default:stick", "default:stick", "deploy_pyramid:"..name.."_small"}, + } + }) + end diff --git a/deploy_pyramid/textures/deploy_pyramid_arrow.png b/deploy_pyramid/textures/deploy_pyramid_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..f95d3e8b30b048c9a2705ed560b4e92f1f9e20bf GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFES`;Q$)20)=uPZ!4!i_^&o z60FU_IrsMbv~PRx|3A-vPtyk0+0ROH#hTcDmaIv?5hQrx00=mBojt*j#=r~&!ph3b t${@V5?MKO)-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFESUt>zw6rfP3r;B5V#p&b( z3Dzx)v(5AW`Ik5U`=5Rw;Pjyb2M%mlsx%?-^Ru)6w}-F@C7zMr;n>r|(^KG_z&4R9 zq0R6hOO4gF$vGU#%FN1VOhwu`zb2)N1jsWm%-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(aUYWttJl{6tR|#}JFt$q5T& z42%qWm=+y)c6RoE<-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(V*<^PXqrKp|UC7sn8b)5!@7 zWDJZ9dzcm-cy@O7|H%sHPIR1J@c+N$zvRHP9-D7Snza2%m(tm2Tya3*R6`HTkBG%0 au|VUO2o~A7iGKzf#Ng@b=d#Wzp$P!)%{(Fi literal 0 HcmV?d00001 diff --git a/deploy_sphere/init.lua b/deploy_sphere/init.lua index b08afb8..e8600be 100644 --- a/deploy_sphere/init.lua +++ b/deploy_sphere/init.lua @@ -113,6 +113,84 @@ deploy_sphere.register = function(label,name,material,texture) {"deploy_sphere:blueprint", "deploy_sphere:"..name.."_medium", "deploy_sphere:"..name.."_medium"}, }, }) + + -- arrow + table.insert(arrows,{"deploy_sphere:"..name.."_arrow", "deploy_sphere:"..name.."_arrow_entity"}) + minetest.register_craftitem("deploy_sphere:"..name.."_arrow", { + description = label.." Sphere Arrow", + inventory_image = "deploy_sphere_arrow.png", + }) + minetest.register_node("deploy_sphere:"..name.."_arrow_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + --Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + --Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"deploy_sphere_arrow.png", "deploy_sphere_arrow.png", "deploy_sphere_arrow_back.png", "deploy_sphere_arrow_front.png", "deploy_sphere_arrow_2.png", "deploy_sphere_arrow.png"}, + }) + minetest.register_entity("deploy_sphere:"..name.."_arrow_entity", { + physical = false, + timer=0, + visual = "wielditem", + visual_size = {x=0.1, y=0.1}, + textures = {"deploy_sphere:"..name.."_arrow_box"}, + lastpos={}, + collisionbox = {0,0,0,0,0,0}, + player = "", + on_step = function(self, dtime) + self.timer=self.timer+dtime + local pos = self.object:getpos() + local node = minetest.env:get_node(pos) + if self.timer>0.2 then + local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "deploy_sphere:"..name.."_arrow_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_sphere:"..name.."_arrow")) + end + self.object:remove() + end + else + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_sphere:"..name.."_arrow")) + end + self.object:remove() + end + end + end + if self.lastpos.x~=nil then + if node.name ~= "air" then + deploy_sphere.deploy(self.lastpos,self.player,material,3) + self.object:remove() + end + end + self.lastpos={x=pos.x, y=pos.y, z=pos.z} + end, + }) + minetest.register_craft({ + output = "deploy_sphere:"..name.."_arrow", + recipe = { + {"default:stick", "default:stick", "deploy_sphere:"..name.."_small"}, + } + }) end @@ -141,4 +219,4 @@ minetest.register_craft({ }) -- log that we started -minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname())) +minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname())) \ No newline at end of file diff --git a/deploy_sphere/textures/deploy_sphere_arrow.png b/deploy_sphere/textures/deploy_sphere_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..f95d3e8b30b048c9a2705ed560b4e92f1f9e20bf GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFES`;Q$)20)=uPZ!4!i_^&o z60FU_IrsMbv~PRx|3A-vPtyk0+0ROH#hTcDmaIv?5hQrx00=mBojt*j#=r~&!ph3b t${@V5?MKO)-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFESUt>zw6rfP3r;B5V#p&b( z3Dzx)v(5AW`Ik5U`=5Rw;Pjyb2M%mlsx%?-^Ru)6w}-F@C7zMr;n>r|(^KG_z&4R9 zq0R6hOO4gF$vGU#%FN1VOhwu`zb2)N1jsWm%-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(aUYWttJl{6tR|#}JFt$q5T& z42%qWm=+y)c6RoE<-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(V*<^PXqrKp|UC7sn8b)5!@7 zWDJZ9dzcm-cy@O7|H%sHPIR1J@c+N$zvRHP9-D7Snza2%m(tm2Tya3*R6`HTkBG%0 au|VUO2o~A7iGKzf#Ng@b=d#Wzp$P!)%{(Fi literal 0 HcmV?d00001 diff --git a/deploy_spiral/init.lua b/deploy_spiral/init.lua index e6673d6..13cfcde 100644 --- a/deploy_spiral/init.lua +++ b/deploy_spiral/init.lua @@ -161,6 +161,84 @@ deploy_spiral.register = function(label,name,material,texture) }, }) + -- arrow + table.insert(arrows,{"deploy_spiral:"..name.."_arrow", "deploy_spiral:"..name.."_arrow_entity"}) + minetest.register_craftitem("deploy_spiral:"..name.."_arrow", { + description = label.." Spiral Arrow", + inventory_image = "deploy_spiral_arrow.png", + }) + minetest.register_node("deploy_spiral:"..name.."_arrow_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + --Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + --Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"deploy_spiral_arrow.png", "deploy_spiral_arrow.png", "deploy_spiral_arrow_back.png", "deploy_spiral_arrow_front.png", "deploy_spiral_arrow_2.png", "deploy_spiral_arrow.png"}, + }) + minetest.register_entity("deploy_spiral:"..name.."_arrow_entity", { + physical = false, + timer=0, + visual = "wielditem", + visual_size = {x=0.1, y=0.1}, + textures = {"deploy_spiral:"..name.."_arrow_box"}, + lastpos={}, + collisionbox = {0,0,0,0,0,0}, + player = "", + on_step = function(self, dtime) + self.timer=self.timer+dtime + local pos = self.object:getpos() + local node = minetest.env:get_node(pos) + if self.timer>0.2 then + local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "deploy_spiral:"..name.."_arrow_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_spiral:"..name.."_arrow")) + end + self.object:remove() + end + else + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("deploy_spiral:"..name.."_arrow")) + end + self.object:remove() + end + end + end + if self.lastpos.x~=nil then + if node.name ~= "air" then + deploy_spiral.deploy(self.lastpos,self.player,material,3,1,1) + self.object:remove() + end + end + self.lastpos={x=pos.x, y=pos.y, z=pos.z} + end, + }) + minetest.register_craft({ + output = "deploy_spiral:"..name.."_arrow", + recipe = { + {"default:stick", "default:stick", "deploy_spiral:"..name.."_small"}, + } + }) + end diff --git a/deploy_spiral/textures/deploy_spiral_arrow.png b/deploy_spiral/textures/deploy_spiral_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..f95d3e8b30b048c9a2705ed560b4e92f1f9e20bf GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFES`;Q$)20)=uPZ!4!i_^&o z60FU_IrsMbv~PRx|3A-vPtyk0+0ROH#hTcDmaIv?5hQrx00=mBojt*j#=r~&!ph3b t${@V5?MKO)-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPahoFESUt>zw6rfP3r;B5V#p&b( z3Dzx)v(5AW`Ik5U`=5Rw;Pjyb2M%mlsx%?-^Ru)6w}-F@C7zMr;n>r|(^KG_z&4R9 zq0R6hOO4gF$vGU#%FN1VOhwu`zb2)N1jsWm%-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(aUYWttJl{6tR|#}JFt$q5T& z42%qWm=+y)c6RoE<-G2co#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=BeG%-Ex}lN~6?UgGKN%6^AKP(V*<^PXqrKp|UC7sn8b)5!@7 zWDJZ9dzcm-cy@O7|H%sHPIR1J@c+N$zvRHP9-D7Snza2%m(tm2Tya3*R6`HTkBG%0 au|VUO2o~A7iGKzf#Ng@b=d#Wzp$P!)%{(Fi literal 0 HcmV?d00001