Commit Graph

1034 Commits

Author SHA1 Message Date
Pedro J. Estébanez 88153fbb61 Fix 2D bones ignored by onion skinning
Fixes #27819.
2019-05-22 20:40:57 +02: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
Ranoller 7a8e4f64b8 Fix tilemap displaced textures and shapes with origin point BOTTOM_LEFT and CENTER and other casuistry
This commit fix https://github.com/godotengine/godot/issues/22989 fixing displaced textures and not coincident shapes in tilemap. Fix too: https://github.com/godotengine/godot/issues/15249, https://github.com/godotengine/godot/issues/28206, https://github.com/godotengine/godot/issues/28610 and probably others
2019-05-15 04:14:27 +02:00
Colin Redman 359d7f178c Fix ParallaxBackground breaking when moving it out the scene tree 2019-05-04 17:09:33 -07:00
Rémi Verschelde f40c62fa29
Merge pull request #27371 from ShyRed/fixdisabled2dcollisions
Allow adding disabled shapes
2019-04-30 11:43:11 +02:00
Rémi Verschelde 6e1b8b07b9
Merge pull request #27805 from Kanabenki/line2d-add-point-idx
Add optional position argument for add_point in Line2D
2019-04-30 11:02:47 +02:00
Rémi Verschelde ac0369e9ff
Merge pull request #27845 from samdze/master
Make TileMap overridable "set_cell" function called on undo/redo
2019-04-30 10:55:53 +02:00
Rémi Verschelde 18e88c8563
Merge pull request #18992 from aaronfranke/mono-equal-approx
[Core] [Mono] Improve and use approximate equality methods
2019-04-29 10:16:46 +02:00
Samuele Zolfanelli e2dd0c101e Make TileMap overridable "set_cell" function called on undo/redo 2019-04-27 17:20:32 +02:00
Juan Linietsky 60eec47077
Revert "Fix AudioStreams::stop possibly causing a small noise" 2019-04-27 12:17:54 -03:00
Aaron Franke b659e1eb2b
Use approximate equallity methods in many places 2019-04-25 13:20:29 -04:00
ShyRed a9d4cde0f5 Allow adding disabled shapes
Adds the ability to directly add disabled shapes to a collision object. Before this commit a shape has always been assumed to be enabled and had to be disabled in an extra step.
2019-04-23 18:06:48 +02:00
Hein-Pieter van Braam 5c28296efe
Merge pull request #24489 from mateusfccp/18264_wrong_animation_error
Make AnimatedSprite.animation complain when invalid animation name
2019-04-23 06:36:32 +03:00
Rémi Verschelde a342131eba
Merge pull request #27673 from qarmin/small_fixes
Small fixes, mostly duplicated code
2019-04-22 12:00:34 +02:00
Rémi Verschelde 6d8b209fc5
Merge pull request #27448 from avencherus/light2d-height
Light2D height range expanded to -2048 to 2048.
2019-04-21 20:06:14 +02:00
Juan Linietsky 04847ef5f9 Added ability for multiple images to be imported as an atlas
This adds support for groups in the import system, which point to a single file.
Add property hint for saving files in file field
2019-04-19 15:56:34 -03:00
Rémi Verschelde f7b5fa8cf2
Merge pull request #28038 from CatThingy/area-error-fix
Removed unnecessary error from _area_inout
2019-04-16 10:35:29 +02:00
Michael Alexsander Silva Dias 87e42e4f66
Merge pull request #24171 from YeldhamDev/occluder_polygon_grab
Make OccluderPolygon2D draggable in the editor
2019-04-15 16:10:48 -03:00
CatThingy 8166f8d3c8 Removed unnecessary error from _area_inout
The error was previously removed from _body_inout
for the same reason. Fixes #28022.
2019-04-15 09:19:30 -07:00
Juan Linietsky e33764744c Added generator audio stream, and spectrum analyzer audio effect
Made AudioFrame and Vector2 equivalent for casting.
Added ability to obtain the playback object from stream players.
Added ability to obtain effect instance from audio server.
2019-04-10 12:58:06 -03: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
Rémi Verschelde 918de768a5
Merge pull request #27711 from neikeq/ifdef-clang-tidy
Replace a few #if/#elif with #ifdef and "#elif defined"
2019-04-08 12:24:30 +02:00
Kanabenki 714953b3ac Add optional position argument for add_point in Line2D 2019-04-08 11:29:13 +02:00
qarmin 856a8226a5 Small fixes, mostly dupicated code 2019-04-08 11:03:37 +02:00
Ignacio Etcheverry 2f3328a039 Fix wrong method binds and registered class 2019-04-06 16:12:59 +02:00
Ignacio Etcheverry ad2127a3e8 Replace a few #if/#elif with #ifdef and "#elif defined" 2019-04-05 23:41:51 +02:00
Rémi Verschelde a61ad365f5
Merge pull request #27677 from akien-mga/Wimplicit-fallthrough
Fix -Wimplicit-fallthrough warnings from GCC 8
2019-04-05 16:12:45 +02:00
Rémi Verschelde 9d4093a21d
Merge pull request #27153 from YeldhamDev/animsprite_backwards
Make AnimatedSprite able to play backwards
2019-04-05 15:47:30 +02:00
Rémi Verschelde 434b73bc57
Merge pull request #27240 from Chaosus/clear_line_points
Added method to clear all points in Line2D
2019-04-05 15:44:14 +02:00
Juan Linietsky 19a6a6286a Ability to make CanvasLayers have pseudo 3D depth. 2019-04-05 10:25:51 -03:00
Rémi Verschelde fc370b3feb Fix -Wimplicit-fallthrough warnings from GCC 8
Adds `FALLTHROUGH` macro to specify when a fallthrough is intentional.
Can be replaced by `[[fallthrough]]` if/when we switch to C++17.

