{TRANSITION_COMPLETE_L (Ms,Ha) (W*,S*) -171 hills/snow-to-water}
搜索TRANSITION_COMPLETE_L宏定义,
#define TRANSITION_COMPLETE_L TERRAINLIST ADJACENT LAYER IMAGESTEM {TRANSITION_COMPLETE_LFB ({TERRAINLIST}) ({ADJACENT}) ({LAYER}) transition IMAGE_SINGLE ({IMAGESTEM})} #enddef
代入参数后
TRANSITION_COMPLETE_LFB (Ms,Ha) (W*,S*) -171 transition IMAGE_SINGLE (hills/snow-to-water)
搜索TRANSITION_COMPLETE_L宏定义,
#define TRANSITION_COMPLETE_LFB TERRAINLIST ADJACENT LAYER FLAG BUILDER IMAGESTEM {BORDER_COMPLETE_LFB ({TERRAINLIST}) ({ADJACENT}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})} #enddef
代入参数后
BORDER_COMPLETE_LFB (Ms,Ha) (W*,S*) -171 transition IMAGE_SINGLE (hills/snow-to-water)
搜索BORDER_COMPLETE_LFB宏定义,它由六条宏组成。
#define BORDER_COMPLETE_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM {BORDER_RESTRICTED6_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) {LAYER} {FLAG} {BUILDER} {IMAGESTEM}} {BORDER_RESTRICTED5_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) {LAYER} {FLAG} {BUILDER} {IMAGESTEM}} {BORDER_RESTRICTED4_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) {LAYER} {FLAG} {BUILDER} {IMAGESTEM}} {BORDER_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) {LAYER} {FLAG} {BUILDER} {IMAGESTEM}} {BORDER_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) {LAYER} {FLAG} {BUILDER} {IMAGESTEM}} {BORDER_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) {LAYER} {FLAG} {BUILDER} {IMAGESTEM}} #enddef
看第一条BORDER_RESTRICTED6_RANDOM_LFB。
#define BORDER_RESTRICTED6_RANDOM_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM {BORDER_RESTRICTED6_PLFB ({TERRAIN}) ({ADJACENT}) 100 {LAYER} {FLAG} {BUILDER} {IMAGESTEM}@V} #enddef
代入参数后
BORDER_RESTRICTED6_PLFB (Ms,Ha) (W*,S*) 100 -171 transition IMAGE_SINGLE hills/snow-to-water@V --- #define BORDER_RESTRICTED6_PLFB TERRAINLIST ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM [terrain_graphics] map=" , 2 7, 3 , 1 6, 4 , 5" [tile] pos=1 type={ADJACENT} set_no_flag={FLAG}-@R[0~3] [/tile] [tile] pos=2 type={TERRAINLIST} set_no_flag={FLAG}-@R3 [/tile] [tile] pos=3 type={TERRAINLIST} set_no_flag={FLAG}-@R4 [/tile] [tile] pos=4 type={TERRAINLIST} set_no_flag={FLAG}-@R5 [/tile] [tile] pos=5 type={TERRAINLIST} set_no_flag={FLAG}-@R0 [/tile] [tile] pos=6 type={TERRAINLIST} set_no_flag={FLAG}-@R1 [/tile] [tile] pos=7 type={TERRAINLIST} set_no_flag={FLAG}-@R2 [/tile] [image] layer={LAYER} name={BUILD_IMAGE {BUILDER} {IMAGESTEM} -@R0-@R1-@R2-@R3-@R4-@R5} variations=";2;3;4;5;6;7;8;9;10;11" center=90,144 [/image] probability={PROB} rotations=n,ne,se,s,sw,nw [/terrain_graphics] #enddef
这是使用了旋转模板的构造规则,要旋转6个角度,会产生6条规则。
条件
中心格子的地形须匹配(W*,S*),即水或沼泽,周围格子的地形须匹配(Ms,Ha),即山岭(snow_mountains)或丘陵(snow_hills)。
在锚点“2”处它判断的标志是“transition-s”,对锚点“1”来说,“2”应该是北,即“n”,[color=Blue]这个方向是以锚点“2”的观点说的,锚点“2”的格子是否有了向“南”的过渡带。[/color]
锚点“2”在六个方向上须要过渡带,这里是放置“南”向的而已。
操作
它会执行两类操作:放置图像,在相关格子设置标志。
[image]块指示了如何放置图像。BUILD_IMAGE也是一个宏。
#define BUILD_IMAGE BUILDER IMAGESTEM POSTFIX {{BUILDER} {IMAGESTEM} {POSTFIX}} #enddef
代入后
{IMAGE_SINGLE hills/snow-to-water@V -@R0-@R1-@R2-@R3-@R4-@R5}
IMAGE_SINGLE也是一个宏。
#define IMAGE_SINGLE IMAGESTEM POSTFIX {IMAGESTEM}{POSTFIX}.png enddef
代入参数,形成的[image]块中name字段值。
name = hills/snow-to-water@V-@R0-@R1-@R2-@R3-@R4-@R5.png
注
- @R0--@R5会有“rotations”中值来代替,即“n,ne,se,s,sw,nw”。
- @V会被“variations”中的值来代替,即“;2;3;4;5;6;7;8;9;10;11”,在任一时刻只能选它们中的某个值。
- 最后有效的文件名类似hills/snow-to-water-n-ne-se-s-sw-nw.png、hills/snow-to-water8-ne-se-s-sw-nw-n.png。
图像实例

