Модуль GenerationUtils — различия между версиями

 
(не показаны 3 промежуточные версии 2 участников)
Строка 1: Строка 1:
<div class="mw-parser-output"><div class="mw-parser-output">Модуль GenerationUtils предоставляет удобные инструменты, используемые для генерации.&nbsp;</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">Модуль GenerationUtils предоставляет удобные инструменты, используемые для генерации.&nbsp;</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">
 
== Методы модуля&nbsp;GenerationUtils ==
 
== Методы модуля&nbsp;GenerationUtils ==
  
Строка 8: Строка 8:
 
*canSeeSky(x, y, z) - возвращает true, если на данное место падает солнечный свет (в том числе, через прозрачные блоки).  
 
*canSeeSky(x, y, z) - возвращает true, если на данное место падает солнечный свет (в том числе, через прозрачные блоки).  
 
*randomXZ(cx, cz) - возвращает случайные целые координаты x и z&nbsp;в приделах чанка с координатами cx и cz.  
 
*randomXZ(cx, cz) - возвращает случайные целые координаты x и z&nbsp;в приделах чанка с координатами cx и cz.  
*randomCoords(cx, cy, lowest, highest) - возвращает случайные координаты x, y, z&nbsp;в приделах чанка с координатами cx и cz на высоте от lowest до highest. Параметры lowest и highest имеют значения по умолчанию 0 и 128 соответственно. Пример использования (для&nbsp;''randomXZ''&nbsp;то же самое, но без''y''): <syntaxhighlight lang="Javascript">let coords = randomCoords(cx, cy, 64); // Random coordinates between 64 and 128
+
*randomCoords(cx, cy, lowest, highest) - возвращает случайные координаты x, y, z&nbsp;в приделах чанка с координатами cx и cz на высоте от lowest до highest. Параметры lowest и highest имеют значения по умолчанию 0 и 128 соответственно. Пример использования (для&nbsp;''randomXZ''&nbsp;то же самое, но без&nbsp;''y''): <syntaxhighlight lang="Javascript">let coords = randomCoords(cx, cy, 64); // Random coordinates between 64 and 128
 
let x = coords.x;
 
let x = coords.x;
 
let y = coords.y;
 
let y = coords.y;
Строка 14: Строка 14:
  
  
*findSurface(x, y, z) - возвращает самый высокий блок с координатами x, z, находящийся под уровнем y. На данный момент метод не работает, и для его замены можно использовать следующий код: <syntaxhighlight lang="Javascript">GenerationUtils.findSurface = function(x, y, z){
+
*findSurface(x, y, z) - возвращает самый высокий блок с координатами x, z, находящийся под уровнем y.  
   while(y > 0 && World.getBlockID(x, y, z) == 0) y--;
+
*findHighSurface(x, z) - возвращает самый высокий блок в приделах от 128 до 0 (на поверхности).  
   return {x: x, y: y, z: z};
+
*findLowSurface(x, z) -&nbsp;возвращает самый высокий блок в приделах от 64 до 0 (под землёй).  
}</syntaxhighlight>
+
*generateOre(x, y, z, id, data, amount, noStoneCheck) - генерирует руду с id, data&nbsp;на координатах x, y, z, в количестве amount. Если noStoneCheck установлен в true, руда может появиться не смотря на отсутствие камня в данном месте. Может быть использовано для отладки. По умолчанию ''data ''= 0, ''amount ''= 1, ''noStoneCheck ''= false.  
 
+
</div> </div> </div> </div> </div> </div>
 
 
Следует отметить, что изменять методы InnerCore без крайней необходимости не следует, и предыдущий пример тому доказательство. Если хотя бы в одном моде будет данный код, во всех остальных он будет доступен и будет работать. '''Внимание!'''&nbsp;Если у вас работает данная функция, обязательно добавьте в мод заменяющий код, поскольку нельзя гарантировать, что у конечного пользователя будет тот же набор модов, что и у вас.&nbsp;
 
 
 
*findHighSurface(x, z) - возвращает самый высокий блок в приделах от 128 до 0 (на поверхности). Для того, чтобы код работал, необходимо реализовать&nbsp;findSurface (см. выше).  
 
*findLowSurface(x, z) -&nbsp;возвращает самый высокий блок в приделах от 64 до 0 (под землёй).&nbsp;Для того, чтобы код работал, необходимо реализовать&nbsp;findSurface (см. выше).  
 
 
 
 
</div>
 
</div>
 
</div>
 
</div>

Текущая версия на 00:27, 2 мая 2020

Модуль GenerationUtils предоставляет удобные инструменты, используемые для генерации. 

Методы модуля GenerationUtils[править]

  • isTerrainBlock(id) - возвращает, является ли блок с заданным id частью ванильного пласта (камень, земля, руды и т.п.).
  • isTransparentBlock(id) - проверяет, является ли данный блок прозрачным (для света). Работает как с ванильными блоками, так и с блоками из мода. 
  • canSeeSky(x, y, z) - возвращает true, если на данное место падает солнечный свет (в том числе, через прозрачные блоки).
  • randomXZ(cx, cz) - возвращает случайные целые координаты x и z в приделах чанка с координатами cx и cz.
  • randomCoords(cx, cy, lowest, highest) - возвращает случайные координаты x, y, z в приделах чанка с координатами cx и cz на высоте от lowest до highest. Параметры lowest и highest имеют значения по умолчанию 0 и 128 соответственно. Пример использования (для randomXZ то же самое, но без y):
    let coords = randomCoords(cx, cy, 64); // Random coordinates between 64 and 128
    let x = coords.x;
    let y = coords.y;
    let z = coords.z;
    


  • findSurface(x, y, z) - возвращает самый высокий блок с координатами x, z, находящийся под уровнем y.
  • findHighSurface(x, z) - возвращает самый высокий блок в приделах от 128 до 0 (на поверхности).
  • findLowSurface(x, z) - возвращает самый высокий блок в приделах от 64 до 0 (под землёй).
  • generateOre(x, y, z, id, data, amount, noStoneCheck) - генерирует руду с id, data на координатах x, y, z, в количестве amount. Если noStoneCheck установлен в true, руда может появиться не смотря на отсутствие камня в данном месте. Может быть использовано для отладки. По умолчанию data = 0, amount = 1, noStoneCheck = false.