いくつかの文字列関数を追加
This commit is contained in:
parent
9158426d0a
commit
c6b64e57f1
2 changed files with 44 additions and 20 deletions
|
@ -1902,12 +1902,28 @@ pages:
|
||||||
random: "ランダム"
|
random: "ランダム"
|
||||||
value: "値"
|
value: "値"
|
||||||
fn: "関数"
|
fn: "関数"
|
||||||
|
text: "テキスト操作"
|
||||||
blocks:
|
blocks:
|
||||||
text: "テキスト"
|
text: "テキスト"
|
||||||
multiLineText: "テキスト(複数行)"
|
multiLineText: "テキスト(複数行)"
|
||||||
textList: "テキストのリスト"
|
textList: "テキストのリスト"
|
||||||
_textList:
|
_textList:
|
||||||
info: "ひとつひとつを改行で区切ってください"
|
info: "ひとつひとつを改行で区切ってください"
|
||||||
|
strLen: "テキストの長さ"
|
||||||
|
_strLen:
|
||||||
|
arg1: "テキスト"
|
||||||
|
strPick: "文字取り出し"
|
||||||
|
_strPick:
|
||||||
|
arg1: "テキスト"
|
||||||
|
arg2: "文字の位置"
|
||||||
|
strReplace: "テキスト置き換え"
|
||||||
|
_strReplace:
|
||||||
|
arg1: "テキスト"
|
||||||
|
arg2: "置き換え前"
|
||||||
|
arg3: "置き換え後"
|
||||||
|
strReverse: "テキストを反転"
|
||||||
|
_strReverse:
|
||||||
|
arg1: "テキスト"
|
||||||
add: "+ 足す"
|
add: "+ 足す"
|
||||||
_add:
|
_add:
|
||||||
arg1: "A"
|
arg1: "A"
|
||||||
|
|
|
@ -51,26 +51,30 @@ type TypeError = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const funcDefs = {
|
const funcDefs = {
|
||||||
if: { in: ['boolean', 0, 0], out: 0, category: 'flow', icon: faShareAlt, },
|
if: { in: ['boolean', 0, 0], out: 0, category: 'flow', icon: faShareAlt, },
|
||||||
not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: faFlag, },
|
not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: faFlag, },
|
||||||
or: { in: ['boolean', '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, },
|
and: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: faFlag, },
|
||||||
add: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faPlus, },
|
add: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faPlus, },
|
||||||
subtract: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faMinus, },
|
subtract: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faMinus, },
|
||||||
multiply: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faTimes, },
|
multiply: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faTimes, },
|
||||||
divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faDivide, },
|
divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faDivide, },
|
||||||
eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: faEquals, },
|
eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: faEquals, },
|
||||||
notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: faNotEqual, },
|
notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: faNotEqual, },
|
||||||
gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faGreaterThan, },
|
gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faGreaterThan, },
|
||||||
lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faLessThan, },
|
lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faLessThan, },
|
||||||
gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faGreaterThanEqual, },
|
gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faGreaterThanEqual, },
|
||||||
ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faLessThanEqual, },
|
ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faLessThanEqual, },
|
||||||
rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, },
|
strLen: { in: ['string'], out: 'number', category: 'text', icon: faQuoteRight, },
|
||||||
random: { in: ['number'], out: 'boolean', category: 'random', icon: faDice, },
|
strPick: { in: ['string', 'number'], out: 'string', category: 'text', icon: faQuoteRight, },
|
||||||
randomPick: { in: [0], out: 0, category: 'random', icon: faDice, },
|
strReplace: { in: ['string', 'string', 'string'], out: 'string', category: 'text', icon: faQuoteRight, },
|
||||||
dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, },
|
strReverse: { in: ['string'], out: 'string', category: 'text', icon: faQuoteRight, },
|
||||||
dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: faDice, },
|
rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, },
|
||||||
dailyRandomPick: { in: [0], out: 0, category: 'random', icon: faDice, },
|
random: { in: ['number'], out: 'boolean', category: 'random', icon: faDice, },
|
||||||
|
randomPick: { in: [0], out: 0, category: 'random', icon: faDice, },
|
||||||
|
dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, },
|
||||||
|
dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: faDice, },
|
||||||
|
dailyRandomPick: { in: [0], out: 0, category: 'random', icon: faDice, },
|
||||||
};
|
};
|
||||||
|
|
||||||
const blockDefs = [
|
const blockDefs = [
|
||||||
|
@ -413,6 +417,10 @@ export class AiScript {
|
||||||
subtract: (a, b) => a - b,
|
subtract: (a, b) => a - b,
|
||||||
multiply: (a, b) => a * b,
|
multiply: (a, b) => a * b,
|
||||||
divide: (a, b) => a / b,
|
divide: (a, b) => a / b,
|
||||||
|
strLen: (a) => a.length,
|
||||||
|
strPick: (a, b) => a[b - 1],
|
||||||
|
strReplace: (a, b, c) => a.split(b).join(c),
|
||||||
|
strReverse: (a) => a.split('').reverse().join(''),
|
||||||
random: (probability) => Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * 100) < probability,
|
random: (probability) => Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * 100) < probability,
|
||||||
rannum: (min, max) => min + Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * (max - min + 1)),
|
rannum: (min, max) => min + Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * (max - min + 1)),
|
||||||
randomPick: (list) => list[Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * list.length)],
|
randomPick: (list) => list[Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * list.length)],
|
||||||
|
|
Loading…
Reference in a new issue