diff options
Diffstat (limited to 'src/client/scripts/hpml')
| -rw-r--r-- | src/client/scripts/hpml/index.ts | 22 | ||||
| -rw-r--r-- | src/client/scripts/hpml/lib.ts | 95 |
2 files changed, 44 insertions, 73 deletions
diff --git a/src/client/scripts/hpml/index.ts b/src/client/scripts/hpml/index.ts index 924cd32eb5..ac81eac2d9 100644 --- a/src/client/scripts/hpml/index.ts +++ b/src/client/scripts/hpml/index.ts @@ -3,14 +3,6 @@ */ import autobind from 'autobind-decorator'; -import { - faMagic, - faSquareRootAlt, - faAlignLeft, - faList, - faQuoteRight, - faSortNumericUp, -} from '@fortawesome/free-solid-svg-icons'; import { Hpml } from './evaluator'; import { funcDefs } from './lib'; @@ -22,13 +14,13 @@ export type Fn = { export type Type = 'string' | 'number' | 'boolean' | 'stringArray' | null; export const literalDefs: Record<string, { out: any; category: string; icon: any; }> = { - text: { out: 'string', category: 'value', icon: faQuoteRight, }, - multiLineText: { out: 'string', category: 'value', icon: faAlignLeft, }, - textList: { out: 'stringArray', category: 'value', icon: faList, }, - number: { out: 'number', category: 'value', icon: faSortNumericUp, }, - ref: { out: null, category: 'value', icon: faMagic, }, - aiScriptVar: { out: null, category: 'value', icon: faMagic, }, - fn: { out: 'function', category: 'value', icon: faSquareRootAlt, }, + text: { out: 'string', category: 'value', icon: 'fas fa-quote-right', }, + multiLineText: { out: 'string', category: 'value', icon: 'fas fa-align-left', }, + textList: { out: 'stringArray', category: 'value', icon: 'fas fa-list', }, + number: { out: 'number', category: 'value', icon: 'fas fa-sort-numeric-up', }, + ref: { out: null, category: 'value', icon: 'fas fa-magic', }, + aiScriptVar: { out: null, category: 'value', icon: 'fas fa-magic', }, + fn: { out: 'function', category: 'value', icon: 'fas fa-square-root-alt', }, }; export const blockDefs = [ diff --git a/src/client/scripts/hpml/lib.ts b/src/client/scripts/hpml/lib.ts index 7454562184..150a04732f 100644 --- a/src/client/scripts/hpml/lib.ts +++ b/src/client/scripts/hpml/lib.ts @@ -6,27 +6,6 @@ import { Fn, HpmlScope } from '.'; import { Expr } from './expr'; import * as seedrandom from 'seedrandom'; -import { - faShareAlt, - faPlus, - faMinus, - faTimes, - faDivide, - faQuoteRight, - faEquals, - faGreaterThan, - faLessThan, - faGreaterThanEqual, - faLessThanEqual, - faNotEqual, - faDice, - faExchangeAlt, - faRecycle, - faIndent, - faCalculator, -} from '@fortawesome/free-solid-svg-icons'; -import { faFlag } from '@fortawesome/free-regular-svg-icons'; - // https://stackoverflow.com/questions/38493564/chart-area-background-color-chartjs Chart.pluginService.register({ beforeDraw: (chart, easing) => { @@ -148,43 +127,43 @@ export function initAiLib(hpml: Hpml) { } export const funcDefs: Record<string, { in: any[]; out: any; category: string; icon: any; }> = { - if: { in: ['boolean', 0, 0], out: 0, category: 'flow', icon: faShareAlt, }, - for: { in: ['number', 'function'], out: null, category: 'flow', icon: faRecycle, }, - not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: faFlag, }, - or: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: faFlag, }, - and: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: faFlag, }, - add: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faPlus, }, - subtract: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faMinus, }, - multiply: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faTimes, }, - divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faDivide, }, - mod: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faDivide, }, - round: { in: ['number'], out: 'number', category: 'operation', icon: faCalculator, }, - eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: faEquals, }, - notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: faNotEqual, }, - gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faGreaterThan, }, - lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faLessThan, }, - gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faGreaterThanEqual, }, - ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faLessThanEqual, }, - strLen: { in: ['string'], out: 'number', category: 'text', icon: faQuoteRight, }, - strPick: { in: ['string', 'number'], out: 'string', category: 'text', icon: faQuoteRight, }, - strReplace: { in: ['string', 'string', 'string'], out: 'string', category: 'text', icon: faQuoteRight, }, - strReverse: { in: ['string'], out: 'string', category: 'text', icon: faQuoteRight, }, - join: { in: ['stringArray', 'string'], out: 'string', category: 'text', icon: faQuoteRight, }, - stringToNumber: { in: ['string'], out: 'number', category: 'convert', icon: faExchangeAlt, }, - numberToString: { in: ['number'], out: 'string', category: 'convert', icon: faExchangeAlt, }, - splitStrByLine: { in: ['string'], out: 'stringArray', category: 'convert', icon: faExchangeAlt, }, - pick: { in: [null, 'number'], out: null, category: 'list', icon: faIndent, }, - listLen: { in: [null], out: 'number', category: 'list', icon: faIndent, }, - rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, }, - dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, }, - seedRannum: { in: [null, 'number', 'number'], out: 'number', category: 'random', icon: faDice, }, - random: { in: ['number'], out: 'boolean', category: 'random', icon: faDice, }, - dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: faDice, }, - seedRandom: { in: [null, 'number'], out: 'boolean', category: 'random', icon: faDice, }, - randomPick: { in: [0], out: 0, category: 'random', icon: faDice, }, - dailyRandomPick: { in: [0], out: 0, category: 'random', icon: faDice, }, - seedRandomPick: { in: [null, 0], out: 0, category: 'random', icon: faDice, }, - DRPWPM: { in: ['stringArray'], out: 'string', category: 'random', icon: faDice, }, // dailyRandomPickWithProbabilityMapping + if: { in: ['boolean', 0, 0], out: 0, category: 'flow', icon: 'fas fa-share-alt', }, + for: { in: ['number', 'function'], out: null, category: 'flow', icon: 'fas fa-recycle', }, + not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag', }, + or: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag', }, + and: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag', }, + add: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-plus', }, + subtract: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-minus', }, + multiply: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-times', }, + divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide', }, + mod: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide', }, + round: { in: ['number'], out: 'number', category: 'operation', icon: 'fas fa-calculator', }, + eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-equals', }, + notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-not-equal', }, + gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than', }, + lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than', }, + gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than-equal', }, + ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than-equal', }, + strLen: { in: ['string'], out: 'number', category: 'text', icon: 'fas fa-quote-right', }, + strPick: { in: ['string', 'number'], out: 'string', category: 'text', icon: 'fas fa-quote-right', }, + strReplace: { in: ['string', 'string', 'string'], out: 'string', category: 'text', icon: 'fas fa-quote-right', }, + strReverse: { in: ['string'], out: 'string', category: 'text', icon: 'fas fa-quote-right', }, + join: { in: ['stringArray', 'string'], out: 'string', category: 'text', icon: 'fas fa-quote-right', }, + stringToNumber: { in: ['string'], out: 'number', category: 'convert', icon: 'fas fa-exchange-alt', }, + numberToString: { in: ['number'], out: 'string', category: 'convert', icon: 'fas fa-exchange-alt', }, + splitStrByLine: { in: ['string'], out: 'stringArray', category: 'convert', icon: 'fas fa-exchange-alt', }, + pick: { in: [null, 'number'], out: null, category: 'list', icon: 'fas fa-indent', }, + listLen: { in: [null], out: 'number', category: 'list', icon: 'fas fa-indent', }, + rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice', }, + dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice', }, + seedRannum: { in: [null, 'number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice', }, + random: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice', }, + dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice', }, + seedRandom: { in: [null, 'number'], out: 'boolean', category: 'random', icon: 'fas fa-dice', }, + randomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice', }, + dailyRandomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice', }, + seedRandomPick: { in: [null, 0], out: 0, category: 'random', icon: 'fas fa-dice', }, + DRPWPM: { in: ['stringArray'], out: 'string', category: 'random', icon: 'fas fa-dice', }, // dailyRandomPickWithProbabilityMapping }; export function initHpmlLib(expr: Expr, scope: HpmlScope, randomSeed: string, visitor?: any) { |