├── .gitignore ├── .idea └── .idea.Renpy Maker │ └── .idea │ ├── .gitignore │ ├── encodings.xml │ ├── indexLayout.xml │ └── vcs.xml ├── Assets ├── RenPy Maker.meta ├── RenPy Maker │ ├── Artwork.meta │ ├── Artwork │ │ ├── Ren'Py Maker Title.png │ │ ├── Ren'Py Maker Title.png.meta │ │ ├── screenshot.png │ │ └── screenshot.png.meta │ ├── Audio.meta │ ├── Audio │ │ ├── guitar.mp3 │ │ └── guitar.mp3.meta │ ├── BaseNode.cs │ ├── BaseNode.cs.meta │ ├── CallNode.cs │ ├── CallNode.cs.meta │ ├── CharacterNode.cs │ ├── CharacterNode.cs.meta │ ├── CommentNode.cs │ ├── CommentNode.cs.meta │ ├── DialogueNode.cs │ ├── DialogueNode.cs.meta │ ├── Editor.meta │ ├── Editor │ │ ├── CallEditor.cs │ │ ├── CallEditor.cs.meta │ │ ├── CharacterEditor.cs │ │ ├── CharacterEditor.cs.meta │ │ ├── CommentEditor.cs │ │ ├── CommentEditor.cs.meta │ │ ├── DialogueEditor.cs │ │ ├── DialogueEditor.cs.meta │ │ ├── HideEditor.cs │ │ ├── HideEditor.cs.meta │ │ ├── JumpEditor.cs │ │ ├── JumpEditor.cs.meta │ │ ├── LabelEditor.cs │ │ ├── LabelEditor.cs.meta │ │ ├── MenuEditor.cs │ │ ├── MenuEditor.cs.meta │ │ ├── MusicEditor.cs │ │ ├── MusicEditor.cs.meta │ │ ├── NarrateEditor.cs │ │ ├── NarrateEditor.cs.meta │ │ ├── NodeParserEditor.cs │ │ ├── NodeParserEditor.cs.meta │ │ ├── PauseEditor.cs │ │ ├── PauseEditor.cs.meta │ │ ├── QueueMusicEditor.cs │ │ ├── QueueMusicEditor.cs.meta │ │ ├── RenpyMakerEditor.cs │ │ ├── RenpyMakerEditor.cs.meta │ │ ├── ReturnEditor.cs │ │ ├── ReturnEditor.cs.meta │ │ ├── SceneEditor.cs │ │ ├── SceneEditor.cs.meta │ │ ├── ShowEditor.cs │ │ ├── ShowEditor.cs.meta │ │ ├── SoundEditor.cs │ │ ├── SoundEditor.cs.meta │ │ ├── StartEditor.cs │ │ ├── StartEditor.cs.meta │ │ ├── StopMusicEditor.cs │ │ ├── StopMusicEditor.cs.meta │ │ ├── TransitionEditor.cs │ │ └── TransitionEditor.cs.meta │ ├── HideNode.cs │ ├── HideNode.cs.meta │ ├── Images.meta │ ├── Images │ │ ├── background.png │ │ ├── background.png.meta │ │ ├── bedroom.png │ │ ├── bedroom.png.meta │ │ ├── cindy_bye.png │ │ ├── cindy_bye.png.meta │ │ ├── cindy_chuckle.png │ │ ├── cindy_chuckle.png.meta │ │ ├── cindy_direct.png │ │ ├── cindy_direct.png.meta │ │ ├── cindy_happy.png │ │ ├── cindy_happy.png.meta │ │ ├── cindy_hips.png │ │ ├── cindy_hips.png.meta │ │ ├── cindy_neutral.png │ │ ├── cindy_neutral.png.meta │ │ ├── cindy_reserved.png │ │ ├── cindy_reserved.png.meta │ │ ├── cindy_smile.png │ │ ├── cindy_smile.png.meta │ │ ├── close.png │ │ ├── close.png.meta │ │ ├── livingroom.png │ │ ├── livingroom.png.meta │ │ ├── lucy.png │ │ ├── lucy.png.meta │ │ ├── michael.png │ │ ├── michael.png.meta │ │ ├── restaurant.png │ │ ├── restaurant.png.meta │ │ ├── schoolroom.png │ │ ├── schoolroom.png.meta │ │ ├── side_cindy.png │ │ ├── side_cindy.png.meta │ │ ├── side_generic.png │ │ ├── side_generic.png.meta │ │ ├── side_lucy.png │ │ ├── side_lucy.png.meta │ │ ├── side_michael.png │ │ ├── side_michael.png.meta │ │ ├── side_unknown.png │ │ └── side_unknown.png.meta │ ├── JumpNode.cs │ ├── JumpNode.cs.meta │ ├── LabelNode.cs │ ├── LabelNode.cs.meta │ ├── MenuNode.cs │ ├── MenuNode.cs.meta │ ├── MusicNode.cs │ ├── MusicNode.cs.meta │ ├── NarrateNode.cs │ ├── NarrateNode.cs.meta │ ├── NodeParser.cs │ ├── NodeParser.cs.meta │ ├── PauseNode.cs │ ├── PauseNode.cs.meta │ ├── QueueMusicNode.cs │ ├── QueueMusicNode.cs.meta │ ├── RenPyScripts.meta │ ├── RenPyScripts │ │ ├── script.rpy │ │ └── script.rpy.meta │ ├── RenpyMaker.cs │ ├── RenpyMaker.cs.meta │ ├── Resources.meta │ ├── Resources │ │ ├── First Project.meta │ │ ├── First Project │ │ │ ├── First Project.asset │ │ │ └── First Project.asset.meta │ │ ├── Menus.meta │ │ ├── Menus │ │ │ ├── Global.asset │ │ │ ├── Global.asset.meta │ │ │ ├── Menus.asset │ │ │ ├── Menus.asset.meta │ │ │ ├── Start.asset │ │ │ └── Start.asset.meta │ │ ├── School.meta │ │ ├── School │ │ │ ├── Global.asset │ │ │ ├── Global.asset.meta │ │ │ ├── Lucy.asset │ │ │ ├── Lucy.asset.meta │ │ │ ├── Michael.asset │ │ │ ├── Michael.asset.meta │ │ │ ├── Music.asset │ │ │ ├── Music.asset.meta │ │ │ ├── Question.asset │ │ │ └── Question.asset.meta │ │ ├── Test.meta │ │ ├── Test │ │ │ ├── Global.asset │ │ │ ├── Global.asset.meta │ │ │ ├── Page 1.asset │ │ │ ├── Page 1.asset.meta │ │ │ ├── Page 2.asset │ │ │ └── Page 2.asset.meta │ │ ├── Tutorial.meta │ │ └── Tutorial │ │ │ ├── Ren'Py Maker Tutorial.asset │ │ │ └── Ren'Py Maker Tutorial.asset.meta │ ├── ReturnNode.cs │ ├── ReturnNode.cs.meta │ ├── SceneNode.cs │ ├── SceneNode.cs.meta │ ├── ShowNode.cs │ ├── ShowNode.cs.meta │ ├── SoundNode.cs │ ├── SoundNode.cs.meta │ ├── StartNode.cs │ ├── StartNode.cs.meta │ ├── StopMusicNode.cs │ ├── StopMusicNode.cs.meta │ ├── TransitionNode.cs │ └── TransitionNode.cs.meta ├── Scenes.meta ├── Scenes │ ├── RenPy Maker.unity │ └── RenPy Maker.unity.meta ├── TextMesh Pro.meta ├── TextMesh Pro │ ├── Documentation.meta │ ├── Documentation │ │ ├── TextMesh Pro User Guide 2016.pdf │ │ └── TextMesh Pro User Guide 2016.pdf.meta │ ├── Fonts.meta │ ├── Fonts │ │ ├── LiberationSans - OFL.txt │ │ ├── LiberationSans - OFL.txt.meta │ │ ├── LiberationSans.ttf │ │ └── LiberationSans.ttf.meta │ ├── Resources.meta │ ├── Resources │ │ ├── Fonts & Materials.meta │ │ ├── Fonts & Materials │ │ │ ├── LiberationSans SDF - Drop Shadow.mat │ │ │ ├── LiberationSans SDF - Drop Shadow.mat.meta │ │ │ ├── LiberationSans SDF - Fallback.asset │ │ │ ├── LiberationSans SDF - Fallback.asset.meta │ │ │ ├── LiberationSans SDF - Outline.mat │ │ │ ├── LiberationSans SDF - Outline.mat.meta │ │ │ ├── LiberationSans SDF.asset │ │ │ └── LiberationSans SDF.asset.meta │ │ ├── LineBreaking Following Characters.txt │ │ ├── LineBreaking Following Characters.txt.meta │ │ ├── LineBreaking Leading Characters.txt │ │ ├── LineBreaking Leading Characters.txt.meta │ │ ├── Sprite Assets.meta │ │ ├── Sprite Assets │ │ │ ├── EmojiOne.asset │ │ │ └── EmojiOne.asset.meta │ │ ├── Style Sheets.meta │ │ ├── Style Sheets │ │ │ ├── Default Style Sheet.asset │ │ │ └── Default Style Sheet.asset.meta │ │ ├── TMP Settings.asset │ │ └── TMP Settings.asset.meta │ ├── Shaders.meta │ ├── Shaders │ │ ├── TMP_Bitmap-Custom-Atlas.shader │ │ ├── TMP_Bitmap-Custom-Atlas.shader.meta │ │ ├── TMP_Bitmap-Mobile.shader │ │ ├── TMP_Bitmap-Mobile.shader.meta │ │ ├── TMP_Bitmap.shader │ │ ├── TMP_Bitmap.shader.meta │ │ ├── TMP_SDF Overlay.shader │ │ ├── TMP_SDF Overlay.shader.meta │ │ ├── TMP_SDF SSD.shader │ │ ├── TMP_SDF SSD.shader.meta │ │ ├── TMP_SDF-Mobile Masking.shader │ │ ├── TMP_SDF-Mobile Masking.shader.meta │ │ ├── TMP_SDF-Mobile Overlay.shader │ │ ├── TMP_SDF-Mobile Overlay.shader.meta │ │ ├── TMP_SDF-Mobile SSD.shader │ │ ├── TMP_SDF-Mobile SSD.shader.meta │ │ ├── TMP_SDF-Mobile.shader │ │ ├── TMP_SDF-Mobile.shader.meta │ │ ├── TMP_SDF-Surface-Mobile.shader │ │ ├── TMP_SDF-Surface-Mobile.shader.meta │ │ ├── TMP_SDF-Surface.shader │ │ ├── TMP_SDF-Surface.shader.meta │ │ ├── TMP_SDF.shader │ │ ├── TMP_SDF.shader.meta │ │ ├── TMP_Sprite.shader │ │ ├── TMP_Sprite.shader.meta │ │ ├── TMPro.cginc │ │ ├── TMPro.cginc.meta │ │ ├── TMPro_Mobile.cginc │ │ ├── TMPro_Mobile.cginc.meta │ │ ├── TMPro_Properties.cginc │ │ ├── TMPro_Properties.cginc.meta │ │ ├── TMPro_Surface.cginc │ │ └── TMPro_Surface.cginc.meta │ ├── Sprites.meta │ └── Sprites │ │ ├── EmojiOne Attribution.txt │ │ ├── EmojiOne Attribution.txt.meta │ │ ├── EmojiOne.json │ │ ├── EmojiOne.json.meta │ │ ├── EmojiOne.png │ │ └── EmojiOne.png.meta ├── xNode.meta └── xNode │ ├── Attributes.meta │ ├── Attributes │ ├── NodeEnum.cs │ └── NodeEnum.cs.meta │ ├── Editor.meta │ ├── Editor │ ├── AdvancedGenericMenu.cs │ ├── AdvancedGenericMenu.cs.meta │ ├── Drawers.meta │ ├── Drawers │ │ ├── NodeEnumDrawer.cs │ │ ├── NodeEnumDrawer.cs.meta │ │ ├── Odin.meta │ │ └── Odin │ │ │ ├── InNodeEditorAttributeProcessor.cs │ │ │ ├── InNodeEditorAttributeProcessor.cs.meta │ │ │ ├── InputAttributeDrawer.cs │ │ │ ├── InputAttributeDrawer.cs.meta │ │ │ ├── OutputAttributeDrawer.cs │ │ │ └── OutputAttributeDrawer.cs.meta │ ├── GraphAndNodeEditor.cs │ ├── GraphAndNodeEditor.cs.meta │ ├── GraphRenameFixAssetProcessor.cs │ ├── GraphRenameFixAssetProcessor.cs.meta │ ├── Internal.meta │ ├── Internal │ │ ├── RerouteReference.cs │ │ └── RerouteReference.cs.meta │ ├── NodeEditor.cs │ ├── NodeEditor.cs.meta │ ├── NodeEditorAction.cs │ ├── NodeEditorAction.cs.meta │ ├── NodeEditorAssetModProcessor.cs │ ├── NodeEditorAssetModProcessor.cs.meta │ ├── NodeEditorBase.cs │ ├── NodeEditorBase.cs.meta │ ├── NodeEditorGUI.cs │ ├── NodeEditorGUI.cs.meta │ ├── NodeEditorGUILayout.cs │ ├── NodeEditorGUILayout.cs.meta │ ├── NodeEditorPreferences.cs │ ├── NodeEditorPreferences.cs.meta │ ├── NodeEditorReflection.cs │ ├── NodeEditorReflection.cs.meta │ ├── NodeEditorResources.cs │ ├── NodeEditorResources.cs.meta │ ├── NodeEditorUtilities.cs │ ├── NodeEditorUtilities.cs.meta │ ├── NodeEditorWindow.cs │ ├── NodeEditorWindow.cs.meta │ ├── NodeGraphEditor.cs │ ├── NodeGraphEditor.cs.meta │ ├── NodeGraphImporter.cs │ ├── NodeGraphImporter.cs.meta │ ├── RenamePopup.cs │ ├── RenamePopup.cs.meta │ ├── Resources.meta │ ├── Resources │ │ ├── ScriptTemplates.meta │ │ ├── ScriptTemplates │ │ │ ├── xNode_NodeGraphTemplate.cs.txt │ │ │ ├── xNode_NodeGraphTemplate.cs.txt.meta │ │ │ ├── xNode_NodeTemplate.cs.txt │ │ │ └── xNode_NodeTemplate.cs.txt.meta │ │ ├── xnode_dot.png │ │ ├── xnode_dot.png.meta │ │ ├── xnode_dot_outer.png │ │ ├── xnode_dot_outer.png.meta │ │ ├── xnode_node.png │ │ ├── xnode_node.png.meta │ │ ├── xnode_node_highlight.png │ │ ├── xnode_node_highlight.png.meta │ │ ├── xnode_node_workfile.psd │ │ └── xnode_node_workfile.psd.meta │ ├── SceneGraphEditor.cs │ ├── SceneGraphEditor.cs.meta │ ├── XNodeEditor.asmdef │ └── XNodeEditor.asmdef.meta │ ├── Node.cs │ ├── Node.cs.meta │ ├── NodeDataCache.cs │ ├── NodeDataCache.cs.meta │ ├── NodeGraph.cs │ ├── NodeGraph.cs.meta │ ├── NodePort.cs │ ├── NodePort.cs.meta │ ├── SceneGraph.cs │ ├── SceneGraph.cs.meta │ ├── XNode.asmdef │ └── XNode.asmdef.meta ├── LICENSE.md ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── TagManager.asset ├── TimeManager.asset ├── TimelineSettings.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore 4 | # 5 | !/[Ll]ibrary/*.asset 6 | /[Ll]ibrary/ 7 | /[Tt]emp/ 8 | /[Oo]bj/ 9 | /[Bb]uild/ 10 | /[Bb]uilds/ 11 | /[Ll]ogs/ 12 | /[Uu]ser[Ss]ettings/ 13 | 14 | # MemoryCaptures can get excessive in size. 15 | # They also could contain extremely sensitive data 16 | /[Mm]emoryCaptures/ 17 | 18 | # Recordings can get excessive in size 19 | /[Rr]ecordings/ 20 | 21 | # Uncomment this line if you wish to ignore the asset store tools plugin 22 | # /[Aa]ssets/AssetStoreTools* 23 | 24 | # Autogenerated Jetbrains Rider plugin 25 | /[Aa]ssets/Plugins/Editor/JetBrains* 26 | 27 | # Visual Studio cache directory 28 | .vs/ 29 | 30 | # Gradle cache directory 31 | .gradle/ 32 | 33 | # Autogenerated VS/MD/Consulo solution and project files 34 | ExportedObj/ 35 | .consulo/ 36 | *.csproj 37 | *.unityproj 38 | *.sln 39 | *.suo 40 | *.tmp 41 | *.user 42 | *.userprefs 43 | *.pidb 44 | *.booproj 45 | *.svd 46 | *.pdb 47 | *.mdb 48 | *.opendb 49 | *.VC.db 50 | 51 | # Unity3D generated meta files 52 | *.pidb.meta 53 | *.pdb.meta 54 | *.mdb.meta 55 | 56 | # Unity3D generated file on crash reports 57 | sysinfo.txt 58 | 59 | # Builds 60 | *.apk 61 | *.aab 62 | *.unitypackage 63 | *.app 64 | 65 | # Crashlytics generated file 66 | crashlytics-build.properties 67 | 68 | # Packed Addressables 69 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 70 | 71 | # Temporary auto-generated Android Assets 72 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 73 | /[Aa]ssets/[Ss]treamingAssets/aa/* 74 | -------------------------------------------------------------------------------- /.idea/.idea.Renpy Maker/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /modules.xml 6 | /contentModel.xml 7 | /projectSettingsUpdater.xml 8 | /.idea.Renpy Maker.iml 9 | # Editor-based HTTP Client requests 10 | /httpRequests/ 11 | # Datasource local storage ignored files 12 | /dataSources/ 13 | /dataSources.local.xml 14 | -------------------------------------------------------------------------------- /.idea/.idea.Renpy Maker/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/.idea.Renpy Maker/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/.idea.Renpy Maker/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Assets/RenPy Maker.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7052c20f71523544aa02aa278f9e47c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Artwork.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 35382ca3e3178ce42aa3ea1b0113b615 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Artwork/Ren'Py Maker Title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Artwork/Ren'Py Maker Title.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Artwork/Ren'Py Maker Title.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea0cf71b114530e45871ea0a28fdc2d7 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 1 36 | aniso: 1 37 | mipBias: 0 38 | wrapU: 0 39 | wrapV: 0 40 | wrapW: 0 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 2048 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 0 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | spriteSheet: 79 | serializedVersion: 2 80 | sprites: [] 81 | outline: [] 82 | physicsShape: [] 83 | bones: [] 84 | spriteID: 85 | internalID: 0 86 | vertices: [] 87 | indices: 88 | edges: [] 89 | weights: [] 90 | secondaryTextures: [] 91 | spritePackingTag: 92 | pSDRemoveMatte: 0 93 | pSDShowRemoveMatteOption: 0 94 | userData: 95 | assetBundleName: 96 | assetBundleVariant: 97 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Artwork/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Artwork/screenshot.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Artwork/screenshot.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b3fe8552c76b45458756c3f467271a6 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 1 36 | aniso: 1 37 | mipBias: 0 38 | wrapU: 0 39 | wrapV: 0 40 | wrapW: 0 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 2048 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 0 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | spriteSheet: 79 | serializedVersion: 2 80 | sprites: [] 81 | outline: [] 82 | physicsShape: [] 83 | bones: [] 84 | spriteID: 85 | internalID: 0 86 | vertices: [] 87 | indices: 88 | edges: [] 89 | weights: [] 90 | secondaryTextures: [] 91 | spritePackingTag: 92 | pSDRemoveMatte: 0 93 | pSDShowRemoveMatteOption: 0 94 | userData: 95 | assetBundleName: 96 | assetBundleVariant: 97 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Audio.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 256e7cf3904b9c74c8dedba3ff3a2220 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Audio/guitar.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Audio/guitar.mp3 -------------------------------------------------------------------------------- /Assets/RenPy Maker/Audio/guitar.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee5c677334e85fb45bd91ffeee54ef3c 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/BaseNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a9fc72c900acc2941b11dabf2f39f4fa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/CallNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Call")] 8 | public class CallNode : BaseNode 9 | { 10 | [Input] public int entry; 11 | 12 | public bool enabled = true; 13 | public string label; 14 | [HideInInspector] public bool errorStatus; 15 | private int jumpIndex; 16 | private bool evaluated; 17 | private List labels = new List(); 18 | 19 | private int _nodeId; 20 | 21 | public override bool GetEnabledStatus() 22 | { 23 | return enabled; 24 | } 25 | 26 | public override void SetNodeId(int id) 27 | { 28 | _nodeId = id; 29 | } 30 | 31 | public override int GetNodeId() 32 | { 33 | return _nodeId; 34 | } 35 | 36 | private void Reset() 37 | { 38 | this.AddDynamicOutput(typeof(int), ConnectionType.Override, TypeConstraint.None, "exit"); 39 | } 40 | 41 | public override string GetString() 42 | { 43 | return label; 44 | } 45 | 46 | public override string GetNodeType() 47 | { 48 | return "CallNode"; 49 | } 50 | 51 | public override void SetJumpIndex(int index) 52 | { 53 | jumpIndex = index; 54 | } 55 | 56 | public override int GetJumpIndex() 57 | { 58 | return jumpIndex; 59 | } 60 | 61 | public override void AddToLabelList(string newLabel) 62 | { 63 | labels.Add(newLabel); 64 | } 65 | 66 | public override List GetLabelList() 67 | { 68 | return labels; 69 | } 70 | 71 | public override void ClearLabelList() 72 | { 73 | labels.Clear(); 74 | } 75 | 76 | public override bool GetEvaluated() 77 | { 78 | return evaluated; 79 | } 80 | 81 | public override void SetEvaluated(bool flag) 82 | { 83 | evaluated = flag; 84 | } 85 | 86 | public override void SetError() 87 | { 88 | errorStatus = true; 89 | } 90 | 91 | public override string GetError() 92 | { 93 | errorStatus = false; 94 | 95 | // Don't check the input port 96 | 97 | foreach (NodePort p in Outputs) 98 | if (!p.IsConnected) 99 | errorStatus = true; 100 | 101 | if (errorStatus) 102 | return "Unconnected ports"; 103 | 104 | NodePort port = GetOutputPort("exit"); 105 | if (port != null) 106 | { 107 | BaseNode nextNode = port.Connection.node as BaseNode; 108 | if (nextNode != null && nextNode == this) 109 | { 110 | errorStatus = true; 111 | return "Cannot connect outputs to self"; 112 | } 113 | } 114 | 115 | if (string.IsNullOrEmpty(label)) 116 | { 117 | errorStatus = true; 118 | return "No label name"; 119 | } 120 | 121 | if (!RenpyMaker.CheckForAlphaNumeric(label)) 122 | { 123 | errorStatus = true; 124 | return "Label must start with a letter and use alphanumeric characters"; 125 | } 126 | 127 | return "No Error"; 128 | } 129 | } 130 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/CallNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6edb7ec45afac8f4e9fc52888d9c0c51 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/CharacterNode.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace RenPy_Maker 4 | { 5 | [CreateNodeMenu("Nodes/Character")] 6 | public class CharacterNode : BaseNode 7 | { 8 | public bool enabled = true; 9 | 10 | public string character; 11 | [HideInInspector] public string previousName; 12 | public Texture2D image; 13 | public Color color = Color.white; 14 | [HideInInspector] public bool errorStatus; 15 | 16 | private int _nodeId; 17 | 18 | public override bool GetEnabledStatus() 19 | { 20 | return enabled; 21 | } 22 | 23 | public override void SetNodeId(int id) 24 | { 25 | _nodeId = id; 26 | } 27 | 28 | public override int GetNodeId() 29 | { 30 | return _nodeId; 31 | } 32 | 33 | public override string GetCharacter() 34 | { 35 | return character; 36 | } 37 | 38 | public override Color GetColor() 39 | { 40 | return color; 41 | } 42 | 43 | public override string GetNodeType() 44 | { 45 | return "CharacterNode"; 46 | } 47 | 48 | public override Texture2D GetImage() 49 | { 50 | return image; 51 | } 52 | 53 | public override void SetError() 54 | { 55 | errorStatus = true; 56 | } 57 | 58 | public override string GetError() 59 | { 60 | errorStatus = false; 61 | 62 | if (!RenpyMaker.CheckForAlphaNumeric(character)) 63 | { 64 | errorStatus = true; 65 | return "Character name must start with a letter and use alphanumeric characters"; 66 | } 67 | 68 | if (string.IsNullOrEmpty(character)) 69 | { 70 | errorStatus = true; 71 | return "No character name"; 72 | } 73 | 74 | if (image == null) 75 | { 76 | errorStatus = true; 77 | return "No image texture"; 78 | } 79 | 80 | return "No Error"; 81 | } 82 | } 83 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/CharacterNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f20df7b5dd5e1142a8896c6004c019c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/CommentNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Comment")] 8 | public class CommentNode : BaseNode 9 | { 10 | [Input] public int entry; 11 | 12 | public bool enabled = true; 13 | 14 | // [TextArea (6, 5)] 15 | public string comment; 16 | [HideInInspector] public bool errorStatus; 17 | private int jumpIndex; 18 | private bool evaluated; 19 | private List labels = new List(); 20 | 21 | private int _nodeId; 22 | 23 | public override bool GetEnabledStatus() 24 | { 25 | return enabled; 26 | } 27 | 28 | public override void SetNodeId(int id) 29 | { 30 | _nodeId = id; 31 | } 32 | 33 | public override int GetNodeId() 34 | { 35 | return _nodeId; 36 | } 37 | 38 | private void Reset() 39 | { 40 | this.AddDynamicOutput(typeof(int), ConnectionType.Override, TypeConstraint.None, "exit"); 41 | } 42 | 43 | public override string GetString() 44 | { 45 | return comment; 46 | } 47 | 48 | public override string GetNodeType() 49 | { 50 | return "CommentNode"; 51 | } 52 | 53 | public override void SetJumpIndex(int index) 54 | { 55 | jumpIndex = index; 56 | } 57 | 58 | public override int GetJumpIndex() 59 | { 60 | return jumpIndex; 61 | } 62 | 63 | public override void AddToLabelList(string newLabel) 64 | { 65 | labels.Add(newLabel); 66 | } 67 | 68 | public override List GetLabelList() 69 | { 70 | return labels; 71 | } 72 | 73 | public override void ClearLabelList() 74 | { 75 | labels.Clear(); 76 | } 77 | 78 | public override bool GetEvaluated() 79 | { 80 | return evaluated; 81 | } 82 | 83 | public override void SetEvaluated(bool flag) 84 | { 85 | evaluated = flag; 86 | } 87 | 88 | public override void SetError() 89 | { 90 | errorStatus = true; 91 | } 92 | 93 | public override string GetError() 94 | { 95 | errorStatus = false; 96 | 97 | foreach (NodePort p in Inputs) 98 | if (!p.IsConnected) 99 | errorStatus = true; 100 | 101 | foreach (NodePort p in Outputs) 102 | if (!p.IsConnected) 103 | errorStatus = true; 104 | 105 | if (errorStatus) 106 | return "Unconnected ports"; 107 | 108 | NodePort port = GetOutputPort("exit"); 109 | if (port != null) 110 | { 111 | BaseNode nextNode = port.Connection.node as BaseNode; 112 | if (nextNode != null && nextNode == this) 113 | { 114 | errorStatus = true; 115 | return "Cannot connect outputs to self"; 116 | } 117 | } 118 | 119 | if (string.IsNullOrEmpty(comment)) 120 | { 121 | errorStatus = true; 122 | return "No comment content"; 123 | } 124 | 125 | return "No Error"; 126 | } 127 | } 128 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/CommentNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 090ac1613ba514f438588c595e43c172 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/DialogueNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1cecb448dd947f58448cb2d380c82a5 3 | timeCreated: 1672167355 -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02e87a61b4b43ee488d00c8b644abc74 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/CallEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(CallNode))] 8 | public class CallEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private CallNode _callNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_callNode == null) 21 | { 22 | _callNode = target as CallNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | EditorGUIUtility.labelWidth = 50; 28 | EditorGUILayout.BeginHorizontal(); 29 | EditorGUILayout.PrefixLabel("Label"); 30 | _callNode.label = EditorGUILayout.TextField(_callNode.label); 31 | //NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("function")); 32 | EditorGUILayout.EndHorizontal(); 33 | 34 | NodeEditorGUILayout.PortPair(_callNode.GetInputPort("entry"), _callNode.GetOutputPort("exit")); 35 | //NodeEditorGUILayout.PortField(_callNode.GetInputPort("entry"), GUILayout.MinWidth(0)); 36 | serializedObject.ApplyModifiedProperties(); 37 | } 38 | 39 | public void SetEnabledState(bool state) 40 | { 41 | _callNode.enabled = state; 42 | } 43 | 44 | public override void AddContextMenuItems(GenericMenu menu) 45 | { 46 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 47 | bool enabled = enabledProp.boolValue; 48 | 49 | if (enabled) 50 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 51 | else 52 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 53 | 54 | base.AddContextMenuItems(menu); 55 | } 56 | 57 | public override Color GetTint() 58 | { 59 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 60 | bool enabled = enabledProp.boolValue; 61 | 62 | if (enabled) 63 | { 64 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 65 | _onError = errorProp.boolValue; 66 | 67 | if (_onError) 68 | return new Color(0.5f, 0, 0); 69 | else 70 | return NodeEditorPreferences.GetSettings().tintColor; 71 | } 72 | else 73 | { 74 | return new Color(0.1f, 0.1f, 0.1f); 75 | } 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/CallEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7454416be4351394592253622c1fcb05 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/CharacterEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f058b47e8ace2541ac6756f04d8a524 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/CommentEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(CommentNode))] 8 | public class CommentEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private CommentNode _commentNode; 12 | private bool toggle; 13 | 14 | public override void OnHeaderGUI() 15 | { 16 | //toggle = GUILayout.Toggle(toggle, ""); 17 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 18 | } 19 | 20 | public override void OnBodyGUI() 21 | { 22 | if (_commentNode == null) 23 | { 24 | _commentNode = target as CommentNode; 25 | } 26 | 27 | serializedObject.Update(); 28 | 29 | GUILayout.BeginVertical(); 30 | GUILayout.Space(90); 31 | GUILayout.EndVertical(); 32 | GUIStyle tempStyle = new GUIStyle(); 33 | tempStyle.normal.background = RenpyMaker.MakeTex(190, 90, new Color(1f, 1f, 0.8f), new RectOffset(0, 0, 0, 0), Color.black); 34 | EditorStyles.textField.wordWrap = true; 35 | _commentNode.comment = EditorGUI.TextArea(new Rect(6, 30, 196, 90), _commentNode.comment, tempStyle); 36 | 37 | NodeEditorGUILayout.PortPair(_commentNode.GetInputPort("entry"), _commentNode.GetOutputPort("exit")); 38 | 39 | serializedObject.ApplyModifiedProperties(); 40 | } 41 | 42 | public void SetEnabledState(bool state) 43 | { 44 | _commentNode.enabled = state; 45 | } 46 | 47 | public override void AddContextMenuItems(GenericMenu menu) 48 | { 49 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 50 | bool enabled = enabledProp.boolValue; 51 | 52 | if (enabled) 53 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 54 | else 55 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 56 | 57 | base.AddContextMenuItems(menu); 58 | } 59 | 60 | public override Color GetTint() 61 | { 62 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 63 | bool enabled = enabledProp.boolValue; 64 | 65 | if (enabled) 66 | { 67 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 68 | _onError = errorProp.boolValue; 69 | 70 | if (_onError) 71 | return new Color(0.5f, 0, 0); 72 | else 73 | return NodeEditorPreferences.GetSettings().tintColor; 74 | } 75 | else 76 | { 77 | return new Color(0.1f, 0.1f, 0.1f); 78 | } 79 | } 80 | } 81 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/CommentEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28c4449eb36349a0a25467b5bf4641ca 3 | timeCreated: 1671479667 -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/DialogueEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1cf625af63b94366862864752978ee28 3 | timeCreated: 1672167341 -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/HideEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(HideNode))] 8 | public class HideEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private HideNode _hideNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_hideNode == null) 21 | { 22 | _hideNode = target as HideNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | EditorGUIUtility.labelWidth = 60; 28 | SerializedProperty property = serializedObject.FindProperty("image"); 29 | NodeEditorGUILayout.PropertyField(property); 30 | Rect rect = GUILayoutUtility.GetLastRect(); 31 | 32 | NodeEditorGUILayout.PortPair(_hideNode.GetInputPort("entry"), _hideNode.GetOutputPort("exit")); 33 | 34 | serializedObject.ApplyModifiedProperties(); 35 | 36 | if (rect.Contains(Event.current.mousePosition)) 37 | { 38 | GUI.Label(new Rect(4, rect.y + 18, 200, 100), 39 | new GUIContent("", (Texture2D)property.objectReferenceValue)); 40 | } 41 | } 42 | 43 | public void SetEnabledState(bool state) 44 | { 45 | _hideNode.enabled = state; 46 | } 47 | 48 | public override void AddContextMenuItems(GenericMenu menu) 49 | { 50 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 51 | bool enabled = enabledProp.boolValue; 52 | 53 | if (enabled) 54 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 55 | else 56 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 57 | 58 | base.AddContextMenuItems(menu); 59 | } 60 | 61 | public override Color GetTint() 62 | { 63 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 64 | bool enabled = enabledProp.boolValue; 65 | 66 | if (enabled) 67 | { 68 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 69 | _onError = errorProp.boolValue; 70 | 71 | if (_onError) 72 | return new Color(0.5f, 0, 0); 73 | else 74 | return NodeEditorPreferences.GetSettings().tintColor; 75 | } 76 | else 77 | { 78 | return new Color(0.1f, 0.1f, 0.1f); 79 | } 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/HideEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b949153fceae854190665230aec2e38 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/JumpEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(JumpNode))] 8 | public class JumpEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private JumpNode _jumpNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_jumpNode == null) 21 | { 22 | _jumpNode = target as JumpNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("label")); 28 | 29 | NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("entry")); 30 | 31 | serializedObject.ApplyModifiedProperties(); 32 | } 33 | /* 34 | public void SetEnabledState(bool state) 35 | { 36 | _jumpNode.enabled = state; 37 | } 38 | 39 | public override void AddContextMenuItems(GenericMenu menu) 40 | { 41 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 42 | bool enabled = enabledProp.boolValue; 43 | 44 | if (enabled) 45 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 46 | else 47 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 48 | 49 | base.AddContextMenuItems(menu); 50 | } 51 | */ 52 | public override Color GetTint() 53 | { 54 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 55 | bool enabled = enabledProp.boolValue; 56 | 57 | if (enabled) 58 | { 59 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 60 | _onError = errorProp.boolValue; 61 | 62 | if (_onError) 63 | return new Color(0.5f, 0, 0); 64 | else 65 | return NodeEditorPreferences.GetSettings().tintColor; 66 | } 67 | else 68 | { 69 | return new Color(0.1f, 0.1f, 0.1f); 70 | } 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/JumpEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92766222d66ab1340a882dff19c267f9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/LabelEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(LabelNode))] 8 | public class LabelEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private LabelNode _labelNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_labelNode == null) 21 | { 22 | _labelNode = target as LabelNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("label")); 28 | 29 | NodeEditorGUILayout.PortPair(_labelNode.GetInputPort("entry"), _labelNode.GetOutputPort("exit")); 30 | 31 | serializedObject.ApplyModifiedProperties(); 32 | } 33 | /* 34 | public void SetEnabledState(bool state) 35 | { 36 | _labelNode.enabled = state; 37 | } 38 | 39 | public override void AddContextMenuItems(GenericMenu menu) 40 | { 41 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 42 | bool enabled = enabledProp.boolValue; 43 | 44 | if (enabled) 45 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 46 | else 47 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 48 | 49 | base.AddContextMenuItems(menu); 50 | } 51 | */ 52 | public override Color GetTint() 53 | { 54 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 55 | bool enabled = enabledProp.boolValue; 56 | 57 | if (enabled) 58 | { 59 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 60 | _onError = errorProp.boolValue; 61 | 62 | if (_onError) 63 | return new Color(0.5f, 0, 0); 64 | else 65 | return NodeEditorPreferences.GetSettings().tintColor; 66 | } 67 | else 68 | { 69 | return new Color(0.1f, 0.1f, 0.1f); 70 | } 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/LabelEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bafa84857656d8a46b6f079dbe0dec9b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/MenuEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c933726d8d18a2a489f3f3dd7ed281e8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/MusicEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(MusicNode))] 8 | public class MusicEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private MusicNode _musicNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_musicNode == null) 21 | { 22 | _musicNode = target as MusicNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | EditorGUILayout.PrefixLabel("Audio Source"); 28 | _musicNode.source = (AudioClip)EditorGUILayout.ObjectField(_musicNode.source, typeof(AudioClip), false); 29 | _musicNode.fadein = EditorGUILayout.FloatField("Fade In", _musicNode.fadein); 30 | if (_musicNode.fadein < 0) 31 | _musicNode.fadein = 0; 32 | _musicNode.fadeout = EditorGUILayout.FloatField("Fade Out", _musicNode.fadeout); 33 | if (_musicNode.fadeout < 0) 34 | _musicNode.fadeout = 0; 35 | 36 | NodeEditorGUILayout.PortPair(_musicNode.GetInputPort("entry"), _musicNode.GetOutputPort("exit")); 37 | 38 | serializedObject.ApplyModifiedProperties(); 39 | } 40 | 41 | public void SetEnabledState(bool state) 42 | { 43 | _musicNode.enabled = state; 44 | } 45 | 46 | public override void AddContextMenuItems(GenericMenu menu) 47 | { 48 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 49 | bool enabled = enabledProp.boolValue; 50 | 51 | if (enabled) 52 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 53 | else 54 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 55 | 56 | base.AddContextMenuItems(menu); 57 | } 58 | 59 | public override Color GetTint() 60 | { 61 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 62 | bool enabled = enabledProp.boolValue; 63 | 64 | if (enabled) 65 | { 66 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 67 | _onError = errorProp.boolValue; 68 | 69 | if (_onError) 70 | return new Color(0.5f, 0, 0); 71 | else 72 | return NodeEditorPreferences.GetSettings().tintColor; 73 | } 74 | else 75 | { 76 | return new Color(0.1f, 0.1f, 0.1f); 77 | } 78 | } 79 | } 80 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/MusicEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: de623800b1e6fba4394429f5050c31a1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/NarrateEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5653e006f86058f4a9bd69a16807464d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/NodeParserEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using XNodeEditor; 3 | 4 | namespace RenPy_Maker 5 | { 6 | [CustomEditor(typeof(NodeParser))] 7 | public class NodeParserEditor : Editor 8 | { 9 | private int _choiceIndex; 10 | private NodeParser _nodeParser; 11 | 12 | public override void OnInspectorGUI() 13 | { 14 | if (_nodeParser == null) 15 | { 16 | _nodeParser = target as NodeParser; 17 | } 18 | 19 | _choiceIndex = _nodeParser.GetResolutionIndex(); 20 | EditorGUILayout.PrefixLabel("Ren'Py Resolution"); 21 | EditorGUI.BeginChangeCheck(); 22 | _choiceIndex = EditorGUILayout.Popup(_choiceIndex, _nodeParser.GetResolutions().ToArray()); 23 | if (EditorGUI.EndChangeCheck()) 24 | { 25 | _nodeParser.SetResolutonIndex(_choiceIndex); 26 | } 27 | 28 | DrawDefaultInspector(); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/NodeParserEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 529e0f269543484bb8b3bd6b9652b09e 3 | timeCreated: 1671700421 -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/PauseEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(PauseNode))] 8 | public class PauseEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private PauseNode _pauseNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_pauseNode == null) 21 | { 22 | _pauseNode = target as PauseNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("seconds")); 28 | 29 | NodeEditorGUILayout.PortPair(_pauseNode.GetInputPort("entry"), _pauseNode.GetOutputPort("exit")); 30 | 31 | serializedObject.ApplyModifiedProperties(); 32 | } 33 | 34 | public void SetEnabledState(bool state) 35 | { 36 | _pauseNode.enabled = state; 37 | } 38 | 39 | public override void AddContextMenuItems(GenericMenu menu) 40 | { 41 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 42 | bool enabled = enabledProp.boolValue; 43 | 44 | if (enabled) 45 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 46 | else 47 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 48 | 49 | base.AddContextMenuItems(menu); 50 | } 51 | 52 | public override Color GetTint() 53 | { 54 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 55 | bool enabled = enabledProp.boolValue; 56 | 57 | if (enabled) 58 | { 59 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 60 | _onError = errorProp.boolValue; 61 | 62 | if (_onError) 63 | return new Color(0.5f, 0, 0); 64 | else 65 | return NodeEditorPreferences.GetSettings().tintColor; 66 | } 67 | else 68 | { 69 | return new Color(0.1f, 0.1f, 0.1f); 70 | } 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/PauseEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c65ad2aaf753c543bdf9c3dd9305a4e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/QueueMusicEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(QueueMusicNode))] 8 | public class QueueMusicEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private QueueMusicNode _queueMusicNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_queueMusicNode == null) 21 | { 22 | _queueMusicNode = target as QueueMusicNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | EditorGUILayout.PrefixLabel("Audio Source"); 28 | _queueMusicNode.source = (AudioClip)EditorGUILayout.ObjectField(_queueMusicNode.source, typeof(AudioClip), false); 29 | 30 | NodeEditorGUILayout.PortPair(_queueMusicNode.GetInputPort("entry"), _queueMusicNode.GetOutputPort("exit")); 31 | 32 | serializedObject.ApplyModifiedProperties(); 33 | } 34 | 35 | public void SetEnabledState(bool state) 36 | { 37 | _queueMusicNode.enabled = state; 38 | } 39 | 40 | public override void AddContextMenuItems(GenericMenu menu) 41 | { 42 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 43 | bool enabled = enabledProp.boolValue; 44 | 45 | if (enabled) 46 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 47 | else 48 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 49 | 50 | base.AddContextMenuItems(menu); 51 | } 52 | 53 | public override Color GetTint() 54 | { 55 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 56 | bool enabled = enabledProp.boolValue; 57 | 58 | if (enabled) 59 | { 60 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 61 | _onError = errorProp.boolValue; 62 | 63 | if (_onError) 64 | return new Color(0.5f, 0, 0); 65 | else 66 | return NodeEditorPreferences.GetSettings().tintColor; 67 | } 68 | else 69 | { 70 | return new Color(0.1f, 0.1f, 0.1f); 71 | } 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/QueueMusicEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00a62f72194c6e847915e96bd89fdf21 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/RenpyMakerEditor.cs: -------------------------------------------------------------------------------- 1 | using XNodeEditor; 2 | 3 | namespace RenPy_Maker 4 | { 5 | [CustomNodeGraphEditor(typeof(RenpyMaker), "RenpyMaker.Settings")] 6 | public class RenpyMakerEditor : NodeGraphEditor 7 | { 8 | public override string GetPortTooltip(XNode.NodePort port) 9 | { 10 | return null; 11 | } 12 | 13 | public override void OnDropObjects(UnityEngine.Object[] objects) 14 | { 15 | 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/RenpyMakerEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6bce2e1582c2eb49bd7373105e0a361 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/ReturnEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(ReturnNode))] 8 | public class ReturnEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private ReturnNode _returnNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_returnNode == null) 21 | { 22 | _returnNode = target as ReturnNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("entry")); 28 | 29 | serializedObject.ApplyModifiedProperties(); 30 | } 31 | /* 32 | public void SetEnabledState(bool state) 33 | { 34 | _returnNode.enabled = state; 35 | } 36 | 37 | public override void AddContextMenuItems(GenericMenu menu) 38 | { 39 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 40 | bool enabled = enabledProp.boolValue; 41 | 42 | if (enabled) 43 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 44 | else 45 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 46 | 47 | base.AddContextMenuItems(menu); 48 | } 49 | */ 50 | public override Color GetTint() 51 | { 52 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 53 | bool enabled = enabledProp.boolValue; 54 | 55 | if (enabled) 56 | { 57 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 58 | _onError = errorProp.boolValue; 59 | 60 | if (_onError) 61 | return new Color(0.5f, 0, 0); 62 | else 63 | return NodeEditorPreferences.GetSettings().tintColor; 64 | } 65 | else 66 | { 67 | return new Color(0.1f, 0.1f, 0.1f); 68 | } 69 | } 70 | } 71 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/ReturnEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4829bedc7434016a78bd7783c4f777e 3 | timeCreated: 1671484434 -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/SceneEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(SceneNode))] 8 | public class SceneEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private SceneNode _sceneNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_sceneNode == null) 21 | { 22 | _sceneNode = target as SceneNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | SerializedProperty property = serializedObject.FindProperty("image"); 27 | NodeEditorGUILayout.PropertyField(property); 28 | Rect rect = GUILayoutUtility.GetLastRect(); 29 | 30 | NodeEditorGUILayout.PortPair(_sceneNode.GetInputPort("entry"), _sceneNode.GetOutputPort("exit")); 31 | serializedObject.ApplyModifiedProperties(); 32 | 33 | if (rect.Contains(Event.current.mousePosition)) 34 | { 35 | GUI.Label(new Rect(4, rect.y + 18, 200, 100), 36 | new GUIContent("", (Texture2D)property.objectReferenceValue)); 37 | } 38 | } 39 | 40 | public void SetEnabledState(bool state) 41 | { 42 | _sceneNode.enabled = state; 43 | } 44 | 45 | public override void AddContextMenuItems(GenericMenu menu) 46 | { 47 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 48 | bool enabled = enabledProp.boolValue; 49 | 50 | if (enabled) 51 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 52 | else 53 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 54 | 55 | base.AddContextMenuItems(menu); 56 | } 57 | 58 | public override Color GetTint() 59 | { 60 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 61 | bool enabled = enabledProp.boolValue; 62 | 63 | if (enabled) 64 | { 65 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 66 | _onError = errorProp.boolValue; 67 | 68 | if (_onError) 69 | return new Color(0.5f, 0, 0); 70 | else 71 | return NodeEditorPreferences.GetSettings().tintColor; 72 | } 73 | else 74 | { 75 | return new Color(0.1f, 0.1f, 0.1f); 76 | } 77 | } 78 | } 79 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/SceneEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c7fb09b7c1f72446915ee7f37c3c8e6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/ShowEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7fc2a5549279ef4dacf9bf02dbf93b3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/SoundEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(SoundNode))] 8 | public class SoundEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private SoundNode _soundNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_soundNode == null) 21 | { 22 | _soundNode = target as SoundNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | EditorGUILayout.PrefixLabel("Audio Source"); 28 | _soundNode.source = (AudioClip)EditorGUILayout.ObjectField(_soundNode.source, typeof(AudioClip), false); 29 | 30 | NodeEditorGUILayout.PortPair(_soundNode.GetInputPort("entry"), _soundNode.GetOutputPort("exit")); 31 | 32 | serializedObject.ApplyModifiedProperties(); 33 | } 34 | 35 | public void SetEnabledState(bool state) 36 | { 37 | _soundNode.enabled = state; 38 | } 39 | 40 | public override void AddContextMenuItems(GenericMenu menu) 41 | { 42 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 43 | bool enabled = enabledProp.boolValue; 44 | 45 | if (enabled) 46 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 47 | else 48 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 49 | 50 | base.AddContextMenuItems(menu); 51 | } 52 | 53 | public override Color GetTint() 54 | { 55 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 56 | bool enabled = enabledProp.boolValue; 57 | 58 | if (enabled) 59 | { 60 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 61 | _onError = errorProp.boolValue; 62 | 63 | if (_onError) 64 | return new Color(0.5f, 0, 0); 65 | else 66 | return NodeEditorPreferences.GetSettings().tintColor; 67 | } 68 | else 69 | { 70 | return new Color(0.1f, 0.1f, 0.1f); 71 | } 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/SoundEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 335c225140aa9b749887a94daaa8ecee 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/StartEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(StartNode))] 8 | public class StartEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private StartNode _startNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_startNode == null) 21 | { 22 | _startNode = target as StartNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | NodeEditorGUILayout.PortField(_startNode.GetOutputPort("exit")); 28 | 29 | serializedObject.ApplyModifiedProperties(); 30 | } 31 | /* 32 | public void SetEnabledState(bool state) 33 | { 34 | _startNode.enabled = state; 35 | } 36 | 37 | public override void AddContextMenuItems(GenericMenu menu) 38 | { 39 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 40 | bool enabled = enabledProp.boolValue; 41 | 42 | if (enabled) 43 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 44 | else 45 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 46 | 47 | base.AddContextMenuItems(menu); 48 | } 49 | */ 50 | public override Color GetTint() 51 | { 52 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 53 | bool enabled = enabledProp.boolValue; 54 | 55 | if (enabled) 56 | { 57 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 58 | _onError = errorProp.boolValue; 59 | 60 | if (_onError) 61 | return new Color(0.5f, 0, 0); 62 | else 63 | return NodeEditorPreferences.GetSettings().tintColor; 64 | } 65 | else 66 | { 67 | return new Color(0.1f, 0.1f, 0.1f); 68 | } 69 | } 70 | } 71 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/StartEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f131edd225ec46e8a5322b7ee38282e2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/StopMusicEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(StopMusicNode))] 8 | public class StopMusicEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private StopMusicNode _stopMusicNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_stopMusicNode == null) 21 | { 22 | _stopMusicNode = target as StopMusicNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | _stopMusicNode.fadeout = EditorGUILayout.FloatField("Fade Out", _stopMusicNode.fadeout); 28 | if (_stopMusicNode.fadeout < 0) 29 | _stopMusicNode.fadeout = 0; 30 | 31 | NodeEditorGUILayout.PortPair(_stopMusicNode.GetInputPort("entry"), _stopMusicNode.GetOutputPort("exit")); 32 | 33 | serializedObject.ApplyModifiedProperties(); 34 | } 35 | 36 | public void SetEnabledState(bool state) 37 | { 38 | _stopMusicNode.enabled = state; 39 | } 40 | 41 | public override void AddContextMenuItems(GenericMenu menu) 42 | { 43 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 44 | bool enabled = enabledProp.boolValue; 45 | 46 | if (enabled) 47 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 48 | else 49 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 50 | 51 | base.AddContextMenuItems(menu); 52 | } 53 | 54 | public override Color GetTint() 55 | { 56 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 57 | bool enabled = enabledProp.boolValue; 58 | 59 | if (enabled) 60 | { 61 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 62 | _onError = errorProp.boolValue; 63 | 64 | if (_onError) 65 | return new Color(0.5f, 0, 0); 66 | else 67 | return NodeEditorPreferences.GetSettings().tintColor; 68 | } 69 | else 70 | { 71 | return new Color(0.1f, 0.1f, 0.1f); 72 | } 73 | } 74 | } 75 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/StopMusicEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a907420b9cdaf94f99be845a65e85bb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/TransitionEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using XNodeEditor; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CustomNodeEditor(typeof(TransitionNode))] 8 | public class TransitionEditor : NodeEditor 9 | { 10 | private bool _onError = false; 11 | private TransitionNode _transitionNode; 12 | 13 | public override void OnHeaderGUI() 14 | { 15 | GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); 16 | } 17 | 18 | public override void OnBodyGUI() 19 | { 20 | if (_transitionNode == null) 21 | { 22 | _transitionNode = target as TransitionNode; 23 | } 24 | 25 | serializedObject.Update(); 26 | 27 | float originalValue = EditorGUIUtility.labelWidth; 28 | EditorGUIUtility.labelWidth = 200; 29 | EditorGUILayout.PrefixLabel("Select Transition"); 30 | EditorGUIUtility.labelWidth = originalValue; 31 | _transitionNode.option = EditorGUILayout.Popup(_transitionNode.option, _transitionNode.transitions.ToArray()); 32 | 33 | NodeEditorGUILayout.PortPair(_transitionNode.GetInputPort("entry"), _transitionNode.GetOutputPort("exit")); 34 | 35 | serializedObject.ApplyModifiedProperties(); 36 | } 37 | 38 | public void SetEnabledState(bool state) 39 | { 40 | _transitionNode.enabled = state; 41 | } 42 | 43 | public override void AddContextMenuItems(GenericMenu menu) 44 | { 45 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 46 | bool enabled = enabledProp.boolValue; 47 | 48 | if (enabled) 49 | menu.AddItem(new GUIContent("Disable"), false, () => SetEnabledState(false)); 50 | else 51 | menu.AddItem(new GUIContent("Enable"), false, () => SetEnabledState(true)); 52 | 53 | base.AddContextMenuItems(menu); 54 | } 55 | 56 | public override Color GetTint() 57 | { 58 | SerializedProperty enabledProp = serializedObject.FindProperty("enabled"); 59 | bool enabled = enabledProp.boolValue; 60 | 61 | if (enabled) 62 | { 63 | SerializedProperty errorProp = serializedObject.FindProperty("errorStatus"); 64 | _onError = errorProp.boolValue; 65 | 66 | if (_onError) 67 | return new Color(0.5f, 0, 0); 68 | else 69 | return NodeEditorPreferences.GetSettings().tintColor; 70 | } 71 | else 72 | { 73 | return new Color(0.1f, 0.1f, 0.1f); 74 | } 75 | } 76 | } 77 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/Editor/TransitionEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e807b3e65545aae46ba67cd40aa08f87 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/HideNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Hide")] 8 | public class HideNode : BaseNode 9 | { 10 | [Input] public int entry; 11 | 12 | public bool enabled = true; 13 | 14 | public Texture2D image; 15 | [HideInInspector] public bool errorStatus; 16 | private int jumpIndex; 17 | private bool evaluated; 18 | private List labels = new List(); 19 | 20 | private int _nodeId; 21 | 22 | public override bool GetEnabledStatus() 23 | { 24 | return enabled; 25 | } 26 | 27 | public override void SetNodeId(int id) 28 | { 29 | _nodeId = id; 30 | } 31 | 32 | public override int GetNodeId() 33 | { 34 | return _nodeId; 35 | } 36 | 37 | private void Reset() 38 | { 39 | this.AddDynamicOutput(typeof(int), ConnectionType.Override, TypeConstraint.None, "exit"); 40 | } 41 | 42 | public override Texture2D GetImage() 43 | { 44 | return image; 45 | } 46 | 47 | public override string GetNodeType() 48 | { 49 | return "HideNode"; 50 | } 51 | 52 | public override void SetJumpIndex(int index) 53 | { 54 | jumpIndex = index; 55 | } 56 | 57 | public override int GetJumpIndex() 58 | { 59 | return jumpIndex; 60 | } 61 | 62 | public override void AddToLabelList(string newLabel) 63 | { 64 | labels.Add(newLabel); 65 | } 66 | 67 | public override List GetLabelList() 68 | { 69 | return labels; 70 | } 71 | 72 | public override void ClearLabelList() 73 | { 74 | labels.Clear(); 75 | } 76 | 77 | public override bool GetEvaluated() 78 | { 79 | return evaluated; 80 | } 81 | 82 | public override void SetEvaluated(bool flag) 83 | { 84 | evaluated = flag; 85 | } 86 | 87 | public override void SetError() 88 | { 89 | errorStatus = true; 90 | } 91 | 92 | public override string GetError() 93 | { 94 | errorStatus = false; 95 | 96 | foreach (NodePort p in Inputs) 97 | if (!p.IsConnected) 98 | errorStatus = true; 99 | 100 | foreach (NodePort p in Outputs) 101 | if (!p.IsConnected) 102 | errorStatus = true; 103 | 104 | if (errorStatus) 105 | return "Unconnected ports"; 106 | 107 | NodePort port = GetOutputPort("exit"); 108 | if (port != null) 109 | { 110 | BaseNode nextNode = port.Connection.node as BaseNode; 111 | if (nextNode != null && nextNode == this) 112 | { 113 | errorStatus = true; 114 | return "Cannot connect outputs to self"; 115 | } 116 | } 117 | 118 | if (image == null) 119 | { 120 | errorStatus = true; 121 | return "No texture image"; 122 | } 123 | 124 | return "No Error"; 125 | } 126 | } 127 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/HideNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ef8671562721a94f8a683edebb92f5d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d314be24e058f446ae6505a64784fe9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/background.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/bedroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/bedroom.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/cindy_bye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/cindy_bye.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/cindy_chuckle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/cindy_chuckle.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/cindy_direct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/cindy_direct.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/cindy_happy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/cindy_happy.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/cindy_hips.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/cindy_hips.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/cindy_neutral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/cindy_neutral.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/cindy_reserved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/cindy_reserved.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/cindy_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/cindy_smile.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/close.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/livingroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/livingroom.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/lucy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/lucy.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/michael.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/michael.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/restaurant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/restaurant.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/schoolroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/schoolroom.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/side_cindy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/side_cindy.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/side_generic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/side_generic.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/side_lucy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/side_lucy.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/side_michael.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/side_michael.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/side_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/RenPy Maker/Images/side_unknown.png -------------------------------------------------------------------------------- /Assets/RenPy Maker/Images/side_unknown.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbca2c51c712e65409f31cb44cb9bf98 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 1 36 | aniso: 1 37 | mipBias: 0 38 | wrapU: 0 39 | wrapV: 0 40 | wrapW: 0 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 2048 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 0 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | spriteSheet: 79 | serializedVersion: 2 80 | sprites: [] 81 | outline: [] 82 | physicsShape: [] 83 | bones: [] 84 | spriteID: 85 | internalID: 0 86 | vertices: [] 87 | indices: 88 | edges: [] 89 | weights: [] 90 | secondaryTextures: [] 91 | spritePackingTag: 92 | pSDRemoveMatte: 0 93 | pSDShowRemoveMatteOption: 0 94 | userData: 95 | assetBundleName: 96 | assetBundleVariant: 97 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/JumpNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Jump")] 8 | public class JumpNode : BaseNode 9 | { 10 | [Input] public int entry; 11 | 12 | public bool enabled = true; 13 | 14 | public string label; 15 | [HideInInspector] public bool errorStatus; 16 | private int jumpIndex; 17 | private bool evaluated; 18 | private List labels = new List(); 19 | 20 | private int _nodeId; 21 | 22 | public override bool GetEnabledStatus() 23 | { 24 | return enabled; 25 | } 26 | 27 | public override void SetNodeId(int id) 28 | { 29 | _nodeId = id; 30 | } 31 | 32 | public override int GetNodeId() 33 | { 34 | return _nodeId; 35 | } 36 | 37 | public override string GetString() 38 | { 39 | return label; 40 | } 41 | 42 | public override string GetNodeType() 43 | { 44 | return "JumpNode"; 45 | } 46 | 47 | public override void SetJumpIndex(int index) 48 | { 49 | jumpIndex = index; 50 | } 51 | 52 | public override int GetJumpIndex() 53 | { 54 | return jumpIndex; 55 | } 56 | 57 | public override void AddToLabelList(string newLabel) 58 | { 59 | labels.Add(newLabel); 60 | } 61 | 62 | public override List GetLabelList() 63 | { 64 | return labels; 65 | } 66 | 67 | public override void ClearLabelList() 68 | { 69 | labels.Clear(); 70 | } 71 | 72 | public override bool GetEvaluated() 73 | { 74 | return evaluated; 75 | } 76 | 77 | public override void SetEvaluated(bool flag) 78 | { 79 | evaluated = flag; 80 | } 81 | 82 | public override void SetError() 83 | { 84 | errorStatus = true; 85 | } 86 | 87 | public override string GetError() 88 | { 89 | errorStatus = false; 90 | 91 | foreach (NodePort p in Inputs) 92 | if (!p.IsConnected) 93 | errorStatus = true; 94 | 95 | if (errorStatus) 96 | return "Unconnected ports"; 97 | 98 | if (!RenpyMaker.CheckForAlphaNumeric(label)) 99 | { 100 | errorStatus = true; 101 | return "Label must start with a letter and use alphanumeric characters"; 102 | } 103 | 104 | NodePort port = GetOutputPort("exit"); 105 | if (port != null) 106 | { 107 | BaseNode nextNode = port.Connection.node as BaseNode; 108 | if (nextNode != null && nextNode == this) 109 | { 110 | errorStatus = true; 111 | return "Cannot connect outputs to self"; 112 | } 113 | } 114 | 115 | if (string.IsNullOrEmpty(label)) 116 | { 117 | errorStatus = true; 118 | return "No label name"; 119 | } 120 | 121 | return "No Error"; 122 | } 123 | } 124 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/JumpNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cafe510f0d884474884480e5392d47be 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/LabelNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Label")] 8 | public class LabelNode : BaseNode 9 | { 10 | [Input] public int entry; 11 | 12 | public bool enabled = true; 13 | 14 | public string label; 15 | [HideInInspector] public bool errorStatus; 16 | private int jumpIndex; 17 | private bool evaluated; 18 | private List labels = new List(); 19 | 20 | private int _nodeId; 21 | 22 | public override bool GetEnabledStatus() 23 | { 24 | return enabled; 25 | } 26 | 27 | public override void SetNodeId(int id) 28 | { 29 | _nodeId = id; 30 | } 31 | 32 | public override int GetNodeId() 33 | { 34 | return _nodeId; 35 | } 36 | 37 | private void Reset() 38 | { 39 | this.AddDynamicOutput(typeof(int), ConnectionType.Override, TypeConstraint.None, "exit"); 40 | } 41 | 42 | public override string GetNodeType() 43 | { 44 | return "LabelNode"; 45 | } 46 | 47 | public override string GetString() 48 | { 49 | return label; 50 | } 51 | 52 | public override void SetJumpIndex(int index) 53 | { 54 | jumpIndex = index; 55 | } 56 | 57 | public override int GetJumpIndex() 58 | { 59 | return jumpIndex; 60 | } 61 | 62 | public override void AddToLabelList(string newLabel) 63 | { 64 | labels.Add(newLabel); 65 | } 66 | 67 | public override List GetLabelList() 68 | { 69 | return labels; 70 | } 71 | 72 | public override void ClearLabelList() 73 | { 74 | labels.Clear(); 75 | } 76 | 77 | public override bool GetEvaluated() 78 | { 79 | return evaluated; 80 | } 81 | 82 | public override void SetEvaluated(bool flag) 83 | { 84 | evaluated = flag; 85 | } 86 | 87 | public override void SetError() 88 | { 89 | errorStatus = true; 90 | } 91 | 92 | public override string GetError() 93 | { 94 | errorStatus = false; 95 | 96 | // Don't check the input port 97 | 98 | foreach (NodePort p in Outputs) 99 | if (!p.IsConnected) 100 | errorStatus = true; 101 | 102 | if (errorStatus) 103 | return "Unconnected ports"; 104 | 105 | if (!RenpyMaker.CheckForAlphaNumeric(label)) 106 | { 107 | errorStatus = true; 108 | return "Label must start with a letter and use alphanumeric characters"; 109 | } 110 | 111 | NodePort port = GetOutputPort("exit"); 112 | if (port != null) 113 | { 114 | BaseNode nextNode = port.Connection.node as BaseNode; 115 | if (nextNode != null && nextNode == this) 116 | { 117 | errorStatus = true; 118 | return "Cannot connect outputs to self"; 119 | } 120 | } 121 | 122 | if (string.IsNullOrEmpty(label)) 123 | { 124 | errorStatus = true; 125 | return "No label name"; 126 | } 127 | 128 | return "No Error"; 129 | } 130 | } 131 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/LabelNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 80a154c191ff02b40a09f33ede3141fd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/MenuNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7de85c8e13e0a5a48a06c3403ee54b1d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/MusicNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e20a7d0a9c623fb4d9adfadcb31aa56c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/NarrateNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 614ae0c686a572f4eb93c28614c7e227 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/NodeParser.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d965bdefff61cdb46b9ad7d3a89025cd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/PauseNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Pause")] 8 | public class PauseNode : BaseNode 9 | { 10 | [Input] public int entry; 11 | 12 | public bool enabled = true; 13 | 14 | public float seconds = 1.0f; 15 | [HideInInspector] public bool errorStatus; 16 | private int jumpIndex; 17 | private bool evaluated; 18 | private List labels = new List(); 19 | 20 | private int _nodeId; 21 | 22 | public override bool GetEnabledStatus() 23 | { 24 | return enabled; 25 | } 26 | 27 | public override void SetNodeId(int id) 28 | { 29 | _nodeId = id; 30 | } 31 | 32 | public override int GetNodeId() 33 | { 34 | return _nodeId; 35 | } 36 | 37 | private void Reset() 38 | { 39 | this.AddDynamicOutput(typeof(int), ConnectionType.Override, TypeConstraint.None, "exit"); 40 | } 41 | 42 | public override string GetNodeType() 43 | { 44 | return "PauseNode"; 45 | } 46 | 47 | public override float GetSeconds() 48 | { 49 | return seconds; 50 | } 51 | 52 | public override void SetJumpIndex(int index) 53 | { 54 | jumpIndex = index; 55 | } 56 | 57 | public override int GetJumpIndex() 58 | { 59 | return jumpIndex; 60 | } 61 | 62 | public override void AddToLabelList(string newLabel) 63 | { 64 | labels.Add(newLabel); 65 | } 66 | 67 | public override List GetLabelList() 68 | { 69 | return labels; 70 | } 71 | 72 | public override void ClearLabelList() 73 | { 74 | labels.Clear(); 75 | } 76 | 77 | public override bool GetEvaluated() 78 | { 79 | return evaluated; 80 | } 81 | 82 | public override void SetEvaluated(bool flag) 83 | { 84 | evaluated = flag; 85 | } 86 | 87 | public override void SetError() 88 | { 89 | errorStatus = true; 90 | } 91 | 92 | public override string GetError() 93 | { 94 | errorStatus = false; 95 | 96 | foreach (NodePort p in Inputs) 97 | if (!p.IsConnected) 98 | errorStatus = true; 99 | 100 | foreach (NodePort p in Outputs) 101 | if (!p.IsConnected) 102 | errorStatus = true; 103 | 104 | if (errorStatus) 105 | return "Unconnected ports"; 106 | 107 | NodePort port = GetOutputPort("exit"); 108 | if (port != null) 109 | { 110 | BaseNode nextNode = port.Connection.node as BaseNode; 111 | if (nextNode != null && nextNode == this) 112 | { 113 | errorStatus = true; 114 | return "Cannot connect outputs to self"; 115 | } 116 | } 117 | 118 | if (seconds < 0) 119 | { 120 | errorStatus = true; 121 | return "Seconds cannot be less than zero"; 122 | } 123 | 124 | return "No Error"; 125 | } 126 | } 127 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/PauseNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34b6ff729a81fbe4f84b5feef083f322 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/QueueMusicNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f58c592f7b61e8747a20ecf6e663c008 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/RenPyScripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c02b39128afe514195e57371e2509bc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/RenPyScripts/script.rpy: -------------------------------------------------------------------------------- 1 | # Made with Ren'Py Maker 2 | # By Alan Baylis 3 | # https://www.renpymaker.com 4 | 5 | # 3 Character Nodes 6 | 7 | init python: 8 | class Characters: 9 | def __init__(self, name: str, color: str): 10 | self.name = name 11 | self.color = color 12 | 13 | # Character variables 14 | CharacterList = [] 15 | Cindy = Characters("Cindy", "RGBA(1.000, 0.000, 0.000, 1.000)") 16 | CharacterList.append(Cindy) 17 | Micheal = Characters("Micheal", "RGBA(0.000, 0.040, 1.000, 1.000)") 18 | CharacterList.append(Micheal) 19 | Lucy = Characters("Lucy", "RGBA(1.000, 0.951, 0.000, 1.000)") 20 | CharacterList.append(Lucy) 21 | 22 | define Cindy_ = Character("Cindy", image="cindy", color="#ff0000") 23 | define Micheal_ = Character("Micheal", image="michael", color="#000aff") 24 | define Lucy_ = Character("Lucy", image="lucy", color="#fff200") 25 | 26 | image lucy = "lucy.png" 27 | image michael = "michael.png" 28 | image cindy bye = "cindy_bye.png" 29 | image cindy happy = "cindy_happy.png" 30 | 31 | image side cindy = "side_cindy.png" 32 | image side michael = "side_michael.png" 33 | image side lucy = "side_lucy.png" 34 | 35 | label Biology: 36 | 37 | scene schoolroom 38 | 39 | show lucy at center 40 | 41 | Lucy_ "Hello, I'm Lucy" 42 | 43 | return 44 | 45 | label Economics: 46 | 47 | scene schoolroom 48 | 49 | show michael at center 50 | 51 | Micheal_ "Hi, my name is Michael" 52 | 53 | return 54 | 55 | label Music: 56 | 57 | scene livingroom 58 | 59 | show cindy bye at center 60 | 61 | play music "audio/guitar.mp3" fadeout 0 fadein 0 62 | 63 | Cindy_ "Just listening to music" 64 | 65 | return 66 | 67 | label start: 68 | 69 | scene bedroom 70 | 71 | show cindy happy at center 72 | 73 | Cindy_ "Good morning!" 74 | 75 | Cindy_ "It's time for school" 76 | 77 | Cindy_ "Which class would you like to attend?" 78 | 79 | label Question: 80 | 81 | jump destination_0 82 | 83 | label destination_0: 84 | 85 | menu: 86 | 87 | Cindy_ "Please choose a class" 88 | 89 | "Economics": 90 | jump economics_26 91 | 92 | "Biology": 93 | jump biology_26 94 | 95 | "Music": 96 | jump music_26 97 | 98 | label economics_26: 99 | 100 | call Economics 101 | 102 | label destination_1: 103 | 104 | label destination_2: 105 | 106 | jump Question 107 | 108 | label biology_26: 109 | 110 | call Biology 111 | 112 | jump destination_1 113 | 114 | label music_26: 115 | 116 | call Music 117 | 118 | stop music fadeout 1 119 | 120 | jump destination_2 121 | 122 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/RenPyScripts/script.rpy.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18c4411003aaa2541a5a5d8d9e08f42d 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/RenpyMaker.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed79e331f07943341ae26f5a5c2daea3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 59977516fae2bd24c973cf38f2295a30 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/First Project.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97f732dc1d4cbd042ad4d9841ef799f1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/First Project/First Project.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7882800c26b6584d8d5147a83d66461 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Menus.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d1f9482efd27ef4dbfbe3632ea75570 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Menus/Global.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: ed79e331f07943341ae26f5a5c2daea3, type: 3} 13 | m_Name: Global 14 | m_EditorClassIdentifier: 15 | nodes: 16 | - {fileID: 2889834450763212387} 17 | current: {fileID: 0} 18 | --- !u!114 &2889834450763212387 19 | MonoBehaviour: 20 | m_ObjectHideFlags: 0 21 | m_CorrespondingSourceObject: {fileID: 0} 22 | m_PrefabInstance: {fileID: 0} 23 | m_PrefabAsset: {fileID: 0} 24 | m_GameObject: {fileID: 0} 25 | m_Enabled: 1 26 | m_EditorHideFlags: 0 27 | m_Script: {fileID: 11500000, guid: 4f20df7b5dd5e1142a8896c6004c019c, type: 3} 28 | m_Name: Character 29 | m_EditorClassIdentifier: 30 | graph: {fileID: 11400000} 31 | position: {x: -472, y: -360} 32 | ports: 33 | keys: [] 34 | values: [] 35 | enabled: 1 36 | character: Cindy 37 | previousName: Cindy 38 | image: {fileID: 2800000, guid: 86f1faac6c226f047bdc42f74d334ea0, type: 3} 39 | color: {r: 1, g: 0, b: 0, a: 1} 40 | errorStatus: 0 41 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Menus/Global.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92396115dc0795748a8acbdb8cc5d492 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Menus/Menus.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ae15cc161837554d92cd9d3a6dcf733 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Menus/Start.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94aec5ee4e0d296468f1f1ef2ff6a13e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/School.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db7cef31d19c1ca43a6b36218725f2ae 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/School/Global.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-8791443580990867231 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 4f20df7b5dd5e1142a8896c6004c019c, type: 3} 13 | m_Name: Character 14 | m_EditorClassIdentifier: 15 | graph: {fileID: 11400000} 16 | position: {x: -104, y: -168} 17 | ports: 18 | keys: [] 19 | values: [] 20 | enabled: 1 21 | character: Micheal 22 | previousName: Micheal 23 | image: {fileID: 2800000, guid: 846f0e6c1875daa4bad7a5e51fd2615a, type: 3} 24 | color: {r: 0, g: 0.03999734, b: 1, a: 1} 25 | errorStatus: 0 26 | --- !u!114 &-5609736841639461666 27 | MonoBehaviour: 28 | m_ObjectHideFlags: 0 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_GameObject: {fileID: 0} 33 | m_Enabled: 1 34 | m_EditorHideFlags: 0 35 | m_Script: {fileID: 11500000, guid: 4f20df7b5dd5e1142a8896c6004c019c, type: 3} 36 | m_Name: Character 37 | m_EditorClassIdentifier: 38 | graph: {fileID: 11400000} 39 | position: {x: 120, y: -168} 40 | ports: 41 | keys: [] 42 | values: [] 43 | enabled: 1 44 | character: Lucy 45 | previousName: Lucy 46 | image: {fileID: 2800000, guid: 73101ff21296bae478e684927507cfa3, type: 3} 47 | color: {r: 1, g: 0.95084643, b: 0, a: 1} 48 | errorStatus: 0 49 | --- !u!114 &-4158789123842465147 50 | MonoBehaviour: 51 | m_ObjectHideFlags: 0 52 | m_CorrespondingSourceObject: {fileID: 0} 53 | m_PrefabInstance: {fileID: 0} 54 | m_PrefabAsset: {fileID: 0} 55 | m_GameObject: {fileID: 0} 56 | m_Enabled: 1 57 | m_EditorHideFlags: 0 58 | m_Script: {fileID: 11500000, guid: 4f20df7b5dd5e1142a8896c6004c019c, type: 3} 59 | m_Name: Character 60 | m_EditorClassIdentifier: 61 | graph: {fileID: 11400000} 62 | position: {x: -328, y: -168} 63 | ports: 64 | keys: [] 65 | values: [] 66 | enabled: 1 67 | character: Cindy 68 | previousName: Cindy 69 | image: {fileID: 2800000, guid: 86f1faac6c226f047bdc42f74d334ea0, type: 3} 70 | color: {r: 1, g: 0, b: 0, a: 1} 71 | errorStatus: 0 72 | --- !u!114 &11400000 73 | MonoBehaviour: 74 | m_ObjectHideFlags: 0 75 | m_CorrespondingSourceObject: {fileID: 0} 76 | m_PrefabInstance: {fileID: 0} 77 | m_PrefabAsset: {fileID: 0} 78 | m_GameObject: {fileID: 0} 79 | m_Enabled: 1 80 | m_EditorHideFlags: 0 81 | m_Script: {fileID: 11500000, guid: ed79e331f07943341ae26f5a5c2daea3, type: 3} 82 | m_Name: Global 83 | m_EditorClassIdentifier: 84 | nodes: 85 | - {fileID: -4158789123842465147} 86 | - {fileID: -8791443580990867231} 87 | - {fileID: -5609736841639461666} 88 | current: {fileID: 0} 89 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/School/Global.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d57774a33cec234baa6d1e33cab6baa 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/School/Lucy.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61277d729e560b04f9cd1b484c78b304 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/School/Michael.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 17b87aea26304344da814bdc34efdab3 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/School/Music.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d268dd04cb51a864cb49305e6619d75b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/School/Question.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 78603b52edc75dd4c929717a0550913d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Test.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c8e1932412e0364090db50f607c4a73 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Test/Global.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: ed79e331f07943341ae26f5a5c2daea3, type: 3} 13 | m_Name: Global 14 | m_EditorClassIdentifier: 15 | nodes: 16 | - {fileID: 8523092238956012878} 17 | current: {fileID: 0} 18 | --- !u!114 &8523092238956012878 19 | MonoBehaviour: 20 | m_ObjectHideFlags: 0 21 | m_CorrespondingSourceObject: {fileID: 0} 22 | m_PrefabInstance: {fileID: 0} 23 | m_PrefabAsset: {fileID: 0} 24 | m_GameObject: {fileID: 0} 25 | m_Enabled: 1 26 | m_EditorHideFlags: 0 27 | m_Script: {fileID: 11500000, guid: 4f20df7b5dd5e1142a8896c6004c019c, type: 3} 28 | m_Name: Character 29 | m_EditorClassIdentifier: 30 | graph: {fileID: 11400000} 31 | position: {x: -104, y: -200} 32 | ports: 33 | keys: [] 34 | values: [] 35 | enabled: 1 36 | character: Cindy 37 | previousName: Cindy 38 | image: {fileID: 2800000, guid: 86f1faac6c226f047bdc42f74d334ea0, type: 3} 39 | color: {r: 1, g: 0, b: 0.12319422, a: 1} 40 | errorStatus: 0 41 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Test/Global.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 251dff27c00f1fa44a729873b7f9fa9b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Test/Page 1.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a149284cc943e042a66769802b9c7d8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Test/Page 2.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf80e61dee006864f8b108b192f33130 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Tutorial.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a2b2569ab4ae5c46aa85973f595e45b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/Resources/Tutorial/Ren'Py Maker Tutorial.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a3b028a78a85b44b813e3428f157019 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/ReturnNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Return")] 8 | public class ReturnNode : BaseNode 9 | { 10 | [Input] public int entry; 11 | 12 | public bool enabled = true; 13 | 14 | [HideInInspector] public bool errorStatus; 15 | private int jumpIndex; 16 | private bool evaluated; 17 | private List labels = new List(); 18 | 19 | private int _nodeId; 20 | 21 | public override bool GetEnabledStatus() 22 | { 23 | return enabled; 24 | } 25 | 26 | public override void SetNodeId(int id) 27 | { 28 | _nodeId = id; 29 | } 30 | 31 | public override int GetNodeId() 32 | { 33 | return _nodeId; 34 | } 35 | 36 | public override string GetNodeType() 37 | { 38 | return "ReturnNode"; 39 | } 40 | 41 | public override void SetJumpIndex(int index) 42 | { 43 | jumpIndex = index; 44 | } 45 | 46 | public override int GetJumpIndex() 47 | { 48 | return jumpIndex; 49 | } 50 | 51 | public override void AddToLabelList(string newLabel) 52 | { 53 | labels.Add(newLabel); 54 | } 55 | 56 | public override List GetLabelList() 57 | { 58 | return labels; 59 | } 60 | 61 | public override void ClearLabelList() 62 | { 63 | labels.Clear(); 64 | } 65 | 66 | public override bool GetEvaluated() 67 | { 68 | return evaluated; 69 | } 70 | 71 | public override void SetEvaluated(bool flag) 72 | { 73 | evaluated = flag; 74 | } 75 | 76 | public override void SetError() 77 | { 78 | errorStatus = true; 79 | } 80 | 81 | public override string GetError() 82 | { 83 | errorStatus = false; 84 | 85 | foreach (NodePort p in Inputs) 86 | if (!p.IsConnected) 87 | errorStatus = true; 88 | 89 | if (errorStatus) 90 | return "Unconnected ports"; 91 | 92 | NodePort port = GetOutputPort("exit"); 93 | if (port != null) 94 | { 95 | BaseNode nextNode = port.Connection.node as BaseNode; 96 | if (nextNode != null && nextNode == this) 97 | { 98 | errorStatus = true; 99 | return "Cannot connect outputs to self"; 100 | } 101 | } 102 | 103 | return "No Error"; 104 | } 105 | } 106 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/ReturnNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e4882f233874c52aeb3b5e73d918f09 3 | timeCreated: 1671484464 -------------------------------------------------------------------------------- /Assets/RenPy Maker/SceneNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Scene")] 8 | public class SceneNode : BaseNode 9 | { 10 | [Input] public int entry; 11 | 12 | public bool enabled = true; 13 | 14 | public Texture2D image; 15 | [HideInInspector] public bool errorStatus; 16 | private int jumpIndex; 17 | private bool evaluated; 18 | private List labels = new List(); 19 | 20 | private int _nodeId; 21 | 22 | public override bool GetEnabledStatus() 23 | { 24 | return enabled; 25 | } 26 | 27 | public override void SetNodeId(int id) 28 | { 29 | _nodeId = id; 30 | } 31 | 32 | public override int GetNodeId() 33 | { 34 | return _nodeId; 35 | } 36 | 37 | private void Reset() 38 | { 39 | this.AddDynamicOutput(typeof(int), ConnectionType.Override, TypeConstraint.None, "exit"); 40 | } 41 | 42 | public override string GetNodeType() 43 | { 44 | return "SceneNode"; 45 | } 46 | 47 | public override Texture2D GetImage() 48 | { 49 | return image; 50 | } 51 | 52 | public override void SetJumpIndex(int index) 53 | { 54 | jumpIndex = index; 55 | } 56 | 57 | public override int GetJumpIndex() 58 | { 59 | return jumpIndex; 60 | } 61 | 62 | public override void AddToLabelList(string newLabel) 63 | { 64 | labels.Add(newLabel); 65 | } 66 | 67 | public override List GetLabelList() 68 | { 69 | return labels; 70 | } 71 | 72 | public override void ClearLabelList() 73 | { 74 | labels.Clear(); 75 | } 76 | 77 | public override bool GetEvaluated() 78 | { 79 | return evaluated; 80 | } 81 | 82 | public override void SetEvaluated(bool flag) 83 | { 84 | evaluated = flag; 85 | } 86 | 87 | public override void SetError() 88 | { 89 | errorStatus = true; 90 | } 91 | 92 | public override string GetError() 93 | { 94 | errorStatus = false; 95 | 96 | foreach (NodePort p in Inputs) 97 | if (!p.IsConnected) 98 | errorStatus = true; 99 | 100 | foreach (NodePort p in Outputs) 101 | if (!p.IsConnected) 102 | errorStatus = true; 103 | 104 | if (errorStatus) 105 | return "Unconnected ports"; 106 | 107 | NodePort port = GetOutputPort("exit"); 108 | if (port != null) 109 | { 110 | BaseNode nextNode = port.Connection.node as BaseNode; 111 | if (nextNode != null && nextNode == this) 112 | { 113 | errorStatus = true; 114 | return "Cannot connect outputs to self"; 115 | } 116 | } 117 | 118 | if (image == null) 119 | { 120 | errorStatus = true; 121 | return "No texture image"; 122 | } 123 | 124 | return "No Error"; 125 | } 126 | } 127 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/SceneNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5aa22ae87d58c74c94f0414122eed41 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/ShowNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1252e0fd9adb332498f0182364a20fa4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/SoundNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: efee6bbacbcf01b4e9dfe6498f888e0c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/StartNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Start")] 8 | public class StartNode : BaseNode 9 | { 10 | public bool enabled = true; 11 | 12 | [HideInInspector] public bool errorStatus; 13 | private int jumpIndex; 14 | private bool evaluated; 15 | private List labels = new List(); 16 | 17 | private int _nodeId; 18 | 19 | public override bool GetEnabledStatus() 20 | { 21 | return enabled; 22 | } 23 | 24 | public override void SetNodeId(int id) 25 | { 26 | _nodeId = id; 27 | } 28 | 29 | public override int GetNodeId() 30 | { 31 | return _nodeId; 32 | } 33 | 34 | private void Reset() 35 | { 36 | this.AddDynamicOutput(typeof(int), ConnectionType.Override, TypeConstraint.None, "exit"); 37 | } 38 | 39 | public override string GetNodeType() 40 | { 41 | return "StartNode"; 42 | } 43 | 44 | public override void SetJumpIndex(int index) 45 | { 46 | jumpIndex = index; 47 | } 48 | 49 | public override int GetJumpIndex() 50 | { 51 | return jumpIndex; 52 | } 53 | 54 | public override void AddToLabelList(string newLabel) 55 | { 56 | labels.Add(newLabel); 57 | } 58 | 59 | public override List GetLabelList() 60 | { 61 | return labels; 62 | } 63 | 64 | public override void ClearLabelList() 65 | { 66 | labels.Clear(); 67 | } 68 | 69 | public override bool GetEvaluated() 70 | { 71 | return evaluated; 72 | } 73 | 74 | public override void SetEvaluated(bool flag) 75 | { 76 | evaluated = flag; 77 | } 78 | 79 | 80 | public override void SetError() 81 | { 82 | errorStatus = true; 83 | } 84 | 85 | public override string GetError() 86 | { 87 | errorStatus = false; 88 | 89 | foreach (NodePort p in Outputs) 90 | if (!p.IsConnected) 91 | errorStatus = true; 92 | 93 | if (errorStatus) 94 | return "Unconnected ports"; 95 | 96 | if (GetOutputPort("exit").Connection.node.GetType() == typeof(ReturnNode)) 97 | { 98 | errorStatus = true; 99 | return "Start node cannot be connected to the Exit node"; 100 | } 101 | 102 | NodePort port = GetOutputPort("exit"); 103 | if (port != null) 104 | { 105 | BaseNode nextNode = port.Connection.node as BaseNode; 106 | if (nextNode != null && nextNode == this) 107 | { 108 | errorStatus = true; 109 | return "Cannot connect outputs to self"; 110 | } 111 | } 112 | 113 | return "No Error"; 114 | } 115 | } 116 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/StartNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eae05caaf1f5ca74fa154b5c7e1b1073 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/StopMusicNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using XNode; 4 | 5 | namespace RenPy_Maker 6 | { 7 | [CreateNodeMenu("Nodes/Stop Music")] 8 | public class StopMusicNode : BaseNode 9 | { 10 | [Input] public int entry; 11 | 12 | public bool enabled = true; 13 | 14 | public float fadeout; 15 | [HideInInspector] public bool errorStatus; 16 | private int jumpIndex; 17 | private bool evaluated; 18 | private List labels = new List(); 19 | 20 | private int _nodeId; 21 | 22 | public override bool GetEnabledStatus() 23 | { 24 | return enabled; 25 | } 26 | 27 | public override void SetNodeId(int id) 28 | { 29 | _nodeId = id; 30 | } 31 | 32 | public override int GetNodeId() 33 | { 34 | return _nodeId; 35 | } 36 | 37 | private void Reset() 38 | { 39 | this.AddDynamicOutput(typeof(int), ConnectionType.Override, TypeConstraint.None, "exit"); 40 | } 41 | 42 | public override string GetNodeType() 43 | { 44 | return "StopMusicNode"; 45 | } 46 | 47 | public override void SetJumpIndex(int index) 48 | { 49 | jumpIndex = index; 50 | } 51 | 52 | public override int GetJumpIndex() 53 | { 54 | return jumpIndex; 55 | } 56 | 57 | public override void AddToLabelList(string newLabel) 58 | { 59 | labels.Add(newLabel); 60 | } 61 | 62 | public override List GetLabelList() 63 | { 64 | return labels; 65 | } 66 | 67 | public override void ClearLabelList() 68 | { 69 | labels.Clear(); 70 | } 71 | 72 | public override bool GetEvaluated() 73 | { 74 | return evaluated; 75 | } 76 | 77 | public override void SetEvaluated(bool flag) 78 | { 79 | evaluated = flag; 80 | } 81 | 82 | public override void SetError() 83 | { 84 | errorStatus = true; 85 | } 86 | 87 | public override string GetError() 88 | { 89 | errorStatus = false; 90 | 91 | foreach (NodePort p in Inputs) 92 | if (!p.IsConnected) 93 | errorStatus = true; 94 | 95 | foreach (NodePort p in Outputs) 96 | if (!p.IsConnected) 97 | errorStatus = true; 98 | 99 | if (errorStatus) 100 | return "Unconnected ports"; 101 | 102 | NodePort port = GetOutputPort("exit"); 103 | if (port != null) 104 | { 105 | BaseNode nextNode = port.Connection.node as BaseNode; 106 | if (nextNode != null && nextNode == this) 107 | { 108 | errorStatus = true; 109 | return "Cannot connect outputs to self"; 110 | } 111 | } 112 | 113 | return "No Error"; 114 | } 115 | } 116 | } -------------------------------------------------------------------------------- /Assets/RenPy Maker/StopMusicNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d43ae719757e7854e97230b78323ca97 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RenPy Maker/TransitionNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cf53de8cd2c5c543b66410e341ea127 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ba0f2e1bcb6fb3429d4eb842ad8e5f4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/RenPy Maker.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9528f935e59797d4f8ab7c6f01d70517 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f54d1bd14bd3ca042bd867b519fee8cc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Documentation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e7e8f5a82a3a134e91c54efd2274ea9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b8d251f9af63b746bf2f7ffe00ebb9b 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Fonts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ab70aee4d56447429c680537fbf93ed 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e59c59b81ab47f9b6ec5781fa725d2c 3 | timeCreated: 1484171296 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Fonts/LiberationSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/TextMesh Pro/Fonts/LiberationSans.ttf -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e3265ab4bf004d28a9537516768c1c75 3 | timeCreated: 1484171297 4 | licenseType: Pro 5 | TrueTypeFontImporter: 6 | serializedVersion: 2 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | use2xBehaviour: 0 13 | fontNames: [] 14 | fallbackFontReferences: [] 15 | customCharacters: 16 | fontRenderingMode: 0 17 | userData: 18 | assetBundleName: 19 | assetBundleVariant: 20 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 243e06394e614e5d99fab26083b707fa 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/Fonts & Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 731f1baa9d144a9897cb1d341c2092b8 3 | folderAsset: yes 4 | timeCreated: 1442040525 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e73a58f6e2794ae7b1b7e50b7fb811b0 3 | timeCreated: 1484172806 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e498d1c8094910479dc3e1b768306a4 3 | timeCreated: 1484171803 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79459efec17a4d00a321bdcc27bbc385 3 | timeCreated: 1484172856 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f586378b4e144a9851e7b34d9b748ee 3 | timeCreated: 1484171803 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt: -------------------------------------------------------------------------------- 1 | )]}〕〉》」』】〙〗〟’”⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、%,.:;。!?]):;=}¢°"†‡℃〆%,. -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fade42e8bc714b018fac513c043d323b 3 | timeCreated: 1425440388 4 | licenseType: Store 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt: -------------------------------------------------------------------------------- 1 | ([{〔〈《「『【〘〖〝‘“⦅«$—…‥〳〴〵\[({£¥"々〇$¥₩ # -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d82c1b31c7e74239bff1220585707d2b 3 | timeCreated: 1425440388 4 | licenseType: Store 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/Sprite Assets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 512a49d95c0c4332bdd98131869c23c9 3 | folderAsset: yes 4 | timeCreated: 1441876896 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c41005c129ba4d66911b75229fd70b45 3 | timeCreated: 1480316912 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/Style Sheets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4aecb92fff08436c8303b10eab8da368 3 | folderAsset: yes 4 | timeCreated: 1441876950 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f952c082cb03451daed3ee968ac6c63e 3 | timeCreated: 1432805430 4 | licenseType: Store 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/TMP Settings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 2705215ac5b84b70bacc50632be6e391, type: 3} 13 | m_Name: TMP Settings 14 | m_EditorClassIdentifier: 15 | m_enableWordWrapping: 1 16 | m_enableKerning: 1 17 | m_enableExtraPadding: 0 18 | m_enableTintAllSprites: 0 19 | m_enableParseEscapeCharacters: 1 20 | m_EnableRaycastTarget: 1 21 | m_GetFontFeaturesAtRuntime: 1 22 | m_missingGlyphCharacter: 0 23 | m_warningsDisabled: 0 24 | m_defaultFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 25 | m_defaultFontAssetPath: Fonts & Materials/ 26 | m_defaultFontSize: 36 27 | m_defaultAutoSizeMinRatio: 0.5 28 | m_defaultAutoSizeMaxRatio: 2 29 | m_defaultTextMeshProTextContainerSize: {x: 20, y: 5} 30 | m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50} 31 | m_autoSizeTextContainer: 0 32 | m_fallbackFontAssets: [] 33 | m_matchMaterialPreset: 1 34 | m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45, 35 | type: 2} 36 | m_defaultSpriteAssetPath: Sprite Assets/ 37 | m_enableEmojiSupport: 1 38 | m_MissingCharacterSpriteUnicode: 0 39 | m_defaultColorGradientPresetsPath: Color Gradient Presets/ 40 | m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e, 41 | type: 2} 42 | m_StyleSheetsResourcePath: 43 | m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3} 44 | m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b, 45 | type: 3} 46 | m_UseModernHangulLineBreakingRules: 0 47 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Resources/TMP Settings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f5b5dff67a942289a9defa416b206f3 3 | timeCreated: 1436653997 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9f693669af91aa45ad615fc681ed29f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48bb5f55d8670e349b6e614913f9d910 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e3b057af24249748ff873be7fafee47 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 128e987d567d4e2c824d754223b3f3b0 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd89cf5b9246416f84610a006f916af7 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14eb328de4b8eb245bb7cea29e4ac00b 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc1ede39bf3643ee8e493720e4259791 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a02a7d8c237544f1962732b55a9aebf1 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8d12adcee749c344b8117cf7c7eb912 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe393ace9b354375a9cb14cdbbc28be4 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85187c2149c549c5b33f0cdb02836b17 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7ada0af4f174f0694ca6a487b8f543d 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68e6db2ebdc24f95958faec2be5558d6 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf81c85f95fe47e1a27f6ae460cf182c 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMPro.cginc: -------------------------------------------------------------------------------- 1 | float2 UnpackUV(float uv) 2 | { 3 | float2 output; 4 | output.x = floor(uv / 4096); 5 | output.y = uv - 4096 * output.x; 6 | 7 | return output * 0.001953125; 8 | } 9 | 10 | fixed4 GetColor(half d, fixed4 faceColor, fixed4 outlineColor, half outline, half softness) 11 | { 12 | half faceAlpha = 1-saturate((d - outline * 0.5 + softness * 0.5) / (1.0 + softness)); 13 | half outlineAlpha = saturate((d + outline * 0.5)) * sqrt(min(1.0, outline)); 14 | 15 | faceColor.rgb *= faceColor.a; 16 | outlineColor.rgb *= outlineColor.a; 17 | 18 | faceColor = lerp(faceColor, outlineColor, outlineAlpha); 19 | 20 | faceColor *= faceAlpha; 21 | 22 | return faceColor; 23 | } 24 | 25 | float3 GetSurfaceNormal(float4 h, float bias) 26 | { 27 | bool raisedBevel = step(1, fmod(_ShaderFlags, 2)); 28 | 29 | h += bias+_BevelOffset; 30 | 31 | float bevelWidth = max(.01, _OutlineWidth+_BevelWidth); 32 | 33 | // Track outline 34 | h -= .5; 35 | h /= bevelWidth; 36 | h = saturate(h+.5); 37 | 38 | if(raisedBevel) h = 1 - abs(h*2.0 - 1.0); 39 | h = lerp(h, sin(h*3.141592/2.0), _BevelRoundness); 40 | h = min(h, 1.0-_BevelClamp); 41 | h *= _Bevel * bevelWidth * _GradientScale * -2.0; 42 | 43 | float3 va = normalize(float3(1.0, 0.0, h.y - h.x)); 44 | float3 vb = normalize(float3(0.0, -1.0, h.w - h.z)); 45 | 46 | return cross(va, vb); 47 | } 48 | 49 | float3 GetSurfaceNormal(float2 uv, float bias, float3 delta) 50 | { 51 | // Read "height field" 52 | float4 h = {tex2D(_MainTex, uv - delta.xz).a, 53 | tex2D(_MainTex, uv + delta.xz).a, 54 | tex2D(_MainTex, uv - delta.zy).a, 55 | tex2D(_MainTex, uv + delta.zy).a}; 56 | 57 | return GetSurfaceNormal(h, bias); 58 | } 59 | 60 | float3 GetSpecular(float3 n, float3 l) 61 | { 62 | float spec = pow(max(0.0, dot(n, l)), _Reflectivity); 63 | return _SpecularColor.rgb * spec * _SpecularPower; 64 | } 65 | 66 | float4 GetGlowColor(float d, float scale) 67 | { 68 | float glow = d - (_GlowOffset*_ScaleRatioB) * 0.5 * scale; 69 | float t = lerp(_GlowInner, (_GlowOuter * _ScaleRatioB), step(0.0, glow)) * 0.5 * scale; 70 | glow = saturate(abs(glow/(1.0 + t))); 71 | glow = 1.0-pow(glow, _GlowPower); 72 | glow *= sqrt(min(1.0, t)); // Fade off glow thinner than 1 screen pixel 73 | return float4(_GlowColor.rgb, saturate(_GlowColor.a * glow * 2)); 74 | } 75 | 76 | float4 BlendARGB(float4 overlying, float4 underlying) 77 | { 78 | overlying.rgb *= overlying.a; 79 | underlying.rgb *= underlying.a; 80 | float3 blended = overlying.rgb + ((1-overlying.a)*underlying.rgb); 81 | float alpha = underlying.a + (1-underlying.a)*overlying.a; 82 | return float4(blended, alpha); 83 | } 84 | 85 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMPro.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 407bc68d299748449bbf7f48ee690f8d 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c334973cef89a9840b0b0c507e0377ab 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3997e2241185407d80309a82f9148466 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d930090c0cd643c7b55f19a38538c162 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0603b6d5186471b96c778c3949c7ce2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt: -------------------------------------------------------------------------------- 1 | This sample of beautiful emojis are provided by EmojiOne https://www.emojione.com/ 2 | 3 | Please visit their website to view the complete set of their emojis and review their licensing terms. -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 381dcb09d5029d14897e55f98031fca5 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Sprites/EmojiOne.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f05276190cf498a8153f6cbe761d4e6 3 | timeCreated: 1480316860 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TextMesh Pro/Sprites/EmojiOne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/TextMesh Pro/Sprites/EmojiOne.png -------------------------------------------------------------------------------- /Assets/xNode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e60ba05713c41741b1dcd3dcf6e5507 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/xNode/Attributes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5644dfc7eed151045af664a9d4fd1906 3 | folderAsset: yes 4 | timeCreated: 1541633926 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/xNode/Attributes/NodeEnum.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | /// Draw enums correctly within nodes. Without it, enums show up at the wrong positions. 4 | /// Enums with this attribute are not detected by EditorGui.ChangeCheck due to waiting before executing 5 | public class NodeEnumAttribute : PropertyAttribute { } -------------------------------------------------------------------------------- /Assets/xNode/Attributes/NodeEnum.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 10a8338f6c985854697b35459181af0a 3 | timeCreated: 1541633942 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/xNode/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94d4fd78d9120634ebe0e8717610c412 3 | folderAsset: yes 4 | timeCreated: 1505418345 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/AdvancedGenericMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ddde711109af02e42bfe8eb006577081 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7adf21edfb51f514fa991d7556ecd0ef 3 | folderAsset: yes 4 | timeCreated: 1541971984 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers/NodeEnumDrawer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEditor; 5 | using UnityEngine; 6 | using XNode; 7 | using XNodeEditor; 8 | 9 | namespace XNodeEditor { 10 | [CustomPropertyDrawer(typeof(NodeEnumAttribute))] 11 | public class NodeEnumDrawer : PropertyDrawer { 12 | public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { 13 | EditorGUI.BeginProperty(position, label, property); 14 | 15 | EnumPopup(position, property, label); 16 | 17 | EditorGUI.EndProperty(); 18 | } 19 | 20 | public static void EnumPopup(Rect position, SerializedProperty property, GUIContent label) { 21 | // Throw error on wrong type 22 | if (property.propertyType != SerializedPropertyType.Enum) { 23 | throw new ArgumentException("Parameter selected must be of type System.Enum"); 24 | } 25 | 26 | // Add label 27 | position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label); 28 | 29 | // Get current enum name 30 | string enumName = ""; 31 | if (property.enumValueIndex >= 0 && property.enumValueIndex < property.enumDisplayNames.Length) enumName = property.enumDisplayNames[property.enumValueIndex]; 32 | 33 | #if UNITY_2017_1_OR_NEWER 34 | // Display dropdown 35 | if (EditorGUI.DropdownButton(position, new GUIContent(enumName), FocusType.Passive)) { 36 | // Position is all wrong if we show the dropdown during the node draw phase. 37 | // Instead, add it to onLateGUI to display it later. 38 | NodeEditorWindow.current.onLateGUI += () => ShowContextMenuAtMouse(property); 39 | } 40 | #else 41 | // Display dropdown 42 | if (GUI.Button(position, new GUIContent(enumName), "MiniPopup")) { 43 | // Position is all wrong if we show the dropdown during the node draw phase. 44 | // Instead, add it to onLateGUI to display it later. 45 | NodeEditorWindow.current.onLateGUI += () => ShowContextMenuAtMouse(property); 46 | } 47 | #endif 48 | } 49 | 50 | public static void ShowContextMenuAtMouse(SerializedProperty property) { 51 | // Initialize menu 52 | GenericMenu menu = new GenericMenu(); 53 | 54 | // Add all enum display names to menu 55 | for (int i = 0; i < property.enumDisplayNames.Length; i++) { 56 | int index = i; 57 | menu.AddItem(new GUIContent(property.enumDisplayNames[i]), false, () => SetEnum(property, index)); 58 | } 59 | 60 | // Display at cursor position 61 | Rect r = new Rect(Event.current.mousePosition, new Vector2(0, 0)); 62 | menu.DropDown(r); 63 | } 64 | 65 | private static void SetEnum(SerializedProperty property, int index) { 66 | property.enumValueIndex = index; 67 | property.serializedObject.ApplyModifiedProperties(); 68 | property.serializedObject.Update(); 69 | } 70 | } 71 | } -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers/NodeEnumDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83db81f92abadca439507e25d517cabe 3 | timeCreated: 1541633798 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers/Odin.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 327994a52f523b641898a39ff7500a02 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers/Odin/InNodeEditorAttributeProcessor.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_EDITOR && ODIN_INSPECTOR 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Reflection; 5 | using Sirenix.OdinInspector.Editor; 6 | using UnityEngine; 7 | using XNode; 8 | 9 | namespace XNodeEditor { 10 | internal class OdinNodeInGraphAttributeProcessor : OdinAttributeProcessor where T : Node { 11 | public override bool CanProcessSelfAttributes(InspectorProperty property) { 12 | return false; 13 | } 14 | 15 | public override bool CanProcessChildMemberAttributes(InspectorProperty parentProperty, MemberInfo member) { 16 | if (!NodeEditor.inNodeEditor) 17 | return false; 18 | 19 | if (member.MemberType == MemberTypes.Field) { 20 | switch (member.Name) { 21 | case "graph": 22 | case "position": 23 | case "ports": 24 | return true; 25 | 26 | default: 27 | break; 28 | } 29 | } 30 | 31 | return false; 32 | } 33 | 34 | public override void ProcessChildMemberAttributes(InspectorProperty parentProperty, MemberInfo member, List attributes) { 35 | switch (member.Name) { 36 | case "graph": 37 | case "position": 38 | case "ports": 39 | attributes.Add(new HideInInspector()); 40 | break; 41 | 42 | default: 43 | break; 44 | } 45 | } 46 | } 47 | } 48 | #endif -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers/Odin/InNodeEditorAttributeProcessor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cf2561fbfea9a041ac81efbbb5b3e0d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers/Odin/InputAttributeDrawer.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_EDITOR && ODIN_INSPECTOR 2 | using Sirenix.OdinInspector; 3 | using Sirenix.OdinInspector.Editor; 4 | using Sirenix.Utilities.Editor; 5 | using UnityEngine; 6 | using XNode; 7 | 8 | namespace XNodeEditor { 9 | public class InputAttributeDrawer : OdinAttributeDrawer { 10 | protected override bool CanDrawAttributeProperty(InspectorProperty property) { 11 | Node node = property.Tree.WeakTargets[0] as Node; 12 | return node != null; 13 | } 14 | 15 | protected override void DrawPropertyLayout(GUIContent label) { 16 | Node node = Property.Tree.WeakTargets[0] as Node; 17 | NodePort port = node.GetInputPort(Property.Name); 18 | 19 | if (!NodeEditor.inNodeEditor) { 20 | if (Attribute.backingValue == XNode.Node.ShowBackingValue.Always || Attribute.backingValue == XNode.Node.ShowBackingValue.Unconnected && !port.IsConnected) 21 | CallNextDrawer(label); 22 | return; 23 | } 24 | 25 | if (Property.Tree.WeakTargets.Count > 1) { 26 | SirenixEditorGUI.WarningMessageBox("Cannot draw ports with multiple nodes selected"); 27 | return; 28 | } 29 | 30 | if (port != null) { 31 | var portPropoerty = Property.Tree.GetUnityPropertyForPath(Property.UnityPropertyPath); 32 | if (portPropoerty == null) { 33 | SirenixEditorGUI.ErrorMessageBox("Port property missing at: " + Property.UnityPropertyPath); 34 | return; 35 | } else { 36 | var labelWidth = Property.GetAttribute(); 37 | if (labelWidth != null) 38 | GUIHelper.PushLabelWidth(labelWidth.Width); 39 | 40 | NodeEditorGUILayout.PropertyField(portPropoerty, label == null ? GUIContent.none : label, true, GUILayout.MinWidth(30)); 41 | 42 | if (labelWidth != null) 43 | GUIHelper.PopLabelWidth(); 44 | } 45 | } 46 | } 47 | } 48 | } 49 | #endif -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers/Odin/InputAttributeDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2fd590b2e9ea0bd49b6986a2ca9010ab 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers/Odin/OutputAttributeDrawer.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_EDITOR && ODIN_INSPECTOR 2 | using Sirenix.OdinInspector; 3 | using Sirenix.OdinInspector.Editor; 4 | using Sirenix.Utilities.Editor; 5 | using UnityEngine; 6 | using XNode; 7 | 8 | namespace XNodeEditor { 9 | public class OutputAttributeDrawer : OdinAttributeDrawer { 10 | protected override bool CanDrawAttributeProperty(InspectorProperty property) { 11 | Node node = property.Tree.WeakTargets[0] as Node; 12 | return node != null; 13 | } 14 | 15 | protected override void DrawPropertyLayout(GUIContent label) { 16 | Node node = Property.Tree.WeakTargets[0] as Node; 17 | NodePort port = node.GetOutputPort(Property.Name); 18 | 19 | if (!NodeEditor.inNodeEditor) { 20 | if (Attribute.backingValue == XNode.Node.ShowBackingValue.Always || Attribute.backingValue == XNode.Node.ShowBackingValue.Unconnected && !port.IsConnected) 21 | CallNextDrawer(label); 22 | return; 23 | } 24 | 25 | if (Property.Tree.WeakTargets.Count > 1) { 26 | SirenixEditorGUI.WarningMessageBox("Cannot draw ports with multiple nodes selected"); 27 | return; 28 | } 29 | 30 | if (port != null) { 31 | var portPropoerty = Property.Tree.GetUnityPropertyForPath(Property.UnityPropertyPath); 32 | if (portPropoerty == null) { 33 | SirenixEditorGUI.ErrorMessageBox("Port property missing at: " + Property.UnityPropertyPath); 34 | return; 35 | } else { 36 | var labelWidth = Property.GetAttribute(); 37 | if (labelWidth != null) 38 | GUIHelper.PushLabelWidth(labelWidth.Width); 39 | 40 | NodeEditorGUILayout.PropertyField(portPropoerty, label == null ? GUIContent.none : label, true, GUILayout.MinWidth(30)); 41 | 42 | if (labelWidth != null) 43 | GUIHelper.PopLabelWidth(); 44 | } 45 | } 46 | } 47 | } 48 | } 49 | #endif -------------------------------------------------------------------------------- /Assets/xNode/Editor/Drawers/Odin/OutputAttributeDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7ebd8f2b42e2384aa109551dc46af88 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/GraphAndNodeEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | #if ODIN_INSPECTOR 4 | using Sirenix.OdinInspector.Editor; 5 | using Sirenix.Utilities; 6 | using Sirenix.Utilities.Editor; 7 | #endif 8 | 9 | namespace XNodeEditor { 10 | /// Override graph inspector to show an 'Open Graph' button at the top 11 | [CustomEditor(typeof(XNode.NodeGraph), true)] 12 | #if ODIN_INSPECTOR 13 | public class GlobalGraphEditor : OdinEditor { 14 | public override void OnInspectorGUI() { 15 | if (GUILayout.Button("Edit graph", GUILayout.Height(40))) { 16 | NodeEditorWindow.Open(serializedObject.targetObject as XNode.NodeGraph); 17 | } 18 | base.OnInspectorGUI(); 19 | } 20 | } 21 | #else 22 | [CanEditMultipleObjects] 23 | public class GlobalGraphEditor : Editor { 24 | public override void OnInspectorGUI() { 25 | serializedObject.Update(); 26 | 27 | if (GUILayout.Button("Edit graph", GUILayout.Height(40))) { 28 | NodeEditorWindow.Open(serializedObject.targetObject as XNode.NodeGraph); 29 | } 30 | 31 | GUILayout.Space(EditorGUIUtility.singleLineHeight); 32 | GUILayout.Label("Raw data", "BoldLabel"); 33 | 34 | DrawDefaultInspector(); 35 | 36 | serializedObject.ApplyModifiedProperties(); 37 | } 38 | } 39 | #endif 40 | 41 | [CustomEditor(typeof(XNode.Node), true)] 42 | #if ODIN_INSPECTOR 43 | public class GlobalNodeEditor : OdinEditor { 44 | public override void OnInspectorGUI() { 45 | if (GUILayout.Button("Edit graph", GUILayout.Height(40))) { 46 | SerializedProperty graphProp = serializedObject.FindProperty("graph"); 47 | NodeEditorWindow w = NodeEditorWindow.Open(graphProp.objectReferenceValue as XNode.NodeGraph); 48 | w.Home(); // Focus selected node 49 | } 50 | base.OnInspectorGUI(); 51 | } 52 | } 53 | #else 54 | [CanEditMultipleObjects] 55 | public class GlobalNodeEditor : Editor { 56 | public override void OnInspectorGUI() { 57 | serializedObject.Update(); 58 | 59 | if (GUILayout.Button("Edit graph", GUILayout.Height(40))) { 60 | SerializedProperty graphProp = serializedObject.FindProperty("graph"); 61 | NodeEditorWindow w = NodeEditorWindow.Open(graphProp.objectReferenceValue as XNode.NodeGraph); 62 | w.Home(); // Focus selected node 63 | } 64 | 65 | GUILayout.Space(EditorGUIUtility.singleLineHeight); 66 | GUILayout.Label("Raw data", "BoldLabel"); 67 | 68 | // Now draw the node itself. 69 | DrawDefaultInspector(); 70 | 71 | serializedObject.ApplyModifiedProperties(); 72 | } 73 | } 74 | #endif 75 | } -------------------------------------------------------------------------------- /Assets/xNode/Editor/GraphAndNodeEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bdd6e443125ccac4dad0665515759637 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/GraphRenameFixAssetProcessor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using XNode; 3 | 4 | namespace XNodeEditor { 5 | /// 6 | /// This asset processor resolves an issue with the new v2 AssetDatabase system present on 2019.3 and later. When 7 | /// renaming a asset, it appears that sometimes the v2 AssetDatabase will swap which asset 8 | /// is the main asset (present at top level) between the and one of its 9 | /// sub-assets. As a workaround until Unity fixes this, this asset processor checks all renamed assets and if it 10 | /// finds a case where a has been made the main asset it will swap it back to being a sub-asset 11 | /// and rename the node to the default name for that node type. 12 | /// 13 | internal sealed class GraphRenameFixAssetProcessor : AssetPostprocessor { 14 | private static void OnPostprocessAllAssets( 15 | string[] importedAssets, 16 | string[] deletedAssets, 17 | string[] movedAssets, 18 | string[] movedFromAssetPaths) { 19 | for (int i = 0; i < movedAssets.Length; i++) { 20 | Node nodeAsset = AssetDatabase.LoadMainAssetAtPath(movedAssets[i]) as Node; 21 | 22 | // If the renamed asset is a node graph, but the v2 AssetDatabase has swapped a sub-asset node to be its 23 | // main asset, reset the node graph to be the main asset and rename the node asset back to its default 24 | // name. 25 | if (nodeAsset != null && AssetDatabase.IsMainAsset(nodeAsset)) { 26 | AssetDatabase.SetMainObject(nodeAsset.graph, movedAssets[i]); 27 | AssetDatabase.ImportAsset(movedAssets[i]); 28 | 29 | nodeAsset.name = NodeEditorUtilities.NodeDefaultName(nodeAsset.GetType()); 30 | EditorUtility.SetDirty(nodeAsset); 31 | } 32 | } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Assets/xNode/Editor/GraphRenameFixAssetProcessor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 65da1ff1c50a9984a9c95fd18799e8dd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Internal.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6a1bbc054e282346a02e7bbddde3206 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Internal/RerouteReference.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace XNodeEditor.Internal { 4 | public struct RerouteReference { 5 | public XNode.NodePort port; 6 | public int connectionIndex; 7 | public int pointIndex; 8 | 9 | public RerouteReference(XNode.NodePort port, int connectionIndex, int pointIndex) { 10 | this.port = port; 11 | this.connectionIndex = connectionIndex; 12 | this.pointIndex = pointIndex; 13 | } 14 | 15 | public void InsertPoint(Vector2 pos) { port.GetReroutePoints(connectionIndex).Insert(pointIndex, pos); } 16 | public void SetPoint(Vector2 pos) { port.GetReroutePoints(connectionIndex) [pointIndex] = pos; } 17 | public void RemovePoint() { port.GetReroutePoints(connectionIndex).RemoveAt(pointIndex); } 18 | public Vector2 GetPoint() { return port.GetReroutePoints(connectionIndex) [pointIndex]; } 19 | } 20 | } -------------------------------------------------------------------------------- /Assets/xNode/Editor/Internal/RerouteReference.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 399f3c5fb717b2c458c3e9746f8959a3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 712c3fc5d9eeb4c45b1e23918df6018f 3 | timeCreated: 1505462176 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorAction.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa7d4286bf0ad2e4086252f2893d2cf5 3 | timeCreated: 1505426655 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorAssetModProcessor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e515e86efe8160243a68b7c06d730c9c 3 | timeCreated: 1507982232 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e85122ded59aceb4eb4b1bd9d9202642 3 | timeCreated: 1511353946 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorGUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 756276bfe9a0c2f4da3930ba1964f58d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorGUILayout.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d6c2d118d1c77948a23f2f4a34d1f64 3 | timeCreated: 1507966608 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorPreferences.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b1f47e387a6f714c9f2ff82a6888c85 3 | timeCreated: 1507920216 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorReflection.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c78a0fa4a13abcd408ebe73006b7b1bb 3 | timeCreated: 1505419458 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorResources.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69f55d341299026489b29443c3dd13d1 3 | timeCreated: 1505418919 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorUtilities.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 120960fe5b50aba418a8e8ad3c4c4bc8 3 | timeCreated: 1506073499 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeEditorWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ce2bf59ec7a25c4ba691cad7819bf38 3 | timeCreated: 1505418450 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeGraphEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ddcbb5432255d3247a0718b15a9c193c 3 | timeCreated: 1505462176 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeGraphImporter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Linq; 4 | using UnityEditor; 5 | using UnityEditor.Experimental.AssetImporters; 6 | using UnityEngine; 7 | using XNode; 8 | 9 | namespace XNodeEditor { 10 | /// Deals with modified assets 11 | class NodeGraphImporter : AssetPostprocessor { 12 | private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { 13 | foreach (string path in importedAssets) { 14 | // Skip processing anything without the .asset extension 15 | if (Path.GetExtension(path) != ".asset") continue; 16 | 17 | // Get the object that is requested for deletion 18 | NodeGraph graph = AssetDatabase.LoadAssetAtPath(path); 19 | if (graph == null) continue; 20 | 21 | // Get attributes 22 | Type graphType = graph.GetType(); 23 | NodeGraph.RequireNodeAttribute[] attribs = Array.ConvertAll( 24 | graphType.GetCustomAttributes(typeof(NodeGraph.RequireNodeAttribute), true), x => x as NodeGraph.RequireNodeAttribute); 25 | 26 | Vector2 position = Vector2.zero; 27 | foreach (NodeGraph.RequireNodeAttribute attrib in attribs) { 28 | if (attrib.type0 != null) AddRequired(graph, attrib.type0, ref position); 29 | if (attrib.type1 != null) AddRequired(graph, attrib.type1, ref position); 30 | if (attrib.type2 != null) AddRequired(graph, attrib.type2, ref position); 31 | } 32 | } 33 | } 34 | 35 | private static void AddRequired(NodeGraph graph, Type type, ref Vector2 position) { 36 | if (!graph.nodes.Any(x => x.GetType() == type)) { 37 | XNode.Node node = graph.AddNode(type); 38 | node.position = position; 39 | position.x += 200; 40 | if (node.name == null || node.name.Trim() == "") node.name = NodeEditorUtilities.NodeDefaultName(type); 41 | if (!string.IsNullOrEmpty(AssetDatabase.GetAssetPath(graph))) AssetDatabase.AddObjectToAsset(node, graph); 42 | } 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /Assets/xNode/Editor/NodeGraphImporter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a816f2790bf3da48a2d6d0035ebc9a0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/RenamePopup.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ef3ddc25518318469bce838980c64be 3 | timeCreated: 1552067957 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 964fc201163fe884ca6a20094b6f3b49 3 | folderAsset: yes 4 | timeCreated: 1506110871 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/ScriptTemplates.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86b677955452bb5449f9f4dd47b6ddfe 3 | folderAsset: yes 4 | timeCreated: 1519049391 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/ScriptTemplates/xNode_NodeGraphTemplate.cs.txt: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using XNode; 5 | 6 | [CreateAssetMenu] 7 | public class #SCRIPTNAME# : NodeGraph { 8 | #NOTRIM# 9 | } -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/ScriptTemplates/xNode_NodeGraphTemplate.cs.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8165767f64da7d94e925f61a38da668c 3 | timeCreated: 1519049802 4 | licenseType: Free 5 | TextScriptImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/ScriptTemplates/xNode_NodeTemplate.cs.txt: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using XNode; 5 | 6 | public class #SCRIPTNAME# : Node { 7 | 8 | // Use this for initialization 9 | protected override void Init() { 10 | base.Init(); 11 | #NOTRIM# 12 | } 13 | 14 | // Return the correct value of an output port when requested 15 | public override object GetValue(NodePort port) { 16 | return null; // Replace this 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/ScriptTemplates/xNode_NodeTemplate.cs.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85f6f570600a1a44d8e734cb111a8b89 3 | timeCreated: 1519049802 4 | licenseType: Free 5 | TextScriptImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/xNode/Editor/Resources/xnode_dot.png -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_dot.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75a1fe0b102226a418486ed823c9a7fb 3 | timeCreated: 1506110357 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | grayScaleToAlpha: 0 26 | generateCubemap: 6 27 | cubemapConvolution: 0 28 | seamlessCubemap: 0 29 | textureFormat: 1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | serializedVersion: 2 33 | filterMode: -1 34 | aniso: 1 35 | mipBias: -1 36 | wrapU: 1 37 | wrapV: -1 38 | wrapW: -1 39 | nPOTScale: 0 40 | lightmap: 0 41 | compressionQuality: 50 42 | spriteMode: 0 43 | spriteExtrude: 1 44 | spriteMeshType: 1 45 | alignment: 0 46 | spritePivot: {x: 0.5, y: 0.5} 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spritePixelsToUnits: 100 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 2 53 | textureShape: 1 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - buildTarget: DefaultTexturePlatform 59 | maxTextureSize: 2048 60 | textureFormat: -1 61 | textureCompression: 1 62 | compressionQuality: 50 63 | crunchedCompression: 0 64 | allowsAlphaSplitting: 0 65 | overridden: 0 66 | - buildTarget: Standalone 67 | maxTextureSize: 2048 68 | textureFormat: -1 69 | textureCompression: 1 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | - buildTarget: Android 75 | maxTextureSize: 2048 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | - buildTarget: WebGL 83 | maxTextureSize: 2048 84 | textureFormat: -1 85 | textureCompression: 1 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | spritePackingTag: 96 | userData: 97 | assetBundleName: 98 | assetBundleVariant: 99 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_dot_outer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/xNode/Editor/Resources/xnode_dot_outer.png -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_dot_outer.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 434ca8b4bdfa5574abb0002bbc9b65ad 3 | timeCreated: 1506110357 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | grayScaleToAlpha: 0 26 | generateCubemap: 6 27 | cubemapConvolution: 0 28 | seamlessCubemap: 0 29 | textureFormat: 1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | serializedVersion: 2 33 | filterMode: -1 34 | aniso: 1 35 | mipBias: -1 36 | wrapU: 1 37 | wrapV: -1 38 | wrapW: -1 39 | nPOTScale: 0 40 | lightmap: 0 41 | compressionQuality: 50 42 | spriteMode: 0 43 | spriteExtrude: 1 44 | spriteMeshType: 1 45 | alignment: 0 46 | spritePivot: {x: 0.5, y: 0.5} 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spritePixelsToUnits: 100 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 2 53 | textureShape: 1 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - buildTarget: DefaultTexturePlatform 59 | maxTextureSize: 2048 60 | textureFormat: -1 61 | textureCompression: 1 62 | compressionQuality: 50 63 | crunchedCompression: 0 64 | allowsAlphaSplitting: 0 65 | overridden: 0 66 | - buildTarget: Standalone 67 | maxTextureSize: 2048 68 | textureFormat: -1 69 | textureCompression: 1 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | - buildTarget: Android 75 | maxTextureSize: 2048 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | - buildTarget: WebGL 83 | maxTextureSize: 2048 84 | textureFormat: -1 85 | textureCompression: 1 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | spritePackingTag: 96 | userData: 97 | assetBundleName: 98 | assetBundleVariant: 99 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/xNode/Editor/Resources/xnode_node.png -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_node.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2fea1dcb24935ef4ca514d534eb6aa3d 3 | timeCreated: 1507454532 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | grayScaleToAlpha: 0 26 | generateCubemap: 6 27 | cubemapConvolution: 0 28 | seamlessCubemap: 0 29 | textureFormat: 1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | serializedVersion: 2 33 | filterMode: -1 34 | aniso: 1 35 | mipBias: -1 36 | wrapU: 1 37 | wrapV: 1 38 | wrapW: 1 39 | nPOTScale: 0 40 | lightmap: 0 41 | compressionQuality: 50 42 | spriteMode: 0 43 | spriteExtrude: 1 44 | spriteMeshType: 1 45 | alignment: 0 46 | spritePivot: {x: 0.5, y: 0.5} 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spritePixelsToUnits: 100 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 2 53 | textureShape: 1 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - buildTarget: DefaultTexturePlatform 59 | maxTextureSize: 2048 60 | textureFormat: -1 61 | textureCompression: 1 62 | compressionQuality: 50 63 | crunchedCompression: 0 64 | allowsAlphaSplitting: 0 65 | overridden: 0 66 | - buildTarget: Standalone 67 | maxTextureSize: 2048 68 | textureFormat: -1 69 | textureCompression: 1 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | - buildTarget: Android 75 | maxTextureSize: 2048 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | - buildTarget: WebGL 83 | maxTextureSize: 2048 84 | textureFormat: -1 85 | textureCompression: 1 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | spritePackingTag: 96 | userData: 97 | assetBundleName: 98 | assetBundleVariant: 99 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_node_highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/xNode/Editor/Resources/xnode_node_highlight.png -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_node_highlight.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ab2b92d7e1771b47bba0a46a6f0f6d5 3 | timeCreated: 1516610730 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 0 12 | sRGBTexture: 0 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 1 36 | mipBias: -1 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 1 52 | spriteTessellationDetail: -1 53 | textureType: 2 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 1 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | spriteSheet: 80 | serializedVersion: 2 81 | sprites: [] 82 | outline: [] 83 | physicsShape: [] 84 | spritePackingTag: 85 | userData: 86 | assetBundleName: 87 | assetBundleVariant: 88 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_node_workfile.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alan-Baylis/Digital_Novel_Studio/da799e0a55c07ba2b2c4bec16d243b6ab3e50547/Assets/xNode/Editor/Resources/xnode_node_workfile.psd -------------------------------------------------------------------------------- /Assets/xNode/Editor/Resources/xnode_node_workfile.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2267efa6e1e349348ae0b28fb659a6e2 3 | timeCreated: 1507454532 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | grayScaleToAlpha: 0 26 | generateCubemap: 6 27 | cubemapConvolution: 0 28 | seamlessCubemap: 0 29 | textureFormat: 1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | serializedVersion: 2 33 | filterMode: -1 34 | aniso: 1 35 | mipBias: -1 36 | wrapU: 1 37 | wrapV: -1 38 | wrapW: -1 39 | nPOTScale: 0 40 | lightmap: 0 41 | compressionQuality: 50 42 | spriteMode: 0 43 | spriteExtrude: 1 44 | spriteMeshType: 1 45 | alignment: 0 46 | spritePivot: {x: 0.5, y: 0.5} 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spritePixelsToUnits: 100 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 2 53 | textureShape: 1 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - buildTarget: DefaultTexturePlatform 59 | maxTextureSize: 2048 60 | textureFormat: -1 61 | textureCompression: 1 62 | compressionQuality: 50 63 | crunchedCompression: 0 64 | allowsAlphaSplitting: 0 65 | overridden: 0 66 | - buildTarget: Standalone 67 | maxTextureSize: 2048 68 | textureFormat: -1 69 | textureCompression: 1 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | - buildTarget: Android 75 | maxTextureSize: 2048 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | - buildTarget: WebGL 83 | maxTextureSize: 2048 84 | textureFormat: -1 85 | textureCompression: 1 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | spritePackingTag: 96 | userData: 97 | assetBundleName: 98 | assetBundleVariant: 99 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/SceneGraphEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aea725adabc311f44b5ea8161360a915 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/Editor/XNodeEditor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "XNodeEditor", 3 | "references": [ 4 | "XNode", 5 | "UnityEngine.TestRunner", 6 | "UnityEditor.TestRunner" 7 | ], 8 | "optionalUnityReferences": [], 9 | "includePlatforms": [ 10 | "Editor" 11 | ], 12 | "excludePlatforms": [], 13 | "allowUnsafeCode": false, 14 | "overrideReferences": false, 15 | "precompiledReferences": [], 16 | "autoReferenced": true, 17 | "defineConstraints": [], 18 | "versionDefines": [] 19 | } -------------------------------------------------------------------------------- /Assets/xNode/Editor/XNodeEditor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 002c1bbed08fa44d282ef34fd5edb138 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/xNode/Node.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f26231e5ab9368746948d0ea49e8178a 3 | timeCreated: 1505419984 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/NodeDataCache.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64ea6af1e195d024d8df0ead1921e517 3 | timeCreated: 1507566823 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/NodeGraph.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 093f68ef2455d544fa2d14b80c811322 3 | timeCreated: 1505461376 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/NodePort.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7dd2f76ac25c6f44c9426dff3e7491a3 3 | timeCreated: 1505734054 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/xNode/SceneGraph.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using XNode; 5 | 6 | namespace XNode { 7 | /// Lets you instantiate a node graph in the scene. This allows you to reference in-scene objects. 8 | public class SceneGraph : MonoBehaviour { 9 | public NodeGraph graph; 10 | } 11 | 12 | /// Derive from this class to create a SceneGraph with a specific graph type. 13 | /// 14 | /// 15 | /// public class MySceneGraph : SceneGraph { 16 | /// 17 | /// } 18 | /// 19 | /// 20 | public class SceneGraph : SceneGraph where T : NodeGraph { 21 | public new T graph { get { return base.graph as T; } set { base.graph = value; } } 22 | } 23 | } -------------------------------------------------------------------------------- /Assets/xNode/SceneGraph.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7915171fc13472a40a0162003052d2db 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/xNode/XNode.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "XNode", 3 | "references": [], 4 | "optionalUnityReferences": [], 5 | "includePlatforms": [], 6 | "excludePlatforms": [], 7 | "allowUnsafeCode": false, 8 | "overrideReferences": false, 9 | "precompiledReferences": [], 10 | "autoReferenced": true, 11 | "defineConstraints": [], 12 | "versionDefines": [] 13 | } 14 | -------------------------------------------------------------------------------- /Assets/xNode/XNode.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8e24fd1eb19b4226afebb2810e3c19b 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2018 Zhen Geng 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ai.navigation": "1.1.3", 4 | "com.unity.collab-proxy": "2.0.4", 5 | "com.unity.ide.rider": "3.0.24", 6 | "com.unity.ide.visualstudio": "2.0.18", 7 | "com.unity.ide.vscode": "1.2.5", 8 | "com.unity.inputsystem": "1.7.0", 9 | "com.unity.test-framework": "1.1.33", 10 | "com.unity.textmeshpro": "3.0.6", 11 | "com.unity.timeline": "1.7.4", 12 | "com.unity.ugui": "1.0.0", 13 | "com.unity.modules.ai": "1.0.0", 14 | "com.unity.modules.androidjni": "1.0.0", 15 | "com.unity.modules.animation": "1.0.0", 16 | "com.unity.modules.assetbundle": "1.0.0", 17 | "com.unity.modules.audio": "1.0.0", 18 | "com.unity.modules.cloth": "1.0.0", 19 | "com.unity.modules.director": "1.0.0", 20 | "com.unity.modules.imageconversion": "1.0.0", 21 | "com.unity.modules.imgui": "1.0.0", 22 | "com.unity.modules.jsonserialize": "1.0.0", 23 | "com.unity.modules.particlesystem": "1.0.0", 24 | "com.unity.modules.physics": "1.0.0", 25 | "com.unity.modules.physics2d": "1.0.0", 26 | "com.unity.modules.screencapture": "1.0.0", 27 | "com.unity.modules.terrain": "1.0.0", 28 | "com.unity.modules.terrainphysics": "1.0.0", 29 | "com.unity.modules.tilemap": "1.0.0", 30 | "com.unity.modules.ui": "1.0.0", 31 | "com.unity.modules.uielements": "1.0.0", 32 | "com.unity.modules.umbra": "1.0.0", 33 | "com.unity.modules.unityanalytics": "1.0.0", 34 | "com.unity.modules.unitywebrequest": "1.0.0", 35 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 36 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 37 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 38 | "com.unity.modules.unitywebrequestwww": "1.0.0", 39 | "com.unity.modules.vehicles": "1.0.0", 40 | "com.unity.modules.video": "1.0.0", 41 | "com.unity.modules.vr": "1.0.0", 42 | "com.unity.modules.wind": "1.0.0", 43 | "com.unity.modules.xr": "1.0.0" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/RenPy Maker.unity 10 | guid: 9528f935e59797d4f8ab7c6f01d70517 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_SerializeInlineMappingsOnOneLine: 1 -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.3.36f1 2 | m_EditorVersionWithRevision: 2020.3.36f1 (71f96b79b9f0) 3 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/TimelineSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | assetDefaultFramerate: 60 16 | m_DefaultFrameRate: 60 17 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Digital_Novel_Studio 2 | Digital Novel Studio allows you to create a visual novel for Ren'Py (renpy.org) within the Unity editor. You can add dialogs, pictures, music and sounds by adding nodes to a visual graph. Digital Novel Studio has all you need to make your own visual novel easily and quickly. Digital Novel Studio also supports menus, labels, and jumps to make a fully dynamic novel that allows for branching based on the reader's choices. You can even test and build your novel in Unity! 3 | 4 | 5 | ![Screenshot](/Assets/RenPy%20Maker/Artwork/screenshot.png?raw=true "Ren'Py Maker Screenshot") 6 | 7 | 8 | You can find more information and the online tutorials here at https://www.DigitalNovelStudio.com 9 | 10 | 11 | 12 | Ren'Py is a very complex scripting language and creating a full set of nodes and advanced features will take time. If you would like to get access to the full version of Digital Novel Studio as it is being made and also help support the development of the program then you can subscribe to my Patreon channel. 13 | https://www.patreon.com/user?u=9912327 14 | 15 | 16 | Planned features for the full version of Digital Novel Studio: 17 | Node grouping with custom colors, 18 | Inventory system, 19 | Image maps, 20 | Hidden objects/collectables, 21 | Full preferences, 22 | Event history, 23 | Animations, 24 | Statistics, 25 | Auto layout, 26 | Disable button to temporarily hide nodes, 27 | Advanced error/logic checking, 28 | Dynamic help/tooltips, 29 | Multi nodes combining Scene, Show and Dialog, 30 | Language selection 31 | Export all to Ren'Py project option, 32 | Image library for inventory (Drag & Drop), 33 | Daz3D and Unity scene creator, 34 | Full GUI customization, 35 | Convert Ren'Py script to a Digital Novel Studio graph, 36 | Library of routines for common transitions and effects 37 | 38 | 39 | 40 | Digital Novel Studio has been released for free with full source code in gratitude to Thor Brigsted, the author of xNode, who released his fantastic node editor for free. And as a big thank you to a couple of great xNode tutorials released on YouTube, as well as to the authors of Unity itself. Each of which allowed me to make this software. 41 | 42 | 43 | Links: 44 | 45 | Thor Brigsted (Siccity) - http://thorbrigsted.com 46 | 47 | xNode on GitHub - https://github.com/Siccity/xNode 48 | 49 | xNode Unity Forum - https://forum.unity.com/threads/xnode-a-general-purpose-node-editor.502354/ 50 | 51 | BrainShack's xNode Tutorial - https://www.youtube.com/@brainshack9077/search?query=simple%20dialog 52 | 53 | Harrison Gowland's xNode Tutorial - https://www.youtube.com/c/HarrisonGowland/search?query=XNode 54 | 55 | Unity Platform - https://unity.com 56 | 57 | 58 | 59 | I hope you enjoy using Digital Novel Studio and find it useful for creating advanced visual novels in Ren'Py. 60 | 61 | Alan Baylis 62 | 63 | 64 | "We shall change the face of Arrakis." 65 | --- Dune (1984) 66 | --------------------------------------------------------------------------------