log when items teleport through tubes (#66)

* log when items teleport through tubes

* put teleport tube logging bethind a setting

* narrow scope of some variables
This commit is contained in:
fluxionary 2023-05-18 10:49:12 -07:00 committed by GitHub
parent bd5a42356b
commit 56bcc7dbb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

@ -84,3 +84,6 @@ pipeworks_use_real_entities (Use Real Entities) bool true
#A high value may cause issues with tube entity visuals. #A high value may cause issues with tube entity visuals.
#A value 0.2 or above may cause issues with accelerator tubes. #A value 0.2 or above may cause issues with accelerator tubes.
pipeworks_entity_update_interval (Entity Update Interval) float 0 0 0.8 pipeworks_entity_update_interval (Entity Update Interval) float 0 0 0.8
# if set to true, items passing through teleport tubes will log log where they came from and where they went.
pipeworks_log_teleport_tubes (Log Teleport Tubes) bool false

@ -233,7 +233,8 @@ local function can_go(pos, node, velocity, stack)
velocity.x = 0 velocity.x = 0
velocity.y = 0 velocity.y = 0
velocity.z = 0 velocity.z = 0
local channel = minetest.get_meta(pos):get_string("channel") local src_meta = minetest.get_meta(pos)
local channel = src_meta:get_string("channel")
if channel == "" then if channel == "" then
return {} return {}
end end
@ -242,6 +243,14 @@ local function can_go(pos, node, velocity, stack)
return {} return {}
end end
local target = receivers[math.random(1, #receivers)] local target = receivers[math.random(1, #receivers)]
if minetest.settings:get_bool("pipeworks_log_teleport_tubes", false) then
local src_owner = src_meta:get_string("owner")
local dst_meta = minetest.get_meta(pos)
local dst_owner = dst_meta:get_string("owner")
minetest.log("action", string.format("[pipeworks] %s teleported from %s (owner=%s) to %s (owner=%s) via %s",
stack:to_string(), minetest.pos_to_string(pos), src_owner, minetest.pos_to_string(target), dst_owner, channel
))
end
pos.x = target.x pos.x = target.x
pos.y = target.y pos.y = target.y
pos.z = target.z pos.z = target.z