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

(Новая страница: «<div class="mw-parser-output">Модуль GenerationUtils предоставляет удобные инструменты, используемые для ге…»)
 
Строка 1: Строка 1:
 
<div class="mw-parser-output">Модуль GenerationUtils предоставляет удобные инструменты, используемые для генерации.&nbsp;</div>  
 
<div class="mw-parser-output">Модуль GenerationUtils предоставляет удобные инструменты, используемые для генерации.&nbsp;</div>  
 +
<div class="mw-parser-output">
 
== Методы модуля&nbsp;GenerationUtils ==
 
== Методы модуля&nbsp;GenerationUtils ==
  
Строка 10: Строка 11:
 
let y = coords.y;
 
let y = coords.y;
 
let z = coords.z;</syntaxhighlight>
 
let z = coords.z;</syntaxhighlight>
 +
 +
*findSurface(x, y, z) - возвращает самый высокий блок с координатами x, z. На данный момент метод не работает, и для его замены можно использовать следующий код: <syntaxhighlight lang="Javascript">GenerationUtils.findSurface = function(x, y, z){
 +
   while(y > 0 && World.getBlockID(x, y, z) == 0) y--;
 +
   return {x: x, y: y, z: z};
 +
}</syntaxhighlight>
 +
Следует отметить, что изменять методы InnerCore без крайней необходимости не следует, и предыдущий пример тому доказательство.&nbsp;<br/> &nbsp;
 +
</div>

Версия 23:49, 13 октября 2018

Модуль 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. На данный момент метод не работает, и для его замены можно использовать следующий код:
    GenerationUtils.findSurface = function(x, y, z){
        while(y > 0 && World.getBlockID(x, y, z) == 0) y--;
        return {x: x, y: y, z: z};
    }
    

Следует отметить, что изменять методы InnerCore без крайней необходимости не следует, и предыдущий пример тому доказательство.