@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.
Files changed (322) hide show
  1. package/README.md +38 -0
  2. package/dist/app.postcss +94 -0
  3. package/dist/assets/bg_tiled/bg_tiled_ares.png +0 -0
  4. package/dist/assets/bg_tiled/bg_tiled_corn.png +0 -0
  5. package/dist/assets/bg_tiled/bg_tiled_pineapple.png +0 -0
  6. package/dist/assets/bg_tiled/bg_tiled_reinhard.png +0 -0
  7. package/dist/assets/bg_tiled/bg_tiled_tomato.png +0 -0
  8. package/dist/assets/bg_tiled/bg_tiled_turnip.png +0 -0
  9. package/dist/assets/characters/ares/ares_blushing.webp +0 -0
  10. package/dist/assets/characters/ares/ares_disappointed.webp +0 -0
  11. package/dist/assets/characters/ares/ares_happy.webp +0 -0
  12. package/dist/assets/characters/ares/ares_lets_go.webp +0 -0
  13. package/dist/assets/characters/ares/ares_logo.webp +0 -0
  14. package/dist/assets/characters/ares/ares_mad.webp +0 -0
  15. package/dist/assets/characters/ares/ares_neutral.webp +0 -0
  16. package/dist/assets/characters/ares/ares_slightly_mad.webp +0 -0
  17. package/dist/assets/characters/ares/ares_surprised.webp +0 -0
  18. package/dist/assets/characters/ares/ares_yay.webp +0 -0
  19. package/dist/assets/game_dev/footage-chef-wings.gif +0 -0
  20. package/dist/assets/game_dev/footage-depreciation.webm +0 -0
  21. package/dist/assets/game_dev/footage-thinking-of-flowers.webm +0 -0
  22. package/dist/assets/game_dev/screenshot-game-jam-mama.png +0 -0
  23. package/dist/assets/game_dev/screenshot-string-hop.png +0 -0
  24. package/dist/assets/game_dev/screenshot-wet-ass-road.png +0 -0
  25. package/dist/assets/icons/chat_cursor.svg +47 -0
  26. package/dist/assets/icons/external_link.svg +50 -0
  27. package/dist/assets/temp/background-image.jpg +0 -0
  28. package/dist/assets/temp/bitbucket-logo.png +0 -0
  29. package/dist/assets/temp/github-logo.png +0 -0
  30. package/dist/assets/temp/header-hep-cat.mp4 +0 -0
  31. package/dist/assets/temp/header-hep-cat.ogg +0 -0
  32. package/dist/assets/temp/header-hep-cat.webm +0 -0
  33. package/dist/assets/temp/header-pengi.mp4 +0 -0
  34. package/dist/assets/temp/header-pengi.webm +0 -0
  35. package/dist/assets/temp/header-soulwork.mp4 +0 -0
  36. package/dist/assets/temp/header-soulwork.ogg +0 -0
  37. package/dist/assets/temp/header-soulwork.webm +0 -0
  38. package/dist/components/DialogOverlay.svelte +93 -0
  39. package/dist/components/DialogOverlay.svelte.d.ts +14 -0
  40. package/dist/components/LazyAsset.svelte +96 -0
  41. package/dist/components/LazyAsset.svelte.d.ts +20 -0
  42. package/dist/components/LazyAssetType.d.ts +10 -0
  43. package/dist/components/LazyAssetType.js +12 -0
  44. package/dist/components/PineappleBaseLayout.svelte +186 -0
  45. package/dist/components/PineappleBaseLayout.svelte.d.ts +19 -0
  46. package/dist/components/RandomizedBackground.svelte +62 -0
  47. package/dist/components/RandomizedBackground.svelte.d.ts +16 -0
  48. package/dist/components/RandomizedImage.svelte +29 -0
  49. package/dist/components/RandomizedImage.svelte.d.ts +17 -0
  50. package/dist/components/dialog_manager/DialogManager.d.ts +77 -0
  51. package/dist/components/dialog_manager/DialogManager.js +239 -0
  52. package/dist/components/dialog_manager/DialogManagerStore.d.ts +41 -0
  53. package/dist/components/dialog_manager/DialogManagerStore.js +45 -0
  54. package/dist/components/dialog_manager/DialogProcessor.d.ts +13 -0
  55. package/dist/components/dialog_manager/DialogProcessor.js +62 -0
  56. package/dist/components/dialog_manager/DialogUtils.d.ts +5 -0
  57. package/dist/components/dialog_manager/DialogUtils.js +8 -0
  58. package/dist/components/dialog_manager/behavior_tree/core/BTreeUtils.d.ts +15 -0
  59. package/dist/components/dialog_manager/behavior_tree/core/BTreeUtils.js +34 -0
  60. package/dist/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.d.ts +4 -0
  61. package/dist/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.js +1 -0
  62. package/dist/components/dialog_manager/behavior_tree/core/BehaviorNode.d.ts +3 -0
  63. package/dist/components/dialog_manager/behavior_tree/core/BehaviorNode.js +1 -0
  64. package/dist/components/dialog_manager/behavior_tree/core/BehaviorStatus.d.ts +5 -0
  65. package/dist/components/dialog_manager/behavior_tree/core/BehaviorStatus.js +6 -0
  66. package/dist/components/dialog_manager/behavior_tree/core/SelectorNode.d.ts +12 -0
  67. package/dist/components/dialog_manager/behavior_tree/core/SelectorNode.js +22 -0
  68. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionArguments.d.ts +5 -0
  69. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionArguments.js +1 -0
  70. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.d.ts +4 -0
  71. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.js +1 -0
  72. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.d.ts +15 -0
  73. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.js +220 -0
  74. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionResult.d.ts +5 -0
  75. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionResult.js +1 -0
  76. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.d.ts +8 -0
  77. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.js +15 -0
  78. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionState.d.ts +3 -0
  79. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionState.js +1 -0
  80. package/dist/components/dialog_manager/behavior_tree/expression/OperandNode.d.ts +10 -0
  81. package/dist/components/dialog_manager/behavior_tree/expression/OperandNode.js +15 -0
  82. package/dist/components/dialog_manager/behavior_tree/expression/OperatorNode.d.ts +11 -0
  83. package/dist/components/dialog_manager/behavior_tree/expression/OperatorNode.js +30 -0
  84. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.d.ts +6 -0
  85. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.js +21 -0
  86. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.d.ts +9 -0
  87. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.js +19 -0
  88. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandMap.d.ts +9 -0
  89. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandMap.js +18 -0
  90. package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.d.ts +15 -0
  91. package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.js +24 -0
  92. package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.d.ts +20 -0
  93. package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.js +32 -0
  94. package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.d.ts +13 -0
  95. package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.js +25 -0
  96. package/dist/components/dialog_manager/behavior_tree/expression/operators/AndOperator.d.ts +7 -0
  97. package/dist/components/dialog_manager/behavior_tree/expression/operators/AndOperator.js +15 -0
  98. package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.d.ts +7 -0
  99. package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.js +14 -0
  100. package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.d.ts +7 -0
  101. package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.js +12 -0
  102. package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.d.ts +7 -0
  103. package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.js +12 -0
  104. package/dist/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.d.ts +7 -0
  105. package/dist/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.js +12 -0
  106. package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.d.ts +7 -0
  107. package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.js +12 -0
  108. package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.d.ts +7 -0
  109. package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.js +12 -0
  110. package/dist/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.d.ts +7 -0
  111. package/dist/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.js +13 -0
  112. package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.d.ts +17 -0
  113. package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.js +32 -0
  114. package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.d.ts +9 -0
  115. package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.js +47 -0
  116. package/dist/components/dialog_manager/behavior_tree/expression/operators/OrOperator.d.ts +7 -0
  117. package/dist/components/dialog_manager/behavior_tree/expression/operators/OrOperator.js +13 -0
  118. package/dist/components/dialog_manager/behavior_tree/expression/operators/XorOperator.d.ts +7 -0
  119. package/dist/components/dialog_manager/behavior_tree/expression/operators/XorOperator.js +17 -0
  120. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.d.ts +7 -0
  121. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.js +14 -0
  122. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.d.ts +7 -0
  123. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.js +14 -0
  124. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.d.ts +7 -0
  125. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.js +12 -0
  126. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.d.ts +7 -0
  127. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.js +14 -0
  128. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.d.ts +7 -0
  129. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.js +14 -0
  130. package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.d.ts +4 -0
  131. package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.js +1 -0
  132. package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.d.ts +6 -0
  133. package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.js +1 -0
  134. package/dist/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.d.ts +6 -0
  135. package/dist/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.js +1 -0
  136. package/dist/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.d.ts +8 -0
  137. package/dist/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.js +15 -0
  138. package/dist/components/dialog_manager/behavior_tree/line_processors/BehaviorState.d.ts +5 -0
  139. package/dist/components/dialog_manager/behavior_tree/line_processors/BehaviorState.js +5 -0
  140. package/dist/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.d.ts +11 -0
  141. package/dist/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.js +53 -0
  142. package/dist/components/dialog_manager/behavior_tree/line_processors/ElseNode.d.ts +11 -0
  143. package/dist/components/dialog_manager/behavior_tree/line_processors/ElseNode.js +49 -0
  144. package/dist/components/dialog_manager/behavior_tree/line_processors/EndIfNode.d.ts +11 -0
  145. package/dist/components/dialog_manager/behavior_tree/line_processors/EndIfNode.js +23 -0
  146. package/dist/components/dialog_manager/behavior_tree/line_processors/IfMode.d.ts +6 -0
  147. package/dist/components/dialog_manager/behavior_tree/line_processors/IfMode.js +8 -0
  148. package/dist/components/dialog_manager/behavior_tree/line_processors/IfNode.d.ts +12 -0
  149. package/dist/components/dialog_manager/behavior_tree/line_processors/IfNode.js +43 -0
  150. package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.d.ts +11 -0
  151. package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.js +25 -0
  152. package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.d.ts +6 -0
  153. package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.js +18 -0
  154. package/dist/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.d.ts +6 -0
  155. package/dist/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.js +17 -0
  156. package/dist/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.d.ts +10 -0
  157. package/dist/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.js +38 -0
  158. package/dist/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.d.ts +11 -0
  159. package/dist/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.js +31 -0
  160. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.d.ts +8 -0
  161. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.js +39 -0
  162. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.d.ts +8 -0
  163. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.js +40 -0
  164. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.d.ts +9 -0
  165. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.js +28 -0
  166. package/dist/index.d.ts +8 -0
  167. package/dist/index.js +8 -0
  168. package/dist/scripts/SetDefaultEnvironment.d.ts +1 -0
  169. package/dist/scripts/SetDefaultEnvironment.js +41 -0
  170. package/dist/scripts/pineapple_fiber/PineappleWeaver.d.ts +9 -0
  171. package/dist/scripts/pineapple_fiber/PineappleWeaver.js +201 -0
  172. package/dist/scripts/util/FileManagement.d.ts +7 -0
  173. package/dist/scripts/util/FileManagement.js +35 -0
  174. package/dist/scripts/util/ManualCheck.d.ts +1 -0
  175. package/dist/scripts/util/ManualCheck.js +28 -0
  176. package/dist/scripts/util/ManualCheckRun.d.ts +1 -0
  177. package/dist/scripts/util/ManualCheckRun.js +6 -0
  178. package/dist/store.d.ts +17 -0
  179. package/dist/store.js +17 -0
  180. package/dist/styles/DefaultGridContainer.css +61 -0
  181. package/dist/theme.postcss +107 -0
  182. package/dist/types/BlogBlurbMeta.d.ts +11 -0
  183. package/dist/types/BlogBlurbMeta.js +16 -0
  184. package/dist/types/BreadcrumbData.d.ts +4 -0
  185. package/dist/types/BreadcrumbData.js +1 -0
  186. package/dist/types/pineapple_fiber/DialogDetail.d.ts +6 -0
  187. package/dist/types/pineapple_fiber/DialogDetail.js +1 -0
  188. package/dist/types/pineapple_fiber/DialogState.d.ts +5 -0
  189. package/dist/types/pineapple_fiber/DialogState.js +6 -0
  190. package/dist/types/pineapple_fiber/DialogVariableStore.d.ts +2 -0
  191. package/dist/types/pineapple_fiber/DialogVariableStore.js +20 -0
  192. package/dist/types/pineapple_fiber/PortraitType.d.ts +11 -0
  193. package/dist/types/pineapple_fiber/PortraitType.js +12 -0
  194. package/dist/util/stable_random.d.ts +2 -0
  195. package/dist/util/stable_random.js +15 -0
  196. package/package.json +67 -0
  197. package/src/app.html +13 -0
  198. package/src/lib/app.postcss +94 -0
  199. package/src/lib/assets/bg_tiled/bg_tiled_ares.png +0 -0
  200. package/src/lib/assets/bg_tiled/bg_tiled_corn.png +0 -0
  201. package/src/lib/assets/bg_tiled/bg_tiled_pineapple.png +0 -0
  202. package/src/lib/assets/bg_tiled/bg_tiled_reinhard.png +0 -0
  203. package/src/lib/assets/bg_tiled/bg_tiled_tomato.png +0 -0
  204. package/src/lib/assets/bg_tiled/bg_tiled_turnip.png +0 -0
  205. package/src/lib/assets/characters/ares/ares_blushing.webp +0 -0
  206. package/src/lib/assets/characters/ares/ares_disappointed.webp +0 -0
  207. package/src/lib/assets/characters/ares/ares_happy.webp +0 -0
  208. package/src/lib/assets/characters/ares/ares_lets_go.webp +0 -0
  209. package/src/lib/assets/characters/ares/ares_logo.webp +0 -0
  210. package/src/lib/assets/characters/ares/ares_mad.webp +0 -0
  211. package/src/lib/assets/characters/ares/ares_neutral.webp +0 -0
  212. package/src/lib/assets/characters/ares/ares_slightly_mad.webp +0 -0
  213. package/src/lib/assets/characters/ares/ares_surprised.webp +0 -0
  214. package/src/lib/assets/characters/ares/ares_yay.webp +0 -0
  215. package/src/lib/assets/game_dev/footage-chef-wings.gif +0 -0
  216. package/src/lib/assets/game_dev/footage-depreciation.webm +0 -0
  217. package/src/lib/assets/game_dev/footage-thinking-of-flowers.webm +0 -0
  218. package/src/lib/assets/game_dev/screenshot-game-jam-mama.png +0 -0
  219. package/src/lib/assets/game_dev/screenshot-string-hop.png +0 -0
  220. package/src/lib/assets/game_dev/screenshot-wet-ass-road.png +0 -0
  221. package/src/lib/assets/icons/chat_cursor.svg +47 -0
  222. package/src/lib/assets/icons/external_link.svg +50 -0
  223. package/src/lib/assets/temp/background-image.jpg +0 -0
  224. package/src/lib/assets/temp/bitbucket-logo.png +0 -0
  225. package/src/lib/assets/temp/github-logo.png +0 -0
  226. package/src/lib/assets/temp/header-hep-cat.mp4 +0 -0
  227. package/src/lib/assets/temp/header-hep-cat.ogg +0 -0
  228. package/src/lib/assets/temp/header-hep-cat.webm +0 -0
  229. package/src/lib/assets/temp/header-pengi.mp4 +0 -0
  230. package/src/lib/assets/temp/header-pengi.webm +0 -0
  231. package/src/lib/assets/temp/header-soulwork.mp4 +0 -0
  232. package/src/lib/assets/temp/header-soulwork.ogg +0 -0
  233. package/src/lib/assets/temp/header-soulwork.webm +0 -0
  234. package/src/lib/components/DialogOverlay.svelte +100 -0
  235. package/src/lib/components/LazyAsset.svelte +114 -0
  236. package/src/lib/components/LazyAssetType.ts +11 -0
  237. package/src/lib/components/PineappleBaseLayout.svelte +165 -0
  238. package/src/lib/components/RandomizedBackground.svelte +77 -0
  239. package/src/lib/components/RandomizedImage.svelte +31 -0
  240. package/src/lib/components/dialog_manager/DialogManager.ts +282 -0
  241. package/src/lib/components/dialog_manager/DialogManagerStore.ts +52 -0
  242. package/src/lib/components/dialog_manager/DialogProcessor.ts +68 -0
  243. package/src/lib/components/dialog_manager/DialogUtils.ts +10 -0
  244. package/src/lib/components/dialog_manager/behavior_tree/core/BTreeUtils.ts +40 -0
  245. package/src/lib/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.ts +5 -0
  246. package/src/lib/components/dialog_manager/behavior_tree/core/BehaviorNode.ts +3 -0
  247. package/src/lib/components/dialog_manager/behavior_tree/core/BehaviorStatus.ts +5 -0
  248. package/src/lib/components/dialog_manager/behavior_tree/core/SelectorNode.ts +32 -0
  249. package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionArguments.ts +6 -0
  250. package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.ts +5 -0
  251. package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.ts +236 -0
  252. package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionResult.ts +6 -0
  253. package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.ts +20 -0
  254. package/src/lib/components/dialog_manager/behavior_tree/expression/ExpressionState.ts +3 -0
  255. package/src/lib/components/dialog_manager/behavior_tree/expression/OperandNode.ts +19 -0
  256. package/src/lib/components/dialog_manager/behavior_tree/expression/OperatorNode.ts +37 -0
  257. package/src/lib/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.ts +28 -0
  258. package/src/lib/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.ts +34 -0
  259. package/src/lib/components/dialog_manager/behavior_tree/expression/commands/CommandMap.ts +26 -0
  260. package/src/lib/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.ts +31 -0
  261. package/src/lib/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.ts +38 -0
  262. package/src/lib/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.ts +28 -0
  263. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/AndOperator.ts +24 -0
  264. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.ts +21 -0
  265. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.ts +21 -0
  266. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.ts +21 -0
  267. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.ts +19 -0
  268. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.ts +21 -0
  269. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.ts +21 -0
  270. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.ts +20 -0
  271. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.ts +42 -0
  272. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.ts +53 -0
  273. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/OrOperator.ts +22 -0
  274. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/XorOperator.ts +24 -0
  275. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.ts +23 -0
  276. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.ts +23 -0
  277. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.ts +21 -0
  278. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.ts +23 -0
  279. package/src/lib/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.ts +23 -0
  280. package/src/lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.ts +5 -0
  281. package/src/lib/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.ts +7 -0
  282. package/src/lib/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.ts +7 -0
  283. package/src/lib/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.ts +20 -0
  284. package/src/lib/components/dialog_manager/behavior_tree/line_processors/BehaviorState.ts +6 -0
  285. package/src/lib/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.ts +59 -0
  286. package/src/lib/components/dialog_manager/behavior_tree/line_processors/ElseNode.ts +55 -0
  287. package/src/lib/components/dialog_manager/behavior_tree/line_processors/EndIfNode.ts +28 -0
  288. package/src/lib/components/dialog_manager/behavior_tree/line_processors/IfMode.ts +7 -0
  289. package/src/lib/components/dialog_manager/behavior_tree/line_processors/IfNode.ts +49 -0
  290. package/src/lib/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.ts +30 -0
  291. package/src/lib/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.ts +24 -0
  292. package/src/lib/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.ts +22 -0
  293. package/src/lib/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.ts +48 -0
  294. package/src/lib/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.ts +37 -0
  295. package/src/lib/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.ts +48 -0
  296. package/src/lib/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.ts +51 -0
  297. package/src/lib/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.ts +34 -0
  298. package/src/lib/index.ts +9 -0
  299. package/src/lib/scripts/SetDefaultEnvironment.ts +45 -0
  300. package/src/lib/scripts/pineapple_fiber/PineappleWeaver.ts +252 -0
  301. package/src/lib/scripts/util/FileManagement.ts +38 -0
  302. package/src/lib/scripts/util/ManualCheck.ts +32 -0
  303. package/src/lib/scripts/util/ManualCheckRun.ts +7 -0
  304. package/src/lib/store.ts +18 -0
  305. package/src/lib/styles/DefaultGridContainer.css +61 -0
  306. package/src/lib/theme.postcss +107 -0
  307. package/src/lib/types/BlogBlurbMeta.ts +16 -0
  308. package/src/lib/types/BreadcrumbData.ts +4 -0
  309. package/src/lib/types/pineapple_fiber/DialogDetail.ts +7 -0
  310. package/src/lib/types/pineapple_fiber/DialogState.ts +5 -0
  311. package/src/lib/types/pineapple_fiber/DialogVariableStore.ts +24 -0
  312. package/src/lib/types/pineapple_fiber/PortraitType.ts +11 -0
  313. package/src/lib/util/stable_random.ts +16 -0
  314. package/src/routes/+error.svelte +26 -0
  315. package/src/routes/+layout.svelte +23 -0
  316. package/src/routes/+page.svelte +41 -0
  317. package/src/routes/Error.yarn +7 -0
  318. package/src/routes/ErrorYarn.ts +24 -0
  319. package/src/routes/portfolio/+page.svelte +0 -0
  320. package/src/types.d.ts +8 -0
  321. package/static/default-card.png +0 -0
  322. package/static/favicon.png +0 -0
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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,9 @@
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
+ export {};
@@ -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 {};
@@ -0,0 +1,6 @@
1
+ import { runAll } from "./ManualCheck";
2
+ /**
3
+ * todo: Integrate manual check into CI check#137
4
+ * ISSUE #137 https://github.com/TurnipXenon/pineapple/issues/137
5
+ */
6
+ runAll();
@@ -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
+ }