Search in sources :

Example 71 with BlockState

use of net.minecraft.world.level.block.state.BlockState in project MyPet by xXKeyleXx.

the class PlatformHelper method getBlockBBsInBB.

public List getBlockBBsInBB(net.minecraft.world.level.Level world, AABB axisalignedbb) {
    UnsafeList unsafeList = new UnsafeList();
    int minX = Mth.floor(axisalignedbb.minX);
    int maxX = (int) Math.ceil(axisalignedbb.maxX);
    int minY = Mth.floor(axisalignedbb.minY);
    int maxY = (int) Math.ceil(axisalignedbb.maxY);
    int minZ = Mth.floor(axisalignedbb.minZ);
    int maxZ = (int) Math.ceil(axisalignedbb.maxZ);
    VoxelShape vec3d;
    boolean isEmpty;
    for (int x = minX; x <= maxX; x++) {
        for (int z = minZ; z <= maxZ; z++) {
            if (((ServerChunkCache) world.getChunkSource()).hasChunk(x >> 4, z >> 4)) {
                for (int y = minY - 1; y <= maxY; y++) {
                    BlockPos bp = new BlockPos(x, y, z);
                    BlockState blockData = world.getBlockState(bp);
                    if (blockData != null && blockData.getMaterial().isSolid()) {
                        vec3d = blockData.getCollisionShape(world, bp);
                        isEmpty = vec3d.isEmpty();
                        if (!isEmpty) {
                            for (AABB bb : vec3d.toAabbs()) {
                                if (bb.move(bp).intersects(axisalignedbb)) {
                                    unsafeList.add(bb);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return unsafeList;
}
Also used : VoxelShape(net.minecraft.world.phys.shapes.VoxelShape) BlockState(net.minecraft.world.level.block.state.BlockState) BlockPos(net.minecraft.core.BlockPos) UnsafeList(org.bukkit.craftbukkit.v1_17_R1.util.UnsafeList) ServerChunkCache(net.minecraft.server.level.ServerChunkCache) AABB(net.minecraft.world.phys.AABB)

Example 72 with BlockState

use of net.minecraft.world.level.block.state.BlockState in project MyPet by xXKeyleXx.

the class EntityMyDonkey method playStepSound.

@Override
public void playStepSound(BlockPos blockposition, BlockState blockdata) {
    if (!blockdata.getMaterial().isLiquid()) {
        BlockState blockdataUp = this.level.getBlockState(blockposition.up());
        SoundType soundeffecttype = blockdata.getSoundType();
        if (blockdataUp.getBlock() == Blocks.SNOW) {
            soundeffecttype = blockdata.getSoundType();
        }
        if (this.isVehicle()) {
            ++this.soundCounter;
            if (this.soundCounter > 5 && this.soundCounter % 3 == 0) {
                this.playSound(SoundEvents.HORSE_GALLOP, soundeffecttype.getVolume() * 0.16F, soundeffecttype.getPitch());
            } else if (this.soundCounter <= 5) {
                this.playSound(SoundEvents.HORSE_STEP_WOOD, soundeffecttype.getVolume() * 0.16F, soundeffecttype.getPitch());
            }
        } else if (!blockdata.getMaterial().isLiquid()) {
            this.soundCounter += 1;
            playSound(SoundEvents.HORSE_STEP_WOOD, soundeffecttype.getVolume() * 0.16F, soundeffecttype.getPitch());
        } else {
            playSound(SoundEvents.HORSE_STEP, soundeffecttype.getVolume() * 0.16F, soundeffecttype.getPitch());
        }
    }
}
Also used : SoundType(net.minecraft.world.level.block.SoundType) BlockState(net.minecraft.world.level.block.state.BlockState)

Example 73 with BlockState

use of net.minecraft.world.level.block.state.BlockState in project MyPet by xXKeyleXx.

the class EntityMyEnderman method updateVisuals.

@Override
public void updateVisuals() {
    Optional<BlockState> block;
    if (getMyPet().getBlock() != null) {
        BlockState data = CraftMagicNumbers.getBlock(getMyPet().getBlock().getData());
        block = Optional.ofNullable(data);
    } else {
        block = Optional.empty();
    }
    getEntityData().set(BLOCK_WATCHER, block);
    getEntityData().set(SCREAMING_WATCHER, getMyPet().isScreaming());
}
Also used : BlockState(net.minecraft.world.level.block.state.BlockState)

Example 74 with BlockState

use of net.minecraft.world.level.block.state.BlockState in project MyPet by xXKeyleXx.

the class EntityMyEnderman method updateVisuals.

@Override
public void updateVisuals() {
    Optional<BlockState> block;
    if (getMyPet().getBlock() != null) {
        BlockState data = CraftMagicNumbers.getBlock(getMyPet().getBlock().getData());
        block = Optional.ofNullable(data);
    } else {
        block = Optional.empty();
    }
    getEntityData().set(BLOCK_WATCHER, block);
    getEntityData().set(SCREAMING_WATCHER, getMyPet().isScreaming());
}
Also used : BlockState(net.minecraft.world.level.block.state.BlockState)

Example 75 with BlockState

use of net.minecraft.world.level.block.state.BlockState in project MyPet by xXKeyleXx.

the class EntityMyHorse method playStepSound.

@Override
public void playStepSound(BlockPos blockposition, BlockState blockdata) {
    if (!blockdata.getMaterial().isLiquid()) {
        BlockState blockdataUp = this.level.getBlockState(blockposition.above());
        SoundType soundeffecttype = blockdata.getSoundType();
        if (blockdataUp.getBlock() == Blocks.SNOW) {
            soundeffecttype = blockdata.getSoundType();
        }
        if (this.isVehicle()) {
            ++this.soundCounter;
            if (this.soundCounter > 5 && this.soundCounter % 3 == 0) {
                this.playSound(SoundEvents.HORSE_GALLOP, soundeffecttype.getVolume() * 0.15F, soundeffecttype.getPitch());
            } else if (this.soundCounter <= 5) {
                this.playSound(SoundEvents.HORSE_STEP_WOOD, soundeffecttype.getVolume() * 0.15F, soundeffecttype.getPitch());
            }
        } else if (!blockdata.getMaterial().isLiquid()) {
            this.soundCounter += 1;
            playSound(SoundEvents.HORSE_STEP_WOOD, soundeffecttype.getVolume() * 0.15F, soundeffecttype.getPitch());
        } else {
            playSound(SoundEvents.HORSE_STEP, soundeffecttype.getVolume() * 0.15F, soundeffecttype.getPitch());
        }
    }
}
Also used : SoundType(net.minecraft.world.level.block.SoundType) BlockState(net.minecraft.world.level.block.state.BlockState)

Aggregations

BlockState (net.minecraft.world.level.block.state.BlockState)141 BlockPos (net.minecraft.core.BlockPos)75 Direction (net.minecraft.core.Direction)18 Level (net.minecraft.world.level.Level)14 Block (net.minecraft.world.level.block.Block)14 ArrayList (java.util.ArrayList)10 ServerLevel (net.minecraft.server.level.ServerLevel)10 SoundType (net.minecraft.world.level.block.SoundType)10 Vec3 (net.minecraft.world.phys.Vec3)10 BlockEntity (net.minecraft.world.level.block.entity.BlockEntity)9 Random (java.util.Random)8 ItemStack (net.minecraft.world.item.ItemStack)7 FluidState (net.minecraft.world.level.material.FluidState)7 AABB (net.minecraft.world.phys.AABB)6 BuildBlock (com.wuest.prefab.structures.base.BuildBlock)5 LevelChunk (net.minecraft.world.level.chunk.LevelChunk)5 SubscribeEvent (net.minecraftforge.eventbus.api.SubscribeEvent)5 LocationTag (com.denizenscript.denizen.objects.LocationTag)4 FakeBlock (com.denizenscript.denizen.utilities.blocks.FakeBlock)4 HashMap (java.util.HashMap)4