Редактирование:StructuresAPI

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
 +
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
 +
StructuresAPI - библиотека, упрощающая работу со структурами.
 +
 +
'''''ВАЖНО!:''' Документация по версии 1.2 не полная''
 
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
 
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
StructuresAPI - библиотека, упрощающая работу со структурами.
+
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
 
<div class="mw-parser-output">
 
<div class="mw-parser-output"><div class="mw-parser-output">
 
<div class="mw-parser-output"><div class="mw-parser-output">
 
 
== Загрузка ==
 
== Загрузка ==
  
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 500px;"
 
|-
 
|-
 
! colspan="3" scope="col" | '''Библиотека'''
 
! colspan="3" scope="col" | '''Библиотека'''
Строка 36: Строка 36:
 
*Библиотека переписана. Объект StructuresAPI устарел.  
 
*Библиотека переписана. Объект StructuresAPI устарел.  
 
*Сохраняется содержимое сундуков, печей и воронок  
 
*Сохраняется содержимое сундуков, печей и воронок  
 
|-
 
| style="width: 64px; text-align: center;" | '''1.3'''
 
| style="width: 114px; text-align: center;" | [https://vk.com/wall-80513593_2305 Подробнее]
 
| style="width: 304px;" |
 
*StructuresAPI удален.
 
*Добавлен объект Rotate. Используется для сложных поворотов.
 
*Метод структуры get был изменен. struct.get(x, y, z, rotates, return_index).
 
*Метод структуры set был изменен. struct.set(x, y, z, rotate, progressively, time).
 
*Добавлен метод destroy(x, y, z, rotates, progressively, time) для структуры.
 
*Добавлен метод check(...) для структуры. Эквивалентен методу get(...).
 
*Добавлен метод Structure.setInWorld(name, ...). Альтернатива Structure.get(name).set(...).
 
*Добавлен метод Structure.destroyInWorld(name, ...). Альтернатива Structure.get(name).destroy(...).
 
*Добавлены константы Structure.PROGRESSIVELY и Structure.NOT_PROGRESSIVELY.
 
*Добавлены константы Structure.MIRROR_X, Structure.MIRROR_Y и Structure.MIRROR_Z.
 
*Исправлена установка блоков добавленных модом.
 
*Исправлено сохранение предметов и блоков.
 
*Исправлен поворот на 180 градусов по Y.
 
*Сохраняются TileEntity
 
 
|-
 
| style="width: 64px; text-align: center;" | '''1.4'''
 
| style="width: 114px; text-align: center;" | [https://vk.com/wall-80513593_2410 Подробнее]
 
| style="width: 304px;" |
 
*Дополнен перевод.&nbsp;
 
*Установка структуры производится в потоке, только если установка в режиме Structure.PROGRESSIVELY.&nbsp;
 
*Блоки воздуха в структуре больше не заменяются на камень.
 
  
 
|-
 
|-
Строка 69: Строка 42:
 
| style="width: 304px;" | &nbsp;
 
| style="width: 304px;" | &nbsp;
 
|}
 
|}
</div> </div>
+
</div> </div> </div>
  
 
== Условия использования ==
 
== Условия использования ==
Строка 100: Строка 73:
 
*''-y&nbsp;n&nbsp;''- Установить центр структуры в координате n&nbsp;по Y  
 
*''-y&nbsp;n&nbsp;''- Установить центр структуры в координате n&nbsp;по Y  
 
*''-z&nbsp;n&nbsp;''- Установить центр структуры в координате n&nbsp;по Z  
 
*''-z&nbsp;n&nbsp;''- Установить центр структуры в координате n&nbsp;по Z  
 +
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
==== Через код ====
 
==== Через код ====
Строка 124: Строка 98:
 
*name - Имя структуры  
 
*name - Имя структуры  
 
*structures - Массив данных о блоках  
 
*structures - Массив данных о блоках  
</div> <div class="mw-parser-output">
+
 
 +
&nbsp;
 +
</div>
 +
 
 +
<div class="mw-parser-output">
 
=== Проверка структур ===
 
=== Проверка структур ===
  
Строка 172: Строка 150:
 
});
 
});
 
</syntaxhighlight>
 
</syntaxhighlight>
</div> <div class="mw-parser-output"><div class="mw-parser-output">
+
</div>
 +
 
 
=== Полный перечень методов и констант ===
 
=== Полный перечень методов и констант ===
<div class="mw-parser-output"><div class="mw-parser-output">
+
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
==== Structure ====
+
==== Методы StructuresAPI ====
  
<span style="color:#f39c12;">Добавлен с версии 1.2</span>
+
<span style="color:#c0392b;">'''''Считается устаревшим с версии 1.2'''''</span>
<div class="mw-parser-output"><div class="mw-parser-output">
 
===== Методы =====
 
 
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 
|-
 
! scope="col" | Версия
 
! scope="col" style="width: 115px;" | Метод
 
! scope="col" style="width: 248px;" | '''Аргументы'''
 