hills/snow-to-water8-ne-se-s-sw-nw-n.png。注:这图像是我为调试特意加的,只是让看到叠加后是什么效果。

规则概述
旋转角度是0时:[color=Blue]中心格子的地形须匹配(W*,S*),即水或沼泽,周围格子的地形须匹配(Ms,Ha),即山岭(snow_mountains)或丘陵(snow_hills),一旦满足条件后会放置图像,这图像在12个图像中随机取,snow-to-water-n-ne-se-s-we-nw.png、snow-to-water2-n-ne-se-s-sw-nw.png,一直到snow-to-water11-n-ne-se-s-we-nw.png。[/color]
以上只是BORDER_COMPLETE_LFB第一条宏、旋转角度是0的规则,BORDER_COMPLETE_LFB还有五条宏。
争抢过渡带
对一个格子,它会有六个方向过来的过渡,一般用6个标记表示:transition-n、transition-ne、transition-se、transition-s、transition-sw、transition-nw。
争抢过渡带是指谁先占掉相关标记。
当在一个方向放置了过渡带,那么是在相关两格子各放了一标记,这两标记方向相反。
#define BORDER_RESTRICTED_PLFB TERRAINLIST ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM [terrain_graphics] map=" , 2 * , * , 1 * , * , *" [tile] pos=1 type={ADJACENT} set_no_flag={FLAG}-@R0 [/tile] [tile] pos=2 type={TERRAINLIST} set_no_flag={FLAG}-@R3 [/tile] [image] layer={LAYER} name={BUILD_IMAGE {BUILDER} {IMAGESTEM} -@R0} variations=";2;3;4;5;6;7;8;9;10;11" center=90,144 [/image] probability={PROB} rotations=n,ne,se,s,sw,nw [/terrain_graphics] #enddef
以上是pos=2(Ms,Ha)到pos=1(W*,S*)过渡,在pos=2会设上transition-s,pos=1设置transition-n。
- nw:North West西北
- n:North北
- ne:North East东北
- se:South East东南
- s:South南
- sw:South West西南
过渡带图一般中心对齐,中心点是(90, 144)。
过渡带图片命名一般以着<terrain1>-to-<terrain2>-<d1>-<d2>.png这种格式,语义上表示从terrain1过渡到terrain2、在terrain2所在格子要画的从d1、d2方向来的过渡。
- snow-to-water-n-ne:“雪”地形过渡到“水”,在“水”所在格子要画的从北、东北来的过渡。
- regular-to-water-nw-n.png:“粗糙”地形过渡到“水”,在在“水”所在格子要画的从西北、北来的过渡。
文件名 | 地形1 | 地形2 |
snow-to-water | Ms, Ha | W*,S* |
regular-to-water | Mm,Hh | Ai,W*,S* |
table