Search in sources :

Example 1 with MessageMungusBiomeChange

use of com.github.alexthe666.alexsmobs.message.MessageMungusBiomeChange in project AlexsMobs by Alex-the-666.

the class EntityMungus method transformBiome.

private void transformBiome(BlockPos pos, Holder<Biome> biome) {
    LevelChunk chunk = level.getChunkAt(pos);
    PalettedContainer<Holder<Biome>> container = getChunkBiomes(chunk);
    if (this.entityData.get(REVERTING)) {
        int lvt_4_1_ = chunk.getPos().getMinBlockX() >> 2;
        int yChunk = (int) this.getY() >> 2;
        int lvt_5_1_ = chunk.getPos().getMinBlockZ() >> 2;
        ChunkGenerator chunkgenerator = ((ServerLevel) level).getChunkSource().getGenerator();
        Biome b = null;
        for (int k = 0; k < 4; ++k) {
            for (int l = 0; l < 4; ++l) {
                for (int i1 = 0; i1 < 4; ++i1) {
                    container.getAndSetUnchecked(k, l, i1, chunkgenerator.getBiomeSource().getNoiseBiome(lvt_4_1_ + k, yChunk + l, lvt_5_1_ + i1, chunkgenerator.climateSampler()));
                }
            }
        }
        if (b != null && !level.isClientSide) {
            AlexsMobs.sendMSGToAll(new MessageMungusBiomeChange(this.getId(), pos.getX(), pos.getZ(), b.getRegistryName().toString()));
        }
    } else {
        if (biome == null) {
            return;
        }
        if (container != null && !level.isClientSide) {
            for (int biomeX = 0; biomeX < 4; ++biomeX) {
                for (int biomeY = 0; biomeY < 4; ++biomeY) {
                    for (int biomeZ = 0; biomeZ < 4; ++biomeZ) {
                        container.getAndSetUnchecked(biomeX, biomeY, biomeZ, biome);
                    }
                }
            }
            int id = this.getId();
            AlexsMobs.sendMSGToAll(new MessageMungusBiomeChange(this.getId(), pos.getX(), pos.getZ(), biome.value().getRegistryName().toString()));
        }
    }
}
Also used : MessageMungusBiomeChange(com.github.alexthe666.alexsmobs.message.MessageMungusBiomeChange) LevelChunk(net.minecraft.world.level.chunk.LevelChunk) Biome(net.minecraft.world.level.biome.Biome) Holder(net.minecraft.core.Holder) ChunkGenerator(net.minecraft.world.level.chunk.ChunkGenerator)

Example 2 with MessageMungusBiomeChange

use of com.github.alexthe666.alexsmobs.message.MessageMungusBiomeChange in project AlexsMobs by Alex-the-666.

the class EntityMungus method transformBiome.

private void transformBiome(BlockPos pos, Biome biome) {
    LevelChunk chunk = level.getChunkAt(pos);
    PalettedContainer<Biome> container = getChunkBiomes(chunk);
    if (this.entityData.get(REVERTING)) {
        int lvt_4_1_ = chunk.getPos().getMinBlockX() >> 2;
        int yChunk = (int) this.getY() >> 2;
        int lvt_5_1_ = chunk.getPos().getMinBlockZ() >> 2;
        ChunkGenerator chunkgenerator = ((ServerLevel) level).getChunkSource().getGenerator();
        Biome b = null;
        for (int k = 0; k < 4; ++k) {
            for (int l = 0; l < 4; ++l) {
                for (int i1 = 0; i1 < 4; ++i1) {
                    container.getAndSetUnchecked(k, l, i1, chunkgenerator.getBiomeSource().getNoiseBiome(lvt_4_1_ + k, yChunk + l, lvt_5_1_ + i1, chunkgenerator.climateSampler()));
                }
            }
        }
        if (b != null && !level.isClientSide) {
            AlexsMobs.sendMSGToAll(new MessageMungusBiomeChange(this.getId(), pos.getX(), pos.getZ(), b.getRegistryName().toString()));
        }
    } else {
        if (biome == null) {
            return;
        }
        if (container != null && !level.isClientSide) {
            for (int biomeX = 0; biomeX < 4; ++biomeX) {
                for (int biomeY = 0; biomeY < 4; ++biomeY) {
                    for (int biomeZ = 0; biomeZ < 4; ++biomeZ) {
                        container.getAndSetUnchecked(biomeX, biomeY, biomeZ, biome);
                    }
                }
            }
            int id = this.getId();
            AlexsMobs.sendMSGToAll(new MessageMungusBiomeChange(this.getId(), pos.getX(), pos.getZ(), biome.getRegistryName().toString()));
        }
    }
}
Also used : MessageMungusBiomeChange(com.github.alexthe666.alexsmobs.message.MessageMungusBiomeChange) LevelChunk(net.minecraft.world.level.chunk.LevelChunk) Biome(net.minecraft.world.level.biome.Biome) ChunkGenerator(net.minecraft.world.level.chunk.ChunkGenerator)

Aggregations

MessageMungusBiomeChange (com.github.alexthe666.alexsmobs.message.MessageMungusBiomeChange)2 Biome (net.minecraft.world.level.biome.Biome)2 ChunkGenerator (net.minecraft.world.level.chunk.ChunkGenerator)2 LevelChunk (net.minecraft.world.level.chunk.LevelChunk)2 Holder (net.minecraft.core.Holder)1