Commit graph

585 commits

Author SHA1 Message Date
Rémi Verschelde
e956e80c1f Style: clang-format: Disable AllowShortIfStatementsOnASingleLine
Part of #33027, also discussed in #29848.

Enforcing the use of brackets even on single line statements would be
preferred, but `clang-format` doesn't have this functionality yet.
2020-05-10 13:12:16 +02:00
Thakee Nathees
2811268231 Fix: Tween always return true for _get(), _set() 2020-05-05 16:32:33 +05:30
Rémi Verschelde
69f36cea8c Revert "Emit signal when animation ends by seek"
This reverts commit bf1cc116e1.

This needs more discussion to avoid breaking some users' expectations.
See #38086 for arguments.
2020-05-04 16:09:19 +02:00
Aaron Franke
540156b387
[Core] Rename linear_interpolate to lerp 2020-04-29 04:02:49 -04:00
volzhs
bf1cc116e1 Emit signal when animation ends by seek 2020-04-22 00:45:44 +09:00
Rémi Verschelde
ea7b497065 Replace more occurrences of NULL with nullptr 2020-04-02 14:56:01 +02:00
lupoDharkael
95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
Rémi Verschelde
5f11e15571
Merge pull request #37504 from qarmin/out_of_bound_cursor
Fix array out of bounds access caused by uninitialised variables
2020-04-02 13:07:55 +02:00
Rafał Mikrut
359bebd8c0 Fix out of bound array access caused by unassigned variable 2020-04-01 19:29:35 +02:00
Rémi Verschelde
cd4e46ee65 SCons: Format buildsystem files with psf/black
Configured for a max line length of 120 characters.

psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:

- Manually wrapped strings will be reflowed, so by using a line length
  of 120 for the sake of preserving readability for our long command
  calls, it also means that some manually wrapped strings are back on
  the same line and should be manually merged again.

- Code generators using string concatenation extensively look awful,
  since black puts each operand on a single line. We need to refactor
  these generators to use more pythonic string formatting, for which
  many options are available (`%`, `format` or f-strings).

- CI checks and a pre-commit hook will be added to ensure that future
  buildsystem changes are well-formatted.
2020-03-30 09:05:53 +02:00
Juan Linietsky
a6f3bc7c69 Renaming of servers for coherency.
VisualServer -> RenderingServer
PhysicsServer -> PhysicsServer3D
Physics2DServer -> PhysicsServer2D
NavigationServer -> NavigationServer3D
Navigation2DServer -> NavigationServer2D

Also renamed corresponding files.
2020-03-27 15:21:27 -03:00
Rémi Verschelde
d1acbbce7f Rename more 2D and 3D nodes to follow convention
Rename editor plugins to match the new node names.
2020-03-27 16:26:34 +01:00
Juan Linietsky
eaae4b6408 Renamed 2D and 3D nodes to make their types explicit
Fixes #30736.
2020-03-27 14:54:04 +01:00
Andrea Catania
277696d6c5 Fixed IK rotation issue 2020-03-24 10:06:24 +01:00
Rémi Verschelde
cb282c6ef0 Style: Set clang-format Standard to Cpp11
For us, it practically only changes the fact that `A<A<int>>` is now
used instead of the C++03 compatible `A<A<int> >`.

