Jump to content

[MineTweaker3] Учебное пособие: Botania


vandoom
 Share

Recommended Posts

Поддерживаемые обработчики
Поддерживаются следующие обработчики:

  • Ботаническое пивоварение
  • Эльфийская торговля
  • Lexica Botania: Поддержка Lexica Botania
  • Вливание маны
  • Рудноцвет
  • Чистая маргаритка
  • Рунный алтарь

В каждый из этих обработчиков можно добавлять или удалять рецепты:

//Ботаническое пивоварение
//InputArray, BrewString
mods.botania.Brew.addRecipe([<minecraft:nether_wart>, <minecraft:reeds>, <minecraft:redstone>], "speed");
//BrewString
mods.botania.Brew.removeRecipe("absorption"); 

//Эльфийская торговля
//OutputStack, InputArray
mods.botania.ElvenTrade.addRecipe(<Botania:flower:4>, [<minecraft:yellow_flower>]);
//OutputStack
mods.botania.ElvenTrade.removeRecipe(<Botania:dreamwood>);

//Вливание маны/Алхимия/Заклинание
//OutputStack, InputStack, ManaCost
mods.botania.ManaInfusion.addInfusion(<minecraft:golden_apple:1>, <minecraft:golden_apple>, 50000);
mods.botania.ManaInfusion.addAlchemy(<minecraft:sand> * 4, <minecraft:sandstone:*>, 10);
mods.botania.ManaInfusion.addConjuration(<minecraft:sand:1> * 2, <minecraft:sand:1>, 5);
//OutputStack
mods.botania.ManaInfusion.removeRecipe(<Botania:manaResource>); //Infusion
mods.botania.ManaInfusion.removeRecipe(<minecraft:leather>); //Alchemy
mods.botania.ManaInfusion.removeRecipe(<minecraft:redstone> * 2); //Conjuration

//Рудноцвет
//InputOredict, Weight
mods.botania.Orechid.addOre(<ore:logWood>, 5000);
//InputOredict
mods.botania.Orechid.removeOre(<ore:oreIron>);

//Аптекарь лепестков - все является допустимым исходным товаром, кроме семян, которые завершают процесс изготовления
//OutputStack, InputArray
mods.botania.Apothecary.addRecipe("bubbell", [<ore:petalCyan>, <ore:petalBlue>, <Botania:manaResource:6>, <Botania:manaResource:10> * 1]);
mods.botania.Apothecary.addRecipe(<minecraft:melon>, [<ore:petalLime>, <ore:petalRed>, <minecraft:wheat_seeds>]);
//OutputStack OR String (String is for subtiled Botania Flowers)
mods.botania.Apothecary.removeRecipe("daybloom");

//Чистая маргаритка
//InputBlock, OutputBlock
mods.botania.PureDaisy.addRecipe(<minecraft:emerald_block>, <minecraft:diamond_block>);
//OutputBlock
mods.botania.PureDaisy.removeRecipe(<minecraft:obsidian>);

//Рунный алтарь
//OutputStack, InputArray, ManaCost
mods.botania.RuneAltar.addRecipe(<minecraft:stonebrick:2>, [<minecraft:stonebrick>, <minecraft:gunpowder>], 5);
//OutputStack
mods.botania.RuneAltar.removeRecipe(<Botania:rune>);

 

Поддерживаемые команды
Отпечатки хранятся в журнале minetweaker в каталоге minecraft.

/minetweaker botania [HANDLER] - Outputs a list of all Botania recipes
/minetweaker botaniaBrews - Outputs a list of keys for botania brews
/minetweaker botaniaOrechid - Outputs a list of keys for botania orechid weights

 

Link to comment
Share on other sites

Основы
Ботаническая лексика Botania разделена на три различных этапа.

  • Категория: Категории - это значки, которые отображаются, как только вы открываете свой Lexica Botania.
  • Запись: Записи появятся, как только вы нажмете на категорию. Они могут быть разблокированы с помощью уровней знаний.
  • Страница: Страницы находятся внутри записи. Часто их несколько, и они различаются по типу.

Каждая категория/запись/страница идентифицируется уникальной строкой, называемой ее ключом.

Если вы хотите изменить существующую категорию / запись /страницу, вам нужно знать ее ключ. При добавлении нового рецепта Botania вам нужно будет указать страницы с рецептом вручную, так как сам рецепт не будет обнаружен.

Вы можете распечатать список ключей категории / записи / страницы внутри вашего minetweaker.txt используя эти команды:

  • /mt LexiconCategories
  • /mt LexiconEntries
  • /mt LexiconPages

