TilesBrush.xml

Данный файл содержит списки кистей-объектов, представляющих собой связанные между собой тайлы рельефа.
Расположение: по умолчанию располагается в папке клиента, но при желании может быть вручную перемещен в папку профиля.

Общая структура файла

1<?xml version="1.0" ?>
2<TilesBrush>
3    <Brush Id="" Name="" />
4    <Brush Id="" Name="" />
5    <Brush Id="" Name="" />
6</TilesBrush>

Как видно Файл состоит из 1й корневой "секции", в которой находится список объектов кистей "Brush", с уникальным (внутри данного файла) индификатором Id от 1 до 9999 и необязательным атрибутом Name, задающим имя-описание объекта, что будет выводится в списке тайлов.

Допустимые элементы тэга Brush

1        <Land ID="0x219C" Chance="0,4" />
2        <Tile ID="0x219C" Chance="1,5" />
3        <Edge To="0202" />

Данные теги описывают какой-то конкретный тайл с указанным ID в одноименном атрибуте (как в шестнадцатеричном виде так и в десятичном). Тег "Land" описывает тайлы рельфа и их текстуры, тег "Tile" может описывать и то и другое одновременно, благодаря общему ID. В общем случае для тайлов рельефа TileID = LandID. Данные элементы помещаются внутри тегов, описанных в предыдущем пункте, для описания сплошных текстур поверхности. Атрибут "Chance" задает модификатор вероятности размещения тайла, и по умолчанию равен 1.0. Увеличение значения повлияет на то что тайл будет чаще попадаться среди аналогичных, а его уменьшение приведет к обратной ситуации. Для описания текстур переходов используется тег Edge, его единственный обязательный атрибут "To" содержит обязательный индификатор вторичной кисти.

Допустимые элементы тэга Edge

1        <Land Type="UU" ID="0x1318" Chance="1,0" />
2        <Tile Type="UU" ID="0x1318" />

Данные теги описывают какой-то конкретный тайл с указанным ID в одноименном атрибуте (как в шестнадцатеричном виде так и в десятичном). Тег "Land" описывает тайлы рельфа и их текстуры, тег "Tile" может описывать и то и другое одновременно, благодаря общему ID. В общем случае для тайлов рельефа TileID = LandID. Данные элементы помещаются внутри тегов, описанных в предыдущем пункте, для описания сплошных текстур поверхности. Атрибут "Chance" задает модификатор вероятности размещения тайла, и по умолчанию равен 1.0. Увеличение значения повлияет на то что тайл будет чаще попадаться среди аналогичных, а его уменьшение приведет к обратной ситуации. Обязательный атрибут "Type" может принимать одно из следующих значений: "LL", "UU", "DL", "UR", "DR", "UL" - эти значения задают маску текстуры перехода.

Структура хранения кисти

зоны перехода тайла

Каждая кисть характеризуется набором сплошных тайлов, то есть тайлов без переходов, такими тайлами может быть вода, песок, земля, трава и тд. и набором тайлов что задают некоторые переходы, такие тайлы помещаются в вложенный тег "Edge", имеющий атрибут с индификатором вторичной кисти. Тайлы перехода характеризуют переходное состояние между первичной кистью и вторичной: например переход травы в землю или травы в песок. Чтобы понять какая кисть является первичной а какая вторичной следует обратить внимание на атрибут "Type", он описывает маску текстуры или ее поворот. Чтобы получше понять как он получается возьмем тайл и повернем его на 45 градусов влево, в результате получим текстуру (можно сразу взять текстуру тайла, если она имеется). Теперь условно разделим повернутый тайл на 4 части и пронумеруем их как показано на рисунке справа. В каждой четверти будет находится кусок первичной или вторичной текстуры. В данном случае на примере в 1 четверти текстура земли, а в остальных песка. Чтобы было понятнее приведем таблицу соответствия для случая когда первичная кисть у нас скала, а вторичная песок.

Текстура сплошной тайл для первичной кисти - скала тайл перехода для первичной кисти - скала, вторичной кисти - песок тайл перехода для первичной кисти - скала, вторичной кисти - песок тайл перехода для первичной кисти - скала, вторичной кисти - песок тайл перехода для первичной кисти - скала, вторичной кисти - песок тайл перехода для первичной кисти - скала, вторичной кисти - песок тайл перехода для первичной кисти - скала, вторичной кисти - песок
Маска и Тип маска тайла перехода (черный цвет - первичная кисть, белый цвет - вторичная кисть) -- маска тайла перехода (черный цвет - первичная кисть, белый цвет - вторичная кисть) DR маска тайла перехода (черный цвет - первичная кисть, белый цвет - вторичная кисть) DL маска тайла перехода (черный цвет - первичная кисть, белый цвет - вторичная кисть) UL маска тайла перехода (черный цвет - первичная кисть, белый цвет - вторичная кисть) UR маска тайла перехода (черный цвет - первичная кисть, белый цвет - вторичная кисть) LL маска тайла перехода (черный цвет - первичная кисть, белый цвет - вторичная кисть) UU

