Commit graph

494 commits

Author SHA1 Message Date
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
letheed 5ad9be4c24 Rename pos to position in user facing methods and variables
Rename user facing methods and variables as well as the corresponding
C++ methods according to the folloming changes:

* pos -> position
* rot -> rotation
* loc -> location

C++ variables are left as is.
2017-09-20 13:11:10 +02:00
Maxim Sheronov 0fffa45158 Fix enums bindings
Add missed bindings for enums
Move some enums to class to have correct output of api.json
2017-09-13 20:57:07 +03:00
Juan Linietsky 1c5376ae59 Many fixes to visual script, changed virtuals override for a proper selector. 2017-09-12 07:58:54 -03:00
Rémi Verschelde 39621bf681 Fix AnimationTreePlayer bogus argument name
Regression from 6fa6149517.
2017-09-01 21:29:00 +02:00
Juan Linietsky 6fa6149517 Fix some argument ordering, closes #10010 2017-09-01 15:01:17 -03:00
cryptonaut 023b68542f Cleaned up logic in Tween::_tween_process(), fixes #9187 2017-08-29 00:08:59 -07:00
Rémi Verschelde 7ad14e7a3e Dead code tells no tales 2017-08-27 22:13:45 +02:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Hein-Pieter van Braam cacced7e50 Convert Object::cast_to() to the static version
Currently we rely on some undefined behavior when Object->cast_to() gets
called with a Null pointer. This used to work fine with GCC < 6 but
newer versions of GCC remove all codepaths in which the this pointer is
Null. However, the non-static cast_to() was supposed to be null safe.

This patch makes cast_to() Null safe and removes the now redundant Null
checks where they existed.

It is explained in this article: https://www.viva64.com/en/b/0226/
2017-08-24 23:08:24 +02:00
Juan Linietsky 2cc8309249 Merge pull request #10351 from neikeq/enums-are-for-the-weak
ClassDB: Provide the enum name of integer constants
2017-08-21 19:56:08 -03:00
Ignacio Etcheverry 32dd9a9f66 ClassDB: Provide the enum name of integer constants 2017-08-20 22:07:43 +02:00
Juan Linietsky 541fdffc0a Merge pull request #10319 from neikeq/pr-engine-editor-hint
Adds Engine::is_editor_hint() method
2017-08-20 12:55:46 -03:00
Ignacio Etcheverry 90b8a5b71e Removes editor_hint from SceneTree 2017-08-19 01:29:45 +02:00
TwistedTwigleg 00f6c85928 Synchronize parameter names in definition and declaration
Fixes #10244.
2017-08-16 17:22:23 +02:00
Ignacio Etcheverry 2f290038d6 Removes type information from method binds 2017-08-10 07:17:50 +02:00
Indah Sylvia 5ae78fdf6a Makes all Godot API's methods Lower Case 2017-08-07 18:24:35 +07:00
Juan Linietsky 7e4970214c Fixed some string names and animation playback options, closes #9446 2017-08-06 22:51:56 -03:00
Poommetee Ketson e3998528e0 BuildSystem: generated files have .gen.extension 2017-06-25 07:55:01 +07:00
alexholly 935f730170 renamed all Rect3.pos to Rect3.position 2017-06-09 15:54:02 +02:00
Poommetee Ketson c7ac90c97f Fix autoplay animation starts from last editor state #8976 2017-05-31 23:54:40 +07:00
Sergey Pusnei 8589ca3903 Rename [gs]et_pos to [gs]et_position for Controls
Control set_pos -> set_position
Control set_global_pos -> set_global_position
[gs]et_mouse_pos -> [gs]et_mouse_position
[gs]et_global_mouse_pos -> [gs]et_global_mouse_position
fixes #8005
2017-04-10 08:27:34 +02:00
Rémi Verschelde df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Shin-NiL d8c396a44f Honor the Tween's final values 2017-03-30 07:58:20 -03:00
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
Rémi Verschelde df365fdc3c Merge pull request #6462 from RandomShaper/fix-improve-anim-blend
Fix/improve AnimationPlayer blending logic
2017-02-27 14:39:54 +01:00
Andreas Haas 0157969ccc
Tween: Fix undefined behavior found by static code analyzer.
Adresses the issue mentioned in https://software.intel.com/en-us/articles/the-ultimate-question-of-programming-refactoring-and-everything
2017-02-22 00:56:40 +01: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
sanikoyes 9123e91634 Fix tween Transform2D typo 2017-02-07 15:45:49 +08:00
Juan Linietsky 4c28f35b2c Merge pull request #7002 from RandomShaper/vcs-friendliness
Greater VCS friendliness
2017-01-25 14:52:40 -03:00
Ferenc Arn 6f4f9aa6de Overloaded basic math funcs (double and float variants). Use real_t rather than float or double in generic functions (core/math) whenever possible.
Also inlined some more math functions.
2017-01-16 13:36:33 -06:00
Pedro J. Estébanez 7dbb1c0571 Improve .tscn VCS
Serialize dictionaries adding newlines between key-value pairs
Serialize group lists also with newlines in between
Serialize string properties escaping only " and \ (needed for a good diff experience with built-in scripts and shaders)

Bonus:
Make AnimationPlayer serialize its blend times always sorted so their order is predictable in the .tscn file.