Note: clang-format 10+ changed the `Standard` arguments to fully
specified `c++11`, `c++14`, etc. versions, but we can't use `c++17`
now if we want to preserve compatibility with clang-format 8 and 9.
`Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-17 07:36:24 +01:00
Rémi Verschelde
f9decec1bc
Merge pull request #36491 from AndreaCatania/edit_node_anim_state_mac
Added new method to edit an already added node to anim state machine
2020-03-16 19:29:38 +01:00
Andrea Catania
422926cfc6 Added new method to replace an already added node to the animation state machine 2020-03-16 17:42:29 +01:00
Thakee Nathees
b07e788ad9 animation autocomplete bug fixed 2020-03-07 14:52:53 +05:30
Yuri Roubinsky
d5bff588c7 Removed boolean return type from majority of method in Tween 2020-03-06 10:59:07 +03:00
Rémi Verschelde
f742dabafe Signals: Manually port most of remaining connect_compat uses
It's tedious work...

Some can't be ported as they depend on private or protected methods
of different classes, which is not supported by callable_mp (even if
it's a class inherited by the current one).
2020-02-28 14:24:09 +01:00
Rémi Verschelde
01afc442c7 Signals: Port connect calls to use callable_mp
Remove now unnecessary bindings of signal callbacks in the public API.
There might be some false positives that need rebinding if they were
meant to be public.

No regular expressions were harmed in the making of this commit.
(Nah, just kidding.)
2020-02-28 14:24:09 +01:00
Juan Linietsky
33b5c57199 Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.
- Renames PackedIntArray to PackedInt32Array.
- Renames PackedFloatArray to PackedFloat32Array.
- Adds PackedInt64Array and PackedFloat64Array.
- Renames Variant::REAL to Variant::FLOAT for consistency.

Packed arrays are for storing large amount of data and creating stuff like
meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of
memory. That said, many users requested the ability to have 64 bits packed
arrays for their games, so this is just an optional added type.

For Variant, the float datatype is always 64 bits, and exposed as `float`.

We still have `real_t` which is the datatype that can change from 32 to 64
bits depending on a compile flag (not entirely working right now, but that's
the idea). It affects math related datatypes and code only.

Neither Variant nor PackedArray make use of real_t, which is only intended
for math precision, so the term is removed from there to keep only float.
2020-02-25 12:55:53 +01:00
Rémi Verschelde
c9e1d98c62
Merge pull request #36411 from Janglee123/rect2-tween
Added tween support for Rect2
2020-02-23 08:46:48 +01:00
janglee
4bbe87abb7 Added tween support for Rect2
Fixes #34575
2020-02-23 07:21:04 +05:30
Juan Linietsky
3c0059650d Added StringName as a variant type.
Also changed all relevant properties defined manually to StringName.
2020-02-21 14:25:29 +01:00
Juan Linietsky
69c95f4b4c Reworked signal connection system, added support for Callable and Signal objects and made them default. 2020-02-20 08:24:50 +01:00
Juan Linietsky
3205a92ad8 PoolVector is gone, replaced by Vector
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
2020-02-18 10:10:36 +01:00
Juan Linietsky
867d073b98 Changed logic and optimized ObjectID in ObjectDB and Variant, removed RefPtr. 2020-02-15 08:36:04 -03:00
Juan Linietsky
cf8c679a23 ObjectID converted to a structure, fixes many bugs where used incorrectly as 32 bits. 2020-02-12 14:24:54 -03:00
Rémi Verschelde
fff4240bb4 Fix code formatting issues and VS compilation
Also temporarily disable multicheck build so that we get a full build
even when there are style issues on Vulkan.

Fixes #33356.
2020-02-11 12:05:19 +01:00
Juan Linietsky
dd3682e5fe Modernized default 3D material, fixes material bugs. 2020-02-11 12:01:24 +01:00
Juan Linietsky
4f163972bb Refactored RID/RID_Owner to always use O(1) allocation.
* Implements a growing chunked allocator
* Removed redudant methods get and getptr, only getornull is supported now.
2020-02-11 11:53:26 +01:00
Michael Alexsander
021fdb1b58 Remove AnimationTreePlayer node 2020-02-10 16:25:50 -03:00
Rémi Verschelde
9f9d6c6cc1
Merge pull request #35656 from ericrybick/35460-fix2
Use a new approach to fix bone pose override not being reset when IK animation is stopped.
2020-02-09 22:14:31 +01:00
Eric Rybicki
bb0358dd8d Use a new approach to fix bone pose override not being reset when IK animation is stopped.
This reverts PR #35460 & commit 551c37167b.
2020-02-09 19:50:13 +01:00
Rémi Verschelde
40d1b0bfdb
Merge pull request #35906 from muiroc/anim_node_value_bug
Pass missing args in AnimationNode script calls
2020-02-06 11:38:31 +01:00
Marcel Admiraal
5af3b4ca27 Remove duplicate ERR_PRINT macro. 2020-02-05 11:13:24 +01:00
muiroc
ed3a8cc83d pass missing args in AnimationNode script calls 2020-02-04 17:45:48 +01:00
Rémi Verschelde
efea348fe8
Merge pull request #35460 from ericrybick/35409-skeleton-does-not-return-to-original-pose-when-ik-playback-is-stopped
Fix bone pose override not being reset when IK animation is stopped
2020-01-23 14:38:04 +01:00
Rémi Verschelde
ba177ccaec doc: Misc updates for AnimationNode* and others
- Add some missing descriptions.
- Add links to tutorials for ARVR and AnimationTree.
- Style fixes.
- Engine changes:
  * Make `AnimationNodeTransition.input_<number>` properties internal
    so that they don't appear in the docs. They still appear in the
    inspector based on the actual number of inputs requested.
  * Drop unimplemented `CPUParticles.flatness`. It's only used for 3D
    particles in `ParticlesMaterial`, and thus only relevant for
    `CPUParticles3D`.
2020-01-23 12:37:33 +01:00
Eric Rybicki
551c37167b Fix bone pose override not being reset when IK animation is stopped
Fixes #35409
2020-01-23 08:48:08 +01:00
PouleyKetchoupp
6c04c824bd Fixed Tween::start() with pending updates
Start was canceled instead of deferred in case of an update in progress.
Fixes #35441
2020-01-22 22:27:37 +01:00
Rémi Verschelde
4faaf6089a Remove unused #if 0'ed code 2020-01-21 21:41:54 +01:00
Eric Rybicki
41efc08532 Fix SkeletonIK not playing animation if more than one IK-Bone is active 2020-01-16 20:22:15 +01:00
Rémi Verschelde
a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Andrii Doroshenko (Xrayez)
81db0e9274 Provide default Tween values for transition and easing types
TRANS_LINEAR and EASE_IN_OUT are chosen as defaults for
interpolation and follow methods.
2019-12-12 02:15:15 +02:00
Rafał Mikrut
ed1c4bc77d Removed unused variables, add some constants numbers 2019-12-10 05:13:02 +01:00
PouleyKetchoupp
598d769804 Handle state machine travel before the start node is processed
This change allows travel() to be called on AnimationNodeStateMachinePlayback during _ready(), before the start node has been processed and the state machine is considered playing.
2019-11-30 02:41:40 +01:00
Rafał Mikrut
99d8626f4a Fix some overflows and unitialized variables 2019-11-20 16:22:16 +01:00
Rafał Mikrut
9ddb3265e1 Fix some crashes, overflows and using variables without values 2019-11-01 16:16:31 +01:00
Mark Riedesel
d0b528e4a8 Fix Tween follow_property finishing with null 2019-10-23 16:38:43 -04:00
Hugo Locurcio
aba157865a
Add missing semicolons to BIND_ENUM_CONSTANT macro uses 2019-10-02 09:57:12 +02:00
Rémi Verschelde
dec10dd776
Merge pull request #32051 from qarmin/some_error_explanation
Added some obvious errors explanations
2019-09-25 11:51:54 +02:00
qarmin
17732fe698 Added some obvious errors explanations 2019-09-25 10:28:50 +02:00
Rémi Verschelde
159470df08
Merge pull request #32275 from godotengine/skin_support
Added skin support and simplified APIs to override bone position + glTF 2.0 import fixes
2019-09-23 15:02:15 +02:00
luz.paz
91ecd7b6a6 Fix misc. source comment typos
Found using `codespell -q 3 -S ./thirdparty,*.po -L ang,ba,cas,dof,doubleclick,fave,hist,leapyear,lod,nd,numer,ois,paket,seeked,sinc,switchs,te,uint -D ~/Projects/codespell/codespell_lib/data/dictionary.txt `
2019-09-19 14:36:52 -04:00
Juan Linietsky
d81ddaf33e Added skin support and simplified APIs to override bone position. 2019-09-18 19:46:32 -03:00
shaderbeast
5e337b31eb Added is_inside_tree() check in both Timer and Tween
Tween now throws error and doesnt even execute.
2019-09-03 13:26:41 +02:00
Robin Hübner
4817595c0e
fix otherwise unitialized variables, found in #31694 2019-08-27 17:13:08 +02:00
Unknown
9d849c21cc fix animation freeze when playing animation from another AnimationPlayer
Donated by IMVU, Inc.

Fixes #31410
When we create an animation player with an animation from which we will start another AnimationPlayer's animation at the moment when that animation is already active - it will  be stopped.  When starting an animation with play() func all the 'outside' animations for animation player were removed (`_stop_playing_caches` func). This pr prevents this behaviour for the case when play is called for animation that's still active. This way the behaviour is the same between "Animation Playback track" and other tracks (tested with value track)
2019-08-19 13:51:08 +02:00
IAmActuallyCthulhu
82b9557803
Remove redundant author doc comments 2019-08-12 04:26:38 -05:00
Tomasz Chabora
af5e0fff66 Remove ERR_EXPLAIN from scene/* code 2019-08-09 13:54:52 +02:00
Rémi Verschelde
ba541bceca
Merge pull request #31077 from qarmin/coverity_bugs
Change some code proposed by Coverity and Cppcheck
2019-08-07 13:49:33 +02:00
qarmin
e0b5b21863 Add some code changes/fixes proposed by Coverity and Clang Tidy 2019-08-07 12:54:30 +02:00
PouleyKetchoupp
aaad50e4d9 Fixed AnimationTreeStateMachine transition priority (last transition was always chosen instead of least cost)
Fixes #31132
2019-08-06 23:27:25 +02:00
Hugo Locurcio
ff7184c5cb
Improve the node configuration warning display
- Refer to properties explicitly when possible
- When multiple warnings are returned, always separate them by one
  blank line to make them easier to distinguish
- Improve grammar and formatting
2019-07-09 00:18:00 +02:00
Bojidar Marinov
f7dad789e9
Fix various memory leaks and errors 2019-07-02 17:23:54 +03:00
qarmin
4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
Rémi Verschelde
8591691b9b
Merge pull request #24249 from zorbathut/zorbathut/animimmediate
Implement AnimationPlayer call modes as per #23498.
2019-06-20 13:04:34 +02:00
JohnJLight
38d3bfe971 Made use of semicolons more consitent, fixed formatting 2019-06-19 15:24:31 +02:00
Rémi Verschelde
66a854da78
Merge pull request #29878 from Dentrax/fixes
Added ERR_FAIL checks for `Animation::track_set_key_value` and `AnimationNodeStateMachine::remove_node`
2019-06-19 14:18:52 +02:00
Furkan Türkal
09907a28b3 added forgotten err_fail_index check 2019-06-19 13:07:18 +03:00
Rémi Verschelde
40f2480d0e
Merge pull request #29621 from DevinPentecost/feature/0_duration_tween
Implementing 0-duration tweens
2019-06-14 16:57:09 +02:00
Devin Pentecost
265eaf1a2c Implementing 0-duration tweens
Some light refactor
Adding comments in functions
2019-06-14 07:20:13 -07:00
Rémi Verschelde
971b5160c6
Merge pull request #29306 from qarmin/small_code_fixes
Small fixes to unrechable code, possibly overflows, using NULL pointers
2019-06-12 12:49:21 +02:00
Rémi Verschelde
6d16f2f053 Fix error macro calls not ending with semicolon
It's not necessary, but the vast majority of calls of error macros
do have an ending semicolon, so it's best to be consistent.
Most WARN_DEPRECATED calls did *not* have a semicolon, but there's
no reason for them to be treated differently.
2019-06-11 14:49:34 +02:00
qarmin
8245db869f Small fixes to unrechable code, possibly overflows, using NULL pointers 2019-06-03 21:52:50 +02:00
qarmin
66a36ba474 Fix some unincialised variables 2019-05-28 19:12:19 +02:00
Rémi Verschelde
c088386c5b
Merge pull request #29109 from RandomShaper/fix_onion_skinning
Fix onion skinning
2019-05-23 07:58:27 +02:00
Pedro J. Estébanez
88153fbb61 Fix 2D bones ignored by onion skinning
Fixes #27819.
2019-05-22 20:40:57 +02:00
Guilherme Felipe
4de6c94eb0 [StateMachine] Fix error message for travel method 2019-05-19 23:43:26 -03:00
Rémi Verschelde
e0574e1d98 Fix typos with codespell
Using codespell 1.15.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
doubleclick
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2019-05-19 13:10:35 +02:00
Rémi Verschelde
9dc9434b1b
Merge pull request #24437 from mateusfccp/single_quotes_option
Add settings for single-quotes on completion
2019-04-30 14:58:33 +02:00
Rémi Verschelde
36a54ffebb
Merge pull request #27577 from guilhermefelipecgs/continuation_of_27562
Continuation of #27562
2019-04-21 13:16:35 +02:00
Max Hilbrunner
7a0c086e45
Merge pull request #27762 from rcorre/anim_docs
AnimationNode* docs
2019-04-16 15:47:47 +02:00
Rémi Verschelde
2feec990e7
Merge pull request #27887 from godotengine/AndreaCatania-patch-1
Added No bone set state in the IK
2019-04-11 09:42:56 +02:00
Rémi Verschelde
2d67eaf2c3
Merge pull request #27917 from volzhs/init_autorestart_random_delay
Set initial value for autorestart_random_delay of AnimationNodeOneShot
2019-04-11 09:35:23 +02:00
volzhs
eea3bddd1d Set initial value for autorestart_random_delay of AnimationNodeOneShot 2019-04-11 14:56:38 +09:00
PouleyKetchoupp
66e07a2ec6 Fixes caches_cleared signal discrepancies in AnimationTree (fixes #25460) 2019-04-10 16:25:18 +02:00
Andrea Catania
f65fde73da
Added No bone set state in the IK
The problem is that initially the root bone was not set, and you didn't know that because the "no set" state was missing. Now I've added it. https://github.com/godotengine/godot-docs/issues/2333
2019-04-10 07:50:09 +02:00
Rémi Verschelde
c8994b56f9 Style: Apply new changes from clang-format 8.0
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0,
so contributors can keep using those versions for now (they will not undo those
changes).
2019-04-09 17:09:48 +02:00
Ryan Roden-Corrent
584288a32c
Fill out some of the AnimationNode docs.
The API docs for various animation nodes are pretty empty, yet the
tutorial at
https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html
contains some details.

These details should be included in the API docs so looking up a
particular class actually provides some information rather than
requiring the user to hunt for a different tutorial.

This also links the AnimationTree tutorial and demo in the docs.
I've found the TPS demo to be the best resource so far for learning
how to use the AnimationTree. This should be easy to find if someone
looks up the AnimationTree API docs.

Finally, this fixes a param typo in AnimationNodeStateMachine.
2019-04-09 10:49:21 -04:00
PouleyKetchoupp
dafd7768ab Fixed uninitialized xfade in AnimationNodeTransition 2019-04-08 17:13:30 +02:00
Guilherme Felipe
dbda5b6700 Continuation of #27562
[AnimationTree] Fix scale interpolation
2019-04-05 15:41:37 -03:00
Rémi Verschelde
b2fcb40522
Merge pull request #27233 from Chaosus/tween_signal
Added signal for Tween emitted at full completion
2019-04-05 15:42:18 +02:00
Chaosus
a19e99aacb Added signal for Tween emitted at completion 2019-04-03 10:35:26 +03:00
Guilherme Felipe
45d97b9860 Fix wrong blend of animation tree
Interpolation cannot use zero values, must use the values from the
animation to be blended.
2019-03-31 17:12:24 -03:00
Guilherme Felipe
d35eae166c StateMachine: Fix sync mode 2019-03-17 10:12:27 -03:00
Juan Linietsky
c00429c33b Removed some prints 2019-03-02 12:15:48 -03:00
Rémi Verschelde
16934c7411
Merge pull request #26068 from luizcarlos1405/master
Fix AnimationPlayer jumping to the beggining after ending on editor.
2019-02-20 22:30:41 +01:00
Luiz
e27bbb075a Fix AnimationPlayer jumping to the beggining after ending on editor. 2019-02-20 14:58:53 -04:00
marxin
8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
Luiz
5ec4f14a24 Fix AnimationPlayer bug where it wouldn't reset its position when finished 2019-02-14 15:32:29 -03:00
Juan Linietsky
4a24ba6e77 -Fixes to undo redo to avoid crash, closes #24251
-Changed Animation to have a special signal when tracks are changed, to avoid unnecesary track cache rebuilds in AnimationPlayer
-Added missing emit_changed whe modifying keys to Animation
-Changed AnimationPlayer to use the new refcounted connections instead of the previous hacky way to keep references
-Changed AnimationEditor to update the current track when keys are edited
-Fixed bug where undo/redo did not work with AnimationKeyEdit (was not being updated)
-Made sure UndoRedo does not mind deleted objects in undo/redo history, this would corrupt the history or clear it without need.
2019-02-14 10:22:34 -03:00
Luiz
06a0a29711 Fix some AnimationPlayer bugs and update documentation 2019-02-13 14:40:22 -03:00
Guilherme Felipe
67eda1d4dd Fix state machine priority for auto advance 2019-02-12 15:57:26 -02:00
Rémi Verschelde
13c50e8aa5
Merge pull request #25481 from hpvb/fix-ubsan-asan-reports
Fix many asan and ubsan reported issues
2019-02-12 12:21:01 +01:00
Hein-Pieter van Braam
37aa06bf8a When an animationplayer sets a property on itself recreate the caches
this fixes #25507
2019-02-01 16:15:39 +01:00
Hein-Pieter van Braam
d308eb091a Fix many asan and ubsan reported issues
This allows most demos to run without any ubsan or asan errors. There
are still some things in thirdpart/ and some things in AudioServer that
needs a look but this fixes a lot of issues. This should help debug less
obvious issues, hopefully.

This fixes #25217 and fixes #25218
2019-01-30 06:43:56 +01:00
Juan Linietsky
70d6d0fa69 Fix problem blending from state to state in statemachine node, closes #21944 2019-01-27 15:21:54 -03:00
Rémi Verschelde
c3b0ee5941 Fix code style issues 2019-01-26 22:35:31 +01:00
Juan Linietsky
b3335e943b Implement missing autorestart in oneshot node, closes #22238 2019-01-25 18:15:29 -03:00
Juan Linietsky
c743da100d Avoid crashing in #23302 2019-01-25 09:09:32 -03:00
Rémi Verschelde
769341e180 Cleanup after @reduz :)
Fixes #25172.
2019-01-21 11:12:55 +01:00
Rémi Verschelde
053d7f3765 Fix some errors found by static analysis
Fixes items 10, 16 and 19 from PVS-Studio blog post
in #24014.
2019-01-16 10:59:45 +01:00
Juan Linietsky
2cd15849f9 Fixes to auto triangle editing in BlendSpace2D 2019-01-10 21:40:46 -03:00
volzhs
153a3146d0 AnimationNodeTransition name begins from 0
and added "state" string for default name not to confuse it as number
2019-01-09 14:44:41 +09:00
Rémi Verschelde
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Mateus Felipe C. C. Pinto
ca1935d6f7 Add settings for single-quotes on completion 2018-12-18 12:48:36 -02:00
Guilherme Felipe
4c5548e06e Fix sub-transitions not using end_node correctly
Fix #22389
2018-12-16 23:40:41 -02:00
Rémi Verschelde
de264a8199
Merge pull request #22739 from DualMatrix/autoplay_warn
Added warning when setting autoplay of AnimationPlayer that's inside the tree.
2018-12-12 16:10:59 +01:00
Ben Rog-Wilhelm
1180110b9e Implement AnimationPlayer call modes as per #23498. 2018-12-09 20:44:22 -08:00
Michael Alexsander Silva Dias
a491824ec0 Warn about AnimationTreePlayer's deprecation 2018-12-09 12:39:37 -02:00
DualMatrix
0cc8a3b9a6 Made it possible to read AnimationPlayer queue from GDscript 2018-11-28 01:43:34 +01:00
Rémi Verschelde
f30745bd85 Fixup to typo and indentation in 81c86e8 2018-11-26 11:21:06 +01:00
Juan Linietsky
81c86e8047 Improved bindings and added documentation for AnimationNode, closes #20720 2018-11-25 16:57:23 -03:00
Juan Linietsky
9018e8b132 Add Discrete and Carry blend modes for BlendSpace2D, allows to fix #20135 2018-11-21 16:07:24 -03:00
Andrea Catania
a837c33442 Added possibility to override or add target basis to tip bone 2018-11-20 13:57:16 +01:00
Rémi Verschelde
173b342ca7 Remove trailing whitespace
With `sed -i $(rg -l '[[:blank:]]*$' -g'!thirdparty') -e 's/[[:blank:]]*$//g'`
(+ manual revert of some thirdparty code under `platform/android`).
2018-11-20 11:15:02 +01:00
Juan Linietsky
0ab71689ae Reseek if cachees were cleared in animation player, fixes #19424 2018-11-19 13:14:37 -03:00
Juan Linietsky
531dc2f435 Proper time tracking in AnimationNodeAnimation, closes #22887 2018-11-08 16:51:45 -03:00
Wilson E. Alvarez
71df4caf8f
Removed unnecessary assignments 2018-11-04 22:19:30 -05:00
DualMatrix
38d108aaa2 Added warning when setting autoplay of AnimationPlayer that's inside the tree.
Added warning when setting autoplay of AnimationPlayer that's inside the tree.
2018-10-05 00:09:53 +02:00
Rémi Verschelde
f48ee838e7 Fix GCC 8 warnings about potentially unitialized variables
Fixes the following GCC 8 warnings:
```
core/image.cpp:730:44: warning: 'mip1_weight' may be used uninitialized in this function [-Wmaybe-uninitialized]
core/image.cpp:293:20: warning: 'mip2' may be used uninitialized in this function [-Wmaybe-uninitialized]
core/image.cpp:293:20: warning: 'mip1' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/audio_stream_preview.cpp:58:19: warning: 'vmax' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/audio_stream_preview.cpp:85:19: warning: 'vmin' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/editor_themes.cpp:306:53: warning: 'preset_contrast' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/plugins/animation_blend_space_2d_editor.cpp:459:27: warning: 'prev_idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/plugins/animation_blend_space_2d_editor.cpp:443:27: warning: 'prev_idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
main/tests/test_oa_hash_map.cpp:57:29: warning: 'value' may be used uninitialized in this function [-Wmaybe-uninitialized]
modules/csg/csg.cpp:764:40: warning: 'max_angle' may be used uninitialized in this function [-Wmaybe-uninitialized]
modules/csg/csg_shape.cpp:1945:3: warning: 'face_count' may be used uninitialized in this function [-Wmaybe-uninitialized]
scene/3d/voxel_light_baker.cpp:1593:8: warning: 'cone_aperture' may be used uninitialized in this function [-Wmaybe-uninitialized]
scene/3d/voxel_light_baker.cpp:1592:6: warning: 'cone_dir_count' may be used uninitialized in this function [-Wmaybe-uninitialized]
scene/animation/animation_blend_space_2d.cpp:471:8: warning: 'mind' may be used uninitialized in this function [-Wmaybe-uninitialized]

