diff --git a/mods/ENTITIES/mcl_mobs/combat.lua b/mods/ENTITIES/mcl_mobs/combat.lua index a480260db..c59594ac3 100644 --- a/mods/ENTITIES/mcl_mobs/combat.lua +++ b/mods/ENTITIES/mcl_mobs/combat.lua @@ -1044,8 +1044,8 @@ function mob_class:do_states_attack(dtime) owner = self, }) ent = arrow:get_luaentity() - ent.switch = 1 v = ent.velocity or v + ent.switch = 1 -- important for mcl_shields ent._shooter = self.object @@ -1056,7 +1056,7 @@ function mob_class:do_states_attack(dtime) end -- offset makes shoot aim accurate - vec.y = vec.y + self.shoot_offset -- TODO: check if this is breaking the new projectile refactor + vec.y = vec.y + self.shoot_offset vec.x, vec.y, vec.z = vec.x * (v / dist), vec.y * (v / dist), vec.z * (v / dist) if self.shoot_arrow then vec = vector.normalize(vec) diff --git a/mods/ITEMS/vl_projectile/init.lua b/mods/ITEMS/vl_projectile/init.lua index 970c57c19..84533dd78 100644 --- a/mods/ITEMS/vl_projectile/init.lua +++ b/mods/ITEMS/vl_projectile/init.lua @@ -21,7 +21,7 @@ function mod.projectile_physics(obj, entity_def, v, a) v = v or obj:get_velocity() a = a or vector.zero() - if not entity_def.ignore_gravity then + if not entity_def._vl_projectile.ignore_gravity then a = a + vector.new(0,-GRAVITY,0) end @@ -372,6 +372,7 @@ function mod.create(entity_id, options) a = vector.zero() v = a end + local entity_def = minetest.registered_entities[entity_id] mod.projectile_physics(obj, entity_def, v, a) -- Update projectile parameters