Если вам нужен более точный дамп, вы можете определить команду:

  • /mt LexiconEntries [CATEGORY]
  • /mt LexiconPages [ENTRY]

 

Удаление категорий/записей/страниц
Категории/записи/страницы могут быть удалены с помощью метода removeCategory/Entry/Page().

Удаление категорий
Удаление Cagetory является только визуальным. Записи, которые были внутри него, все еще можно найти в индексе, поэтому, если вы хотите полностью удалить категорию, вам нужно отследить все записи внутри категории, а затем удалить их.

Пример:

//Ключ категории
mods.botania.Lexicon.removeCategory("botania.category.basics");


Удаление записей
Удаление записи также является только визуальным. Страницы, которые были внутри него, все еще можно найти с помощью сопоставления элементов или закладок, поэтому, если вы хотите полностью удалить запись, вам нужно отследить все страницы внутри записи, а затем удалить их.

Пример:

//Клавиша ввода
mods.botania.Lexicon.removeEntry("botania.entry.mIntro");


Удаление страниц
Вместо того, чтобы вводить PageKey для удаления страницы, вы должны использовать EntryKey плюс номер страницы. Обратите внимание, что страница 1 в Lexica будет равна 0, а страница 2 - 1, и так далее, в скрипте.

//EntryKey, PageNumber 
mods.botania.Lexicon.removePage("botania.entry.fIntro", 0);

 

Категории
Каждая категория также идентифицируется своей собственной уникальной строкой. Это важно знать, если вы хотите удалить категорию или поместить в нее новую запись.

Известные клавиши табуляции:

* botania.category.basics (Basics and Mechanics) 
* botania.category.mana (Mana Manipulation) 
* botania.category.generationFlowers (Generating Flora) 
* botania.category.functionalFlowers (Functionial Flora) 
* botania.category.devices (Natural Apparatus) 
* botania.category.tools (Mystical Items) 
* botania.category.baubles (Baubles and Acessoires) 
* botania.category.alfhomancy (Alfhomancy) 
* botania.category.misc (Miscellaneous)


Создание категорий
Для создания категории требуется предоставить текстуру для значка категории. Вам понадобится домен и путь к файлу для текстуры. Вам также нужно будет создать локализацию для названия категории либо с помощью пакета ресурсов, либо с помощью средства изменения локализации ModTweaker. Ключом локализации всегда будет "ботания.категория", за которым следует ключ категории. Категории также имеют приоритет, который указывает, где они расположены в лексике. Если число равно 6+, то в конечном итоге оно будет отнесено к первой категории в Лексике.

Например, если вам нужна категория со стержнем текстуры Bifrost от Botania:

//CategoryKey 
mods.botania.Lexicon.addCategory("botania.category.rainbow"); 
game.setLocalization("en_US", "botania.category.rainbow", "Rainbow"); 
//CategoryKey, Domain + ResourcePath 
mods.botania.Lexicon.setCategoryIcon("botania.category.rainbow", "botania:textures/items/rainbowRod.png"); 
//CategoryKey, Priority 
mods.botania.Lexicon.setCategoryPriority("botania.category.rainbow", 6);

Записи
Создание записей
Записи создаются с использованием уникального ключа, ключа категории и, необязательно, типа знаний. Как и при создании категории, для создания новой записи требуется новая локализация. Для записи также требуется ItemStack, чтобы отображать ее рядом с записью, когда вы просматриваете категорию.

Если запись добавлена через ModTweaker, ее название локализуется как "botania.entry.[имя]", за которым следует его локализованное название.

Пример:

//EntryKey, CategoryKey, ItemStack 
mods.botania.Lexicon.addEntry("botania.entry.colour","botania.category.rainbow", <Botania:bifrost>); 
game.setLocalization("en_US", "botania.entry.colour", "Modtweaker Guide");

Если вы хотите, чтобы запись была немного более продвинутой, скажем, на уровне эльфийских знаний, вы должны определить ее таким образом. Вам не обязательно указывать уровень знаний, если вы хотите, чтобы запись была доступна при открытии.

Каждый уровень знаний идентифицируется своей собственной уникальной строкой.

Ключи типа известных знаний:

* minecraft (Basic Knowledge) 
* alfheim (Elven Knowledge) 
* relic (Relic Knowledge)

Пример:

//EntryKey, KnowledgeTypeKey 
mods.botania.Lexicon.setEntryKnowledgeType("botania.entry.colour", "alfheim");


