StructuresAPI — различия между версиями

м
м
 
(не показано 27 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
+
<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">
 
== Загрузка ==
 
== Загрузка ==
  
{| border="1" cellpadding="1" cellspacing="1" style="width: 500px;"
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 
|-
 
|-
 
! colspan="3" scope="col" | '''Библиотека'''
 
! colspan="3" scope="col" | '''Библиотека'''
Строка 12: Строка 16:
 
|-
 
|-
 
| style="width: 64px; text-align: center;" | '''1'''
 
| style="width: 64px; text-align: center;" | '''1'''
| style="width: 114px; text-align: center;" | Скачать
+
| style="width: 114px; text-align: center;" | [https://vk.com/wall-80513593_2254 Скачать]
 
| style="width: 304px;" |  
 
| style="width: 304px;" |  
 
Первая версия
 
Первая версия
  
 +
|-
 +
| style="width: 64px; text-align: center;" | '''1.1'''
 +
| style="width: 114px; text-align: center;" | [https://vk.com/wall-80513593_2300 Подробнее]
 +
| style="width: 304px;" |
 +
*Добавлен метод StructuresAPI.init(string NameFolder) - Задает папку со структурами.
 +
*Изменен метод StructuresAPI.set(name, x, y, z, rotate, destroy, progressively, time) - Добавлены параметры (Автор ToxesFoxes)
 +
**destroy - Если true, структура будет "уничтожаться"
 +
**progressively - Если true, структура будет постепенно "строиться/уничтожаться"
 +
**time - Время в миллисекундах между установкой/уничтожением блоков 
 +
 +
|-
 +
| style="width: 64px; text-align: center;" | '''1.2'''
 +
| style="width: 114px; text-align: center;" | [https://vk.com/wall-80513593_2301 Подробнее]
 +
| style="width: 304px;" |
 +
*Библиотека переписана. Объект 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;
 +
*Блоки воздуха в структуре больше не заменяются на камень.
 +
 +
|-
 +
| style="width: 64px; text-align: center;" | '''GitHub'''
 +
| style="width: 114px; text-align: center;" | [https://github.com/Wolf-Team/Libraries/blob/master/StructuresAPI.js '''GitHub''']
 +
| style="width: 304px;" | &nbsp;
 
|}
 
|}
</div>
+
</div> </div>
  
<div class="mw-parser-output">
 
 
== Условия использования ==
 
== Условия использования ==
  
Строка 27: Строка 78:
  
 
Используя данный продукт&nbsp;вы автоматически соглашаетесь с этими правилами
 
Используя данный продукт&nbsp;вы автоматически соглашаетесь с этими правилами
</div>
+
</div>  
 
 
 
== Документация ==
 
== Документация ==
 
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
=== Инициализация ===
 
=== Инициализация ===
Строка 37: Строка 86:
 
<syntaxhighlight lang="JavaScript">IMPORT("StructuresAPI");
 
<syntaxhighlight lang="JavaScript">IMPORT("StructuresAPI");
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
+
</div> <div class="mw-parser-output">
 
 
<div class="mw-parser-output">
 
 
=== Сохранение структур ===
 
=== Сохранение структур ===
  
Строка 53: Строка 100:
 
*''-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">
 
==== Через код ====
 
==== Через код ====
  
 
'''''!Не рекомендуется'''''
 
'''''!Не рекомендуется'''''
 +
 +
1. Создать или получить объект структуры
 +
<syntaxhighlight lang="JavaScript">var struct = Structure.get(name)</syntaxhighlight>
 +
 +
Где
 +
 +
*name - Имя структуры
 +
 +
2. Добавить блоки
 +
 +
3. Сохранить структуру
 +
<syntaxhighlight lang="JavaScript">struct.save()</syntaxhighlight>
 +
 +
===== Устаревший способ =====
 
<syntaxhighlight lang="JavaScript">StructuresAPI.save(name, structures)</syntaxhighlight>
 
<syntaxhighlight lang="JavaScript">StructuresAPI.save(name, structures)</syntaxhighlight>
  
Строка 63: Строка 124:
 
*name - Имя структуры  
 
*name - Имя структуры  
 
*structures - Массив данных о блоках  
 
*structures - Массив данных о блоках  
</div>
+
</div> <div class="mw-parser-output">
 +
=== Проверка структур ===
 +
 
 +
Для проверки структур используется функция ''get экземпляра объекта Structure''
 +
 
 +
''struct.get(x,y,z,)''
 +
<syntaxhighlight lang="JavaScript">stuct.get(x, y, z, rotate_y)</syntaxhighlight>
 +
 
 +
Где:
 +
 
 +
*''x'' - Начальная координата структуры по X
 +
*''y'' -&nbsp;Начальная координата структуры по Y
 +
*''z'' -&nbsp;Начальная координата структуры по Z
 +
*''rotate_y'' -&nbsp;Вращение только по оси Y
 +
 
 +
Вернет ''true'' если это нужная структура, иначе ''false.''
 +
 
 +
'''Пример:'''
 +
<syntaxhighlight lang="JavaScript">var struct = Structure.get("myStructure");
 +
Callback.addCallback("ItemUse", function(coords, item){
 +
    if(item.id == 280 && struct.get(coords.x, coords.y, coords.z)){
 +
        alert("It's my structure");
 +
    }
 +
});</syntaxhighlight>
  
<div class="mw-parser-output">
+
==== Устаревший способ ====
=== Проверка структур ===
 
  
 
Для проверки структур используется функция ''getStructures()''
 
Для проверки структур используется функция ''getStructures()''
Строка 89: Строка 172:
 
});
 
});
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
+
</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">
 +
