rewired_X reports: i just phased through cottages ... #6565

Open
opened 2024-03-24 23:58:34 +00:00 by yourland-report · 5 comments

rewired_X reports a bug:

i just phased through cottages:fence_corner while holding shift ... and no im not on cow magic

Player position:

{
	y = -172.49899291992,
	z = 394.75201416016,
	x = 3139.1608886719
}

Player look:

{
	y = -0.39201602339745,
	z = 0.0065823532640934,
	x = 0.91993486881256
}

Player information:

{
	formspec_version = 7,
	ip_version = 6,
	min_rtt = 0.12800000607967,
	avg_rtt = 0.12999999523163,
	min_jitter = 0,
	max_jitter = 2.6789999008179,
	avg_jitter = 0,
	connection_uptime = 4267,
	serialization_version = 29,
	patch = 0,
	state = "Active",
	minor = 8,
	lang_code = "",
	protocol_version = 42,
	version_string = "5.8.0",
	max_rtt = 2.8090000152588,
	major = 5
}

Player meta:

{
	fields = {
		arenalib_watchID = "0",
		hud_state = "on",
		["ocean_build.forbidden"] = "true",
		yl_commons_player_joined = "1711320479",
		["signslib:pos"] = "(4203,53,1086)",
		["unified_inventory:bags"] = "return {\"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\"}",
		["3d_armor_inventory"] = "return {\"3d_armor:helmet_crystal 1 14480\", \"shields:shield_rainbow 1 20208\", \"3d_armor:leggings_crystal 1 14480\", \"3d_armor:boots_crystal 1 14480\", \"3d_armor:chestplate_crystal 1 14480\", \"\"}",
		yl_church = "return {[\"last_death_portal\"] = 1710707338, [\"last_death\"] = {[\"y\"] = 84, [\"z\"] = 551, [\"x\"] = 3235}, [\"last_heal\"] = 1690328119}",
		["stamina:poisoned"] = "no",
		jointime = "1659200153",
		["stamina:exhaustion"] = "55.5",
		yl_commons_player_created = "1659200153",
		bitten = "0",
		xp_redo_hud_color = "0xE03fd8",
		digged_nodes = "367896",
		placed_nodes = "80574",
		died = "930",
		crafted = "138740",
		xp = "270256",
		yl_commons_thankyou = "75",
		punch_count = "196452",
		["stamina:level"] = "10",
		inflicted_damage = "4148732",
		repellant = "0",
		played_time = "7495987",
		["ocean_build.last_warning"] = "1.67388e+09",
		arenalib_infobox_arenaID = "0",
		["ocean_build.ocean_built"] = "12",
		partychat = "party"
	}
}

Log identifier


[MOD] yl_report log identifier = 5U1YXrUa2ltpbXpyP0CBWy0QRWApmXcj

Profiler save:

profile-20240324T235834.json_prettyEE

Status:

# Server: version: 5.7.0-yl-thx-tmm | game: Minetest Game | uptime: 9h 35min 15s | max lag: 0.921s | clients (21/52): AliasAlreadyTaken, AspireMint, Bailiff, Boot, Cashia, cycle, DannyVimaranes, Diaeresis, flux, Gaeridall, Harlequin, LockePickens, MineWorlds, nakama-ta, pifo, Rattrap, rewired_X, Service, Sokomine, VK, weishilindon

Teleport command:

/teleport xyz 3139 -172 395

Compass command:

/give_compass Construction 5U1YXrUa2ltpbXpyP0CBWy0QRWApmXcj D2691E 3139 -172 395
rewired_X reports a bug: > i just phased through cottages:fence_corner while holding shift ... and no im not on cow magic Player position: ``` { y = -172.49899291992, z = 394.75201416016, x = 3139.1608886719 } ``` Player look: ``` { y = -0.39201602339745, z = 0.0065823532640934, x = 0.91993486881256 } ``` Player information: ``` { formspec_version = 7, ip_version = 6, min_rtt = 0.12800000607967, avg_rtt = 0.12999999523163, min_jitter = 0, max_jitter = 2.6789999008179, avg_jitter = 0, connection_uptime = 4267, serialization_version = 29, patch = 0, state = "Active", minor = 8, lang_code = "", protocol_version = 42, version_string = "5.8.0", max_rtt = 2.8090000152588, major = 5 } ``` Player meta: ``` { fields = { arenalib_watchID = "0", hud_state = "on", ["ocean_build.forbidden"] = "true", yl_commons_player_joined = "1711320479", ["signslib:pos"] = "(4203,53,1086)", ["unified_inventory:bags"] = "return {\"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\"}", ["3d_armor_inventory"] = "return {\"3d_armor:helmet_crystal 1 14480\", \"shields:shield_rainbow 1 20208\", \"3d_armor:leggings_crystal 1 14480\", \"3d_armor:boots_crystal 1 14480\", \"3d_armor:chestplate_crystal 1 14480\", \"\"}", yl_church = "return {[\"last_death_portal\"] = 1710707338, [\"last_death\"] = {[\"y\"] = 84, [\"z\"] = 551, [\"x\"] = 3235}, [\"last_heal\"] = 1690328119}", ["stamina:poisoned"] = "no", jointime = "1659200153", ["stamina:exhaustion"] = "55.5", yl_commons_player_created = "1659200153", bitten = "0", xp_redo_hud_color = "0xE03fd8", digged_nodes = "367896", placed_nodes = "80574", died = "930", crafted = "138740", xp = "270256", yl_commons_thankyou = "75", punch_count = "196452", ["stamina:level"] = "10", inflicted_damage = "4148732", repellant = "0", played_time = "7495987", ["ocean_build.last_warning"] = "1.67388e+09", arenalib_infobox_arenaID = "0", ["ocean_build.ocean_built"] = "12", partychat = "party" } } ``` Log identifier ``` [MOD] yl_report log identifier = 5U1YXrUa2ltpbXpyP0CBWy0QRWApmXcj ``` Profiler save: ``` profile-20240324T235834.json_prettyEE ``` Status: ``` # Server: version: 5.7.0-yl-thx-tmm | game: Minetest Game | uptime: 9h 35min 15s | max lag: 0.921s | clients (21/52): AliasAlreadyTaken, AspireMint, Bailiff, Boot, Cashia, cycle, DannyVimaranes, Diaeresis, flux, Gaeridall, Harlequin, LockePickens, MineWorlds, nakama-ta, pifo, Rattrap, rewired_X, Service, Sokomine, VK, weishilindon ``` Teleport command: ``` /teleport xyz 3139 -172 395 ``` Compass command: ``` /give_compass Construction 5U1YXrUa2ltpbXpyP0CBWy0QRWApmXcj D2691E 3139 -172 395 ```
AliasAlreadyTaken was assigned by yourland-report 2024-03-24 23:58:34 +00:00
AliasAlreadyTaken added the
1. kind/bug
label 2024-03-25 02:17:36 +00:00
Member

this appears to be the same basic issue as #4590. currently, anything thinner than 1/16th of a node can exhibit this behavior if you "sneak" while "inside" of it. the cottages fences appear to be 1/25th of a node wide, so they are susceptible to this. i'd rather not create another engine issue - instead this should be fixed by making the collision boxes thicker.

this appears to be the same basic issue as #4590. currently, anything thinner than 1/16th of a node can exhibit this behavior if you "sneak" while "inside" of it. the cottages fences appear to be 1/25th of a node wide, so they are susceptible to this. i'd rather not create another engine issue - instead this should be fixed by making the collision boxes thicker.
flux added the
3. source/mod upstream
label 2024-03-26 20:22:41 +00:00
Member

cottages isn't really maintained anymore, i suppose i could fix this in integration.

cottages isn't really maintained anymore, i suppose i could fix this in integration.
flux added the
3. source/client
label 2024-03-26 20:25:13 +00:00
Member

an audit showed that only the cottages fences and some chess pieces are too thin:

local thin = 1/16

local function is_box_too_thin(box)
	local xwidth = box[4] - box[1]
	local zwidth = box[6] - box[3]
	return (xwidth > 0 and xwidth < thin) and (zwidth > 0 and zwidth < thin)
end

local function is_boxes_too_thin(boxes)
	for i = 1, #boxes do
		if is_box_too_thin(boxes[i]) then
			return true
		end
	end
	return false
end

local function is_too_thin(box_or_boxes)
	if futil.is_box(box_or_boxes) then
		return is_box_too_thin(box_or_boxes)
	elseif futil.is_boxes(box_or_boxes) then
		return is_boxes_too_thin(box_or_boxes)
	end