This PR is back-compat; won't break the load of existing files.
2017-01-16 18:03:51 +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 00ec16e3f3 renamed tween animationplayer scale functions to speed_scale 2017-01-13 19:36:04 -03:00
Rémi Verschelde f392b340ff Tween: Rename times_in_sec (sic) param to duration 2017-01-13 19:40:18 +01:00
Juan Linietsky 83cb84753f Renamed most signals so they refer to:
-An action being requested to the user in present tense: (ie, draw, gui_input, etc)
-A notification that an action happened, in past tense (ie, area_entered, modal_closed, etc).
2017-01-12 00:51:08 -03:00
Juan Linietsky bc26f90581 Type renames:
Matrix32 -> Transform2D
	Matrix3 -> Basis
	AABB -> Rect3
	RawArray -> PoolByteArray
	IntArray -> PoolIntArray
	FloatArray -> PoolFloatArray
	Vector2Array -> PoolVector2Array
	Vector3Array -> PoolVector3Array
	ColorArray -> PoolColorArray
2017-01-11 00:52:51 -03: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 1b0930c435 Renamed finished to animation_finished, also passes the animation name when finished 2017-01-08 17:41:32 -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
Rémi Verschelde cc54189911 Merge pull request #7000 from m4nu3lf/master
Fixed Mix nodes in Animation Tree Player
2016-11-02 22:12:47 +01:00
Rémi Verschelde d4c17700aa style: Fix PEP8 whitespace issues in Python files
Done with `autopep8 --select=E2,W2`, fixes:

- E201 - Remove extraneous whitespace.
- E202 - Remove extraneous whitespace.
- E203 - Remove extraneous whitespace.
- E211 - Remove extraneous whitespace.
- E221 - Fix extraneous whitespace around keywords.
- E222 - Fix extraneous whitespace around keywords.
- E223 - Fix extraneous whitespace around keywords.
- E224 - Remove extraneous whitespace around operator.
- E225 - Fix missing whitespace around operator.
- E226 - Fix missing whitespace around operator.
- E227 - Fix missing whitespace around operator.
- E228 - Fix missing whitespace around operator.
- E231 - Add missing whitespace.
- E231 - Fix various deprecated code (via lib2to3).
- E241 - Fix extraneous whitespace around keywords.
- E242 - Remove extraneous whitespace around operator.
- E251 - Remove whitespace around parameter '=' sign.
- E261 - Fix spacing after comment hash.
- E262 - Fix spacing after comment hash.
- E265 - Format block comments.
- E271 - Fix extraneous whitespace around keywords.
- E272 - Fix extraneous whitespace around keywords.
- E273 - Fix extraneous whitespace around keywords.
- E274 - Fix extraneous whitespace around keywords.
- W291 - Remove trailing whitespace.
- W293 - Remove trailing whitespace.
2016-11-01 00:35:16 +01:00
m4nu3lf 40ba6d328b Fixed Mix nodes in Animation Tree Player 2016-10-31 19:31:37 +00:00
Pawel Kowal 20a18907c1 Fix regression #6864 caused by #6613 2016-10-26 15:15:20 +02:00
Rémi Verschelde fc8ccd5b8c SCsub: Add python shebang as a hint for syntax highlighting
Also switch existing shebangs to "better" /usr/bin/env python.
2016-10-17 20:10:46 +02:00
Pawel Kowal acc242fd6a Tween reset/stop/resume/remove for all object properties at once 2016-09-25 23:25:52 +02:00
Pedro J. Estébanez 83df74a17d Fix/improve AnimationPlayer blending logic 2016-09-12 04:33:40 +02:00
sanikoyes cccea7e0b4 Tween: fix non-repeat interpolate_callback does not delete after call triggered 2016-08-31 10:27:20 +08:00
Juan Linietsky 223ca1363c Merge pull request #5352 from m4nu3lf/master
AnimationTreePlayer filters improved
2016-07-10 13:40:56 -03:00
Rémi Verschelde da034f324a Revert "Added toggle for loop interpolation based on adolson's code"
This reverts commits 8884b8f519
bd5c8f2aa0
and 5cb31f6d5b.

<reduz> Akien, I understand the need for the second loop mode, but I think
the current UI is pretty confusing. I think this should be changed for an
enum, both there and in the animation.. otherwise we should revert it
[...]
<reduz> alternatively this could be added per track, which I think should
make it a little less confusing

Reopens #959..
2016-06-26 23:45:18 +02: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
George Marques 5cb31f6d5b
Replace 'or'/'and' keywords
Some compilers do not like this.
2016-06-19 12:36:50 -03:00
Rémi Verschelde 3520902194 Merge pull request #4724 from Cybolic/optional-loop-interpolation
Added toggle for loop interpolation based on adolson's code
2016-06-19 12:30:22 +02: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
Rémi Verschelde b7dbf9207a Drop empty files that are not used anywhere
Part of #5272
2016-06-18 19:46:30 +02:00
Rémi Verschelde a7fc04626a Add missing license headers in our source files (#5255)
Also removes a couple wrong Godot headers from third-party source files.
2016-06-18 14:46:12 +02:00
m4nu3lf 048f5a6b75 TimeSeek node in AnimationTreePlayer now propagates filters 2016-06-10 23:23:09 +01:00
Hubert Jarosz 33403d91f7
remove trailing whitespace 2016-05-21 15:29:25 +02:00
Christian Dannie Storgaard 8884b8f519 Added toggle for loop interpolation based on adolson's code 2016-05-20 13:13:32 +03:00
Paulb23 488495852b Fixed animation player auto-queue duplication and undo/redo 2016-05-07 17:27:52 +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
Jakub Grzesik fd9b82a082 animation_started signal to AnimationPlayer 2016-04-14 17:19:20 +02: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
Rémi Verschelde 7d1b4567b0 Merge pull request #4155 from JoshuaGrams/anim_tree_switched
AnimationTreePlayer: Various processing improvements
2016-04-11 13:02:21 +02:00
sanikoyes da28a2f062 Fix crash when tween control object previous freed 2016-04-07 15:45:16 +08: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