==== Structure ====
 +
 
 +
<span style="color:#f39c12;">Добавлен с версии 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;Время в миллисекундах между установкой блоков
  
<div class="mw-parser-output">
+
| Установить структуру ''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%;"
 
{| 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;" | '''Аргументы'''
 
| style="text-align: center;" | '''Описание'''
 
| style="text-align: center;" | '''Описание'''
 
|-
 
|-
| style="text-align: center;" | get(string name)
+
| style="text-align: center;" | <span style="color:#e74c3c;">'''Только 1.2'''</span>
| style="text-align: center;" |  
+
| 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%;"
 +
|-
 +
| style="text-align: center; width: 59px;" | '''Версия'''
 +
| style="text-align: center; width: 197px;" | '''Метод'''
 +
| style="text-align: center; width: 362px;" | '''Аргументы'''
 +
| style="text-align: center; width: 332px;" | '''Описание'''
 +
|-
 +
| style="text-align: center; width: 59px;" | '''1.1'''
 +
| style="text-align: center; width: 197px;" | init(string path)
 +
| style="width: 362px;" |
 +
*path - Путь к папке со структурами
 +
 
 +
| style="width: 332px;" | Устанавливает место хранения структур, относительно мода
 +
|-
 +
| style="text-align: center; width: 59px;" | '''1.0'''
 +
| style="text-align: center; width: 197px;" | get(string name)
 +
| style="text-align: center; width: 362px;" |  
 
*name - Имя структуры  
 
*name - Имя структуры  
  
| Возвращает объект структуры, иначе false
+
| style="width: 332px;" | Возвращает объект структуры, иначе false
 
|-
 
|-
| style="text-align: center;" |  
+
| style="text-align: center; width: 59px;" | '''1.0'''
 +
| style="text-align: center; width: 197px;" |  
 
getStructures(string name, int x, int y, int z, bool rotate_y)
 
getStructures(string name, int x, int y, int z, bool rotate_y)
  
|  
+
| style="width: 362px;" |  
 
*name - Имя структуры  
 
*name - Имя структуры  
 
*x - Начальная координата структуры по оси X  
 
*x - Начальная координата структуры по оси X  
Строка 118: Строка 487:
 
*rotate_y - Структура может быть повернута только по оси Y  
 
*rotate_y - Структура может быть повернута только по оси Y  
  
| Вернет true, если на координатах структура name, иначе false
+
| style="width: 332px;" | Вернет true, если на координатах структура name, иначе false
 
|-
 
|-
| style="text-align: center;" | save(string name, array structures)
+
| style="text-align: center; width: 59px;" | '''1.0'''
|  
+
| style="text-align: center; width: 197px;" | save(string name, array structures)
 +
| style="width: 362px;" |  
 
*name - Имя структуры  
 
*name - Имя структуры  
 
*structures - Массив с данными о блоках  
 
*structures - Массив с данными о блоках  
  
| Сохраняет струкутуру name
+
| style="width: 332px;" | Сохраняет струкутуру name
 
|-
 
|-
| style="text-align: center;" | set(string name, int x, int y, int z, array rotate)
+
| style="text-align: center; width: 59px;" | '''1.0'''
|  
+
| style="text-align: center; width: 197px;" | set(string name, int x, int y, int z, array rotate)
 +
| style="width: 362px;" |  
 
*name - Имя структуры  
 
*name - Имя структуры  
 
*x - Начальная координата структуры по оси X  
 
*x - Начальная координата структуры по оси X  
Строка 135: Строка 506:
 
*rotate - Массив матриц поворотов  
 
*rotate - Массив матриц поворотов  
  
|  
+
| style="width: 332px;" |  
 
Установить структуру name в мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
 
Установить структуру name в мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
  
 +
|-
 +
| style="text-align: center; width: 59px;" | '''1.1'''
 +
| style="text-align: center; width: 197px;" | set(string name, int x, int y, int z, array rotate, bool destroy, bool progressively, int time)
 +
| style="width: 362px;" |
 +
*name - Имя структуры
 +
*x - Начальная координата структуры по оси X
 +
*y - Начальная координата структуры по оси X
 +
*z - Начальная координата структуры по оси X
 +
*rotate - Массив матриц поворотов
 +
*destroy -&nbsp;Если true, структура будет "уничтожаться"
 +
*progressively -&nbsp;Если true, структура будет постепенно "строиться/уничтожаться"
 +
*time -&nbsp;Время в миллисекундах между установкой/уничтожением блоков
 +
 +
| style="width: 332px;" | Установить структуру name в мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
 
|}
 
