summaryrefslogtreecommitdiff
path: root/VRCSDK3Worlds/Assets/Udon/Editor/GraphModules/VRCInstantiateNodeRegistry.cs
blob: d7a93e902ef7967d61eca968801b2676f41b6c43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
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
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using VRC.Udon.Graph.Interfaces;
using VRC.Udon.Graph.Attributes;
using VRC.Udon.Graph.NodeRegistries;

[assembly: UdonGraphNodeRegistry(typeof(VRCInstantiateNodeRegistry), "VRCInstantiateNodeRegistry")]
namespace VRC.Udon.Graph.NodeRegistries
{
    public class VRCInstantiateNodeRegistry : BaseNodeRegistry
    {
        protected override Dictionary<string, INodeRegistry> NextRegistries => _nextRegistries;
        private static readonly Dictionary<string, INodeRegistry> _nextRegistries = new Dictionary<string, INodeRegistry>();

        protected override Dictionary<string, UdonNodeDefinition> NodeDefinitions => _nodeDefinitions;

        private static readonly Dictionary<string, UdonNodeDefinition> _nodeDefinitions = new Dictionary<string, UdonNodeDefinition>
        {
            {
                "VRCInstantiate.__Instantiate__UnityEngineGameObject__UnityEngineGameObject",
                new UdonNodeDefinition(
                    "VRChat Instantiate",
                    "VRCInstantiate.__Instantiate__UnityEngineGameObject__UnityEngineGameObject",
                    typeof(UnityEngine.Object),
                    new []
                    {
                        new UdonNodeParameter
                        {
                            name = "original",
                            type = typeof(UnityEngine.GameObject),
                            parameterType = UdonNodeParameter.ParameterType.IN
                        }, 
                        new UdonNodeParameter
                        {
                            name = "clone",
                            type = typeof(UnityEngine.GameObject),
                            parameterType = UdonNodeParameter.ParameterType.OUT
                        } 
                    },
                    new string[] { },
                    new string[] { },
                    new object[] { },
                    true
                )
            }
        };
    }
}