From 65a986ca6ee9915a52d10d940eafad31cdd4db58 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 01:54:26 -0500 Subject: [PATCH 01/19] Create custom-slideshow-tutorial.md --- Docs/articles/custom-slideshow-tutorial.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Docs/articles/custom-slideshow-tutorial.md diff --git a/Docs/articles/custom-slideshow-tutorial.md b/Docs/articles/custom-slideshow-tutorial.md new file mode 100644 index 0000000..7898192 --- /dev/null +++ b/Docs/articles/custom-slideshow-tutorial.md @@ -0,0 +1 @@ +a From d40f54281d1b16f5e5740e85804236af2301c218 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 01:57:09 -0500 Subject: [PATCH 02/19] Update and rename custom-slideshow-tutorial.md to scene-tutorial.md --- Docs/articles/custom-slideshow-tutorial.md | 1 - Docs/articles/scene-tutorial.md | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 Docs/articles/custom-slideshow-tutorial.md create mode 100644 Docs/articles/scene-tutorial.md diff --git a/Docs/articles/custom-slideshow-tutorial.md b/Docs/articles/custom-slideshow-tutorial.md deleted file mode 100644 index 7898192..0000000 --- a/Docs/articles/custom-slideshow-tutorial.md +++ /dev/null @@ -1 +0,0 @@ -a diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md new file mode 100644 index 0000000..d38dc74 --- /dev/null +++ b/Docs/articles/scene-tutorial.md @@ -0,0 +1,2 @@ +# Scene +A Scene is a From c46c2ba6c3f1e4ce72d69e79f071d595757ec591 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 01:58:46 -0500 Subject: [PATCH 03/19] Update world-state-tutorial.md --- Docs/articles/world-state-tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/articles/world-state-tutorial.md b/Docs/articles/world-state-tutorial.md index 6289482..8a1b9bd 100644 --- a/Docs/articles/world-state-tutorial.md +++ b/Docs/articles/world-state-tutorial.md @@ -1,6 +1,6 @@ # World State -A "World State" is SlugBase' way of categorizing all world-related slugcat specific changes. A SlugBase slugcat can inherit a world state from another slugcat to use its same room connections, spawns, accessible regions, and so on. The world will appear as if it was the campaign of the other slugcat, except for non-world changes, such as iterator states, echoes, campaign cutscenes, ect. +A "World State" is SlugBase's way of categorizing all world-related slugcat specific changes. A SlugBase slugcat can inherit a world state from another slugcat to use its same room connections, spawns, accessible regions, and so on. The world will appear as if it was the campaign of the other slugcat, except for non-world changes, such as iterator states, echoes, campaign cutscenes, etc. # Basic Usage From b7c4270111fedfa99b4d446491ee0937739826b7 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 02:04:47 -0500 Subject: [PATCH 04/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index d38dc74..41a4e9f 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -1,2 +1,4 @@ -# Scene -A Scene is a +# CustomScene +A CustomScene is Slugbase's method of allowing an easy way for mod creators to add slugcat-specific scenes, such as unique select screens, sleep screens, or even intro sequences. + +CustomScenes are stored either in the `slugbase/scenes/` folder, or inside of (insert link)[CustomSlideshow]s. From eb2bf60e04313a9e021bf2e60fd1704c903f3f5a Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 02:10:02 -0500 Subject: [PATCH 05/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index 41a4e9f..1d4d6ec 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -1,4 +1,5 @@ # CustomScene A CustomScene is Slugbase's method of allowing an easy way for mod creators to add slugcat-specific scenes, such as unique select screens, sleep screens, or even intro sequences. -CustomScenes are stored either in the `slugbase/scenes/` folder, or inside of (insert link)[CustomSlideshow]s. +CustomScenes are stored either in the `slugbase/scenes/` folder as unique .json files, or inside of (insert link)[CustomSlideshow]s. +# Basic Usage From 776f45f21860a25d8612f9161d8b9a4e7394d02d Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 02:29:12 -0500 Subject: [PATCH 06/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index 1d4d6ec..b2d2dad 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -3,3 +3,17 @@ A CustomScene is Slugbase's method of allowing an easy way for mod creators to a CustomScenes are stored either in the `slugbase/scenes/` folder as unique .json files, or inside of (insert link)[CustomSlideshow]s. # Basic Usage +## "id" +`MenuScene.SceneID` (acts like a `string`)\ +Ex. `"id": "Sleep_MySlugcat"` + +ID is a `SceneID`, which effectively is a string that no other scene should share. Instead of referencing a file name, all built-in SlugBase features reference whatever ID that is put here. + +If no ID is defined, the scene will not be able to be referenced, unless it is a scene that is inside of a (insert link)[CustomSlideshow]. +## "scene_folder" (Optional) +`string`\ +Ex. `"scene_folder": "scenes/sleep - myslugcat"` + +SceneFolder is a `string`, acting as a directory from the root of your mod (usually a folder in `StreamingAssets/mods/`) of which all of the images within this scene will use instead of the root directory. Do not add a `/` to the end, as it may cause errors! + +For example, with a specific scene there are 5 images stored in the folder `StreamingAssets/mods/scenes/sleep - myslugcat/`, each with a number name (such as `1.png`, `2.png`, etc). I could individually input each image with its filepath (as `scenes/sleep - myslugcat/1`, `scenes/sleep - myslugcat/1`, etc), or I could put `"scene_folder": "scenes/sleep - myslugcat"` at the start and then input the images as `1`, `2`, and so on instead. From 8789c2c4cfce77a3869be35ceb2ad111e60d9a53 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 02:45:03 -0500 Subject: [PATCH 07/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index b2d2dad..d2e7439 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -17,3 +17,29 @@ Ex. `"scene_folder": "scenes/sleep - myslugcat"` SceneFolder is a `string`, acting as a directory from the root of your mod (usually a folder in `StreamingAssets/mods/`) of which all of the images within this scene will use instead of the root directory. Do not add a `/` to the end, as it may cause errors! For example, with a specific scene there are 5 images stored in the folder `StreamingAssets/mods/scenes/sleep - myslugcat/`, each with a number name (such as `1.png`, `2.png`, etc). I could individually input each image with its filepath (as `scenes/sleep - myslugcat/1`, `scenes/sleep - myslugcat/1`, etc), or I could put `"scene_folder": "scenes/sleep - myslugcat"` at the start and then input the images as `1`, `2`, and so on instead. +## "idle_depths" +`float[]`\ +Ex. `"idle_depths": [ 2.8 ]` + +IdleDepths is an array of `float`s that determines what depths the camera may focus on. For death screens, the camera focus usually only has one focus, but for others, there is more room for variation. +# Select Screen Usage +This section is for parameters that are only effective on the select menus. All of these are optional. +## "slugcat_depth" +`float`\ +Ex. `"slugcat_depth": 2.8` + +SlugcatDepth is a `float` that determines the depth of the slugcat (or main object/creature of the scene). It's recommended to choose one of the numbers that `idle_depths` has, as otherwise the focus may only be on the object/creature you want focused on for a short period of time. +## "mark_pos" +`Vector2`\ +Ex. `"mark_pos": [620,500]` + +MarkPos is a `Vector2` (which is effectively an array of 2 integers) that determines where the Mark of Communication appears on the scene if the slugcat has acquired it on the current save file. +## "glow_pos" +`Vector2`\ +Ex. `"glow_pos": [620,400]` + +GlowPos is a `Vector2` (which is effectively an array of 2 integers) that determines where the glow from the Mark of Communication appears on the scene if the slugcat has acquired it on the current save file. Usually, it's best to set the second number to 100 below whatever your `mark_pos` is. +## "select_menu_pos` +`Vector2`\ +Ex. `"select_menu_pos": [0, 0]` +SelectMenuOffset is a `Vector2` (which is effectively an array of 2 integers) that offsets all images in the scene by whatever numbers are within it. From 8758a9a1498d78b1481caa93a34d84d98b242ea6 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 03:09:03 -0500 Subject: [PATCH 08/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 36 +++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index d2e7439..4be181e 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -16,14 +16,14 @@ Ex. `"scene_folder": "scenes/sleep - myslugcat"` SceneFolder is a `string`, acting as a directory from the root of your mod (usually a folder in `StreamingAssets/mods/`) of which all of the images within this scene will use instead of the root directory. Do not add a `/` to the end, as it may cause errors! -For example, with a specific scene there are 5 images stored in the folder `StreamingAssets/mods/scenes/sleep - myslugcat/`, each with a number name (such as `1.png`, `2.png`, etc). I could individually input each image with its filepath (as `scenes/sleep - myslugcat/1`, `scenes/sleep - myslugcat/1`, etc), or I could put `"scene_folder": "scenes/sleep - myslugcat"` at the start and then input the images as `1`, `2`, and so on instead. +For example, with a specific scene there are 5 images stored in the folder `StreamingAssets/mods/myslugcat/scenes/sleep - myslugcat/`, each with a number name (such as `1.png`, `2.png`, etc). I could individually input each image with its filepath (as `scenes/sleep - myslugcat/1`, `scenes/sleep - myslugcat/1`, etc), or I could put `"scene_folder": "scenes/sleep - myslugcat"` at the start and then input the images as `1`, `2`, and so on instead. ## "idle_depths" `float[]`\ Ex. `"idle_depths": [ 2.8 ]` IdleDepths is an array of `float`s that determines what depths the camera may focus on. For death screens, the camera focus usually only has one focus, but for others, there is more room for variation. # Select Screen Usage -This section is for parameters that are only effective on the select menus. All of these are optional. +This section is for parameters that are only effective on the select menus. All of these are optional, and none of these have any effect within slideshows or anywhere outside of the select screen. ## "slugcat_depth" `float`\ Ex. `"slugcat_depth": 2.8` @@ -42,4 +42,36 @@ GlowPos is a `Vector2` (which is effectively an array of 2 integers) that determ ## "select_menu_pos` `Vector2`\ Ex. `"select_menu_pos": [0, 0]` + SelectMenuOffset is a `Vector2` (which is effectively an array of 2 integers) that offsets all images in the scene by whatever numbers are within it. +# Images Within Slideshows +## "images" +`CustomScene.Image[]` + +The images array is filled with `CustomScene.Image`s, which are just objects of which contain information about the layered images of the scene. Here are the constructors of each image: +### "name" +`string`\ +Ex. `"name": "scenes/sleep - myslugcat/abc"` (When the image is stored at `StreamingAssets/mods/myslugcat/scenes/sleep - myslugcat/abc.png` and (insert link)[`scene_folder`] is not defined) + +Name determines the filepath of the image shown. If (insert link)[`scene_folder`] is defined, SlugBase will look for the file at whatever folder (that is inside the mod folder) that it defines, instead of `StreamingAssets/mods/`. +### "pos" +`Vector2` + +Position is a `Vector2` (which is effectively an array of 2 integers) that determines the pixel location of where the image is on-screen. +### "flatmode" (Defaults to `false`) +`bool`\ +Ex. `"flatmode": true` + +If `true`, this image will display when in flat mode and will be hidden otherwise. +### "depth" +`float`\ +Ex. `"depth": 2.5` + +Depth is a `float` determining the image's depth. +### "shader" (Defaults to `Menu.MenuDepthIllustration.MenuShader.Normal`) +`MenuDepthIllustration.MenuShader`\ +Ex. `"shader": "Basic"` + +Shader is how the image is rendered. By default, it uses the vanilla `Normal` shader. +# Example Scene +You can dig through (here)[https://github.com/SlimeCubed/SlugTemplate/tree/master/mod] for finding the example for how the scenes are constructed and referenced. From 9eb312387f55734ff5b21c2dc36af99de673c599 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 03:11:54 -0500 Subject: [PATCH 09/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index 4be181e..4e32699 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -45,30 +45,27 @@ Ex. `"select_menu_pos": [0, 0]` SelectMenuOffset is a `Vector2` (which is effectively an array of 2 integers) that offsets all images in the scene by whatever numbers are within it. # Images Within Slideshows -## "images" -`CustomScene.Image[]` - -The images array is filled with `CustomScene.Image`s, which are just objects of which contain information about the layered images of the scene. Here are the constructors of each image: -### "name" +The "images" array is filled with `CustomScene.Image`s, which are just objects of which contain information about the layered images of the scene. Here are the constructors of each image: +## "name" `string`\ Ex. `"name": "scenes/sleep - myslugcat/abc"` (When the image is stored at `StreamingAssets/mods/myslugcat/scenes/sleep - myslugcat/abc.png` and (insert link)[`scene_folder`] is not defined) Name determines the filepath of the image shown. If (insert link)[`scene_folder`] is defined, SlugBase will look for the file at whatever folder (that is inside the mod folder) that it defines, instead of `StreamingAssets/mods/`. -### "pos" +## "pos" `Vector2` Position is a `Vector2` (which is effectively an array of 2 integers) that determines the pixel location of where the image is on-screen. -### "flatmode" (Defaults to `false`) +## "flatmode" (Defaults to `false`) `bool`\ Ex. `"flatmode": true` If `true`, this image will display when in flat mode and will be hidden otherwise. -### "depth" +## "depth" `float`\ Ex. `"depth": 2.5` Depth is a `float` determining the image's depth. -### "shader" (Defaults to `Menu.MenuDepthIllustration.MenuShader.Normal`) +## "shader" (Defaults to `Menu.MenuDepthIllustration.MenuShader.Normal`) `MenuDepthIllustration.MenuShader`\ Ex. `"shader": "Basic"` From 85425c414215f1cd935e647ea1fc0d49ed96b4e1 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 03:15:36 -0500 Subject: [PATCH 10/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index 4e32699..bb84e7b 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -71,4 +71,4 @@ Ex. `"shader": "Basic"` Shader is how the image is rendered. By default, it uses the vanilla `Normal` shader. # Example Scene -You can dig through (here)[https://github.com/SlimeCubed/SlugTemplate/tree/master/mod] for finding the example for how the scenes are constructed and referenced. +You can dig through [https://github.com/SlimeCubed/SlugTemplate/tree/master/mod](here) for finding the example for how the scenes are constructed and referenced. From c594f51df9ca3edef0178d534ab676f51fee3e95 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 03:16:47 -0500 Subject: [PATCH 11/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index bb84e7b..547147d 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -1,7 +1,7 @@ # CustomScene A CustomScene is Slugbase's method of allowing an easy way for mod creators to add slugcat-specific scenes, such as unique select screens, sleep screens, or even intro sequences. -CustomScenes are stored either in the `slugbase/scenes/` folder as unique .json files, or inside of (insert link)[CustomSlideshow]s. +CustomScenes are stored either in the `slugbase/scenes/` folder as unique .json files, or inside of [CustomSlideshow](https://github.com/nonAssociatedIdiot/SlugBaseRemixExtraDocs/edit/master/Docs/articles/scene-tutorial.md)s. # Basic Usage ## "id" `MenuScene.SceneID` (acts like a `string`)\ @@ -9,7 +9,7 @@ Ex. `"id": "Sleep_MySlugcat"` ID is a `SceneID`, which effectively is a string that no other scene should share. Instead of referencing a file name, all built-in SlugBase features reference whatever ID that is put here. -If no ID is defined, the scene will not be able to be referenced, unless it is a scene that is inside of a (insert link)[CustomSlideshow]. +If no ID is defined, the scene will not be able to be referenced, unless it is a scene that is inside of a [CustomSlideshow](https://github.com/nonAssociatedIdiot/SlugBaseRemixExtraDocs/edit/master/Docs/articles/scene-tutorial.md). ## "scene_folder" (Optional) `string`\ Ex. `"scene_folder": "scenes/sleep - myslugcat"` @@ -71,4 +71,4 @@ Ex. `"shader": "Basic"` Shader is how the image is rendered. By default, it uses the vanilla `Normal` shader. # Example Scene -You can dig through [https://github.com/SlimeCubed/SlugTemplate/tree/master/mod](here) for finding the example for how the scenes are constructed and referenced. +You can dig through [here](https://github.com/SlimeCubed/SlugTemplate/tree/master/mod) for finding the example for how the scenes are constructed and referenced. From 2dee29649dd44f183d7c1eba068c72d0d5d2d99d Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 03:17:11 -0500 Subject: [PATCH 12/19] Update scene-tutorial.md From 9689cc66b132319a7f2cac0df2711894bd0172b8 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 03:18:10 -0500 Subject: [PATCH 13/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index 547147d..1136c4b 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -48,9 +48,9 @@ SelectMenuOffset is a `Vector2` (which is effectively an array of 2 integers) th The "images" array is filled with `CustomScene.Image`s, which are just objects of which contain information about the layered images of the scene. Here are the constructors of each image: ## "name" `string`\ -Ex. `"name": "scenes/sleep - myslugcat/abc"` (When the image is stored at `StreamingAssets/mods/myslugcat/scenes/sleep - myslugcat/abc.png` and (insert link)[`scene_folder`] is not defined) +Ex. `"name": "scenes/sleep - myslugcat/abc"` (When the image is stored at `StreamingAssets/mods/myslugcat/scenes/sleep - myslugcat/abc.png` and [`scene_folder`](https://github.com/nonAssociatedIdiot/SlugBaseRemixExtraDocs/blob/master/Docs/articles/scene-tutorial.md#scene_folder-optional) is not defined) -Name determines the filepath of the image shown. If (insert link)[`scene_folder`] is defined, SlugBase will look for the file at whatever folder (that is inside the mod folder) that it defines, instead of `StreamingAssets/mods/`. +Name determines the filepath of the image shown. If [`scene_folder`](https://github.com/nonAssociatedIdiot/SlugBaseRemixExtraDocs/blob/master/Docs/articles/scene-tutorial.md#scene_folder-optional) is defined, SlugBase will look for the file at whatever folder (that is inside the mod folder) that it defines, instead of `StreamingAssets/mods/`. ## "pos" `Vector2` From 8b0e25b0aee41e0dab563e40691e2be208be39c5 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 03:21:12 -0500 Subject: [PATCH 14/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index 1136c4b..1ccf5f7 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -1,7 +1,7 @@ # CustomScene A CustomScene is Slugbase's method of allowing an easy way for mod creators to add slugcat-specific scenes, such as unique select screens, sleep screens, or even intro sequences. -CustomScenes are stored either in the `slugbase/scenes/` folder as unique .json files, or inside of [CustomSlideshow](https://github.com/nonAssociatedIdiot/SlugBaseRemixExtraDocs/edit/master/Docs/articles/scene-tutorial.md)s. +CustomScenes are stored either in the `slugbase/scenes/` folder as unique .json files, or inside of [CustomSlideshow](https://github.com/nonAssociatedIdiot/SlugBaseRemixExtraDocs/edit/master/Docs/articles/slideshow-tutorial.md)s. # Basic Usage ## "id" `MenuScene.SceneID` (acts like a `string`)\ @@ -9,7 +9,7 @@ Ex. `"id": "Sleep_MySlugcat"` ID is a `SceneID`, which effectively is a string that no other scene should share. Instead of referencing a file name, all built-in SlugBase features reference whatever ID that is put here. -If no ID is defined, the scene will not be able to be referenced, unless it is a scene that is inside of a [CustomSlideshow](https://github.com/nonAssociatedIdiot/SlugBaseRemixExtraDocs/edit/master/Docs/articles/scene-tutorial.md). +If no ID is defined, the scene will not be able to be referenced, unless it is a scene that is inside of a [CustomSlideshow](https://github.com/nonAssociatedIdiot/SlugBaseRemixExtraDocs/edit/master/Docs/articles/slideshow-tutorial.md). ## "scene_folder" (Optional) `string`\ Ex. `"scene_folder": "scenes/sleep - myslugcat"` From b1d73aa4b375514886a196338d152b537a43dd77 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 03:22:32 -0500 Subject: [PATCH 15/19] Create slideshow-tutorial.md --- Docs/articles/slideshow-tutorial.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 Docs/articles/slideshow-tutorial.md diff --git a/Docs/articles/slideshow-tutorial.md b/Docs/articles/slideshow-tutorial.md new file mode 100644 index 0000000..462b4f9 --- /dev/null +++ b/Docs/articles/slideshow-tutorial.md @@ -0,0 +1,4 @@ +# CustomSlideshow +A CustomSlideshow is Slugbase's method of allowing an easy way for mod creators to add slugcat-specific slideshows, such as intro, dream, or ending sequences. + +CustomSlideshows are stored in the `slugbase/slideshows/` folder as unique .json files. From cc0f199be4592a84c9be0e523d8d0137c3434e47 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 03:22:51 -0500 Subject: [PATCH 16/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index 1ccf5f7..d9e64db 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -1,5 +1,5 @@ # CustomScene -A CustomScene is Slugbase's method of allowing an easy way for mod creators to add slugcat-specific scenes, such as unique select screens, sleep screens, or even intro sequences. +A CustomScene is Slugbase's method of allowing an easy way for mod creators to add slugcat-specific scenes, such as unique select screens, sleep screens, or even part of sequences such as intros. CustomScenes are stored either in the `slugbase/scenes/` folder as unique .json files, or inside of [CustomSlideshow](https://github.com/nonAssociatedIdiot/SlugBaseRemixExtraDocs/edit/master/Docs/articles/slideshow-tutorial.md)s. # Basic Usage From a75b70e4adeb31a16a409cef406526dbb12fa751 Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 14:54:42 -0500 Subject: [PATCH 17/19] Update slideshow-tutorial.md --- Docs/articles/slideshow-tutorial.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Docs/articles/slideshow-tutorial.md b/Docs/articles/slideshow-tutorial.md index 462b4f9..32cf7ca 100644 --- a/Docs/articles/slideshow-tutorial.md +++ b/Docs/articles/slideshow-tutorial.md @@ -2,3 +2,11 @@ A CustomSlideshow is Slugbase's method of allowing an easy way for mod creators to add slugcat-specific slideshows, such as intro, dream, or ending sequences. CustomSlideshows are stored in the `slugbase/slideshows/` folder as unique .json files. +# Basic Usage +## "id" +`SlideShow.SlideShowID` (acts like a `string`)\ +Ex. `"id": "Intro_MySlugcat"` + +ID is a `SlideShow.SlideShowID`, which effectively is a string that no other scene should share. Instead of referencing a file name, all built-in SlugBase features reference whatever ID that is put here. + +If no ID is defined, the scene will not be able to be referenced. From b93df675b70d2205ae0f7d3c8b3362af19a6f4fd Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 15:20:41 -0500 Subject: [PATCH 18/19] Update slideshow-tutorial.md --- Docs/articles/slideshow-tutorial.md | 51 +++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/Docs/articles/slideshow-tutorial.md b/Docs/articles/slideshow-tutorial.md index 32cf7ca..1a28a90 100644 --- a/Docs/articles/slideshow-tutorial.md +++ b/Docs/articles/slideshow-tutorial.md @@ -10,3 +10,54 @@ Ex. `"id": "Intro_MySlugcat"` ID is a `SlideShow.SlideShowID`, which effectively is a string that no other scene should share. Instead of referencing a file name, all built-in SlugBase features reference whatever ID that is put here. If no ID is defined, the scene will not be able to be referenced. +## "slideshow_folder" (Optional) +`string`\ +Ex. `"slideshow_folder": "scenes/intro - myslugcat"` + +SlideshowFolder is a `string`, acting as a directory from the root of your mod (usually a folder in `StreamingAssets/mods/`) of which all of the images within this scene will use instead of the root directory. Do not add a `/` to the end, as it may cause errors! + +(An example for how it works can be found here(insert link).) +## "music" +`CustomSlideshow.SlideshowMusic`\ +Ex. +``` +"music": { + "name": "RW_Outro_Theme_B", + "fade_in": 5 +} +``` +Music is a `CustomSlideshow.SlideshowMusic`, which is an object with two inputs: `"name"` and `"fade_in"`. `"name"` is a string representing the file name of the sound to use from the `StreamingAssets/music/songs` folder, and `"fade_in"` is a float representing the amount of seconds to fade the music in. +## "next_process" +`ProcessManager.ProcessID`\ +Ex. `"next_process": "Credits"` + +Process is a `ProcessManager.ProcessID`, which acts like a string. All of the available-to-reference processes are listed [here](https://rainworldmodding.miraheze.org/wiki/Slideshows_and_Scenes#Next_process). +# Using Scenes Within Slideshows +To use scenes within slideshows, first you must start with a `"scenes": []`, and fill the array with the json from each scene. However, these do not act like normal scenes in some ways. Mainly in that some of the focusing-related parameters of a scene are obsolete, and are replaced with the ability to control the focus and camera movement. Here are the added parameters of any given slideshow scene: +## "fade_in_start" +`float`\ +Ex. `"fade_in_start": 1.1` + +StartAt is a `float` that determines the time of which the scene will begin to fade in. The time is recorded in seconds from the point that the cutscene started playing, so keep in mind that all of the time-related parameters should be chronological (so that two scenes aren't playing at the same time). +## "fade_in_end" +`float`\ +Ex. `"fade_in_end": 3.5` + +FadeInDoneAt is a `float` that determines the time of which the scene will finish fading in. (This is not the length of how long the fading in is! You can calculate how long a given scene takes to fade in by doing `fade_in_end`-`fade_in_start`.) +## "fade_out_start" +`float`\ +Ex. `"fade_out_start": 9.2` + +FadeOutStartAt is a `float` that determines the time of which the scene will begin to fade out. (There are no parameters for how long the fading out is.) +## "camera_path" +`Vector3[]`\ +Ex. +``` +"camera_path": { + [0, 100, 0.5], + [10, 200, 0.7], + [-50, 150, 0.4] +} +``` + +CameraMovement is an array with `Vector3`s in it. The first/second numbers represent the x/y (in pixel position) of the camera, and the third number represents the depth of focus. From 0d120755597267746900910cf6e004a349c4cc4f Mon Sep 17 00:00:00 2001 From: nonAssociatedIdiot Date: Fri, 20 Dec 2024 15:21:10 -0500 Subject: [PATCH 19/19] Update scene-tutorial.md --- Docs/articles/scene-tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/articles/scene-tutorial.md b/Docs/articles/scene-tutorial.md index d9e64db..0a52e5d 100644 --- a/Docs/articles/scene-tutorial.md +++ b/Docs/articles/scene-tutorial.md @@ -59,7 +59,7 @@ Position is a `Vector2` (which is effectively an array of 2 integers) that deter `bool`\ Ex. `"flatmode": true` -If `true`, this image will display when in flat mode and will be hidden otherwise. +If `true`, this image will display when in flat mode and will be hidden otherwise. (When using flatmode, be sure that the image's depth is set to -1!) ## "depth" `float`\ Ex. `"depth": 2.5`