@turnipxenon/pineapple 1.1.2 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +20 -13
- package/src/lib/app.postcss +106 -47
- package/src/lib/assets/icons/bitbucket-icon.svg +1 -0
- package/src/lib/assets/icons/github-mark.svg +1 -0
- package/src/lib/assets/icons/link-icon.svg +1 -0
- package/src/lib/assets/icons/linkedin.svg +1 -0
- package/src/lib/assets/icons/mail.svg +1 -0
- package/src/lib/assets/others/seaweed-showcase.mp4 +0 -0
- package/src/lib/assets/others/weaver-footage.gif +0 -0
- package/src/lib/assets/others/window-set.png +0 -0
- package/src/lib/assets/placeholder/placeholder_circle.png +0 -0
- package/src/lib/components/Card.svelte +24 -0
- package/src/lib/components/CarouselElement.svelte +23 -0
- package/src/lib/components/Chip.svelte +12 -0
- package/src/lib/components/ElementVisbilityDetector.svelte +22 -0
- package/src/lib/components/OnElementVisbilityChanged.ts +1 -0
- package/src/lib/components/RandomizedBackground.svelte +6 -4
- package/src/lib/components/RandomizedImage.svelte +23 -14
- package/src/lib/components/StickyElement.svelte +40 -0
- package/src/lib/components/ToggleableContent.svelte +86 -0
- package/src/lib/components/ToggleableContentType.ts +4 -0
- package/src/lib/components/layouts/LayoutConstants.ts +1 -0
- package/src/lib/components/{PineappleBaseLayout.svelte → layouts/PineappleBaseLayout.svelte} +73 -71
- package/src/lib/components/layouts/SeaweedBaseLayout.svelte +109 -0
- package/src/lib/consts.ts +2 -0
- package/src/lib/index.ts +2 -1
- package/src/lib/styles/global.css +1 -0
- package/src/lib/template/SeaweedTemplate.svelte +873 -0
- package/src/lib/theme.postcss +114 -105
- package/src/lib/util/create_go_to_function.ts +5 -0
- package/src/routes/+layout.svelte +15 -19
- package/src/routes/+page.svelte +9 -12
- package/src/routes/personal/+layout.svelte +23 -0
- package/src/routes/personal/+page.svelte +37 -0
- package/src/routes/portfolio/+page.server.ts +44 -0
- package/src/routes/portfolio/+page.svelte +19 -0
- package/src/routes/portfolio/SocialSection.svelte +93 -0
- package/src/routes/portfolio/actual/+page.svelte +10 -0
- package/dist/app.postcss +0 -94
- package/dist/assets/bg_tiled/bg_tiled_ares.png +0 -0
- package/dist/assets/bg_tiled/bg_tiled_corn.png +0 -0
- package/dist/assets/bg_tiled/bg_tiled_pineapple.png +0 -0
- package/dist/assets/bg_tiled/bg_tiled_reinhard.png +0 -0
- package/dist/assets/bg_tiled/bg_tiled_tomato.png +0 -0
- package/dist/assets/bg_tiled/bg_tiled_turnip.png +0 -0
- package/dist/assets/characters/ares/ares_blushing.webp +0 -0
- package/dist/assets/characters/ares/ares_disappointed.webp +0 -0
- package/dist/assets/characters/ares/ares_happy.webp +0 -0
- package/dist/assets/characters/ares/ares_lets_go.webp +0 -0
- package/dist/assets/characters/ares/ares_logo.webp +0 -0
- package/dist/assets/characters/ares/ares_mad.webp +0 -0
- package/dist/assets/characters/ares/ares_neutral.webp +0 -0
- package/dist/assets/characters/ares/ares_slightly_mad.webp +0 -0
- package/dist/assets/characters/ares/ares_surprised.webp +0 -0
- package/dist/assets/characters/ares/ares_yay.webp +0 -0
- package/dist/assets/game_dev/footage-chef-wings.gif +0 -0
- package/dist/assets/game_dev/footage-depreciation.webm +0 -0
- package/dist/assets/game_dev/footage-thinking-of-flowers.webm +0 -0
- package/dist/assets/game_dev/screenshot-game-jam-mama.png +0 -0
- package/dist/assets/game_dev/screenshot-string-hop.png +0 -0
- package/dist/assets/game_dev/screenshot-wet-ass-road.png +0 -0
- package/dist/assets/temp/background-image.jpg +0 -0
- package/dist/assets/temp/bitbucket-logo.png +0 -0
- package/dist/assets/temp/github-logo.png +0 -0
- package/dist/assets/temp/header-hep-cat.mp4 +0 -0
- package/dist/assets/temp/header-hep-cat.ogg +0 -0
- package/dist/assets/temp/header-hep-cat.webm +0 -0
- package/dist/assets/temp/header-pengi.mp4 +0 -0
- package/dist/assets/temp/header-pengi.webm +0 -0
- package/dist/assets/temp/header-soulwork.mp4 +0 -0
- package/dist/assets/temp/header-soulwork.ogg +0 -0
- package/dist/assets/temp/header-soulwork.webm +0 -0
- package/dist/components/DialogOverlay.svelte +0 -93
- package/dist/components/DialogOverlay.svelte.d.ts +0 -14
- package/dist/components/LazyAsset.svelte +0 -96
- package/dist/components/LazyAsset.svelte.d.ts +0 -20
- package/dist/components/LazyAssetType.d.ts +0 -10
- package/dist/components/LazyAssetType.js +0 -12
- package/dist/components/PineappleBaseLayout.svelte +0 -186
- package/dist/components/PineappleBaseLayout.svelte.d.ts +0 -19
- package/dist/components/RandomizedBackground.svelte +0 -62
- package/dist/components/RandomizedBackground.svelte.d.ts +0 -16
- package/dist/components/RandomizedImage.svelte +0 -29
- package/dist/components/RandomizedImage.svelte.d.ts +0 -17
- package/dist/components/dialog_manager/DialogManager.d.ts +0 -77
- package/dist/components/dialog_manager/DialogManager.js +0 -239
- package/dist/components/dialog_manager/DialogManagerStore.d.ts +0 -41
- package/dist/components/dialog_manager/DialogManagerStore.js +0 -45
- package/dist/components/dialog_manager/DialogProcessor.d.ts +0 -13
- package/dist/components/dialog_manager/DialogProcessor.js +0 -62
- package/dist/components/dialog_manager/DialogUtils.d.ts +0 -5
- package/dist/components/dialog_manager/DialogUtils.js +0 -8
- package/dist/components/dialog_manager/behavior_tree/core/BTreeUtils.d.ts +0 -15
- package/dist/components/dialog_manager/behavior_tree/core/BTreeUtils.js +0 -34
- package/dist/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.d.ts +0 -4
- package/dist/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.js +0 -1
- package/dist/components/dialog_manager/behavior_tree/core/BehaviorNode.d.ts +0 -3
- package/dist/components/dialog_manager/behavior_tree/core/BehaviorNode.js +0 -1
- package/dist/components/dialog_manager/behavior_tree/core/BehaviorStatus.d.ts +0 -5
- package/dist/components/dialog_manager/behavior_tree/core/BehaviorStatus.js +0 -6
- package/dist/components/dialog_manager/behavior_tree/core/SelectorNode.d.ts +0 -12
- package/dist/components/dialog_manager/behavior_tree/core/SelectorNode.js +0 -22
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionArguments.d.ts +0 -5
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionArguments.js +0 -1
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.d.ts +0 -4
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.js +0 -1
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.d.ts +0 -15
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.js +0 -220
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionResult.d.ts +0 -5
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionResult.js +0 -1
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.d.ts +0 -8
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.js +0 -15
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionState.d.ts +0 -3
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionState.js +0 -1
- package/dist/components/dialog_manager/behavior_tree/expression/OperandNode.d.ts +0 -10
- package/dist/components/dialog_manager/behavior_tree/expression/OperandNode.js +0 -15
- package/dist/components/dialog_manager/behavior_tree/expression/OperatorNode.d.ts +0 -11
- package/dist/components/dialog_manager/behavior_tree/expression/OperatorNode.js +0 -30
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.d.ts +0 -6
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.js +0 -21
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.d.ts +0 -9
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.js +0 -19
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandMap.d.ts +0 -9
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandMap.js +0 -18
- package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.d.ts +0 -15
- package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.js +0 -24
- package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.d.ts +0 -20
- package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.js +0 -32
- package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.d.ts +0 -13
- package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.js +0 -25
- package/dist/components/dialog_manager/behavior_tree/expression/operators/AndOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/AndOperator.js +0 -15
- package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.js +0 -14
- package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.js +0 -12
- package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.js +0 -12
- package/dist/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.js +0 -12
- package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.js +0 -12
- package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.js +0 -12
- package/dist/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.js +0 -13
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.d.ts +0 -17
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.js +0 -32
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.d.ts +0 -9
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.js +0 -47
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OrOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OrOperator.js +0 -13
- package/dist/components/dialog_manager/behavior_tree/expression/operators/XorOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/XorOperator.js +0 -17
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.js +0 -14
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.js +0 -14
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.js +0 -12
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.js +0 -14
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.d.ts +0 -7
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.js +0 -14
- package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.d.ts +0 -4
- package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.js +0 -1
- package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.d.ts +0 -6
- package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.js +0 -1
- package/dist/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.d.ts +0 -6
- package/dist/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.js +0 -1
- package/dist/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.d.ts +0 -8
- package/dist/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.js +0 -15
- package/dist/components/dialog_manager/behavior_tree/line_processors/BehaviorState.d.ts +0 -5
- package/dist/components/dialog_manager/behavior_tree/line_processors/BehaviorState.js +0 -5
- package/dist/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.d.ts +0 -11
- package/dist/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.js +0 -53
- package/dist/components/dialog_manager/behavior_tree/line_processors/ElseNode.d.ts +0 -11
- package/dist/components/dialog_manager/behavior_tree/line_processors/ElseNode.js +0 -49
- package/dist/components/dialog_manager/behavior_tree/line_processors/EndIfNode.d.ts +0 -11
- package/dist/components/dialog_manager/behavior_tree/line_processors/EndIfNode.js +0 -23
- package/dist/components/dialog_manager/behavior_tree/line_processors/IfMode.d.ts +0 -6
- package/dist/components/dialog_manager/behavior_tree/line_processors/IfMode.js +0 -8
- package/dist/components/dialog_manager/behavior_tree/line_processors/IfNode.d.ts +0 -12
- package/dist/components/dialog_manager/behavior_tree/line_processors/IfNode.js +0 -43
- package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.d.ts +0 -11
- package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.js +0 -25
- package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.d.ts +0 -6
- package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.js +0 -18
- package/dist/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.d.ts +0 -6
- package/dist/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.js +0 -17
- package/dist/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.d.ts +0 -10
- package/dist/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.js +0 -38
- package/dist/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.d.ts +0 -11
- package/dist/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.js +0 -31
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.d.ts +0 -8
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.js +0 -39
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.d.ts +0 -8
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.js +0 -40
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.d.ts +0 -9
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.js +0 -28
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -8
- package/dist/scripts/SetDefaultEnvironment.d.ts +0 -1
- package/dist/scripts/SetDefaultEnvironment.js +0 -41
- package/dist/scripts/pineapple_fiber/PineappleWeaver.d.ts +0 -9
- package/dist/scripts/pineapple_fiber/PineappleWeaver.js +0 -201
- package/dist/scripts/util/FileManagement.d.ts +0 -7
- package/dist/scripts/util/FileManagement.js +0 -35
- package/dist/scripts/util/ManualCheck.d.ts +0 -1
- package/dist/scripts/util/ManualCheck.js +0 -28
- package/dist/scripts/util/ManualCheckRun.d.ts +0 -1
- package/dist/scripts/util/ManualCheckRun.js +0 -6
- package/dist/store.d.ts +0 -17
- package/dist/store.js +0 -17
- package/dist/styles/DefaultGridContainer.css +0 -61
- package/dist/theme.postcss +0 -107
- package/dist/types/BlogBlurbMeta.d.ts +0 -11
- package/dist/types/BlogBlurbMeta.js +0 -16
- package/dist/types/BreadcrumbData.d.ts +0 -4
- package/dist/types/BreadcrumbData.js +0 -1
- package/dist/types/pineapple_fiber/DialogDetail.d.ts +0 -6
- package/dist/types/pineapple_fiber/DialogDetail.js +0 -1
- package/dist/types/pineapple_fiber/DialogState.d.ts +0 -5
- package/dist/types/pineapple_fiber/DialogState.js +0 -6
- package/dist/types/pineapple_fiber/DialogVariableStore.d.ts +0 -2
- package/dist/types/pineapple_fiber/DialogVariableStore.js +0 -20
- package/dist/types/pineapple_fiber/PortraitType.d.ts +0 -11
- package/dist/types/pineapple_fiber/PortraitType.js +0 -12
- package/dist/util/stable_random.d.ts +0 -2
- package/dist/util/stable_random.js +0 -15
- package/src/lib/assets/icons/chat_cursor.svg +0 -47
- package/src/lib/assets/icons/external_link.svg +0 -50
- package/static/default-card.png +0 -0
- package/static/favicon.png +0 -0
- /package/{dist/assets/icons/chat_cursor.svg → src/lib/assets/icons/chat-cursor.svg} +0 -0
- /package/{dist/assets/icons/external_link.svg → src/lib/assets/icons/external-link.svg} +0 -0
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { browser } from "$app/environment";
|
|
2
|
-
import { OperatorNode } from "./OperatorNode";
|
|
3
|
-
import { OperandNode } from "./OperandNode";
|
|
4
|
-
import { ExpressionSelectorNode } from "./ExpressionSelectorNode";
|
|
5
|
-
import { btreeUtils } from "../core/BTreeUtils";
|
|
6
|
-
import { CommandExpressionNode } from "./commands/CommandExpressionNode";
|
|
7
|
-
class ExpressionEvaluator {
|
|
8
|
-
evaluatorTree = new ExpressionSelectorNode([
|
|
9
|
-
new OperatorNode(),
|
|
10
|
-
new CommandExpressionNode(),
|
|
11
|
-
new OperandNode()
|
|
12
|
-
]);
|
|
13
|
-
// from https://stackoverflow.com/a/175787/17836168
|
|
14
|
-
isNumeric = (str) => {
|
|
15
|
-
return (
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
|
|
19
|
-
!isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail
|
|
20
|
-
};
|
|
21
|
-
getPrecedence = (token) => {
|
|
22
|
-
switch (token) {
|
|
23
|
-
case "&&":
|
|
24
|
-
case "||":
|
|
25
|
-
case "^":
|
|
26
|
-
return 1;
|
|
27
|
-
case "==":
|
|
28
|
-
case "!=":
|
|
29
|
-
return 2;
|
|
30
|
-
case "<":
|
|
31
|
-
case ">":
|
|
32
|
-
case ">=":
|
|
33
|
-
case "<=":
|
|
34
|
-
return 3;
|
|
35
|
-
case "+":
|
|
36
|
-
case "-":
|
|
37
|
-
return 4;
|
|
38
|
-
case "*":
|
|
39
|
-
case "/":
|
|
40
|
-
case "%":
|
|
41
|
-
return 3;
|
|
42
|
-
case "!":
|
|
43
|
-
return 4;
|
|
44
|
-
case "(":
|
|
45
|
-
case ")":
|
|
46
|
-
return 0; // hack lol
|
|
47
|
-
default:
|
|
48
|
-
// usable to test if operator lol
|
|
49
|
-
// console.error(`Unknown token: ${token}`);
|
|
50
|
-
return -1;
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
evaluateFreeform = (line, prefix) => {
|
|
54
|
-
if (!browser) {
|
|
55
|
-
return []; // do not process when not in browser
|
|
56
|
-
}
|
|
57
|
-
// tokenize first!
|
|
58
|
-
const infixTokens = [];
|
|
59
|
-
const expression = line
|
|
60
|
-
.split("//")[0]
|
|
61
|
-
.trim()
|
|
62
|
-
.slice(prefix === "" ? 0 : prefix.trim().length + 1, line.length - 2);
|
|
63
|
-
// region tokenizer
|
|
64
|
-
// console.log("Tokenizing:", expression);
|
|
65
|
-
const operators = "+-*/%!<>=&|^";
|
|
66
|
-
let currentToken = "";
|
|
67
|
-
let escapeToggle = false;
|
|
68
|
-
let quoteToggle = false;
|
|
69
|
-
let operatorFound = false;
|
|
70
|
-
for (const character of expression) {
|
|
71
|
-
if (escapeToggle) {
|
|
72
|
-
currentToken += character;
|
|
73
|
-
escapeToggle = false;
|
|
74
|
-
}
|
|
75
|
-
else if (quoteToggle) {
|
|
76
|
-
currentToken += character;
|
|
77
|
-
if (character === '"') {
|
|
78
|
-
infixTokens.push(currentToken);
|
|
79
|
-
currentToken = "";
|
|
80
|
-
quoteToggle = false;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
else if (operatorFound) {
|
|
84
|
-
if (operators.includes(character)) {
|
|
85
|
-
currentToken += character;
|
|
86
|
-
}
|
|
87
|
-
else if ("()".includes(character)) {
|
|
88
|
-
if (currentToken !== "") {
|
|
89
|
-
infixTokens.push(currentToken);
|
|
90
|
-
}
|
|
91
|
-
infixTokens.push(character);
|
|
92
|
-
currentToken = "";
|
|
93
|
-
operatorFound = false;
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
operatorFound = false;
|
|
97
|
-
infixTokens.push(currentToken);
|
|
98
|
-
if (character !== " ") {
|
|
99
|
-
currentToken = character;
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
currentToken = "";
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
else if (character === "," || character === " ") {
|
|
107
|
-
if (currentToken !== "") {
|
|
108
|
-
infixTokens.push(currentToken);
|
|
109
|
-
currentToken = "";
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
else if (character === '"') {
|
|
113
|
-
// do quote stuff unless we had an escape toggle
|
|
114
|
-
currentToken += character;
|
|
115
|
-
quoteToggle = true;
|
|
116
|
-
}
|
|
117
|
-
else if (operators.includes(character)) {
|
|
118
|
-
if (currentToken !== "") {
|
|
119
|
-
infixTokens.push(currentToken);
|
|
120
|
-
}
|
|
121
|
-
currentToken = character;
|
|
122
|
-
operatorFound = true;
|
|
123
|
-
}
|
|
124
|
-
else if ("()".includes(character)) {
|
|
125
|
-
if (currentToken !== "") {
|
|
126
|
-
// determine if function
|
|
127
|
-
if (currentToken[0] !== "$" && // should not be a variable stand-in
|
|
128
|
-
currentToken[0] !== '"' && // should not be a string literal
|
|
129
|
-
!this.isNumeric(currentToken[0]) // should not be a number literal
|
|
130
|
-
) {
|
|
131
|
-
currentToken = `#${currentToken}`;
|
|
132
|
-
}
|
|
133
|
-
infixTokens.push(currentToken);
|
|
134
|
-
}
|
|
135
|
-
infixTokens.push(character);
|
|
136
|
-
currentToken = "";
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
currentToken += character;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
if (currentToken !== "") {
|
|
143
|
-
infixTokens.push(currentToken);
|
|
144
|
-
}
|
|
145
|
-
// console.log(infixTokens);
|
|
146
|
-
// endregion tokenizer
|
|
147
|
-
// region infix to postfix
|
|
148
|
-
// convert from infix to postfix
|
|
149
|
-
// algo from https://www.geeksforgeeks.org/convert-infix-expression-to-postfix-expression/
|
|
150
|
-
// console.log(infixTokens);
|
|
151
|
-
const postfixTokens = [];
|
|
152
|
-
const stack = [];
|
|
153
|
-
infixTokens.forEach((token) => {
|
|
154
|
-
if (token.startsWith("#")) {
|
|
155
|
-
stack.push(token);
|
|
156
|
-
}
|
|
157
|
-
else if (token === "(") {
|
|
158
|
-
stack.push("(");
|
|
159
|
-
}
|
|
160
|
-
else if (token === ")") {
|
|
161
|
-
while (btreeUtils.peek(stack) !== "(") {
|
|
162
|
-
// just for safety
|
|
163
|
-
if (stack.length === 0) {
|
|
164
|
-
console.error("Assumption was made in postfix conversion that stack will not be empty! It was wrong!");
|
|
165
|
-
throw new Error("Wrong postfix conversion!");
|
|
166
|
-
}
|
|
167
|
-
postfixTokens.push(stack.pop());
|
|
168
|
-
}
|
|
169
|
-
stack.pop(); // remove "("
|
|
170
|
-
if (stack.length > 0 && btreeUtils.peek(stack).startsWith("#")) {
|
|
171
|
-
postfixTokens.push(stack.pop());
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
else if (![-1, 5].includes(this.getPrecedence(token))) {
|
|
175
|
-
while (stack.length > 0 &&
|
|
176
|
-
this.getPrecedence(btreeUtils.peek(stack)) >= this.getPrecedence(token)) {
|
|
177
|
-
postfixTokens.push(stack.pop());
|
|
178
|
-
}
|
|
179
|
-
stack.push(token);
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
// operand
|
|
183
|
-
postfixTokens.push(token);
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
// pop all remaining elements from the stack
|
|
187
|
-
while (stack.length > 0) {
|
|
188
|
-
postfixTokens.push(stack.pop());
|
|
189
|
-
}
|
|
190
|
-
// console.log("Finished postfix", postfixTokens);
|
|
191
|
-
// endregion infix to postfix
|
|
192
|
-
// evaluate
|
|
193
|
-
let currentState = {
|
|
194
|
-
operandStack: []
|
|
195
|
-
};
|
|
196
|
-
postfixTokens.forEach((token) => {
|
|
197
|
-
// console.log("Current token", token);
|
|
198
|
-
const result = this.evaluatorTree.process({
|
|
199
|
-
initState: currentState,
|
|
200
|
-
token: token
|
|
201
|
-
});
|
|
202
|
-
// console.log("Token evaluated with result", result.nextState.operandStack.toString());
|
|
203
|
-
currentState = result.nextState;
|
|
204
|
-
});
|
|
205
|
-
// console.log("Result", currentState.operandStack);
|
|
206
|
-
return currentState.operandStack;
|
|
207
|
-
};
|
|
208
|
-
/**
|
|
209
|
-
* evaluates a yarn if or elseif statement
|
|
210
|
-
* @param line is the current line being evaluated
|
|
211
|
-
* @param prefix is either "<<if" or "<<elseif"
|
|
212
|
-
*/
|
|
213
|
-
evaluate = (line, prefix) => {
|
|
214
|
-
if (!browser) {
|
|
215
|
-
return false; // do not process when not in browser
|
|
216
|
-
}
|
|
217
|
-
return String(btreeUtils.peek(this.evaluateFreeform(line, prefix))) === "true";
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
export const expressionEvaluator = new ExpressionEvaluator();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { SelectorNode } from "../core/SelectorNode";
|
|
2
|
-
import type { ExpressionArguments } from "./ExpressionArguments";
|
|
3
|
-
import type { ExpressionResult } from "./ExpressionResult";
|
|
4
|
-
import type { ExpressionBehaviorNode } from "./ExpressionBehaviorNode";
|
|
5
|
-
export declare class ExpressionSelectorNode extends SelectorNode<ExpressionArguments, ExpressionResult> {
|
|
6
|
-
constructor(nodeList: ExpressionBehaviorNode[]);
|
|
7
|
-
defaultResult: () => ExpressionResult;
|
|
8
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { SelectorNode } from "../core/SelectorNode";
|
|
2
|
-
import { BehaviorStatus } from "../core/BehaviorStatus";
|
|
3
|
-
export class ExpressionSelectorNode extends SelectorNode {
|
|
4
|
-
constructor(nodeList) {
|
|
5
|
-
super(nodeList);
|
|
6
|
-
}
|
|
7
|
-
defaultResult = () => {
|
|
8
|
-
return {
|
|
9
|
-
nextState: {
|
|
10
|
-
operandStack: []
|
|
11
|
-
},
|
|
12
|
-
status: BehaviorStatus.Failure
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ExpressionBehaviorNode } from "./ExpressionBehaviorNode";
|
|
2
|
-
import type { ExpressionArguments } from "./ExpressionArguments";
|
|
3
|
-
import type { ExpressionResult } from "./ExpressionResult";
|
|
4
|
-
/**
|
|
5
|
-
* Puts the token as an operand
|
|
6
|
-
* It's always successful
|
|
7
|
-
*/
|
|
8
|
-
export declare class OperandNode implements ExpressionBehaviorNode {
|
|
9
|
-
process(nodeArgs: ExpressionArguments): ExpressionResult;
|
|
10
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { BehaviorStatus } from "../core/BehaviorStatus";
|
|
2
|
-
import { btreeUtils } from "../core/BTreeUtils";
|
|
3
|
-
/**
|
|
4
|
-
* Puts the token as an operand
|
|
5
|
-
* It's always successful
|
|
6
|
-
*/
|
|
7
|
-
export class OperandNode {
|
|
8
|
-
process(nodeArgs) {
|
|
9
|
-
nodeArgs.initState.operandStack.push(btreeUtils.simplifyToken(nodeArgs.token));
|
|
10
|
-
return {
|
|
11
|
-
nextState: nodeArgs.initState,
|
|
12
|
-
status: BehaviorStatus.Success
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ExpressionBehaviorNode } from "./ExpressionBehaviorNode";
|
|
2
|
-
import type { ExpressionArguments } from "./ExpressionArguments";
|
|
3
|
-
import type { ExpressionResult } from "./ExpressionResult";
|
|
4
|
-
/**
|
|
5
|
-
* A leaf node that returns:
|
|
6
|
-
* - Success if the current token is an operator, and does its associated logic
|
|
7
|
-
* - Failure if it is not an operator
|
|
8
|
-
*/
|
|
9
|
-
export declare class OperatorNode implements ExpressionBehaviorNode {
|
|
10
|
-
process(nodeArgs: ExpressionArguments): ExpressionResult;
|
|
11
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { BehaviorStatus } from "../core/BehaviorStatus";
|
|
2
|
-
import { operatorMap } from "./operators/OperatorMap";
|
|
3
|
-
/**
|
|
4
|
-
* A leaf node that returns:
|
|
5
|
-
* - Success if the current token is an operator, and does its associated logic
|
|
6
|
-
* - Failure if it is not an operator
|
|
7
|
-
*/
|
|
8
|
-
export class OperatorNode {
|
|
9
|
-
process(nodeArgs) {
|
|
10
|
-
if (!operatorMap.exists(nodeArgs.token)) {
|
|
11
|
-
return {
|
|
12
|
-
nextState: nodeArgs.initState,
|
|
13
|
-
status: BehaviorStatus.Failure
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
const logic = operatorMap.get(nodeArgs.token);
|
|
17
|
-
if (logic === undefined) {
|
|
18
|
-
console.error(`Unimplemented operator: ${nodeArgs.token}`);
|
|
19
|
-
return {
|
|
20
|
-
nextState: nodeArgs.initState,
|
|
21
|
-
status: BehaviorStatus.Failure
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
logic.process(nodeArgs);
|
|
25
|
-
return {
|
|
26
|
-
nextState: nodeArgs.initState,
|
|
27
|
-
status: BehaviorStatus.Success
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { ExpressionBehaviorNode } from "../ExpressionBehaviorNode";
|
|
2
|
-
import type { ExpressionArguments } from "../ExpressionArguments";
|
|
3
|
-
import type { ExpressionResult } from "../ExpressionResult";
|
|
4
|
-
export declare class CommandExpressionNode implements ExpressionBehaviorNode {
|
|
5
|
-
process(nodeArgs: ExpressionArguments): ExpressionResult;
|
|
6
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { commandMap } from "./CommandMap";
|
|
2
|
-
import { BehaviorStatus } from "../../core/BehaviorStatus";
|
|
3
|
-
export class CommandExpressionNode {
|
|
4
|
-
process(nodeArgs) {
|
|
5
|
-
const commandNode = commandMap.get(nodeArgs.token);
|
|
6
|
-
if (commandNode === undefined) {
|
|
7
|
-
if (nodeArgs.token.startsWith("#")) {
|
|
8
|
-
console.error(`Unimplemented command: ${nodeArgs.token}`);
|
|
9
|
-
}
|
|
10
|
-
return {
|
|
11
|
-
nextState: nodeArgs.initState,
|
|
12
|
-
status: BehaviorStatus.Failure
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
commandNode.process(nodeArgs);
|
|
16
|
-
return {
|
|
17
|
-
nextState: nodeArgs.initState,
|
|
18
|
-
status: BehaviorStatus.Success
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ExpressionBehaviorNode } from "../ExpressionBehaviorNode";
|
|
2
|
-
import type { ExpressionArguments } from "../ExpressionArguments";
|
|
3
|
-
import type { ExpressionResult } from "../ExpressionResult";
|
|
4
|
-
export declare abstract class CommandLogicNode implements ExpressionBehaviorNode {
|
|
5
|
-
abstract getToken: () => string;
|
|
6
|
-
abstract getArgumentCount: () => number;
|
|
7
|
-
abstract doOperation: (currentOperands: string[], nodeArgs: ExpressionArguments) => void;
|
|
8
|
-
process(nodeArgs: ExpressionArguments): ExpressionResult;
|
|
9
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { BehaviorStatus } from "../../core/BehaviorStatus";
|
|
2
|
-
export class CommandLogicNode {
|
|
3
|
-
process(nodeArgs) {
|
|
4
|
-
const currentOperands = nodeArgs.initState.operandStack.slice(nodeArgs.initState.operandStack.length - this.getArgumentCount(), nodeArgs.initState.operandStack.length);
|
|
5
|
-
nodeArgs.initState.operandStack = nodeArgs.initState.operandStack.slice(0, nodeArgs.initState.operandStack.length - this.getArgumentCount());
|
|
6
|
-
if (currentOperands.length !== this.getArgumentCount()) {
|
|
7
|
-
console.error(`Insufficient operands/arguments found for command ${this.getToken()}`);
|
|
8
|
-
console.error(`Arguments found instead: ${currentOperands}`);
|
|
9
|
-
console.error(`Error occurred at token: ${nodeArgs.token}`);
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
this.doOperation(currentOperands, nodeArgs);
|
|
13
|
-
}
|
|
14
|
-
return {
|
|
15
|
-
nextState: nodeArgs.initState,
|
|
16
|
-
status: BehaviorStatus.Success
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { CommandLogicNode } from "./CommandLogicNode";
|
|
2
|
-
declare class CommandMap {
|
|
3
|
-
_commandMap: Map<string, CommandLogicNode>;
|
|
4
|
-
constructor();
|
|
5
|
-
get: (command: string) => CommandLogicNode | undefined;
|
|
6
|
-
exists: (command: string) => boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare const commandMap: CommandMap;
|
|
9
|
-
export {};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { RandomRangeCommand } from "./RandomRangeCommand";
|
|
2
|
-
import { VisitedCountCommand } from "./VisitedCountCommand";
|
|
3
|
-
import { VisitedCommand } from "./VisitedCommand";
|
|
4
|
-
class CommandMap {
|
|
5
|
-
_commandMap = new Map();
|
|
6
|
-
constructor() {
|
|
7
|
-
[new RandomRangeCommand(), new VisitedCountCommand(), new VisitedCommand()].forEach((commandLogic) => {
|
|
8
|
-
this._commandMap.set(commandLogic.getToken(), commandLogic);
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
get = (command) => {
|
|
12
|
-
return this._commandMap.get(command);
|
|
13
|
-
};
|
|
14
|
-
exists = (command) => {
|
|
15
|
-
return this.get(command) !== undefined;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
export const commandMap = new CommandMap();
|
package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CommandLogicNode } from "./CommandLogicNode";
|
|
2
|
-
import type { ExpressionArguments } from "../ExpressionArguments";
|
|
3
|
-
/**
|
|
4
|
-
* Used for command like
|
|
5
|
-
* random_range(1, 2);
|
|
6
|
-
*/
|
|
7
|
-
export declare class RandomRangeCommand extends CommandLogicNode {
|
|
8
|
-
/**
|
|
9
|
-
* From: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#getting_a_random_integer_between_two_values
|
|
10
|
-
*/
|
|
11
|
-
getRandomInt: (min: number, max: number) => number;
|
|
12
|
-
doOperation: (currentOperands: string[], nodeArgs: ExpressionArguments) => void;
|
|
13
|
-
getArgumentCount: () => number;
|
|
14
|
-
getToken: () => string;
|
|
15
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { CommandLogicNode } from "./CommandLogicNode";
|
|
2
|
-
/**
|
|
3
|
-
* Used for command like
|
|
4
|
-
* random_range(1, 2);
|
|
5
|
-
*/
|
|
6
|
-
export class RandomRangeCommand extends CommandLogicNode {
|
|
7
|
-
/**
|
|
8
|
-
* From: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#getting_a_random_integer_between_two_values
|
|
9
|
-
*/
|
|
10
|
-
getRandomInt = (min, max) => {
|
|
11
|
-
min = Math.ceil(min);
|
|
12
|
-
max = Math.floor(max);
|
|
13
|
-
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
14
|
-
};
|
|
15
|
-
doOperation = (currentOperands, nodeArgs) => {
|
|
16
|
-
nodeArgs.initState.operandStack.push(String(this.getRandomInt(Number(currentOperands[0]), Number(currentOperands[1]))));
|
|
17
|
-
};
|
|
18
|
-
getArgumentCount = () => {
|
|
19
|
-
return 2;
|
|
20
|
-
};
|
|
21
|
-
getToken = () => {
|
|
22
|
-
return "#random_range";
|
|
23
|
-
};
|
|
24
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { CommandLogicNode } from "./CommandLogicNode";
|
|
2
|
-
import type { ExpressionArguments } from "../ExpressionArguments";
|
|
3
|
-
import { VisitedCountCommand } from "./VisitedCountCommand";
|
|
4
|
-
/**
|
|
5
|
-
* Used for command like
|
|
6
|
-
* visited("node name here");
|
|
7
|
-
*
|
|
8
|
-
* Pushes a boolean in the operand stack
|
|
9
|
-
*
|
|
10
|
-
* Some design decision note:
|
|
11
|
-
* I opted for composition over inheritance.
|
|
12
|
-
* This may look like a good case for composition but my philosophy is if they both are equally
|
|
13
|
-
* viable, always prefer composition. It will help in the long run if we do refactoring
|
|
14
|
-
*/
|
|
15
|
-
export declare class VisitedCommand extends CommandLogicNode {
|
|
16
|
-
visitedCountCommand: VisitedCountCommand;
|
|
17
|
-
doOperation: (currentOperands: string[], nodeArgs: ExpressionArguments) => void;
|
|
18
|
-
getArgumentCount: () => number;
|
|
19
|
-
getToken: () => string;
|
|
20
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { CommandLogicNode } from "./CommandLogicNode";
|
|
2
|
-
import { VisitedCountCommand } from "./VisitedCountCommand";
|
|
3
|
-
/**
|
|
4
|
-
* Used for command like
|
|
5
|
-
* visited("node name here");
|
|
6
|
-
*
|
|
7
|
-
* Pushes a boolean in the operand stack
|
|
8
|
-
*
|
|
9
|
-
* Some design decision note:
|
|
10
|
-
* I opted for composition over inheritance.
|
|
11
|
-
* This may look like a good case for composition but my philosophy is if they both are equally
|
|
12
|
-
* viable, always prefer composition. It will help in the long run if we do refactoring
|
|
13
|
-
*/
|
|
14
|
-
export class VisitedCommand extends CommandLogicNode {
|
|
15
|
-
visitedCountCommand = new VisitedCountCommand();
|
|
16
|
-
doOperation = (currentOperands, nodeArgs) => {
|
|
17
|
-
this.visitedCountCommand.process(nodeArgs);
|
|
18
|
-
const value = Number(nodeArgs.initState.operandStack.pop());
|
|
19
|
-
if (isNaN(value) || value === 0) {
|
|
20
|
-
nodeArgs.initState.operandStack.push("false");
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
nodeArgs.initState.operandStack.push("true");
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
getArgumentCount = () => {
|
|
27
|
-
return 0; // let the child work; this is only a decorator
|
|
28
|
-
};
|
|
29
|
-
getToken = () => {
|
|
30
|
-
return "#visited";
|
|
31
|
-
};
|
|
32
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { CommandLogicNode } from "./CommandLogicNode";
|
|
2
|
-
import type { ExpressionArguments } from "../ExpressionArguments";
|
|
3
|
-
/**
|
|
4
|
-
* Used for command like
|
|
5
|
-
* visited_count("node name here");
|
|
6
|
-
*
|
|
7
|
-
* Pushed a number in the operand stack
|
|
8
|
-
*/
|
|
9
|
-
export declare class VisitedCountCommand extends CommandLogicNode {
|
|
10
|
-
doOperation: (currentOperands: string[], nodeArgs: ExpressionArguments) => void;
|
|
11
|
-
getArgumentCount: () => number;
|
|
12
|
-
getToken: () => string;
|
|
13
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { CommandLogicNode } from "./CommandLogicNode";
|
|
2
|
-
import { dialogVariableStore } from "../../../DialogManagerStore";
|
|
3
|
-
/**
|
|
4
|
-
* Used for command like
|
|
5
|
-
* visited_count("node name here");
|
|
6
|
-
*
|
|
7
|
-
* Pushed a number in the operand stack
|
|
8
|
-
*/
|
|
9
|
-
export class VisitedCountCommand extends CommandLogicNode {
|
|
10
|
-
doOperation = (currentOperands, nodeArgs) => {
|
|
11
|
-
const value = Number(dialogVariableStore.getItem(`+${currentOperands[0]}`));
|
|
12
|
-
if (isNaN(value) || value === 0) {
|
|
13
|
-
nodeArgs.initState.operandStack.push("0");
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
nodeArgs.initState.operandStack.push(String(value));
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
getArgumentCount = () => {
|
|
20
|
-
return 1;
|
|
21
|
-
};
|
|
22
|
-
getToken = () => {
|
|
23
|
-
return "#visited_count";
|
|
24
|
-
};
|
|
25
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { OperatorLogicNode, OperatorType } from "./OperatorLogicNode";
|
|
2
|
-
import type { ExpressionArguments } from "../ExpressionArguments";
|
|
3
|
-
export declare class AndOperator extends OperatorLogicNode {
|
|
4
|
-
doOperation: (currentOperands: string[], nodeArgs: ExpressionArguments) => void;
|
|
5
|
-
getOperatorType: () => OperatorType;
|
|
6
|
-
getToken: () => string;
|
|
7
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { OperatorLogicNode, OperatorType } from "./OperatorLogicNode";
|
|
2
|
-
import { btreeUtils } from "../../core/BTreeUtils";
|
|
3
|
-
export class AndOperator extends OperatorLogicNode {
|
|
4
|
-
doOperation = (currentOperands, nodeArgs) => {
|
|
5
|
-
// todo: evaluate possible weird cases when doing number comparisons
|
|
6
|
-
// ISSUE #88 https://github.com/TurnipXenon/pineapple/issues/88
|
|
7
|
-
nodeArgs.initState.operandStack.push(String(btreeUtils.isTrue(currentOperands[0]) && btreeUtils.isTrue(currentOperands[1])));
|
|
8
|
-
};
|
|
9
|
-
getOperatorType = () => {
|
|
10
|
-
return OperatorType.Binary;
|
|
11
|
-
};
|
|
12
|
-
getToken = () => {
|
|
13
|
-
return "&&";
|
|
14
|
-
};
|
|
15
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { OperatorLogicNode, OperatorType } from "./OperatorLogicNode";
|
|
2
|
-
import type { ExpressionArguments } from "../ExpressionArguments";
|
|
3
|
-
export declare class EqualityOperator extends OperatorLogicNode {
|
|
4
|
-
doOperation: (currentOperands: string[], nodeArgs: ExpressionArguments) => void;
|
|
5
|
-
getOperatorType: () => OperatorType;
|
|
6
|
-
getToken: () => string;
|
|
7
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { OperatorLogicNode, OperatorType } from "./OperatorLogicNode";
|
|
2
|
-
export class EqualityOperator extends OperatorLogicNode {
|
|
3
|
-
doOperation = (currentOperands, nodeArgs) => {
|
|
4
|
-
// todo: evaluate possible weird cases when doing number comparisons
|
|
5
|
-
// ISSUE #88 https://github.com/TurnipXenon/pineapple/issues/88
|
|
6
|
-
nodeArgs.initState.operandStack.push(String(currentOperands[0] === currentOperands[1]));
|
|
7
|
-
};
|
|
8
|
-
getOperatorType = () => {
|
|
9
|
-
return OperatorType.Binary;
|
|
10
|
-
};
|
|
11
|
-
getToken = () => {
|
|
12
|
-
return "==";
|
|
13
|
-
};
|
|
14
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { OperatorLogicNode, OperatorType } from "./OperatorLogicNode";
|
|
2
|
-
import type { ExpressionArguments } from "../ExpressionArguments";
|
|
3
|
-
export declare class GreaterThanEqualOperator extends OperatorLogicNode {
|
|
4
|
-
doOperation: (currentOperands: string[], nodeArgs: ExpressionArguments) => void;
|
|
5
|
-
getOperatorType: () => OperatorType;
|
|
6
|
-
getToken: () => string;
|
|
7
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { OperatorLogicNode, OperatorType } from "./OperatorLogicNode";
|
|
2
|
-
export class GreaterThanEqualOperator extends OperatorLogicNode {
|
|
3
|
-
doOperation = (currentOperands, nodeArgs) => {
|
|
4
|
-
nodeArgs.initState.operandStack.push(String(Number(currentOperands[0]) >= Number(currentOperands[1])));
|
|
5
|
-
};
|
|
6
|
-
getOperatorType = () => {
|
|
7
|
-
return OperatorType.Binary;
|
|
8
|
-
};
|
|
9
|
-
getToken = () => {
|
|
10
|
-
return ">=";
|
|
11
|
-
};
|
|
12
|
-
}
|
package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { OperatorLogicNode, OperatorType } from "./OperatorLogicNode";
|
|
2
|
-
import type { ExpressionArguments } from "../ExpressionArguments";
|
|
3
|
-
export declare class GreaterThanOperator extends OperatorLogicNode {
|
|
4
|
-
doOperation: (currentOperands: string[], nodeArgs: ExpressionArguments) => void;
|
|
5
|
-
getOperatorType: () => OperatorType;
|
|
6
|
-
getToken: () => string;
|
|
7
|
-
}
|