Jump to content

Dimension Generation Questions


Flenix

Recommended Posts

Hey guys,

 

I have two questions regarding making my own dimension here, I'd love help with either of them.

 

 

Firstly, my dimension is going to be made entirely from custom blocks. I now know that I can't use IDs over 255 for these blocks; but I've also seen that people can use metadata (Looking at other dimension mods like Galacticraft). So, I could use say ID 240:1 for my stone, 240:2 for my grass and so on.

So, to that end; does anyone know how to add functionality to individual metadatas of a block? As in, I want my grass to grow onto dirt etc. Ideally I'd like to just define the metadata on a class (this.setMetaData... if only it existed :P), but any way of doing it is fine.

 

Secondly, where do I define what block covers the surface? Right now, my dimension is only generating my custom stone. I have a custom grass too (Currently on its own ID) but I can't find anywhere in the code that says "Set the top layer to this". I've even looked at the source of a couple of mods which do it, and I can't find it anywhere in those either...

 

 

Any help is great :) On a side note, if anyone knows a good structure generation tutorial, that'd be really useful too.

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

Hi there, i am currently also working on a dimension mod and i think i've done some cool things myself, now i have got some things working and others i'm also still strugling with.

 

To answer one of your questions the blocks to use to generate grass and dirt in your dimension is being done from biomeGenBase so you would declare your topBlock and fillerBlock inside the biome that you want to generate. Next thing you have to do is go into your ChunkProvider (the custom one)

and set the byte b1 = biomegenbase.topBlock, and byte b2 = biomegenbase.fillerBlock. and then ofcourse wherever you use the b1 and b2 inside the for loops change that to the same.

 

This is what i have inside my ChunkProvider: (just cut it short for you)

// within replaceBlocksForBiome you will have a start of the for loop

for (int k = 0; k < 16; ++k)
{
for (int l = 0; l <16; ++l)
{
BiomeGenBase biomegenbase = biomesForGeneration2[l + k * 16];
boolean flag = this.lateriteGrassNoise[k + l * 16] + this.soulRNG.nextDouble() * 0.2D > 0.0D;
boolean flag1 = this.porphyryNoise[k + l * 16] + this.soulRNG.nextDouble() * 0.2D > 0.0D;
int i1 = (int)this.porphyryExclusivityNoise[k + l * 16] / 3.0D + 3.0D + this.soulRNG.nextDouble() * 0.2D > 0.0D;
int 1j = -1;
byte b1 = biomegenbase.topblock;
byte b2 = biomegenbase.fillerblock;

for (int k1 = 127; k1 >= 0; --k1)
{
int l1 = (l * 16 + k) * 128 + k1;

and then further inside the loops you get
b1 = biomegenbase.topblock;
b2 = biomegenbase.fillerblock;
}
}
}

 

I hope you get it working like i did, also i wouldn't know about the id's i'm not really working with metadata's for my custom blocks for the moment.

 

So what i'm currently working on is how to get it so that i can spawn multiple biomes within my world and how to spawn them without using biomeGenBase and theBiomeDecorater, for now i am not using those and my world is generating fine. just need a lot of work i guess... when i start changing the chunkprovider biomegenbase to biomegenbasemarona (my custom biomegenbase) it starts giving errors and such, do you know more about that??

Link to comment
Share on other sites

I've not looked into multiple biomes just yet. MY mod adds probably around 12 new dimensions when it's done, but the first three you can access are all single-biome places so I've not even experimented with it.

 

So what you're saying is, I'll need to create my own biome and add it to biomegenbase? Am I just getting confused here? I don't want to modify base files if I don't have to.

 

 

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

Yes, currently i haven't figured out how to do this without altering BiomeGenBase and BiomeDecorator and such... I would be really happy if there are people who know how to alter this, as then i think i'm pretty close to getting more biomes to spawn.

Link to comment
Share on other sites

What you need to do is create a biome like you normally would in the overworld, and then use the removeBiome from Forge's GameRegistry class so that it does not spawn in the overworld.  This won't remove the biome completely, just remove it from the list of biomes to spawn in the Overworld. Biomes are added to dimensions in the dimensions WorldChunkProvider:

 

public static ArrayList<BiomeGenBase> allowedBiomes = new ArrayList<BiomeGenBase>(Arrays.asList(forest, plains, taiga, taigaHills, forestHills, jungle. jungleHills));
    

 

And also some are added in GenLayer like beach, river, mushroom biome, you can see by looking at GenLayerShore i believe on how some of that works.

