Mekanism

Mekanism

111M Downloads

Mekanism-Dev #433 Issues

TheRealM18 opened this issue ยท 37 comments

commented

Can not click on the mekanism tab.
Does not work with ender io, cause an infinite loop in forge loader.

commented

maybe you could split the API and the rest of the mod so that one can load first and the other can load last?
(moved from the closed issue)

commented

@unpairedbracket, mind fixing this? I don't like to mess with the mod sorting/priority configuration

commented

I've removed the dependency on EnderIO, but we now need IC2 or CoFHCore to be installed to use their power systems.

commented

Let me know what it's like using everything now, I'll look at changing it back if people think it's better how it was before, but this should remove the issue of the IC2API crashes, and simplifies a lot of things a bit.

Also, if any crashes arise from it, let me know - I may have missed something.

commented

Seems to be working as of 749c579. I have CofHCore and EnderIO installed. Game starts up and world loads without dependency errors. EIO machines draw power from universal cables.

commented

tried download from the indiewiki and tried building the latest development with gradle assemble neither one worked. (am I missing something in the build steps?

commented

In what way is it not working?

commented

if I build from the cloned git repo using gradle it says the API is missing. I assume i need the mekanism dev files or something?
cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: mekanism/api/AdvancedInput

commented

version 8.0.0.473 from the indiewiki has the following error on launch:cpw.mods.fml.common.LoaderException: java.lang.NoSuchMethodError: mekanism.common.recipe.RecipeHandler.addChemicalInjectionChamberRecipe(Lmekanism/api/AdvancedInput;Lnet/minecraft/item/ItemStack;)V

commented

Can you provide full stacktraces (logs) of those crashes please?

commented

sure, I think the problem for the git clone build was from not using fullbuild. I dont think it was including the API files in the jar.

commented

guess i'll have to wait for a release lol

commented

I've just discovered that AOBD is open-source - I could potentially maintain a Mekanism 8-compatible version that would hopefully also have the advantage that I'd be able to pull-request it when we release v8 to avoid pissing off @ganymedes01 too badly by changing our api at an inopportune time.

commented

really? I'd be glad to know where the repo is hosted, I can't find the thing. probably because AOBD is so short.... (or maybe its got another name)

commented

nvm found it, google has weird expectations of what I want in my results apparently.

commented

It is here - never mind, you found it.

commented

There it is. Linked straight to the Mekanism file :3

https://github.com/ganymedes01/Another-One-Bites-the-Dust/blob/mc1.7/src/main/java/ganymedes01/aobd/recipes/modules/Mekanism.java

That said, I don't mind maintaining the Mekanism support myself, and feel free to change your api all you want, I don't mind :3 As long as you let me know I'll fix it all up on my side as soon as I can. Or... people's stuff will start to crash, then I'll be made known of changes. So either way I find out eventually lol

commented

But hey, I welcome contributions as well, if you want to send a PR, I'm open to them ;3

commented

The API crash: http://paste.fedoraproject.org/198778/14265537/

The chemical injection chamber related crash: http://paste.fedoraproject.org/198780/26553883

commented

Possibly that could be an issue - it shouldnt be referring to mekanism/api/AdvancedInput at all though, that class hasn't existed for a while.

commented

They are exactly the same crash, and both are caused by the fact that AOBD hasn't been updated for Mekanism 8 yet (as indeed they shouldn't have yet, it's not been released) so removing AOBD for the time being should fix it.

commented

with the mods i'm using, i can't really drop AOBD, because it adds the inter-compatibility that we need.

commented

I guess you could have a Mekanism7 module and a Mekanism8 module, it really depends on whether your module system can load modules dependent on mod version, and whether it avoids loading imports of modules it's not using.

commented

Suppose the choice on whether to wait for the IMC system also depends on how easy the changes for the current system would be vs how long it'd take for the new system to be released, (plus whether you can be arsed to code a change that wouldn't work when he pushes the new api anyway). I've not heard of IMC, i'm more a general programmer than a minecraft modder.

commented

Just curious did the functionality of mekanism.api.AdvancedInput go away, or was it simply relocated? It seems like its somehow related to moving amounts of gas.

commented

It only checks for mod id when loading modules, but it doesn't load libraries it doesn't need.

@kotoroshinoto IMC means inter-mod communication. It's a basic system that allows for mods to communicate. You can send a message with a key (string) and the content (which can be an ItemStack, NBT or a string)

commented

I'm in the process of writing an IMC-based recipe API so don't start anything yet. Hopefully this should make things easier.

commented

I guess we can close this, actually-

commented

IMC would be a good solution. I'd like it a lot ;D

commented

Awesome, that should improve everyone's quality of life. The transition from Mekanism 7 to 8 turned out to be more trivial than I expected anyway, and IMC would hopefully make things even easier.

commented

Would it be possible to easily support both mekanism 7 and 8? Or should I wait for the IMC system to be put in place?

commented

@ganymedes01 I'm now preparing a PR that should work (not in the cleanest way, but should work). I haven't managed to build AOBD due to me not having any of the other mods' APIs at hand but I think my solution should solve the issue and maintain compatibility with both Mekanism 7 and 8.

commented

@kotoroshinoto AdvancedInput is still present, but as part of our new, more robust recipe system that is only exposed to the outside world through the RecipeHelper in the API that now allows adding any of our macines' recipes without using our custom input, output or recipe classes, just ItemStacks, GasStacks/Gas names, and FluidStacks/names (and so on)

commented

Alright. I have finished the IMC system, and done it properly so that it dynamically adds interfaces for new machine types when they are added by means of a few RecipeType additions.

Here is an example of adding an Enrichment Chamber recipe:
IMC demonstration

I'll add something to the GitHub wiki page that demonstrates the different tag names for adding recipes.

commented

@unpairedbracket and @ganymedes01, I have created a wiki page that provides a (hopefully) detailed explanation of how to interact with Mekanism via IMC. Hopefully it's helpful!

https://github.com/aidancbrady/Mekanism/wiki/IMC-based-recipe-integration

commented

@ganymedes01 ty for the warning regarding pushing nonworking code. Its partly stuff like that why I use aroma1997's backup mod. I do run a server off my home machine, but its low population (only 2 people including myself reliably using it at the moment). If anything in a mod update dies or derps the map somehow, I can just roll back.(I often create small personal modpacks that I host on a git server with private access also on my PC, so I can track mod changes and fix things more quickly if I screw up with bad versions or configs.)

commented

@aidancbrady Thanks! I'll have a read through the wiki and use the new IMC system as soon as I can.
By your example it seems to be pretty standard and easy to use, so it shouldn't take me too long.