Jump to content

[1.7.10]Changing Vanilla Ore Generation


theOriginalByte

Recommended Posts

Hey everyone!

I want to change the amount of vanilla ore is generated in the world based on an amount put in the minecraft configuration. I think I need to use an event to catch right before the ore is about to be spawned in, but I don't know what event it would be. Am I even using the right approach? Any help is appreciated.

Thanks!

Link to comment
Share on other sites

Yes there is a whole event bus dedicated to ore generation with the following events:

GenerateMinable

OreGenEvent.Pre

OreGenEvent.Post

 

Also, you can do block replacements during chunk loading events as well.

 

I'm not sure how familiar you are with event handling, so if you are new to it you might want to check out my tutorial: http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-event-handling.html

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

Yes there is a whole event bus dedicated to ore generation with the following events:

GenerateMinable

OreGenEvent.Pre

OreGenEvent.Post

 

Also, you can do block replacements during chunk loading events as well.

 

I'm not sure how familiar you are with event handling, so if you are new to it you might want to check out my tutorial: http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-event-handling.html

I actually learned about events from your tutorials. Thank you for making them!

I think I know what I need to do but how exactly do I find the blocks being populated since the event only gives an X and Z coord and .getBlock() requires a Y? I thought of doing a random but figured it wouldn't work out well.

Link to comment
Share on other sites

I don't know that much about ore generation actually.  I concentrate most of my modding on entities and items.

 

From briefly looking at the code, I think the idea is that the BiomeDecorator class has a method called generateOres() which posts the OreGenEvent.Pre event and then calls the TerrainGen.generateOre() method for each mineable type.  This generateOre() method takes a WorldGenMineable parameter for each mineable type such as dirtGen, gravelGen, coalGen, ironGen, etc as well as the X and Z position.  The WorldGenMineable has a generate() function which uses a bunch of loops to create clusters of the mineable type.

 

The TerrainGen.generatOre() method is pretty much just a hook into the events.  It creates the GenerateMineable event and posts it.  The event is not cancelable, however it does have a result -- this means that it is possible for your event handler to give a Result.DENY to prevent the generation.  I'm not certain but I think this would allow you to substitute your own ore generation -- give a DENY result but also call your own generation method.

 

I'm sure there are good ore generation tutorials out there but I think you could try the following:

1) if you just want to add your own extra ore generation, you can just handle the OreGenEvent.Pre or .Post and call your own WorldGenMineable. 

2) if you want to substitute your own and prevent some vanilla gen, then you'd handle the GenerateMineable event and send a DENY result, and also call your own WorldGenMineable.

 

