Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | Данная библиотека для Inner Core представляет собой инструмент для быстрого создания новых типов энергии и имеет большой функционал для работы с ними. | + | <div class="mw-parser-output"><div class="mw-parser-output"> |
− | + | Данная библиотека для Inner Core представляет собой инструмент для быстрого создания новых типов энергии и имеет большой функционал для работы с ними. | |
− | |||
− | |||
== Импорт == | == Импорт == | ||
+ | <div class="mw-parser-output">Для добавления библиотеки в мод ее файл ''(energy-net.js)'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).</div> <div class="mw-parser-output">Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:</div> <div class="mw-parser-output"><syntaxhighlight lang="JavaScript">IMPORT("EnergyNet");</syntaxhighlight> | ||
+ | <div class="mw-parser-output"> | ||
+ | == Модули == | ||
− | + | #''EnergyTypeRegistry'' - модуль для регистрации новых типов энергии. | |
− | + | #''EnergyTileRegistry'' - модуль для привязки типов энергии к TileEntity. | |
− | + | #''EnergyNetBuilder'' - модуль построения энергосетей и взаимодействия с ними. | |
− | + | </div> <div class="mw-parser-output"><div class="mw-parser-output"> | |
− | |||
− | |||
− | #''EnergyTypeRegistry'' - модуль для регистрации новых типов энергии | ||
− | #''EnergyTileRegistry'' - модуль для привязки типов энергии к TileEntity | ||
− | #'' | ||
− | |||
− | |||
− | |||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
== Создание нового типа энергии == | == Создание нового типа энергии == | ||
Строка 34: | Строка 20: | ||
*''value'' - сколько ''Eu'' (единиц энергии ''IndustrialCraft'') содержится в 1 единице данного типа энергии, данное значение используется для конвертации из одного вида энергии в другой. ''Энергия Eu принята за эталон.'' | *''value'' - сколько ''Eu'' (единиц энергии ''IndustrialCraft'') содержится в 1 единице данного типа энергии, данное значение используется для конвертации из одного вида энергии в другой. ''Энергия Eu принята за эталон.'' | ||
− | Возвращает функция тип с данным именем (созданный или | + | Возвращает функция тип с данным именем (созданный или импортированый), который обладает следующими методами и значениями: |
*<''energyType''>''.name'' - имя данного типа энергии. | *<''energyType''>''.name'' - имя данного типа энергии. | ||
− | *<''energyType''>''.registerWire(id, value | + | *<''energyType''>''.registerWire(id, value)'' – регистрирует провод с данным ид и устанавливает для него лимит по приёму энергии, записанный в параметре value. |
− | + | *<''energyType''>''.onNetOverload'' – функция, вызывающаяся при превышение лимита энергии в проводе. Для продвинутых разработчиков | |
− | * | ||
'''Пример:''' | '''Пример:''' | ||
− | <syntaxhighlight lang="JavaScript">// в начале мода импортируем библиотеку ( | + | <syntaxhighlight lang="JavaScript">// в начале мода импортируем библиотеку (она должна находиться в lib/) importLib("energylib.js", "*"); |
// создаем тип энергии redstone flux | // создаем тип энергии redstone flux | ||
Строка 49: | Строка 34: | ||
energyRF.registerWire(BlockID.RFconduct, 2000); | energyRF.registerWire(BlockID.RFconduct, 2000); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | </div> </div> <div class="mw-parser-output"><div class="mw-parser-output"> | ||
+ | == Механика передачи энергии == | ||
+ | Энергия может передаваться как по проводам, так и напрямую от генератора к соседним механизмам. Для этого подобные механизмы объдиняются в энергосети. Энергосети - это программные объекты, которые передают энергию к подключенным к ним механизмам или другим энергосетям. Энергия передаётся пакетами с определённым количеством энергии и напряжением. | ||
+ | |||
+ | Энергосети формируются следующим образом:<br/> Для каждого блока генератора создаётся своя энергосеть, соединяющая его с подключенными к нему машинами-потребителями и энергосетями проводов. Энергосети проводов объединяют блоки с одним ид и соединяются с другими сетями того же типа энергии и машинами-потребителями энергии. Такая система позволяет разбивать провода по размеру пакета энергии, который они могут передать. Напряжение пакета энергии - это параметр, позволяющий объединять множество пакетов меньшего размера в один и передать его как будто бы с размером меньшего пакета. | ||
+ | </div> <div class="mw-parser-output"> | ||
== Привязка типов энергии к TileEntity == | == Привязка типов энергии к TileEntity == | ||
− | ''EnergyTileRegistry.addEnergyTypeForId( | + | ''EnergyTileRegistry.addEnergyTypeForId(tileEntityId, energyType)'' - добавляет tile entity с данным id дополнительные события, которые позволяют ему работать с данным типом энергии. К одному tile entity можно привязать несколько разных типов энергии.<br/> <u>Параметры:</u> |
− | *'' | + | *''tileEntityId'' – id блока, на который был зарегистрирован нужный tile entity. |
*''energyType'' - тип энергии, который требуется к нему привязать. | *''energyType'' - тип энергии, который требуется к нему привязать. | ||
Новые события: | Новые события: | ||
− | *''energyTick: function(type, | + | *''energyTick: function(type, src) { /* … */ }'' - вызывается каждый тик после функции tick для каждой энергосети, привязанной к данному tile entity.<br/> Параметры: |
**''type'' - название типа энергии, для которого вызвано это событие. | **''type'' - название типа энергии, для которого вызвано это событие. | ||
− | ** | + | **src - объект типа energy source для добавления энергии, речь о нём пойдет позже. |
− | *''energyReceive: function(type, amount, voltage) { /* … */ }'' – вызывается при приёме пакета энергии данным tile entity. Должна возвращать количество энергии, которое удалось добавить.<br/> Параметры: | + | *''energyReceive: function(type, amount, voltage, sourceTile) { /* … */ }'' – вызывается при приёме пакета энергии данным tile entity. Должна возвращать количество энергии, которое удалось добавить.<br/> Параметры: |
**''type'' - название типа энергии | **''type'' - название типа энергии | ||
**''amount'' – количество энергии | **''amount'' – количество энергии | ||
**''voltage'' – напряжение энергии | **''voltage'' – напряжение энергии | ||
− | *'' | + | *''isEnergySource: function(type) {return true;}'' – определяет, может ли tile entity вырабатывать энергию данного типа. Если да, то для него строится энергосеть. |
− | *'' | + | *''canReceiveEnergy: function(type, side) {return true/false;}'' – определяет, может ли tile entity получать энергию даного типа и с каких сторон. Вызывается при попытке соединения tile entity к энергосети. |
− | *'' | + | *''canExtractEnergy: function(type, side) {return true/false;}'' – определяет, с каких сторон tile entity может выдавать энергию. |
+ | </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"> | ||
+ | == Объект EnergySource == | ||
− | + | Данный объект является интерфейсом для добавления энергии в сеть, который передается в события для работы с энергией (src).<br/> <u>Методы:</u> | |
− | + | *''src.add(amount, voltage)'' - добавляет в сеть данное кол-во энергии ''(amount)'', возвращает, какое кол-во энергии добавить не удалось из-за переполнения (0, если вся энергия добавлена). Если значение ''voltage'' (напряжение) не указано, то оно будет равно ''amount''. | |
+ | *''src.addAll(amount, voltage)'' - аналогичен методу ''add'', но ничего не возвращает и работает быстрее, потому что добавляет энергию в буфер сети, позволяя объединять в один пакет множество пакетов, созданных генераторами. | ||
+ | </div> | ||
− | + | == Работа с энгергитическими сетями == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == Работа с | ||
− | |||
− | |||
== Примеры == | == Примеры == | ||
− | + | </div> </div> </div> </div> | |
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |