[Question] Contributing
SirEndii opened this issue ยท 2 comments
Hey, i want to help with Mekanism, i already made some mods and i have a lot of experience with Java.
I want to implement CC integration, i already created a mod which adds new blocks and functions to CC(Advanced Peripherals). I just want to ask whether this is desired or an implementation for ComputerCraft already exists (as a commit but not yet on github).
My native language isn't english, so sorry if it's hard to read my text.
So far the only commit has been a85598c which was me starting to try and figure out how we actually will be structuring things. The idea of how I am trying to implement it is to have a similar annotation based system in concept to CC's @LuaFunction
, except have it be more abstracted so we can use most of the same internal code if/when OpenComputers updates. Our variant also will internally make use of MethodHandles instead of raw ASM, and also allow for us to use java's LambdaMetaFactory to create synthetic method handles for simple getters/setters of variables, and make any methods we want to expose able to be overridden by subclasses (instead of having to be public final). There is still a lot to do, as I got distracted working on QIO features and then working on finishing up the ProjectE port, though there are a good number of TODOs I wrote in that commit pertaining to profiling the performance of various ways of interacting with MethodHandles, and how much prevalidation we need to do and how much is micro optimizations that may actually just slow it down. The other big remaining thing (other than exposing all the various methods we will want to expose) will be to figure out if it is possible to expose a custom Number type to the lua side of things as our energy number uses a custom object, though worst case we can probably just wrap it into a double.