Anyway, look at the code in the classes and methods I mention above and it should give you some idea.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Does it work without natures_spirit and/or spectrum / adventurez?
    • Update your AMD/ATI drivers - get the drivers from their website - do not update via system
    • (i originally submitted this report to CurseForge but since we localized the issue to the modloader they pointed us here)  I am the partner of the user, GalaxyReach, assisting them as they are not as tech savvy. We have spent days troubleshooting a very weird issue that none of our other friends have with a certain modloader.  On a curse-forge launched instance of the Minecraft Launcher, clicking "play" throws an error code 1: crash log says EXCEPTION_ACCESS_VIOLATION. This exception happens in a blank, no-mods test pack as well as manually installing Forge. This issue also happens on NeoForge. We tried All of the steps withing this guide: https://support.curseforge.com/en/support/solutions/articles/9000218027-issues-related-to-the-forge-modloader namely: reinstalling the modpack reinstalling minecraft & curseforge deleting curseforge appdata updating the drivers updating the firewall the computer has been restarted several times we have tried running it on different networks manually installing & selecting java manually installing forge I don't think it is a specs/hardware issue, its a pretty good laptop (HP Omen), 16GB RAM & a 3060. It runs windows 11. Further, launching minecraft like normal through the Microsoft Store runs the game just fine. It is solely with trying to use a modded launch with Forge & NeoForge. I also tried different versions of Forge, though the specific instance I am trying to get running is 47.3.0 Is there anything else we can do here or does Forge just truly not work on this laptop?   Thank you MINECRAFT LAUNCHER GAME OUTPUT LOG 10:07:33.755 launcher main Version does not support log configuration, will assume one plaintext entry per line 10:07:36.419 game 2024-08-31 10:07:36,408 main WARN Advanced terminal features are not available in this environment 10:07:36.586 game [10:07:36] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--username, GalaxyReach, --version, forge-47.3.0, --gameDir, C:\Users\Micha\curseforge\minecraft\Instances\Liminal Server, --assetsDir, C:\Users\Micha\curseforge\minecraft\Install\assets, --assetIndex, 5, --uuid, 7f099235327e4206afdfbc22c7712328, --accessToken, ????????, --clientId, OWEyZTE3Y2MtOTZiOC00MWMwLWFkZjYtNmY2MDU2NmIxNDAz, --xuid, 2535442900827884, --userType, msa, --versionType, release, --width, 854, --height, 480, --quickPlayPath, C:\Users\Micha\curseforge\minecraft\Install\quickPlay\java\1725124053749.json, --launchTarget, forgeclient, --fml.forgeVersion, 47.3.0, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] 10:07:36.593 game [10:07:36] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.11 by Oracle Corporation; OS Windows 11 arch amd64 version 10.0 10:07:37.363 game [10:07:37] [main/INFO] [ne.mi.fm.lo.ImmediateWindowHandler/]: Loading ImmediateWindowProvider fmlearlywindow 10:07:37.452 game [10:07:37] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.6 10:07:37.503 game # 10:07:37.503 game # A fatal error has been detected by the Java Runtime Environment: 10:07:37.503 game # 10:07:37.503 game # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ff8a76f59f0, pid=13980, tid=12732 10:07:37.503 game # 10:07:37.503 game # JRE version: Java(TM) SE Runtime Environment (17.0.11+7) (build 17.0.11+7-LTS-207) 10:07:37.503 game # Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.11+7-LTS-207, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) 10:07:37.503 game # Problematic frame: 10:07:37.506 game # C [atio6axx.dll+0x1759f0] 10:07:37.507 game # 10:07:37.507 game # No core dump will be written. Minidumps are not enabled by default on client versions of Windows 10:07:37.507 game #   Debug txt:  [31Aug2024 10:07:36.584] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--username, GalaxyReach, --version, forge-47.3.0, --gameDir, C:\Users\Micha\curseforge\minecraft\Instances\Liminal Server, --assetsDir, C:\Users\Micha\curseforge\minecraft\Install\assets, --assetIndex, 5, --uuid, 7f099235327e4206afdfbc22c7712328, --accessToken, ????????, --clientId, OWEyZTE3Y2MtOTZiOC00MWMwLWFkZjYtNmY2MDU2NmIxNDAz, --xuid, 2535442900827884, --userType, msa, --versionType, release, --width, 854, --height, 480, --quickPlayPath, C:\Users\Micha\curseforge\minecraft\Install\quickPlay\java\1725124053749.json, --launchTarget, forgeclient, --fml.forgeVersion, 47.3.0, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [31Aug2024 10:07:36.592] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.11 by Oracle Corporation; OS Windows 11 arch amd64 version 10.0 [31Aug2024 10:07:36.640] [main/DEBUG] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Found launch services [fmlclientdev,forgeclient,minecraft,forgegametestserverdev,fmlserveruserdev,fmlclient,fmldatauserdev,forgeserverdev,forgeserveruserdev,forgeclientdev,forgeclientuserdev,forgeserver,forgedatadev,fmlserver,fmlclientuserdev,fmlserverdev,forgedatauserdev,testharness,forgegametestserveruserdev] [31Aug2024 10:07:36.648] [main/DEBUG] [cpw.mods.modlauncher.NameMappingServiceHandler/MODLAUNCHER]: Found naming services : [srgtomcp] [31Aug2024 10:07:36.664] [main/DEBUG] [cpw.mods.modlauncher.LaunchPluginHandler/MODLAUNCHER]: Found launch plugins: [mixin,eventbus,slf4jfixer,object_holder_definalize,runtime_enum_extender,capability_token_subclass,accesstransformer,runtimedistcleaner] [31Aug2024 10:07:36.672] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Discovering transformation services [31Aug2024 10:07:36.680] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path GAMEDIR is C:\Users\Micha\curseforge\minecraft\Instances\Liminal Server [31Aug2024 10:07:36.680] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path MODSDIR is C:\Users\Micha\curseforge\minecraft\Instances\Liminal Server\mods [31Aug2024 10:07:36.680] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path CONFIGDIR is C:\Users\Micha\curseforge\minecraft\Instances\Liminal Server\config [31Aug2024 10:07:36.680] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path FMLCONFIG is C:\Users\Micha\curseforge\minecraft\Instances\Liminal Server\config\fml.toml [31Aug2024 10:07:37.354] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Found additional transformation services from discovery services: [31Aug2024 10:07:37.362] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: Loading ImmediateWindowProvider fmlearlywindow [31Aug2024 10:07:37.450] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.6  
    • https://paste.gg/p/anonymous/248d684303f44baaa4ca3aa6fb214643
  • Topics

×
×
  • Create New...

Important Information

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