core/os/memory.cpp:94: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
core/os/memory.cpp:95: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
core/os/memory.cpp:98: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
```
2018-10-04 13:08:41 +02:00
Rémi Verschelde
2091f20443 Fix warnings about wrong member initialization order [-Wreorder]
Fixes the following GCC 5 warnings:
```
core/object.h:193:11: warning: 'MethodInfo::flags' will be initialized after [-Wreorder]
core/object.h:192:15: warning:   'PropertyInfo MethodInfo::return_val' [-Wreorder]
core/object.cpp:278:1: warning:   when initialized here [-Wreorder]
core/script_debugger_remote.h:97:6: warning: 'ScriptDebuggerRemote::max_cps' will be initialized after [-Wreorder]
core/script_debugger_remote.h:91:6: warning:   'int ScriptDebuggerRemote::max_messages_per_frame' [-Wreorder]
core/script_debugger_remote.cpp:1086:1: warning:   when initialized here [-Wreorder]
core/script_debugger_remote.h:98:6: warning: 'ScriptDebuggerRemote::char_count' will be initialized after [-Wreorder]
core/script_debugger_remote.h:92:6: warning:   'int ScriptDebuggerRemote::n_messages_dropped' [-Wreorder]
core/script_debugger_remote.cpp:1086:1: warning:   when initialized here [-Wreorder]
modules/bullet/area_bullet.h:102:7: warning: 'AreaBullet::isScratched' will be initialized after [-Wreorder]
modules/bullet/area_bullet.h:92:39: warning:   'PhysicsServer::AreaSpaceOverrideMode AreaBullet::spOv_mode' [-Wreorder]
modules/bullet/area_bullet.cpp:46:1: warning:   when initialized here [-Wreorder]
modules/bullet/collision_object_bullet.h:127:15: warning: 'CollisionObjectBullet::space' will be initialized after [-Wreorder]
modules/bullet/collision_object_bullet.h:117:7: warning:   'CollisionObjectBullet::Type CollisionObjectBullet::type' [-Wreorder]
modules/bullet/collision_object_bullet.cpp:67:1: warning:   when initialized here [-Wreorder]
modules/bullet/godot_ray_world_algorithm.h:48:7: warning: 'GodotRayWorldAlgorithm::m_ownManifol1d' will be initialized after [-Wreorder]
modules/bullet/godot_ray_world_algorithm.h:46:33: warning:   'const btDiscreteDynamicsWorld* GodotRayWorldAlgorithm::m_world' [-Wreorder]
modules/bullet/godot_ray_world_algorithm.cpp:50:1: warning:   when initialized here [-Wreorder]
modules/bullet/godot_result_callbacks.h:91:18: warning: 'GodotAllConvexResultCallback::m_exclude' will be initialized after [-Wreorder]
modules/bullet/godot_result_callbacks.h:89:6: warning:   'int GodotAllConvexResultCallback::m_resultMax' [-Wreorder]
modules/bullet/godot_result_callbacks.h:93:2: warning:   when initialized here [-Wreorder]
modules/bullet/godot_result_callbacks.h:142:18: warning: 'GodotAllContactResultCallback::m_exclude' will be initialized after [-Wreorder]
modules/bullet/godot_result_callbacks.h:140:6: warning:   'int GodotAllContactResultCallback::m_resultMax' [-Wreorder]
modules/bullet/godot_result_callbacks.h:147:2: warning:   when initialized here [-Wreorder]
modules/bullet/godot_result_callbacks.h:168:18: warning: 'GodotContactPairContactResultCallback::m_exclude' will be initialized after [-Wreorder]
modules/bullet/godot_result_callbacks.h:166:6: warning:   'int GodotContactPairContactResultCallback::m_resultMax' [-Wreorder]
modules/bullet/godot_result_callbacks.h:173:2: warning:   when initialized here [-Wreorder]
modules/bullet/godot_result_callbacks.h:195:18: warning: 'GodotRestInfoContactResultCallback::m_exclude' will be initialized after [-Wreorder]
modules/bullet/godot_result_callbacks.h:191:7: warning:   'bool GodotRestInfoContactResultCallback::m_collided' [-Wreorder]
modules/bullet/godot_result_callbacks.h:199:2: warning:   when initialized here [-Wreorder]
modules/bullet/rigid_body_bullet.h:200:9: warning: 'RigidBodyBullet::gravity_scale' will be initialized after [-Wreorder]
modules/bullet/rigid_body_bullet.h:199:9: warning:   'real_t RigidBodyBullet::mass' [-Wreorder]
modules/bullet/rigid_body_bullet.cpp:258:1: warning:   when initialized here [-Wreorder]
modules/bullet/rigid_body_bullet.h:222:28: warning: 'RigidBodyBullet::force_integration_callback' will be initialized after [-Wreorder]
modules/bullet/rigid_body_bullet.h:219:7: warning:   'bool RigidBodyBullet::isTransformChanged' [-Wreorder]
modules/bullet/rigid_body_bullet.cpp:258:1: warning:   when initialized here [-Wreorder]
modules/bullet/rigid_body_bullet.h:220:7: warning: 'RigidBodyBullet::previousActiveState' will be initialized after [-Wreorder]
modules/bullet/rigid_body_bullet.h:208:6: warning:   'int RigidBodyBullet::maxCollisionsDetection' [-Wreorder]
modules/bullet/rigid_body_bullet.cpp:258:1: warning:   when initialized here [-Wreorder]
modules/bullet/soft_body_bullet.h:69:9: warning: 'SoftBodyBullet::total_mass' will be initialized after [-Wreorder]
modules/bullet/soft_body_bullet.h:68:6: warning:   'int SoftBodyBullet::simulation_precision' [-Wreorder]
modules/bullet/soft_body_bullet.cpp:38:1: warning:   when initialized here [-Wreorder]
modules/bullet/soft_body_bullet.h:76:9: warning: 'SoftBodyBullet::drag_coefficient' will be initialized after [-Wreorder]
modules/bullet/soft_body_bullet.h:61:14: warning:   'btSoftBody* SoftBodyBullet::bt_soft_body' [-Wreorder]
modules/bullet/soft_body_bullet.cpp:38:1: warning:   when initialized here [-Wreorder]
modules/bullet/space_bullet.h:97:22: warning: 'SpaceBullet::solver' will be initialized after [-Wreorder]
modules/bullet/space_bullet.h:95:35: warning:   'btDefaultCollisionConfiguration* SpaceBullet::collisionConfiguration' [-Wreorder]
modules/bullet/space_bullet.cpp:333:1: warning:   when initialized here [-Wreorder]
modules/bullet/space_bullet.h:101:23: warning: 'SpaceBullet::soft_body_world_info' will be initialized after [-Wreorder]
modules/bullet/space_bullet.h:99:23: warning:   'btGhostPairCallback* SpaceBullet::ghostPairCallback' [-Wreorder]
modules/bullet/space_bullet.cpp:333:1: warning:   when initialized here [-Wreorder]
modules/gdnative/nativescript/nativescript.h:79:13: warning: 'NativeScriptDesc::base_native_type' will be initialized after [-Wreorder]
modules/gdnative/nativescript/nativescript.h:73:9: warning:   'String NativeScriptDesc::documentation' [-Wreorder]
modules/gdnative/nativescript/nativescript.h:88:9: warning:   when initialized here [-Wreorder]
modules/gdscript/gdscript.h:296:6: warning: 'GDScriptWarning::line' will be initialized after [-Wreorder]
modules/gdscript/gdscript.h:294:4: warning:   'GDScriptWarning::Code GDScriptWarning::code' [-Wreorder]
modules/gdscript/gdscript.h:303:2: warning:   when initialized here [-Wreorder]
scene/3d/physics_body.h:544:7: warning: 'PhysicalBone::simulate_physics' will be initialized after [-Wreorder]
scene/3d/physics_body.h:543:7: warning:   'bool PhysicalBone::_internal_static_body' [-Wreorder]
scene/3d/physics_body.cpp:2502:1: warning:   when initialized here [-Wreorder]
scene/3d/physics_body.h:546:6: warning: 'PhysicalBone::bone_id' will be initialized after [-Wreorder]
scene/3d/physics_body.h:539:12: warning:   'Skeleton* PhysicalBone::parent_skeleton' [-Wreorder]
scene/3d/physics_body.cpp:2502:1: warning:   when initialized here [-Wreorder]
scene/3d/spring_arm.h:44:11: warning: 'SpringArm::mask' will be initialized after [-Wreorder]
scene/3d/spring_arm.h:43:8: warning:   'float SpringArm::current_spring_length' [-Wreorder]
scene/3d/spring_arm.cpp:37:1: warning:   when initialized here [-Wreorder]
scene/animation/skeleton_ik.h:159:11: warning: 'SkeletonIK::target_node_override' will be initialized after [-Wreorder]
scene/animation/skeleton_ik.h:152:7: warning:   'bool SkeletonIK::use_magnet' [-Wreorder]
scene/animation/skeleton_ik.cpp:418:1: warning:   when initialized here [-Wreorder]
scene/resources/tile_set.h:84:9: warning: 'TileSet::AutotileData::size' will be initialized after [-Wreorder]
scene/resources/tile_set.h:83:7: warning:   'int TileSet::AutotileData::spacing' [-Wreorder]
scene/resources/tile_set.h:92:12: warning:   when initialized here [-Wreorder]
scene/resources/tile_set.h:115:12: warning: 'TileSet::TileData::tile_mode' will be initialized after [-Wreorder]
scene/resources/tile_set.h:114:9: warning:   'Color TileSet::TileData::modulate' [-Wreorder]
scene/resources/tile_set.h:120:12: warning:   when initialized here [-Wreorder]
servers/physics/body_sw.h:84:19: warning: 'BodySW::direct_state_query_list' will be initialized after [-Wreorder]
servers/physics/body_sw.h:57:11: warning:   'uint16_t BodySW::locked_axis' [-Wreorder]
servers/physics/body_sw.cpp:756:1: warning:   when initialized here [-Wreorder]
```

Nothing really relevant for us, but it's not a bad consistency
improvement anyway so worth taking.
2018-09-28 17:30:28 +02:00
Rémi Verschelde
82f2674e8d Move Penner easing equations to thirdparty/misc
It was Godot-ified and integrated into Tween originally (#628)
without mention that it was thirdparty code, but it's actually
derived from https://github.com/jesusgollonet/ofpennereasing.

It's also very bad quality code and should be replaced by a better,
properly-maintained library of easing equations.
2018-09-28 16:01:26 +02:00
Rémi Verschelde
3a2ca68af3 SCons: Build thirdparty code in own env, disable warnings
Also remove unnecessary `Export('env')` in other SCsubs,
Export should only be used when exporting *new* objects.
2018-09-28 14:07:39 +02:00
Rémi Verschelde
7b081a7fc8 Fix warnings about unhandled enum value in switch [-Wswitch]
Fixes GCC 5 warnings of the form:

core/io/http_client.cpp:288:9: warning: enumeration value 'STATUS_SSL_HANDSHAKE_ERROR' not handled in switch [-Wswitch]
core/io/marshalls.cpp:806:9: warning: enumeration value 'AABB' not handled in switch [-Wswitch]

Those can be trivial cases where adding a default fallback is the solution,
or more complex issues/hidden bugs where missed values are actually meant
to be handled.
2018-09-27 18:34:30 +02:00
Rémi Verschelde
9b31d2da1c Document provenance of Penner easing equations in Tween
As noted in #21600.
2018-09-13 12:37:01 +02:00
Rémi Verschelde
1a16dabfb5
Merge pull request #21982 from luzpaz/misc-typos
Misc. typos
2018-09-13 10:59:00 +02:00
luz.paz
08bde5b2de Misc. typos
Found via `codespell -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"`
2018-09-12 21:39:17 -04:00
Rémi Verschelde
74d80146ff
Merge pull request #21913 from DualMatrix/tween_remove_all
Fixed calling start() after remove_all() on tween not working
2018-09-12 11:01:19 +02:00
Rémi Verschelde
277b24dfb7 Make core/ includes absolute, remove subfolders from include path
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
2018-09-12 09:52:22 +02:00
DualMatrix
359198f137 Fixed calling start() emmediately after remove_all() on tween not wroking
Fixed calling start() emmediately after remove_all() on tween not wroking

