[自制] 可以旋转自然奇观的Cheat Map Editor版本

前情提要:Cheat Map Editor旋转摆放自然奇观的方法
https://www.bilibili.com/read/cv22430379
三个月前发了这贴,研究出了cheat map editor旋转自然奇观的方法。可是,虽然方法有了,但真的要实现起来可实在太麻烦了。最近又玩了一盘开局,为了调完美出生地图,反复的进游戏退游戏。如果一个不小心改错了就是两分钟白费,“从水下第一个……”都听吐了。所以还是萌生了直接通过mod本体来实现旋转的想法。
首先研究研究mod界面,不需要大改,只需要看看有没有什么没用的窝囊废元件可以替换即可。显然,background这个复选框是毫无疑问的废物,谁tm关心你mod面板的背景是不是透明的啊?就决定是你了!在mod文件夹里查看CTE_UI.xml,设法找到这个复选框控件,把它改成一个“Rotate”按钮。然后在CTE_UI_TEXT.xml里把与它关联的文字也替换掉。进游戏看看效果。

成功的修改了界面,当然现在这个按钮还不起任何作用,但这个成功还是很鼓舞人的。由于上一贴里已经分析好了摆放自然奇观的机制,所以剩下的就是设计一个“旋转”动作的机制。这个在数学上不难,首先声明一个Rotation变量,在这个Rotate按钮对应的点击函数里对Rotation变量做这样一个操作

很简单的0~5的循环,按一次加1,超限归0。然后通过层层传参,把这个Rotation变量传递到底层的生成自然奇观的函数里,也就是上一贴里讲过的CustomGetMultiTileFeaturePlotList( )函数。然后在函数里作如下思路的改动

在上一贴里我们讲过,这个找相邻格子的GetAdjacentPlot( )函数的最后一个表示方位的参数其实就是0~5的整数,所以经过图中红框里的处理后,就让“名义上的”“东北、东、东南、西南、西、西北”这6个位置也能随着Rotation变量的递增而跟着旋转。
试用一下。进游戏之后放置一个珠穆朗玛峰,默认是“当前-东-东南”的向下三角形。

然后,点击一下“Rotate”按钮,此时后台的Rotation变量已经变成1了,此时再放置一个珠穆朗玛峰,就变成了“当前-东南-西南”的向上三角形了。修改大成功!

有了这个功能,各种2格以上的自然奇观就可以在游戏里随意旋转了,不再需要退出游戏改CME代码,自己画地图的效率大大提升!
PS:根据上一贴的特别说明,约塞米蒂和百内还是不可以旋转,只能“西-东”向,否则游戏里不显示模型。另外,上一贴里提过,巨人堤+两个峡湾,这仨有一个自动判断海陆的机制,会比较智能的选择合适的朝向,但在我看来是比较智障。这次把这仨也一起囊括进来,必须按我指定的方向摆。当然,俩峡湾只能指定三角形的朝向,至于那个峡湾豁口的朝向,游戏里有更深的内置处理,会趋向于让豁口朝着大海开,不必操心。

下载链接:
https://img.nga.178.com/attachments/mon_202306/14/-3jjtlQjuw-i3oK1j.rar?filename=CheatMapEditor%2erar