[自制] 可以旋轉(zhuǎn)自然奇觀的Cheat Map Editor版本

前情提要:Cheat Map Editor旋轉(zhuǎn)擺放自然奇觀的方法
https://www.bilibili.com/read/cv22430379
三個(gè)月前發(fā)了這貼,研究出了cheat map editor旋轉(zhuǎn)自然奇觀的方法??墒?,雖然方法有了,但真的要實(shí)現(xiàn)起來(lái)可實(shí)在太麻煩了。最近又玩了一盤(pán)開(kāi)局,為了調(diào)完美出生地圖,反復(fù)的進(jìn)游戲退游戲。如果一個(gè)不小心改錯(cuò)了就是兩分鐘白費(fèi),“從水下第一個(gè)……”都聽(tīng)吐了。所以還是萌生了直接通過(guò)mod本體來(lái)實(shí)現(xiàn)旋轉(zhuǎn)的想法。
首先研究研究mod界面,不需要大改,只需要看看有沒(méi)有什么沒(méi)用的窩囊廢元件可以替換即可。顯然,background這個(gè)復(fù)選框是毫無(wú)疑問(wèn)的廢物,誰(shuí)tm關(guān)心你mod面板的背景是不是透明的???就決定是你了!在mod文件夾里查看CTE_UI.xml,設(shè)法找到這個(gè)復(fù)選框控件,把它改成一個(gè)“Rotate”按鈕。然后在CTE_UI_TEXT.xml里把與它關(guān)聯(lián)的文字也替換掉。進(jìn)游戲看看效果。

成功的修改了界面,當(dāng)然現(xiàn)在這個(gè)按鈕還不起任何作用,但這個(gè)成功還是很鼓舞人的。由于上一貼里已經(jīng)分析好了擺放自然奇觀的機(jī)制,所以剩下的就是設(shè)計(jì)一個(gè)“旋轉(zhuǎn)”動(dòng)作的機(jī)制。這個(gè)在數(shù)學(xué)上不難,首先聲明一個(gè)Rotation變量,在這個(gè)Rotate按鈕對(duì)應(yīng)的點(diǎn)擊函數(shù)里對(duì)Rotation變量做這樣一個(gè)操作

很簡(jiǎn)單的0~5的循環(huán),按一次加1,超限歸0。然后通過(guò)層層傳參,把這個(gè)Rotation變量傳遞到底層的生成自然奇觀的函數(shù)里,也就是上一貼里講過(guò)的CustomGetMultiTileFeaturePlotList( )函數(shù)。然后在函數(shù)里作如下思路的改動(dòng)

在上一貼里我們講過(guò),這個(gè)找相鄰格子的GetAdjacentPlot( )函數(shù)的最后一個(gè)表示方位的參數(shù)其實(shí)就是0~5的整數(shù),所以經(jīng)過(guò)圖中紅框里的處理后,就讓“名義上的”“東北、東、東南、西南、西、西北”這6個(gè)位置也能隨著Rotation變量的遞增而跟著旋轉(zhuǎn)。
試用一下。進(jìn)游戲之后放置一個(gè)珠穆朗瑪峰,默認(rèn)是“當(dāng)前-東-東南”的向下三角形。

然后,點(diǎn)擊一下“Rotate”按鈕,此時(shí)后臺(tái)的Rotation變量已經(jīng)變成1了,此時(shí)再放置一個(gè)珠穆朗瑪峰,就變成了“當(dāng)前-東南-西南”的向上三角形了。修改大成功!

有了這個(gè)功能,各種2格以上的自然奇觀就可以在游戲里隨意旋轉(zhuǎn)了,不再需要退出游戲改CME代碼,自己畫(huà)地圖的效率大大提升!
PS:根據(jù)上一貼的特別說(shuō)明,約塞米蒂和百內(nèi)還是不可以旋轉(zhuǎn),只能“西-東”向,否則游戲里不顯示模型。另外,上一貼里提過(guò),巨人堤+兩個(gè)峽灣,這仨有一個(gè)自動(dòng)判斷海陸的機(jī)制,會(huì)比較智能的選擇合適的朝向,但在我看來(lái)是比較智障。這次把這仨也一起囊括進(jìn)來(lái),必須按我指定的方向擺。當(dāng)然,倆峽灣只能指定三角形的朝向,至于那個(gè)峽灣豁口的朝向,游戲里有更深的內(nèi)置處理,會(huì)趨向于讓豁口朝著大海開(kāi),不必操心。

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