|}
  
==== Константы ====
+
</div>
 +
 
 +
===== Константы =====
  
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
Строка 186: Строка 573:
 
| style="width: 824px;" | Поворот по оси Y
 
| style="width: 824px;" | Поворот по оси Y
 
|}
 
|}
 +
 +
</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>
 
</div>
 
</div>

Текущая версия на 12:21, 13 мая 2020

StructuresAPI - библиотека, упрощающая работу со структурами.

Загрузка[править]

Библиотека
Версия Ссылка Изменения
1 Скачать

Первая версия

1.1 Подробнее
  • Добавлен метод StructuresAPI.init(string NameFolder) - Задает папку со структурами.
  • Изменен метод StructuresAPI.set(name, x, y, z, rotate, destroy, progressively, time) - Добавлены параметры (Автор ToxesFoxes)
    • destroy - Если true, структура будет "уничтожаться"
    • progressively - Если true, структура будет постепенно "строиться/уничтожаться"
    • time - Время в миллисекундах между установкой/уничтожением блоков
1.2 Подробнее
  • Библиотека переписана. Объект StructuresAPI устарел.
  • Сохраняется содержимое сундуков, печей и воронок
1.3 Подробнее
  • 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
1.4 Подробнее
  • Дополнен перевод. 
  • Установка структуры производится в потоке, только если установка в режиме Structure.PROGRESSIVELY. 
  • Блоки воздуха в структуре больше не заменяются на камень.
GitHub GitHub  

Условия использования[править]

  • Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество
  • Запрещено изменение кода библиотеки
  • Запрещено явное копирование кода в другие библиотеки или моды 

Используя данный продукт вы автоматически соглашаетесь с этими правилами

Документация[править]

Инициализация[править]

Для начала работы импортируйте библиотеку.

IMPORT("StructuresAPI");

Сохранение структур[править]

Для сохранения структур есть два способа:

Через WorldEdit[править]

Для начала выделите вашу структуру топориком(1 точка - тап по блоку, 2 точка - ломание блока), затем выделите с помощью деревянного меча начальную точку структуры(Она может быть вне области структуры).
После введите в чат команду /save <name> [-a] [-x n] [-y n] [-z n] со следующими параметрами

  • name - Имя структуры(Без пробелов)
  • -a - Сохранить структуру с воздухом
  • -x n - Установить центр структуры в координате n по X
  • -y n - Установить центр структуры в координате n по Y
  • -z n - Установить центр структуры в координате n по Z

Через код[править]

!Не рекомендуется

1. Создать или получить объект структуры

var struct = Structure.get(name)

Где

  • name - Имя структуры

2. Добавить блоки

3. Сохранить структуру

struct.save()
Устаревший способ[править]
StructuresAPI.save(name, structures)

Где:

  • name - Имя структуры
  • structures - Массив данных о блоках

Проверка структур[править]

Для проверки структур используется функция get экземпляра объекта Structure

struct.get(x,y,z,)

stuct.get(x, y, z, rotate_y)