Fixes #19901
2018-09-11 13:54:35 +02:00
DualMatrix
bb58bcfff6 Fixed animation_player errors displaying wrong property.
Fixed animation_player errors displaying wrong property. It appears the cache wasn't created property.

This fixes #17718
2018-09-09 00:32:57 +02:00
Rémi Verschelde
9eb4d4ab2d Add missing copyright headers 2018-08-29 22:41:17 +02:00
Juan Linietsky
02d2676dc9
Merge pull request #21405 from SneakyMax/fix-animation-condition-advancing
Fix advancing based on condition in AnimationNodeStateMachinePlayback
2018-08-27 13:04:02 -03:00
Andrea Catania
76d02b13a1 Fixed task creation with void chain in SkeletonIK 2018-08-26 12:41:20 +02:00
Andy Brenneke
6714f73d9e Fix advancing based on condition in AnimationNodeStateMachinePlayback 2018-08-25 03:17:19 -07:00
Rémi Verschelde
0b67d1665d Style: Fix previous commits from @reduz 2018-08-24 16:50:29 +02:00
Juan Linietsky
f6c0a3fce9 Property clear caches in animationtree if animatioplayer is modified. Fixes #19876 2018-08-24 11:41:46 -03:00
Rémi Verschelde
52466d57e9 Make some debug prints verbose-only, remove others 2018-08-24 14:59:01 +02:00
Juan Linietsky
bffaa835fc -Fix blend tree rename, closes #20210
-Fixed activity lines in blend tree
2018-08-23 16:44:10 -03:00
volzhs
6a0a8bf814 Remove unnecessary print with AnimationNodeStateMachinePlayback 2018-08-24 01:29:19 +09:00
Rémi Verschelde
404ee1a56b Style: Fix issues that went past CI 2018-08-21 21:28:06 +02:00
Rémi Verschelde
35d232b100
Merge pull request #21228 from Noshyaar/docs-bind
Fix arg name in docs, some copy-paste errors
2018-08-21 00:08:05 +02:00
Juan Linietsky
031f763d4f Crash fixes for material and animtree 2018-08-20 16:35:36 -03:00
Poommetee Ketson
76adef2704 Fix arg name in docs, some copy-paste errors 2018-08-21 01:51:19 +07:00
Juan Linietsky
c7e4527a88 Massive rewrite to AnimationTree. Many APIs changed in order to:
-Reuse resources
-Expose properties in AnimationTree
2018-08-20 13:39:16 -03:00
Rémi Verschelde
238a78f13f Fix compiling SkeletonIK with disable_3d
Fixes #20825.
2018-08-19 12:09:41 +02:00
James
4c2f9c19b8 Tween: Add a unique identifier to InterpolateData to be able to remove the right one when finished 2018-08-16 15:59:35 +02:00
Rémi Verschelde
c0137db762
Merge pull request #20665 from SaracenOne/animation_tree_control
Add method to manually advance AnimationTree and manual process mode.
2018-08-14 15:54:20 +02:00
James
796088a911 interpolation was not removed because of id mismatch 2018-08-09 14:48:56 +02:00
Andrea Catania
4073e44332
Fixed typo in SkeletonIK 2018-08-04 19:35:53 +02:00
AndreaCatania
b7e66188df Implemented IK 2018-08-04 11:25:07 +02:00
Saracen
c55e269bfa Add method to manually advance AnimationTree and manual process mode. 2018-08-02 08:29:51 +01:00
Rémi Verschelde
39168f125e
Merge pull request #19464 from bojidar-bg/19448-fix-subproperty-handling
Fix bug in animationplayer editor not using subproperties properly
2018-07-26 10:31:05 +02:00
Hein-Pieter van Braam
0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
Rémi Verschelde
15c6adcd5b
Merge pull request #19781 from razcore-art/fix-tween
Fix and make Tween node less confusing
2018-07-24 21:24:38 +02:00
Marcelo Fernandez
9b9949de39 Print an error when calling an invalid method on an Animation 2018-07-18 22:26:01 -03:00
Rémi Verschelde
7c9f7452f4 Style: Format code with clang-format 6.0.1 2018-07-18 16:27:03 +02:00
Fabio Alessandrelli
d4465fce43 Fix some enum export in new Animation editor. 2018-07-08 10:24:21 +02:00
Juan Linietsky
2dc738ce27 -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios
-Fixes to some duplication scenarios for instanced scenes
2018-07-02 15:08:35 -03:00
Juan Linietsky
896e250f2b -Fix in animationplayback, sound would be cut on loop
-Fix on scene importer, keeping changes to animation tracks was not working
2018-07-01 17:45:19 -03:00
Juan Linietsky
b3627e29f0 -Fixes to OBJ importer, option to disable optimization
-Fixes to script language, PlaceHolder can now get and check methods
2018-06-30 19:59:16 -03:00
Juan Linietsky
0ffec7daf7 Small fixes 2018-06-29 09:13:39 -03:00
Juan Linietsky
eeab3502d5 Changes to how node paths are selected from property, allowing setting a hint. 2018-06-27 20:50:25 -03:00
Juan Linietsky
9bab5134cf The way multiple quaternions being slerped was not good, changed approach to one that seems to work better. 2018-06-27 16:30:48 -03:00
Răzvan C. Rădulescu
07874292d0 Check "done" state in original loop
My first attepmt I added a second loop to check if processing should
stop. This attempts to optimize by using the original loop (one loop).

