@turnipxenon/pineapple 1.1.2 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/package.json +15 -6
  2. package/src/lib/app.postcss +106 -47
  3. package/src/lib/assets/icons/bitbucket-icon.svg +1 -0
  4. package/src/lib/assets/icons/github-mark.svg +1 -0
  5. package/src/lib/assets/icons/link-icon.svg +1 -0
  6. package/src/lib/assets/icons/linkedin.svg +1 -0
  7. package/src/lib/assets/icons/mail.svg +1 -0
  8. package/src/lib/assets/others/seaweed-showcase.mp4 +0 -0
  9. package/src/lib/assets/others/weaver-footage.gif +0 -0
  10. package/src/lib/assets/others/window-set.png +0 -0
  11. package/src/lib/assets/placeholder/placeholder_circle.png +0 -0
  12. package/src/lib/components/Card.svelte +24 -0
  13. package/src/lib/components/CarouselElement.svelte +23 -0
  14. package/src/lib/components/Chip.svelte +12 -0
  15. package/src/lib/components/ElementVisbilityDetector.svelte +22 -0
  16. package/src/lib/components/OnElementVisbilityChanged.ts +1 -0
  17. package/src/lib/components/RandomizedBackground.svelte +6 -4
  18. package/src/lib/components/RandomizedImage.svelte +23 -14
  19. package/src/lib/components/StickyElement.svelte +40 -0
  20. package/src/lib/components/ToggleableContent.svelte +86 -0
  21. package/src/lib/components/ToggleableContentType.ts +4 -0
  22. package/src/lib/components/layouts/LayoutConstants.ts +1 -0
  23. package/src/lib/components/{PineappleBaseLayout.svelte → layouts/PineappleBaseLayout.svelte} +73 -71
  24. package/src/lib/components/layouts/SeaweedBaseLayout.svelte +109 -0
  25. package/src/lib/consts.ts +2 -0
  26. package/src/lib/index.ts +1 -1
  27. package/src/lib/styles/global.css +1 -0
  28. package/src/lib/template/SeaweedTemplate.svelte +873 -0
  29. package/src/lib/theme.postcss +114 -105
  30. package/src/lib/util/create_go_to_function.ts +5 -0
  31. package/src/routes/+layout.svelte +19 -23
  32. package/src/routes/+page.svelte +9 -12
  33. package/src/routes/personal/+layout.svelte +23 -0
  34. package/src/routes/personal/+page.svelte +37 -0
  35. package/src/routes/portfolio/+page.server.ts +44 -0
  36. package/src/routes/portfolio/+page.svelte +19 -0
  37. package/src/routes/portfolio/SocialSection.svelte +93 -0
  38. package/src/routes/portfolio/actual/+page.svelte +10 -0
  39. package/static/robots.txt +5 -0
  40. package/dist/app.postcss +0 -94
  41. package/dist/assets/bg_tiled/bg_tiled_ares.png +0 -0
  42. package/dist/assets/bg_tiled/bg_tiled_corn.png +0 -0
  43. package/dist/assets/bg_tiled/bg_tiled_pineapple.png +0 -0
  44. package/dist/assets/bg_tiled/bg_tiled_reinhard.png +0 -0
  45. package/dist/assets/bg_tiled/bg_tiled_tomato.png +0 -0
  46. package/dist/assets/bg_tiled/bg_tiled_turnip.png +0 -0
  47. package/dist/assets/characters/ares/ares_blushing.webp +0 -0
  48. package/dist/assets/characters/ares/ares_disappointed.webp +0 -0
  49. package/dist/assets/characters/ares/ares_happy.webp +0 -0
  50. package/dist/assets/characters/ares/ares_lets_go.webp +0 -0
  51. package/dist/assets/characters/ares/ares_logo.webp +0 -0
  52. package/dist/assets/characters/ares/ares_mad.webp +0 -0
  53. package/dist/assets/characters/ares/ares_neutral.webp +0 -0
  54. package/dist/assets/characters/ares/ares_slightly_mad.webp +0 -0
  55. package/dist/assets/characters/ares/ares_surprised.webp +0 -0
  56. package/dist/assets/characters/ares/ares_yay.webp +0 -0
  57. package/dist/assets/game_dev/footage-chef-wings.gif +0 -0
  58. package/dist/assets/game_dev/footage-depreciation.webm +0 -0
  59. package/dist/assets/game_dev/footage-thinking-of-flowers.webm +0 -0
  60. package/dist/assets/game_dev/screenshot-game-jam-mama.png +0 -0
  61. package/dist/assets/game_dev/screenshot-string-hop.png +0 -0
  62. package/dist/assets/game_dev/screenshot-wet-ass-road.png +0 -0
  63. package/dist/assets/temp/background-image.jpg +0 -0
  64. package/dist/assets/temp/bitbucket-logo.png +0 -0
  65. package/dist/assets/temp/github-logo.png +0 -0
  66. package/dist/assets/temp/header-hep-cat.mp4 +0 -0
  67. package/dist/assets/temp/header-hep-cat.ogg +0 -0
  68. package/dist/assets/temp/header-hep-cat.webm +0 -0
  69. package/dist/assets/temp/header-pengi.mp4 +0 -0
  70. package/dist/assets/temp/header-pengi.webm +0 -0
  71. package/dist/assets/temp/header-soulwork.mp4 +0 -0
  72. package/dist/assets/temp/header-soulwork.ogg +0 -0
  73. package/dist/assets/temp/header-soulwork.webm +0 -0
  74. package/dist/components/DialogOverlay.svelte +0 -93
  75. package/dist/components/DialogOverlay.svelte.d.ts +0 -14
  76. package/dist/components/LazyAsset.svelte +0 -96
  77. package/dist/components/LazyAsset.svelte.d.ts +0 -20
  78. package/dist/components/LazyAssetType.d.ts +0 -10
  79. package/dist/components/LazyAssetType.js +0 -12
  80. package/dist/components/PineappleBaseLayout.svelte +0 -186
  81. package/dist/components/PineappleBaseLayout.svelte.d.ts +0 -19
  82. package/dist/components/RandomizedBackground.svelte +0 -62
  83. package/dist/components/RandomizedBackground.svelte.d.ts +0 -16
  84. package/dist/components/RandomizedImage.svelte +0 -29
  85. package/dist/components/RandomizedImage.svelte.d.ts +0 -17
  86. package/dist/components/dialog_manager/DialogManager.d.ts +0 -77
  87. package/dist/components/dialog_manager/DialogManager.js +0 -239
  88. package/dist/components/dialog_manager/DialogManagerStore.d.ts +0 -41
  89. package/dist/components/dialog_manager/DialogManagerStore.js +0 -45
  90. package/dist/components/dialog_manager/DialogProcessor.d.ts +0 -13
  91. package/dist/components/dialog_manager/DialogProcessor.js +0 -62
  92. package/dist/components/dialog_manager/DialogUtils.d.ts +0 -5
  93. package/dist/components/dialog_manager/DialogUtils.js +0 -8
  94. package/dist/components/dialog_manager/behavior_tree/core/BTreeUtils.d.ts +0 -15
  95. package/dist/components/dialog_manager/behavior_tree/core/BTreeUtils.js +0 -34
  96. package/dist/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.d.ts +0 -4
  97. package/dist/components/dialog_manager/behavior_tree/core/BaseBehaviorResult.js +0 -1
  98. package/dist/components/dialog_manager/behavior_tree/core/BehaviorNode.d.ts +0 -3
  99. package/dist/components/dialog_manager/behavior_tree/core/BehaviorNode.js +0 -1
  100. package/dist/components/dialog_manager/behavior_tree/core/BehaviorStatus.d.ts +0 -5
  101. package/dist/components/dialog_manager/behavior_tree/core/BehaviorStatus.js +0 -6
  102. package/dist/components/dialog_manager/behavior_tree/core/SelectorNode.d.ts +0 -12
  103. package/dist/components/dialog_manager/behavior_tree/core/SelectorNode.js +0 -22
  104. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionArguments.d.ts +0 -5
  105. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionArguments.js +0 -1
  106. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.d.ts +0 -4
  107. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionBehaviorNode.js +0 -1
  108. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.d.ts +0 -15
  109. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionEvaluator.js +0 -220
  110. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionResult.d.ts +0 -5
  111. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionResult.js +0 -1
  112. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.d.ts +0 -8
  113. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionSelectorNode.js +0 -15
  114. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionState.d.ts +0 -3
  115. package/dist/components/dialog_manager/behavior_tree/expression/ExpressionState.js +0 -1
  116. package/dist/components/dialog_manager/behavior_tree/expression/OperandNode.d.ts +0 -10
  117. package/dist/components/dialog_manager/behavior_tree/expression/OperandNode.js +0 -15
  118. package/dist/components/dialog_manager/behavior_tree/expression/OperatorNode.d.ts +0 -11
  119. package/dist/components/dialog_manager/behavior_tree/expression/OperatorNode.js +0 -30
  120. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.d.ts +0 -6
  121. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandExpressionNode.js +0 -21
  122. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.d.ts +0 -9
  123. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandLogicNode.js +0 -19
  124. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandMap.d.ts +0 -9
  125. package/dist/components/dialog_manager/behavior_tree/expression/commands/CommandMap.js +0 -18
  126. package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.d.ts +0 -15
  127. package/dist/components/dialog_manager/behavior_tree/expression/commands/RandomRangeCommand.js +0 -24
  128. package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.d.ts +0 -20
  129. package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCommand.js +0 -32
  130. package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.d.ts +0 -13
  131. package/dist/components/dialog_manager/behavior_tree/expression/commands/VisitedCountCommand.js +0 -25
  132. package/dist/components/dialog_manager/behavior_tree/expression/operators/AndOperator.d.ts +0 -7
  133. package/dist/components/dialog_manager/behavior_tree/expression/operators/AndOperator.js +0 -15
  134. package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.d.ts +0 -7
  135. package/dist/components/dialog_manager/behavior_tree/expression/operators/EqualityOperator.js +0 -14
  136. package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.d.ts +0 -7
  137. package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanEqualOperator.js +0 -12
  138. package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.d.ts +0 -7
  139. package/dist/components/dialog_manager/behavior_tree/expression/operators/GreaterThanOperator.js +0 -12
  140. package/dist/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.d.ts +0 -7
  141. package/dist/components/dialog_manager/behavior_tree/expression/operators/InequalityOperator.js +0 -12
  142. package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.d.ts +0 -7
  143. package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanEqualOperator.js +0 -12
  144. package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.d.ts +0 -7
  145. package/dist/components/dialog_manager/behavior_tree/expression/operators/LessThanOperator.js +0 -12
  146. package/dist/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.d.ts +0 -7
  147. package/dist/components/dialog_manager/behavior_tree/expression/operators/NegationOperator.js +0 -13
  148. package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.d.ts +0 -17
  149. package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorLogicNode.js +0 -32
  150. package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.d.ts +0 -9
  151. package/dist/components/dialog_manager/behavior_tree/expression/operators/OperatorMap.js +0 -47
  152. package/dist/components/dialog_manager/behavior_tree/expression/operators/OrOperator.d.ts +0 -7
  153. package/dist/components/dialog_manager/behavior_tree/expression/operators/OrOperator.js +0 -13
  154. package/dist/components/dialog_manager/behavior_tree/expression/operators/XorOperator.d.ts +0 -7
  155. package/dist/components/dialog_manager/behavior_tree/expression/operators/XorOperator.js +0 -17
  156. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.d.ts +0 -7
  157. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/DivisionOperator.js +0 -14
  158. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.d.ts +0 -7
  159. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MinusOperator.js +0 -14
  160. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.d.ts +0 -7
  161. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/MultiplicationOperator.js +0 -12
  162. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.d.ts +0 -7
  163. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/PlusOperator.js +0 -14
  164. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.d.ts +0 -7
  165. package/dist/components/dialog_manager/behavior_tree/expression/operators/arithmetic/RemainderDivisionOperator.js +0 -14
  166. package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.d.ts +0 -4
  167. package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorNode.js +0 -1
  168. package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.d.ts +0 -6
  169. package/dist/components/dialog_manager/behavior_tree/line_core/LineBehaviorResult.js +0 -1
  170. package/dist/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.d.ts +0 -6
  171. package/dist/components/dialog_manager/behavior_tree/line_core/LineNodeArguments.js +0 -1
  172. package/dist/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.d.ts +0 -8
  173. package/dist/components/dialog_manager/behavior_tree/line_core/LineSelectorNode.js +0 -15
  174. package/dist/components/dialog_manager/behavior_tree/line_processors/BehaviorState.d.ts +0 -5
  175. package/dist/components/dialog_manager/behavior_tree/line_processors/BehaviorState.js +0 -5
  176. package/dist/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.d.ts +0 -11
  177. package/dist/components/dialog_manager/behavior_tree/line_processors/ElseIfNode.js +0 -53
  178. package/dist/components/dialog_manager/behavior_tree/line_processors/ElseNode.d.ts +0 -11
  179. package/dist/components/dialog_manager/behavior_tree/line_processors/ElseNode.js +0 -49
  180. package/dist/components/dialog_manager/behavior_tree/line_processors/EndIfNode.d.ts +0 -11
  181. package/dist/components/dialog_manager/behavior_tree/line_processors/EndIfNode.js +0 -23
  182. package/dist/components/dialog_manager/behavior_tree/line_processors/IfMode.d.ts +0 -6
  183. package/dist/components/dialog_manager/behavior_tree/line_processors/IfMode.js +0 -8
  184. package/dist/components/dialog_manager/behavior_tree/line_processors/IfNode.d.ts +0 -12
  185. package/dist/components/dialog_manager/behavior_tree/line_processors/IfNode.js +0 -43
  186. package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.d.ts +0 -11
  187. package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreGuardNode.js +0 -25
  188. package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.d.ts +0 -6
  189. package/dist/components/dialog_manager/behavior_tree/line_processors/IgnoreJumpNode.js +0 -18
  190. package/dist/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.d.ts +0 -6
  191. package/dist/components/dialog_manager/behavior_tree/line_processors/LineCommentNode.js +0 -17
  192. package/dist/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.d.ts +0 -10
  193. package/dist/components/dialog_manager/behavior_tree/line_processors/NormalLineProcessorNode.js +0 -38
  194. package/dist/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.d.ts +0 -11
  195. package/dist/components/dialog_manager/behavior_tree/line_processors/SetVariableNode.js +0 -31
  196. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.d.ts +0 -8
  197. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/DeclareCommand.js +0 -39
  198. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.d.ts +0 -8
  199. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/JumpCommand.js +0 -40
  200. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.d.ts +0 -9
  201. package/dist/components/dialog_manager/behavior_tree/line_processors/commands/UnvisitCommand.js +0 -28
  202. package/dist/index.d.ts +0 -8
  203. package/dist/index.js +0 -8
  204. package/dist/scripts/SetDefaultEnvironment.d.ts +0 -1
  205. package/dist/scripts/SetDefaultEnvironment.js +0 -41
  206. package/dist/scripts/pineapple_fiber/PineappleWeaver.d.ts +0 -9
  207. package/dist/scripts/pineapple_fiber/PineappleWeaver.js +0 -201
  208. package/dist/scripts/util/FileManagement.d.ts +0 -7
  209. package/dist/scripts/util/FileManagement.js +0 -35
  210. package/dist/scripts/util/ManualCheck.d.ts +0 -1
  211. package/dist/scripts/util/ManualCheck.js +0 -28
  212. package/dist/scripts/util/ManualCheckRun.d.ts +0 -1
  213. package/dist/scripts/util/ManualCheckRun.js +0 -6
  214. package/dist/store.d.ts +0 -17
  215. package/dist/store.js +0 -17
  216. package/dist/styles/DefaultGridContainer.css +0 -61
  217. package/dist/theme.postcss +0 -107
  218. package/dist/types/BlogBlurbMeta.d.ts +0 -11
  219. package/dist/types/BlogBlurbMeta.js +0 -16
  220. package/dist/types/BreadcrumbData.d.ts +0 -4
  221. package/dist/types/BreadcrumbData.js +0 -1
  222. package/dist/types/pineapple_fiber/DialogDetail.d.ts +0 -6
  223. package/dist/types/pineapple_fiber/DialogDetail.js +0 -1
  224. package/dist/types/pineapple_fiber/DialogState.d.ts +0 -5
  225. package/dist/types/pineapple_fiber/DialogState.js +0 -6
  226. package/dist/types/pineapple_fiber/DialogVariableStore.d.ts +0 -2
  227. package/dist/types/pineapple_fiber/DialogVariableStore.js +0 -20
  228. package/dist/types/pineapple_fiber/PortraitType.d.ts +0 -11
  229. package/dist/types/pineapple_fiber/PortraitType.js +0 -12
  230. package/dist/util/stable_random.d.ts +0 -2
  231. package/dist/util/stable_random.js +0 -15
  232. package/src/lib/assets/icons/chat_cursor.svg +0 -47
  233. package/src/lib/assets/icons/external_link.svg +0 -50
  234. /package/{dist/assets/icons/chat_cursor.svg → src/lib/assets/icons/chat-cursor.svg} +0 -0
  235. /package/{dist/assets/icons/external_link.svg → src/lib/assets/icons/external-link.svg} +0 -0
