Commit graph

99 commits

Author SHA1 Message Date
Rémi Verschelde
5dbf1809c6 A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?

I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon

A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format

A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
2017-03-05 16:44:50 +01:00
Saracen
5e938f0001 Inf and NaN support added to GDScript. 2017-02-28 21:52:33 +00:00
Hein-Pieter van Braam
411ee71b4d Rename the _MD macro to D_METHOD
This new name also makes its purpose a little clearer

This is a step towards fixing #56
2017-02-13 12:50:02 +01:00
Hein-Pieter van Braam
0f687f0ccb Remove use of _SCS from ADD_METHOD
This saves typing and is a step towards fixing #56
2017-02-13 10:37:47 +01:00
Rémi Verschelde
f44ee891be Style: Fix statements ending with ';;' 2017-01-16 08:49:52 +01:00
Juan Linietsky
dcb95ec147 removed duplicated functions in class hierarchy that were bound more than once
added a check to detect this case in the future
2017-01-14 11:10:42 -03:00
Rémi Verschelde
93ab45b6b5 Style: Fix whole-line commented code
They do not play well with clang-format which aligns the `//` part
with the rest of the code block, thus producing badly indented commented code.
2017-01-14 14:52:23 +01:00
Juan Linietsky
f3f4a11cfb - _ready() callback only happens once now, if you want to receive it again, use request_ready()
- C++ Nodes mostly do an internal process callback, so it does not conflict with users willing to use their own process callbacks
- callbacks such as _input, _process, _fixed_process _unhandled_input, _unhandled_key_input do not requiere calling a function to enable them. They are enabled automatically if found on the script.
2017-01-10 18:04:33 -03:00
Juan Linietsky
2ab83e1abb Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
Juan Linietsky
b085c40edf -Conversion of most properties to a simpler syntax, easier to use by script
-Modified help to display properties

GDScript can still not make use of them, though.
2017-01-04 01:16:14 -03:00
Juan Linietsky
118eed485e ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant.
All usages of "type" to refer to classes were renamed to "class"
ClassDB has been exposed to GDScript.
OBJ_TYPE() macro is now GDCLASS()
2017-01-02 23:03:46 -03:00
Rémi Verschelde
c7bc44d5ad Welcome in 2017, dear changelog reader!
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
2017-01-01 22:03:33 +01:00
m4nu3lf
40ba6d328b Fixed Mix nodes in Animation Tree Player 2016-10-31 19:31:37 +00:00
m4nu3lf
cfa11777c0 AnimationTreePlayer filters improved
Now the AnimationTreePlayer filters for Blend2 and OneShot nodes
behave as expected, that is the main animation is not affected by
the secondary animation if the track is filterd out for arbitarily
complex trees.
2016-06-22 19:34:12 +01:00
Juan Linietsky
7c20c386c5 -Added trigger mode to tracks, useful for properties that work as triggers, such as playing a sample, an animation, etc.
-Better interpolation of discrete tracks, fixes #4417
2016-06-19 01:43:02 -03:00
m4nu3lf
048f5a6b75 TimeSeek node in AnimationTreePlayer now propagates filters 2016-06-10 23:23:09 +01:00
Josh Grams
bd95e18ae4 AnimationTree: add filters to Animation nodes. 2016-04-26 06:49:06 -04:00
Josh Grams
2272824ee2 AnimationTree: set value track property per frame, not per track. 2016-04-24 04:39:32 -04:00
Rémi Verschelde
20f62dd958 Merge pull request #4308 from JoshuaGrams/atp-resources
AnimationTreePlayer: fix discrete value tracks.
2016-04-14 12:39:08 +02:00
Josh Grams
ee59b2053f AnimationTreePlayer: fix discrete value tracks.
Discrete value tracks don't update every frame (only when a new key is
reached).  So we can't use the actual property value as an accumulator:
it will end up being zero most of the time.
2016-04-12 11:54:17 -04:00
Rémi Verschelde
08aaff21f3 Merge pull request #4286 from JoshuaGrams/atp-resources
AnimationTreePlayer: allow animating resource properties.
2016-04-12 13:18:47 +02:00
Rémi Verschelde
29ed58eab6 Merge pull request #4284 from JoshuaGrams/atp-process-mode
AnimationTreePlayer: constructor now sets processing mode.
2016-04-12 08:56:48 +02:00
Josh Grams
aabb0d9cbc AnimationTreePlayer: allow animating resource properties.
e.g. Particles2D config and param values.
2016-04-11 20:10:35 -04:00
Josh Grams
ed497cb153 AnimationTreePlayer: constructor now sets processing mode. 2016-04-11 11:54:32 -04:00
Josh Grams
4f6b2152e2 AnimationTreePlayer (transition_node_set_current): fix by removing copy-paste duplication. 2016-04-06 15:09:00 -04:00
Josh Grams
1b95dca6bd AnimationTreePlayer (set_active, reset, constructor): seek all animations to start. 2016-04-06 15:07:58 -04:00
Josh Grams
5d6b58fea6 AnimationTreePlayer (_process_node): more robust oneshot termination condition. 2016-04-06 15:06:42 -04:00
Josh Grams
0a9c8a9f36 AnimationTreePlayer (_process_node:TIMESEEK): allow auto-advance with 0 xfade. 2016-03-31 12:12:05 -04:00
Josh Grams
7fe28d4168 AnimationTreePlayer (_process_node:TIMESEEK): give p_seek precedence over tsn->seek_pos. 2016-03-31 10:06:38 -04:00
Josh Grams
8920ab0fbf * AnimationTreePlayer (_process_node): remove switched argument.
The _process_node function (which recurses through the blend tree
generating blend values and the active animation list) had an argument
named `switched` which would loop an animation back to the beginning if
it had reached the end (regardless of whether or not it was supposed to
be a looping animation).

