diff --git a/tubelib/node_states.lua b/tubelib/node_states.lua index a300435..aca065a 100644 --- a/tubelib/node_states.lua +++ b/tubelib/node_states.lua @@ -57,7 +57,7 @@ local P = minetest.string_to_pos local M = minetest.get_meta -local AGING_FACTOR = 3 -- defect random factor +local AGING_FACTOR = 4 -- defect random factor -- -- Local States diff --git a/tubelib_addons3/distributor.lua b/tubelib_addons3/distributor.lua index 8dd3783..0ae6dac 100644 --- a/tubelib_addons3/distributor.lua +++ b/tubelib_addons3/distributor.lua @@ -32,7 +32,7 @@ local State = tubelib.NodeStates:new({ infotext_name = "HighPerf Distributor", cycle_time = CYCLE_TIME, standby_ticks = STANDBY_TICKS, - aging_factor = 10, + aging_factor = 50, }) local function formspec(pos, meta) @@ -197,7 +197,7 @@ local function distributing(pos, meta) -- no filter configured? if next(kvFilterItemNames) == nil then return end - local moved_items_total = 0 + local busy = false local inv = meta:get_inventory() local list = inv:get_list("src") @@ -222,7 +222,7 @@ local function distributing(pos, meta) stack:set_count(0) local color = Side2Color[side] counter[color] = counter[color] + num - moved_items_total = moved_items_total + num + busy = true else second_try = true -- port blocked end @@ -238,7 +238,7 @@ local function distributing(pos, meta) stack:set_count(0) local color = Side2Color[side] counter[color] = counter[color] + num - moved_items_total = moved_items_total + num + busy = true end end end @@ -246,8 +246,8 @@ local function distributing(pos, meta) inv:set_list("src", list) meta:set_string("item_counter", minetest.serialize(counter)) - if moved_items_total > 0 then - State:keep_running(pos, meta, COUNTDOWN_TICKS, moved_items_total) + if busy then + State:keep_running(pos, meta, COUNTDOWN_TICKS, 1) else State:idle(pos, meta) end diff --git a/tubelib_addons3/pusher.lua b/tubelib_addons3/pusher.lua index 0d9ec33..7f18514 100644 --- a/tubelib_addons3/pusher.lua +++ b/tubelib_addons3/pusher.lua @@ -31,7 +31,7 @@ local State = tubelib.NodeStates:new({ cycle_time = CYCLE_TIME, standby_ticks = STANDBY_TICKS, has_item_meter = true, - aging_factor = 60, + aging_factor = 50, }) local function pushing(pos, meta) @@ -44,7 +44,7 @@ local function pushing(pos, meta) State:blocked(pos, meta) return end - State:keep_running(pos, meta, COUNTDOWN_TICKS, items:get_count()) + State:keep_running(pos, meta, COUNTDOWN_TICKS, 1) return end State:idle(pos, meta) diff --git a/tubelib_addons3/pushing_chest.lua b/tubelib_addons3/pushing_chest.lua index 67b8aa9..5afcfb7 100644 --- a/tubelib_addons3/pushing_chest.lua +++ b/tubelib_addons3/pushing_chest.lua @@ -15,8 +15,8 @@ ]]-- -- tubelib aging feature -local AGING_LEVEL1 = 80 * tubelib.machine_aging_value -local AGING_LEVEL2 = 240 * tubelib.machine_aging_value +local AGING_LEVEL1 = 50 * tubelib.machine_aging_value +local AGING_LEVEL2 = 150 * tubelib.machine_aging_value local Cache = {} @@ -48,10 +48,10 @@ local function allow_metadata_inventory_move(pos, from_list, from_index, to_list return count end -local function aging(pos, meta, num) - local cnt = meta:get_int("tubelib_aging") + num +local function aging(pos, meta) + local cnt = meta:get_int("tubelib_aging") + 1 meta:set_int("tubelib_aging", cnt) - if cnt > AGING_LEVEL1 and math.random(AGING_LEVEL2/num) == 1 then + if cnt > AGING_LEVEL1 and math.random(AGING_LEVEL2) == 1 then minetest.get_node_timer(pos):stop() local node = minetest.get_node(pos) node.name = "tubelib_addons3:pushing_chest_defect" @@ -97,7 +97,7 @@ local function shift_items(pos, elapsed) stack = inv:get_stack("shift", idx) stack:take_item(num) inv:set_stack("shift", idx, stack) - aging(pos, meta, num) + aging(pos, meta) return true else set_state(meta, "blocked")