@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
package/dist/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LineBehaviorNode } from "../../line_core/LineBehaviorNode";
|
|
2
|
+
import type { LineNodeArguments } from "../../line_core/LineNodeArguments";
|
|
3
|
+
import type { LineBehaviorResult } from "../../line_core/LineBehaviorResult";
|
|
4
|
+
import { SetVariableNode } from "../SetVariableNode";
|
|
5
|
+
export declare class JumpCommand implements LineBehaviorNode {
|
|
6
|
+
setVariableNode: SetVariableNode;
|
|
7
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult;
|
|
8
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BehaviorStatus } from "../../core/BehaviorStatus";
|
|
2
|
+
import { SetVariableNode } from "../SetVariableNode";
|
|
3
|
+
import { dialogManager } from "../../../DialogManagerStore";
|
|
4
|
+
import { btreeUtils } from "../../core/BTreeUtils";
|
|
5
|
+
export class JumpCommand {
|
|
6
|
+
setVariableNode = new SetVariableNode();
|
|
7
|
+
process(nodeArgs) {
|
|
8
|
+
if (!nodeArgs.line.startsWith("<<jump")) {
|
|
9
|
+
return {
|
|
10
|
+
renderedLine: "",
|
|
11
|
+
nextState: nodeArgs.initState,
|
|
12
|
+
status: BehaviorStatus.Failure
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (nodeArgs.initState.ignoreJumps) {
|
|
16
|
+
return {
|
|
17
|
+
nextState: nodeArgs.initState,
|
|
18
|
+
renderedLine: "",
|
|
19
|
+
status: BehaviorStatus.Success
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const choiceName = nodeArgs.line
|
|
23
|
+
.slice("<<jump ".length, nodeArgs.line.length - ">>".length)
|
|
24
|
+
.replace(/^\{/, "") // remove possible " at the start: https://stackoverflow.com/a/2182602
|
|
25
|
+
.replace(/}$/, ""); // remove possible " at the end: https://stackoverflow.com/a/12249011;
|
|
26
|
+
const dialogChoice = dialogManager.dialogMessageMap.get(btreeUtils.simplifyToken(choiceName));
|
|
27
|
+
if (dialogChoice !== undefined) {
|
|
28
|
+
// force choice
|
|
29
|
+
dialogManager.setDialogChoice(dialogChoice);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.error(`Unknown jump node at line ${nodeArgs.lineIndex + 1}: ${choiceName} or ${btreeUtils.simplifyToken(choiceName)}`);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
nextState: nodeArgs.initState,
|
|
36
|
+
renderedLine: "",
|
|
37
|
+
status: BehaviorStatus.Success
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LineBehaviorNode } from "../../line_core/LineBehaviorNode";
|
|
2
|
+
import type { LineNodeArguments } from "../../line_core/LineNodeArguments";
|
|
3
|
+
import type { LineBehaviorResult } from "../../line_core/LineBehaviorResult";
|
|
4
|
+
/**
|
|
5
|
+
* Unvisits a node
|
|
6
|
+
*/
|
|
7
|
+
export declare class UnvisitCommand implements LineBehaviorNode {
|
|
8
|
+
process(nodeArgs: LineNodeArguments): LineBehaviorResult;
|
|
9
|
+
}
|
package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BehaviorStatus } from "../../core/BehaviorStatus";
|
|
2
|
+
import { dialogVariableStore } from "../../../DialogManagerStore";
|
|
3
|
+
import { browser } from "$app/environment";
|
|
4
|
+
/**
|
|
5
|
+
* Unvisits a node
|
|
6
|
+
*/
|
|
7
|
+
export class UnvisitCommand {
|
|
8
|
+
process(nodeArgs) {
|
|
9
|
+
if (!nodeArgs.line.startsWith("<<unvisit") || !browser) {
|
|
10
|
+
return {
|
|
11
|
+
renderedLine: "",
|
|
12
|
+
nextState: nodeArgs.initState,
|
|
13
|
+
status: BehaviorStatus.Failure
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const nodeName = nodeArgs.line
|
|
17
|
+
.slice("<<unvisit ".length, nodeArgs.line.length - ">>".length)
|
|
18
|
+
.replace(/^\{/, "") // remove possible " at the start: https://stackoverflow.com/a/2182602
|
|
19
|
+
.replace(/}$/, ""); // remove possible " at the end: https://stackoverflow.com/a/12249011;
|
|
20
|
+
const key = `+${nodeName}`;
|
|
21
|
+
dialogVariableStore.removeItem(key);
|
|
22
|
+
return {
|
|
23
|
+
nextState: nodeArgs.initState,
|
|
24
|
+
renderedLine: "",
|
|
25
|
+
status: BehaviorStatus.Success
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as PineappleLayoutBase } from "./components/PineappleBaseLayout.svelte";
|
|
2
|
+
export { default as LazyAsset } from "./components/LazyAsset.svelte";
|
|
3
|
+
export * from "./components/dialog_manager/DialogManagerStore";
|
|
4
|
+
export * from "./components/dialog_manager/DialogManager";
|
|
5
|
+
export * from "./components/dialog_manager/DialogUtils";
|
|
6
|
+
export * from "./types/pineapple_fiber/PortraitType";
|
|
7
|
+
export * from "./types/pineapple_fiber/DialogDetail";
|
|
8
|
+
export * from "./util/stable_random";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as PineappleLayoutBase } from "./components/PineappleBaseLayout.svelte";
|
|
2
|
+
export { default as LazyAsset } from "./components/LazyAsset.svelte";
|
|
3
|
+
export * from "./components/dialog_manager/DialogManagerStore";
|
|
4
|
+
export * from "./components/dialog_manager/DialogManager";
|
|
5
|
+
export * from "./components/dialog_manager/DialogUtils";
|
|
6
|
+
export * from "./types/pineapple_fiber/PortraitType";
|
|
7
|
+
export * from "./types/pineapple_fiber/DialogDetail";
|
|
8
|
+
export * from "./util/stable_random";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
const setupDefaultEnvironmentVariable = () => {
|
|
3
|
+
console.info("Running environment variable checks");
|
|
4
|
+
const REQUIRED_ENV = [
|
|
5
|
+
"PUBLIC_CRINGE_USERNAME",
|
|
6
|
+
"PUBLIC_TWEET1",
|
|
7
|
+
"PUBLIC_TWEET2",
|
|
8
|
+
"PUBLIC_TUMBLR",
|
|
9
|
+
"PUBLIC_TWITTER_ID"
|
|
10
|
+
];
|
|
11
|
+
const ENV_FILEPATH = "./.env";
|
|
12
|
+
const missingEnv = [...REQUIRED_ENV];
|
|
13
|
+
// check if file exists
|
|
14
|
+
const exists = fs.existsSync(ENV_FILEPATH);
|
|
15
|
+
// iterate on every line to make sure every variable exists
|
|
16
|
+
if (exists) {
|
|
17
|
+
fs.readFileSync(ENV_FILEPATH, "utf-8")
|
|
18
|
+
.split("\n")
|
|
19
|
+
.forEach((line) => {
|
|
20
|
+
// remove from missingEnv if it's there
|
|
21
|
+
const varName = line.split("=")[0];
|
|
22
|
+
const index = missingEnv.indexOf(varName);
|
|
23
|
+
if (index !== -1) {
|
|
24
|
+
missingEnv.splice(index, 1);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
fs.writeFileSync(ENV_FILEPATH, "");
|
|
30
|
+
}
|
|
31
|
+
// append the remaining environments
|
|
32
|
+
if (missingEnv.length > 0) {
|
|
33
|
+
const newEnvLines = missingEnv.map((varName) => {
|
|
34
|
+
return `${varName}="PLACEHOLDER"`;
|
|
35
|
+
});
|
|
36
|
+
newEnvLines.push(""); // final line empty
|
|
37
|
+
fs.appendFileSync(ENV_FILEPATH, newEnvLines.join("\n"));
|
|
38
|
+
}
|
|
39
|
+
console.info("Finished environment variable checks");
|
|
40
|
+
};
|
|
41
|
+
setupDefaultEnvironmentVariable();
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pineapple Fiber
|
|
3
|
+
*
|
|
4
|
+
* A script that generates Typescript files from Yarn where the choices are embedded on
|
|
5
|
+
* the dialogue itself
|
|
6
|
+
*
|
|
7
|
+
* npx vite-node src/lib/scripts/pineapple_fiber/PineappleWeaver.ts
|
|
8
|
+
*/
|
|
9
|
+
import { getAllFiles } from "../util/FileManagement";
|
|
10
|
+
import fs, { readFileSync } from "fs";
|
|
11
|
+
import { PortraitType } from "../../types/pineapple_fiber/PortraitType";
|
|
12
|
+
const shouldDebug = false;
|
|
13
|
+
const pineappleWeaverRun = () => {
|
|
14
|
+
console.info("Starting Pineapple Weaver.");
|
|
15
|
+
const BASE_PATH = "./src/routes";
|
|
16
|
+
getAllFiles(BASE_PATH, (path) => {
|
|
17
|
+
return path.split(".").pop() === "yarn";
|
|
18
|
+
}).map((filePath) => {
|
|
19
|
+
console.info(`Converting: ${filePath}`);
|
|
20
|
+
const fileContent = readFileSync(filePath, "utf-8");
|
|
21
|
+
const dialogDetailList = [];
|
|
22
|
+
fileContent.split("===").map((unparsedNode) => {
|
|
23
|
+
// todo: detect empty nodes
|
|
24
|
+
// todo: improve the code readability
|
|
25
|
+
if (unparsedNode.trim() === "") {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const dialogDetails = {
|
|
29
|
+
// todo: dissect the line below and give comments because it is complex
|
|
30
|
+
dialogId: unparsedNode
|
|
31
|
+
.slice(unparsedNode.indexOf("title: "))
|
|
32
|
+
.split("\n")[0]
|
|
33
|
+
.split(" ")
|
|
34
|
+
.pop()
|
|
35
|
+
?.trim(),
|
|
36
|
+
portraitType: PortraitType.AresNeutral,
|
|
37
|
+
textContent: "" // will be filled later below
|
|
38
|
+
};
|
|
39
|
+
let portraitUnset = true;
|
|
40
|
+
// parse the PineappleFiber metatags
|
|
41
|
+
const unparsedBody = unparsedNode.split("---").pop().trim();
|
|
42
|
+
const bodyList = unparsedBody.split("\n");
|
|
43
|
+
let contentIndexStart = 0;
|
|
44
|
+
for (let index = 0; index < bodyList.length; index++) {
|
|
45
|
+
const possibleTagPair = bodyList[index].split(": ");
|
|
46
|
+
const possibleTagName = possibleTagPair[0].toLowerCase();
|
|
47
|
+
if (!["portrait"].includes(possibleTagName)) {
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
contentIndexStart = index + 1; // increase count for each viable tah
|
|
51
|
+
switch (possibleTagName) {
|
|
52
|
+
case "portrait":
|
|
53
|
+
portraitUnset = false;
|
|
54
|
+
// todo: implement a way to match the appropriate portrait based on the metatag
|
|
55
|
+
// from https://stackoverflow.com/a/17381004/17836168
|
|
56
|
+
dialogDetails.portraitType =
|
|
57
|
+
PortraitType[possibleTagPair[1].trim()];
|
|
58
|
+
if (shouldDebug) {
|
|
59
|
+
console.log("Portrait detected:", possibleTagPair[1], " => ", dialogDetails.portraitType);
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// portrait check
|
|
65
|
+
if (portraitUnset) {
|
|
66
|
+
console.warn(`Portrait missing for node: ${dialogDetails.dialogId}`);
|
|
67
|
+
dialogDetails.portraitType = PortraitType.AresNeutral;
|
|
68
|
+
}
|
|
69
|
+
// remove the metatags from the body
|
|
70
|
+
const unprocessedContent = bodyList.slice(contentIndexStart).join("\n");
|
|
71
|
+
const contentPair = unprocessedContent.split("<ChoiceBreak>");
|
|
72
|
+
if (contentPair.length === 2) {
|
|
73
|
+
// parse for the choice names in the options
|
|
74
|
+
let ChoiceParsingState;
|
|
75
|
+
(function (ChoiceParsingState) {
|
|
76
|
+
ChoiceParsingState[ChoiceParsingState["Free"] = 0] = "Free";
|
|
77
|
+
ChoiceParsingState[ChoiceParsingState["Line"] = 1] = "Line"; // previously detected an option, will try to detect for the next option
|
|
78
|
+
})(ChoiceParsingState || (ChoiceParsingState = {}));
|
|
79
|
+
let parsingState = ChoiceParsingState.Free;
|
|
80
|
+
const currentChoiceDetail = { jumpNode: "", name: "" };
|
|
81
|
+
const choiceList = [];
|
|
82
|
+
let shouldSkipChoices = false;
|
|
83
|
+
const checkChoiceForSave = () => {
|
|
84
|
+
if (currentChoiceDetail.name !== "") {
|
|
85
|
+
choiceList.push({
|
|
86
|
+
name: currentChoiceDetail.name,
|
|
87
|
+
jumpNode: currentChoiceDetail.jumpNode
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
contentPair[1]
|
|
92
|
+
.trim()
|
|
93
|
+
.split("\n")
|
|
94
|
+
.filter((line) => {
|
|
95
|
+
const trimmedLine = line.trim();
|
|
96
|
+
if (shouldSkipChoices) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
if (trimmedLine.startsWith("// ignore the rest")) {
|
|
100
|
+
shouldSkipChoices = true;
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
})
|
|
105
|
+
.map((line) => {
|
|
106
|
+
const trimmedLine = line.trim();
|
|
107
|
+
switch (parsingState) {
|
|
108
|
+
case ChoiceParsingState.Free:
|
|
109
|
+
if (trimmedLine.startsWith("->")) {
|
|
110
|
+
// save previous choice
|
|
111
|
+
checkChoiceForSave();
|
|
112
|
+
// write start of new choice
|
|
113
|
+
currentChoiceDetail.name = trimmedLine.split(" ").pop();
|
|
114
|
+
parsingState = ChoiceParsingState.Line;
|
|
115
|
+
}
|
|
116
|
+
break;
|
|
117
|
+
case ChoiceParsingState.Line:
|
|
118
|
+
if (trimmedLine.startsWith("<<jump")) {
|
|
119
|
+
const jumpNode = trimmedLine.split(" ").pop();
|
|
120
|
+
currentChoiceDetail.jumpNode = jumpNode.slice(0, jumpNode.length - 2); // remove ">>"
|
|
121
|
+
parsingState = ChoiceParsingState.Free;
|
|
122
|
+
}
|
|
123
|
+
break;
|
|
124
|
+
default:
|
|
125
|
+
console.error(`Unimplemented parsing state: ${parsingState}`);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
checkChoiceForSave();
|
|
130
|
+
dialogDetails.textContent = contentPair[0];
|
|
131
|
+
// handle choice start tags to a href
|
|
132
|
+
choiceList.forEach((choiceDetail) => {
|
|
133
|
+
const keyword = `<choice ${choiceDetail.name}>`;
|
|
134
|
+
while (dialogDetails.textContent.includes(keyword)) {
|
|
135
|
+
dialogDetails.textContent = dialogDetails.textContent.replace(keyword, `<a class="choice-${choiceDetail.jumpNode} dialog-choice" title="Click to continue the dialog">`);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
const externalKeyword = "<a href=";
|
|
139
|
+
while (dialogDetails.textContent.includes(externalKeyword)) {
|
|
140
|
+
dialogDetails.textContent = dialogDetails.textContent.replace(externalKeyword, '<a target="_blank" class="external-link" href='); // make all external tags with a custom cursor
|
|
141
|
+
}
|
|
142
|
+
const choiceEndKeyword = "</choice>";
|
|
143
|
+
while (dialogDetails.textContent.includes(choiceEndKeyword)) {
|
|
144
|
+
dialogDetails.textContent = dialogDetails.textContent.replace(choiceEndKeyword, "</a>"); // convert all choice end tags to a tags
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
// assume only one which indicates it's choiceless
|
|
149
|
+
dialogDetails.textContent = unprocessedContent;
|
|
150
|
+
}
|
|
151
|
+
dialogDetailList.push(dialogDetails);
|
|
152
|
+
});
|
|
153
|
+
const dialogDetailToString = (detail) => {
|
|
154
|
+
if (detail.portraitType === undefined) {
|
|
155
|
+
detail.portraitType = PortraitType.AresNeutral;
|
|
156
|
+
console.error(`Missing portrait at dialog: ${detail.dialogId}`);
|
|
157
|
+
console.error(`It contains: ${detail.textContent}`);
|
|
158
|
+
}
|
|
159
|
+
return ` {
|
|
160
|
+
dialogId: "${detail.dialogId}",
|
|
161
|
+
portraitType: PortraitType.${detail.portraitType.toString()},
|
|
162
|
+
textContent: \`${detail.textContent}\`
|
|
163
|
+
},`;
|
|
164
|
+
};
|
|
165
|
+
const dialogDetailListToString = (detailList) => {
|
|
166
|
+
return detailList
|
|
167
|
+
.map((detail) => {
|
|
168
|
+
return dialogDetailToString(detail);
|
|
169
|
+
})
|
|
170
|
+
.join("\n");
|
|
171
|
+
};
|
|
172
|
+
// generate file
|
|
173
|
+
const filePathList = filePath.split(".");
|
|
174
|
+
const fileName = filePathList[filePathList.length - 2].split("/").pop();
|
|
175
|
+
const template = `// this file was generated by PineappleWeaver.ts
|
|
176
|
+
// do not edit!
|
|
177
|
+
|
|
178
|
+
import type { DialogDetail } from "@turnipxenon/pineapple";
|
|
179
|
+
import { dialogManager, PortraitType } from "@turnipxenon/pineapple";
|
|
180
|
+
|
|
181
|
+
class _${fileName}Yarn {
|
|
182
|
+
dialogList: DialogDetail[] = [
|
|
183
|
+
${dialogDetailListToString(dialogDetailList)}
|
|
184
|
+
];
|
|
185
|
+
|
|
186
|
+
/* Remember to call DialogManager.subscribeToSetDialogChoice before calling this in Svelte */
|
|
187
|
+
setDialogTree = () => {
|
|
188
|
+
dialogManager.setDialogTree(this.dialogList);
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export const ${fileName}Yarn = new _${fileName}Yarn();
|
|
193
|
+
`;
|
|
194
|
+
const filePathSplit = filePath.split(".");
|
|
195
|
+
filePathSplit.pop();
|
|
196
|
+
const generatedPath = `${filePathSplit.join(".")}Yarn.ts`;
|
|
197
|
+
fs.writeFileSync(generatedPath, template);
|
|
198
|
+
});
|
|
199
|
+
console.info("Finish converting all yarn files!");
|
|
200
|
+
};
|
|
201
|
+
pineappleWeaverRun();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const getDirectories: (path: string) => string[];
|
|
2
|
+
/**
|
|
3
|
+
* Get all files underneath a path. The results can be filtered!
|
|
4
|
+
* @param path: path where to start finding all files underneath
|
|
5
|
+
* @param filter?: optional path filter
|
|
6
|
+
*/
|
|
7
|
+
export declare const getAllFiles: (path: string, filter?: ((path: string) => boolean) | undefined) => string[];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
// from https://stackoverflow.com/a/26832802
|
|
3
|
+
export const getDirectories = (path) => {
|
|
4
|
+
return fs
|
|
5
|
+
.readdirSync(path)
|
|
6
|
+
.filter(function (file) {
|
|
7
|
+
return fs.statSync(path + "/" + file).isDirectory();
|
|
8
|
+
})
|
|
9
|
+
.map((value) => {
|
|
10
|
+
return path + "/" + value;
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Get all files underneath a path. The results can be filtered!
|
|
15
|
+
* @param path: path where to start finding all files underneath
|
|
16
|
+
* @param filter?: optional path filter
|
|
17
|
+
*/
|
|
18
|
+
export const getAllFiles = (path, filter) => {
|
|
19
|
+
const contentList = fs.readdirSync(path);
|
|
20
|
+
const fileList = [];
|
|
21
|
+
contentList.forEach((content) => {
|
|
22
|
+
const contentName = path + "/" + content;
|
|
23
|
+
const stat = fs.statSync(contentName);
|
|
24
|
+
if (stat.isDirectory()) {
|
|
25
|
+
fileList.push(...getAllFiles(contentName, filter));
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// takes advantage of lazy evaluation
|
|
29
|
+
if (filter === undefined || filter(contentName)) {
|
|
30
|
+
fileList.push(contentName);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return fileList;
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const runAll: () => void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getAllFiles } from "./FileManagement";
|
|
2
|
+
import { readFileSync } from "fs";
|
|
3
|
+
/**
|
|
4
|
+
* checks for manual dialog tree sets in all files except for *Yarn.ts and DialogManager.ts
|
|
5
|
+
*/
|
|
6
|
+
const checkManualDialogSet = () => {
|
|
7
|
+
// todo:
|
|
8
|
+
const BASE_PATH = "./src/routes";
|
|
9
|
+
getAllFiles(BASE_PATH, (path) => {
|
|
10
|
+
// from: https://stackoverflow.com/a/424006/17836168
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
const filename = path.split("\\").pop().split("/").pop();
|
|
14
|
+
const isNonYarn = !filename.endsWith("Yarn.ts");
|
|
15
|
+
// takes advantage of lazy evaluation
|
|
16
|
+
// is non-yarn and is not exempted
|
|
17
|
+
return isNonYarn && !["DialogManager.ts"].includes(filename);
|
|
18
|
+
}).map((filePath) => {
|
|
19
|
+
// todo:
|
|
20
|
+
const fileContent = readFileSync(filePath, "utf-8");
|
|
21
|
+
if (fileContent.includes("dialogManager.setDialogTree")) {
|
|
22
|
+
console.warn(`Warning! Manual dialog tree set found in path: ${filePath}`);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
export const runAll = () => {
|
|
27
|
+
checkManualDialogSet();
|
|
28
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="svelte" />
|
|
2
|
+
/**
|
|
3
|
+
* Enables background in main layout
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* When updating to false, remember to restore the value to true, our default value, onDestroy.
|
|
7
|
+
* Avoid async to prevent weird flashes of updates!
|
|
8
|
+
* ```
|
|
9
|
+
* import {enableBackground} from "./store.ts";
|
|
10
|
+
* enableBackground.update(() => false);
|
|
11
|
+
*
|
|
12
|
+
* onDestroy(() => {
|
|
13
|
+
* enableBackground.update(() => true);
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const enableBackground: import("svelte/store").Writable<boolean>;
|
package/dist/store.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { writable } from "svelte/store";
|
|
2
|
+
/**
|
|
3
|
+
* Enables background in main layout
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* When updating to false, remember to restore the value to true, our default value, onDestroy.
|
|
7
|
+
* Avoid async to prevent weird flashes of updates!
|
|
8
|
+
* ```
|
|
9
|
+
* import {enableBackground} from "./store.ts";
|
|
10
|
+
* enableBackground.update(() => false);
|
|
11
|
+
*
|
|
12
|
+
* onDestroy(() => {
|
|
13
|
+
* enableBackground.update(() => true);
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export const enableBackground = writable(true);
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
.default-grid-container-title-card {
|
|
2
|
+
max-width: calc(var(--default-card-max-width) + 32rem) !important;
|
|
3
|
+
width: 100%;
|
|
4
|
+
padding: 2rem !important;
|
|
5
|
+
text-align: center !important;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.default-grid-container {
|
|
9
|
+
width: 100%;
|
|
10
|
+
max-width: calc(var(--default-card-max-width) + 32rem);
|
|
11
|
+
padding-top: 4rem;
|
|
12
|
+
display: flex;
|
|
13
|
+
flex-wrap: wrap;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
align-items: flex-start;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.default-grid-container > .card,
|
|
19
|
+
.default-grid-container > .lite-wrapper {
|
|
20
|
+
width: 22rem;
|
|
21
|
+
margin: clamp(0vw, 1vw, 1.5rem);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.default-grid-container div h3 {
|
|
25
|
+
margin: 0.5em;
|
|
26
|
+
text-align: center;
|
|
27
|
+
font-weight: bold;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.default-grid-container video {
|
|
31
|
+
padding: var(--theme-border-base);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.default-grid-container img {
|
|
35
|
+
padding: var(--theme-border-base);
|
|
36
|
+
width: 100%;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.links {
|
|
40
|
+
width: 100%;
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-wrap: wrap;
|
|
43
|
+
justify-content: center;
|
|
44
|
+
align-items: center;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.card.tx-badge {
|
|
48
|
+
object-fit: scale-down;
|
|
49
|
+
padding: 0.5rem;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
img.tx-badge,
|
|
53
|
+
.card.tx-badge {
|
|
54
|
+
max-height: 5rem;
|
|
55
|
+
max-width: 6rem;
|
|
56
|
+
margin: 1rem;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.twitter-wrapper {
|
|
60
|
+
padding: 1rem;
|
|
61
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/* =~= Theme Properties =~= */
|
|
3
|
+
--theme-font-family-base: system-ui;
|
|
4
|
+
--theme-font-family-heading: system-ui;
|
|
5
|
+
--theme-font-color-base: var(--color-text-500);
|
|
6
|
+
--theme-font-color-dark: var(--color-text-900);
|
|
7
|
+
--theme-rounded-base: 24px;
|
|
8
|
+
--theme-rounded-container: 16px;
|
|
9
|
+
--theme-border-base: 2px;
|
|
10
|
+
/* =~= Theme On-X Colors =~= */
|
|
11
|
+
--on-primary: var(--color-text-900);
|
|
12
|
+
--on-secondary: var(--color-surface-500);
|
|
13
|
+
--on-tertiary: var(--color-text-900);
|
|
14
|
+
--on-success: var(--color-text-900);
|
|
15
|
+
--on-warning: var(--color-text-900);
|
|
16
|
+
--on-error: var(--color-surface-500);
|
|
17
|
+
--on-surface: var(--color-text-900);
|
|
18
|
+
/* =~= Theme Colors =~= */
|
|
19
|
+
/* primary | #b9a26e */
|
|
20
|
+
--color-primary-50: 245 241 233; /* ⬅ #f5f1e9 */
|
|
21
|
+
--color-primary-100: 241 236 226; /* ⬅ #f1ece2 */
|
|
22
|
+
--color-primary-200: 238 232 219; /* ⬅ #eee8db */
|
|
23
|
+
--color-primary-300: 227 218 197; /* ⬅ #e3dac5 */
|
|
24
|
+
--color-primary-400: 206 190 154; /* ⬅ #cebe9a */
|
|
25
|
+
--color-primary-500: 185 162 110; /* ⬅ #b9a26e */
|
|
26
|
+
--color-primary-600: 167 146 99; /* ⬅ #a79263 */
|
|
27
|
+
--color-primary-700: 139 122 83; /* ⬅ #8b7a53 */
|
|
28
|
+
--color-primary-800: 111 97 66; /* ⬅ #6f6142 */
|
|
29
|
+
--color-primary-900: 91 79 54; /* ⬅ #5b4f36 */
|
|
30
|
+
/* secondary | #b55639 */
|
|
31
|
+
--color-secondary-50: 244 230 225; /* ⬅ #f4e6e1 */
|
|
32
|
+
--color-secondary-100: 240 221 215; /* ⬅ #f0ddd7 */
|
|
33
|
+
--color-secondary-200: 237 213 206; /* ⬅ #edd5ce */
|
|
34
|
+
--color-secondary-300: 225 187 176; /* ⬅ #e1bbb0 */
|
|
35
|
+
--color-secondary-400: 203 137 116; /* ⬅ #cb8974 */
|
|
36
|
+
--color-secondary-500: 181 86 57; /* ⬅ #b55639 */
|
|
37
|
+
--color-secondary-600: 163 77 51; /* ⬅ #a34d33 */
|
|
38
|
+
--color-secondary-700: 136 65 43; /* ⬅ #88412b */
|
|
39
|
+
--color-secondary-800: 109 52 34; /* ⬅ #6d3422 */
|
|
40
|
+
--color-secondary-900: 89 42 28; /* ⬅ #592a1c */
|
|
41
|
+
/* tertiary | #cd7949 */
|
|
42
|
+
--color-tertiary-50: 248 235 228; /* ⬅ #f8ebe4 */
|
|
43
|
+
--color-tertiary-100: 245 228 219; /* ⬅ #f5e4db */
|
|
44
|
+
--color-tertiary-200: 243 222 210; /* ⬅ #f3ded2 */
|
|
45
|
+
--color-tertiary-300: 235 201 182; /* ⬅ #ebc9b6 */
|
|
46
|
+
--color-tertiary-400: 220 161 128; /* ⬅ #dca180 */
|
|
47
|
+
--color-tertiary-500: 205 121 73; /* ⬅ #cd7949 */
|
|
48
|
+
--color-tertiary-600: 185 109 66; /* ⬅ #b96d42 */
|
|
49
|
+
--color-tertiary-700: 154 91 55; /* ⬅ #9a5b37 */
|
|
50
|
+
--color-tertiary-800: 123 73 44; /* ⬅ #7b492c */
|
|
51
|
+
--color-tertiary-900: 100 59 36; /* ⬅ #643b24 */
|
|
52
|
+
/* success | #7cab36 */
|
|
53
|
+
--color-success-50: 235 242 225; /* ⬅ #ebf2e1 */
|
|
54
|
+
--color-success-100: 229 238 215; /* ⬅ #e5eed7 */
|
|
55
|
+
--color-success-200: 222 234 205; /* ⬅ #deeacd */
|
|
56
|
+
--color-success-300: 203 221 175; /* ⬅ #cbddaf */
|
|
57
|
+
--color-success-400: 163 196 114; /* ⬅ #a3c472 */
|
|
58
|
+
--color-success-500: 124 171 54; /* ⬅ #7cab36 */
|
|
59
|
+
--color-success-600: 112 154 49; /* ⬅ #709a31 */
|
|
60
|
+
--color-success-700: 93 128 41; /* ⬅ #5d8029 */
|
|
61
|
+
--color-success-800: 74 103 32; /* ⬅ #4a6720 */
|
|
62
|
+
--color-success-900: 61 84 26; /* ⬅ #3d541a */
|
|
63
|
+
/* warning | #b8993a */
|
|
64
|
+
--color-warning-50: 244 240 225; /* ⬅ #f4f0e1 */
|
|
65
|
+
--color-warning-100: 241 235 216; /* ⬅ #f1ebd8 */
|
|
66
|
+
--color-warning-200: 237 230 206; /* ⬅ #ede6ce */
|
|
67
|
+
--color-warning-300: 227 214 176; /* ⬅ #e3d6b0 */
|
|
68
|
+
--color-warning-400: 205 184 117; /* ⬅ #cdb875 */
|
|
69
|
+
--color-warning-500: 184 153 58; /* ⬅ #b8993a */
|
|
70
|
+
--color-warning-600: 166 138 52; /* ⬅ #a68a34 */
|
|
71
|
+
--color-warning-700: 138 115 44; /* ⬅ #8a732c */
|
|
72
|
+
--color-warning-800: 110 92 35; /* ⬅ #6e5c23 */
|
|
73
|
+
--color-warning-900: 90 75 28; /* ⬅ #5a4b1c */
|
|
74
|
+
/* error | #b53977 */
|
|
75
|
+
--color-error-50: 244 225 235; /* ⬅ #f4e1eb */
|
|
76
|
+
--color-error-100: 240 215 228; /* ⬅ #f0d7e4 */
|
|
77
|
+
--color-error-200: 237 206 221; /* ⬅ #edcedd */
|
|
78
|
+
--color-error-300: 225 176 201; /* ⬅ #e1b0c9 */
|
|
79
|
+
--color-error-400: 203 116 160; /* ⬅ #cb74a0 */
|
|
80
|
+
--color-error-500: 181 57 119; /* ⬅ #b53977 */
|
|
81
|
+
--color-error-600: 163 51 107; /* ⬅ #a3336b */
|
|
82
|
+
--color-error-700: 136 43 89; /* ⬅ #882b59 */
|
|
83
|
+
--color-error-800: 109 34 71; /* ⬅ #6d2247 */
|
|
84
|
+
--color-error-900: 89 28 58; /* ⬅ #591c3a */
|
|
85
|
+
/* surface | #fff7e3 */
|
|
86
|
+
--color-surface-50: 255 254 251; /* ⬅ #fffefb */
|
|
87
|
+
--color-surface-100: 255 253 249; /* ⬅ #fffdf9 */
|
|
88
|
+
--color-surface-200: 255 253 248; /* ⬅ #fffdf8 */
|
|
89
|
+
--color-surface-300: 255 252 244; /* ⬅ #fffcf4 */
|
|
90
|
+
--color-surface-400: 255 249 235; /* ⬅ #fff9eb */
|
|
91
|
+
--color-surface-500: 255 247 227; /* ⬅ #fff7e3 */
|
|
92
|
+
--color-surface-600: 230 222 204; /* ⬅ #e6decc */
|
|
93
|
+
--color-surface-700: 191 185 170; /* ⬅ #bfb9aa */
|
|
94
|
+
--color-surface-800: 153 148 136; /* ⬅ #999488 */
|
|
95
|
+
--color-surface-900: 125 121 111; /* ⬅ #7d796f */
|
|
96
|
+
/* text color | #3f312f */
|
|
97
|
+
--color-text-50: 226 224 224; /* ⬅ #e2e0e0 */
|
|
98
|
+
--color-text-100: 217 214 213; /* ⬅ #d9d6d5 */
|
|
99
|
+
--color-text-200: 207 204 203; /* ⬅ #cfcccb */
|
|
100
|
+
--color-text-300: 178 173 172; /* ⬅ #b2adac */
|
|
101
|
+
--color-text-400: 121 111 109; /* ⬅ #796f6d */
|
|
102
|
+
--color-text-500: 63 49 47; /* ⬅ #3f312f */
|
|
103
|
+
--color-text-600: 57 44 42; /* ⬅ #392c2a */
|
|
104
|
+
--color-text-700: 47 37 35; /* ⬅ #2f2523 */
|
|
105
|
+
--color-text-800: 38 29 28; /* ⬅ #261d1c */
|
|
106
|
+
--color-text-900: 31 24 23; /* ⬅ #1f1817 */
|
|
107
|
+
}
|