Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.8][Solved]Biome Help


WitherDoggie
 Share

Recommended Posts

I'm trying to create a custom biome. I wrote the biome class and registered my new biome. My custom biome generates in-game with most of the custom blocks that I want it to. My question is, how can I remove the normal minecraft stone that generates there and replace it with my custom stone block? I also have a custom ore that I want to generate in this biome only. How can I do this?

 

ModBiomeRegistry

http://pastebin.com/ubMKLHE9

 

ModBiome

http://pastebin.com/NthUZFAr

 

I've also noticed that water lilies are spawning every where in the water even though I've never told the biome to. Why is this?

 

Another problem I've noticed is that mobs are spawning in the biome even though I don't have any mobs set to spawn there.

 

One last question. I made custom dirt, grass, and stone blocks that I want to have the same properties as the vanilla dirt, grass, and stone blocks. Can I just create a class for each that extends the vanilla class?

Link to comment
Share on other sites

I'm trying to create a custom biome. I wrote the biome class and registered my new biome. My custom biome generates in-game with most of the custom blocks that I want it to. My question is, how can I remove the normal minecraft stone that generates there and replace it with my custom stone block? I also have a custom ore that I want to generate in this biome only. How can I do this?

 

ModBiomeRegistry

http://pastebin.com/ubMKLHE9

 

ModBiome

http://pastebin.com/NthUZFAr

 

I've also noticed that water lilies are spawning every where in the water even though I've never told the biome to. Why is this?

 

Another problem I've noticed is that mobs are spawning in the biome even though I don't have any mobs set to spawn there.

 

One last question. I made custom dirt, grass, and stone blocks that I want to have the same properties as the vanilla dirt, grass, and stone blocks. Can I just create a class for each that extends the vanilla class?

Link to comment
Share on other sites

There's more than one way to substitute the vanilla stone. I think there's an event where you can detect vanilla stone and the biome, making the switch whenever you like the combo. You could also hunt down the code that fills most deep areas with stone. Be aware though: Most ores spawn only in vanilla stone; they won't replace anything else, so your biome might not get any diamonds, gold, iron etc.

 

Mobs decide where they want to spawn. There might be some that spawn in any biome.

 

Extending dirt etc will duplicate the intrinsic characteristics, but... Some game behavior is reactive (like plants deciding where they can grow). Therefore, some other objects in the game might not recognize your dirt as dirt (e.g. Plants might refuse to grow on it.)

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Link to comment
Share on other sites

There's more than one way to substitute the vanilla stone. I think there's an event where you can detect vanilla stone and the biome, making the switch whenever you like the combo. You could also hunt down the code that fills most deep areas with stone. Be aware though: Most ores spawn only in vanilla stone; they won't replace anything else, so your biome might not get any diamonds, gold, iron etc.

 

Mobs decide where they want to spawn. There might be some that spawn in any biome.

 

Extending dirt etc will duplicate the intrinsic characteristics, but... Some game behavior is reactive (like plants deciding where they can grow). Therefore, some other objects in the game might not recognize your dirt as dirt (e.g. Plants might refuse to grow on it.)

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Link to comment
Share on other sites

There's more than one way to substitute the vanilla stone. I think there's an event where you can detect vanilla stone and the biome, making the switch whenever you like the combo. You could also hunt down the code that fills most deep areas with stone. Be aware though: Most ores spawn only in vanilla stone; they won't replace anything else, so your biome might not get any diamonds, gold, iron etc.

 

Mobs decide where they want to spawn. There might be some that spawn in any biome.

 

Extending dirt etc will duplicate the intrinsic characteristics, but... Some game behavior is reactive (like plants deciding where they can grow). Therefore, some other objects in the game might not recognize your dirt as dirt (e.g. Plants might refuse to grow on it.)

 

1. Okay thanks, I'll look into it. As far as the vanilla ores go, I was hoping there was a way to disable them and use my custom ores instead.

 

