mirror of
https://github.com/SmallJoker/boost_cart.git
synced 2024-12-25 10:20:19 +01:00
Add start-stop rail.
This commit is contained in:
parent
947d8633ff
commit
d166b7ea68
12
init.lua
12
init.lua
@ -249,8 +249,16 @@ function boost_cart.cart:on_step(dtime)
|
|||||||
-- Slow down or speed up..
|
-- Slow down or speed up..
|
||||||
local acc = dir.y * -1.8
|
local acc = dir.y * -1.8
|
||||||
|
|
||||||
local speed_mod = tonumber(minetest.get_meta(pos):get_string("cart_acceleration"))
|
local speed_mod_string = minetest.get_meta(pos):get_string("cart_acceleration")
|
||||||
if speed_mod and speed_mod ~= 0 then
|
local speed_mod = tonumber(speed_mod_string)
|
||||||
|
if speed_mod_string == "halt" then
|
||||||
|
vel = {x=0, y=0, z=0}
|
||||||
|
acc = {x=0, y=0, z=0}
|
||||||
|
dir = {x=0, y=0, z=0}
|
||||||
|
pos = vector.round(pos)
|
||||||
|
update.pos = true
|
||||||
|
update.vel = true
|
||||||
|
elseif speed_mod and speed_mod ~= 0 then
|
||||||
if speed_mod > 0 then
|
if speed_mod > 0 then
|
||||||
for _,v in ipairs({"x","y","z"}) do
|
for _,v in ipairs({"x","y","z"}) do
|
||||||
if math.abs(vel[v]) >= max_vel then
|
if math.abs(vel[v]) >= max_vel then
|
||||||
|
30
rails.lua
30
rails.lua
@ -102,3 +102,33 @@ minetest.register_craft({
|
|||||||
{"default:steel_ingot", "default:coal_lump", "default:steel_ingot"},
|
{"default:steel_ingot", "default:coal_lump", "default:steel_ingot"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
boost_cart:register_rail(":boost_cart:startstoprail", {
|
||||||
|
description = "Start-stop rail",
|
||||||
|
tiles = {"carts_rail_ss.png", "carts_rail_curved_ss.png", "carts_rail_t_junction_ss.png", "carts_rail_crossing_ss.png"},
|
||||||
|
groups = {dig_immediate = 2, attached_node = 1, rail = 1, connect_to_raillike = 1},
|
||||||
|
|
||||||
|
after_place_node = function(pos, placer, itemstack)
|
||||||
|
if not mesecon then
|
||||||
|
minetest.get_meta(pos):set_string("cart_acceleration", "halt")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
mesecons = {
|
||||||
|
effector = {
|
||||||
|
action_on = function(pos, node)
|
||||||
|
boost_cart:boost_rail(pos, 0.5)
|
||||||
|
end,
|
||||||
|
|
||||||
|
action_off = function(pos, node)
|
||||||
|
minetest.get_meta(pos):set_string("cart_acceleration", "halt")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = "boost_cart:startstoprail 2",
|
||||||
|
recipe = {"carts:powerrail", "carts:brakerail"},
|
||||||
|
})
|
||||||
|
BIN
textures/carts_rail_crossing_ss.png
Normal file
BIN
textures/carts_rail_crossing_ss.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 463 B |
BIN
textures/carts_rail_curved_ss.png
Normal file
BIN
textures/carts_rail_curved_ss.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 450 B |
BIN
textures/carts_rail_ss.png
Normal file
BIN
textures/carts_rail_ss.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 514 B |
BIN
textures/carts_rail_t_junction_ss.png
Normal file
BIN
textures/carts_rail_t_junction_ss.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 439 B |
Loading…
Reference in New Issue
Block a user