mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-30 22:41:20 +01:00
Fix crashes, fix link in documentation
This commit is contained in:
parent
db2c200136
commit
a149ef5f05
4 changed files with 7 additions and 7 deletions
|
@ -33,7 +33,7 @@ Processing for minecart movement is as follows:
|
||||||
4. The cart checks for nearby carts and collides elastically with these. The
|
4. The cart checks for nearby carts and collides elastically with these. The
|
||||||
calculations for these collisions are in the function `handle_cart_collision`
|
calculations for these collisions are in the function `handle_cart_collision`
|
||||||
5. If the cart enters a new block, determine the new direction the cart will
|
5. If the cart enters a new block, determine the new direction the cart will
|
||||||
move with `mcl_minecarts:get_rail_direction` in [functions.lua](./functions.lua].
|
move with `mcl_minecarts:get_rail_direction` in [functions.lua](./functions.lua).
|
||||||
The rail nodes provide a hook `_mcl_minecarts.get_next_direction` that
|
The rail nodes provide a hook `_mcl_minecarts.get_next_direction` that
|
||||||
provides this information based on the previous movement direction.
|
provides this information based on the previous movement direction.
|
||||||
3. If an entity exists for a given cart, the entity will update its position
|
3. If an entity exists for a given cart, the entity will update its position
|
||||||
|
|
|
@ -5,7 +5,7 @@ local mod = mcl_minecarts
|
||||||
mcl_minecarts.modpath = modpath
|
mcl_minecarts.modpath = modpath
|
||||||
|
|
||||||
-- Constants
|
-- Constants
|
||||||
mod.speed_max = 10
|
mod.SPEED_MAX = 10
|
||||||
mod.FRICTION = 0.4
|
mod.FRICTION = 0.4
|
||||||
mod.MAX_TRAIN_LENGTH = 4
|
mod.MAX_TRAIN_LENGTH = 4
|
||||||
mod.CART_BLOCK_SIZE = 64
|
mod.CART_BLOCK_SIZE = 64
|
||||||
|
|
|
@ -240,7 +240,6 @@ local function calculate_acceleration(staticdata)
|
||||||
local pos = staticdata.connected_at
|
local pos = staticdata.connected_at
|
||||||
local node_name = minetest.get_node(pos).name
|
local node_name = minetest.get_node(pos).name
|
||||||
local node_def = minetest.registered_nodes[node_name]
|
local node_def = minetest.registered_nodes[node_name]
|
||||||
local max_vel = SPEED_MAX
|
|
||||||
|
|
||||||
local ctrl = staticdata.controls or {}
|
local ctrl = staticdata.controls or {}
|
||||||
local time_active = minetest.get_gametime() - 0.25
|
local time_active = minetest.get_gametime() - 0.25
|
||||||
|
@ -251,7 +250,7 @@ local function calculate_acceleration(staticdata)
|
||||||
acceleration = -1.5
|
acceleration = -1.5
|
||||||
elseif (staticdata.fueltime or 0) > 0 and staticdata.velocity <= 4 then
|
elseif (staticdata.fueltime or 0) > 0 and staticdata.velocity <= 4 then
|
||||||
acceleration = 0.6
|
acceleration = 0.6
|
||||||
elseif staticdata.velocity >= ( node_def._max_acceleration_velocity or max_vel ) then
|
elseif staticdata.velocity >= ( node_def._max_acceleration_velocity or SPEED_MAX ) then
|
||||||
-- Standard friction
|
-- Standard friction
|
||||||
elseif node_def and node_def._rail_acceleration then
|
elseif node_def and node_def._rail_acceleration then
|
||||||
acceleration = node_def._rail_acceleration * 4
|
acceleration = node_def._rail_acceleration * 4
|
||||||
|
|
|
@ -3,6 +3,7 @@ local mod = mcl_minecarts
|
||||||
|
|
||||||
-- Imports
|
-- Imports
|
||||||
local CART_BLOCK_SIZE = mod.CART_BLOCK_SIZE
|
local CART_BLOCK_SIZE = mod.CART_BLOCK_SIZE
|
||||||
|
assert(CART_BLOCK_SIZE)
|
||||||
|
|
||||||
local cart_data = {}
|
local cart_data = {}
|
||||||
local cart_data_fail_cache = {}
|
local cart_data_fail_cache = {}
|
||||||
|
@ -72,9 +73,9 @@ function mod.find_carts_by_block_map(block_map)
|
||||||
return cart_list
|
return cart_list
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod.add_block_map(block_map, min_pos, max_pos)
|
function mod.add_blocks_to_map(block_map, min_pos, max_pos)
|
||||||
local min = vector.floor(vector.divide(min_pos), CART_BLOCK_SIZE)
|
local min = vector.floor(vector.divide(min_pos, CART_BLOCK_SIZE))
|
||||||
local max = vector.floor(vector.divide(max_pos), CART_BLOCK_SIZE) + vector.new(1,1,1)
|
local max = vector.floor(vector.divide(max_pos, CART_BLOCK_SIZE)) + vector.new(1,1,1)
|
||||||
for z = min.z,max.z do
|
for z = min.z,max.z do
|
||||||
for y = min.y,max.y do
|
for y = min.y,max.y do
|
||||||
for x = min.x,max.x do
|
for x = min.x,max.x do
|
||||||
|
|
Loading…
Reference in a new issue