1 /**
2 
3 
4 Copyright:
5 Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.  
6 Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)  
7 Copyright (c) 2017-2018 Godot-D contributors  
8 
9 License: $(LINK2 https://opensource.org/licenses/MIT, MIT License)
10 
11 
12 */
13 module godot.animationnodeblendtree;
14 import std.meta : AliasSeq, staticIndexOf;
15 import std.traits : Unqual;
16 import godot.d.meta;
17 import godot.core;
18 import godot.c;
19 import godot.d.bind;
20 import godot.d.reference;
21 import godot.object;
22 import godot.classdb;
23 import godot.animationrootnode;
24 import godot.animationnode;
25 import godot.resource;
26 import godot.reference;
27 /**
28 
29 */
30 @GodotBaseClass struct AnimationNodeBlendTree
31 {
32 	enum string _GODOT_internal_name = "AnimationNodeBlendTree";
33 public:
34 @nogc nothrow:
35 	union { godot_object _godot_object; AnimationRootNode _GODOT_base; }
36 	alias _GODOT_base this;
37 	alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses);
38 	package(godot) __gshared bool _classBindingInitialized = false;
39 	package(godot) static struct _classBinding
40 	{
41 		__gshared:
42 		@GodotName("add_node") GodotMethod!(void, String, AnimationNode, Vector2) addNode;
43 		@GodotName("get_node") GodotMethod!(AnimationNode, String) getNode;
44 		@GodotName("remove_node") GodotMethod!(void, String) removeNode;
45 		@GodotName("rename_node") GodotMethod!(void, String, String) renameNode;
46 		@GodotName("has_node") GodotMethod!(bool, String) hasNode;
47 		@GodotName("connect_node") GodotMethod!(void, String, long, String) connectNode;
48 		@GodotName("disconnect_node") GodotMethod!(void, String, long) disconnectNode;
49 		@GodotName("set_node_position") GodotMethod!(void, String, Vector2) setNodePosition;
50 		@GodotName("get_node_position") GodotMethod!(Vector2, String) getNodePosition;
51 		@GodotName("set_graph_offset") GodotMethod!(void, Vector2) setGraphOffset;
52 		@GodotName("get_graph_offset") GodotMethod!(Vector2) getGraphOffset;
53 		@GodotName("_tree_changed") GodotMethod!(void) _treeChanged;
54 		@GodotName("_node_changed") GodotMethod!(void, String) _nodeChanged;
55 	}
56 	bool opEquals(in AnimationNodeBlendTree other) const { return _godot_object.ptr is other._godot_object.ptr; }
57 	AnimationNodeBlendTree opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; }
58 	bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; }
59 	mixin baseCasts;
60 	static AnimationNodeBlendTree _new()
61 	{
62 		static godot_class_constructor constructor;
63 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("AnimationNodeBlendTree");
64 		if(constructor is null) return typeof(this).init;
65 		return cast(AnimationNodeBlendTree)(constructor());
66 	}
67 	@disable new(size_t s);
68 	/// 
69 	enum Constants : int
70 	{
71 		/**
72 		
73 		*/
74 		connectionOk = 0,
75 		/**
76 		
77 		*/
78 		connectionErrorNoInput = 1,
79 		/**
80 		
81 		*/
82 		connectionErrorNoInputIndex = 2,
83 		/**
84 		
85 		*/
86 		connectionErrorNoOutput = 3,
87 		/**
88 		
89 		*/
90 		connectionErrorSameNode = 4,
91 		/**
92 		
93 		*/
94 		connectionErrorConnectionExists = 5,
95 	}
96 	/**
97 	
98 	*/
99 	void addNode(StringArg0)(in StringArg0 name, AnimationNode node, in Vector2 position = Vector2(0, 0))
100 	{
101 		checkClassBinding!(typeof(this))();
102 		ptrcall!(void)(_classBinding.addNode, _godot_object, name, node, position);
103 	}
104 	/**
105 	
106 	*/
107 	Ref!AnimationNode getNode(StringArg0)(in StringArg0 name) const
108 	{
109 		checkClassBinding!(typeof(this))();
110 		return ptrcall!(AnimationNode)(_classBinding.getNode, _godot_object, name);
111 	}
112 	/**
113 	
114 	*/
115 	void removeNode(StringArg0)(in StringArg0 name)
116 	{
117 		checkClassBinding!(typeof(this))();
118 		ptrcall!(void)(_classBinding.removeNode, _godot_object, name);
119 	}
120 	/**
121 	
122 	*/
123 	void renameNode(StringArg0, StringArg1)(in StringArg0 name, in StringArg1 new_name)
124 	{
125 		checkClassBinding!(typeof(this))();
126 		ptrcall!(void)(_classBinding.renameNode, _godot_object, name, new_name);
127 	}
128 	/**
129 	
130 	*/
131 	bool hasNode(StringArg0)(in StringArg0 name) const
132 	{
133 		checkClassBinding!(typeof(this))();
134 		return ptrcall!(bool)(_classBinding.hasNode, _godot_object, name);
135 	}
136 	/**
137 	
138 	*/
139 	void connectNode(StringArg0, StringArg2)(in StringArg0 input_node, in long input_index, in StringArg2 output_node)
140 	{
141 		checkClassBinding!(typeof(this))();
142 		ptrcall!(void)(_classBinding.connectNode, _godot_object, input_node, input_index, output_node);
143 	}
144 	/**
145 	
146 	*/
147 	void disconnectNode(StringArg0)(in StringArg0 input_node, in long input_index)
148 	{
149 		checkClassBinding!(typeof(this))();
150 		ptrcall!(void)(_classBinding.disconnectNode, _godot_object, input_node, input_index);
151 	}
152 	/**
153 	
154 	*/
155 	void setNodePosition(StringArg0)(in StringArg0 name, in Vector2 position)
156 	{
157 		checkClassBinding!(typeof(this))();
158 		ptrcall!(void)(_classBinding.setNodePosition, _godot_object, name, position);
159 	}
160 	/**
161 	
162 	*/
163 	Vector2 getNodePosition(StringArg0)(in StringArg0 name) const
164 	{
165 		checkClassBinding!(typeof(this))();
166 		return ptrcall!(Vector2)(_classBinding.getNodePosition, _godot_object, name);
167 	}
168 	/**
169 	
170 	*/
171 	void setGraphOffset(in Vector2 offset)
172 	{
173 		checkClassBinding!(typeof(this))();
174 		ptrcall!(void)(_classBinding.setGraphOffset, _godot_object, offset);
175 	}
176 	/**
177 	
178 	*/
179 	Vector2 getGraphOffset() const
180 	{
181 		checkClassBinding!(typeof(this))();
182 		return ptrcall!(Vector2)(_classBinding.getGraphOffset, _godot_object);
183 	}
184 	/**
185 	
186 	*/
187 	void _treeChanged()
188 	{
189 		Array _GODOT_args = Array.empty_array;
190 		String _GODOT_method_name = String("_tree_changed");
191 		this.callv(_GODOT_method_name, _GODOT_args);
192 	}
193 	/**
194 	
195 	*/
196 	void _nodeChanged(StringArg0)(in StringArg0 node)
197 	{
198 		Array _GODOT_args = Array.empty_array;
199 		_GODOT_args.append(node);
200 		String _GODOT_method_name = String("_node_changed");
201 		this.callv(_GODOT_method_name, _GODOT_args);
202 	}
203 	/**
204 	
205 	*/
206 	@property Vector2 graphOffset()
207 	{
208 		return getGraphOffset();
209 	}
210 	/// ditto
211 	@property void graphOffset(Vector2 v)
212 	{
213 		setGraphOffset(v);
214 	}
215 }