summaryrefslogtreecommitdiff
path: root/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/SurfaceShaderInputs/WorldPosInputsNode.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/SurfaceShaderInputs/WorldPosInputsNode.cs')
-rw-r--r--Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/SurfaceShaderInputs/WorldPosInputsNode.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/SurfaceShaderInputs/WorldPosInputsNode.cs b/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/SurfaceShaderInputs/WorldPosInputsNode.cs
new file mode 100644
index 00000000..15c0b29f
--- /dev/null
+++ b/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/SurfaceShaderInputs/WorldPosInputsNode.cs
@@ -0,0 +1,37 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using System;
+using UnityEngine;
+
+namespace AmplifyShaderEditor
+{
+ [Serializable]
+ [NodeAttributes( "World Position", "Surface Data", "World space position" )]
+ public sealed class WorldPosInputsNode : SurfaceShaderINParentNode
+ {
+ protected override void CommonInit( int uniqueId )
+ {
+ base.CommonInit( uniqueId );
+ m_currentInput = SurfaceInputs.WORLD_POS;
+ m_drawPreviewAsSphere = true;
+ m_previewShaderGUID = "70d5405009b31a349a4d8285f30cf5d9";
+ InitialSetup();
+ }
+
+ public override void DrawProperties() { }
+
+ public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalVar )
+ {
+ if ( dataCollector.IsTemplate )
+ {
+ string varName = dataCollector.TemplateDataCollectorInstance.GetWorldPos();
+ return GetOutputVectorItem( 0, outputId, varName );
+ }
+
+ string worldPosition = GeneratorUtils.GenerateWorldPosition( ref dataCollector, UniqueId );
+
+ return GetOutputVectorItem( 0, outputId, worldPosition );
+ }
+ }
+}