Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

I was creating my custom dimension with a custom biome provider, which I basically replicated off the nether and overworld ones but changed the biome list, and I ran into a problem where I was getting the error,"[Render thread/WARN] [minecraft/BiomeContainer]: Received invalid biome id: -1" spammed. I checked where this is from, and it turns out the BiomeContainer biome int array in the constructor is full of thousands of "-1"s, which I have no idea where they came from. My dimension still fully works though, it just causes a ton of spam in the console, which slows down my laptop like crazy. The only thing I registered for my biome provider is the codec in enqueued in FMLCommonSetupEvent: 

public class FloorBiomeProvider extends BiomeProvider {

    public static final Codec<CustomBiomeProvider> CODEC = RecordCodecBuilder.create(builder -> builder.group(
            Codec.LONG.fieldOf("seed").stable().forGetter(provider -> provider.seed),
            Codec.list(Biome.CODEC).fieldOf("biomes").forGetter(provider -> provider.biomes),
            RegistryLookupCodec.getLookUpCodec(Registry.BIOME_KEY).fieldOf("lookup").forGetter(provider -> provider.lookup)
    ).apply(builder, builder.stable(CustomBiomeProvider::new)));

    private final long seed;
    private final Registry<Biome> lookup;
    private final MaxMinNoiseMixer temperatureMixer;
    private final MaxMinNoiseMixer humidityMixer;
    private final MaxMinNoiseMixer altitudeMixer;
    private final MaxMinNoiseMixer weirdnessMixer;
    private final Map<Biome, Biome.Attributes> attributes;


    protected CustomBiomeProvider(long seed, List<Biome> biomes, Registry<Biome> lookup) {
        super(biomes);
        this.seed = seed;
        this.lookup = lookup;
        this.temperatureMixer = MaxMinNoiseMixer.func_242930_a(new SharedSeedRandom(seed), -7, new DoubleArrayList(ImmutableList.of(1.0, 1.0)));
        this.humidityMixer = MaxMinNoiseMixer.func_242930_a(new SharedSeedRandom(seed + 1), -7, new DoubleArrayList(ImmutableList.of(1.0, 1.0)));
        this.altitudeMixer = MaxMinNoiseMixer.func_242930_a(new SharedSeedRandom(seed + 2), -7, new DoubleArrayList(ImmutableList.of(1.0, 1.0)));
        this.weirdnessMixer = MaxMinNoiseMixer.func_242930_a(new SharedSeedRandom(seed + 3), -7, new DoubleArrayList(ImmutableList.of(1.0, 1.0)));
        attributes = new HashMap<>();
        biomes.forEach(biome -> {
            attributes.put(biome, new Biome.Attributes(biome.getTemperature(), biome.getDownfall(), 0, 0, 0));
        });
    }

    @Override
    protected Codec<? extends BiomeProvider> getBiomeProviderCodec() {
        return CODEC;
    }

    @Override
    public BiomeProvider getBiomeProvider(long seed) {
        return new FloorBiomeProvider(seed, biomes, lookup);
    }

    @Override
    public Biome getNoiseBiome(int x, int y, int z) {
        Biome.Attributes attributes = new Biome.Attributes((float) temperatureMixer.func_237211_a_(x, y, z), (float) humidityMixer.func_237211_a_(x, y, z), (float) altitudeMixer.func_237211_a_(x, y, z), (float) weirdnessMixer.func_237211_a_(x, y, z), 0);
        return biomes.stream()
                .min(Comparator.comparing(biome -> getDifference(attributes, biome)))
                .orElse(BiomeRegistry.THE_VOID);
    }

    private float getDifference(Biome.Attributes attributes, Biome biome) {
        return this.attributes.get(biome).getAttributeDifference(attributes);
    }
}

The code for this biome provider is heavily influenced by the NetherBiomeProvider. 

 

EDIT: I've been able to trace the error to the SChunkDataPacket, which cannot find the IDs for any of the biomes in the chunk. I'm not sure what is going on or why the biomes that are in the chunk are different from the ones in the registry. 

EDIT2: Changing the Biomes saved to suppliers instead worked

Edited by DavidQF555

  • DavidQF555 changed the title to [Solved][1.16.5] Biome Container with invalid IDs

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

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.