Also resets `elapsed` time on finish of tween which fixes `tell()`.
2018-06-27 10:17:00 +02:00
Rémi Verschelde
be9731459a Style: Apply clang-format to animation_tree.cpp
Fixes issues introduced in c633b77 and de1ff22.
2018-06-27 08:36:26 +02:00
Juan Linietsky
de1ff22eae change node graph property and improved some bindings 2018-06-27 03:00:08 -03:00
Juan Linietsky
c633b770cb -Add root motion support in AnimationTree.
-Add RootMotionView, to debug root motion in 3D (disabled in runtime)
2018-06-26 19:06:16 -03:00
Răzvan C. Rădulescu
5c914e2d5b Fix and make Tween node less confusing
I've made the following changes:
- make `is_active` the main way of keeping track of tween
  processing/activity, meaning that `is_active` will now return
  `false` if all tween actions have finished or if it isn't started
  or if it was stopped via `set_active(false)` or any other mode
- removed is_stopped because is redundand now

The above meant that we don't have to keep track of yet another variable
`available` since everything is based on `*processing_internal` so I
removed it, likewise it's own local `processing` variable was removed,
as well as the "double" `_set_process` which it feels more like a hack.

What wasn't changed:
- `tell()` still returns max value (i.e. `== get_runtime()` when all
  tweens `finish`)

