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();
}
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;
}
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;
}
Aggregations