Где:

  • x - Начальная координата структуры по X
  • y - Начальная координата структуры по Y
  • z - Начальная координата структуры по Z
  • rotate_y - Вращение только по оси Y

Вернет true если это нужная структура, иначе false.

Пример:

var struct = Structure.get("myStructure");
Callback.addCallback("ItemUse", function(coords, item){
    if(item.id == 280 && struct.get(coords.x, coords.y, coords.z)){
        alert("It's my structure");
    }
});

Устаревший способ[править]

Для проверки структур используется функция getStructures()

StructuresAPI.getStructures(name, x, y, z, rotate_y)

Где:

  • name - Имя структуры
  • x - Начальная координата структуры по X
  • y - Начальная координата структуры по Y
  • z - Начальная координата структуры по Z
  • rotate_y - Вращение только по оси Y

Вернет true если это структура name, иначе false

Пример:

Callback.addCallback("ItemUse", function(coords, item){
    if(item.id == 280 && StructuresAPI.getStructures("myStructure", coords.x, coords.y, coords.z)){
        alert("It's my structure")
    }
});

Полный перечень методов и констант[править]

Structure[править]

Добавлен с версии 1.2

Методы[править]
Версия Метод Аргументы Описание
1.2 init(string path)
  • path - Путь к папке со структурами
Устанавливает место хранения структур, относительно мода
1.2 get(string name)
  • name - Имя структуры
Возвращает экземпляр объекта Structure с именем name
1.3 setInWorld(string name, int x, int y, int z, array rotate, bool progressively, int time)
  • name - Имя структуры
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси Y
  • z - Начальная координата структуры по оси Z
  • rotate - Массив матриц поворотов
  • progressively - Если true, структура будет постепенно "строиться"
  • time - Время в миллисекундах между установкой блоков
Установить структуру name в мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
1.3 destroyInWorld(string name, int x, int y, int z, array rotates, bool progressively, int time)
  • name - Имя структуры
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси Y
  • z - Начальная координата структуры по оси Z
  • rotates - Возможные повороты структуры
  • progressively - Если true, структура будет постепенно "строиться"
  • time - Время в миллисекундах между установкой блоков
Установить структуру name в мире по координатам x,y,z,  с возможными поворотами rotates
 
Константы[править]
Версия Константа Описание
1.2 ROTATE_NONE  
1.2 ROTATE_90Y Матрица поворота по оси Y на 90о
1.2 ROTATE_180Y Матрица поворота по оси Y на 180о
1.2 ROTATE_270Y Матрица поворота по оси Y на 270о
1.2 ROTATE_90X Матрица поворота по оси X на 90о
1.2 ROTATE_180X Матрица поворота по оси X на 180о
1.2 ROTATE_270X Матрица поворота по оси X на 270о
1.2 ROTATE_90Z Матрица поворота по оси Z на 90о
1.2 ROTATE_180Z Матрица поворота по оси Z на 180о
1.2 ROTATE_270Z Матрица поворота по оси Z на 270о
1.2 ROTATE_RANDOM Рандомный поворот
1.2 ROTATE_ALL Поворот по всем осям
1.2 ROTATE_Y Поворот по оси Y
1.3 PROGRESSIVELY Установка/уничтожение постройки постепенное
1.3 NOT_PROGRESSIVELY Установка/уничтожение постройки не постепенное
1.3 MIRROR_X Отражение по оси X
1.3 MIRROR_Y Отражение по оси Y
1.3 MIRROR_Z Отражение по оси Z
Экземпляр Structure[править]
Версия Метод Аргументы Описание
Только 1.2 get(int x, int y, int z, bool rotate_y)
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси Y
  • z - Начальная координата структуры по оси Z
  • rotate_y - Структура может быть повернута только по оси Y
 Вернет true, если на координатах данная структура, иначе false
1.3 get(int x, int y, int z, array rotates, bool return_index)
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси Y
  • z - Начальная координата структуры по оси Z
  • rotates - Возможные повороты структуры
  • return_index - Возвращать ли индекс найденного поворота(По стандарту false)
Вернет true, если на координатах данная структура, иначе false
check(int x, int y, int z, array rotates, bool return_index)
1.2 getName()   Вернет имя структуры
1.2 save()   Сохранить структуру в файл
Только 1.2 set(int x, int y, int z, array rotate, bool destroy, bool progressively, int time)
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси Y
  • z - Начальная координата структуры по оси Z
  • rotate - Массив матриц поворотов
  • destroy - Если true, структура будет "уничтожаться"
  • progressively - Если true, структура будет постепенно "строиться/уничтожаться"
  • time - Время в миллисекундах между установкой/уничтожением блоков