Link to comment
Share on other sites

What you need to do is create a biome like you normally would in the overworld, and then use the removeBiome from Forge's GameRegistry class so that it does not spawn in the overworld.  This won't remove the biome completely, just remove it from the list of biomes to spawn in the Overworld. Biomes are added to dimensions in the dimensions WorldChunkProvider:

 

public static ArrayList<BiomeGenBase> allowedBiomes = new ArrayList<BiomeGenBase>(Arrays.asList(forest, plains, taiga, taigaHills, forestHills, jungle. jungleHills));
    

 

And also some are added in GenLayer like beach, river, mushroom biome, you can see by looking at GenLayerShore i believe on how some of that works.

 

So I put the line of code you quoted into my WorldChunkProvider, which lets me specify multiple biomes?

 

As for the GameRegistry think, right now I have "GameRegistry.addBiome(akatoePlainsBiome);" - from following a tutorial. I assumed when I was following it (Granted, not a great tutorial...), that this was just like registering a block and had to be done, but would removing it stop the biome spawning in the overworld, and with the above code you said my biome would only spawn in my custom world?

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

yeah, it appears the GameRegistry.addBiome serves the purpose of adding the biome to array of biomes for the Overworld.  Either that line with your biomes instead of the default ones, or if you look at WorldProviderHell

 

    /**
     * creates a new world chunk manager for WorldProvider
     */
    public void registerWorldChunkManager()
    {
        this.worldChunkMgr = new WorldChunkManagerHell(BiomeGenBase.hell, 1.0F, 0.0F);
        this.isHellWorld = true;
        this.hasNoSky = true;
        this.dimensionId = -1;
    }

 

You can do it here

Link to comment
Share on other sites

Got a couple more really simple dimension questions, so I didn't want to make a new topic.

 

How do I...

 

- Set the fog colour,

- Set the gravity,

- Generate a skylands/end type of place?

 

