1
0
mirror of https://github.com/SmallJoker/boost_cart.git synced 2024-12-25 18:30:19 +01:00

Use minetest.raillike_group, do not connect rails with other raillike

This commit is contained in:
SmallJoker 2017-07-01 10:45:15 +02:00
parent b80d3aed4c
commit af25c5411b
2 changed files with 12 additions and 3 deletions

View File

@ -83,7 +83,8 @@ end
function cart_entity:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) function cart_entity:on_punch(puncher, time_from_last_punch, tool_capabilities, direction)
local pos = self.object:getpos() 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 local node = minetest.get_node(pos).name
self.railtype = minetest.get_item_group(node, "connect_to_raillike") self.railtype = minetest.get_item_group(node, "connect_to_raillike")
end end
@ -122,7 +123,7 @@ function cart_entity:on_punch(puncher, time_from_last_punch, tool_capabilities,
return return
end end
local vel = self.object:getvelocity() -- Driver punches to accelerate the cart
if puncher:get_player_name() == self.driver then if puncher:get_player_name() == self.driver then
if math.abs(vel.x + vel.z) > boost_cart.punch_speed_max then if math.abs(vel.x + vel.z) > boost_cart.punch_speed_max then
return return

View File

@ -217,7 +217,15 @@ end
function boost_cart:get_rail_groups(additional_groups) function boost_cart:get_rail_groups(additional_groups)
-- Get the default rail groups and add more when a table is given -- 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 = 1
}
if minetest.raillike_group then
groups.connect_to_raillike = minetest.raillike_group("rail")
end
if type(additional_groups) == "table" then if type(additional_groups) == "table" then
for k, v in pairs(additional_groups) do for k, v in pairs(additional_groups) do
groups[k] = v groups[k] = v