Установить структурув мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
1.3 set(int x, int y, int z, array rotate, bool progressively, int time)
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси Y
  • z - Начальная координата структуры по оси Z
  • rotate - Массив матриц поворотов
  • progressively - Если true, структура будет постепенно "строиться"
  • time - Время в миллисекундах между установкой блоков
Установить структурув мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
1.3 destroy(int x, int y, int z, array rotates, bool progressively, int time)
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси Y
  • z - Начальная координата структуры по оси Z
  • rotates - Возможные повороты структуры
  • progressively - Если true, структура будет постепенно "уничтожаться"
  • time - Время в миллисекундах между уничтожением блоков
Уничтожить структуру в мире по координатам x,y,z, с возможными поворотами rotates
1.2 addBlock(x, y, z, block)
  • x - Координата структуры по оси X относительно нулевой координаты структуры
  • y - Координата структуры по оси Y относительно нулевой координаты структуры
  • z - Координата структуры по оси Z относительно нулевой координаты структуры
  • block - Блок
    • id - ID блока
    • data - Data блока
 Добавить блок в структуру
 

Rotate[править]

Добавлен с версии 1.3

Объект Rotate позволяет задовать сложные повороты, которые будут выполнятся при поиске/уничтожении/установке структуры.

var rotate = new Rotate();
rotate.addRotate(Structure.ROTATE_90Y);
rotate.addRotate(Structure.ROTATE_90X);

Данный код позволит повернуть структуру сначала на 90 градусов по оси Y, затем по оси X.

экземпляр Rotate[править]
Версия Метод Аргументы Описание
1.3 addRotate(array rotate)
  • rotate - Матрица поворота или экземпляр Rotate
Добавить поворот
1.3 add(array rotate)
1.3 addRotates(array rotates)
  • rotates - Массив митриц и экземпляров Rotate
Добавить повороты в указанном порядке
1.3 adds(array rotates)

 

StructuresAPI[править]

Считается устаревшим с версии 1.2
Удален в версии 1.3

Методы[править]
Версия Метод Аргументы Описание
1.1 init(string path)
  • path - Путь к папке со структурами
Устанавливает место хранения структур, относительно мода
1.0 get(string name)
  • name - Имя структуры
Возвращает объект структуры, иначе false
1.0

getStructures(string name, int x, int y, int z, bool rotate_y)

  • name - Имя структуры
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси X
  • z - Начальная координата структуры по оси X
  • rotate_y - Структура может быть повернута только по оси Y
Вернет true, если на координатах структура name, иначе false
1.0 save(string name, array structures)
  • name - Имя структуры
  • structures - Массив с данными о блоках
Сохраняет струкутуру name
1.0 set(string name, int x, int y, int z, array rotate)
  • name - Имя структуры
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси X
  • z - Начальная координата структуры по оси X
  • rotate - Массив матриц поворотов

Установить структуру name в мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate

1.1 set(string name, int x, int y, int z, array rotate, bool destroy, bool progressively, int time)
  • name - Имя структуры
  • x - Начальная координата структуры по оси X
  • y - Начальная координата структуры по оси X
  • z - Начальная координата структуры по оси X
  • rotate - Массив матриц поворотов
  • destroy - Если true, структура будет "уничтожаться"
  • progressively - Если true, структура будет постепенно "строиться/уничтожаться"
  • time - Время в миллисекундах между установкой/уничтожением блоков
Установить структуру name в мире по координатам x,y,z, с выбраным рандомно поворотм из массива rotate
Константы[править]
Константа Описание
ROTATE_NONE  
ROTATE_90Y Матрица поворота по оси Y на 90о
ROTATE_180Y Матрица поворота по оси Y на 180о
ROTATE_270Y Матрица поворота по оси Y на 270о
ROTATE_90X Матрица поворота по оси X на 90о
ROTATE_180X Матрица поворота по оси X на 180о
ROTATE_270X Матрица поворота по оси X на 270о
ROTATE_90Z Матрица поворота по оси Z на 90о
ROTATE_180Z Матрица поворота по оси Z на 180о
ROTATE_270Z Матрица поворота по оси Z на 270о
ROTATE_RANDOM Рандомный поворот
ROTATE_ALL Поворот по всем осям
ROTATE_Y Поворот по оси Y