From 8991b9fe54894fec98405054aaafee848eef6dff Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 2 Jul 2017 10:32:10 +0200 Subject: [PATCH] Carts: Do not connect rails with gunpowder (#1812) --- mods/carts/cart_entity.lua | 4 ++-- mods/carts/functions.lua | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/mods/carts/cart_entity.lua b/mods/carts/cart_entity.lua index a19da648..8f733746 100644 --- a/mods/carts/cart_entity.lua +++ b/mods/carts/cart_entity.lua @@ -58,7 +58,8 @@ end function cart_entity:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) local pos = self.object:getpos() - if not self.railtype then + local vel = self.object:getvelocity() + if not self.railtype or vector.equals(vel, {x=0, y=0, z=0}) then local node = minetest.get_node(pos).name self.railtype = minetest.get_item_group(node, "connect_to_raillike") end @@ -105,7 +106,6 @@ function cart_entity:on_punch(puncher, time_from_last_punch, tool_capabilities, return end -- Player punches cart to alter velocity - local vel = self.object:getvelocity() if puncher:get_player_name() == self.driver then if math.abs(vel.x + vel.z) > carts.punch_speed_max then return diff --git a/mods/carts/functions.lua b/mods/carts/functions.lua index a4717194..96a12d2b 100644 --- a/mods/carts/functions.lua +++ b/mods/carts/functions.lua @@ -211,7 +211,12 @@ end function carts:get_rail_groups(additional_groups) -- Get the default rail groups and add more when a table is given - local groups = {dig_immediate = 2, attached_node = 1, rail = 1, connect_to_raillike = 1} + local groups = { + dig_immediate = 2, + attached_node = 1, + rail = 1, + connect_to_raillike = minetest.raillike_group("rail") + } if type(additional_groups) == "table" then for k, v in pairs(additional_groups) do groups[k] = v -- 2.25.1