Search in sources :

Example 16 with Side

use of org.terasology.math.Side in project Terasology by MovingBlocks.

the class BlockShapeImpl method doReload.

@Override
protected void doReload(BlockShapeData data) {
    collisionShape.clear();
    displayName = data.getDisplayName();
    for (BlockPart part : BlockPart.values()) {
        this.meshParts.put(part, data.getMeshPart(part));
    }
    for (Side side : Side.values()) {
        this.fullSide.put(side, data.isBlockingSide(side));
    }
    this.baseCollisionShape = data.getCollisionShape();
    this.baseCollisionOffset.set(data.getCollisionOffset());
    collisionShape.put(Rotation.none(), baseCollisionShape);
    yawSymmetric = data.isYawSymmetric();
    pitchSymmetric = data.isPitchSymmetric();
    rollSymmetric = data.isRollSymmetric();
}
Also used : BlockPart(org.terasology.world.block.BlockPart) Side(org.terasology.math.Side)

Example 17 with Side

use of org.terasology.math.Side in project Terasology by MovingBlocks.

the class LocalChunkProvider method listAdjacentChunks.

private List<Chunk> listAdjacentChunks(Chunk chunk) {
    final Vector3i centerChunkPosition = chunk.getPosition();
    List<Chunk> adjacentChunks = new ArrayList<>(6);
    for (Side side : Side.values()) {
        final Vector3i adjacentChunkPosition = side.getAdjacentPos(centerChunkPosition);
        final Chunk adjacentChunk = chunkCache.get(adjacentChunkPosition);
        if (adjacentChunk != null) {
            adjacentChunks.add(adjacentChunk);
        }
    }
    return adjacentChunks;
}
Also used : Side(org.terasology.math.Side) Vector3i(org.terasology.math.geom.Vector3i) TIntArrayList(gnu.trove.list.array.TIntArrayList) ArrayList(java.util.ArrayList) Chunk(org.terasology.world.chunks.Chunk) ManagedChunk(org.terasology.world.chunks.ManagedChunk)

Example 18 with Side

use of org.terasology.math.Side in project Terasology by MovingBlocks.

the class DoorSystem method openDoor.

@ReceiveEvent
public void openDoor(OpenDoorEvent event, EntityRef player) {
    EntityRef entity = event.getDoorEntity();
    DoorComponent door = entity.getComponent(DoorComponent.class);
    Side newSide = door.openSide;
    BlockRegionComponent regionComp = entity.getComponent(BlockRegionComponent.class);
    Block bottomBlock = door.bottomBlockFamily.getBlockForPlacement(worldProvider, blockEntityRegistry, regionComp.region.min(), newSide, Side.TOP);
    worldProvider.setBlock(regionComp.region.min(), bottomBlock);
    Block topBlock = door.topBlockFamily.getBlockForPlacement(worldProvider, blockEntityRegistry, regionComp.region.max(), newSide, Side.TOP);
    worldProvider.setBlock(regionComp.region.max(), topBlock);
    if (door.openSound != null) {
        entity.send(new PlaySoundEvent(door.openSound, 1f));
    }
    door.isOpen = true;
}
Also used : Side(org.terasology.math.Side) BlockRegionComponent(org.terasology.world.block.regions.BlockRegionComponent) PlaySoundEvent(org.terasology.audio.events.PlaySoundEvent) Block(org.terasology.world.block.Block) EntityRef(org.terasology.entitySystem.entity.EntityRef) ReceiveEvent(org.terasology.entitySystem.event.ReceiveEvent)

Aggregations

Side (org.terasology.math.Side)18 Block (org.terasology.world.block.Block)11 Vector3i (org.terasology.math.geom.Vector3i)9 PlaySoundEvent (org.terasology.audio.events.PlaySoundEvent)4 ReceiveEvent (org.terasology.entitySystem.event.ReceiveEvent)4 Rotation (org.terasology.math.Rotation)4 EntityRef (org.terasology.entitySystem.entity.EntityRef)3 BlockPart (org.terasology.world.block.BlockPart)3 BlockUri (org.terasology.world.block.BlockUri)3 BlockRegionComponent (org.terasology.world.block.regions.BlockRegionComponent)3 BlockComponent (org.terasology.world.block.BlockComponent)2 PlaceBlocks (org.terasology.world.block.entity.placement.PlaceBlocks)2 BlockFamily (org.terasology.world.block.family.BlockFamily)2 Chunk (org.terasology.world.chunks.Chunk)2 TIntArrayList (gnu.trove.list.array.TIntArrayList)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 LocationComponent (org.terasology.logic.location.LocationComponent)1 Vector3f (org.terasology.math.geom.Vector3f)1 Vector4f (org.terasology.math.geom.Vector4f)1