Exemplo n.º 1
0
        public Node create_node(IPositionable position, object prefab)
        {
            if (!(prefab is string) && !(prefab is NetPrefab))
            {
                throw new Exception("Prefab must be string or NetPrefab");
            }
            CreateNodeMessage msg = new CreateNodeMessage()
            {
                Position = position.position,
                Type     = prefab is NetPrefab ? ((NetPrefab)prefab).name : (string)prefab
            };

            Node shell = ObjectStorage.Instance.Nodes.CreateShell();

            client.RemoteCall(Contracts.CreateNode, msg, (ret, error) => {
                if (error != null)
                {
                    shell.AssignData(null, error);
                    return(null);
                }
                NetNodeData data = (NetNodeData)ret;
                ObjectStorage.Instance.Nodes.AddDataToDictionary(data);
                shell.AssignData(data);
                return(null);
            });
            return(shell);
        }
Exemplo n.º 2
0
        public Node create_node(IPositionable position, object prefab)
        {
            if (!(prefab is string) && !(prefab is NetPrefab))
            {
                throw new Exception("Prefab must be string or NetPrefab");
            }
            CreateNodeMessage msg = new CreateNodeMessage()
            {
                Position = position.position,
                Type     = prefab is NetPrefab ? ((NetPrefab)prefab).name : (string)prefab
            };

            return(new Node(client.RemoteCall <NetNodeMessage>(Contracts.CreateNode, msg), this));
        }