*More testing is needed*. So far I've tested repeat on/off, delay,
`is_active()` working corretly, `set_active(true), set_active(false)`,
but probably more tests are necessary, all the resets, stops, resume
etc.
2018-06-26 18:16:57 +02:00
Thomas Herzog
0f45d0aa7d ensure BlendSpace1D syncs animations 2018-06-26 02:41:36 +02:00
Juan Linietsky
8c7da84e1e renamed AnimationGraphPlayer to AnimationTree 2018-06-25 18:40:24 -03:00
Juan Linietsky
87f48e7a3e
Merge pull request #19720 from karroffel/blendspace-1d
add BlendSpace1D animation node
2018-06-25 16:50:33 -03:00
Juan Linietsky
5b035107e3 removed print 2018-06-25 16:47:09 -03:00
Thomas Herzog
0f7c35f955 added BlendSpace1D editor plugin
This commit also fixes a crash in the BlendSpace2D as well as correct
the drawing of the x-zero indicator in the BlendSpace2D editor plugin.
2018-06-25 21:46:12 +02:00
Thomas Herzog
84252f2ec4 added AnimationBlendSpace1D 2018-06-25 21:36:53 +02:00
Thomas Herzog
1ff7aa4c9b rename BlendSpace to BlendSpace2D 2018-06-25 21:36:10 +02:00
Juan Linietsky
4f5a7ebaec State machine animation node 2018-06-25 16:22:41 -03:00
Juan Linietsky
2365fe472b Added auto triangle generation in blend space, using Delaunay. 2018-06-21 22:48:47 -03:00
Juan Linietsky
b80946ee0d Fix crashes, ability to add blendpsace into blendtree, ability to delete with delete key 2018-06-21 18:08:11 -03:00
Juan Linietsky
a0719533bd Animation Blend Spaces 2018-06-21 15:46:11 -03:00
Juan Linietsky
0a1c1c660f -Added AnimationGraphPlayer (still missing features)
-Added ability to edit resources from built-in inspector (wip, needs testing and feedback)
2018-06-18 22:12:08 -03:00
Bojidar Marinov
7b107cb180
Fix bug in animationplayer editor not using subproperties properly
Fixes  #19448
2018-06-18 15:59:13 +03:00
Juan Linietsky
b659fd6d74 Entirely new (and much improved) animation editor. 2018-06-07 12:52:00 -03:00
steincodes
d3483d8c1e Adding is_stopped method to Tween 2018-06-07 17:14:31 +05:30
Max Hilbrunner
140822cc8f
Merge pull request #18885 from Gamblify/AnimationTreeExposePos
Expose animation pos to user for AnimationNodes in AnimationTree
2018-05-26 18:18:07 +02:00
Rasmus Ketelsen
c518b96362 Take tween speed into account when calculating runtime 2018-05-25 15:05:45 +02:00
Gustav Lund
da8fe2f31d Expose the animation pos to the user for AnimationNodes in AnimationTrees 2018-05-17 09:15:47 +02:00
Michael Alexsander Silva Dias
7f72d6476b Fixed some warnings found with Cppcheck. 2018-05-14 02:14:56 -03:00
AndreaCatania
9e57a07fb6 Implemented ragdoll
Implementing ragdoll

