Flenix Posted May 8, 2013 Posted May 8, 2013 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 ), 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. Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
OwnAgePau Posted May 8, 2013 Posted May 8, 2013 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?? Quote I am the creator of the Soul Forest Mod : http://www.planetminecraft.com/mod/151-soul-forest-10-ores-vines-dimension-mobs-and-more/
Flenix Posted May 8, 2013 Author Posted May 8, 2013 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. Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
OwnAgePau Posted May 9, 2013 Posted May 9, 2013 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. Quote I am the creator of the Soul Forest Mod : http://www.planetminecraft.com/mod/151-soul-forest-10-ores-vines-dimension-mobs-and-more/
robustus Posted May 9, 2013 Posted May 9, 2013 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. Quote
Flenix Posted May 9, 2013 Author Posted May 9, 2013 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? Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
robustus Posted May 10, 2013 Posted May 10, 2013 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 Quote
Flenix Posted May 11, 2013 Author Posted May 11, 2013 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...) Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
OwnAgePau Posted May 11, 2013 Posted May 11, 2013 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. Quote I am the creator of the Soul Forest Mod : http://www.planetminecraft.com/mod/151-soul-forest-10-ores-vines-dimension-mobs-and-more/
Flenix Posted May 11, 2013 Author Posted May 11, 2013 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. Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
robustus Posted May 12, 2013 Posted May 12, 2013 did you put your biome in the array of allowed biomes? It still didn't work? Quote
Flenix Posted May 12, 2013 Author Posted May 12, 2013 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. Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
robustus Posted May 12, 2013 Posted May 12, 2013 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)); Quote
OwnAgePau Posted May 13, 2013 Posted May 13, 2013 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? Quote I am the creator of the Soul Forest Mod : http://www.planetminecraft.com/mod/151-soul-forest-10-ores-vines-dimension-mobs-and-more/
Flenix Posted May 13, 2013 Author Posted May 13, 2013 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. Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
robustus Posted May 13, 2013 Posted May 13, 2013 1) Yes you need the custom WorldChunkProvider to put your biome in the array, and any blocks that you are going to use to spawn in terrain generation have to have a block ID under 256. Quote
Flenix Posted May 13, 2013 Author Posted May 13, 2013 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. Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
robustus Posted May 13, 2013 Posted May 13, 2013 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 Quote
Flenix Posted May 13, 2013 Author Posted May 13, 2013 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. Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
OwnAgePau Posted May 14, 2013 Posted May 14, 2013 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? Quote I am the creator of the Soul Forest Mod : http://www.planetminecraft.com/mod/151-soul-forest-10-ores-vines-dimension-mobs-and-more/
Flenix Posted May 14, 2013 Author Posted May 14, 2013 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"); Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
OwnAgePau Posted May 14, 2013 Posted May 14, 2013 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 Quote I am the creator of the Soul Forest Mod : http://www.planetminecraft.com/mod/151-soul-forest-10-ores-vines-dimension-mobs-and-more/
Flenix Posted May 14, 2013 Author Posted May 14, 2013 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... Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
OwnAgePau Posted May 14, 2013 Posted May 14, 2013 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. Quote I am the creator of the Soul Forest Mod : http://www.planetminecraft.com/mod/151-soul-forest-10-ores-vines-dimension-mobs-and-more/
robustus Posted May 14, 2013 Posted May 14, 2013 I see, I think the problem is you are registering the biome before you register the blocks. register the blocks first. 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.