1 local players_fishing = {}
3 minetest.register_craftitem("fishing:pole", {
4 description = "Fishing Pole",
5 inventory_image = "stick.png",
8 on_use = function(itemstack, user, pointed_thing)
9 --minetest.sound_play("reload_gun",{object=user, pitch = math.random(80,100)/100})
13 on_secondary_use = function(itemstack, user, pointed_thing)
14 if not players_fishing[name] then
15 local pos = user:get_pos()
17 --minetest.sound_play("gun_shot",{object=user, pitch = math.random(80,100)/100})
18 local dir = user:get_look_dir()
19 local force = vector.multiply(dir,20)
20 local name = user:get_player_name()
21 local obj = minetest.add_entity(pos,"fishing:lure")
23 minetest.sound_play("woosh",{pos=pos})
24 obj:get_luaentity().player=name
25 obj:get_luaentity().anchor=pos
26 obj:set_velocity(force)
27 players_fishing[name] = obj
28 user:set_attach(obj, "", vector.new(0,65,0), vector.new(0,0,0))
36 lure.initial_properties = {
38 collide_with_objects = false,
39 collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
41 visual_size = {x = 1, y = 1},
49 --automatic_face_movement_dir = 0.0,
50 --automatic_face_movement_max_rotation_per_sec = 600,
52 lure.on_activate = function(self)
53 self.object:set_acceleration(vector.new(0,-10,0))
56 lure.interplayer = nil
57 lure.on_step = function(self, dtime)
58 local pos = self.object:get_pos()
59 local node = minetest.get_node(pos).name
60 if node == "main:water" then
62 local new_pos = vector.floor(pos)
63 new_pos.y = new_pos.y + 0.5
64 self.object:move_to(vector.new(pos.x,new_pos.y,pos.z))
65 self.object:set_acceleration(vector.new(0,0,0))
66 self.object:set_velocity(vector.new(0,0,0))
69 if self.in_water == true then
71 local p = minetest.get_player_by_name(self.player)
72 if p:get_player_control().jump then
73 local vel = vector.direction(pos,self.anchor)
74 self.object:set_velocity(vector.multiply(vel,2))
76 self.object:set_velocity(vector.new(0,0,0))
78 if vector.distance(self.anchor, p:get_pos()) < 0.5 then
79 players_fishing[self.player] = nil
84 if self.player == nil then
88 minetest.register_entity("fishing:lure", lure)