2. I'll see if I can find a way to work around that.

 

3. No plants is fine. The biome is supposed to be dead looking. Though I will add some custom plants that can only grow on my custom dirt.

Link to comment
Share on other sites

There's more than one way to substitute the vanilla stone. I think there's an event where you can detect vanilla stone and the biome, making the switch whenever you like the combo. You could also hunt down the code that fills most deep areas with stone. Be aware though: Most ores spawn only in vanilla stone; they won't replace anything else, so your biome might not get any diamonds, gold, iron etc.

 

Mobs decide where they want to spawn. There might be some that spawn in any biome.

 

Extending dirt etc will duplicate the intrinsic characteristics, but... Some game behavior is reactive (like plants deciding where they can grow). Therefore, some other objects in the game might not recognize your dirt as dirt (e.g. Plants might refuse to grow on it.)

 

1. Okay thanks, I'll look into it. As far as the vanilla ores go, I was hoping there was a way to disable them and use my custom ores instead.

 

2. I'll see if I can find a way to work around that.

 

3. No plants is fine. The biome is supposed to be dead looking. Though I will add some custom plants that can only grow on my custom dirt.

Link to comment
Share on other sites

I tracked down the code that fills chunks with stone, and it looks like the stone is generated first then the biome blocks are placed. Not sure what to do with that. Do you happen to know the event that I can use instead?

 

Also, I managed to stop mobs from spawning here.( When I disabled creature spawning, I forgot to disable monster spawning.) I want the biome to only spawn wither skeletons. I made the biome spawn normal skeletons, how can I get wither skeletons to spawn?

 

Please Note: I am not trying to replace the stone in all biomes. I only want my custom stone to generate in my custom biome. All other biomes won't be changed.

Link to comment
Share on other sites

I tracked down the code that fills chunks with stone, and it looks like the stone is generated first then the biome blocks are placed. Not sure what to do with that. Do you happen to know the event that I can use instead?

 

Also, I managed to stop mobs from spawning here.( When I disabled creature spawning, I forgot to disable monster spawning.) I want the biome to only spawn wither skeletons. I made the biome spawn normal skeletons, how can I get wither skeletons to spawn?

 

Please Note: I am not trying to replace the stone in all biomes. I only want my custom stone to generate in my custom biome. All other biomes won't be changed.

Link to comment
Share on other sites

Unfortunately, I haven't worked with world generation before, so I can only give strategic advice on how to explore the Forge code yourself looking for hooks that Forge has injected. On one end, search the chunk generation source for any mention of forge or event (they often employ fully qualified names, so you can't rely on import statements to expose Forge references).

 

You might also try world's block-placement method or whatever the chunk generator returns to. You'd be looking for a call-back to a Forge method that would let you intervene. At the other end, go to net.minecraftforge.event and browse every event in every class to get an idea what's possible. Terraingen and World look like promising subfolders there.

 

Even after finding an event at a usable intervention point, you would still need to see if it carries enough information each way for you to detect your condition and achieve your goal. I think your chances are good, since this forum has discussed block substitutions before. However, I can't recall whether biome was a factor in any of them.

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Link to comment
Share on other sites

Unfortunately, I haven't worked with world generation before, so I can only give strategic advice on how to explore the Forge code yourself looking for hooks that Forge has injected. On one end, search the chunk generation source for any mention of forge or event (they often employ fully qualified names, so you can't rely on import statements to expose Forge references).

 

You might also try world's block-placement method or whatever the chunk generator returns to. You'd be looking for a call-back to a Forge method that would let you intervene. At the other end, go to net.minecraftforge.event and browse every event in every class to get an idea what's possible. Terraingen and World look like promising subfolders there.

 

Even after finding an event at a usable intervention point, you would still need to see if it carries enough information each way for you to detect your condition and achieve your goal. I think your chances are good, since this forum has discussed block substitutions before. However, I can't recall whether biome was a factor in any of them.

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Link to comment
Share on other sites