Implementing ragdoll

Implementing ragdoll

Implementing ragdoll

Implementing ragdoll

a

Implemented implicit hierarchy.

Improved

Added some physics properties

Added bone offset to preserve COM, partially fixed scaling

work in progress

WIP

wip

Implemented Joint Gizmos

Implemented pin joint joint

Implemented all joints
2018-05-07 21:03:16 +02:00
Michael Alexsander Silva Dias
863eb0e1e0 Added "play_backwards" to the list o functions to autocomplete. 2018-05-07 12:28:55 -03:00
Rémi Verschelde
bf7ca623a6 Fix Coverity reports of uninitialized scalar variable
Fixes most current reports on Coverity Scan of uninitialized scalar
variable (CWE-457): https://cwe.mitre.org/data/definitions/457.html

These happen most of the time (in our code) when instanciating structs
without a constructor (or with an incomplete one), and later returning
the instance. This is sometimes intended though, as some parameters are
only used in some situations and should not be double-initialized for
performance reasons (e.g. `constant` in ShaderLanguage::Token).
2018-04-19 15:20:45 +02:00
tagcup
a5e0bb447c Avoid converting Quat to Euler angles when not necessary.
Also ensure that get_scale doesn't arbitrarlity change the signs of scales, ensuring that the combination of get_rotation and get_scale gives the correct basis.

Added various missing functions and constructors.

Should close #17968.
2018-04-14 15:53:25 -04:00
Rémi Verschelde
fbc61374ca Use internal physics processing for Nodes' internal logic 2018-04-11 09:28:14 +02:00
Juan Linietsky
a6c9ccf007
Merge pull request #17150 from robfram/check-animation-playing-backwards
Added `get_playing_speed` method to AnimationPlayer, returning the actual playing speed of the animation being played
2018-04-08 11:36:15 -03:00
karroffel
4303fbca5a fix bone scale/rotation in AnimationPlayers
fixes #17325.

The bone pose transform was created by setting the rotation and
**then** scaling the transform. This leads to object "deformation"
that's not intended.
2018-04-03 16:43:50 +02:00
Bernhard Liebl
b553b38e7b AnimationPlayer: fix scrubbing after play backwards 2018-03-09 19:41:14 +01:00
robfram
5ef88cf577 Added get_playing_speed method to AnimationPlayer, returning the actual
playing speed of the animation being played.

