@turnipxenon/pineapple 1.1.2
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/README.md +38 -0
- package/dist/app.postcss +94 -0
- 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/icons/chat_cursor.svg +47 -0
- package/dist/assets/icons/external_link.svg +50 -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 +93 -0
- package/dist/components/DialogOverlay.svelte.d.ts +14 -0
- package/dist/components/LazyAsset.svelte +96 -0
- package/dist/components/LazyAsset.svelte.d.ts +20 -0
- package/dist/components/LazyAssetType.d.ts +10 -0
- package/dist/components/LazyAssetType.js +12 -0
- package/dist/components/PineappleBaseLayout.svelte +186 -0
- package/dist/components/PineappleBaseLayout.svelte.d.ts +19 -0
- package/dist/components/RandomizedBackground.svelte +62 -0
- package/dist/components/RandomizedBackground.svelte.d.ts +16 -0
- package/dist/components/RandomizedImage.svelte +29 -0
- package/dist/components/RandomizedImage.svelte.d.ts +17 -0
- package/dist/components/dialog_manager/DialogManager.d.ts +77 -0
- package/dist/components/dialog_manager/DialogManager.js +239 -0
- package/dist/components/dialog_manager/DialogManagerStore.d.ts +41 -0
- package/dist/components/dialog_manager/DialogManagerStore.js +45 -0
- package/dist/components/dialog_manager/DialogProcessor.d.ts +13 -0
- package/dist/components/dialog_manager/DialogProcessor.js +62 -0
- package/dist/components/dialog_manager/DialogUtils.d.ts +5 -0
- package/dist/components/dialog_manager/DialogUtils.js +8 -0
- package/dist/components/dialog_manager/behavior_tree/core/BTreeUtils.d.ts +15 -0
- package/dist/components/dialog_manager/behavior_tree/core/BTreeUtils.js +34 -0
- package/dist/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.d.ts +4 -0
- package/dist/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.js +1 -0
- package/dist/components/dialog_manager/behavior_tree/core/BehaviorNode.d.ts +3 -0
- package/dist/components/dialog_manager/behavior_tree/core/BehaviorNode.js +1 -0
- package/dist/components/dialog_manager/behavior_tree/core/BehaviorStatus.d.ts +5 -0
- package/dist/components/dialog_manager/behavior_tree/core/BehaviorStatus.js +6 -0
- package/dist/components/dialog_manager/behavior_tree/core/SelectorNode.d.ts +12 -0
- package/dist/components/dialog_manager/behavior_tree/core/SelectorNode.js +22 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionArguments.d.ts +5 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionArguments.js +1 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.d.ts +4 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.js +1 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.d.ts +15 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.js +220 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionResult.d.ts +5 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionResult.js +1 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.d.ts +8 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.js +15 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionState.d.ts +3 -0
- package/dist/components/dialog_manager/behavior_tree/expression/ExpressionState.js +1 -0
- package/dist/components/dialog_manager/behavior_tree/expression/OperandNode.d.ts +10 -0
- package/dist/components/dialog_manager/behavior_tree/expression/OperandNode.js +15 -0
- package/dist/components/dialog_manager/behavior_tree/expression/OperatorNode.d.ts +11 -0
- package/dist/components/dialog_manager/behavior_tree/expression/OperatorNode.js +30 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.d.ts +6 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.js +21 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.d.ts +9 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.js +19 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandMap.d.ts +9 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandMap.js +18 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.d.ts +15 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.js +24 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.d.ts +20 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.js +32 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.d.ts +13 -0
- package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.js +25 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/AndOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/AndOperator.js +15 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.js +14 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.js +12 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.js +12 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.js +12 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.js +12 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.js +12 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.js +13 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.d.ts +17 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.js +32 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.d.ts +9 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.js +47 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OrOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/OrOperator.js +13 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/XorOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/XorOperator.js +17 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.js +14 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.js +14 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.js +12 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.js +14 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.d.ts +7 -0
- package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.js +14 -0
- package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.d.ts +4 -0
- package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.js +1 -0
- package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.d.ts +6 -0
- package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.js +1 -0
- package/dist/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.d.ts +6 -0
- package/dist/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.js +1 -0
- package/dist/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.d.ts +8 -0
- package/dist/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.js +15 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/BehaviorState.d.ts +5 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/BehaviorState.js +5 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.d.ts +11 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.js +53 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/ElseNode.d.ts +11 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/ElseNode.js +49 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/EndIfNode.d.ts +11 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/EndIfNode.js +23 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/IfMode.d.ts +6 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/IfMode.js +8 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/IfNode.d.ts +12 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/IfNode.js +43 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.d.ts +11 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.js +25 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.d.ts +6 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.js +18 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.d.ts +6 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.js +17 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.d.ts +10 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.js +38 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.d.ts +11 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.js +31 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.d.ts +8 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.js +39 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.d.ts +8 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.js +40 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.d.ts +9 -0
- package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.js +28 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/scripts/SetDefaultEnvironment.d.ts +1 -0
- package/dist/scripts/SetDefaultEnvironment.js +41 -0
- package/dist/scripts/pineapple_fiber/PineappleWeaver.d.ts +9 -0
- package/dist/scripts/pineapple_fiber/PineappleWeaver.js +201 -0
- package/dist/scripts/util/FileManagement.d.ts +7 -0
- package/dist/scripts/util/FileManagement.js +35 -0
- package/dist/scripts/util/ManualCheck.d.ts +1 -0
- package/dist/scripts/util/ManualCheck.js +28 -0
- package/dist/scripts/util/ManualCheckRun.d.ts +1 -0
- package/dist/scripts/util/ManualCheckRun.js +6 -0
- package/dist/store.d.ts +17 -0
- package/dist/store.js +17 -0
- package/dist/styles/DefaultGridContainer.css +61 -0
- package/dist/theme.postcss +107 -0
- package/dist/types/BlogBlurbMeta.d.ts +11 -0
- package/dist/types/BlogBlurbMeta.js +16 -0
- package/dist/types/BreadcrumbData.d.ts +4 -0
- package/dist/types/BreadcrumbData.js +1 -0
- package/dist/types/pineapple_fiber/DialogDetail.d.ts +6 -0
- package/dist/types/pineapple_fiber/DialogDetail.js +1 -0
- package/dist/types/pineapple_fiber/DialogState.d.ts +5 -0
- package/dist/types/pineapple_fiber/DialogState.js +6 -0
- package/dist/types/pineapple_fiber/DialogVariableStore.d.ts +2 -0
- package/dist/types/pineapple_fiber/DialogVariableStore.js +20 -0
- package/dist/types/pineapple_fiber/PortraitType.d.ts +11 -0
- package/dist/types/pineapple_fiber/PortraitType.js +12 -0
- package/dist/util/stable_random.d.ts +2 -0
- package/dist/util/stable_random.js +15 -0
- package/package.json +67 -0
- package/src/app.html +13 -0
- package/src/lib/app.postcss +94 -0
- package/src/lib/assets/bg_tiled/bg_tiled_ares.png +0 -0
- package/src/lib/assets/bg_tiled/bg_tiled_corn.png +0 -0
- package/src/lib/assets/bg_tiled/bg_tiled_pineapple.png +0 -0
- package/src/lib/assets/bg_tiled/bg_tiled_reinhard.png +0 -0
- package/src/lib/assets/bg_tiled/bg_tiled_tomato.png +0 -0
- package/src/lib/assets/bg_tiled/bg_tiled_turnip.png +0 -0
- package/src/lib/assets/characters/ares/ares_blushing.webp +0 -0
- package/src/lib/assets/characters/ares/ares_disappointed.webp +0 -0
- package/src/lib/assets/characters/ares/ares_happy.webp +0 -0
- package/src/lib/assets/characters/ares/ares_lets_go.webp +0 -0
- package/src/lib/assets/characters/ares/ares_logo.webp +0 -0
- package/src/lib/assets/characters/ares/ares_mad.webp +0 -0
- package/src/lib/assets/characters/ares/ares_neutral.webp +0 -0
- package/src/lib/assets/characters/ares/ares_slightly_mad.webp +0 -0
- package/src/lib/assets/characters/ares/ares_surprised.webp +0 -0
- package/src/lib/assets/characters/ares/ares_yay.webp +0 -0
- package/src/lib/assets/game_dev/footage-chef-wings.gif +0 -0
- package/src/lib/assets/game_dev/footage-depreciation.webm +0 -0
- package/src/lib/assets/game_dev/footage-thinking-of-flowers.webm +0 -0
- package/src/lib/assets/game_dev/screenshot-game-jam-mama.png +0 -0
- package/src/lib/assets/game_dev/screenshot-string-hop.png +0 -0
- package/src/lib/assets/game_dev/screenshot-wet-ass-road.png +0 -0
- package/src/lib/assets/icons/chat_cursor.svg +47 -0
- package/src/lib/assets/icons/external_link.svg +50 -0
- package/src/lib/assets/temp/background-image.jpg +0 -0
- package/src/lib/assets/temp/bitbucket-logo.png +0 -0
- package/src/lib/assets/temp/github-logo.png +0 -0
- package/src/lib/assets/temp/header-hep-cat.mp4 +0 -0
- package/src/lib/assets/temp/header-hep-cat.ogg +0 -0
- package/src/lib/assets/temp/header-hep-cat.webm +0 -0
- package/src/lib/assets/temp/header-pengi.mp4 +0 -0
- package/src/lib/assets/temp/header-pengi.webm +0 -0
- package/src/lib/assets/temp/header-soulwork.mp4 +0 -0
- package/src/lib/assets/temp/header-soulwork.ogg +0 -0
- package/src/lib/assets/temp/header-soulwork.webm +0 -0
- package/src/lib/components/DialogOverlay.svelte +100 -0
- package/src/lib/components/LazyAsset.svelte +114 -0
- package/src/lib/components/LazyAssetType.ts +11 -0
- package/src/lib/components/PineappleBaseLayout.svelte +165 -0
- package/src/lib/components/RandomizedBackground.svelte +77 -0
- package/src/lib/components/RandomizedImage.svelte +31 -0
- package/src/lib/components/dialog_manager/DialogManager.ts +282 -0
- package/src/lib/components/dialog_manager/DialogManagerStore.ts +52 -0
- package/src/lib/components/dialog_manager/DialogProcessor.ts +68 -0
- package/src/lib/components/dialog_manager/DialogUtils.ts +10 -0
- package/src/lib/components/dialog_manager/behavior_tree/core/BTreeUtils.ts +40 -0
- package/src/lib/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.ts +5 -0
- package/src/lib/components/dialog_manager/behavior_tree/core/BehaviorNode.ts +3 -0
- package/src/lib/components/dialog_manager/behavior_tree/core/BehaviorStatus.ts +5 -0
- package/src/lib/components/dialog_manager/behavior_tree/core/SelectorNode.ts +32 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionArguments.ts +6 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.ts +5 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.ts +236 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionResult.ts +6 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.ts +20 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionState.ts +3 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/OperandNode.ts +19 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/OperatorNode.ts +37 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.ts +28 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.ts +34 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/commands/CommandMap.ts +26 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.ts +31 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.ts +38 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.ts +28 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/AndOperator.ts +24 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.ts +21 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.ts +21 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.ts +21 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.ts +19 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.ts +21 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.ts +21 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.ts +20 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.ts +42 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.ts +53 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/OrOperator.ts +22 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/XorOperator.ts +24 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.ts +23 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.ts +23 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.ts +21 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.ts +23 -0
- package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.ts +23 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.ts +5 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.ts +7 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.ts +7 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.ts +20 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/BehaviorState.ts +6 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.ts +59 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/ElseNode.ts +55 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/EndIfNode.ts +28 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/IfMode.ts +7 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/IfNode.ts +49 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.ts +30 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.ts +24 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.ts +22 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.ts +48 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.ts +37 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.ts +48 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.ts +51 -0
- package/src/lib/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.ts +34 -0
- package/src/lib/index.ts +9 -0
- package/src/lib/scripts/SetDefaultEnvironment.ts +45 -0
- package/src/lib/scripts/pineapple_fiber/PineappleWeaver.ts +252 -0
- package/src/lib/scripts/util/FileManagement.ts +38 -0
- package/src/lib/scripts/util/ManualCheck.ts +32 -0
- package/src/lib/scripts/util/ManualCheckRun.ts +7 -0
- package/src/lib/store.ts +18 -0
- package/src/lib/styles/DefaultGridContainer.css +61 -0
- package/src/lib/theme.postcss +107 -0
- package/src/lib/types/BlogBlurbMeta.ts +16 -0
- package/src/lib/types/BreadcrumbData.ts +4 -0
- package/src/lib/types/pineapple_fiber/DialogDetail.ts +7 -0
- package/src/lib/types/pineapple_fiber/DialogState.ts +5 -0
- package/src/lib/types/pineapple_fiber/DialogVariableStore.ts +24 -0
- package/src/lib/types/pineapple_fiber/PortraitType.ts +11 -0
- package/src/lib/util/stable_random.ts +16 -0
- package/src/routes/+error.svelte +26 -0
- package/src/routes/+layout.svelte +23 -0
- package/src/routes/+page.svelte +41 -0
- package/src/routes/Error.yarn +7 -0
- package/src/routes/ErrorYarn.ts +24 -0
- package/src/routes/portfolio/+page.svelte +0 -0
- package/src/types.d.ts +8 -0
- package/static/default-card.png +0 -0
- package/static/favicon.png +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
2
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
3
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
4
|
+
import { btreeUtils } from "$lib/components/dialog_manager/behavior_tree/core/BTreeUtils";
|
|
5
|
+
import { IfMode } from "$lib/components/dialog_manager/behavior_tree/line_processors/IfMode";
|
|
6
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* ElseNode is a leaf node that returns:
|
|
10
|
+
* - Success if it is an else node, and updates the behaviorState
|
|
11
|
+
* - Failure if it is not an else node
|
|
12
|
+
*/
|
|
13
|
+
export class ElseNode implements LineBehaviorNode {
|
|
14
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
15
|
+
if (!nodeArgs.line.startsWith("<<else>>")) {
|
|
16
|
+
return {
|
|
17
|
+
nextState: nodeArgs.initState,
|
|
18
|
+
renderedLine: "",
|
|
19
|
+
status: BehaviorStatus.Failure
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const currentIfMode = btreeUtils.peek(nodeArgs.initState.ifModeStack);
|
|
24
|
+
switch (currentIfMode) {
|
|
25
|
+
case IfMode.Search:
|
|
26
|
+
// probably a syntax error
|
|
27
|
+
console.error("Syntax error found in yarn dialog!");
|
|
28
|
+
console.error(`Check out line ${nodeArgs.lineIndex + 1}: ${nodeArgs.line}`);
|
|
29
|
+
break;
|
|
30
|
+
case IfMode.Ignore:
|
|
31
|
+
// just move on
|
|
32
|
+
break;
|
|
33
|
+
case IfMode.Evaluated:
|
|
34
|
+
// previous case was true therefore ignore
|
|
35
|
+
nodeArgs.initState.ifModeStack.pop();
|
|
36
|
+
nodeArgs.initState.ifModeStack.push(IfMode.Ignore);
|
|
37
|
+
break;
|
|
38
|
+
case IfMode.EvaluateNext:
|
|
39
|
+
// since all the previous evaluations were false, now let's do everything inside!
|
|
40
|
+
nodeArgs.initState.ifModeStack.pop();
|
|
41
|
+
nodeArgs.initState.ifModeStack.push(IfMode.Evaluated);
|
|
42
|
+
break;
|
|
43
|
+
default:
|
|
44
|
+
console.error("Unimplemented if state!");
|
|
45
|
+
console.error(`Check out line ${nodeArgs.lineIndex + 1}: ${nodeArgs.line}`);
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
nextState: nodeArgs.initState,
|
|
51
|
+
renderedLine: "",
|
|
52
|
+
status: BehaviorStatus.Success
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
2
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
3
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
4
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* EndIfNode is a leaf node returns the following results:
|
|
8
|
+
* - Success: if it is an endif node, and updates the behaviorState
|
|
9
|
+
* - Failure: if it is not an endif node
|
|
10
|
+
*/
|
|
11
|
+
export class EndIfNode implements LineBehaviorNode {
|
|
12
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
13
|
+
if (!nodeArgs.line.startsWith("<<endif>>")) {
|
|
14
|
+
return {
|
|
15
|
+
nextState: nodeArgs.initState,
|
|
16
|
+
renderedLine: "",
|
|
17
|
+
status: BehaviorStatus.Failure
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
nodeArgs.initState.ifModeStack.pop();
|
|
22
|
+
return {
|
|
23
|
+
nextState: nodeArgs.initState,
|
|
24
|
+
renderedLine: "",
|
|
25
|
+
status: BehaviorStatus.Success
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// interpreter states
|
|
2
|
+
export enum IfMode {
|
|
3
|
+
Search, // search for the next if statement
|
|
4
|
+
Ignore, // ignore everything until we find endif
|
|
5
|
+
Evaluated, // do normal search until we find elseif, else, or endif, then ignore
|
|
6
|
+
EvaluateNext // find the next elseif, else, or endif and evaluate if possible
|
|
7
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
2
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
3
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
4
|
+
import { IfMode } from "$lib/components/dialog_manager/behavior_tree/line_processors/IfMode";
|
|
5
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
6
|
+
import { expressionEvaluator } from "$lib/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator";
|
|
7
|
+
import { btreeUtils } from "$lib/components/dialog_manager/behavior_tree/core/BTreeUtils";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* IfNode is a leaf node which tries to determine whether the current line is an
|
|
11
|
+
* if statement and returns:
|
|
12
|
+
* - Success: if it is an if node, successfully processes a line, and updates the behaviorState
|
|
13
|
+
* - Failure: if it is not an if node or we did not want to process the line
|
|
14
|
+
*/
|
|
15
|
+
export class IfNode implements LineBehaviorNode {
|
|
16
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
17
|
+
if (!nodeArgs.line.startsWith("<<if")) {
|
|
18
|
+
return {
|
|
19
|
+
renderedLine: "",
|
|
20
|
+
nextState: nodeArgs.initState,
|
|
21
|
+
status: BehaviorStatus.Failure
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const currentIfMode = btreeUtils.peek(nodeArgs.initState.ifModeStack);
|
|
26
|
+
if ([IfMode.EvaluateNext, IfMode.Ignore].includes(currentIfMode)) {
|
|
27
|
+
// skip! we found a nested if
|
|
28
|
+
console.log("Skipping if node because");
|
|
29
|
+
nodeArgs.initState.ifModeStack.push(IfMode.Ignore);
|
|
30
|
+
return {
|
|
31
|
+
renderedLine: "",
|
|
32
|
+
nextState: nodeArgs.initState,
|
|
33
|
+
status: BehaviorStatus.Success
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (expressionEvaluator.evaluate(nodeArgs.line, "<<if")) {
|
|
38
|
+
nodeArgs.initState.ifModeStack.push(IfMode.Evaluated);
|
|
39
|
+
} else {
|
|
40
|
+
nodeArgs.initState.ifModeStack.push(IfMode.EvaluateNext);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
renderedLine: "",
|
|
45
|
+
nextState: nodeArgs.initState,
|
|
46
|
+
status: BehaviorStatus.Success
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
2
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
3
|
+
import { btreeUtils } from "$lib/components/dialog_manager/behavior_tree/core/BTreeUtils";
|
|
4
|
+
import { IfMode } from "$lib/components/dialog_manager/behavior_tree/line_processors/IfMode";
|
|
5
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
6
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* This is a leaf node that returns:
|
|
10
|
+
* - Success: if the currentIfMode is Ignore or EvaluateNext
|
|
11
|
+
* - Failure: otherwise
|
|
12
|
+
*/
|
|
13
|
+
export class IgnoreGuardNode implements LineBehaviorNode {
|
|
14
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
15
|
+
const currentIfMode = btreeUtils.peek(nodeArgs.initState.ifModeStack);
|
|
16
|
+
if ([IfMode.Ignore, IfMode.EvaluateNext].includes(currentIfMode)) {
|
|
17
|
+
return {
|
|
18
|
+
nextState: nodeArgs.initState,
|
|
19
|
+
renderedLine: "",
|
|
20
|
+
status: BehaviorStatus.Success
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
nextState: nodeArgs.initState,
|
|
26
|
+
renderedLine: "",
|
|
27
|
+
status: BehaviorStatus.Failure
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
2
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
3
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
4
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
5
|
+
|
|
6
|
+
export class IgnoreJumpNode implements LineBehaviorNode {
|
|
7
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
8
|
+
if (!nodeArgs.line.startsWith("// ignore jumps")) {
|
|
9
|
+
return {
|
|
10
|
+
renderedLine: "",
|
|
11
|
+
nextState: nodeArgs.initState,
|
|
12
|
+
status: BehaviorStatus.Failure
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
nodeArgs.initState.ignoreJumps = true;
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
renderedLine: "",
|
|
20
|
+
nextState: nodeArgs.initState,
|
|
21
|
+
status: BehaviorStatus.Success
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
2
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
3
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
4
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
5
|
+
|
|
6
|
+
export class LineCommentNode implements LineBehaviorNode {
|
|
7
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
8
|
+
if (!nodeArgs.line.startsWith("//")) {
|
|
9
|
+
return {
|
|
10
|
+
renderedLine: "",
|
|
11
|
+
nextState: nodeArgs.initState,
|
|
12
|
+
status: BehaviorStatus.Failure
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
renderedLine: "",
|
|
18
|
+
nextState: nodeArgs.initState,
|
|
19
|
+
status: BehaviorStatus.Success
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
package/src/lib/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
2
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
3
|
+
import { browser } from "$app/environment";
|
|
4
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
5
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* This is a leaf node that ALWAYS returns success
|
|
9
|
+
* It processes the line in search for variables it can replace when rendered
|
|
10
|
+
*/
|
|
11
|
+
export class NormalLineProcessorNode implements LineBehaviorNode {
|
|
12
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
13
|
+
const renderedLine = nodeArgs.line
|
|
14
|
+
.split("{$") // look for initial token
|
|
15
|
+
.map((token, index) => {
|
|
16
|
+
if (index == 0) {
|
|
17
|
+
return token; // ignore first character
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return token
|
|
21
|
+
.split("}") // split at the end and dont process the rest
|
|
22
|
+
.map((varToken, index) => {
|
|
23
|
+
if (index == 0 && browser) {
|
|
24
|
+
const varValue = localStorage.getItem(`$${varToken}`);
|
|
25
|
+
if (varValue !== null) {
|
|
26
|
+
// null guard
|
|
27
|
+
return varValue;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// just return the token I guess? LOL
|
|
31
|
+
console.warn(
|
|
32
|
+
`Null variable in yarn: ${varToken}. Make sure that all variables were set before using them.`
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return varToken;
|
|
37
|
+
})
|
|
38
|
+
.join(""); // combine all variable replaced strings
|
|
39
|
+
})
|
|
40
|
+
.join(""); // combine all processed strings
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
nextState: nodeArgs.initState,
|
|
44
|
+
renderedLine: renderedLine,
|
|
45
|
+
status: BehaviorStatus.Success
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
2
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
3
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
4
|
+
import { btreeUtils } from "$lib/components/dialog_manager/behavior_tree/core/BTreeUtils";
|
|
5
|
+
import { dialogVariableStore } from "$lib/components/dialog_manager/DialogManagerStore";
|
|
6
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
7
|
+
import { expressionEvaluator } from "$lib/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* This is a leaf node that returns:
|
|
11
|
+
* - Success: if it is a set line, and updates a new entry in localStorage
|
|
12
|
+
* - Failure: if it is not a set line
|
|
13
|
+
*/
|
|
14
|
+
export class SetVariableNode implements LineBehaviorNode {
|
|
15
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
16
|
+
if (!nodeArgs.line.startsWith("<<set")) {
|
|
17
|
+
return {
|
|
18
|
+
nextState: nodeArgs.initState,
|
|
19
|
+
renderedLine: "",
|
|
20
|
+
status: BehaviorStatus.Failure
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const setValuePair = nodeArgs.line.split("=");
|
|
25
|
+
const key = setValuePair[0].slice("<<set ".length).trim();
|
|
26
|
+
setValuePair.shift();
|
|
27
|
+
const preValue = setValuePair.join("=").trim();
|
|
28
|
+
const value = expressionEvaluator.evaluateFreeform(preValue, "");
|
|
29
|
+
dialogVariableStore.setItem(key, btreeUtils.peek(value));
|
|
30
|
+
|
|
31
|
+
return {
|
|
32
|
+
nextState: nodeArgs.initState,
|
|
33
|
+
renderedLine: "",
|
|
34
|
+
status: BehaviorStatus.Success
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
package/src/lib/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
2
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
3
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
4
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
5
|
+
import { SetVariableNode } from "$lib/components/dialog_manager/behavior_tree/line_processors/SetVariableNode";
|
|
6
|
+
|
|
7
|
+
export class DeclareCommand implements LineBehaviorNode {
|
|
8
|
+
setVariableNode = new SetVariableNode();
|
|
9
|
+
|
|
10
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
11
|
+
if (!nodeArgs.line.startsWith("<<declare")) {
|
|
12
|
+
return {
|
|
13
|
+
renderedLine: "",
|
|
14
|
+
nextState: nodeArgs.initState,
|
|
15
|
+
status: BehaviorStatus.Failure
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// determine if we need to set?
|
|
20
|
+
const setValuePair = nodeArgs.line.split("=");
|
|
21
|
+
const key = setValuePair[0].slice("<<declare ".length).trim(); // remove "<<declare "
|
|
22
|
+
if (localStorage.getItem(key) !== null) {
|
|
23
|
+
return {
|
|
24
|
+
renderedLine: "",
|
|
25
|
+
nextState: nodeArgs.initState,
|
|
26
|
+
status: BehaviorStatus.Success
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// if it does not exist, let's set it!
|
|
31
|
+
setValuePair.shift();
|
|
32
|
+
const preValue = setValuePair.join("=").split(" as ");
|
|
33
|
+
preValue.pop(); // remove " as ??? >>"
|
|
34
|
+
const value = preValue.join(" as ");
|
|
35
|
+
|
|
36
|
+
const result = this.setVariableNode.process({
|
|
37
|
+
initState: nodeArgs.initState,
|
|
38
|
+
line: `<<set ${key} = ${value}>>`, // faking the line lol
|
|
39
|
+
lineIndex: nodeArgs.lineIndex
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
nextState: result.nextState,
|
|
44
|
+
renderedLine: "",
|
|
45
|
+
status: BehaviorStatus.Success
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
package/src/lib/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
2
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
3
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
4
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
5
|
+
import { SetVariableNode } from "$lib/components/dialog_manager/behavior_tree/line_processors/SetVariableNode";
|
|
6
|
+
import { dialogManager } from "$lib/components/dialog_manager/DialogManagerStore";
|
|
7
|
+
import { btreeUtils } from "$lib/components/dialog_manager/behavior_tree/core/BTreeUtils";
|
|
8
|
+
|
|
9
|
+
export class JumpCommand implements LineBehaviorNode {
|
|
10
|
+
setVariableNode = new SetVariableNode();
|
|
11
|
+
|
|
12
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
13
|
+
if (!nodeArgs.line.startsWith("<<jump")) {
|
|
14
|
+
return {
|
|
15
|
+
renderedLine: "",
|
|
16
|
+
nextState: nodeArgs.initState,
|
|
17
|
+
status: BehaviorStatus.Failure
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (nodeArgs.initState.ignoreJumps) {
|
|
22
|
+
return {
|
|
23
|
+
nextState: nodeArgs.initState,
|
|
24
|
+
renderedLine: "",
|
|
25
|
+
status: BehaviorStatus.Success
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const choiceName = nodeArgs.line
|
|
30
|
+
.slice("<<jump ".length, nodeArgs.line.length - ">>".length)
|
|
31
|
+
.replace(/^\{/, "") // remove possible " at the start: https://stackoverflow.com/a/2182602
|
|
32
|
+
.replace(/}$/, ""); // remove possible " at the end: https://stackoverflow.com/a/12249011;
|
|
33
|
+
const dialogChoice = dialogManager.dialogMessageMap.get(btreeUtils.simplifyToken(choiceName));
|
|
34
|
+
if (dialogChoice !== undefined) {
|
|
35
|
+
// force choice
|
|
36
|
+
dialogManager.setDialogChoice(dialogChoice);
|
|
37
|
+
} else {
|
|
38
|
+
console.error(
|
|
39
|
+
`Unknown jump node at line ${
|
|
40
|
+
nodeArgs.lineIndex + 1
|
|
41
|
+
}: ${choiceName} or ${btreeUtils.simplifyToken(choiceName)}`
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
nextState: nodeArgs.initState,
|
|
47
|
+
renderedLine: "",
|
|
48
|
+
status: BehaviorStatus.Success
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
package/src/lib/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { LineBehaviorNode } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode";
|
|
2
|
+
import type { LineNodeArguments } from "$lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments";
|
|
3
|
+
import type { LineBehaviorResult } from "$lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult";
|
|
4
|
+
import { BehaviorStatus } from "$lib/components/dialog_manager/behavior_tree/core/BehaviorStatus";
|
|
5
|
+
import { dialogVariableStore } from "$lib/components/dialog_manager/DialogManagerStore";
|
|
6
|
+
import { browser } from "$app/environment";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Unvisits a node
|
|
10
|
+
*/
|
|
11
|
+
export class UnvisitCommand implements LineBehaviorNode {
|
|
12
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult {
|
|
13
|
+
if (!nodeArgs.line.startsWith("<<unvisit") || !browser) {
|
|
14
|
+
return {
|
|
15
|
+
renderedLine: "",
|
|
16
|
+
nextState: nodeArgs.initState,
|
|
17
|
+
status: BehaviorStatus.Failure
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const nodeName = nodeArgs.line
|
|
22
|
+
.slice("<<unvisit ".length, nodeArgs.line.length - ">>".length)
|
|
23
|
+
.replace(/^\{/, "") // remove possible " at the start: https://stackoverflow.com/a/2182602
|
|
24
|
+
.replace(/}$/, ""); // remove possible " at the end: https://stackoverflow.com/a/12249011;
|
|
25
|
+
const key = `+${nodeName}`;
|
|
26
|
+
dialogVariableStore.removeItem(key);
|
|
27
|
+
|
|
28
|
+
return {
|
|
29
|
+
nextState: nodeArgs.initState,
|
|
30
|
+
renderedLine: "",
|
|
31
|
+
status: BehaviorStatus.Success
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
package/src/lib/index.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { default as PineappleLayoutBase } from "./components/PineappleBaseLayout.svelte";
|
|
2
|
+
export { default as LazyAsset } from "./components/LazyAsset.svelte";
|
|
3
|
+
|
|
4
|
+
export * from "./components/dialog_manager/DialogManagerStore";
|
|
5
|
+
export * from "./components/dialog_manager/DialogManager";
|
|
6
|
+
export * from "./components/dialog_manager/DialogUtils";
|
|
7
|
+
export * from "./types/pineapple_fiber/PortraitType";
|
|
8
|
+
export * from "./types/pineapple_fiber/DialogDetail";
|
|
9
|
+
export * from "./util/stable_random";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
|
|
3
|
+
const setupDefaultEnvironmentVariable = () => {
|
|
4
|
+
console.info("Running environment variable checks");
|
|
5
|
+
const REQUIRED_ENV = [
|
|
6
|
+
"PUBLIC_CRINGE_USERNAME",
|
|
7
|
+
"PUBLIC_TWEET1",
|
|
8
|
+
"PUBLIC_TWEET2",
|
|
9
|
+
"PUBLIC_TUMBLR",
|
|
10
|
+
"PUBLIC_TWITTER_ID"
|
|
11
|
+
];
|
|
12
|
+
const ENV_FILEPATH = "./.env";
|
|
13
|
+
const missingEnv = [...REQUIRED_ENV];
|
|
14
|
+
|
|
15
|
+
// check if file exists
|
|
16
|
+
const exists = fs.existsSync(ENV_FILEPATH);
|
|
17
|
+
|
|
18
|
+
// iterate on every line to make sure every variable exists
|
|
19
|
+
if (exists) {
|
|
20
|
+
fs.readFileSync(ENV_FILEPATH, "utf-8")
|
|
21
|
+
.split("\n")
|
|
22
|
+
.forEach((line) => {
|
|
23
|
+
// remove from missingEnv if it's there
|
|
24
|
+
const varName = line.split("=")[0];
|
|
25
|
+
const index = missingEnv.indexOf(varName);
|
|
26
|
+
if (index !== -1) {
|
|
27
|
+
missingEnv.splice(index, 1);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
} else {
|
|
31
|
+
fs.writeFileSync(ENV_FILEPATH, "");
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// append the remaining environments
|
|
35
|
+
if (missingEnv.length > 0) {
|
|
36
|
+
const newEnvLines = missingEnv.map((varName) => {
|
|
37
|
+
return `${varName}="PLACEHOLDER"`;
|
|
38
|
+
});
|
|
39
|
+
newEnvLines.push(""); // final line empty
|
|
40
|
+
fs.appendFileSync(ENV_FILEPATH, newEnvLines.join("\n"));
|
|
41
|
+
}
|
|
42
|
+
console.info("Finished environment variable checks");
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
setupDefaultEnvironmentVariable();
|