Страницы
Создание страниц

Простого создания базовой записи недостаточно. Базовая запись начинается без страниц и приводит к вылету игры, если вы попытаетесь ее открыть. Как только запись создана, вы можете использовать add[Type]Page() для добавления новых страниц к записи. Существует несколько типов страниц, начиная от текстовых, заканчивая графическими, для создания и даже для ознакомительных страниц. Добавление текста на страницы осуществляется с помощью локализаций. Кроме того, вы должны определить номер страницы, так как он выдаст ошибку, если она не перейдет с 1-2-3-4.. Обратите внимание, что страницы крафта (Обычный крафт, Рунический алтарь, Аптека лепестков, портал Альфхейма и т.д.) Не используют OutputStack для отображения рецепта внутри Lexica Botania, как это делает Thaumcraft 4 Research Modtweaking. Таким образом, вам придется "заново" создать рецепт при создании страницы. Это означает, что они являются только визуальными и что потребуется соответствующий сценарий.

Пример:

Страницы с текстом и изображениями

//PageKey, EntryKey, PageNumber 
//Adds a Text Page 
mods.botania.Lexicon.addTextPage("botania.page.colourText","botania.entry.colour",0); 
game.setLocalization("en_US", "botania.page.colourText", "&oThe first and (...)"); 
//PageKey, EntryKey, PageNumber, Domain + ResourcePath 
//Adds an Image Page 
mods.botania.Lexicon.addImagePage("botania.page.colourImage","botania.entry.colour",1, "botania:textures/gui/entries/elvenGarde.png");
game.setLocalization("en_US", "botania.page.colourImage", "Guide for Modtweaker");


Создание страниц

//PageKey, EntryKey, PageNumber, OutputStack, InputArray //Adds a Crafting Page, Out/InputStack are just visual
mods.botania.Lexicon.addCraftingPage("botania.page.colourCrafting","botania.entry.colour",2,[<minecraft:diamond_block>], [[[<minecraft:diamond>, <minecraft:diamond>, <minecraft:diamond>], [<minecraft:diamond>, <minecraft:diamond>, <minecraft:diamond>], [<minecraft:diamond>, <minecraft:diamond>, <minecraft:diamond>]]]);
game.setLocalization("en_US", "botania.page.colourCrafting", "Crafting the &1Diamond Block&0."); 

//PageKey, EntryKey, PageNumber, OutputStack, InputArray //Adds a Petal Page, Out/InputStack are just visual. The appropriate script for the page would be "mods.botania.Apothecary.addRecipe(<minecraft:melon>, [<ore:petalGreen>, <ore:petalRed>, <ore:petalRed>]);"
mods.botania.Lexicon.addPetalPage("botania.page.colourPetal","botania.entry.colour",3,[<minecraft:melon>],[[<Botania:petal:5>, <Botania:petal:14>, <Botania:petal:14>]]);
game.setLocalization("en_US", "botania.page.colourPetal", "&oWhy didn't the melons get married? Because they cantaloupe!&r."); 

//PageKey, EntryKey, PageNumber, OutputStack, InputArray, ManaCost //Adds an Infusion Page, Out/InputStack are just visual. The appropriate script for the page would be "mods.botania.ManaInfusion.addInfusion(<minecraft:golden_apple:1>, <minecraft:golden_apple>, 50000);" 
mods.botania.Lexicon.addInfusionPage("botania.page.colourInfusion","botania.entry.colour",4,[<minecraft:golden_apple:1>],[<minecraft:golden_apple>],[50000]);
game.setLocalization("en_US", "botania.page.colourInfusion", "Infusing &1Golden Apple&0.");  

//PageKey, EntryKey, PageNumber, OutputStack, InputArray, ManaCost //Adds an Alchemy Page, Out/InputStack are just visual. The appropriate script for the page would be "mods.botania.ManaInfusion.addAlchemy(<minecraft:sand> * 4, <minecraft:sandstone:*>, 10);" 
mods.botania.Lexicon.addAlchemyPage("botania.page.colourAlchemy","botania.entry.colour",5,[<minecraft:sand> * 4],[<minecraft:sandstone:*>],[10]);
game.setLocalization("en_US", "botania.page.colourAlchemy", "Breaking down &1Sandstone&0");  

