- IP属地
- 未知
- 2019/11/05
- 16
- 13
- 勋章
- 1
- · 发布于未知
因为Terraria Wiki在这方面的内容存在许多明显错误,而问这个的人也很多,所以在此科普一下。
本文内容的主要参考资料为游戏源码,因此请放心食用。
如果本文出错,请及时指正。
本文受到https://www.bbstr.net/threads/157/ 一文的启发。
你可以通过下面的索引快速翻到想要了解的部分;当然,我更推荐仔细阅读全文。
1.这个房间太小/太大了——一、房屋大小
2.这个房间少了一面墙——二、背景墙
3.这个房屋缺少光源/桌子/椅子/门——三、家具要求
4.此房屋已腐化/这不是有效的房屋——四、环境和站立点
5.我们需要为此提供更好的文本!!!(TooCloseToWorldEdge)
本文中会反复出现的一些概念:
物块(Block):一般来说那种四四方方的填满一个格子的固体就是block,比如泥土和木头。我不知道如何解释这个概念,不过在这里你只需要知道它不包括平台就行
实心块(Solid Tile):这里指平台和物块。包括平台!包括平台!包括平台!
前景物品(Tile):和物块在同一个“图层”上的所有物品,如物块、平台、家具、树干、植物、木梁等。Tile通常译作“图格”,但我感觉可能会有歧义,因此这里翻译为“前景物品”。
这些概念是我自己总结的,名称也是我自己靠感觉翻译的,因此可能与其他人的用法不同。
一、房屋大小
计算方法(dfs):
从你鼠标点击的格子开始,向上、下、左、右、左上、右上、左下、右下搜索
(当然,如果你点击的格子放了个实心块,那就会直接停止搜索,并显示“这是个实心块”)
如果搜到的格子有实心块,那么计数器+1,直接返回上一层,继续搜索上一格子的其他方向;
如果搜到的格子没有实心块,那么计数器+1,继续从当前格子向八个方向搜索。
如果计数器的值=750,结束搜索;如果<750,继续搜索;
搜索结束时,计数器的值即为房屋的大小。
换一种说法:
实心块在上、下、左、右四个方向上连接,最后围成一个封闭框架。封闭框架所围成的空间的格数,以及框架本身的格数加起来,就是房屋的大小。
※注意:对回字形套娃房间来说,中间的空心不计入房屋大小,但中间的框架计入。
※注意:只有实心块可以分割房间。绳、藤蔓等不能分割房间。
一些图例:
1.常见火柴盒/监狱的尺寸:
2.这两个房屋由于边框没有封闭,所以实际上是一个房屋:
3.由于绳不能分割房间,上下两层实际上是一个房屋:
4.因为中间被平台隔开,所以整个空间被划为两个不合格的小房屋:
5.这是一个6×10的合格火柴盒。但如果在墙角放一个物块,房屋的边框会随之发生变化,使房屋的大小变为59,因此过小而不合格。
二、背景墙
(※铅栅栏可以用作NPC房屋的墙壁)
由于函数执行顺序的原因,这条的优先级相当高。
因此,当你查询一个框架不封闭的空间,或者直接在空的地方查询的时候,也会提示“这个房间少了一面墙”。
如果背景墙的填充方式没有问题,但依然显示此条错误讯息,可以检查一下框架是否封闭、有没有使用无法作为NPC房屋背景墙的背景墙。
一些例子
左面的房屋不合格,因为有一个超过五格的漏洞;但右面的房屋合格,虽然这个漏洞很大,但所有连续一排或者连续一列的漏洞都没有超过4格:
检查一个框架不封闭的房间时,有时也会显示“这个房间少了一面墙”:
由于实心块可以分割漏洞,但不会分割房间,因此以下的房屋是合格的:
(发明者:贴吧@_西瓜泡泡 )
(发明者:我自己)
※注意:这种房屋不会主动吸引NPC入住,需要手动分配,在开荒中最好谨慎选择
本文内容的主要参考资料为游戏源码,因此请放心食用。
如果本文出错,请及时指正。
本文受到https://www.bbstr.net/threads/157/ 一文的启发。
你可以通过下面的索引快速翻到想要了解的部分;当然,我更推荐仔细阅读全文。
1.这个房间太小/太大了——一、房屋大小
2.这个房间少了一面墙——二、背景墙
3.这个房屋缺少光源/桌子/椅子/门——三、家具要求
4.此房屋已腐化/这不是有效的房屋——四、环境和站立点
5.我们需要为此提供更好的文本!!!(TooCloseToWorldEdge)
- ——我暂时没找到触发这条经典翻译错误(?)提示的方法,即使是把房屋挤在世界角落里也依然合格,不知为何。
本文中会反复出现的一些概念:
物块(Block):一般来说那种四四方方的填满一个格子的固体就是block,比如泥土和木头。我不知道如何解释这个概念,不过在这里你只需要知道它不包括平台就行
实心块(Solid Tile):这里指平台和物块。包括平台!包括平台!包括平台!
前景物品(Tile):和物块在同一个“图层”上的所有物品,如物块、平台、家具、树干、植物、木梁等。Tile通常译作“图格”,但我感觉可能会有歧义,因此这里翻译为“前景物品”。
这些概念是我自己总结的,名称也是我自己靠感觉翻译的,因此可能与其他人的用法不同。
一、房屋大小
- 合格条件:60≤房屋格数(包括边框)<750
计算方法(dfs):
从你鼠标点击的格子开始,向上、下、左、右、左上、右上、左下、右下搜索
(当然,如果你点击的格子放了个实心块,那就会直接停止搜索,并显示“这是个实心块”)
如果搜到的格子有实心块,那么计数器+1,直接返回上一层,继续搜索上一格子的其他方向;
如果搜到的格子没有实心块,那么计数器+1,继续从当前格子向八个方向搜索。
如果计数器的值=750,结束搜索;如果<750,继续搜索;
搜索结束时,计数器的值即为房屋的大小。
换一种说法:
实心块在上、下、左、右四个方向上连接,最后围成一个封闭框架。封闭框架所围成的空间的格数,以及框架本身的格数加起来,就是房屋的大小。
※注意:对回字形套娃房间来说,中间的空心不计入房屋大小,但中间的框架计入。
※注意:只有实心块可以分割房间。绳、藤蔓等不能分割房间。
一些图例:
1.常见火柴盒/监狱的尺寸:
2.这两个房屋由于边框没有封闭,所以实际上是一个房屋:
3.由于绳不能分割房间,上下两层实际上是一个房屋:
4.因为中间被平台隔开,所以整个空间被划为两个不合格的小房屋:
5.这是一个6×10的合格火柴盒。但如果在墙角放一个物块,房屋的边框会随之发生变化,使房屋的大小变为59,因此过小而不合格。
二、背景墙
- 合格条件:不需要铺满,但不能存在连续一排或一列的长度超过4格的漏洞
(※铅栅栏可以用作NPC房屋的墙壁)
- 这里的“天然墙”指的是用锤子敲会碎掉且不产生掉落的墙,以及天然生成的地牢墙(手动放置的不算)
由于函数执行顺序的原因,这条的优先级相当高。
因此,当你查询一个框架不封闭的空间,或者直接在空的地方查询的时候,也会提示“这个房间少了一面墙”。
如果背景墙的填充方式没有问题,但依然显示此条错误讯息,可以检查一下框架是否封闭、有没有使用无法作为NPC房屋背景墙的背景墙。
一些例子
左面的房屋不合格,因为有一个超过五格的漏洞;但右面的房屋合格,虽然这个漏洞很大,但所有连续一排或者连续一列的漏洞都没有超过4格:
检查一个框架不封闭的房间时,有时也会显示“这个房间少了一面墙”:
由于实心块可以分割漏洞,但不会分割房间,因此以下的房屋是合格的:
(发明者:贴吧@_西瓜泡泡 )
(发明者:我自己)
※注意:这种房屋不会主动吸引NPC入住,需要手动分配,在开荒中最好谨慎选择