As stated in #16550, there is no way to get the playing speed of an
animation. The `playback_speed` property is for the whole AnimationPlayer
node, and the argument passed to `play` method is another scale applied
in top of the AnimationPlayer properties.

Thus, the actual playing speed is AnimationPlayer.speed_scale *
AnimationPlayer.playback.current.speed_scale. If it is not playing, the
method returns 0.
2018-03-03 09:29:22 +01:00
Bojidar Marinov
57bed14e95
Remove duplicate "autoplay" property
Part of #16051
2018-01-25 16:17:35 +02:00
Paul Joannon
e30aa1386c
update signals' MethodInfo in Tween
key is a NodePath, not a String
2018-01-23 13:06:03 +01:00
Bojidar Marinov
f2355949c4
Fix an issue with the animation editor not seeking to the target time properly.
Fixes #15646.
2018-01-14 12:28:57 +02:00
Unknown
5876457410 modify default param names in couple of signals
'name' default param should not be used since there is problem with name shadowing
2018-01-12 15:45:29 +01:00
Juan Linietsky
a26e6c8215 Renamed tree_exited to tree_exiting. tree_exited is now used for actual out of tree notification.
Updated doc accordingly.
2018-01-12 08:29:24 -03:00
Bojidar Marinov
9b8e8b2220
Bind many more properties to scripts
Notable potentially breaking changes:
- PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL
- Some properties were renamed, and sometimes even shadowed by new ones
- New getter methods (some virtual) were added
2018-01-12 00:58:14 +02:00
AndreaCatania
09a6a74074 Forced no duplication of animation data 2018-01-11 19:52:46 +01:00
Rémi Verschelde
e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde
b23f7bc923
Merge pull request #15161 from volzhs/tween-follow
Fix Tween follow not working
2018-01-03 11:45:19 +01:00
Rémi Verschelde
48962db5b4
Merge pull request #15132 from RandomShaper/fix-multiple-finish
Fix AnimationPlayer redundantly signaling finish
2018-01-03 11:24:48 +01:00
Rémi Verschelde
b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
firefly2442
6af109cd99 change float to bool as correct type 2017-12-30 22:14:27 -07:00
volzhs
c3f59f290c Fix Tween follow not working
Fix regression from 7609efe757
2017-12-29 21:59:45 +09:00
Pedro J. Estébanez
9c3fbfc9db Fix AnimationPlayer redundantly signaling finish
Now it will emit only when actually going from not-finished-yet to finished, as has always been the case.

The bug was a side effect of 2d2467c0ff.
2017-12-28 21:48:09 +01:00
Noshyaar
d26b6f284f
Merge pull request #15008 from AlmightyScientist/issue-15000
Animation Tree: Prevent cycle_test from being altered by past-test.
2017-12-27 10:28:12 +07:00
Poommetee Ketson
f9c2cfbe31 AnimTreePlayer: fix duplicated properties 2017-12-25 19:26:39 +07:00
AlmightyScientist
7ace1f2494 Animation Tree: Prevent cycle_test from being altered by past-test. 2017-12-24 18:21:59 +01:00
Rémi Verschelde
aa6772d7ab Revert property changes in "[DOCS] AnimationPlayer new props, members/methods"
This partially reverts commits e79456519d
and 2d07fe2920, which introduced API changes
needing more in-depth review at this stage.

Kept the removal of "get_position" binding, redundant with
"get_current_animation_position". Kept docs changes where applicable.
Also removed the obsolete "stop_all" method which does the same as "stop".

Fixes #14602.
2017-12-14 00:36:41 +01:00
Rémi Verschelde
ce0f894b48 doc: Sync classref with current source 2017-12-10 00:43:49 +01:00
Ray Koopa
ad9f987715 Add feature to disable animation tracks 2017-12-09 18:22:16 +01:00
Rémi Verschelde
b5813bddeb
Merge pull request #14315 from willnationsdev/animationtreeplayer-docs
[DOCS] AnimationTreePlayer props/members/methods, EditorFileSystem methods
2017-12-09 14:52:35 +01:00
Will Nations
c80d6ed439 [DOCS] AnimationTreePlayer props/members/methods 2017-12-08 15:19:51 -06:00
Will Nations
2d07fe2920 [DOCS] AnimationPlayer prop API fixed 2017-12-07 11:19:21 -06:00
Rémi Verschelde
13c2ff9320 Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
Will Nations
e79456519d [DOCS] AnimationPlayer new props, members/methods 2017-12-04 23:59:12 -06:00
Pedro J. Estébanez
d0e09d84f0 Implement onion skinning for the animation editor 2017-11-25 13:25:14 +01:00
Pedro J. Estébanez
ff03a0bc7b Implement backup/restore for animated values 2017-11-25 02:18:28 +01:00
Rémi Verschelde
613d374bc5
Merge pull request #12284 from bojidar-bg/allow-subproperty-set
Allow for getting/setting "dotted" properties of objects
2017-11-21 22:44:14 +01:00
Bojidar Marinov
0cf9597758
Allow for getting/setting indexed properties of objects using get/set_indexed
Performance is around the same as using pure set() through GDScript.
2017-11-21 20:58:21 +02:00
Ferenc Arn
d28763a4c1 Rename Rect3 to AABB.
Fixes #12973.
2017-11-17 11:01:41 -05:00
Pedro J. Estébanez
e477fa2bd2 Change AnimationPlayer looping logic
So now it can seek to the actual values at time=length when instructed to seek to time=N*length.

That is, formerly in the editor you had no way of seeing the actual state at time=length other than temporarily disabling looping. Now you can preview both endpoints.

As a side effect, the values at anim time 0 will only be applied when actually seeking to 0, instead of at every time=N*length, as formerly. No issue.
2017-11-13 12:49:31 +01:00
Bojidar Marinov
7bbde636e8 Make Tween::interpolate_property's able to get() the initial value
To use this behavior, pass `null` in place of the initial_value parameter.
2017-11-13 11:23:46 +02:00
Rasmus Ketelsen
02382c4fd8 Fixed AnimationPlayer.get_autoplay() returning empty string 2017-11-02 08:42:43 +01:00
Poommetee Ketson
9b634180aa Refactor Fixed to Physics 2017-10-21 21:28:08 +07:00
Rémi Verschelde
08ebbc90a8 Merge pull request #12107 from RandomShaper/fix-anim-before-first-key
Fix animation before first key
2017-10-20 23:08:02 +02:00
Pedro J. Estébanez
f4959ee32b Fix animation before first key
Prior to this, the value assumed for the interval between the start of the track and the first frame would be the one of the first key if
- *seeking/playing a continuous track*;
- *seeking a discrete track*.

And the first key would be ignored until reached -thus not modifying the target property/transform- in the remaining case; namely, *playing a discrete track*.

In other words, the inner workings of the animation system considered the unreached first key for interpolation but not for a query of every key inside a time range.

With this changes, the first key is only considered is the animation is looped and ignored otherwise. That way, in order to have a start value, you'll need an explicit key at the very beginning of the track, while having the flexibility of the animation player not touching the target value until the first key is reached.

This corresponds to the point 1) of #10752.
2017-10-15 01:28:08 +02:00
Pedro J. Estébanez
2d2467c0ff Fix animation not stopping after seeking to the end 2017-10-14 22:21:20 +02:00
Marcelo Fernandez
ac2879d189 Added a name/path description when there is an error in the Animation Track 2017-10-07 11:51:24 -03:00
AndreaCatania
4537977d6d Renamed fixed_process to physics_process 2017-09-30 16:19:07 +02:00