@Override public EntityRef getOrCreateBlockEntityAt(Vector3i blockPosition) { EntityRef blockEntity = getBlockEntityAt(blockPosition); if (!blockEntity.exists()) { Block block = getBlock(blockPosition.x, blockPosition.y, blockPosition.z); blockEntity = entityManager.create(block.getEntityPrefab()); if (block.isEntityTemporary()) { tempBlocks.add(blockEntity); } blockEntity.addComponent(new LocationComponent(blockPosition.toVector3f())); blockEntity.addComponent(new BlockComponent(blockPosition, block.isEntityTemporary())); // TODO: Get regen and wait from block config? if (block.isDestructible()) { blockEntity.addComponent(new HealthComponent(block.getHardness(), 2.0f, 1.0f)); } } return blockEntity; }