azanor / thaumcraft-5-api Goto Github PK
View Code? Open in Web Editor NEWAPI for Thaumcraft 5
API for Thaumcraft 5
Thaumcraft 5.2.1: Crystal farmer research note has a problem (see pic). Vitreus is one block away from Vitium. No way to connect them together and no other connections to Vitreus.
[http://majestyc2k1.imgur.com/all/]
The infusion recipe is probably wrong, because i cant craft it.
Hey Azanor,
The W. Focus: Portable Hole cost is initially 25 Aer, Terra and Perditio. After the first cast, the cost goes up to 825 of each. After the second cast (if you can pay for the 825 cost) it goes up to 27225 of each vis.
In my private server, the hole will open on the first cast (and second cast) and work properly. It will even close as it should do. But on every single player game I started, the hole won't even open.
What I am describing is most likely the intended behaviour,
but it seems kind of counterproductive to me.
Flux management seemed like the only reasonable way to use them for me, but it seems that doesn't work at all.
If this is the wrong place to say this OKAY, but where else could I say this?
Also where should I put my reports on mistakes in the Thaumonomicon? Or is that not necessary, because that one will also be completely remade(in favor of a HQM-like system?)
I can find the amber item but not the block or brick. What item is it and what meta? please. :)
I have an item which I would like to be able to have the Repair enchant, but it has nbt variants that I don't want to be able to have the Repair enchant. As far as I know your repair enchantment just checks for instanceof IRepairable for it's canApply method currently and that would change to something like:
instanceof IRepairable && canApplyRepairEnchant;
My Catalyst for my Crucible Recipe doesn't show up in my ResearchPage
Screenshot
This is how I added the Recipe:
public static CrucibleRecipe magmatic_amber_recipe;
public static void createCrucibleRecepies() {
magmatic_amber_recipe = ThaumcraftApi.addCrucibleRecipe(new String[] {"chemistry_research"}, new ItemStack(TCAddItems.charged_amber_item), TCAddItems.burned_amber_item, new AspectList().add(Aspect.FIRE, 5).add(Aspect.WATER, 5));
}
This is how i added the Research:
public class R_Chemistry extends ResearchItem {
private static ResearchPage[] pages;
private static ResourceLocation icon = new ResourceLocation("thaumcraftadd", "textures/researches/chemistry.png");
private static AspectList aspects = new AspectList().add(Aspect.FIRE, 1).add(Aspect.WATER, 1).add(Aspect.EARTH, 1);
public R_Chemistry() {
super("chemistry_research", "thaumcraftadd", aspects, 12, 8, 1, icon);
pages = new ResearchPage[] {
new ResearchPage("You have discovered a way to create energy - that you still not understand - and put it inside an Amber crystal. That might become handy.\n"
+"Also this seems to be the only way to get Magmium-Essence - for now."),
new ResearchPage(TCAddCrucibleRecepies.magmatic_amber_recipe)
};
setPages(pages);
setRound();
setParents("basic_research");
}
}
I am not sure, if it's a bug or my stupidness. (and Sorry for my English)
EDIT: I maybe should add, that the crucible-recipe works, it just displays wrong in the thaumonomicon
AspectHelp.java, line 93:
if (!ThaumcraftApiHelper.getNBTDataFromId(tc, tc.getTagId(nbt.name), nbt.name).equals(nbt.value)) continue f1;
should probably be changed to:
if (!tc.getTag(nbt.name).equals(nbt.value)) continue f1;
as NBTTagCompund no longer allows you to select tags by ID. Also, same issue on ScanEntity.java, line 42.
I'm creating some custom control seals for golems and can place my seal in world but I haven't been able to get custom textures to work. Both the item ("item placer") and entity versions of the seal show missing/broken textures. I've double- and triple-checked that the files (PNG texture and JSON model file) are correctly in their respective places, but it appears that despite me specifying in the ResourceLocation to look in my mod's domain, the error messages indicate that Minecraft is looking in the "thaumcraft" folder.
The relevant part of the log is here. And this is probably the most relevant of that:
[20:22:07] [Client thread/ERROR] [FML]: Exception loading model for variant thaumcraft:seal_craft#inventory for item "thaumcraft:seal"
java.lang.Exception: Could not load model definition for variant thaumcraft:seal_craft#inventory
at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:215) ~[ModelLoader.class:?][omitting several lines]
Caused by: java.lang.RuntimeException: Encountered an exception when loading model definition of model thaumcraft:blockstates/seal_craft.json
at net.minecraft.client.resources.model.ModelBakery.getModelBlockDefinition(ModelBakery.java:165) ~[ModelBakery.class:?]
at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:211) ~[ModelLoader.class:?]
... 22 more
Caused by: java.io.FileNotFoundException: thaumcraft:blockstates/seal_craft.json
at net.minecraft.client.resources.FallbackResourceManager.getAllResources(FallbackResourceManager.java:93) ~[FallbackResourceManager.class:?]
(This error shows up in the log before reaching the main menu.)
As you can see, it is referring to the "thaumcraft" domain instead of my own, and of course isn't finding the JSON there because that's the wrong place. There were no references to my mod domain in the log elsewhere, either. All my textures for other items and blocks work fine.
I also noticed that the item placer itself has the domain thaumcraft as part of its ID but I had assumed that was normal due to the way the item was registered. All seals, including ones I registered, are called "thaumcraft:seal". However, now that I see this problem, maybe it is related.
My seal class includes this:
public ResourceLocation icon;
public String key;
public SealCraft() {
this.icon = new ResourceLocation("automagy", "items/seals/seal_craft");
this.key = "Automagy:craft";
}
@Override
public String getKey() {
return key;
}
@Override
public ResourceLocation getSealIcon() {
return icon;
}
The ResourceLocation I use is practically the same as the ones Thaumcraft itself uses for its seals except that the domain is for my mod, and the file is there, so I don't see how that could be the problem. Am I missing something?
It looks like the API refers to classes that are not included in the API, for example:
thaumcraft-5-api/blocks/BlocksTC.java
Line 3 in 745f29e
This makes it impossible to compile a mod using this API unless the dev build is included, which is not always possible.
With TC4, I was able to create new infusion enchantments. Maybe I'm missing something, but I don't see a way to do that now. InfusionEnchantmentRecipe is marked as deprecated.
In case it matters, I'm trying to create a recipe that applies Lure and another for Luck of the Sea. Obviously, I'd need to be able to apply them to fishing rods.
๐ญ We had it as a submodule for Growthcraft to avoid including the api physically.
If anything just lock issues on the repo and leave a note in a readme that a newer version is available, since this version is for Thaumcraft 5 (minecraft 1.8) and we're still on 1.7.
So I ran through the Taiga on my horse during the Night, watched a tainted node spew stuff into the air and then THIS.
Reloading the world didn't fix it. Reloading the entire game did.
Off-topic. What thought exactly is the foundation of taint being irreversible?
I see more issues with that than logical reasons. May I be enlightened?
I request having some form of event that will fire when you use a wand. This event probably should have an Enum that specifies its drain, such as Crafting, Casting, etc. This will allow addons to perform special behaviour based on the amount of vis that would be consumed, as well as have the ability to modify the cost or even prevent/cancel the event entirely.
Can't find out when the player equips and un-equips a focus.
I may be missing how to do this so please let me know.
You have the code to only charge the want when it is in hand in the beginning of research.
Could you please forward that status to the ItemFocusBasic class in some sort of way?
onActive or onUpdate (...,isSelected=true)
I am trying to create 2 scenarios.
This is related to a problem I reported here: Azanor/thaumcraft-5#512 . This suggestion may not be viable unless that problem is fixed (or maybe both birds can be killed with one stone).
The problem noted there is that provision requests from golem seals are inflexible, not ignoring things like metadata even if the seals are set to do so. When that's no longer a problem, it would be even better if we could somehow specify more dynamically in our custom seals whether an item was acceptable for provisioning. We could look at the item damage and do some basic logic, for example. Ideally, we'd be able to specify an item count, too, so we can regulate the number of a given item going to an inventory.
I need something like this because I want a seal to request an item from its filter and not simply completely ignore the item damage but actually take it into the consideration so the item is accepted usually but, if a certain toggle is set, the item is rejected if it is about to break. This is done to preserve the item much like the arcane bore does. (I can and do use this logic in canGolemPerformTask, but the Provide seal doesn't check that nor should it since that method checks against a golem, not an item stack.)
Perhaps the solution could involve letting us extend the ProvisionRequest class to make our own rules.
I commented on the existing close issue that I brought up, but I figured responding to a closed issue can easily be overlooked, so I'm opening another one.
From what I can tell after some experimentation, the only requirement for an item to be able to get Repair enchanted on it is that it's an instanceof IRepairable. Returning false from doRepair, does prevent the item from actually repairing when it gets the enchant on it, but doesn't prevent it from being able to receive it in the first place. Some callback to the itemstack to determine if it can receive the enchant or not would be much appreciated.
I am kind new to this, so not sure if it's a good thing to do, or if I just didn't find it, but it'd be sweet if addons could gain easy access to those keys.
Not sure if this intented or not, but it looks like AspectHelper.getObjectAspects()
always returns a non-empty AspectList
for non-null itemstacks.
However, when the item does not have any aspects registered to it, this list seems to be of length 1 with null as its first element.
I assume the intended behaviour of this is that the AspectList
should have size 0?
Say we got ResearchItem("MYVIRTUALITEM", "MYCATEGORY").setParents("FOCUSPOUCH", "ELEMENTALTOOLS")
and I want "MYVIRTUALITEM"
to autounlock once both "FOCUSPOUCH"
and "ELEMENTALTOOLS"
are complete.
As far as I can tell this isn't possible at the moment. I tried .setAutoUnlock(), but that just unlocks it right away, regardless of parents. I tried adding nothing (in hopes that virtual ResearchItems get handled differently in that regard), but that did... nothing x). I tried getting both parent researches and adding "MYVIRTUALITEM"
to their sibling list, which sort of worked. The problem there was that researching "FOCUSPOUCH"
would directly finish "MYVIRTUALITEM"
, and presumably because finishing a research backchecks that all parents are unlocked, also finish "ELEMENTALTOOLS"
and all its parents.
Bottom line: I'd like the last method to work as I intented it. Maybe add some functions to make setting up this kind unlocking easier.
If it still makes sense to contribute to this Api, what with TC II in the air, please tell me and I can see if I can figure out how to make a proper pull request :D
Hello,
I'm adding Thaumcraft recipe integration to JEI Addons for Minecraft 1.8.
I want to hide recipes that are not researched, but it's difficult to efficiently determine when research has happened.
Can you fire a ResearchComplete
event after PacketResearchComplete.processMessage
and a ResearchSync
event after PacketSyncResearch.onMessage
?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.