mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-30 22:41:20 +01:00
Limit top speed of furnace minecarts to 4 blocks/second, limit total fuel time to 27 minutes
This commit is contained in:
parent
ff5e185629
commit
c18976c0ca
1 changed files with 10 additions and 5 deletions
|
@ -180,7 +180,7 @@ local function calculate_acceleration(self, staticdata)
|
||||||
acceleration = -1.5
|
acceleration = -1.5
|
||||||
elseif self._punched then
|
elseif self._punched then
|
||||||
acceleration = 2
|
acceleration = 2
|
||||||
elseif (staticdata.fueltime or 0) > 0 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 max_vel ) then
|
||||||
-- Standard friction
|
-- Standard friction
|
||||||
|
@ -815,6 +815,10 @@ local function register_entity(entity_id, def)
|
||||||
self._staticdata = staticdata
|
self._staticdata = staticdata
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Cart specific behaviors
|
||||||
|
local hook = self._mcl_minecarts_on_step
|
||||||
|
if hook then hook(self,dtime) end
|
||||||
|
|
||||||
if (staticdata.hopper_delay or 0) > 0 then
|
if (staticdata.hopper_delay or 0) > 0 then
|
||||||
staticdata.hopper_delay = staticdata.hopper_delay - dtime
|
staticdata.hopper_delay = staticdata.hopper_delay - dtime
|
||||||
end
|
end
|
||||||
|
@ -860,10 +864,6 @@ local function register_entity(entity_id, def)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Cart specific behaviors
|
|
||||||
local hook = self._mcl_minecarts_on_step
|
|
||||||
if hook then hook(self,dtime) end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function cart:get_staticdata()
|
function cart:get_staticdata()
|
||||||
|
@ -1126,6 +1126,11 @@ register_minecart({
|
||||||
if minetest.get_item_group(held:get_name(), "coal") == 1 then
|
if minetest.get_item_group(held:get_name(), "coal") == 1 then
|
||||||
staticdata.fueltime = (staticdata.fueltime or 0) + 180
|
staticdata.fueltime = (staticdata.fueltime or 0) + 180
|
||||||
|
|
||||||
|
-- Trucate to 27 minutes (9 uses)
|
||||||
|
if staticdata.fueltime > 27*60 then
|
||||||
|
staticdata.fuel_time = 27*60
|
||||||
|
end
|
||||||
|
|
||||||
if not minetest.is_creative_enabled(clicker:get_player_name()) then
|
if not minetest.is_creative_enabled(clicker:get_player_name()) then
|
||||||
held:take_item()
|
held:take_item()
|
||||||
local index = clicker:get_wield_index()
|
local index = clicker:get_wield_index()
|
||||||
|
|
Loading…
Reference in a new issue