@@ -1,201 +0,0 @@
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();
@@ -1,7 +0,0 @@
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[];
@@ -1,35 +0,0 @@
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
- };
@@ -1 +0,0 @@
1
- export declare const runAll: () => void;
@@ -1,28 +0,0 @@
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
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,6 +0,0 @@
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();
package/dist/store.d.ts DELETED
@@ -1,17 +0,0 @@
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 DELETED
@@ -1,17 +0,0 @@
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);
@@ -1,61 +0,0 @@
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
- }
@@ -1,107 +0,0 @@
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
- }
@@ -1,11 +0,0 @@
1
- export declare class BlogBlurbMeta {
2
- title: string;
3
- blurb: string;
4
- tagList: string[];
5
- publishDate: string;
6
- lastUpdate: string;
7
- previewSrc: any;
8
- previewSrcScript: string;
9
- previewAlt: string;
10
- blogLink: string;
11
- }
@@ -1,16 +0,0 @@
1
- // I don't wanna waste time figuring out how to fight against the rollup magic
2
- // svelte does so let's just copy paste this class, as a treat LOL
3
- // Mirror is between
4
- // - src/lib/types/BlogBlurbMeta.ts
5
- // - pineapple_scripts/blog_list_data_generator.ts
6
- export class BlogBlurbMeta {
7
- title = "";
8
- blurb = "";
9
- tagList = [];
10
- publishDate = "";
11
- lastUpdate = "";
12
- previewSrc = "";
13
- previewSrcScript = "";
14
- previewAlt = "";
15
- blogLink = "";
16
- }
@@ -1,4 +0,0 @@
1
- export interface BreadcrumbData {
2
- path: string;
3
- name: string;
4
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,6 +0,0 @@
1
- import type { PortraitType } from "./PortraitType";
2
- export interface DialogDetail {
3
- textContent: string;
4
- dialogId?: string;
5
- portraitType?: PortraitType;
6
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- export declare enum DialogState {
2
- Invisible = 0,
3
- Visible = 1,
4
- Busy = 2
5
- }
@@ -1,6 +0,0 @@
1
- export var DialogState;
2
- (function (DialogState) {
3
- DialogState[DialogState["Invisible"] = 0] = "Invisible";
4
- DialogState[DialogState["Visible"] = 1] = "Visible";
5
- DialogState[DialogState["Busy"] = 2] = "Busy";
6
- })(DialogState || (DialogState = {}));
@@ -1,2 +0,0 @@
1
- export type DialogMapStore = Storage;
2
- export declare const createNewMapStore: () => DialogMapStore;
@@ -1,20 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-empty-function */
2
- /* eslint-disable @typescript-eslint/no-unused-vars */
3
- import { browser } from "$app/environment";
4
- export const createNewMapStore = () => {
5
- return browser
6
- ? localStorage
7
- : {
8
- // dumb storage if not in browser
9
- length: 0,
10
- setItem: (key, value) => { },
11
- getItem: (key) => {
12
- return null;
13
- },
14
- clear: () => { },
15
- key: (index) => {
16
- return null;
17
- },
18
- removeItem: (key) => { }
19
- };
20
- };
@@ -1,11 +0,0 @@
1
- export declare enum PortraitType {
2
- AresHappy = "AresHappy",
3
- AresDisappointed = "AresDisappointed",
4
- AresBlushing = "AresBlushing",
5
- AresLetsGo = "AresLetsGo",
6
- AresMad = "AresMad",
7
- AresNeutral = "AresNeutral",
8
- AresSlightlyMad = "AresSlightlyMad",
9
- AresSurprised = "AresSurprised",
10
- AresYay = "AresYay"
11
- }
@@ -1,12 +0,0 @@
1
- export var PortraitType;
2
- (function (PortraitType) {
3
- PortraitType["AresHappy"] = "AresHappy";
4
- PortraitType["AresDisappointed"] = "AresDisappointed";
5
- PortraitType["AresBlushing"] = "AresBlushing";
6
- PortraitType["AresLetsGo"] = "AresLetsGo";
7
- PortraitType["AresMad"] = "AresMad";
8
- PortraitType["AresNeutral"] = "AresNeutral";
9
- PortraitType["AresSlightlyMad"] = "AresSlightlyMad";
10
- PortraitType["AresSurprised"] = "AresSurprised";
11
- PortraitType["AresYay"] = "AresYay";
12
- })(PortraitType || (PortraitType = {}));
@@ -1,2 +0,0 @@
1
- export declare const generatedDailySeed: () => number;
2
- export declare const mulberry32Generator: (a: number) => (() => number);
@@ -1,15 +0,0 @@
1
- export const generatedDailySeed = () => {
2
- const date = new Date();
3
- const time = date.getTime() + 86400000;
4
- return time - (time % 86400000);
5
- };
6
- // psuedo misc with seed
7
- // from https://stackoverflow.com/a/47593316
8
- export const mulberry32Generator = (a) => {
9
- return function () {
10
- var t = (a += 0x6d2b79f5);
11
- t = Math.imul(t ^ (t >>> 15), t | 1);
12
- t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
13
- return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
14
- };
15
- };