Объяснить по геодате

Sten4egg

Последний из атеистов
Участник
Сообщения
25
Розыгрыши
0
Репутация
6
Реакции
19
Баллы
875
Хроники
  1. Chaotic Throne: High Five
Сборка
l2jserver
Сборка l2j hf. Регион 18_22
При загрузке файла региона смотрю дебаг в ide. Вот что я понял:

Есть 3 типа объектов, первый FloatBlock - там лежит только одно значение , как я понял смотря в Hd GeoEditor это значение Z. для SUBCELL ?(подскажите)
В объекте ComplexBlock лежит уже массив из 64 значений
И объект MultilayerBlock я еще не встречал , он испольузется где-нибудь ? и для чего?

Как связать значения которые я вижу в объектах FloatBlock, ComplexBlock с данными которые я вижу в GeoEditor ? Помогите понять)
 
Я так понял что в блоке 0,1,2 (2 скрин) есть ячейки с разной высотой , поэтому это ComplexBlock .
В блоке 3 все 64 ячейки на одной высоте поэтому для них пишется просто высота и это FloatBlock


Возник вопрос почему в GeoEditor для 3 блока значение Height совпадает как в GeoEditor так и когда я смотрю при дебаге загрузке сервера значения. А для блоков 0,1,2 нет , например в 0 блоке для 0,0 Cell стоит значение -6897 хотя в едиторе значение для нее должно быть -3456
 
Напишу на будущее для ComplexBlock.
Чтобы получить значение по Z для одной из 64 ячеек в ComplexBlock надо

Java:
    short v = value // значение ячейки из файла 
    v &= 0x0000FFF0
    v >>= 1
    // теперь v это значение Z для ячейки
Дальше надо получить значения NWSE для ячейки.
Java:
    short nswe = value // значение ячейки из файла  (как и вверху)
    nswe &= 0x0000000F;
теперь если значение nswe - то
15полностью открытая ячейка
0полностью закрытая ячейка
14закрыто на E
13закрыто на W
11закрыто на S
7закрыто на N
3закрыто на NS
12закрыто на WE
6закрыто на NE
9закрыто на WS
5закрыто на WN
10закрыто на SE
1закрыто на NWS
2закрыто на NSE
4закрыто на NWE
8закрыто на WSE