]> git.lizzy.rs Git - Crafter.git/commitdiff
Make mobs flow in water
authoroilboi <47129783+oilboi@users.noreply.github.com>
Wed, 24 Jun 2020 05:55:35 +0000 (01:55 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Wed, 24 Jun 2020 05:55:35 +0000 (01:55 -0400)
mods/mob/api/api_hook.lua
mods/mob/api/interaction.lua

index 6d1c2870f99666d45d7c29735df29bf6535a1f9b..1875a204881483703a9f21fd96788866cc68c5be 100644 (file)
@@ -193,6 +193,7 @@ mob_register.on_step = function(self, dtime,moveresult)
 
                self.move(self,dtime,moveresult)
                
+               self.flow(self)
                --self.debug_nametag(self,dtime)
 
                self.manage_hurt_color_timer(self,dtime)
index 2aea68f343357fac2254bda90517560956ea1747..169c1441d13d9f9b4de4a3c9ef3ba6d5e692296d 100644 (file)
@@ -43,6 +43,18 @@ local obj
 local sound_max
 local sound_min
 mobs.create_interaction_functions = function(def,mob_register)
+
+       mob_register.flow = function(self)
+               local flow_dir = flow(self.object:get_pos())
+               if flow_dir then
+                       flow_dir = vector.multiply(flow_dir,10)
+                       local vel = self.object:get_velocity()
+                       local acceleration = vector.new(flow_dir.x-vel.x,flow_dir.y-vel.y,flow_dir.z-vel.z)
+                       acceleration = vector.multiply(acceleration, 0.01)
+                       self.object:add_velocity(acceleration)
+               end
+       end
+
        --the pig will look for and at players
        mob_register.look_around = function(self,dtime)
                pos = self.object:get_pos()