The instructions for recompiling with NetBeans seemed to leave out some info, like what check boxes should be checked, etc; I haven't been able to successfully compile. It would be awesome if someone would record the process in Camtasia or something and put it on YouTube. I'll try it again and leave a more detailed description of the problems I'm running into later, but gotta run right now.
I find that it compiles a dream in Eclipse - simply untick the "Treat all errors as fatal option", and compile. Then it's a simple matter of getting the .class files from the bin directory of the project in the appropriate workspace, copying it to a temp file, and adding it back to minecraft.jar.
I'll try and make a document outlining process and possibly a video a bit later.
So guys, I haven't yet asked for permission to release it (that's on my to-do list, but I'm pretty busy today), but I have worked out a merged mod for More Stackables 1.1 and Autocart - basically, apply the one zip, get all the features of both mods, ie: minecarts stack to 4, and let you in them instantly.
When I get around to getting permission, I'll post it here.
Also, now that I've got my feet wet, I'll probably be posting more mods eventually :smile.gif:
So I started reading this last night, got things set up, started poking around in the code, made a few changes here and there, and then I got to cacti (hy for reference), and, while I can't really decipher what cn does, in method a I changed the 3 to an 8 so the cacti would grow as long as there were less than 7 consecutively below them (as opposed to the usual 2 cacti below the top one). For reference,
public void a(cn paramcn, int paramInt1, int paramInt2, int paramInt3, Random paramRandom) {
if (paramcn.a(paramInt1, paramInt2 + 1, paramInt3) == 0) {
int i = 1;
while (paramcn.a(paramInt1, paramInt2 - i, paramInt3) == this.bc) {
i++;
}
if (i < 8) {
int j = paramcn.e(paramInt1, paramInt2, paramInt3);
if (j == 15) {
paramcn.d(paramInt1, paramInt2 + 1, paramInt3, this.bc);
paramcn.b(paramInt1, paramInt2, paramInt3, 0);
} else {
paramcn.b(paramInt1, paramInt2, paramInt3, j + 1);
}
}
}
}
Does someone more knowledgeable know how cn functions, what else it's used in, and how to utilize it for a new object? That particular method looks like it checks the block signature directly below the block in question, but, again, I'm not really sure.
Additionally, does anyone have a template and guide of sorts for making new kinds of blocks? A list of 'put a line like this in these classes so you can access the block,' 'this chunk of code will make your block glow like a torch,' 'this bit here will make it catch things on fire,' things like that. Or are we still in the dark about most of those parts of the code?
When I get home tonight I am going to look into creating a scripting base, once I get something put together I can post instructions. For now I will look at doing ECMA (JavaScript) scripting insertion. Essentially how I want to do it is that you write everything in the scripts, so that when a new release is put out, only the scripting interface has to be updated with the new variable names and functions. If anybody has any ideas for what objects to focus on first, let me know.
OK I started a spreadsheet with a line for every source file. I'm going to add everything in this thread, and then start browsing the source to see if I can figure out any others. I'd put it up on Google docs for everyone to contribute to, but griefer idiots would just erase it or put pedobear stories in it.
One thing I noticed so far is that a lot of classes listed in the thread appear to be for the client, not the server. I guess if someone posts, they should specify which they're referring to.
I'll go through and do a doxygen on the unedited source for the client and post it on my website i guess, it's not editable for what goes where, but it should give a good idea of what is based on what class and how they interact
I'll go through and do a doxygen on the unedited source for the client and post it on my website i guess, it's not editable for what goes where, but it should give a good idea of what is based on what class and how they interact
That will help, just remember all of what we're doing will have to be redone in a few weeks when Minecraft v.Boo comes out.
Not a big deal, it only takes a few minutes to run doxygen then another bit to upload it. I ran doxygen with a lot of extra stuff enabled to help people trace what's calling what and where.
It will mess recompiling with netbeans a class file that call for the if class since it's
also a keyword.
So, rename the if.class for something like "iffix.class" and calls on the file you modify and it
should correct all the red spot.
"do.class" will probably have the same problem, then? And if we get more classes in the Boo update, we'll have to deal with "or.class" as well.
I'm not a Java programmer, but I was able to contribute by putting in placeholders for the rest of the classes ("class xx".)
It was exciting finding entity lists and being able to label a class definitively that way (ew.class for example) and then figuring out that those entities were all "extends dq" (class dq = "Monster" entity.)
Someone started color-coding some classes based on what they're sub-classed from. For example, "animals" are subclassed from ag.class and "monsters" are subclassed from dq.class.
One issue; when I added a lot of the classes that were missing from the list, I didn't add the extends/etc info. I just added the class names blindly. I'll try to go back and add that info.
I'll try and make a document outlining process and possibly a video a bit later.
When I get around to getting permission, I'll post it here.
Also, now that I've got my feet wet, I'll probably be posting more mods eventually :smile.gif:
Does someone more knowledgeable know how cn functions, what else it's used in, and how to utilize it for a new object? That particular method looks like it checks the block signature directly below the block in question, but, again, I'm not really sure.
Additionally, does anyone have a template and guide of sorts for making new kinds of blocks? A list of 'put a line like this in these classes so you can access the block,' 'this chunk of code will make your block glow like a torch,' 'this bit here will make it catch things on fire,' things like that. Or are we still in the dark about most of those parts of the code?
I really wanna help.
That will help, just remember all of what we're doing will have to be redone in a few weeks when Minecraft v.Boo comes out.
Fix: Trees now have a 5% probability of dropping an apple instead of a sapling.
Added : Url to a new optional tool, url to some useful threads, All or almost all findings about class of the current version.
More to come.
http://www.runlikehell.org/minecraft
This is an extremely advanced version but it should help people trace how things work and where they lead.
It will mess recompiling with netbeans a class file that call for the if class since it's
also a keyword.
So, rename the if.class for something like "iffix.class" and calls on the file you modify and it
should correct all the red spot.
"do.class" will probably have the same problem, then? And if we get more classes in the Boo update, we'll have to deal with "or.class" as well.
I'm not a Java programmer, but I was able to contribute by putting in placeholders for the rest of the classes ("class xx".)
It was exciting finding entity lists and being able to label a class definitively that way (ew.class for example) and then figuring out that those entities were all "extends dq" (class dq = "Monster" entity.)
One issue; when I added a lot of the classes that were missing from the list, I didn't add the extends/etc info. I just added the class names blindly. I'll try to go back and add that info.
I think the word you're looking for is "refactor"?
And I don't know personally as I'm not a good programmer.