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.animationtree;
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.node;
24 import godot.animationnode;
25 import godot.animationrootnode;
26 /**
27 
28 */
29 @GodotBaseClass struct AnimationTree
30 {
31 	enum string _GODOT_internal_name = "AnimationTree";
32 public:
33 @nogc nothrow:
34 	union { godot_object _godot_object; Node _GODOT_base; }
35 	alias _GODOT_base this;
36 	alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses);
37 	package(godot) __gshared bool _classBindingInitialized = false;
38 	package(godot) static struct _classBinding
39 	{
40 		__gshared:
41 		@GodotName("set_active") GodotMethod!(void, bool) setActive;
42 		@GodotName("is_active") GodotMethod!(bool) isActive;
43 		@GodotName("set_tree_root") GodotMethod!(void, AnimationNode) setTreeRoot;
44 		@GodotName("get_tree_root") GodotMethod!(AnimationNode) getTreeRoot;
45 		@GodotName("set_process_mode") GodotMethod!(void, long) setProcessMode;
46 		@GodotName("get_process_mode") GodotMethod!(AnimationTree.AnimationProcessMode) getProcessMode;
47 		@GodotName("set_animation_player") GodotMethod!(void, NodePath) setAnimationPlayer;
48 		@GodotName("get_animation_player") GodotMethod!(NodePath) getAnimationPlayer;
49 		@GodotName("set_root_motion_track") GodotMethod!(void, NodePath) setRootMotionTrack;
50 		@GodotName("get_root_motion_track") GodotMethod!(NodePath) getRootMotionTrack;
51 		@GodotName("get_root_motion_transform") GodotMethod!(Transform) getRootMotionTransform;
52 		@GodotName("_tree_changed") GodotMethod!(void) _treeChanged;
53 		@GodotName("_update_properties") GodotMethod!(void) _updateProperties;
54 		@GodotName("rename_parameter") GodotMethod!(void, String, String) renameParameter;
55 		@GodotName("advance") GodotMethod!(void, double) advance;
56 		@GodotName("_node_removed") GodotMethod!(void, GodotObject) _nodeRemoved;
57 		@GodotName("_clear_caches") GodotMethod!(void) _clearCaches;
58 	}
59 	bool opEquals(in AnimationTree other) const { return _godot_object.ptr is other._godot_object.ptr; }
60 	AnimationTree opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; }
61 	bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; }
62 	mixin baseCasts;
63 	static AnimationTree _new()
64 	{
65 		static godot_class_constructor constructor;
66 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("AnimationTree");
67 		if(constructor is null) return typeof(this).init;
68 		return cast(AnimationTree)(constructor());
69 	}
70 	@disable new(size_t s);
71 	/// 
72 	enum AnimationProcessMode : int
73 	{
74 		/**
75 		
76 		*/
77 		animationProcessPhysics = 0,
78 		/**
79 		
80 		*/
81 		animationProcessIdle = 1,
82 		/**
83 		
84 		*/
85 		animationProcessManual = 2,
86 	}
87 	/// 
88 	enum Constants : int
89 	{
90 		animationProcessPhysics = 0,
91 		animationProcessIdle = 1,
92 		animationProcessManual = 2,
93 	}
94 	/**
95 	
96 	*/
97 	void setActive(in bool active)
98 	{
99 		checkClassBinding!(typeof(this))();
100 		ptrcall!(void)(_classBinding.setActive, _godot_object, active);
101 	}
102 	/**
103 	
104 	*/
105 	bool isActive() const
106 	{
107 		checkClassBinding!(typeof(this))();
108 		return ptrcall!(bool)(_classBinding.isActive, _godot_object);
109 	}
110 	/**
111 	
112 	*/
113 	void setTreeRoot(AnimationNode root)
114 	{
115 		checkClassBinding!(typeof(this))();
116 		ptrcall!(void)(_classBinding.setTreeRoot, _godot_object, root);
117 	}
118 	/**
119 	
120 	*/
121 	Ref!AnimationNode getTreeRoot() const
122 	{
123 		checkClassBinding!(typeof(this))();
124 		return ptrcall!(AnimationNode)(_classBinding.getTreeRoot, _godot_object);
125 	}
126 	/**
127 	
128 	*/
129 	void setProcessMode(in long mode)
130 	{
131 		checkClassBinding!(typeof(this))();
132 		ptrcall!(void)(_classBinding.setProcessMode, _godot_object, mode);
133 	}
134 	/**
135 	
136 	*/
137 	AnimationTree.AnimationProcessMode getProcessMode() const
138 	{
139 		checkClassBinding!(typeof(this))();
140 		return ptrcall!(AnimationTree.AnimationProcessMode)(_classBinding.getProcessMode, _godot_object);
141 	}
142 	/**
143 	
144 	*/
145 	void setAnimationPlayer(NodePathArg0)(in NodePathArg0 root)
146 	{
147 		checkClassBinding!(typeof(this))();
148 		ptrcall!(void)(_classBinding.setAnimationPlayer, _godot_object, root);
149 	}
150 	/**
151 	
152 	*/
153 	NodePath getAnimationPlayer() const
154 	{
155 		checkClassBinding!(typeof(this))();
156 		return ptrcall!(NodePath)(_classBinding.getAnimationPlayer, _godot_object);
157 	}
158 	/**
159 	
160 	*/
161 	void setRootMotionTrack(NodePathArg0)(in NodePathArg0 path)
162 	{
163 		checkClassBinding!(typeof(this))();
164 		ptrcall!(void)(_classBinding.setRootMotionTrack, _godot_object, path);
165 	}
166 	/**
167 	
168 	*/
169 	NodePath getRootMotionTrack() const
170 	{
171 		checkClassBinding!(typeof(this))();
172 		return ptrcall!(NodePath)(_classBinding.getRootMotionTrack, _godot_object);
173 	}
174 	/**
175 	
176 	*/
177 	Transform getRootMotionTransform() const
178 	{
179 		checkClassBinding!(typeof(this))();
180 		return ptrcall!(Transform)(_classBinding.getRootMotionTransform, _godot_object);
181 	}
182 	/**
183 	
184 	*/
185 	void _treeChanged()
186 	{
187 		Array _GODOT_args = Array.empty_array;
188 		String _GODOT_method_name = String("_tree_changed");
189 		this.callv(_GODOT_method_name, _GODOT_args);
190 	}
191 	/**
192 	
193 	*/
194 	void _updateProperties()
195 	{
196 		Array _GODOT_args = Array.empty_array;
197 		String _GODOT_method_name = String("_update_properties");
198 		this.callv(_GODOT_method_name, _GODOT_args);
199 	}
200 	/**
201 	
202 	*/
203 	void renameParameter(StringArg0, StringArg1)(in StringArg0 old_name, in StringArg1 new_name)
204 	{
205 		checkClassBinding!(typeof(this))();
206 		ptrcall!(void)(_classBinding.renameParameter, _godot_object, old_name, new_name);
207 	}
208 	/**
209 	
210 	*/
211 	void advance(in double delta)
212 	{
213 		checkClassBinding!(typeof(this))();
214 		ptrcall!(void)(_classBinding.advance, _godot_object, delta);
215 	}
216 	/**
217 	
218 	*/
219 	void _nodeRemoved(GodotObject arg0)
220 	{
221 		Array _GODOT_args = Array.empty_array;
222 		_GODOT_args.append(arg0);
223 		String _GODOT_method_name = String("_node_removed");
224 		this.callv(_GODOT_method_name, _GODOT_args);
225 	}
226 	/**
227 	
228 	*/
229 	void _clearCaches()
230 	{
231 		Array _GODOT_args = Array.empty_array;
232 		String _GODOT_method_name = String("_clear_caches");
233 		this.callv(_GODOT_method_name, _GODOT_args);
234 	}
235 	/**
236 	
237 	*/
238 	@property AnimationNode treeRoot()
239 	{
240 		return getTreeRoot();
241 	}
242 	/// ditto
243 	@property void treeRoot(AnimationNode v)
244 	{
245 		setTreeRoot(v);
246 	}
247 	/**
248 	
249 	*/
250 	@property NodePath animPlayer()
251 	{
252 		return getAnimationPlayer();
253 	}
254 	/// ditto
255 	@property void animPlayer(NodePath v)
256 	{
257 		setAnimationPlayer(v);
258 	}
259 	/**
260 	
261 	*/
262 	@property bool active()
263 	{
264 		return isActive();
265 	}
266 	/// ditto
267 	@property void active(bool v)
268 	{
269 		setActive(v);
270 	}
271 	/**
272 	
273 	*/
274 	@property AnimationTree.AnimationProcessMode processMode()
275 	{
276 		return getProcessMode();
277 	}
278 	/// ditto
279 	@property void processMode(long v)
280 	{
281 		setProcessMode(v);
282 	}
283 	/**
284 	
285 	*/
286 	@property NodePath rootMotionTrack()
287 	{
288 		return getRootMotionTrack();
289 	}
290 	/// ditto
291 	@property void rootMotionTrack(NodePath v)
292 	{
293 		setRootMotionTrack(v);
294 	}
295 }