]> git.lizzy.rs Git - Crafter.git/blob - mods/fishing/old_code.txt
remove server debug
[Crafter.git] / mods / fishing / old_code.txt
1  local players_fishing = {}
2  
3  minetest.register_craftitem("fishing:pole", {
4         description = "Fishing Pole",
5         inventory_image = "stick.png",
6         stack_max = 1,
7         range = 0,
8         on_use = function(itemstack, user, pointed_thing)
9                 --minetest.sound_play("reload_gun",{object=user, pitch = math.random(80,100)/100})
10                 --print("reload")
11         end,
12         
13         on_secondary_use = function(itemstack, user, pointed_thing)
14                 if not players_fishing[name] then
15                         local pos = user:get_pos()
16                         pos.y = pos.y + 1.625
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")
22                         if obj then
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))
29                         end
30                 end
31         end,
32 })
33
34
35 local lure = {}
36 lure.initial_properties = {
37         physical = true,
38         collide_with_objects = false,
39         collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
40         visual = "mesh",
41         visual_size = {x = 1, y = 1},
42         mesh = "lure.b3d",
43         textures = {
44                 "lure.png"
45         },
46         is_visible = true,
47         pointable = false,
48         --glow = -1,
49         --automatic_face_movement_dir = 0.0,
50         --automatic_face_movement_max_rotation_per_sec = 600,
51 }
52 lure.on_activate = function(self)
53         self.object:set_acceleration(vector.new(0,-10,0))
54 end
55 lure.in_water = false
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
61                 self.in_water = true
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))
67                 
68         end
69         if self.in_water == true then
70                 if self.player 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))
75                         else
76                                 self.object:set_velocity(vector.new(0,0,0))
77                         end
78                         if vector.distance(self.anchor, p:get_pos()) < 0.5 then
79                                 players_fishing[self.player] = nil
80                                 self.object:remove()
81                         end
82                 end
83         end
84         if self.player == nil then
85                 self.object:remove()
86         end
87 end
88 minetest.register_entity("fishing:lure", lure)
89