(I tried setting the End biome as a test for the last one, but it didn't do the floating island type of thing...)

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

I would love to get this working, basically you're saying that i should add that array to my WorldProvider and after that i will have to use GameRegistry also inside my WorldProvider to remove all but my biomes ? How do i add them to this list? also with gameRegistry or? please help me i would love to get this working as i have been working on this for a couple of weeks now.

Link to comment
Share on other sites

I would love to get this working, basically you're saying that i should add that array to my WorldProvider and after that i will have to use GameRegistry also inside my WorldProvider to remove all but my biomes ? How do i add them to this list? also with gameRegistry or? please help me i would love to get this working as i have been working on this for a couple of weeks now.

 

In the worldprovider, "disallowedBiomes" seems to work just like "allowedBiomes" for the above line of code. I've not tried it yet; I can't figure out how to get it to read my biomes instead of just BiomeGenBase.

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

public static ArrayList<BiomeGenBase> allowedBiomes = new ArrayList<BiomeGenBase>(Arrays.asList(forest, plains, taiga, taigaHills, forestHills, jungle. jungleHills));

 

That's checking in BiomeGenBase, which I assume means I need my own BiomeGenBase etc... I couldn't quite get my head around that just yet.

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

no, just add your mod before it like mymod.BiomeName

 

public static ArrayList<BiomeGenBase> allowedBiomes = new ArrayList<BiomeGenBase>(Arrays.asList(forest, plains, taiga, taigaHills, forestHills, jungle. jungleHills, mymod.BiomeName));
Link to comment
Share on other sites

Okay, just a few clarifications :

 

1. Do i alter any base classes? I don't want to so if yes then how can i do this without altering them.

2. Do i make a custom World-ChunkManager? If yes do i just use everything like in WorldChunkManager except the array list like you mentioned :

public static ArrayList<BiomeGenBase> allowedBiomes = new ArrayList<BiomeGenBase>(Arrays.asList(forest, plains, taiga, taigaHills, forestHills, jungle. jungleHills, mymod.BiomeName));

3. What do i do in this bit:

public void registerWorldChunkManager()
{
this.worldChunkMgr = new WorldChunkManager(); // Do i change that to WorldChunkManagerCustom() // without anything within the brackets?
this.dimensionId = mod_Ores.DimensionSoulForest;
}

 

4. (and last) Is there anything i forgot?

 

I have tried some things out and i have gotten to this (to work, without altering any base classes):

public void registerWorldChunkManager()
{	
GameRegistry.removeBiome(BiomeGenBase.beach);
GameRegistry.removeBiome(BiomeGenBase.desert);
GameRegistry.removeBiome(BiomeGenBase.desertHills);
GameRegistry.removeBiome(BiomeGenBase.extremeHills);
GameRegistry.removeBiome(BiomeGenBase.extremeHillsEdge);
GameRegistry.removeBiome(BiomeGenBase.forest);
GameRegistry.removeBiome(BiomeGenBase.forestHills);
GameRegistry.removeBiome(BiomeGenBase.frozenOcean);
GameRegistry.removeBiome(BiomeGenBase.frozenRiver);
GameRegistry.removeBiome(BiomeGenBase.hell);
GameRegistry.removeBiome(BiomeGenBase.iceMountains);
GameRegistry.removeBiome(BiomeGenBase.icePlains);
GameRegistry.removeBiome(BiomeGenBase.jungle);
GameRegistry.removeBiome(BiomeGenBase.jungleHills);
GameRegistry.removeBiome(BiomeGenBase.mushroomIsland);
GameRegistry.removeBiome(BiomeGenBase.mushroomIslandShore);
GameRegistry.removeBiome(BiomeGenBase.ocean);
GameRegistry.removeBiome(BiomeGenBase.plains);
GameRegistry.removeBiome(BiomeGenBase.river);
GameRegistry.removeBiome(BiomeGenBase.sky);
GameRegistry.removeBiome(BiomeGenBase.swampland);
GameRegistry.removeBiome(BiomeGenBase.taiga);
GameRegistry.removeBiome(BiomeGenBase.taigaHills);
GameRegistry.addBiome(mod_Ores.SoulForest);
GameRegistry.addBiome(mod_Ores.FrostCaves);	

this.worldChunkMgr = new WorldChunkManager(worldObj); 
this.dimensionId = mod_Ores.DimensionSoulForest;
}

It now generates overworld biomes which is cool ofcourse, now i am just trying to find a way on how to add my biomes to the list and remove the rest.

So it still generates some oceans and rivers in my dimension somehow and more importantly it spawns my biomes in the overworld, how do i change that?

Link to comment
Share on other sites

no, just add your mod before it like mymod.BiomeName

 

public static ArrayList<BiomeGenBase> allowedBiomes = new ArrayList<BiomeGenBase>(Arrays.asList(forest, plains, taiga, taigaHills, forestHills, jungle. jungleHills, mymod.BiomeName));

 

Ok, I tried that, no errors in Eclipse but on launch:

2013-05-13 21:49:38 [iNFO] [sTDERR] Exception in thread "Minecraft main thread" java.lang.ExceptionInInitializerError
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at java.lang.Class.forName0(Native Method)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at java.lang.Class.forName(Unknown Source)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:418)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at java.lang.reflect.Method.invoke(Unknown Source)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.post(EventBus.java:268)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:153)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at java.lang.reflect.Method.invoke(Unknown Source)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.post(EventBus.java:268)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:86)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at cpw.mods.fml.common.Loader.loadMods(Loader.java:494)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:161)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.startGame(Minecraft.java:412)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at net.minecraft.client.MinecraftAppletImpl.startGame(MinecraftAppletImpl.java:44)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.run(Minecraft.java:746)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at java.lang.Thread.run(Unknown Source)
2013-05-13 21:49:38 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at co.uk.silvania.Remula.dimensions.akatoe.BiomeAkatoePlains.<init>(BiomeAkatoePlains.java:14)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	at co.uk.silvania.Remula.Remula.<clinit>(Remula.java:97)
2013-05-13 21:49:38 [iNFO] [sTDERR] 	... 29 more

 

My biome class:

package co.uk.silvania.Remula.dimensions.akatoe;

import co.uk.silvania.Remula.Remula;
import co.uk.silvania.Remula.entity.akatoe.EntityAkatonian;
import co.uk.silvania.Remula.entity.akatoe.EntityGlog;
import net.minecraft.world.biome.BiomeGenBase;

public class BiomeAkatoePlains extends BiomeGenBase {

public BiomeAkatoePlains(int id) {
	super(id);
	this.setBiomeName("Akatonian Plain");
	this.setDisableRain();
	this.topBlock = (byte) Remula.akatoeGrass.blockID; //This is the line referenced in the stacktrace
	this.fillerBlock = (byte) Remula.akatoeDirt.blockID;
	this.maxHeight = 0.5F;
	this.minHeight = 0.0F;
	this.waterColorMultiplier = 0X00FF21;
}
}

 