тайлы перехода для первичной кисти - песок, вторичной кисти - скала

Как видно мы рассмотрели случаи когда первичная кисть занимает следующие четверти: 2-3-4, 1-3-4, 1-2-4, 1-2-3, 1-4, 1-2. Помимо рассмотренных случаев имеются варианты перехода когда первичная кисть занимает четверти 1, 2, 3, 4, 2-3, 3-4 (см рисунок с примером этих тайлов слева). Если присмотреться то станет очевидно что это будут аналогичными тайлами перехода, но уже для случай когда первичная кисть песок, а вторичная скала. Также не стоит забывать что у любого состояния перехода или сплошного тайла может быть много тайлов, что будут выбираться случайным образом при размещении, но один и тот же тайл не разрешается использоваться в нескольких кистях одновременно.

Пример заполнения файла

 1<?xml version="1.0" ?>
 2<TilesBrush>
 3  <Brush Id="0002" Name="Грязь">
 4      <Land ID="0x0071" Chance="0,20" />
 5      <Land ID="0x0072" Chance="0,20" />
 6      <Land ID="0x0073" Chance="0,20" />
 7      <Land ID="0x0074" Chance="0,20" />     
 8      <Land ID="0x0075" />
 9      <Land ID="0x0076" />
10      <Land ID="0x0077" />
11      <Land ID="0x0078" />    
12      <Edge To="0202" >    <!-- Пустошь -->
13        <Land Type="LL" ID="0x1317" />    
14        <Land Type="UU" ID="0x1318" />    
15        <Land Type="DL" ID="0x1319" />
16        <Land Type="UR" ID="0x131A" />    
17        <Land Type="DR" ID="0x131B" />     
18        <Land Type="UL" ID="0x131C" />
19      </Edge>
20      <Edge To="0203" >    <!-- Трава -->  
21        <Land Type="UL" ID="0x0079" />
22        <Land Type="DR" ID="0x007A" />
23        <Land Type="UR" ID="0x007B" />    
24        <Land Type="DL" ID="0x007C" />
25        <Land Type="UU" ID="0x0085" />     
26        <Land Type="UU" ID="0x0086" />
27        <Land Type="LL" ID="0x0087" />
28        <Land Type="LL" ID="0x0088" />
29      </Edge>
30  </Brush>
31  <Brush Id="0202" Name="Пустошь">
32      <Land ID="0x127B" />
33      <Land ID="0x127C" />
34      <Land ID="0x127D" />
35      <Land ID="0x127E" />
36      <Edge To="0002" >    <!-- Грязь -->  
37        <Land Type="UU" ID="0x1315" />    
38        <Land Type="LL" ID="0x1316" />    
39        <Land Type="DR" ID="0x131D" />
40        <Land Type="UL" ID="0x131E" />    
41        <Land Type="DL" ID="0x131F" />      
42        <Land Type="UR" ID="0x1320" />
43      </Edge>
44      <Edge To="0203" >    <!-- Трава -->    
45        <Land Type="LL" ID="0x129C" />     
46        <Land Type="UU" ID="0x129E" />     
47        <Land Type="DL" ID="0x129F" />     
48        <Land Type="UR" ID="0x12A0" />      
49        <Land Type="UL" ID="0x12A1" />      
50        <Land Type="DR" ID="0x12A2" />
51      </Edge>
52  </Brush>
53  <Brush Id="0203" Name="Трава">
54      <Land ID="0x0003" />
55      <Land ID="0x0004" />
56      <Land ID="0x0005" />
57      <Land ID="0x0006" />      
58      <Edge To="0202" >    <!-- Пустошь -->
59        <Land Type="UL" ID="0x1297" />    
60        <Land Type="UR" ID="0x1298" />    
61        <Land Type="DR" ID="0x1299" />
62        <Land Type="DL" ID="0x129A" />     
63        <Land Type="LL" ID="0x129B" />     
64        <Land Type="UU" ID="0x129D" />
65      </Edge>
66      <Edge To="0002" >    <!-- Грязь -->    
67        <Land Type="UL" ID="0x007D" />
68        <Land Type="DR" ID="0x007E" />
69        <Land Type="UR" ID="0x0082" />
70        <Land Type="DL" ID="0x0083" />
71        <Land Type="LL" ID="0x0089" />
72        <Land Type="LL" ID="0x008A" />
73        <Land Type="UU" ID="0x008B" />
74        <Land Type="UU" ID="0x008C" />
75      </Edge>
76  </Brush>
77</TilesBrush>