Page Menu
Home
1F616EMO Bugtracker
Search
Configure Global Search
Log In
Files
F154381
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/rightclick_fix/init.lua b/rightclick_fix/init.lua
index 0e0452b..2714630 100644
--- a/rightclick_fix/init.lua
+++ b/rightclick_fix/init.lua
@@ -1,79 +1,79 @@
-- twi_mods/rightclick_fix/init.lua
-- Fix node interaction on on_place tols
-- Copyright (C) 2025 1F616EMO
-- SPDX-License-Identifier: LGPL-2.1-or-later
local fix_tools = {
-- Screwdrivers
"screwdriver:screwdriver",
"technic:sonic_screwdriver",
-- Advtrains tools
"advtrains:trackworker",
"advtrains:copytool",
"advtrains_interlocking:tool",
"advtrains_luaautomation:pcnaming",
-- Advtrains track placers
"advtrains:dtrack_atc_placer",
"advtrains:dtrack_bumper_placer",
"advtrains:dtrack_detector_off_placer",
"advtrains:dtrack_load_placer",
"advtrains:dtrack_placer",
"advtrains:dtrack_s3_placer",
"advtrains:dtrack_slopeplacer",
"advtrains:dtrack_sy_placer",
"advtrains:dtrack_unload_placer",
"advtrains:dtrack_xing90plusx_placer",
"advtrains:dtrack_xing_placer",
"advtrains:dtrack_xingdiag_placer",
"advtrains_interlocking:dtrack_npr_placer",
"advtrains_line_automation:dtrack_stop_placer",
"advtrains_luaautomation:dtrack_placer",
}
local function is_function_node(pos)
-- 1. Formspec meta check
local meta = core.get_meta(pos)
if meta:get("formspec") ~= nil then
return true
end
-- 2. Check on_rightclick
local node = core.get_node(pos)
local ndef = core.registered_nodes[node.name]
return ndef and ndef.on_rightclick and true or false
end
local function on_place(itemstack, placer, pointed_thing, old_on_place)
local pos = pointed_thing.under
if is_function_node(pos) then
local control = placer:get_player_control()
- if control.sneak then
+ if not control.sneak then
-- Do node function instead
local node = core.get_node(pos)
local ndef = core.registered_nodes[node.name]
- if not ndef.on_rightclick then
+ if ndef.on_rightclick then
return ndef.on_rightclick(pos, node, placer, itemstack, pointed_thing)
end
return itemstack
end
end
return old_on_place(itemstack, placer, pointed_thing)
end
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
for _, name in ipairs(fix_tools) do
local def = core.registered_items[name]
local old_on_place = def.on_place
if old_on_place then
core.override_item(name, {
on_place = function(itemstack, placer, pointed_thing)
return on_place(itemstack, placer, pointed_thing, old_on_place)
end,
})
end
end
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Feb 9, 12:38 PM (3 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
9c/db/20819140e1221b9b83cd32c0c04c
Default Alt Text
(2 KB)
Attached To
Mode
rTWIMODS Survival Server Custom Modifications
Attached
Detach File
Event Timeline
Log In to Comment