Commit graph

688 commits

Author SHA1 Message Date
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 f778bd8e69
Merge pull request #20404 from TigerCaldwell/master
Ensured consistency between RigidBody, PhysicsDirectBodyState, PhysicsServers and their 2D counterparts
2018-07-25 08:25:34 +02:00
Rémi Verschelde 62f2a8aadb
Merge pull request #20252 from RandomShaper/fix-canvas-search
Fix CanvasItem's search for a CanvasLayer
2018-07-24 22:45:24 +02:00
Tiger Caldwell 40c7716586 Modified RigidBody, PhysicsDirectBodyState, PhysicsServer, and their respective 2D counterparts to be more consistent and to include more useful methods.
RigidBody:
- Added add_central_force
- Added add_force
- Added add_torque
- Added apply_central_impulse

RigidBody2D:
- Added add_central_force
- Added add_torque
- Added apply_central_impulse
- Added apply_torque_impulse

PhysicsDirectBodyState:
- Added apply_central_impulse

Physics2DDirectBodyState:
- Added add_central_force
- Added add_force
- Added add_torque
- Added apply_central_impulse
- Added apply_impulse
- Added apply_torque_impulse

PhysicsServer:
- Added body_add_force
- Added body_add_torque
- Added body_add_central_force
- Added body_apply_central_impulse

Physics2DServer:
- Added body_add_torque
- Added body_add_central_force
- Added body_apply_central_impulse
- Added body_apply_torque_impulse

Also fixed some small bugs along the way
2018-07-24 05:00:56 -04:00
Wilson E. Alvarez a22e746bc3 Removed unnecessary assignments 2018-07-24 09:51:03 +02:00
Juan Linietsky 1ad20dc2f1
Merge pull request #12403 from AndreaCatania/phymat
Physics material
2018-07-23 07:37:03 -03:00
Pieter-Jan Briers b2c797c584 Defer TileMap::update_dirty_quadrants once again.
This fixes #20323.

#11077 is now technically re-broken,
but you can now call update_dirty_quadrants as workaround.
2018-07-22 15:26:14 +02:00
Pedro J. Estébanez 49d0af3c8e Fix CanvasItem search for a CanvasLayer
This fixes the situation where a `CanvasItem` descendant of a `Viewport` which in turn is a descendant of a `CanvasLayer` prefers the more outer `CanvasLayer` rather than the `Vierport`'s.

Because of that, `CanvasItem`s inside a `Viewport` inside a `CanvasLayer` were being rendered to the main `Viewport` instead of the render target of the innermost one.
2018-07-18 20:34:21 +02:00
Max Hilbrunner b64bf118f1
Merge pull request #19087 from danvalho/master
SpriteFrames: expose method to get array containing animation names
2018-07-17 14:54:06 +02:00
Juan Linietsky 13a801430b Further fixes to KinematicBody2D API, support for sync motion in moving objects 2018-07-17 08:58:04 -03:00
Max Hilbrunner 1f1b45c7ec
Merge pull request #20191 from jvdnbus/line2d-stretch
Line2D texture stretch mode
2018-07-17 12:12:29 +02:00
Juan Linietsky e1f2feec2e Changes to how snap works (I think this makes more sense now) 2018-07-16 21:30:44 -03:00
Juan Linietsky 063a22851a -Added support for raycast in KinematicBody2D
-Added support for snapping in KinematicBody2D
2018-07-16 20:04:07 -03:00
Jorn Van denbussche d7aa3e33c8 Line2D texture stretch mode
Prototype for stretching the texture across the whole line.
Fixed end cap tile mode.
2018-07-16 23:16:58 +02:00
Jorn Van denbussche 28aa9a1d6d More accurate UV round begin cap 2018-07-16 14:30:30 +02:00
Marcelo Fernandez 0c78a58b64 Fix possible bug with AudioStreamPlayer2D audio position 2018-07-10 22:57:50 -03:00
Marcelo Fernandez 087329074d Improved stream paused fade code 2018-07-09 21:58:33 -03:00
Max Hilbrunner ed61bdd2ae
Merge pull request #19646 from chanon/fix-audiostream-cant-set-null-stream
Fix can't set AudioStreamPlayer stream to null
2018-07-05 04:16:47 +02:00
Max Hilbrunner b21c1f64cd
Merge pull request #18634 from groud/fix_control_child_of_node2d
Fixes the bad calculation of margin & anchors when child of Node2D
2018-07-03 18:06:15 +02:00
Max Hilbrunner 6d0ade54c0
Merge pull request #19205 from marcelofg55/audio_stream_pause
Pause AudioStreamPlayer when SceneTree pauses
2018-07-03 17:23:53 +02: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
Rémi Verschelde f036353b93
Merge pull request #19164 from marcelofg55/tilemap_undo2
Improve TileMap undo operations, second try
2018-06-26 20:57:39 +02:00
Marcelo Fernandez 67a78e020a Optimize _recreate_quadrants 2018-06-26 00:07:48 -03:00
chanon 2bdac0a5d9 fix can't set AudioStreamPlayer stream to null 2018-06-22 15:00:57 +07:00
Rémi Verschelde 3aed396a30
Merge pull request #19343 from bojidar-bg/x-fix-tilemap-shape-rotation
Fix bugs related to bad handling of rotated/translated shapes in tilemap
2018-06-08 18:15:51 +02:00
Rémi Verschelde f35115309b
Merge pull request #19314 from Jellonator/master
Added autotile override
2018-06-08 09:11:49 +02:00
groud 4d78e16bc1 Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
danvalho 296af5276f SpriteFrames: expose method to get array containing animation names 2018-06-05 13:07:30 +02:00
Rémi Verschelde 2935cd8a58
Revert "Prevent visibility notification from being called twice in object creation" 2018-06-05 12:05:02 +02:00
Marcelo Fernandez c409fe0597 Pause AudioStreamPlayers when SceneTree pauses 2018-06-03 14:01:47 -03:00
Bojidar Marinov d73cdeb248
Fix bugs related to bad handling of rotated/translated shapes in tilemap
Fixup #18529 and #12870
2018-06-03 16:32:23 +03:00
James Beedie 6cbafdea16 Added autotile override 2018-06-02 21:25:09 -04:00
Rémi Verschelde 44b0146953 Revert "Revert "Prevent visibility notification been called twice in object creation""
This reverts commit 4d277b96ad.