I did see someone mention in a tutorial that custom blocks didn't work, but they never mentioned a solution. It's worth noting that my grass ID is 201, so under the 255 limit.

 

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

https://github.com/Flenix/Remula/blob/master/co/uk/silvania/Remula/dimensions/akatoe/AkatoeChunkProvider.java

 

^^My WorldChunkProvider, for OwnAgePau to use for testing. Most of it is vanilla anyways but I changed one or two things. Works except the error I mentioned in my last post.

 

Edit: originally the code was here, but it was making the thread extra-wide so I swapped it for a github link.

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

What about the block ID's

 

this.topBlock = (byte) Remula.akatoeGrass.blockID; //This is the line referenced in the stacktrace
	this.fillerBlock = (byte) Remula.akatoeDirt.blockID;

 

 

these blocks need to be under 256 , if you put a block in here that is above 256 u will get a crash/error

Link to comment
Share on other sites

Okay i guess you confused some names arround... I have a WorldProviderMarona (this registers the dimension) and then the ChunkProviderMarona (which you apperently call WorldChunkProvider) this adds the noises and all that good stuff. But if the array sits in that chunkprovider then i am not going to have to remove all the biomes, just add my own? because the list is named differently am i correct?

 

Also can you poste the complete error log, i might have an idea why it isn't working. It think its because you add your biome to the other list, the one that is not located in the ChunkProvider. Why not try naming that list differently?

Link to comment
Share on other sites

Okay i guess you confused some names arround... I have a WorldProviderMarona (this registers the dimension) and then the ChunkProviderMarona (which you apperently call WorldChunkProvider) this adds the noises and all that good stuff. But if the array sits in that chunkprovider then i am not going to have to remove all the biomes, just add my own? because the list is named differently am i correct?

 

Also can you poste the complete error log, i might have an idea why it isn't working. It think its because you add your biome to the other list, the one that is not located in the ChunkProvider. Why not try naming that list differently?

 

My classes are all prefixed Akatoe; I'm having more than one dimension in my mod, so that's how I differentiate between them. As far as I know, the name doesn't matter?

 

Anyways, I have AkatoeBiomeDecorator, AkatoeChunkManager, AkatoeChunkProvider (Which is the noise one), AkatoePortalBlock and AkatoeWorldProvider. Currently I also have BiomeAkatoePlains, but I'll add a few others in the future once it's working.

 

The error I posted above, that was the entire trace, but here's the whole log:

2013-05-14 13:03:51 [iNFO] [ForgeModLoader] Forge Mod Loader version 4.7.35.556 for Minecraft 1.4.7 loading
2013-05-14 13:03:53 [iNFO] [sTDOUT] 27 achievements
2013-05-14 13:03:53 [iNFO] [sTDOUT] 210 recipes
2013-05-14 13:03:53 [iNFO] [sTDOUT] Setting user: Player128, -
2013-05-14 13:03:53 [iNFO] [sTDERR] Client asked for parameter: server
2013-05-14 13:03:53 [iNFO] [sTDOUT] LWJGL Version: 2.4.2
2013-05-14 13:03:54 [iNFO] [MinecraftForge] Attempting early MinecraftForge initialization
2013-05-14 13:03:54 [iNFO] [sTDOUT] MinecraftForge v6.6.2.534 Initialized
2013-05-14 13:03:54 [iNFO] [ForgeModLoader] MinecraftForge v6.6.2.534 Initialized
2013-05-14 13:03:54 [iNFO] [sTDOUT] Replaced 84 ore recipies
2013-05-14 13:03:54 [iNFO] [MinecraftForge] Completed early MinecraftForge initialization
2013-05-14 13:03:54 [iNFO] [ForgeModLoader] Reading custom logging properties from F:\Code\Minecraft\GitHub\Remula\forge\mcp\jars\config\logging.properties
2013-05-14 13:03:54 [OFF] [ForgeModLoader] Logging level for ForgeModLoader logging is set to ALL
2013-05-14 13:03:54 [iNFO] [ForgeModLoader] Searching F:\Code\Minecraft\GitHub\Remula\forge\mcp\jars\mods for mods
2013-05-14 13:03:55 [iNFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load
2013-05-14 13:03:55 [iNFO] [mcp] Activating mod mcp
2013-05-14 13:03:55 [iNFO] [FML] Activating mod FML
2013-05-14 13:03:55 [iNFO] [Forge] Activating mod Forge
2013-05-14 13:03:56 [iNFO] [Remula] Activating mod Remula
2013-05-14 13:03:56 [iNFO] [sTDERR] Exception in thread "Minecraft main thread" java.lang.ExceptionInInitializerError
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at java.lang.Class.forName0(Native Method)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at java.lang.Class.forName(Unknown Source)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:418)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at java.lang.reflect.Method.invoke(Unknown Source)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.post(EventBus.java:268)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:153)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at java.lang.reflect.Method.invoke(Unknown Source)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.post(EventBus.java:268)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:86)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.Loader.loadMods(Loader.java:494)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:161)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.startGame(Minecraft.java:412)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at net.minecraft.client.MinecraftAppletImpl.startGame(MinecraftAppletImpl.java:44)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.run(Minecraft.java:746)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at java.lang.Thread.run(Unknown Source)
2013-05-14 13:03:56 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at co.uk.silvania.Remula.dimensions.akatoe.BiomeAkatoePlains.<init>(BiomeAkatoePlains.java:19)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	at co.uk.silvania.Remula.Remula.<clinit>(Remula.java:143)
2013-05-14 13:03:56 [iNFO] [sTDERR] 	... 29 more
2013-05-14 13:04:00 [iNFO] [sTDERR] Someone is closing me!

 

