Jump to content

Recommended Posts

Posted

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.

Posted

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"

Posted

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!

Posted

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. :)

Posted

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! :D

Posted

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?

Posted

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 xD.

Posted

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.

Posted

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! :)

Posted

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.

Posted

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.

Posted

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!

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.