! scope="col" | '''Описание'''
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| style="width: 115px;" | init(string path)
 
| style="width: 248px;" |
 
*path - Путь к папке со структурами
 
 
 
| Устанавливает место хранения структур, относительно мода
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| style="width: 115px;" | get(string name)
 
| style="width: 248px;" |
 
*name - Имя структуры
 
 
 
| Возвращает экземпляр объекта Structure с именем ''name''
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| style="width: 115px;" | setInWorld(string name, int x, int y, int z, array rotate, bool progressively, int time)
 
| style="width: 248px;" |
 
*name - Имя структуры
 
*x - Начальная координата структуры по оси X
 
*y - Начальная координата структуры по оси Y
 
*z - Начальная координата структуры по оси Z
 
*rotate - Массив матриц поворотов
 
*progressively -&nbsp;Если true, структура будет постепенно "строиться"
 
*time -&nbsp;Время в миллисекундах между установкой блоков
 
 
 
| Установить структуру ''name'' в мире по координатам ''x,y,z'', с выбраным рандомно поворотм из массива ''rotate''
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| style="width: 115px;" | destroyInWorld(string name, int x, int y, int z, array rotates, bool progressively, int time)
 
| style="width: 248px;" |
 
*name - Имя структуры
 
*x - Начальная координата структуры по оси X
 
*y - Начальная координата структуры по оси Y
 
*z - Начальная координата структуры по оси Z
 
*rotates - Возможные повороты структуры
 
*progressively -&nbsp;Если true, структура будет постепенно "строиться"
 
*time -&nbsp;Время в миллисекундах между установкой блоков
 
 
 
| Установить структуру ''name'' в мире по координатам ''x,y,z'', &nbsp;с возможными поворотами ''rotates''
 
|}
 
<div class="mw-parser-output">&nbsp;</div> </div>
 
===== Константы =====
 
 
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 
|-
 
| style="text-align: center;" | '''Версия'''
 
| style="text-align: center;" | '''Константа'''
 
| style="text-align: center;" | '''Описание'''
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_NONE
 
| &nbsp;
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_90Y
 
| Матрица поворота по оси Y на 90<sup>о</sup>
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_180Y
 
| Матрица поворота по оси Y на 180<sup>о</sup>
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_270Y
 
| Матрица поворота по оси Y на 270<sup>о</sup>
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_90X
 
| Матрица поворота по оси X на 90<sup>о</sup>
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_180X
 
| Матрица поворота по оси X на 180<sup>о</sup>
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_270X
 
| Матрица поворота по оси X на 270<sup>о</sup>
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_90Z
 
| Матрица поворота по оси Z на 90<sup>о</sup>
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_180Z
 
| Матрица поворота по оси Z на 180<sup>о</sup>
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_270Z
 
| Матрица поворота по оси Z на 270<sup>о</sup>
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_RANDOM
 
| Рандомный поворот
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_ALL
 
| Поворот по всем осям
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| ROTATE_Y
 
| Поворот по оси Y
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| PROGRESSIVELY
 
| Установка/уничтожение постройки постепенное
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| NOT_PROGRESSIVELY
 
| Установка/уничтожение постройки не постепенное
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| MIRROR_X
 
| Отражение по оси X
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| MIRROR_Y
 
| Отражение по оси Y
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| MIRROR_Z
 
| Отражение по оси Z
 
|}
 
</div> <div class="mw-parser-output">
 
===== Экземпляр&nbsp;Structure =====
 
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 
|-
 
| style="text-align: center;" | '''Версия'''
 
| style="text-align: center;" | '''Метод'''
 
| style="text-align: center;" | '''Аргументы'''
 
| style="text-align: center;" | '''Описание'''
 
|-
 
| style="text-align: center;" | <span style="color:#e74c3c;">'''Только 1.2'''</span>
 
| style="text-align: center;" | get(int x, int y, int z, bool rotate_y)
 
|
 
*x - Начальная координата структуры по оси X
 
*y - Начальная координата структуры по оси Y
 
*z - Начальная координата структуры по оси Z
 
*rotate_y - Структура может быть повернута только по оси Y
 
 
 
| &nbsp;Вернет true, если на координатах данная структура, иначе false
 
|-
 
| colspan="1" rowspan="2" style="text-align: center;" | '''1.3'''
 
| style="text-align: center;" | get(int x, int y, int z, array rotates, bool return_index)
 
| colspan="1" rowspan="2" |
 
*x - Начальная координата структуры по оси X
 
*y - Начальная координата структуры по оси Y
 
*z - Начальная координата структуры по оси Z
 
*rotates - Возможные повороты структуры
 
*return_index - Возвращать ли индекс найденного поворота(По стандарту false)
 
 
 
| colspan="1" rowspan="2" | Вернет true, если на координатах данная структура, иначе false
 
|-
 
| style="text-align: center;" | check(int x, int y, int z, array rotates, bool return_index)
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| style="text-align: center;" | getName()
 
