Jump to content

Errors with Biome


SkillCakey

Recommended Posts

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.

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • [03Jun2024 15:23:40.010] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--username, LondonDumbden, --version, 1.20.1-forge-47.2.32, --gameDir, C:\Users\London Bunden\AppData\Roaming\.minecraft, --assetsDir, C:\Users\London Bunden\AppData\Roaming\.minecraft\assets, --assetIndex, 5, --uuid, da3510f9b4b4427bb78304c88f4c534a, --accessToken, ????????, --clientId, ZTIxMjA2NTctYmIxZS00ZWQzLWFkZDEtMmMxMGQzMjQyNjBj, --xuid, 2535420262661734, --userType, msa, --versionType, release, --quickPlayPath, C:\Users\London Bunden\AppData\Roaming\.minecraft\quickPlay\java\1717446216838.json, --launchTarget, forgeclient, --fml.forgeVersion, 47.2.32, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [03Jun2024 15:23:40.017] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.8 by Microsoft; OS Windows 11 arch amd64 version 10.0 [03Jun2024 15:23:42.057] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: Loading ImmediateWindowProvider fmlearlywindow [03Jun2024 15:23:42.159] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.6 [03Jun2024 15:23:42.401] [main/INFO] [EARLYDISPLAY/]: Requested GL version 4.6 got version 4.6 [03Jun2024 15:23:42.494] [main/INFO] [mixin-transmog/]: Mixin Transmogrifier is definitely up to no good... [03Jun2024 15:23:42.524] [main/INFO] [mixin-transmog/]: crimes against java were committed [03Jun2024 15:23:42.630] [pool-2-thread-1/INFO] [EARLYDISPLAY/]: GL info: NVIDIA GeForce RTX 3070/PCIe/SSE2 GL version 4.6.0 NVIDIA 555.85, NVIDIA Corporation [03Jun2024 15:23:43.075] [main/INFO] [gg.essential.loader.stage1.EssentialLoaderBase/]: Starting Essential Loader (stage2) version 1.6.2 (285f951adc7537f49ae3ef9fc0d2fd3e) [stable] [03Jun2024 15:23:43.104] [main/INFO] [mixin-transmog/]: Original mixin transformation service successfully crobbed by mixin-transmogrifier! [03Jun2024 15:23:43.162] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/London%20Bunden/AppData/Roaming/.minecraft/mods/Connector-1.0.0-beta.43+1.20.1.jar%23266%23270!/ Service=ModLauncher Env=CLIENT [03Jun2024 15:23:44.312] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\London Bunden\AppData\Roaming\.minecraft\libraries\net\minecraftforge\fmlcore\1.20.1-47.2.32\fmlcore-1.20.1-47.2.32.jar is missing mods.toml file [03Jun2024 15:23:44.317] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\London Bunden\AppData\Roaming\.minecraft\libraries\net\minecraftforge\javafmllanguage\1.20.1-47.2.32\javafmllanguage-1.20.1-47.2.32.jar is missing mods.toml file [03Jun2024 15:23:44.323] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\London Bunden\AppData\Roaming\.minecraft\libraries\net\minecraftforge\lowcodelanguage\1.20.1-47.2.32\lowcodelanguage-1.20.1-47.2.32.jar is missing mods.toml file [03Jun2024 15:23:44.329] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\London Bunden\AppData\Roaming\.minecraft\libraries\net\minecraftforge\mclanguage\1.20.1-47.2.32\mclanguage-1.20.1-47.2.32.jar is missing mods.toml file [03Jun2024 15:23:44.862] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File:  and Mod File: . Using Mod File:  [03Jun2024 15:23:44.864] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: curios. Using Mod File: C:\Users\London Bunden\AppData\Roaming\.minecraft\mods\curios-forge-5.9.1+1.20.1.jar [03Jun2024 15:23:44.864] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 75 dependencies adding them to mods collection [03Jun2024 15:23:49.089] [main/INFO] [gg.essential.loader.stage2.util.KFFMerger/]: Found Kotlin-containing mod Jar[union:/C:/Users/London%20Bunden/AppData/Roaming/.minecraft/essential/libraries/forge_1.20.1/kotlin-for-forge-4.3.0-slim.jar%23280!/], checking whether we need to upgrade it.. [03Jun2024 15:23:49.091] [main/INFO] [gg.essential.loader.stage2.util.KFFMerger/]: Found outdated Kotlin core libs 0.0.0 (we ship 1.9.23) [03Jun2024 15:23:49.092] [main/INFO] [gg.essential.loader.stage2.util.KFFMerger/]: Found outdated Kotlin Coroutines libs 0.0.0 (we ship 1.8.0) [03Jun2024 15:23:49.092] [main/INFO] [gg.essential.loader.stage2.util.KFFMerger/]: Found outdated Kotlin Serialization libs 0.0.0 (we ship 1.6.3) [03Jun2024 15:23:49.095] [main/INFO] [gg.essential.loader.stage2.util.KFFMerger/]: Generating jar with updated Kotlin at C:\Users\LONDON~1\AppData\Local\Temp\kff-updated-kotlin-14765634657383373807-4.3.0-slim.jar [03Jun2024 15:23:49.974] [main/ERROR] [net.minecraftforge.fml.loading.LanguageLoadingProvider/LOADING]: Missing language kotlinforforge version [3,) wanted by Cobblemon-forge-1.5.2+1.20.1.jar [03Jun2024 15:23:49.989] [main/ERROR] [net.minecraftforge.fml.loading.ModSorter/LOADING]: Missing or unsupported mandatory dependencies:     Mod ID: 'curios', Requested by: 'radiantgear', Expected range: '[7,)', Actual version: '5.9.1+1.20.1'     Mod ID: 'minecraft', Requested by: 'radiantgear', Expected range: '[1.20.5,1.21)', Actual version: '1.20.1'     Mod ID: 'forge', Requested by: 'radiantgear', Expected range: '[50,)', Actual version: '47.2.32' [03Jun2024 15:23:50.434] [main/INFO] [dev.su5ed.sinytra.connector.service.hacks.ModuleLayerMigrator/]: Successfully made module authlib transformable [03Jun2024 15:23:51.112] [main/ERROR] [dev.su5ed.sinytra.connector.loader.ConnectorEarlyLoader/]: Skipping early mod setup due to previous error [03Jun2024 15:23:51.115] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'forgeclient' with arguments [--version, 1.20.1-forge-47.2.32, --gameDir, C:\Users\London Bunden\AppData\Roaming\.minecraft, --assetsDir, C:\Users\London Bunden\AppData\Roaming\.minecraft\assets, --uuid, da3510f9b4b4427bb78304c88f4c534a, --username, LondonDumbden, --assetIndex, 5, --accessToken, ????????, --clientId, ZTIxMjA2NTctYmIxZS00ZWQzLWFkZDEtMmMxMGQzMjQyNjBj, --xuid, 2535420262661734, --userType, msa, --versionType, release, --quickPlayPath, C:\Users\London Bunden\AppData\Roaming\.minecraft\quickPlay\java\1717446216838.json]  
    • When I try to install the forge installer it comes with several files instead of just one in executable java format
    • 0 I have recently started with Java and the implementation of Minecraft mods. I am currently working on a mod for 1.20.4-49.0.31 I'm trying to get the content of each slot in the console to be displayed when the inventory is opened, which works. In addition, I wanted to do the same with chests (in this case containers). However, I get in the output that there is Air at every slot of the chest, even if the chest is filled. Does anyone have experience with similar problems and could help me? package net.kaan.sortingmod; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.inventory.InventoryScreen; import net.minecraft.client.gui.screens.inventory.ContainerScreen; import net.minecraft.client.gui.screens.inventory.FurnaceScreen; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.ScreenEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @Mod(SortingMod.MODID) public class SortingMod { public static final String MODID = "sortingmod"; public SortingMod() { // Register the client setup method FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff); // Register this class for Forge events MinecraftForge.EVENT_BUS.register(this); } private void doClientStuff(final FMLClientSetupEvent event) { // Any client-side setup can be done here } @SubscribeEvent public void onScreenOpen(ScreenEvent.Opening event) { Screen screen = event.getScreen(); if (screen instanceof InventoryScreen) { System.out.println("Player opened their inventory."); assert Minecraft.getInstance().player != null; printInventoryItems(Minecraft.getInstance().player); } else if (screen instanceof ContainerScreen) { System.out.println("Player opened a chest."); printContainerItems((ContainerScreen) screen); } } private void printInventoryItems(Player player) { AbstractContainerMenu menu = player.inventoryMenu; for (int i = 0; i < menu.slots.size(); i++) { ItemStack stack = menu.getSlot(i).getItem(); if (!stack.isEmpty()) { System.out.println("Slot " + i + ": " + stack.getCount() + "x " + stack.getHoverName().getString()); } } } private void printContainerItems(ContainerScreen screen) { AbstractContainerMenu menu = screen.getMenu(); System.out.println(menu.slots.size()); for (int i = 0; i < menu.slots.size(); i++) { ItemStack stack = menu.getSlot(i).getItem(); System.out.println("Slot " + i + ": " + stack.getCount() + "x " + stack.getHoverName().getString()); } } }  
    • I am wanting to add an axe to my mod though I do not want it to have a recipe, the reason for this being that I want you to only be able to find it in a structure. I have looked on both here and elsewhere on the internet and have found nothing... How would this be done?    (Video for reference.)    
  • Topics

×
×
  • Create New...

Important Information

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