MineTweaker methods (1.7.10) - Shinoow/AbyssalCraft-Integration GitHub Wiki
As of version 1.2.0, AbyssalCraft Integration now has support for MineTweaker, allowing you to add recipes to AbyssalCraft machines through MineTweaker scripts.
The following information is meant for people who know how to use MineTweaker. If you are not one of them, then click here for information on that.
The integration allows you to add Transmutator recipes, Crystallizer recipes, Creation Rituals, Infusion Rituals, modify information displayed in the Necronomicon and also allows you to add things to the Lesser Shoggoth Food list.
mods.abyssalcraft.Transmutator.addTransmutation(<input>, <output>, <exp>);
Where: input
and output
are ItemStacks, and exp
is a float.
Example: mods.abyssalcraft.Transmutator.addTransmutation(<minecraft:dirt>, <minecraft:diamond>, 0.5);
This would transmute a block of Dirt into a Diamond, and give you 0.5 exp per block transmuted.
They can also be removed:
mods.abyssalcraft.Transmutator.removeTransmutation(<input>);
Where: input
is the input ItemStack that you want to remove a recipe for.
Example: mods.abyssalcraft.Transmutator.removeTransmutation(<minecraft:dirt>);
This would remove the recipe we added above, preventing you from transmuting Dirt into Diamonds.
Crystallizer recipes are added in two ways (to separate dual-output recipes with single-output recipes):
Single output:
mods.abyssalcraft.Crystallizer.addSingleCrystallization(<input>, <output>, <exp>);
Where: input
and output
are Objects, and exp
is a float.
Example: mods.abyssalcraft.Crystallizer.addSingleCrystallization(<minecraft:dirt>, <abyssalcraft:crystalshard:0> * 3, 0.5);
This would crystallize a block of Dirt into 3 Crystallized Iron Shards, and give you 0.5 exp per block crystallized.
Dual output:
mods.abyssalcraft.Crystallizer.addCrystallization(<input>, <output1>, <output2>, <exp>);
Where: input
, output1
and output2
are ItemStacks, and exp
is a float.
Example: mods.abyssalcraft.Crystallizer.addCrystallization(<minecraft:dirt>, <abyssalcraft:crystalshard:0> * 3, <abyssalcraft:crystalshard:4> * 2, 0.5);
This would crystallize a block of Dirt into 3 Crystallized Iron Shards, 2 Crystallized Oxygen Shards and give you 0.5 exp per block crystallized.
They can also be removed:
mods.abyssalcraft.Crystallizer.removeCrystallization(<input>);
Where: input
is the input ItemStack that you want to remove a recipe for.
Example: mods.abyssalcraft.Crystallizer.removeCrystallization(<minecraft:dirt>);
This would remove the recipe(s) we added above, preventing you from doing any of the above crystallizations.
mods.abyssalcraft.CreationRitual.addRitual(<unlocalizedName>, <bookType>, <dimension>, <requiredEnergy>, <remnantHelp>, <item>, [offerings])
Where: unlocalizedName
is a String representing the ritual (later perfixed with "ac.ritual", and with a decription String which is "ac.ritual.<unlocalizedName>.desc").
bookType
and dimension
are integers, where bookType is the Necronomicon "level" required in order to perform the ritual (0 = Normal, 1 = Abyssal Wasteland, 2 = Dreadlands, 3 = Omothol and 4 = Abyssalnomicon) and dimension is the dimension where you can perform it (current ones are the Overworld, the Abyssal Wasteland, the Dreadlands, Omothol and the Dark Realm, unless a mod adds support for it's dimension). If you specify the dimension as -1, the ritual can be performed in any available dimension.
requiredEnergy
is a float representing the amount of Potential Energy required in order to perform the ritual (currently has no use, unless the AbyssalCraft version used is later than 1.8.9, in which Potential Energy should be implemented into the mod).
remnantHelp
is whether or not Remnants should aid in performing the ritual (currently has no effect).
item
and offerings
is a Object respective an array of Objects (with the maximum amount of 8), where item
is the output, and offerings
are the input (eg. items placed on the pedestals) The offerings should be specified as [<modid:name>, <modid:name>, <modid:name> etc]
with the array size being 8 at most. The offerings can be OreDict entries as well as regular items.
Example: mods.abyssalcraft.CreationRitual.addRitual("creationRitualTest", 0, -1, 1000, false, <minecraft:diamond>, [<minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>]);
game.setLocalization("ac.ritual.creationRitualTest", "Creation Ritual Test");
game.setLocalization("ac.ritual.creationRitualTest.desc", "This is a test ritual, turning coal into diamonds!");
This would add a Creation Ritual that requires the base Necronomicon, can be performed anywhere, requires 1000 PE, doesn't require Remnants to be present (this feature was never properly implemented, so unless you purposely want to torture your users, set it to false), which creates a Diamond out of 8 Coal. The bits afterwards are for localizing the Ritual name and description (so the ritual page in the Necronomicon has a name and a description).
They can also be removed:
mods.abyssalcraft.CreationRitual.removeRitual(<output>)
Where: output
is the Object output of the ritual(s) you want to remove.
Example: mods.abyssalcraft.CreationRitual.removeRitual(<minecraft:diamond>);
This would remove the ritual we added above, preventing people from turning coal into diamonds through a Creation Ritual.
mods.abyssalcraft.InfusionRitual.addRitual(<unlocalizedName>, <bookType>, <dimension>, <requiredEnergy>, <remnantHelp>, <item>, <sacrifice>, [offerings])
Where: unlocalizedName
is a String representing the ritual (later perfixed with "ac.ritual", and with a decription String which is "ac.ritual.<unlocalizedName>.desc").
bookType
and dimension
are integers, where bookType is the Necronomicon "level" required in order to perform the ritual (0 = Normal, 1 = Abyssal Wasteland, 2 = Dreadlands, 3 = Omothol and 4 = Abyssalnomicon) and dimension is the dimension where you can perform it (current ones are the Overworld, the Abyssal Wasteland, the Dreadlands, Omothol and the Dark Realm, unless a mod adds support for it's dimension). If you specify the dimension as -1, the ritual can be performed in any available dimension.
requiredEnergy
is a float representing the amount of Potential Energy required in order to perform the ritual (currently has no use, unless the AbyssalCraft version used is later than 1.8.9, in which Potential Energy should be implemented into the mod).
remnantHelp
is whether or not Remnants should aid in performing the ritual (currently has no effect).
item
, sacrifice
and offerings
are Objects respective an array of Objects (with the maximum amount of 8), where item
is the output, sacrifice
is the item placed on the altar and offerings
are the input (eg. items placed on the pedestals). The offerings should be specified as [<modid:name>, <modid:name>, <modid:name> etc]
with the array size being 8 at most. The offerings and the sacrifice can be OreDict entries as well as regular items.
Example: mods.abyssalcraft.InfusionRitual.addRitual("infusionRitualTest", 4, 53, 10000, false, <minecraft:diamond>, <minecraft:dirt>, [<minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>]);
game.setLocalization("ac.ritual.infusionRitualTest", "Infusion Ritual Test");
game.setLocalization("ac.ritual.infusionRitualTest.desc", "This is a test ritual, turning dirt into diamonds by infusing it with more Dirt!");
This would add a Infusion Ritual that requires the Abyssalnomicon, can only be performed in the Dark Realm, requires 10000 PE, doesn't require Remnants to be present (this feature was never properly implemented, so unless you purposely want to torture your users, set it to false), which creates a Diamond by infusing a block of Dirt with 8 blocks of Dirt. The bits afterwards are for localizing the Ritual name and description (so the ritual page in the Necronomicon has a name and a description).
They can also be removed:
mods.abyssalcraft.InfusionRitual.removeRitual(<output>)
Where: output
is the Object output of the ritual(s) you want to remove.
Example: mods.abyssalcraft.InfusionRitual.removeRitual(<minecraft:diamond>);
This would remove the ritual we added above, preventing people from turning coal into diamonds through a Infusion Ritual.
mods.abyssalcraft.PotionRitual.addRitual(<unlocalizedName>, <bookType>, <dimension>, <requiredEnergy>, <remnantHelp>, <potion>, [offerings])
mods.abyssalcraft.PotionAoERitual.addRitual(<unlocalizedName>, <bookType>, <dimension>, <requiredEnergy>, <remnantHelp>, <potion>, [offerings])
Where: unlocalizedName
is a String representing the ritual (later perfixed with "ac.ritual", and with a decription String which is "ac.ritual.<unlocalizedName>.desc").
bookType
and dimension
are integers, where bookType is the Necronomicon "level" required in order to perform the ritual (0 = Normal, 1 = Abyssal Wasteland, 2 = Dreadlands, 3 = Omothol and 4 = Abyssalnomicon) and dimension is the dimension where you can perform it (current ones are the Overworld, the Abyssal Wasteland, the Dreadlands, Omothol and the Dark Realm, unless a mod adds support for it's dimension). If you specify the dimension as -1, the ritual can be performed in any available dimension.
requiredEnergy
is a float representing the amount of Potential Energy required in order to perform the ritual (currently has no use, unless the AbyssalCraft version used is later than 1.8.9, in which Potential Energy should be implemented into the mod).
remnantHelp
is whether or not Remnants should aid in performing the ritual (currently has no effect).
offerings
is an array of Objects (with the maximum amount of 8), where offerings
are the input (eg. items placed on the pedestals). The offerings should be specified as [<modid:name>, <modid:name>, <modid:name> etc]
with the array size being 8 at most. The offerings can be OreDict entries as well as regular items.
potion
is the ID of the Potion to add/spread through the ritual (this is a numerical ID in 1.7.10).
Example: mods.abyssalcraft.PotionRitual.addRitual("testpotionnormal", 0, -1, 1000, false, 0, [<minecraft:stone>, <minecraft:dirt>]);
game.setLocalization("ac.ritual.testpotionnormal", "Test Potion Ritual");
game.setLocalization("ac.ritual.testpotionnormal.desc", "Testing MineTweaker Potion Ritual creation!");
mods.abyssalcraft.PotionAoERitual.addRitual("testpotionaoe", 0, -1, 1000, false, 0, [<minecraft:stone>]);
game.setLocalization("ac.ritual.testpotionaoe", "Test Potion Ritual (AoE)");
game.setLocalization("ac.ritual.testpotionaoe.desc", "Testing MineTweaker Potion Ritual creation! This one is the Area-of-Effect variant!");
This would add both a normal and an Area-of-effect Potion Ritual that requires the base Necronomicon, can be performed anywhere, requires 1000 PE, doesn't require Remnants to be present (this feature was never properly implemented, so unless you purposely want to torture your users, set it to false), which inflicts the Speed Potion Effect from offering a block of Stone (and a block of Dirt for the normal variant). The bits afterwards are for localizing the Ritual name and description (so the ritual page in the Necronomicon has a name and a description).
They can also be removed:
mods.abyssalcraft.PotionRitual.removeRitual(<output>)
mods.abyssalcraft.PotionAoERitual.removeRitual(<output>)
Where: output
is the ID of the Potion output of the ritual(s) you want to remove (this is a numerical ID in 1.7.10).
*Example: mods.abyssalcraft.PotionRitual.removeRitual(0)
mods.abyssalcraft.PotionAoERitual.removeRitual(0)
This would remove the rituals we added above, resulting in there not being any rituals for applying the Speed Potion Effect.
As of ACI 1.4.0, you can now edit the Necronomicon! The things you can do is add/edit/remove Chapters (collections of Pages), and add/edit/remove Pages (simply a Page, can be plain text, an ItemStack, a Crafting Recipe or an Image with text underneath). There's currently 232 editable Pages, so you have A LOT of things to mess around with.
Adding a Chapter:
mods.abyssalcraft.necronomicon.internal.addChapter(<uniqueidentifier>, <chaptertitle>, <necroDataUniqueidentifier>)
Where:
uniqueidentifier
is a String representing the Category (should be unique for the NecroData, eg. only a single Category can have a specific identifier)
chaptertitle
is a String representing a title (either localized, if possible in the .zs file, or just a name)
necroDataUniqueidentifier
is a String representing the NecroData you want to add your category to.
There will be a list at the bottom of the page naming all used NecroData and Category identifiers.
Removing a Chapter:
mods.abyssalcraft.necronomicon.internal.removeChapter(<uniqueidentifier>, <necroDataUniqueidentifier>)
Where:
uniqueidentifier
is a String representing the Category (should be unique for the NecroData, eg. only a single Category can have a specific identifier) you want to remove
necroDataUniqueidentifier
is a String representing the NecroData you want to remove the category from.
Adding Pages:
mods.abyssalcraft.necronomicon.internal.addNormalPage(<pageNum>, <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)
mods.abyssalcraft.necronomicon.internal.addItemPage(<pageNum>, <displayitem>, <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)
mods.abyssalcraft.necronomicon.internal.addImagePage(<pageNum>, <resourcepath>, <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)
mods.abyssalcraft.necronomicon.internal.addCraftingPage(<pageNum>, <output>, <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)
mods.abyssalcraft.necronomicon.internal.addCraftingPage(<pageNum>, <output>, [inputs], <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)
Where:
pageNum
is a Integer representing the Page's number (setting that as the number of an already existing page will override it).
pagetext
is a String representing the text displayed on the page (localized string or plain text).
chapterIdentifier
is a String representing the identifier of the Chapter this Page should be added to.
necrodataIdentifier
is a String representing the identifier of the NecroData the aforementioned Chapter belongs to.
displayitem
is an ItemStack used to display on the Page. Only that type is allowed.
resourcepath
is a String representing a ResourceLocation to an image (like 'modid:path/to/texture.png", or "path/to/texture.png" which would default to Minecraft's texture resources).
output
is a Item/Block/ItemStack representing the output of a Crafting Recipe (if used without the array, any registered recipe will automatically be fetched).
inputs
is an array of Items/Blocks/ItemStacks used to display the recipe (in cases where you want to show a specific recipe for something with multiple recipes). In it's code form, it can accept null values, as it requires 9 Objects (so if there's a substitute for null Objects, use that for any blanks in the recipe).
Removing a Page:
mods.abyssalcraft.necronomicon.internal.removePage(<pagenum>, <chapterIdentifier>, <necrodataIdentifier>)
Where:
pageNum
is a Integer representing the number of the Page to be removed.
chapterIdentifier
is a String representing the identifier of the Chapter this Page should be removed from.
necrodataIdentifier
is a String representing the identifier of the NecroData the aforementioned Chapter belongs to.
It should be noted that not all Chapter identifiers are used in every NecroData instance.
NecroData:
- greatoldones
- overworld
- abyssalwasteland
- dreadlands
- omothol
- darkrealm
- rituals
- miscinfo
Chapter:
- outergods
- greatoldones
- materials
- progression
- entities
- specialmaterials
- armortools
- gettingstarted
- potentialenergy
- enchantments
As of ACI 1.4.2, you can now add Entities to the Lesser Shoggoth Food list (used to specify what the Lesser Shoggoth should consider food) through MineTweaker! Due to these lists being separated from the internal ones, they should be empty by default (unless another mod present adds things to them), so there will only be methods for adding things to them.
Listing an Entity as food:
mods.abyssalcraft.shoggoth.addShoggothFood(<clazz>)
Where: clazz
is a String representing the code path to a Entity class that extends EntityLivingBase
(essentially any living Entity).
Example: mods.abyssalcraft.shoggoth.addShoggothFood("net.minecraft.entity.monster.EntitySpider");
This would add the Spider as Shoggoth food.