| &nbsp;
 
| Вернет имя структуры
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| style="text-align: center;" | save()
 
| &nbsp;
 
| Сохранить структуру в файл
 
|-
 
| style="text-align: center;" | <span style="color:#e74c3c;">'''Только 1.2'''</span>
 
| style="text-align: center;" | set(int x, int y, int z, array rotate, bool destroy, bool progressively, int time)
 
|
 
*x - Начальная координата структуры по оси X
 
*y - Начальная координата структуры по оси Y
 
*z - Начальная координата структуры по оси Z
 
*rotate - Массив матриц поворотов
 
*destroy -&nbsp;Если true, структура будет "уничтожаться"
 
*progressively -&nbsp;Если true, структура будет постепенно "строиться/уничтожаться"
 
*time -&nbsp;Время в миллисекундах между установкой/уничтожением блоков
 
 
 
| Установить структурув мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| style="text-align: center;" | set(int x, int y, int z, array rotate, bool progressively, int time)
 
|
 
*x - Начальная координата структуры по оси X
 
*y - Начальная координата структуры по оси Y
 
*z - Начальная координата структуры по оси Z
 
*rotate - Массив матриц поворотов
 
*progressively -&nbsp;Если true, структура будет постепенно "строиться"
 
*time -&nbsp;Время в миллисекундах между установкой блоков
 
 
 
| Установить структурув мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| style="text-align: center;" | destroy(int x, int y, int z, array rotates, bool progressively, int time)
 
|
 
*x - Начальная координата структуры по оси X
 
*y - Начальная координата структуры по оси Y
 
*z - Начальная координата структуры по оси Z
 
*rotates - Возможные повороты структуры
 
*progressively -&nbsp;Если true, структура будет постепенно "уничтожаться"
 
*time -&nbsp;Время в миллисекундах между уничтожением&nbsp;блоков
 
 
 
| Уничтожить структуру в мире&nbsp;по координатам x,y,z, с возможными поворотами rotates
 
|-
 
| style="text-align: center;" | '''1.2'''
 
| style="text-align: center;" | addBlock(x, y, z, block)
 
|
 
*x - Координата структуры по оси X относительно нулевой координаты структуры
 
*y - Координата структуры по оси Y относительно нулевой координаты структуры
 
*z - Координата структуры по оси Z относительно нулевой координаты структуры
 
*block - Блок
 
**id - ID блока
 
**data - Data блока 
 
 
 
| &nbsp;Добавить блок в структуру
 
|}
 
</div> </div> </div> </div> </div> <div class="mw-parser-output">&nbsp;</div> </div>
 
 
 
<div class="mw-parser-output">
 
==== Rotate ====
 
 
 
<span style="color:#f39c12;">Добавлен с версии 1.3</span>
 
 
 
Объект Rotate позволяет задовать сложные повороты, которые будут выполнятся при поиске/уничтожении/установке структуры.
 
<syntaxhighlight lang="JavaScript">var rotate = new Rotate();
 
rotate.addRotate(Structure.ROTATE_90Y);
 
rotate.addRotate(Structure.ROTATE_90X);</syntaxhighlight>
 
 
 
Данный код позволит повернуть структуру сначала на 90 градусов по оси Y, затем по оси X.
 
 
 
===== экземпляр&nbsp;Rotate =====
 
 
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 
|-
 
! scope="col" | Версия
 
! scope="col" | Метод
 
! scope="col" | Аргументы
 
! scope="col" | Описание
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| addRotate(array rotate)
 
| colspan="1" rowspan="2" |
 
*rotate - Матрица поворота или экземпляр&nbsp;Rotate
 
 
 
| colspan="1" rowspan="2" | Добавить поворот
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| add(array rotate)
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| addRotates(array rotates)
 
| colspan="1" rowspan="2" |
 
*rotates - Массив митриц и экземпляров Rotate
 
 
 
| colspan="1" rowspan="2" | Добавить повороты в указанном порядке
 
|-
 
| style="text-align: center;" | '''1.3'''
 
| adds(array rotates)
 
|}
 
 
 
&nbsp;
 
</div>
 
 
 
==== StructuresAPI ====
 
 
 
<span style="color:#c0392b;">'''''Считается устаревшим с версии 1.2<br/> Удален в&nbsp;версии 1.3'''''</span>
 
 
 
===== Методы =====
 
  
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
Строка 524: Строка 228:
 
| style="width: 332px;" | Установить структуру name в мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
 
| style="width: 332px;" | Установить структуру name в мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
 
|}
 
|}
 
 
</div>
 
</div>
  
===== Константы =====
+
==== Константы ====
  
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
Строка 573: Строка 276:
 
| style="width: 824px;" | Поворот по оси Y
 
| style="width: 824px;" | Поворот по оси Y
 
|}
 
|}
 
+
</div> </div> </div> </div> </div> </div>
</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>
 
</div>
 

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.3 или более поздняя (см. Mineprogramming wiki:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!