Woops, this wasn't meant to be committed. I just reverted it locally
to test something, nothing wrong with the original commit :)
2018-05-31 15:50:02 +02:00
Rémi Verschelde 4d277b96ad Revert "Prevent visibility notification been called twice in object creation"
This reverts commit d42b17607e.
2018-05-31 12:03:40 +02:00
Rémi Verschelde 43b7ebf0a0 Style: Apply clang-format (5.0) to some missed files 2018-05-31 09:00:37 +02:00
Marcelo Fernandez cadd72793b Improve TileMap undo operations, second try 2018-05-29 19:35:30 -03:00
Mariano Javier Suligoy 7eddb80b27
Merge pull request #18960 from isaacremnant/autotile_3x3_minimal
Restore support for minimal 3x3 autotile sets
2018-05-17 19:57:55 -03:00
isaacremnant e4f0ac558d Restore support for minimal 3x3 autotile sets 2018-05-17 09:49:14 -04:00
Marcelo Fernandez b9023715e2 Fix missing return on Navigation2D::get_closest_point_owner 2018-05-17 09:07:25 -03:00
Mariano Javier Suligoy ba134d44b8
Merge pull request #15909 from authenticate/tilemap_fix
TileMap Navigation Fixes
2018-05-16 20:22:19 -03:00
Guilherme Felipe 35024d4e7b Add missing copyright headers 2018-05-16 14:50:44 -03:00
Juan Linietsky dfd1331690 Allow editing of some unbound properties when hinted (or no range hinted) 2018-05-16 09:13:41 -03:00
James 69ee7945d7 Fixing a bug where tilemap navigation would not be accurate after a tilemap exits and then re-enters the tree. Fixing a bug where deleting a tile and then querying navigation would result in an incorrect path if both happened within the same frame. 2018-05-15 20:14:37 -04:00
Anthony Rey c8a42f98cc Fix Camera2D drag margin property is affected by zoom property #18912 2018-05-16 01:53:38 +02:00
Juan Linietsky 005b69cf6e -New inspector.
-Changed UI resizing code, gained huge amount of speed.
-Reorganized timer sync to clean up behavior (sorry forgot commit this before)

-
2018-05-15 17:14:31 -03:00
Rémi Verschelde aba499965c
Merge pull request #18851 from groud/fix_animatedsprite
Updates frame timeout when changing speed scale
2018-05-14 08:30:22 +02:00
Michael Alexsander Silva Dias 7f72d6476b Fixed some warnings found with Cppcheck. 2018-05-14 02:14:56 -03:00
groud d7f25f7adb Updates frame timeout when changing speed scale 2018-05-13 23:29:06 +02:00
Hein-Pieter van Braam 3cfb9df325
Revert "Use fake audio playing property in editor" 2018-05-13 21:37:08 +02:00
Hein-Pieter van Braam 24dbe5e310
Merge pull request #17367 from ShyRed/audio_playing_
Use fake audio playing property in editor
2018-05-13 21:35:44 +02:00