<commit_before>import _ from 'lodash';

import * as config from './config';
import * as full from './tensor/full';
import {SoundService} from './sound_service';

const pascalCase = (str) =>
  str.charAt(0).toUpperCase() + _.camelCase(str.slice(1));

export const Vacuum = {
  svgName: 'vacuum',
  desc: {
    name: 'Nothing (except for some air)',
    flavour: '',
    summary: 'Visible light is only 0.03% slower in the air than in the vacuum.',
  },
  maxRotation: 1,
  rotationAngle: 0,
  transition: () => full.identity,
};

export const Source = {
  svgName: 'source',
  desc: {
    name: 'Single Photon Source',
    flavour: 'a\u2020 - an excitation, raise from the vacuum!',
    summary: 'An on-demand single photon source.',
  },
  maxRotation: 4, // > ^ < v
  rotationAngle: 90,
  transition: () => full.zero,
  generation: (rotation) => full.source[rotation],
};

// maybe will be changed to a typical, one-side corner sube
export const CornerCube = {
  svgName: 'corner-cube',
  desc: {
    name: 'Corner Cube',
    flavour: 'Like a mirror but rotating, not - reflecting',
    summary: 'Three perpendicular reflective planes make the reflecting going the same way. Also, they save lives on the streets.',
  },
  maxRotation: 1,
  rotationAngle: 0,
  transition: () => full.cornerCube,
};

export const ThinMirror = {
  svgName: 'thin-mirror',
  desc: {
    name: 'Mirror',
    flavour: 'Making photons in two places at once and binding them again.',<commit_msg>desc(tile) source - click to emit<commit_after>import _ from 'lodash';

import * as config from './config';
import * as full from './tensor/full';
import {SoundService} from './sound_service';

const pascalCase = (str) =>
  str.charAt(0).toUpperCase() + _.camelCase(str.slice(1));

export const Vacuum = {
  svgName: 'vacuum',
  desc: {
    name: 'Nothing (except for some air)',
    flavour: '',
    summary: 'Visible light is only 0.03% slower in the air than in the vacuum.',
  },
  maxRotation: 1,
  rotationAngle: 0,
  transition: () => full.identity,
};

export const Source = {
  svgName: 'source',
  desc: {
    name: 'Single Photon Source',
    flavour: 'a\u2020 - an excitation, raise from the vacuum!',
    summary: 'An on-demand single photon source. (CLICK to EMIT!)',
  },
  maxRotation: 4, // > ^ < v
  rotationAngle: 90,
  transition: () => full.zero,
  generation: (rotation) => full.source[rotation],
};

// maybe will be changed to a typical, one-side corner sube
export const CornerCube = {
  svgName: 'corner-cube',
  desc: {
    name: 'Corner Cube',
    flavour: 'Like a mirror but rotating, not - reflecting',
    summary: 'Three perpendicular reflective planes make the reflecting going the same way. Also, they save lives on the streets.',
  },
  maxRotation: 1,
  rotationAngle: 0,
  transition: () => full.cornerCube,
};

export const ThinMirror = {
  svgName: 'thin-mirror',
  desc: {
    name: 'Mirror',
    flavour: 'Making photons in two places at once and binding them again.',
{'fraction_non_alphanumeric': 0.13820865481382086, 'fraction_numerical': 0.010734652801073465, 'mean_word_length': 3.518181818181818, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2579201', 'n_tokens_mistral': 1009, 'n_tokens_neox': 936, 'n_words': 328}