end

local function is_nodebox_too_thin(nodebox)
	if not nodebox then
		return false
	elseif nodebox.type == "regular" then
		return false
	elseif nodebox.type == "fixed" or nodebox.type == "leveled" then
		return is_too_thin(nodebox.fixed)
	elseif nodebox.type == "wallmounted" then
		return is_too_thin(nodebox.wall_top) or is_too_thin(nodebox.wall_bottom) or is_too_thin(nodebox.wall_side)
	elseif nodebox.type == "connected" then
		return is_too_thin(nodebox.fixed) or
			is_too_thin(nodebox.connect_top) or
			is_too_thin(nodebox.connect_bottom) or
			is_too_thin(nodebox.connect_front) or
			is_too_thin(nodebox.connect_left) or
			is_too_thin(nodebox.connect_back) or
			is_too_thin(nodebox.connect_right) or
			is_too_thin(nodebox.disconnected_top) or
			is_too_thin(nodebox.disconnected_bottom) or
			is_too_thin(nodebox.disconnected_front) or
			is_too_thin(nodebox.disconnected_left) or
			is_too_thin(nodebox.disconnected_back) or
			is_too_thin(nodebox.disconnected_right) or
			is_too_thin(nodebox.disconnected) or
			is_too_thin(nodebox.disconnected_sides)
	end
end

for name, def in futil.table.pairs_by_key(minetest.registered_nodes) do
	if is_nodebox_too_thin(def.node_box) or is_nodebox_too_thin(def.collision_box) then
		print(name)
	end
end

image

an audit showed that only the cottages fences and some chess pieces are too thin: ```lua local thin = 1/16 local function is_box_too_thin(box) local xwidth = box[4] - box[1] local zwidth = box[6] - box[3] return (xwidth > 0 and xwidth < thin) and (zwidth > 0 and zwidth < thin) end local function is_boxes_too_thin(boxes) for i = 1, #boxes do if is_box_too_thin(boxes[i]) then return true end end return false end local function is_too_thin(box_or_boxes) if futil.is_box(box_or_boxes) then return is_box_too_thin(box_or_boxes) elseif futil.is_boxes(box_or_boxes) then return is_boxes_too_thin(box_or_boxes) end end local function is_nodebox_too_thin(nodebox) if not nodebox then return false elseif nodebox.type == "regular" then return false elseif nodebox.type == "fixed" or nodebox.type == "leveled" then return is_too_thin(nodebox.fixed) elseif nodebox.type == "wallmounted" then return is_too_thin(nodebox.wall_top) or is_too_thin(nodebox.wall_bottom) or is_too_thin(nodebox.wall_side) elseif nodebox.type == "connected" then return is_too_thin(nodebox.fixed) or is_too_thin(nodebox.connect_top) or is_too_thin(nodebox.connect_bottom) or is_too_thin(nodebox.connect_front) or is_too_thin(nodebox.connect_left) or is_too_thin(nodebox.connect_back) or is_too_thin(nodebox.connect_right) or is_too_thin(nodebox.disconnected_top) or is_too_thin(nodebox.disconnected_bottom) or is_too_thin(nodebox.disconnected_front) or is_too_thin(nodebox.disconnected_left) or is_too_thin(nodebox.disconnected_back) or is_too_thin(nodebox.disconnected_right) or is_too_thin(nodebox.disconnected) or is_too_thin(nodebox.disconnected_sides) end end for name, def in futil.table.pairs_by_key(minetest.registered_nodes) do if is_nodebox_too_thin(def.node_box) or is_nodebox_too_thin(def.collision_box) then print(name) end end ``` ![image](/attachments/d2800c87-9e4d-4e3b-9a93-30dab7576e9e)
flux added the
4. step/ready to QA test
label 2024-03-26 21:06:47 +00:00
Member

implemented 8c880026fb

implemented https://gitea.your-land.de/your-land/yl_commons/commit/8c880026fb2f3661a3cb4c6857968a8333231b98
Member

i don't think the chess pieces are actually a problem, they've just got some thin decorative bits like e.g. the knight's "ears".

i don't think the chess pieces are actually a problem, they've just got some thin decorative bits like e.g. the knight's "ears".
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: your-land/bugtracker#6565
No description provided.