Bug in the "HighPerf Pushing Chest" fixed.

This commit is contained in:
Joachim Stolberg 2018-09-02 11:11:37 +02:00
parent 2d1750f850
commit db819ea1af
5 changed files with 37 additions and 5 deletions

@ -4,7 +4,6 @@
## V1.13 Beta (2018-08-28) ## V1.13 Beta (2018-08-28)
### Additions ### Additions
- A Liquid Sampler node is added. It is able to take all kind or renewable liquids (registered via bucket.register_liquid) - A Liquid Sampler node is added. It is able to take all kind or renewable liquids (registered via bucket.register_liquid)
@ -15,19 +14,38 @@
- The new controller needs batteries. Thus, Smartline has now its own battery node. The sl_controller.battery will not be - The new controller needs batteries. Thus, Smartline has now its own battery node. The sl_controller.battery will not be
needed any more. needed any more.
### Removals ### Removals
- recipe for sl_controller/batteries removed. - recipe for sl_controller/batteries removed.
- Recipe for Smartline controller V1 removed. - Recipe for Smartline controller V1 removed.
### Changes ### Changes
- Quarry can no go direct from FAULT into RUNNING without reset the digging position - Quarry can no go direct from FAULT into RUNNING without reset the digging position
### Fixes ### Fixes
- bug in open/close door command for Minetest v0.4.17+ fixed - bug in open/close door command for Minetest v0.4.17+ fixed
## V1.13.1 Beta (2018-09-02)
### Additions
- none
### Removals
- none
### Changes
- Unloaded pushers now return "blocked", if the status is requested.
Before, it returned the last stored state.
### Fixes
- Bug in the "HighPerf Pushing Chest" fixed. For the case the node pushes items
in its own chest, the items went lost.

@ -237,6 +237,9 @@ tubelib.register_node("tubelib:pusher", {"tubelib:pusher_active"}, {
elseif topic == "off" then elseif topic == "off" then
return switch_off(pos, node) return switch_off(pos, node)
elseif topic == "state" then elseif topic == "state" then
if node.name == "ignore" then -- unloaded pusher?
return "blocked"
end
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local running = meta:get_int("running") or tubelib.STATE_STOPPED local running = meta:get_int("running") or tubelib.STATE_STOPPED
return tubelib.statestring(running) return tubelib.statestring(running)

@ -237,6 +237,9 @@ tubelib.register_node("tubelib_addons1:pusher_fast", {"tubelib_addons1:pusher_fa
elseif topic == "off" then elseif topic == "off" then
return switch_off(pos, node) return switch_off(pos, node)
elseif topic == "state" then elseif topic == "state" then
if node.name == "ignore" then -- unloaded pusher?
return "blocked"
end
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local running = meta:get_int("running") or tubelib.STATE_STOPPED local running = meta:get_int("running") or tubelib.STATE_STOPPED
return tubelib.statestring(running) return tubelib.statestring(running)

@ -218,6 +218,9 @@ tubelib.register_node("tubelib_addons3:pusher", {"tubelib_addons3:pusher_active"
elseif topic == "off" then elseif topic == "off" then
return switch_off(pos, node) return switch_off(pos, node)
elseif topic == "state" then elseif topic == "state" then
if node.name == "ignore" then -- unloaded pusher?
return "blocked"
end
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local running = meta:get_int("running") or tubelib.STATE_STOPPED local running = meta:get_int("running") or tubelib.STATE_STOPPED
return tubelib.statestring(running) return tubelib.statestring(running)

@ -77,7 +77,12 @@ local function shift_items(pos, elapsed)
local stack = inv:get_stack("shift", idx) local stack = inv:get_stack("shift", idx)
if stack:get_count() > 0 then if stack:get_count() > 0 then
if tubelib.push_items(pos, "R", stack, player_name) then if tubelib.push_items(pos, "R", stack, player_name) then
inv:set_stack("shift", idx, nil) -- The effort is needed here for the case the
-- pusher pushes into its own chest.
local num = stack:get_count()
stack = inv:get_stack("shift", idx)
stack:take_item(num)
inv:set_stack("shift", idx, stack)
return true return true
else else
set_state(meta, "blocked") set_state(meta, "blocked")