Posted December 9, 201311 yr So I made a custom biome, the most basic one, and tried to make a custom top block. First I tried with the custom block I made, it crashed. Then I tried with another custom block I made, and it generated a biome full of tripwire hooks. Finally, I tried manually defining the ID and got a biome with a lot of... Potato crops. I'm using this.topBlock = (byte)MyMainClass.MyCustomBlock.blockID Help please! “Since when did you start modding?” “Last night"
December 9, 201311 yr Are you keeping the block IDs low? I've never had a problem myself, but I've heard that anything over the low 200's or so can cause problems due to being converted to bytes and whatnot.
December 9, 201311 yr Author Eeeeh th ID's are 899+ The question is, am I ALLOWED to use IDs less than 200 And how can I work around that? “Since when did you start modding?” “Last night"
December 9, 201311 yr The final vanilla ID is 173, for a block of coal. You CAN use any block ID higher than that but before 256, but it may cause conflicts with other mods. Remember, most blocks don't need to be that low! My best idea would be to make only the blocks in the biome that low, and then make sure that you have a config file for those blocks to pick any one of the exceedingly limited number of slots that might be available. On reading up a bit: since biome blocks are stored as bytes, they absolutely must have IDs under 256. Otherwise, they begin to count negative and the kinds of problems you are having start to show up. In summary: Pick an ID between 173 and 256 and make sure it's configurable to resolve conflicts with other mods. Hope that helps!
December 9, 201311 yr Author Alrighty! Thanks for the info! EDIT Nope. My block has the Id if 177, and the game crashes, due to a java.lang.ExceptionInInitializerError 2013-12-08 20:35:10 [iNFO] [sTDOUT] at java.lang.Class.forName0(Native Method) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at java.lang.Class.forName(Class.java:249) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Method.java:597) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.post(EventBus.java:267) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:201) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:181) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Method.java:597) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.post(EventBus.java:267) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:112) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at cpw.mods.fml.common.Loader.loadMods(Loader.java:511) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.startGame(Minecraft.java:473) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.run(Minecraft.java:808) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at net.minecraft.client.main.Main.main(Main.java:93) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Method.java:597) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.launch(Launch.java:131) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.main(Launch.java:27) 2013-12-08 20:35:10 [iNFO] [sTDOUT] Caused by: java.lang.NullPointerException 2013-12-08 20:35:10 [iNFO] [sTDOUT] at mods.danilafe.frozenworld.BiomeGenFrozen.<init>(BiomeGenFrozen.java:11) 2013-12-08 20:35:10 [iNFO] [sTDOUT] at mods.danilafe.frozenworld.FrozenWorld.<clinit>(FrozenWorld.java:78) “Since when did you start modding?” “Last night"
December 9, 201311 yr but I've heard that anything over the low 200's or so 256 and up won't work. Because the vanilla terrain generators deal with block IDs as a byte. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
December 9, 201311 yr If you post your code, particularly the lines specified in the log, we may be able to help more.
December 9, 201311 yr Author If you post your code, particularly the lines specified in the log, we may be able to help more. Main Class with unimportant things cropped out: public static final String modID = "FrozenWorld"; public static final int FrozenBiomeDirtID = 177; //Creating the Forge instance @Instance(value = "FrozenWorld") public static FrozenWorld instance; //Says where client and server proxy files are located @SidedProxy(clientSide="mods.danilafe.frozenworld.client.ClientProxy",serverSide="mods.danilafe.frozenworld.common.CommonProxy") public static mods.danilafe.frozenworld.common.CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { } public static BiomeGenBase frozenBiome = new BiomeGenFrozen(45).setBiomeName("frozenBiome").setEnableSnow().setMinMaxHeight(-1F, 1F).setTemperatureRainfall(0.3F, 0.5F); public static Block FrozenBiomeDirt = new FrozenBiomeDirt(FrozenBiomeDirtID, Material.ground).setCreativeTab(CreativeTabs.tabBlock).setUnlocalizedName("FrozenBiomeDirt"); @EventHandler public void preInit(FMLInitializationEvent event){ GameRegistry.registerBlock(FrozenBiomeDirt, "FrozenBiomeDirt"); GameRegistry.addBiome(frozenBiome); LanguageRegistry.addName(FrozenBiomeDirt, "Dirt"); } @EventHandler public void load(FMLInitializationEvent event) { proxy.registerRenderers(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { // Stub Method } } And my BiomeGenFrozen: public BiomeGenFrozen(int id) { super(id); this.topBlock = (byte)FrozenWorld.FrozenBiomeDirt.blockID; //<——Causes the crash } “Since when did you start modding?” “Last night"
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.