I've been working on some Minecraft hacks to the underlying storage system and started developing a list of "WTF were they thinking" type things. If you want to know what those are look at the block comments at the top of the header files.
Also, some class (don't remember which one) has a field called like "isRemote", which is exactly the opposite of what it's supposed to be. Someone at MCP got confused there ^^All the things in minecraft that are publics, altered from anywhere, with no central update/alteration accessors.
All the things that have garbage names, names that have been known to be wrong for several versions of Forge, and still are not fixed.
Example: getAverageGroundHeight (misnamed), which really is just the lowest spawn height.
Latest: The "heightmap" (public, no sane access, bad name), that turns out to be skylight permeability, that can be modified by anything in the code, and only has an initial / sane generation on a chunk level on chunk creation. Oh, and a client-side only call to update/fix things that get wrong.
(seriously, was this someone's "learning java" project?
Also, some class (don't remember which one) has a field called like "isRemote", which is exactly the opposite of what it's supposed to be. Someone at MCP got confused there ^^
yesHarvesting cinnamon from Harvestcraft cinnamon trees.
Is it really necessary for it to ping miles off in a random direction?
Losing the Gaia Guardian fight due to air guitar related reasons.
DAAAH da nuh nuh nyaaa... NAHH na na nuh nuh (dum dum drn drm dum dum drn drm drndrndrndrndr-dr-dr-dr-dr-drdrdrdrdrdrdr)Your pain.. I feel it...
I just had to refactor this and split it into multiple files, yet that still pains me when 1 dimensional arrays** ALL THE ONE DIMENSIONAL ARRAYS!! **
Please, Notch, if you code again, use two dimensional (or three dimensional!) arrays. Don't make people write out the index as explicit multiplication.
(Was it the X that you multiply by 16, or the Z)
Oh wait, that's just the one line of idiocy left from something Flaxbeard did, I meant the entire file. Which is way to broadwait ... you use the clickLeft event to catch right clicks???
In fairness, while that test is "big enough" to be worth its own function, other than the two-line test for specific tile entities, it is really straight-forward and understandable.
** ALL THE ONE DIMENSIONAL ARRAYS!! **
Please, Notch, if you code again, use two dimensional (or three dimensional!) arrays. Don't make people write out the index as explicit multiplication.
(Was it the X that you multiply by 16, or the Z)
Or maybe not. I mean, Java. You never know.Of course, maybe JVMs are smart enough to figure it out and do some optimizations...
Nice to know, although I still think there should be optimization on that, I mean an array of arrays can always just be a 1 dim array of n * m length so the JVM should be able to do things. Then again I don't know and as Type saidActually those 1 dimensional arrays serve a purpose. An "int[3][3]" is not 9 contiguous int in memory like C/C++/etc, rather it is an array of integer arrays. Of course, maybe JVMs are smart enough to figure it out and do some optimizations...
Or maybe not. I mean, Java. You never know.
int[][] ints = new int[10][];
for(int i = 0; i < ints.length; i++) {
ints[i] = new int[i+1];
for(int j = 0; j < ints[i].length; j++) {
ints[i][j] = i * 10 + j;
}
}
System.out.println(Arrays.deepToString(ints);
AAUUGHHH.
So in the past, if you set your view distance to tiny, short, normal, or far, it made no difference to the tick range -- chunks would get random block ticks out to 8 chunks.
You could, for example, have a view distance of 16, and watch grass grow over dirt, or cracked sand spread, and it would stop just past the border at 8 chunks.
Today? I found out that in single player, a view distance of 16 is triggering chunk loads and unloads at the extreme range; Eclipse backtracking shows it is grass spread testing at the edges.
Yep -- if I say "view distance of 16", then the chunks that get ticked are all of those, and chunk loads and unloads are triggered at the edge.
In other words, normal is no longer "View out to 8, update out to 8, and have range 10 loaded so that chunks are not being constantly churned and garbage collected"; rather, several algorithms -- including mob spawns -- only work properly if view distance is 10, and setting it higher causes more random ticks and more chunk churn.
I would call it a bug, except that it seems to be a deliberate design change. Instead, I think it's a horrible decision, and it _IRKS_ me.