If I comment out the topBlock and fillerBlock in here, the error stops:

package co.uk.silvania.Remula.dimensions.akatoe;

import co.uk.silvania.Remula.Remula;
import co.uk.silvania.Remula.entity.akatoe.EntityAkatonian;
import co.uk.silvania.Remula.entity.akatoe.EntityGlog;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.SpawnListEntry;

public class BiomeAkatoePlains extends BiomeGenBase {

public BiomeAkatoePlains(int id) {
	super(id);
	this.setBiomeName("Akatonian Plain");
	this.setDisableRain();
        this.spawnableMonsterList.clear();
        this.spawnableCreatureList.clear();
        this.spawnableWaterCreatureList.clear();
        this.spawnableCreatureList.add(new SpawnListEntry(EntityGlog.class, 10, 4, 4));
	this.topBlock = (byte) Remula.akatoeGrass.blockID;
	this.fillerBlock = (byte) Remula.akatoeDirt.blockID;
	this.maxHeight = 0.5F;
	this.minHeight = 0.0F;
	this.waterColorMultiplier = 0X00FF21;
}
}

 

 

I wont post my whole core mod class (Remula.java) because it's ~700 lines, but the bits of importance:

    public static BiomeGenBase akatoePlainsBiome = new BiomeAkatoePlains(60); //Line 143, referenced in the stacktrace
    public final static Block akatoeStone = new AkatoeStone(200, 0, Material.rock).setBlockName("akatoeStone");
    public final static Block akatoeGrass = new AkatoeGrass(201).setBlockName("akatoeGrass");
    public final static Block akatoeDirt = new AkatoeDirt(202, 2, Material.ground).setBlockName("akatoeGround");

 

 

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

All i can tell from looking at the error is this:

2013-05-14 13:03:56 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException

2013-05-14 13:03:56 [iNFO] [sTDERR]  at co.uk.silvania.Remula.dimensions.akatoe.BiomeAkatoePlains.<init>(BiomeAkatoePlains.java:19)

2013-05-14 13:03:56 [iNFO] [sTDERR]  at co.uk.silvania.Remula.Remula.<clinit>(Remula.java:143)

 

That points to your BiomeAkatoePlains

Link to comment
Share on other sites

All i can tell from looking at the error is this:

2013-05-14 13:03:56 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException

2013-05-14 13:03:56 [iNFO] [sTDERR]  at co.uk.silvania.Remula.dimensions.akatoe.BiomeAkatoePlains.<init>(BiomeAkatoePlains.java:19)

2013-05-14 13:03:56 [iNFO] [sTDERR]  at co.uk.silvania.Remula.Remula.<clinit>(Remula.java:143)

 

That points to your BiomeAkatoePlains

 

I know, that's why I posted the BiomeAkatoePlains class right above it...

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

The problem there lies not in your BiomeAkatoePlains.class, it has something to do with your topblock and fillerblock.

 

The next thing is, i tried doing that list thing in my chunkprovider but all the biomes i now get are the ones listed in the arraylist in WorldChunkManager.

Link to comment
Share on other sites

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.



×
×
  • Create New...

Important Information

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