I've done as you said and overriden genTerrainBlocks (changed the vanilla integer names to easier to identify ones), but I can't figure out how to change the stone. I looked online for some help and the things I found told me to just copy the entire method generateBiomeTerrain in the BiomeGenBase class and then modify it to fit my needs. I do not want to copy and paste things unless it is completely necessary. How to I change the stone?

 

ModBiome.class

http://pastebin.com/4ZyHv9DJ

Link to comment
Share on other sites

I've done as you said and overriden genTerrainBlocks (changed the vanilla integer names to easier to identify ones), but I can't figure out how to change the stone. I looked online for some help and the things I found told me to just copy the entire method generateBiomeTerrain in the BiomeGenBase class and then modify it to fit my needs. I do not want to copy and paste things unless it is completely necessary. How to I change the stone?

 

ModBiome.class

http://pastebin.com/4ZyHv9DJ

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

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • modified config: when you change any value from it's default to a custom one
    • What do you mean by modified them? Do you mean that we have used the mods, and therefore there will be data in them, because if so, we've ben playing on this server for about a week. All/most the configs should be modified.
    • You have to downgrade Forge to 39.0.44 if the mod has not updated and you want to keep using it.
    • You can delete all the server configs if you have not modified any of them.
    • Tried that, The following crash occurred.   ---- Minecraft Crash Report ---- // Don't do that. Time: 25/1/22, 6:27 pm Description: Exception in server tick loop net.minecraftforge.fml.config.ConfigFileTypeHandler$ConfigLoadingException: Failed loading config file forge-server.toml of type SERVER for modid forge at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:61) ~[fmlcore-1.18.1-39.0.45.jar%2365!/:?] {} at net.minecraftforge.fml.config.ConfigTracker.openConfig(ConfigTracker.java:74) ~[fmlcore-1.18.1-39.0.45.jar%2365!/:?] {} at net.minecraftforge.fml.config.ConfigTracker.lambda$loadConfigs$1(ConfigTracker.java:64) ~[fmlcore-1.18.1-39.0.45.jar%2365!/:?] {} at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] {} at java.util.Collections$SynchronizedCollection.forEach(Collections.java:2131) ~[?:?] {} at net.minecraftforge.fml.config.ConfigTracker.loadConfigs(ConfigTracker.java:64) ~[fmlcore-1.18.1-39.0.45.jar%2365!/:?] {} at net.minecraftforge.server.ServerLifecycleHooks.handleServerAboutToStart(ServerLifecycleHooks.java:94) ~[forge-1.18.1-39.0.45-universal.jar%2368!/:?] {re:classloading} at net.minecraft.server.dedicated.DedicatedServer.m_7038_(DedicatedServer.java:173) ~[server-1.18.1-20211210.034407-srg.jar%2364!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:644) ~[server-1.18.1-20211210.034407-srg.jar%2364!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftServerAccessor,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:A} at net.minecraft.server.MinecraftServer.m_177918_(MinecraftServer.java:258) ~[server-1.18.1-20211210.034407-srg.jar%2364!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftServerAccessor,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:A} at java.lang.Thread.run(Thread.java:833) [?:?] {} Caused by: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.4.jar%237!/:?] {} at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36) ~[core-3.6.4.jar%237!/:?] {} at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49) ~[core-3.6.4.jar%237!/:?] {} at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123) ~[core-3.6.4.jar%237!/:?] {} at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166) ~[toml-3.6.4.jar%238!/:?] {} at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145) ~[toml-3.6.4.jar%238!/:?] {} at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55) ~[toml-3.6.4.jar%238!/:?] {} at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44) ~[toml-3.6.4.jar%238!/:?] {} at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[toml-3.6.4.jar%238!/:?] {} at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[core-3.6.4.jar%237!/:?] {} at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[core-3.6.4.jar%237!/:?] {} at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[core-3.6.4.jar%237!/:?] {} at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[core-3.6.4.jar%237!/:?] {} at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85) ~[core-3.6.4.jar%237!/:?] {} at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:57) ~[fmlcore-1.18.1-39.0.45.jar%2365!/:?] {} ... 10 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details: Minecraft Version: 1.18.1 Minecraft Version ID: 1.18.1 Operating System: Windows 10 (amd64) version 10.0 Java Version: 17.0.2, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation Memory: 5808388224 bytes (5539 MiB) / 7612661760 bytes (7260 MiB) up to 8589934592 bytes (8192 MiB) CPUs: 16 Processor Vendor: AuthenticAMD Processor Name: AMD Ryzen 7 2700 Eight-Core Processor Identifier: AuthenticAMD Family 23 Model 8 Stepping 2 Microarchitecture: Zen+ Frequency (GHz): 3.20 Number of physical packages: 1 Number of physical CPUs: 8 Number of logical CPUs: 16 Graphics card #0 name: NVIDIA GeForce GTX 1660 Ti Graphics card #0 vendor: NVIDIA (0x10de) Graphics card #0 VRAM (MB): 4095.00 Graphics card #0 deviceId: 0x2182 Graphics card #0 versionInfo: DriverVersion=30.0.14.7111 Memory slot #0 capacity (MB): 16384.00 Memory slot #0 clockSpeed (GHz): 2.40 Memory slot #0 type: DDR4 Memory slot #1 capacity (MB): 16384.00 Memory slot #1 clockSpeed (GHz): 2.40 Memory slot #1 type: DDR4 Virtual memory max (MB): 34765.36 Virtual memory used (MB): 19390.98 Swap memory total (MB): 2048.00 Swap memory used (MB): 0.00 JVM Flags: 2 total; -Xmx8G -Xms7G Server Running: true Player Count: 0 / 20; [] Data Packs: vanilla, mod:mcwbridges, mod:enchdesc, mod:swingthroughgrass, mod:jei (incompatible), mod:flywheel, mod:patchouli, mod:create, mod:createdeco (incompatible), mod:clumps (incompatible), mod:cookingforblockheads, mod:storagedrawers (incompatible), mod:naturescompass (incompatible), mod:tombstone, mod:naturesaura (incompatible), mod:balm (incompatible), mod:jeresources, mod:forge, mod:aquaculture (incompatible), mod:cosmeticarmorreworked (incompatible), mod:valhelsia_core, mod:forbidden_arcanus, mod:createaddition (incompatible), mod:betteradvancements, mod:starlight, mod:mahoutsukai Is Modded: Definitely; Server brand changed to 'forge' Type: Dedicated Server (map_server.txt) ModLauncher: 9.1.0+9.1.0+main.6690ee51 ModLauncher launch target: forgeserver ModLauncher naming: srg ModLauncher services: mixin PLUGINSERVICE eventbus PLUGINSERVICE object_holder_definalize PLUGINSERVICE runtime_enum_extender PLUGINSERVICE capability_token_subclass PLUGINSERVICE accesstransformer PLUGINSERVICE runtimedistcleaner PLUGINSERVICE mixin TRANSFORMATIONSERVICE fml TRANSFORMATIONSERVICE FML Language Providers: minecraft@1.0 javafml@null Mod List: server-1.18.1-20211210.034407-srg.jar |Minecraft |minecraft |1.18.1 |DONE |Manifest: NOSIGNATURE mcw-bridges-2.0.1-mc1.18.1.jar |Macaw's Bridges |mcwbridges |2.0.1 |DONE |Manifest: NOSIGNATURE EnchantmentDescriptions-Forge-1.18.1-9.0.9.jar |EnchantmentDescriptions |enchdesc |9.0.9 |DONE |Manifest: NOSIGNATURE swingthroughgrass-1.18.1-1.8.0.jar |SwingThroughGrass |swingthroughgrass |1.18.1-1.8.0 |DONE |Manifest: NOSIGNATURE jei-1.18.1-9.2.1.69.jar |Just Enough Items |jei |9.2.1.69 |DONE |Manifest: NOSIGNATURE flywheel-forge-1.18-0.5.1.jar |Flywheel |flywheel |1.18-0.5.1 |DONE |Manifest: NOSIGNATURE Patchouli-1.18.1-64.jar |Patchouli |patchouli |1.18.1-64 |DONE |Manifest: NOSIGNATURE create-mc1.18.1_v0.4c.jar |Create |create |0.4c |DONE |Manifest: NOSIGNATURE createdeco-1.2.3-1.18.jar |Create Deco |createdeco |1.2.3-1.18 |DONE |Manifest: NOSIGNATURE Clumps-forge-1.18.1-8.0.4.jar |Clumps |clumps |8.0.4 |DONE |Manifest: NOSIGNATURE cookingforblockheads-forge-1.18.1-11.1.0.jar |CookingForBlockheads |cookingforblockheads |11.1.0 |DONE |Manifest: NOSIGNATURE StorageDrawers-1.18.1-10.1.1.jar |Storage Drawers |storagedrawers |10.1.1 |DONE |Manifest: NOSIGNATURE NaturesCompass-1.18.1-1.9.4-forge.jar |Nature's Compass |naturescompass |1.18.1-1.9.4-forge |DONE |Manifest: NOSIGNATURE tombstone-7.3.5-1.18.jar |Corail Tombstone |tombstone |7.3.5 |DONE |Manifest: NOSIGNATURE NaturesAura-35.4.jar |Nature's Aura |naturesaura |35.4 |DONE |Manifest: NOSIGNATURE starlight-1.0.0+forge.8f9b922.Aeiou.jar |Starlight |starlight |1.0.0+forge.4fd2e63 |DONE |Manifest: NOSIGNATURE mahoutsukai-1.18.1-v1.34.0.jar |Mahou Tsukai |mahoutsukai |1.18.1-v1.34.0 |DONE |Manifest: NOSIGNATURE balm-2.4.1+0.jar |Balm |balm |2.4.1+0 |DONE |Manifest: NOSIGNATURE JustEnoughResources-1.18.1-0.13.1.141.jar |Just Enough Resources |jeresources |0.13.1.141 |DONE |Manifest: NOSIGNATURE forge-1.18.1-39.0.45-universal.jar |Forge |forge |39.0.45 |DONE |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90 Aquaculture-1.18.1-2.3.2.jar |Aquaculture 2 |aquaculture |1.18.1-2.3.2 |DONE |Manifest: NOSIGNATURE CosmeticArmorReworked-1.18.1-v1a.jar |CosmeticArmorReworked |cosmeticarmorreworked |1.18.1-v1a |DONE |Manifest: 5e:ed:25:99:e4:44:14:c0:dd:89:c1:a9:4c:10:b5:0d:e4:b1:52:50:45:82:13:d8:d0:32:89:67:56:57:01:53 valhelsia_core-1.18.1-0.3.2.jar |Valhelsia Core |valhelsia_core |1.18.1-0.3.2 |DONE |Manifest: NOSIGNATURE forbidden_arcanus-1.18.1-2.0.2.jar |Forbidden & Arcanus |forbidden_arcanus |1.18.1-2.0.2 |DONE |Manifest: NOSIGNATURE createaddition-1.18.1-20220111b.jar |Create Crafts & Additions |createaddition |1.18.1-20220111b |DONE |Manifest: NOSIGNATURE BetterAdvancements-1.18.1-0.1.2.122.jar |Better Advancements |betteradvancements |0.1.2.122 |DONE |Manifest: NOSIGNATURE Crash Report UUID: 14317a4f-c9f8-4bef-a141-d4ff36dd2b59 FML: 39.0 Forge: net.minecraftforge:39.0.45    
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.