SkillCakey Posted April 2, 2014 Posted April 2, 2014 I tried taking my biome from 1.6 to 1.7, but got some errors with it. Here are the lines with errors: CakeyMod.java: public static BiomeGenBase ShroomBiome(58).setBiomeName("ShroomBiome").setMinMaxHeight(0.2F, 1F); GameRegistry.addBiome(ShroomBiome); ShroomBiome.java: topBlock = (byte)CakeyMod.ShroomGrass.blockID; fillerBlock = (byte)CakeyMod.ShroomGrass.blockID; (I have got the ShroomGrass block working, so it can't be causing the errors in ShroomBiome.java. Quote
SkillCakey Posted April 2, 2014 Author Posted April 2, 2014 What can i use instead of public static BiomeGenBase ShroomBiome(58).setBiomeName("ShroomBiome").setMinMaxHeight(0.2F, 1F); Quote
darty11 Posted April 2, 2014 Posted April 2, 2014 try adding a new in front of the new object you are making... Quote
SkillCakey Posted April 2, 2014 Author Posted April 2, 2014 Yup. Noticed it. My bad. But this doesn't work either: public static BiomeGenBase ShroomBiome = new ShroomBiome(58).setBiomeName("ShroomBiome").setMinMaxHeight(0.2F, 1F); It gives an error at "setMinMaxHeight" Quote
SkillCakey Posted April 2, 2014 Author Posted April 2, 2014 Java experts at work. I know right... Quote
SkillCakey Posted April 2, 2014 Author Posted April 2, 2014 Thanks. 1 More errors fixed. The last error: GameRegistry.addBiome(ShroomBiome); What i'm gonna do to fix that? Quote
SkillCakey Posted April 2, 2014 Author Posted April 2, 2014 I guess i can't make my biome with my Java coding skills then. Quote
SkillCakey Posted April 2, 2014 Author Posted April 2, 2014 Or is there actually a way to make a new biome in 1.7 without using GameRegistry.addBiome??? Quote
SkillCakey Posted April 2, 2014 Author Posted April 2, 2014 Yes, but i though if there was another way. Quote
mrjoshiemoto Posted April 3, 2014 Posted April 3, 2014 As far as I understand the code the biomes are pretty much hard-coded into GenLayerBiome in 1.7, which is why GameRegistry.addBiome is currently removed. There is a way though, even if its pretty hacky. Listen to the WorldTypeEvent.InitBiomeGens event. The way the low-level world-generation works is by multiple instances of the GenLayer class which recursively generate the terrain based on integers. Somewhere in the chain there is the GenLayerBiome which you need to find, based on the "final" GenLayers you get from the event. It will take some reflection hacks and stuff but it's possible. Once you find the GenLayerBiome you can modify the BiomeGenBase arrays in it. I am not sure if this is the only way at the moment, but to me it seems like it. Your obviously on to something here, I really want to find out more about this. I just looked up the the array, I'm in the process of digging through it, but one thing I'm wondering is what accesses the GenLayerBiome. In theory if you make a new GenModdedLayerBiome you can add your new biomes into the array THEN access the new file through that. but it doesn't seem to use a specific method to use this. If you can shed more light on this that would be AWESOME. I want to figure this crap out so we can start making biomes again! Quote
SkillCakey Posted April 3, 2014 Author Posted April 3, 2014 I feel like a pro now. I got it working!! No errors at the moment. Haven't just found my biome yet though and the generating is pretty laggy. I gotta leave for school now, but when i come back home I'll check if the biome is working and if it is, i can post the solution here and someone can make it even better. Quote
mrjoshiemoto Posted April 3, 2014 Posted April 3, 2014 If that works make sure you post a sample code here so others can read it and know how to as well! Also someone might be able to clean it up and even a make it render faster! Or better yet turn it into a tutorial! Quote
SkillCakey Posted April 3, 2014 Author Posted April 3, 2014 I'm actually starting minecraft modding tutorials tomorrow, so i'm sure i'll make a tutorial of it, if it works. EDIT: Didn't work. Quote
SkillCakey Posted April 3, 2014 Author Posted April 3, 2014 Oh... Could you try to find out how to get this to work and paste the code? Quote
mrjoshiemoto Posted April 3, 2014 Posted April 3, 2014 Thanks for that Diesieben07. I figured it was a hell of a lot simpler than I was going for. Quote
mrjoshiemoto Posted April 3, 2014 Posted April 3, 2014 Thank you! Did you find your biome yet? I have no errors but I can't find my biome. I did change one line of code, simply because there was no other way to go about this. diamondBiome = new BiomeGenBase(245) I changed to diamondBiome = new DiamondBiome(245) Should have then accessed it all and rendered... right? Quote
mrjoshiemoto Posted April 3, 2014 Posted April 3, 2014 If you look at the GenLayerBiome class you will see 4 Biome arrays. I am not 100% sure what each of them does. You should experiment a bit. A few things. The arrays in GenLayerBiome control the temperature. The new biomes have been reconstructed around the idea of temperate areas so, in theory, it is less likely that a desert will spawn near a snowy biome. field_151623_c = Hot biomes (desert) field_151623_d Temperate forest area (So forest biomes would go here) field_151623_e Temperate Other (Hills, general biomes here) field_151623_f Cold Biomes (Snowy tiaga ect.) So most biomes really should go into e, however when I try anything BUT d (Which was the original field your code said) it throws the error. Is there something I'm missing? I feel like the biome is definitely in there... just I'm not getting it so I have two questions. 1) To change the array in your code I just change the field right? If so why would it error? It make no logical sense. 2) Is there a back door existing or one I can create to force the game to spawn in or near the biome I just created? Thanks for all your help, you've helped us newbies more then you have to . Quote
mrjoshiemoto Posted April 3, 2014 Posted April 3, 2014 nevermind I feel stupid. The field name isn't as simple as just changing a letter, the field name has different numbers... freshmen mistake. Now as far as the second portion of my question. Is there an easy way to test that my biome is in the game? Cause even changing the fields I can't seem to find it anywhere. Quote
mrjoshiemoto Posted April 4, 2014 Posted April 4, 2014 I'll say it again: I can't guarantee you that this method works. For finding your Biome in-game: I don't think there is a better way than just flying around. YES IT DOES!!!! I found it! You know what the problem was? I accidentally erased @EventHandler. You're the bomb! Thanks for being so patient! Quote
Cyan Posted April 4, 2014 Posted April 4, 2014 I'll say it again: I can't guarantee you that this method works. For finding your Biome in-game: I don't think there is a better way than just flying around. YES IT DOES!!!! I found it! You know what the problem was? I accidentally erased @EventHandler. You're the bomb! Thanks for being so patient! Hi. I was following along with this to see if any major revelations were made in the getting biomes to work in 1.7. Was just wanting to ask you if you are declaring your new biomes any differently from 1.6? Or something different in the biome files themselves? I have successfully managed to add in a new biome, but the name that pops up is "null" rather than the custom biome name I have set, and it is rather laggy. The only thing I figure is that I have missed something that wasn't mentioned in-topic, and I thought I would ask. Thanks. Quote
mrjoshiemoto Posted April 4, 2014 Posted April 4, 2014 I would guess if you copied his code that you didn't actually do anything other then make a non-existent biome. This should help in the MinecraftForge.TERRAIN_GEN_BUS.register(this); TestBiome = (new TestBiome(56))[b][i].setBiomeName("Test Biome")[/i][/b].setHeight(height_LowPlains) { }; i've put the .setbiomeName in bold because that is what names the biome. I'm not sure why it is laggy, mine isn't laggy and I've followed the code with only a few minor differences that shouldn't effect anything. Quote
Cyan Posted April 4, 2014 Posted April 4, 2014 Turned out to be a rather stupid error with a misplaced bracket. Woops. Make that the second freshmen error made in this topic. Thanks anyways! Quote
mrjoshiemoto Posted April 4, 2014 Posted April 4, 2014 Haha, glad that it worked Hope you don't mind Im going to make a thread in the minecraft forums explaining how to do this, Also we should have this thread solved! Quote
SkillCakey Posted April 4, 2014 Author Posted April 4, 2014 I set my custom filler and top blocks, but they are air. And is there a way to change how often the biome is generated? Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.