The warning is now enabled by default for GCC on `extra` warnings level
(part of GCC's `-Wextra`). It's not enabled in Clang's `-Wextra` yet,
but we could enable it manually once we switch to C++11. There's no
equivalent feature in MSVC for now.

Fixes #26135.
2019-04-05 15:14:53 +02:00
Mariano Javier Suligoy bfc3ba5af0
Merge pull request #27365 from Byteron/tile_map_negative_offset
TileMap, negative Y and X Offset
2019-04-05 09:24:32 -03:00
Aaron Winter 63e0fd7675 added negative X and negative Y offset to TileMap
clang-format

added negative X and negative Y offset to TileMap
2019-04-05 10:37:35 +02:00
Jared 307bc16523 Light2D height range expanded to -2048 to 2048. 2019-04-05 07:44:05 +03:00
Rémi Verschelde f6bbb08ae1
Merge pull request #27080 from YeldhamDev/tilemap_remove_rect_dirty
Make size cache dirty when removing tiles in 'TileMap'
2019-04-01 10:08:49 +02:00
Daeil Kim 24b7f08892 Ensure non-emitting particles not processed on entering tree
Also removed non-active CPUParticles(3d) from render list
Fixes #27066
2019-03-20 21:54:00 +09:00
Chaosus 61b22beeae Added method to clear all points in Line2D 2019-03-19 20:32:10 +03:00
Kanabenki 3f64215a43 Add missing check for 2d physics bounce and friction setters
The override check was already present for 3d physics but missing for 2d
2019-03-18 15:30:26 +01:00
Michael Alexsander Silva Dias 4a2c433028 Make AnimatedSprite able to play backwards 2019-03-17 04:03:23 -03:00
Michael Alexsander Silva Dias be5f35dfa0 Make size cache dirty when removing tiles in 'TileMap' 2019-03-15 00:58:30 -03:00
JFonS c13ac398f6 Fix resetting of CPUParticles (2D and 3D) 2019-03-10 00:33:08 +01:00
Rémi Verschelde 362b42787b
Merge pull request #26784 from humblers/fix-cpuparticles2d
Prevent invisible/inactive cpupparticles2d to redraw
2019-03-09 16:28:34 +01:00
Daeil Kim 608af1a786 Prevent invisible/inactive cpupparticles2d to redraw 2019-03-08 16:05:00 +09:00
Gilles Roudière a6c229bbfd Fixes bad gizmo alignment for textures with odd size 2019-03-07 21:05:23 +01:00
Mariano Suligoy 078b869d9a TileSet/TileMap: Decompose solid non-convex polygons into convexes. Real fix for #24003 2019-03-04 21:03:10 -03:00
Juan Linietsky 4f041d3afa Specifically error when users try to use sync to physics and move and slide, closes #26545 2019-03-04 09:53:02 -03:00
Juan Linietsky 1b8f56c099 Clean up and fix some situations where triangulation may fail, closes #26366 2019-03-02 12:04:24 -03:00
Juan Linietsky b84b015225 Make query checks less agressive, fixes #24694 2019-03-02 08:48:47 -03:00
Juan Linietsky 6cd4006fb3 Do not crash on empty path, closes #23701 2019-02-23 20:07:16 -03:00
Juan Linietsky 9dfe3b6d9e Ensure move and slide snap respects stop on slope, fixes #26180 2019-02-23 10:24:21 -03:00
Juan Linietsky edbf1d0ea4 Check that area is inside tree besides checking that queries are flushed, fixes #26148 2019-02-22 09:05:34 -03:00
Juan Linietsky 87b303aa95 Fixed bugs in test body motion and removed unnecesary test in move_and_slide. Fixes #25968 2019-02-21 17:21:36 -03:00
marxin 8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
Rémi Verschelde 0fa3b80850
Merge pull request #26025 from clayjohn/particles_lifetime
Allowing setting particles lifetime greater than 600
2019-02-18 21:20:24 +01:00
clayjohn 0fec83bc92 allowing setting particles lifetime greater than 600 2019-02-18 10:46:41 -08:00
Marcelo Fernandez b31e1b84fc Fix AudioStreams::stop possibly causing a small noise 2019-02-17 11:20:10 -03:00
Juan Linietsky 623f7b64ae Updat polygons when skeleton setup changes, fixes #25949 2019-02-16 20:08:17 -03:00
Juan Linietsky 0cee7ab4c9 Change snapping to only happen when the floor normal remains as floor, fixes #22312 2019-02-16 15:50:31 -03:00
Juan Linietsky c54330c6b0 Make sure stop on slope can have a tiny bit of precision edge. 2019-02-16 11:19:47 -03:00
Rémi Verschelde 5fc86026ca Fix typos with codespell
Using codespell 1.14.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
doubleclick
lod
nd
numer
que
te
unselect
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2019-02-13 09:23:29 +01:00
Rémi Verschelde 55ca2a7c88
Merge pull request #25821 from akien-mga/sync-class-and-filenames
Ensure classes match their header filename
2019-02-13 08:49:39 +01:00
Rémi Verschelde c5dcbeb160 Scene: Ensure classes match their header filename
Also drop some unused files.

Renamed:
- `scene/2d/navigation2d.h` -> `navigation_2d.h`
- `scene/2d/screen_button.h` -> `touch_screen_button.h`
- `scene/3d/scenario_fx.h` -> `world_environment.h`
- `scene/audio/audio_player.h` -> `audio_stream_player.h`
- `scene/resources/bit_mask.h` -> `bit_map.h`
- `scene/resources/color_ramp.h` -> `gradient.h`
- `scene/resources/shape_line_2d.h` -> `line_shape_2d.h`
- `scene/resources/scene_format_text.h` -> `resource_format_text.h`
- `scene/resources/sky_box.h` -> `sky.h`

Dropped:
- `scene/resources/bounds.h`
2019-02-12 17:21:48 +01:00
Rémi Verschelde dfe4990b18
Merge pull request #25496 from ptrojahn/lookat
Fix look_at with non uniform scaling
2019-02-12 13:41:42 +01:00
Rémi Verschelde 9c6f19117c
Merge pull request #25754 from JFonS/fix_25567
Fix canvas particle material for old GLSL versions
2019-02-12 11:25:32 +01:00
JFonS 4d933b1530 Fix canvas particle material for old GLSL versions 2019-02-11 14:56:23 +01:00
Rémi Verschelde 034cd62a77 Warn when using GPU particles with GLES2
Closes #25733.
2019-02-09 20:49:58 +01:00
Paul Trojahn 163cdb8954 Fix look_at with non uniform scaling
The angle function doesn't consider the scaling of the local coordinates,
so it needs to be removed first. Fixes #23247
2019-02-08 18:00:54 +01:00
Rémi Verschelde 17d92c2b09
Merge pull request #25551 from JFonS/fix_rogue_cpu_particles
Fix local_delta when resetting CPUParticles
2019-02-08 12:17:16 +01:00
JFonS a7a21bd9fe Fix particles animation on GLES2 2019-02-06 16:00:22 +01:00
JFonS fe6123fca4 Fix local_delta when resetting CPUParticles 2019-02-01 17:16:09 +01:00
Juan Linietsky 45a400d90e Do not restrict light texture type (wont work with atlas, though) 2019-01-27 16:58:18 -03:00
Gilles Roudiere 30dd1815e4 Change the frame number before triggering the animation_finished signal 2019-01-27 17:31:55 +01:00
Juan Linietsky d0b736f7e5 Ability to get the current canvas item being drawn from stylebox. 2019-01-24 10:22:41 -03:00
Rémi Verschelde 7c8f55f857
Merge pull request #25207 from clayjohn/cpu_particle_2d_aligny_bug
Fix bug with CpuParticles2D AlignY
2019-01-22 12:19:00 +01:00
clayjohn af92ade728 properly initialize angular_velocity in cpuparticles2d 2019-01-21 21:00:00 -08:00
clayjohn fbde851641 fix bug with cpu_particle_2d_align_y 2019-01-21 20:11:48 -08:00
Juan Linietsky d8b702b566 -Re-added margins in one way collision (made in a more user friendly way than in Godot 2.1), fixes #23860
-Fixed potential bug in OWC (i dont think anyone had it but..)
2019-01-18 14:15:05 -03:00
Juan Linietsky e0336996ce Add some checks to avoid disaster when making a node the scene root. Fixes #24484 2019-01-17 15:26:38 -03:00
Juan Linietsky 7478f468b2 Fixes to 2D lights, closes #24750 2019-01-17 10:40:36 -03:00
Michael Alexsander Silva Dias 9c69d7f339 Appease some CppCheck warns for files in the "scene" directory 2019-01-16 12:59:18 -02:00
Juan Linietsky e46f28e02d Removed splits in Polygon editor, replace by internal vertices and polygon support. 2019-01-08 19:11:08 -03:00
Timo Schwarzer c06db1dd18
Add process_mode property to Camera2D
This allows the user to choose if the camera should update in
_process or _physics_process.
2019-01-06 15:44:17 +01:00
Rémi Verschelde 2c118d754d
Merge pull request #24689 from BrodyEller/master
Fix viewport not updating with make_current() for Camera2D
2019-01-04 19:04:13 +01:00
Timo Schwarzer a1fbef3d60
Allow offset and unit_offset to be set higher than one loop
Fixes #24745
2019-01-03 17:32:20 +01:00
Rémi Verschelde 03b8168c2e
Merge pull request #24691 from BlackCatter/line2d-fix
Fix line 2D intersection behavior
2019-01-02 19:39:31 +01:00
Artem Burjachenko 6ff26b105a Fix line 2D intersection behavior 2019-01-02 17:34:58 +04:00
Brody Eller 440d62acd1 Fix viewport not updating with make_current() for Camera2D 2019-01-01 13:44:09 -05: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
Guilherme Felipe bacf5124cf Add EDITMODE_PRIORITY for ATLAS_TILE
When editing ATLAS_TILE, now it's possible to enable priority to
randomize subtiles.
2018-12-23 18:56:18 -02:00
Rémi Verschelde 0b774d47e6
Merge pull request #24509 from guilhermefelipecgs/fix_24273
Add bind for TileMap::get_cell_autotile_coord
2018-12-21 10:08:03 +01:00
Guilherme Felipe 9eb4bb044f Add bind for TileMap::get_cell_autotile_coord 2018-12-20 15:43:44 -02:00
Guilherme Felipe 21bad78bd8 Fixes for TileSetEditor and TileMapEditor
[TileSetEditor] Hide Bitmask and Priority for ATLAS_TILE
[TileMapEditor] Hide "Disable autotile" if the selected tile isn't
autotile
Fix #22756, don't update bitmask when tilemode is ATLAS_TILE
2018-12-20 15:31:45 -02:00
Mateus Felipe C. C. Pinto 2933ef42f7 Make AnimatedSprite.animation complain when invalid animation name 2018-12-20 08:44:28 -02:00
Guilherme Felipe d840262739 Add z-index to ATLAS_TILE 2018-12-17 10:03:50 -02:00
piratesephiroth 0e94afbc92 fix stop_on_slope affecting sliding up slopes 2018-12-14 16:02:43 +01:00
Rémi Verschelde 661e5e873b
Merge pull request #24046 from DualMatrix/stop_slope
Fixed using move_and_slide with stop_on_slope stopping too early
2018-12-14 13:57:19 +01:00
Rémi Verschelde 3f9c054163
Merge pull request #23887 from ibrahn/dirty-material-list-lifetime
Moved dirty material lists from static to lifetime controlled by main.
2018-12-11 18:05:19 +01:00
Guilherme Felipe 69f6f787c0 Add Z-Index for Autotile 2018-12-07 18:42:56 -02:00
Michael Alexsander Silva Dias f69dbc0953 Update NavPoly in the editor canvas when the resource is changed via the Inspector 2018-12-06 19:45:47 -02:00
Rémi Verschelde 1691e2e5e4
Merge pull request #24148 from mineevgleb/fix-pathfollow-offset-slider
#24131: fix for PathFollow offset slider overlapping with the inspector
2018-12-06 11:54:30 +01:00
Michael Alexsander Silva Dias cb0d396cb8 Make OccluderPolygon2D draggable in the editor 2018-12-05 02:45:45 -02:00
MrCdK 3f7ae10843 Fixed CanvasItem.draw_multimesh() binding. 2018-12-05 01:29:21 +01:00
Gleb Mineev f0379366dc #24131: fix for PathFollow offset slider overlapping with the inspector 2018-12-04 00:29:37 +01:00
Rémi Verschelde cda28f5077
Merge pull request #24007 from JFonS/fix_cpuparticles_scale
Fix "scale" property collision in CPUParticles
2018-12-02 17:56:06 +01:00
JFonS 4ede92bdc8 Fix "scale" property collision in CPUParticles 2018-11-30 16:05:50 +01:00
DualMatrix 86472ad5a9 Fixed using move_and_slide with stop_on_slope stopping too early
This makes it stop exactly on the slope, I'm not 100% sure if this if this is the correct fix let me know what you think.

Fixes #23675
2018-11-29 02:24:33 +01:00
Juan Linietsky 5b8dde4b4a Removed error that should not be an error, fixes #21088 2018-11-28 18:41:29 -03:00
Andrii Doroshenko (Xrayez) 86eaded7b4 Init `ignore_camera_zoom` property in parallax background constructor
The default value for `ignore_camera_zoom` property was initialized by garbage value,
leading to camera's zoom to be ignored even if unset in editor most of the time.
2018-11-27 14:10:19 +02:00
zer0problem 1c75603ff5
Fixed signal animation_finished
The signal animation_finished is now fired after all values have been changed so changes to the animation can be done without animation_finished without generating unexpected behavior.
2018-11-23 16:53:25 +01:00
Juan Linietsky c48027af92 Ensure no crash happens when skeleton is removed, closes #20677 2018-11-23 09:35:43 -03:00
Italo Vieira a8a92ec114 Fixing wrong type hint on CPUParticles and CPUParticles2D's color ramp
Fixes #22795
2018-11-23 00:54:25 +01:00
Juan Linietsky 0032345618 Make sure sync to physics is disabled in editor, fixes #20230 2018-11-21 22:22:43 -03:00
Ibrahn Sahir c1f5233217 Moved dirty material lists from static to lifetime controlled by main.
As with 7d82bed4f4,
The list is now destroyed before the OS object, so can print errors if
there are unfreed materials.
2018-11-21 15:51:50 +00:00
Juan Linietsky c500581d32 Remove the "is able to sleep" condition for adding visibility notifier nodes, fixes #19659
I think the previous behavior was more useful, but I understand it's not obvious or discoverable.
2018-11-19 23:06:02 -03:00
Hugo Locurcio 34dba2f3cc
Tweak the Hue Variation property hint to allow finer adjustments 2018-11-19 10:52:17 +01:00
Juan Linietsky 83afc6170a Skeleton2D was missing transform notification, fixes #18719 2018-11-18 15:28:13 -03:00
Marcelo Fernandez 016f7bd8f8 Fix AudioStreamPlayer2D/3D::is_playing right after a play() 2018-11-17 11:47:11 -03:00
Juan Linietsky 0afdc5c559 Avoid duplicate visility changed notification, fixes #18160 2018-11-16 19:47:13 -03:00
Juan Linietsky 0b1e93ccd4 -Make sure monitorable cant be flipped while flushing queries, fixes #17330
-Also added set_deferred, this was missing.
2018-11-16 08:49:26 -03:00
JFonS 1267f92740 Fix Particles2D animation regression from #23702 2018-11-15 09:22:11 +01:00
JFonS cbfb7bd613 Make 2D particles work OOTB (again) 2018-11-13 23:25:05 +01:00
Juan Linietsky 65111ba996 Ability to remove buses while they are being used on 2D and 3D stream players. Fixes #15115 2018-11-13 18:17:19 -03:00
Rémi Verschelde 193d695a1a
Merge pull request #17530 from bojidar-bg/17516-detect-delta
Make it possible to call move_and_slide from _process, even if it is not recommended
2018-11-12 21:14:15 +01:00
Rémi Verschelde 2815e708a0
Merge pull request #23090 from DavidSichma/inconsistent-kinematic
Consistency in KinematicBody
2018-11-12 20:30:38 +01:00
Kanabenki 44918e214f Fix wrong editor hints for angular_velocity properties 2018-11-10 17:13:21 +01:00
Davide Baldo 672b1b19c0 Fixed tilemap saving, format FORMAT_2 was not correctly written since it was recognized as default value, hence
FORMAT_1 was always the case even when the tile_data was written in FORMAT_2.
2018-11-10 01:40:08 +00:00
Bojidar Marinov d94c76a199
Make it possible to call move_and_slide from _process, even if it is not recommended
Previously, it would reuse the _physics_process delta, causing it to move faster on faster framerates

Fixes #17516
2018-11-08 20:34:34 +02:00
Juan Linietsky f2e54057ae -Moved EditorDefaultValue to ClassDB, made it core
-Removed one and zero hints for properties, replaced by default value
2018-11-08 11:30:59 -03:00
Juan Linietsky daa1686772
Merge pull request #21386 from RandomShaper/fix-picking-in-canvas-layers
Fix picking in CanvasLayer
2018-11-07 17:51:27 -03:00
Rémi Verschelde c8700f83a1
Merge pull request #23451 from akien-mga/world_to_map_precision
TileMap: Fix floor precision in world_to_map on tile borders
2018-11-06 22:21:37 +01:00
Rémi Verschelde fcd761e889
Merge pull request #23519 from Rubonnek/remove-unnecessary-assignments
Removed unnecessary assignments
2018-11-05 09:05:03 +01:00
Wilson E. Alvarez 71df4caf8f
Removed unnecessary assignments 2018-11-04 22:19:30 -05:00
JFonS 85ce4a67ed Remove animation loop from ParticlesMaterial + improvements to CPUParticles2D
Remove animation loop from ParticlesMaterial and move it to
SpatialMaterial for 3D particles and Particles2D for the 2D case.

Added animation to CPUParticles2D as well as the "Convert to
CPUParticles2D" to the PAarticles2D menu.
2018-11-04 15:58:12 +01:00
Rémi Verschelde b9232ce7a3 TileMap: Fix floor precision in world_to_map on tile borders
Fixes #23250, supersedes #23315.
2018-11-02 13:07:57 +01:00
Rémi Verschelde 200c2e7451
Merge pull request #23294 from gcardozo123/issue-23235-get-collision-exceptions
Add method get_collision_exceptions to PhysicsBody2D
2018-11-01 10:57:28 +01:00
Guilherme Recchi Cardozo 3fb2069d39 Add method get_collision_exceptions
Adding this method to PhysicsBody, PhysicsBody2D and
SoftBody. It returns a list of nodes included in
collision exceptions.

Fixes #23235, cheers!
2018-11-01 06:41:34 -03:00
lupoDharkael f2f81d9703 Fix crash adding point to a Curve2D from the editor
Adding point to a Path2D with null Curve2D from the canvas was
causing a crash after trying to use a null object.
2018-10-30 14:45:37 +01:00
Dualtagh Murray b902a2f2a7 Fixing warnings generated by MSVC
Fixes #22684.
2018-10-19 11:45:24 +02:00
David Sichma 6ec4da2e3b Fix inconsistency in KinematicBody
- moved new infinite_inertia argument of move_and_slide and
move_and_slide_with_snap in KinematicBody and KinematicBody2D to the
end if not already there. This makes the order of arguments consistent
and should keep projects from 3.0 compatible as this argument did not
exist in 3.0. Docs updated accordingly.
- renamed max_bounces to max_slides for consistency. Docs updated
accordingly.
- the argument infinite_inertia in test_move is now optional, as it is
in every other movement related method. This closes #22829.
2018-10-17 17:22:14 +02:00
MrCdK 0e8c7f58db Fixes Area and Area2D audio bus override 2018-10-11 05:15:22 +02:00
Juan Linietsky 328679fddd Ensure CPU particles do not process if not visible 2018-10-08 00:55:43 -03:00
Rémi Verschelde ea65a1bbb3
Merge pull request #22712 from groud/fix_animation_finished_signal
Fixes AnimatedSprite2D animation_finished signal triggering too early
2018-10-07 11:17:14 +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
groud 252d089e6f Fixes AnimatedSprite2D animation_finished signal triggering too early 2018-10-04 12:51:45 +02:00
karroffel a0f206aae8 fix enum cast warnings on clang 2018-10-04 09:17:59 +02:00
Rémi Verschelde c026e3957a Fix warnings on virtual methods [-Woverloaded-virtual] [-Wdelete-non-virtual-dtor]
Fixes the following Clang 7 warnings:
```
editor/editor_help.h:123:7: warning: 'EditorHelpIndex::popup' hides overloaded virtual function [-Woverloaded-virtual]
editor/editor_help.h:95:7: warning: 'EditorHelpSearch::popup' hides overloaded virtual function [-Woverloaded-virtual]
editor/editor_help.h:96:7: warning: 'EditorHelpSearch::popup' hides overloaded virtual function [-Woverloaded-virtual]
editor/plugins/curve_editor_plugin.h:141:15: warning: 'CurvePreviewGenerator::generate' hides overloaded virtual function [-Woverloaded-virtual]
editor/plugins/script_editor_plugin.h:70:7: warning: 'ScriptEditorQuickOpen::popup' hides overloaded virtual function [-Woverloaded-virtual]
editor/quick_open.h:69:7: warning: 'EditorQuickOpen::popup' hides overloaded virtual function [-Woverloaded-virtual]
main/tests/test_io.cpp:53:15: warning: 'TestIO::TestMainLoop::input_event' hides overloaded virtual function [-Woverloaded-virtual]
servers/audio/effects/audio_effect_record.h:69:15: warning: 'AudioEffectRecordInstance::process_silence' hides overloaded virtual function [-Woverloaded-virtual]

core/os/memory.h:119:2: warning: destructor called on non-final 'ContextGL_X11' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
core/os/memory.h:119:2: warning: destructor called on non-final 'EditorScriptCodeCompletionCache' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
core/os/memory.h:119:2: warning: destructor called on non-final 'Engine' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
core/os/memory.h:119:2: warning: destructor called on non-final 'PhysicalBone::JointData' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
core/os/memory.h:119:2: warning: destructor called on non-final 'VisualServerScene' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
core/os/memory.h:119:2: warning: destructor called on non-final 'VisualServerViewport' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
```
2018-10-02 13:40:17 +02:00
Rémi Verschelde 62ecb44035 Fix warning about functions defined but not used [-Wunused-function]
Fixes the following GCC 5 warnings:
```
core/io/zip_io.h:128:26: warning: 'zlib_filefunc_def zipio_create_io_from_file(FileAccess**)' defined but not used [-Wunused-function]
core/script_debugger_remote.cpp:110:17: warning: 'ObjectID safe_get_instance_id(const Variant&)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:103:12: warning: 'int _socket_create(IP::Type&, int, int)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:45:15: warning: 'size_t _set_sockaddr(sockaddr_storage*, const IP_Address&, int, IP::Type)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:76:15: warning: 'size_t _set_listen_sockaddr(sockaddr_storage*, int, IP::Type, IP_Address)' defined but not used [-Wunused-function]
editor/editor_fonts.cpp:40:24: warning: 'Ref<BitmapFont> make_font(int, int, int, int, const int*, const Ref<Texture>&)' defined but not used [-Wunused-function]
editor/editor_themes.cpp:85:26: warning: 'Ref<StyleBoxFlat> change_border_color(Ref<StyleBoxFlat>, Color)' defined but not used [-Wunused-function]
editor/import/editor_import_collada.cpp:493:13: warning: 'void _generate_normals(const PoolVector<int>&, const PoolVector<Vector3>&, PoolVector<Vector3>&)' defined but not used [-Wunused-function]
editor/import/editor_import_collada.cpp:524:13: warning: 'void _generate_tangents_and_binormals(const PoolVector<int>&, const PoolVector<Vector3>&, const PoolVector<Vector3>&, const PoolVector<Vector3>&, PoolVector<float>&)' defined but not used [-Wunused-function]
editor/pvrtc_compress.cpp:118:13: warning: 'void _compress_etc(Image*)' defined but not used [-Wunused-function]
modules/etc/image_etc.cpp:89:13: warning: 'void _decompress_etc1(Image*)' defined but not used [-Wunused-function]
modules/etc/image_etc.cpp:93:13: warning: 'void _decompress_etc2(Image*)' defined but not used [-Wunused-function]
modules/gdscript/editor/gdscript_highlighter.cpp:46:13: warning: 'bool _is_whitespace(CharType)' defined but not used [-Wunused-function]
scene/2d/cpu_particles_2d.cpp:510:14: warning: 'float rand_from_seed_m1_p1(uint32_t&)' defined but not used [-Wunused-function]
scene/3d/cpu_particles.cpp:474:14: warning: 'float rand_from_seed_m1_p1(uint32_t&)' defined but not used [-Wunused-function]
scene/resources/default_theme/default_theme.cpp:123:20: warning: 'Ref<Shader> make_shader(const char*, const char*, const char*)' defined but not used [-Wunused-function]
scene/resources/default_theme/default_theme.cpp:130:24: warning: 'Ref<BitmapFont> make_font(int, int, int, int, const int*, const Ref<Texture>&)' defined but not used [-Wunused-function]
```

Had to split `core/io/zip_io.h` into header and .cpp file without 'static' keyword.

Not fixed yet (static definition in header used in some files but not all):
```
modules/websocket/lws_helper.h:111:13: warning: 'void _lws_make_protocols(void*, int (*)(lws*, lws_callback_reasons, void*, void*, size_t), PoolVector<String>, _LWSRef**)' defined but not used [-Wunused-function]
```

Also fixed a couple other warnings missed in previous commits.
2018-09-29 22:26:12 +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 d95bbb8922 Fix warnings about set but unused variables [-Wunused-but-set-variable]
Fixes the following GCC 5 warnings:
```
drivers/gles2/rasterizer_canvas_gles2.cpp:814:8: warning: variable 'rt_size' set but not used [-Wunused-but-set-variable]
drivers/gles2/rasterizer_scene_gles2.cpp:2270:11: warning: variable 'vp_height' set but not used [-Wunused-but-set-variable]
drivers/gles2/rasterizer_scene_gles2.cpp:2673:22: warning: variable 'e' set but not used [-Wunused-but-set-variable]
drivers/gles2/rasterizer_scene_gles2.cpp:715:7: warning: variable 'no_cull' set but not used [-Wunused-but-set-variable]
drivers/gles2/shader_gles2.cpp:693:14: warning: variable 'cc' set but not used [-Wunused-but-set-variable]
drivers/gles3/rasterizer_canvas_gles3.cpp:1226:8: warning: variable 'rt_size' set but not used [-Wunused-but-set-variable]
drivers/gles3/rasterizer_scene_gles3.cpp:3039:10: warning: variable 'contrib' set but not used [-Wunused-but-set-variable]
drivers/gles3/rasterizer_scene_gles3.cpp:4504:32: warning: variable 'vp_height' set but not used [-Wunused-but-set-variable]
editor/editor_inspector.cpp:272:9: warning: variable 'guide_color' set but not used [-Wunused-but-set-variable]
editor/editor_themes.cpp:1067:14: warning: variable 'alpha3' set but not used [-Wunused-but-set-variable]
editor/editor_themes.cpp:263:8: warning: variable 'script_bg_color' set but not used [-Wunused-but-set-variable]
editor/plugins/collision_shape_2d_editor_plugin.cpp:326:11: warning: variable 'cpoint' set but not used [-Wunused-but-set-variable]
editor/plugins/mesh_editor_plugin.cpp:72:9: warning: variable 'size' set but not used [-Wunused-but-set-variable]
editor/plugins/shader_editor_plugin.cpp:471:12: warning: variable 'mpos' set but not used [-Wunused-but-set-variable]
editor/plugins/shader_editor_plugin.cpp:89:8: warning: variable 'basetype_color' set but not used [-Wunused-but-set-variable]
editor/plugins/shader_editor_plugin.cpp:90:8: warning: variable 'type_color' set but not used [-Wunused-but-set-variable]
editor/plugins/shader_editor_plugin.cpp:92:8: warning: variable 'string_color' set but not used [-Wunused-but-set-variable]
modules/visual_script/visual_script_editor.cpp:2521:7: warning: variable 'seq_connect' set but not used [-Wunused-but-set-variable]
platform/android/export/export.cpp:580:12: warning: variable 'styles_count' set but not used [-Wunused-but-set-variable]
platform/android/export/export.cpp:584:12: warning: variable 'styles_offset' set but not used [-Wunused-but-set-variable]
platform/osx/export/export.cpp:464:9: warning: variable 'zerr' set but not used [-Wunused-but-set-variable]
scene/2d/tile_map.cpp:260:10: warning: variable 'tcenter' set but not used [-Wunused-but-set-variable]
scene/3d/light.cpp:166:7: warning: variable 'editor_ok' set but not used [-Wunused-but-set-variable]
scene/3d/navigation.cpp:566:11: warning: variable 'closest_navmesh' set but not used [-Wunused-but-set-variable]
scene/gui/rich_text_label.cpp:869:8: warning: variable 'size' set but not used [-Wunused-but-set-variable]
scene/main/viewport.cpp:705:14: warning: variable 'xform' set but not used [-Wunused-but-set-variable]
scene/main/viewport.cpp:706:8: warning: variable 'ss' set but not used [-Wunused-but-set-variable]
scene/main/viewport.cpp:726:14: warning: variable 'xform' set but not used [-Wunused-but-set-variable]
scene/main/viewport.cpp:727:8: warning: variable 'ss' set but not used [-Wunused-but-set-variable]
scene/resources/material.cpp:430:7: warning: variable 'using_world' set but not used [-Wunused-but-set-variable]
servers/visual/shader_language.cpp:2026:7: warning: variable 'all_const' set but not used [-Wunused-but-set-variable]
servers/visual/visual_server_scene.cpp:1383:28: warning: variable 'z_max_cam' set but not used [-Wunused-but-set-variable]
```

Also fixes two [-Wunused-value] warnings:
```
scene/gui/text_edit.cpp:4405:20: warning: statement has no effect [-Wunused-value]
servers/visual/visual_server_scene.cpp:905:48: warning: value computed is not used [-Wunused-value]
```

Some of those are bugs and need further work, they are identified with
`// FIXME` comments.
2018-09-27 16:25:24 +02:00
Rémi Verschelde 34f8441434
Merge pull request #22047 from DualMatrix/better_nav_2D
Better heuristic for the shortest path algorithm for navigation2D
2018-09-20 22:31:22 +02:00
DualMatrix 0b5c694b74 Better heuristic for the shortest path algorithm for navigation2D and navigation.
Better heuristic for the shortest path algorithm for navigation2D and navigation.
It now will use the shortest distance to the polygon as cost instead of the distance to the center.
2018-09-20 21:23:17 +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 f6481d1694
Revert "Drop deprecated compatibility methods from AnimatedSprite" 2018-09-13 02:32:51 +02:00
Rémi Verschelde 158704fcaa
Merge pull request #21780 from akien-mga/animatedsprite-deprecated
Drop deprecated compatibility methods from AnimatedSprite
2018-09-12 10:38:37 +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
Rémi Verschelde 2f6f920884 Drop deprecated compatibility methods from AnimatedSprite
They were deprecated in 2.1, but never properly identified as such
and thus never removed.

Fixes #21765.
2018-09-09 15:25:49 +02:00
Juan Linietsky 74359a1d1e Add a function to force transform update, fixes #17628 2018-09-06 20:38:16 -03:00
Juan Linietsky 47a4d78dbf Only allow StreamTexture, ImageTexture in Light2D, closes #15194 2018-09-06 13:18:22 -03:00
Rémi Verschelde 5fe01d4cfc Move ParticlesMaterial code to its own resource file
It's shared by both 2D and 3D particles (+ CPU ones), so it makes sense
to have as a common resource. It also allowed to disable compilation of
Particles (3D) when using 'disable_3d'.

Also cleaned up includes in SpatialEditorGizmos and some other places,
as well as dropped dead code in material_editor_plugin.cpp.
2018-09-04 11:32:56 +02:00
Rémi Verschelde 60570a5e60 PhysicsBody: Don't create PhysicsMaterial override for default friction/bounce
And don't save physics_material_override if null.
2018-09-02 15:08:43 +02:00
Kelly Thomas 1dc8e7c05f Improve ClassDB information for some some signal parameters 2018-09-01 18:05:51 +08:00
Rémi Verschelde 449fcc5a72 RayCast2D: Fix reporting old collider after collision ended
It now behaves the same as RayCast (3D).
Fixed documentation accordingly and documented new configuration options.

Supersedes and closes #20567.
2018-08-30 16:28:48 +02:00
Rémi Verschelde 9eb4d4ab2d Add missing copyright headers 2018-08-29 22:41:17 +02:00
Juan Linietsky cf834a22dc Ported CPU particles to 2D 2018-08-29 16:48:55 -03:00
Rémi Verschelde 060988408b Physics: Properly obsolete friction and bounce properties
Without this change any new PhysicsBody would show deprecation warnings
due to default values for friction and bounce being defined.

It also enforced a physics material override even when using default
values.
2018-08-29 18:44:42 +02:00
Marcelo Fernandez 20bea1e231 Unexpose TileMap set_celld 2018-08-29 09:00:00 -03:00
Rémi Verschelde 3b01bf94ad Fix operator precedence in PhysicsBody2D::set_weight
Fixes #16038.
2018-08-29 08:37:08 +02:00
Pedro J. Estébanez 6d0f4a4ad7 Fix picking in CanvasLayer
New APIs in 2D physics allow intersection queries filtered by CanvasLayer object instance id. Viewport keep an inventory of its descendant CanvasLayers and takes advantage of all that to test picking with the mouse/touch position correctly transformed for each CanvasLayer.
2018-08-25 00:03:26 +02:00
Rémi Verschelde 67b0d3c2dc Particles: Allow speed_scale at 0 in property hint, equivalent to pause
Supersedes and closes #21193.
2018-08-24 18:11:35 +02:00
Rémi Verschelde f733c6470d
Merge pull request #21110 from natrim/particles2d_editor
Particles2D: fix editing Visibility Rect from new inspector
2018-08-24 15:31:31 +02:00
Rémi Verschelde 52466d57e9 Make some debug prints verbose-only, remove others 2018-08-24 14:59:01 +02:00
Juan Linietsky 34e58fd831 Added a function to cache texture opacity at a pixel, and modified editor to use it.
Provides massive speedups to selecting objects, still awaiting for @MarianoGNU to do fixes to the region editor to improve performance.
2018-08-23 22:11:10 -03:00
Rémi Verschelde ab3716bd46 Revert "Take CanvasLayer transform into account for 2D physics"
This reverts commit 4839e5f6d9.

Fixes #21289.
2018-08-23 21:49:24 +02:00
Juan Linietsky 398c1c1c0c Fix transform not being applied properly after toggling remote node, fixes #17671 2018-08-23 12:29:33 -03:00
Juan Linietsky 634673cf5b Fix properly keep scale in RemoteTransform2D, fixes #17692, closes #17690 2018-08-23 12:14:04 -03:00
Chaosus 27731a86d2 Restrict set_pitch_scale to positive scales for AudioStreamPlayer*
Fixes #20459.

Co-authored-by: Tiago José Sousa Magalhães <crakylps@gmail.com>
2018-08-22 00:11:53 +02:00
Rémi Verschelde ed10ff65fd
Merge pull request #21245 from RandomShaper/fix-physics-canvas-xform
Take CanvasLayer transform into account for 2D physics
2018-08-21 21:46:04 +02:00
Juan Linietsky ee07fb5ebe Changes to ClippedCamera, RayCast,Raycast2D and 2D physics API to add ability to choose between bodies and areas when colliding. 2018-08-21 15:31:23 -03:00
Pedro J. Estébanez 20dc63054f Optimize CanvasLayer::get_global_transform_with_canvas
So it takes advantage of the `get_global_transform` cached data.
2018-08-21 20:10:15 +02:00
Pedro J. Estébanez 4839e5f6d9 Take CanvasLayer transform into account for 2D physics
Fixes #18073.
2018-08-21 20:10:15 +02:00
Rémi Verschelde 2969dffbe3 Deprecate incorrect Color::gray()
This average is not a proper approximation of a grayscale value,
get_v() is better suited for that.

If we want a real to_grayscale() conversion, it's somewhat more
involved: https://en.wikipedia.org/wiki/Grayscale

Remove the deprecated Gray() from C# bindings as it conflicts
with new named color constants.
2018-08-21 17:48:31 +02:00
Poommetee Ketson 76adef2704 Fix arg name in docs, some copy-paste errors 2018-08-21 01:51:19 +07:00
Andrea Catania 0010d9c82a Added ray shape and move_and_slide with snapping on 3D.
Added stop_on_slope on 2d part
2018-08-19 13:45:23 +02:00
Natrim 6ad0f4ebe8 Particles2D: fix editing Visibility Rect from inspector
+ renamed generate_aabb to generate_visibility_rect to prevent future confusions
2018-08-17 12:25:48 +02:00
Rémi Verschelde 968886768b Lift 1440 limit in rotation_degrees hint range
Fixes #15947.
2018-08-16 14:36:38 +02:00
Juan Linietsky 4e55835e48
Merge pull request #18096 from aaronfranke/master
[Core] Split up math_2d.h
2018-08-14 18:58:32 -03:00
Rémi Verschelde 2062d6126d
Merge pull request #20587 from groud/fix_2deditor_scrollable_zone
Fixes bugs on the 2D editor scrollable area
2018-08-13 09:03:34 +02:00
Aaron Franke 28fc195339 [Core] Change math_2d includes to vector2 includes where relevant 2018-08-10 14:59:29 -05:00
Juan Linietsky c02fb271fd apply a threshold for floor angle, fixes #16037, fixes #15632 2018-08-10 13:07:52 -03:00
MAriano Javier Suligoy ce87a30e45 New TileSet Editor 2018-08-09 20:38:02 -03:00
Juan Linietsky 14fd797c53
Merge pull request #20381 from AndreaCatania/phymat_2
Improved Physics material
2018-08-07 15:31:26 -03:00
Andrea Catania 5e65e28eed Removed physics material combination mode. Added rough and absorbent parameter to material. Fixed 'change' signal connection 2018-08-07 19:38:04 +02:00
groud eb7f4ddcce Fixes bugs on the 2D editor scrollable area 2018-07-30 01:05:13 +02:00
Rémi Verschelde 12254594ac Fix PhysicsBody build with deprecated=no
Fixes #20483.
2018-07-27 15:34:58 +02:00
Rémi Verschelde 391e46830f doc: Sync classref with current source
Fix various missing arguments in bindings.
2018-07-26 11:56:21 +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 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