├── .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 | 
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 |
--------------------------------------------------------------------------------