@turnipxenon/pineapple 1.1.2 → 2.1.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 +15 -6
- 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 +1 -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 +19 -23
- 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/static/robots.txt +5 -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/{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,34 +0,0 @@
|
|
|
1
|
-
class BTreeUtils {
|
|
2
|
-
/**
|
|
3
|
-
* peek the top of a stack object with the assumption it's not an empty stack
|
|
4
|
-
* todo: add possible protection like an assertion
|
|
5
|
-
* @param stack
|
|
6
|
-
* @return top of the stack
|
|
7
|
-
*/
|
|
8
|
-
peek = (stack) => {
|
|
9
|
-
return stack[stack.length - 1];
|
|
10
|
-
};
|
|
11
|
-
removeQuotes = (value) => {
|
|
12
|
-
return value
|
|
13
|
-
.replace(/^"/, "") // remove possible " at the start: https://stackoverflow.com/a/2182602
|
|
14
|
-
.replace(/"$/, ""); // remove possible " at the end: https://stackoverflow.com/a/12249011
|
|
15
|
-
};
|
|
16
|
-
simplifyToken = (oldToken) => {
|
|
17
|
-
if (oldToken[0] == "$") {
|
|
18
|
-
const value = localStorage.getItem(oldToken);
|
|
19
|
-
if (value) {
|
|
20
|
-
return value;
|
|
21
|
-
}
|
|
22
|
-
console.error(`Value obtained in local storage false: ${oldToken}`);
|
|
23
|
-
return "";
|
|
24
|
-
}
|
|
25
|
-
return btreeUtils.removeQuotes(oldToken);
|
|
26
|
-
};
|
|
27
|
-
isTrue = (value) => {
|
|
28
|
-
return value.trim().toLowerCase() === "true";
|
|
29
|
-
};
|
|
30
|
-
isFalse = (value) => {
|
|
31
|
-
return value.trim().toLowerCase() === "false";
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export const btreeUtils = new BTreeUtils();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export var BehaviorStatus;
|
|
2
|
-
(function (BehaviorStatus) {
|
|
3
|
-
BehaviorStatus[BehaviorStatus["Running"] = 0] = "Running";
|
|
4
|
-
BehaviorStatus[BehaviorStatus["Success"] = 1] = "Success";
|
|
5
|
-
BehaviorStatus[BehaviorStatus["Failure"] = 2] = "Failure";
|
|
6
|
-
})(BehaviorStatus || (BehaviorStatus = {}));
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { BehaviorNode } from "./BehaviorNode";
|
|
2
|
-
import type { BaseBehaviorResult } from "./BaseBehaviorResult";
|
|
3
|
-
/**
|
|
4
|
-
* Selector is a composite behavior node where it tries to process everything until it
|
|
5
|
-
* finds a non-failing node
|
|
6
|
-
*/
|
|
7
|
-
export declare abstract class SelectorNode<Argument, Result extends BaseBehaviorResult> implements BehaviorNode<Argument, Result> {
|
|
8
|
-
nodeList: BehaviorNode<Argument, Result>[];
|
|
9
|
-
abstract defaultResult: () => Result;
|
|
10
|
-
protected constructor(nodeList: BehaviorNode<Argument, Result>[]);
|
|
11
|
-
process(nodeArgs: Argument): Result;
|
|
12
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { BehaviorStatus } from "./BehaviorStatus";
|
|
2
|
-
/**
|
|
3
|
-
* Selector is a composite behavior node where it tries to process everything until it
|
|
4
|
-
* finds a non-failing node
|
|
5
|
-
*/
|
|
6
|
-
export class SelectorNode {
|
|
7
|
-
nodeList;
|
|
8
|
-
constructor(nodeList) {
|
|
9
|
-
this.nodeList = nodeList;
|
|
10
|
-
}
|
|
11
|
-
process(nodeArgs) {
|
|
12
|
-
let finalResult = this.defaultResult();
|
|
13
|
-
for (const node of this.nodeList) {
|
|
14
|
-
const currentResult = node.process(nodeArgs);
|
|
15
|
-
if (currentResult.status !== BehaviorStatus.Failure) {
|
|
16
|
-
finalResult = currentResult;
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return finalResult;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { BehaviorNode } from "../core/BehaviorNode";
|
|
2
|
-
import type { ExpressionArguments } from "./ExpressionArguments";
|
|
3
|
-
import type { ExpressionResult } from "./ExpressionResult";
|
|
4
|
-
export type ExpressionBehaviorNode = BehaviorNode<ExpressionArguments, ExpressionResult>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ExpressionSelectorNode } from "./ExpressionSelectorNode";
|
|
2
|
-
declare class ExpressionEvaluator {
|
|
3
|
-
evaluatorTree: ExpressionSelectorNode;
|
|
4
|
-
isNumeric: (str: string) => boolean;
|
|
5
|
-
getPrecedence: (token: string) => number;
|
|
6
|
-
evaluateFreeform: (line: string, prefix: string) => string[];
|
|
7
|
-
/**
|
|
8
|
-
* evaluates a yarn if or elseif statement
|
|
9
|
-
* @param line is the current line being evaluated
|
|
10
|
-
* @param prefix is either "<<if" or "<<elseif"
|
|
11
|
-
*/
|
|
12
|
-
evaluate: (line: string, prefix: string) => boolean;
|
|
13
|
-
}
|
|
14
|
-
export declare const expressionEvaluator: ExpressionEvaluator;
|
|
15
|
-
export {};
|
|
@@ -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
|
-
}
|