From 56bcc7dbb7bd269b5de9d8359dce4ca7b8d30521 Mon Sep 17 00:00:00 2001 From: fluxionary <25628292+fluxionary@users.noreply.github.com> Date: Thu, 18 May 2023 10:49:12 -0700 Subject: [PATCH] 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 --- settingtypes.txt | 3 +++ teleport_tube.lua | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/settingtypes.txt b/settingtypes.txt index ba25914..6d8e3ad 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -84,3 +84,6 @@ pipeworks_use_real_entities (Use Real Entities) bool true #A high value may cause issues with tube entity visuals. #A value 0.2 or above may cause issues with accelerator tubes. 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 diff --git a/teleport_tube.lua b/teleport_tube.lua index 74a610a..4b6b2ed 100644 --- a/teleport_tube.lua +++ b/teleport_tube.lua @@ -233,7 +233,8 @@ local function can_go(pos, node, velocity, stack) velocity.x = 0 velocity.y = 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 return {} end @@ -242,6 +243,14 @@ local function can_go(pos, node, velocity, stack) return {} end 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.y = target.y pos.z = target.z