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

Sten4egg

Знаменитый
Участник
Сообщения
25
Розыгрыши
0
Репутация
6
Реакции
19
Баллы
1 275
Хроники
  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
 
Назад
Сверху Снизу