This argument was only used in four places: two of them were overridden
by a seek-to-zero, and I believe the other two are bugs.

In OneShot, it was used to reset the oneshot animation to the beginning
when fired. But this would fail if the oneshot node was fired before it
had completed its previous run. While this *could* be a valid way for
oneshot to work (firing does nothing if it's already running), the code
currently resets the fade-in, so I believe that it is intended to reset.
I replaced this usage with seek-to-0.

In Transition, it was used on the previous (fading out) animation when
seeking the Transition node, which I believe is incorrect: why would you
want to loop a non-looping animation instead of simply fading out from
the end? Also it will never happen unless you seek the Transition node
twice during one cross-fade.

The other two uses are in Transition and _process_animation, where it is
used along with a seek-to-zero which overrides it.
2016-03-27 07:19:05 -04:00
Rémi Verschelde
6ef3c3b645 Merge pull request #3980 from JoshuaGrams/timescale-remainder
TimeScale node: scale return value (time remaining).
2016-03-09 20:17:13 +01:00
Josh Grams
65b7791263 TimeScale node: return +inf remaining for 0 scale. 2016-03-09 06:57:28 -05:00
Hubert Jarosz
4a4f247914
remove trailing whitespace 2016-03-09 00:00:52 +01:00
Josh Grams
2fa200ff53 AnimationTreePlayer: distinguish value tracks.
If the node had a 3D Transform, the transform would always get written,
even if the tracks on that node were supposed to be value tracks.
2016-03-08 17:23:32 -05:00
Josh Grams
2e1b1234a3 TimeScale node: scale return value (time remaining). 2016-03-07 17:21:07 -05:00
Rémi Verschelde
46bfcd3507 Merge pull request #3858 from JoshuaGrams/blend3
AnimationTreePlayer (Blend3): process all inputs.
2016-03-01 14:02:11 +01:00
Josh Grams
391ce81c5e AnimationTreePlayer: blend value tracks (closes #2299)
Variant:
- zero() sets a Variant to the appropriate type of zero value
- blend() blends part of one Variant on top of another.
2016-03-01 07:37:36 -05:00
Josh Grams
b79351aa45 AnimationTreePlayer (Blend3): process all inputs.
Always call _process_node on all three inputs so that looped animations
don't get out of sync.
2016-02-28 06:55:53 -05:00
George Marques
5be9ff7b67 Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
Juan Linietsky
f65eb470ae -fix function calls in animationtree, closes #2789 2015-12-16 08:34:57 -03:00
Sergey Lapin
8eff61ca87 This fixes long standing animation bug
When AnimationTreePlayer switches to new animation it never
seeks it to 0 which leads to problems with non-looping animations being
played just once.

This patch is direct approach fixing this problem.
It handles most common cases of occurance.

Closes #2199
2015-12-10 16:39:57 +03:00
Saracen
e011bcf162 Experimental retooling of AnimationTreePlayer to allow manual advancement. 2015-11-02 17:06:28 +00:00
Juan Linietsky
82cbee2d2d -added set_master_player binding, fixes #1477 2015-04-27 00:23:16 -03:00
Juan Linietsky
fdaa2920eb Updated copyright year in all headers 2015-04-18 14:38:54 -03:00
Juan Linietsky
0378e1109b -fixed NODE_OUT error in animtreeplayer #1078
-fixed randon button when editing menubutton #1079
2015-01-02 12:52:51 -03:00
Brandon DeRosier
4b76b2caf5 Fix AnimationTreePlayer.node_get_input_source typo
- Changed node_get_input_sourcre to node_get_input_source
2014-11-11 13:15:19 -05:00
Juan Linietsky
0dbedd18fc SceneMainLoop -> SceneTree
-=-=-=-=-=-=-=-=-=-=-=-=-=-

*YOUR SOURCE MIGHT NOT WORK*
For mor information on fix:
https://github.com/okamstudio/godot/wiki/devel_scene_tree

Other stuff:
-Shower of bullets demo
-Fixes all around
2014-11-05 21:20:42 -03:00
Theo Hallenius
9aa278c590 Timeseek works like this 2014-07-07 22:54:34 +02:00
Juan Linietsky
0b806ee0fc GODOT IS OPEN SOURCE 2014-02-09 22:10:30 -03:00