Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: spawn biome json files are broken if using with biome mods. #5039

Closed
2 tasks done
greanthai420 opened this issue Dec 11, 2023 · 9 comments
Closed
2 tasks done

Comments

@greanthai420
Copy link

greanthai420 commented Dec 11, 2023

What happened?

With mod Terralith.
Tested with "Generate Dragon Roost Chance" = 1 and with fire_dragon_biomes.json

Config examples that spawns:

{
  "biomes": [
    [      
      {
        "type": "BIOME_TAG",
        "negate": false,
        "value": "forge:is_hot/overworld"
      }
    ]
  ]
}
{
  "biomes": [
    [      
      {
        "type": "BIOME_TAG",
        "negate": false,
        "value": "forge:is_cold/overworld"
      }
    ]
  ]
}

Config examples that don't seem to spawn at all:
BIOME_TAG forge:is_desert
BIOME_TAG forge:is_plains

Seems that all tags that doesn't have /overworld at the end doesn't work.
If using without Terralith BIOME_TAG forge:is_desert works as intended.

Minecraft Version

1.20.1

Ice and Fire version

alpha 7

Citadel version

2.4.9

Relevant log output

no logs lol

Other Information

  • I am using other mods besides Ice and Fire
  • I have attached a log file from the session that I have experienced this issue
@greanthai420 greanthai420 changed the title [Bug]: spawn biome json files are broken. [Bug]: spawn biome json files are broken if using with biome mods. Dec 11, 2023
@SiverDX
Copy link
Contributor

SiverDX commented Dec 11, 2023

checked myself, the tags work fine
there is no real logic against one or the other, if the tag exists in the minecraft registry it will be properly handled (which it does)
The first tag you mention simply has more biomes added to it, incl. some caves -> https://github.com/Stardust-Labs-MC/Terralith/blob/1.20/data/forge/tags/worldgen/biome/is_hot/overworld.json


i did notice that terraliths deep caves cause problems with certain features

Checking [iceandfire:fire_dragon_roost] against [terralith:cave/deep_caves]
Checking [iceandfire:myrmex_hive_desert] against [terralith:cave/deep_caves]
Checking [iceandfire:spawn_death_worm] against [terralith:cave/deep_caves]
Checking [iceandfire:spawn_dragon_skeleton_fire] against [terralith:cave/deep_caves]
Checking [iceandfire:lightning_dragon_roost] against [terralith:cave/deep_caves]
Checking [iceandfire:spawn_dragon_skeleton_lightning] against [terralith:cave/deep_caves]
Checking [iceandfire:fire_dragon_cave] against [terralith:cave/deep_caves]
Checking [iceandfire:lightning_dragon_cave] against [terralith:cave/deep_caves]

normally this would look like this

Checking [iceandfire:fire_dragon_roost] against [minecraft:plains]
Checking [iceandfire:myrmex_hive_desert] against [minecraft:plains]
Checking [iceandfire:spawn_death_worm] against [minecraft:plains]
Checking [iceandfire:spawn_dragon_skeleton_fire] against [minecraft:plains]
Checking [iceandfire:spawn_wandering_cyclops] against [minecraft:plains]
Checking [iceandfire:fire_dragon_cave] against [minecraft:plains]

@greanthai420
Copy link
Author

Thanks for the reply.
Here's how to reproduce.
/locate biome #forge:is_hot/overworld then tp, will see roosts everywhere.

but if I use
/locate biome #forge:is_desert then tp, no roosts anywhere. Also tried going into every is_desert biomes and roosts are nowhere to be found.

@SiverDX
Copy link
Contributor

SiverDX commented Dec 11, 2023

is_desert probably would probably work if you add the terralith cave biomes to it
not that there is any reason to do so

@greanthai420
Copy link
Author

Adding terralith:cave/deep_caves into is_desert then using forge:is_desert as spawn seems to make the roosts spawn in every biomes.
Maybe problems with how terralith assigns the tags?

@SiverDX
Copy link
Contributor

SiverDX commented Dec 11, 2023

the problem is terralith worldgen and how biomes get recognized when its present
with terralith you have a cave and surface biome and the default biome filter seems to pass the lowest y point

might need to make a custom one to check surface biome with a fitting world height

@greanthai420
Copy link
Author

greanthai420 commented Dec 11, 2023

Sorry if I sound stupid, but in that case shouldn't this work? Assuming that the roosts are spawning underground making on-ground roosts not spawning? (deep_caves is in is_underground)

{
  "biomes": [
    [      
      {
        "type": "BIOME_TAG",
        "negate": false,
        "value": "forge:is_desert"
      },
	  {
        "type": "BIOME_TAG",
        "negate": true,
        "value": "forge:is_underground"
      }
    ]
  ]
}

@SiverDX
Copy link
Contributor

SiverDX commented Dec 11, 2023

thing is some of these caves are generic, like deep_cave
they don't belong to a specific biome or type of biome

@TheBv
Copy link
Collaborator

TheBv commented Dec 22, 2023

I will plan on rewriting how caves will be generated in future releases so they look at the overworld biome to decide where to generate to circumvent this issue.

@SiverDX
Copy link
Contributor

SiverDX commented Dec 22, 2023

already did that here https://github.com/SiverDX/Ice_and_Fire/blob/1.19.2/src/main/java/com/github/alexthe666/iceandfire/world/CustomBiomeFilter.java

@TheBv TheBv closed this as completed in 4f360c7 Dec 26, 2023
TheBv pushed a commit that referenced this issue Dec 26, 2023
- fixed worldgen with terralith (and maybe others)
- fixes #5039
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants