Skip to content

Commit ad2c11e

Browse files
AthozusS-S-X
andauthored
Fix cable plate placing on several-blocks nodes (#358)
Co-authored-by: SX <[email protected]>
1 parent e699d32 commit ad2c11e

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

technic/machines/register/cables.lua

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,20 @@ function technic.register_cable_plate(nodename, data)
9696
def.node_box["connect_"..notconnects[i]] = nil
9797
if i == 1 then
9898
def.on_place = function(itemstack, placer, pointed_thing)
99-
local pointed_thing_diff = vector.subtract(pointed_thing.above, pointed_thing.under)
99+
local count = 0
100+
for axis in pairs(xyz) do
101+
count = count + (pointed_thing.under[axis] == pointed_thing.above[axis] and 0 or 1)
102+
if count > 1 then
103+
return itemstack
104+
end
105+
end
106+
local pointed_thing_diff = vector.direction(pointed_thing.under, pointed_thing.above)
100107
local index = pointed_thing_diff.x + (pointed_thing_diff.y*2) + (pointed_thing_diff.z*3)
101108
local num = index < 0 and -index + 3 or index
102109
local crtl = placer:get_player_control()
103110
if (crtl.aux1 or crtl.sneak) and not (crtl.aux1 and crtl.sneak) and index ~= 0 then
104111
local fine_pointed = minetest.pointed_thing_to_face_pos(placer, pointed_thing)
105-
fine_pointed = vector.subtract(fine_pointed, pointed_thing.above)
112+
fine_pointed = vector.direction(pointed_thing.above,fine_pointed)
106113
fine_pointed[xyz[index < 0 and -index or index]] = nil
107114
local key_a, a = next(fine_pointed)
108115
local key_b, b = next(fine_pointed, key_a)

0 commit comments

Comments
 (0)