//PageKey, EntryKey, PageNumber, OutputStack, InputArray, ManaCost //Adds a Conjuration Page, Out/InputStack are just visual. The appropriate script for the page would be "mods.botania.ManaInfusion.addConjuration(<minecraft:sand:1> * 2, <minecraft:sand:1>, 5);" 
mods.botania.Lexicon.addConjurationPage("botania.page.colourConjuration","botania.entry.colour",6,[<minecraft:sand:1> * 2],[<minecraft:sand:1>],[5]);
game.setLocalization("en_US", "botania.page.colourConjuration", "Conjuring &1Red Sand&0");  

//PageKey, EntryKey, PageNumber, OutputStack, InputArray, ManaCost //Adds a Rune Page, Out/InputStack are just visual. The appropriate script for the page would be "mods.botania.RuneAltar.addRecipe(<minecraft:stonebrick:2>, [<minecraft:stonebrick>, <minecraft:gunpowder>], 5);"
mods.botania.Lexicon.addRunePage("botania.page.colourRune","botania.entry.colour",7,[<minecraft:stonebrick:2>],[[<minecraft:stonebrick>, <minecraft:gunpowder>]],[5]);
game.setLocalization("en_US", "botania.page.colourRune", "The &1Cracked Stone Brick&0.");  
 
//PageKey, EntryKey, PageNumber, BrewString, Ingredients //Adds a Brew Page, Out/InputStack are just visual. The appropriate script for the page would be "[Waiting for Botanical Brewing Support]", for a list of BrewStrings use "/mt BotaniaBrews 
mods.botania.Lexicon.addBrewPage("botania.page.colourBrew","botania.entry.colour",8, "invisibility", [<minecraft:nether_wart>, <minecraft:snowball>, <minecraft:glowstone_dust>], "botania.page.colourBrew_bottom.text");
game.setLocalization("en_US", "botania.page.colourBrew", "A simple brew, it mimics a &1Potion of Invisibility&0, when taken, it has a similar effect, giving the individual a &4Invisibility&0 effect.");
game.setLocalization("en_US", "botania.page.colourBrew_bottom.text", "Pretend you have Incursio");

//PageKey, EntryKey, PageNumber, OutputStack, InputStack //Adds an Elven Page, Out/InputStack are just visual. The appropriate script for the page would be "mods.botania.ElvenTrade.addRecipe(<Botania:flower:4>, [<minecraft:yellow_flower>]);"
mods.botania.Lexicon.addElvenPage("botania.page.colourElven","botania.entry.colour",9,[<Botania:flower:4>],[[<minecraft:yellow_flower>]]);
game.setLocalization("en_US", "botania.page.colourElven", "Trading for &1Yellow Mystical Flower&0."); 


Другие страницы

//PageKey, EntryKey, EntityName, Size //Adds a Entity Page, for a list of EntityNames use "/mt entities
mods.botania.Lexicon.addEntityPage("botania.page.colourEntity","botania.entry.colour",10,"Botania.botania:pixie",100);
game.setLocalization("en_US", "botania.page.colourEntity", "The Pixie");

//PageKey, EntryKey //Adds a Lore Page
mods.botania.Lexicon.addLorePage("botania.page.colourLore","botania.entry.colour",11);
game.setLocalization("en_US", "botania.page.colourLore", "(...) &othe final Page!");   

При локализации текста для страниц можно использовать следующую разметку:

# Специальные коды форматирования:
# <BR> или <BR/>         Разрыв абзаца (<BR/> включен для людей, использующих XML для своей локализации)
# <LINE> или <LINE/>     Вставьте причудливый разрыв строки между разделами текста.


Сопоставление элементов

С помощью Modtweaker вы можете удалять и добавлять отображение элементов для Lexica Botania. У него есть две функции, которые сосредоточены на взаимодействии с миром, а также на взаимодействии с графическим интерфейсом. Одним из них является возможность перемещать блоки щелчком правой кнопки мыши, чтобы увидеть, есть ли у них какая-либо документация внутри Lexica, держа Lexica в руке. Второй способ - щелкнуть левой кнопкой мыши по чему-либо внутри Lexica Botania, чтобы увидеть его корневой путь, например, в разделе рецепты. Используя нашу ранее созданную страницу о создании алмазных блоков, мы теперь можем связать Алмазный блок с миром и книгой с помощью сопоставления предметов.

Пример:

//InputStack, EntryKey, PageNumber 
mods.botania.Lexicon.addRecipeMapping(<minecraft:diamond_block>, "botania.entry.colour", 3);

Также возможно удаление сопоставления элементов для определенного блока или времени.

Пример:

//InputStack 
mods.botania.Lexicon.removeRecipeMapping(<Botania:spreader>);


Примечание: Отображение элементов мира в настоящее время не поддерживается.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...