speedup for smelter

master
A. Demant 2019-02-01 04:38:13 +01:00
parent 05cc10b040
commit 2a9f39c457
3 changed files with 11 additions and 6 deletions

View File

@ -5,6 +5,8 @@ minerdream.ingot_stack_max = minetest.settings:get("minerdream.ingot_stack_max"
minerdream.lump_stack_max = minetest.settings:get("minerdream.lump_stack_max") or 999
minerdream.dust_cooking_time_reduce = minetest.settings:get("minerdream.dust_cooking_time_reduce") or 2
minerdream.smelter_refractory_duration = minetest.settings:get("minerdream.smelter_refractory_duration") or 5000
minerdream.smelter_min_burntime= minetest.settings:get("minerdream.smelter_min_burntime") or 30
minerdream.smelter_speedup = minetest.settings:get("minerdream.smelter_speedup") or 1.5
minerdream.steel_wire="minerdream:steel_wire"
if minetest.get_modpath("basic_materials") == nil then

View File

@ -2,3 +2,5 @@ minerdream.ingot_stack_max (Max stack for ingots) int 250 99 1000
minerdream.lump_stack_max (Max stack for lumps) int 999 99 1000
minerdream.dust_cooking_time_reduce (Recucing factor for cooking dust instead of lump) float 2 1 5
minerdream.smelter_refractory_duration (Smelting time the refractory lasts) int 6000 600 50000
minerdream.smelter_min_burntime (Min. burntime of fuel for smelter) int 30 10 100
minerdream.smelter_speedup (Speedup of smelter) float 1.5

View File

@ -151,7 +151,8 @@ local function smelter_node_timer(pos, elapsed)
local aftercooked
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
cookable = cooked.time ~= 0
local cookedtime=cooked.time / M.smelter_speedup
local el = math.min(elapsed, fuel_totaltime - fuel_time)
if cookable then -- fuel lasts long enough, adjust el to cooking duration
el = math.min(el, cooked.time - src_time)
@ -160,7 +161,7 @@ local function smelter_node_timer(pos, elapsed)
-- check for refractory
if cookable then
-- cooking time > durability time of refractory?
if cooked.time > refrac_time then
if cookedtime > refrac_time then
-- is refrac slot filled or empty?
if not inv:is_empty("refrac") and (refraclist[1]:get_name() == "default:clay_brick") then
inv:remove_item("refrac",ItemStack("default:clay_brick"))
@ -178,13 +179,13 @@ local function smelter_node_timer(pos, elapsed)
-- If there is a cookable item then check if it is ready yet
if cookable then
src_time = src_time + el
if src_time >= cooked.time then
if src_time >= cookedtime then
-- Place result in dst list if possible
if inv:room_for_item("dst", cooked.item) then
inv:add_item("dst", cooked.item)
inv:set_stack("src", 1, aftercooked.items[1])
src_time = src_time - cooked.time
refrac_time=refrac_time- cooked.time
src_time = src_time - cookedtime
refrac_time=refrac_time- cookedtime
update = true
end
else
@ -199,7 +200,7 @@ local function smelter_node_timer(pos, elapsed)
local afterfuel
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
if fuel.time == 0 then
if fuel.time <= M.smelter_min_burntime then
-- No valid fuel in fuel list
fuel_totaltime = 0
src_time = 0