I'm sorry if these are really stupid questions, but it's something I've been wondering about and unable to find an answer to.
So I created custom logs for custom trees. My code works, but the issue I ran into was that I had 5 logs I wanted to create. This doesn't seem like it should be an issue, given that logs are created in an array that are then cycled through in the getSubBlocks method. But when I tried this with 5 blocks (and also rewrote the code in getSubBlocks to account for 5 blocks), it didn't work. What happened was that my 5th log in the array was the texture of the first log. After looking at the vanilla code, I realized there was a BlockOldLog class, which has a string of 4 logs, and BlockNewLog class, which has a string of 2 logs. When I separated my code up similarly (ie, one class with an array of 4 logs, the other with an array of 1, since I had 5 custom log blocks I wanted to create), the textures worked. The only thing that I know isn't right about it is for some reason (despite being a separate class), my 5th log's name (before registering it in my lang file) shows up as the first log from the class with 4 logs.
That might be confusing...sorry. But for anyone who followed the description, have you ever heard of this? What's going on with this? My leaf class is doing the same, except it will only take an array of 2, but my sapling class doesn't have this problem. I also created dirt and grass without needing multiple classes.
Another question...and I really hate asking this because I think I already know the answer (but I'm of course going to ask anyway)...I'm creating biomes that I want to have my custom grass as the top block and custom dirt as the filler block. I've created my grass and dirt by cycling through a string, as I said above. When I'm setting my this.topBlock and this.fillerBlock in my biome classes, however, it (as I expected) didn't cycle through the array, but created each biome with the first grass/dirt blocks in the arrays as the top/filler blocks for each biome. Obviously I can't set the this.topBlock equal to the array name and location of the specific block I want it to be...that's an error because this.topBlock requires a block, and the array is a string. But is there some other way to do this? I was trying to think of a for loop or an if loop, but that still leads to the problem of blocks vs strings. The one thing I haven't tried is having my biomes all be in one class as a string to cycle through at the top...but I kinda think that will cause an error since it's biomes and then all my biomes would be the same land layout, but with different colors. Which ultimately, I don't want.
Anyway, sorry for the stupid (if even comprehended) questions. And thanks in advance.