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

м
м
Строка 13: Строка 13:
 
</div>
 
</div>
  
 +
<div class="mw-parser-output"><div class="mw-parser-output">
 
== Создание нового типа энергии ==
 
== Создание нового типа энергии ==
 +
 +
''EnergyTypeRegistry.assureEnergyType("name", value)'' - создает новый тип энергии и возвращает его, если такой тип энергии уже существует, новый создан не будет, а вернется уже существующий, таким образом если 2 мода создают один тип энергии, он будет общий.
 +
 +
<u>Параметры:</u>
 +
 +
*''name'' - уникальное название энергии, обычно используется сокращение (''"Eu" - energy units, "RF" - redstone flux'' и т.п.)
 +
*''value'' - сколько ''Eu'' (единиц энергии ''IndustrialCraft'') содержится в 1 единице данного типа энергии, данное значение используется для конвертации из одного вида энергии в другой. ''Энергия Eu принята за эталон.''
 +
 +
Возвращает функция тип с данным именем (созданный или импортированый), который обладает следующими методами и значениями:
 +
 +
*<''energyType''>''.name'' - имя данного типа энергии.
 +
*<''energyType''>''.registerWire(id, value)'' – регистрирует провод с данным ид и устанавливает для него лимит по приёму энергии, записанный в параметре value.
 +
*<''energyType''>''.onNetOverload'' – функция, вызывающаяся при превышение лимита энергии в проводе. Для продвинутых разработчиков
 +
 +
'''Пример:'''
 +
<syntaxhighlight lang="JavaScript">// в начале мода импортируем библиотеку (она должна находиться в lib/) importLib("energylib.js", "*");
 +
 +
// создаем тип энергии redstone flux
 +
var energyRF = EnergyTypeRegistry.assureEnergyType("RF", 0.25);
 +
// регистрируем блок-проводник для данного типа энергии
 +
energyRF.registerWire(BlockID.RFconduct, 2000);
 +
</syntaxhighlight>
 +
</div> </div>
  
 
== Механика передачи энергии ==
 
== Механика передачи энергии ==

Версия 12:40, 27 июля 2019

Данная библиотека для Inner Core представляет собой инструмент для быстрого создания новых типов энергии и имеет большой функционал для работы с ними.

Импорт

Для добавления библиотеки в мод ее файл (energy-net.js) нужно добавить в директорию lib/ в директории мода (если таковой нету, то ее нужно создать).
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:
IMPORT("EnergyNet");

Модули

  1. EnergyTypeRegistry - модуль для регистрации новых типов энергии.
  2. EnergyTileRegistry - модуль для привязки типов энергии к TileEntity. 
  3. EnergyNetBuilder - модуль построения энергосетей и взаимодействия с ними.

Создание нового типа энергии

EnergyTypeRegistry.assureEnergyType("name", value) - создает новый тип энергии и возвращает его, если такой тип энергии уже существует, новый создан не будет, а вернется уже существующий, таким образом если 2 мода создают один тип энергии, он будет общий.

Параметры:

  • name - уникальное название энергии, обычно используется сокращение ("Eu" - energy units, "RF" - redstone flux и т.п.)
  • value - сколько Eu (единиц энергии IndustrialCraft) содержится в 1 единице данного типа энергии, данное значение используется для конвертации из одного вида энергии в другой. Энергия Eu принята за эталон.

Возвращает функция тип с данным именем (созданный или импортированый), который обладает следующими методами и значениями:

  • <energyType>.name - имя данного типа энергии.
  • <energyType>.registerWire(id, value) – регистрирует провод с данным ид и устанавливает для него лимит по приёму энергии, записанный в параметре value.
  • <energyType>.onNetOverload – функция, вызывающаяся при превышение лимита энергии в проводе. Для продвинутых разработчиков

Пример:

// в начале мода импортируем библиотеку (она должна находиться в lib/) importLib("energylib.js", "*");

// создаем тип энергии redstone flux
var energyRF = EnergyTypeRegistry.assureEnergyType("RF", 0.25);
// регистрируем блок-проводник для данного типа энергии
energyRF.registerWire(BlockID.RFconduct, 2000);

Механика передачи энергии

Привязка типов энергии к TileEntity

Объект EnergySource

Работа с энгергитическими сетями

Примеры