Commit graph

88 commits

Author SHA1 Message Date
Rémi Verschelde
140350d767
Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2021-05-05 15:02:01 +02:00
Rémi Verschelde
b5e1e05ef2
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
lawnjelly
bf1de6bbfa Revert backport of 2D transform and camera snapping options
More work is needed to make sure that those options actually solve users' issues, so we prefer to remove the options for 3.2.4 and revisit for a future release.
2021-03-05 14:20:31 +00:00
lawnjelly
b1e24597e7 Renaming rendering/2d project settings.
The rendering/quality/2d section of project settings is becoming considerably expanded in 3.2.4, and arguably was not the correct place for settings that were not really to do with quality.

3.2.4 is the last sensible opportunity we will have to move these settings, as the only existing one likely to break compatibility in a small way is `pixel_snap`, and given that the whole snapping area is being overhauled we can draw attention to the fact it has changed in the release notes.

Class reference is also updated and slightly improved.

`pixel_snap` is renamed to `gpu_pixel_snap` in the project settings and code to help differentiate from CPU side transform snapping.
2021-03-01 11:38:46 +00:00
lawnjelly
847a37b196 Change 2d transform snapping from floor to round
Two common problems have emerged as a result of transform snapping:
1) Camera jitter with a camera following a snapped object
2) Pixel gaps between e.g. a platform and a player, where a platform rounds down and a player rounds up

Using round seems to greatly reduce problems due to camera jitter. It also may prove better for  pixel gaps because pixel art is often designed on a grid, so whole numbers are too expected, which are unstable with floor().
2021-02-28 14:34:39 +00:00
Rémi Verschelde
49646383f1
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
lawnjelly
a237c671bb Improve 2d snapping
Partially revert change allowing sprite get_rect snapping to be controlled by `pixel_snap` again rather than `transform_snap` (to prevent breaking compatibility). Adds a final `use_camera_snap` project setting to allow snapping viewports as in reduz original PR.
2020-12-25 18:53:00 +00:00
lawnjelly
a79293e0fc Add 2d snap transforms option
This is a cut back backport of reduz snapping PR #43194.

It just offers a global project setting for transform snapping.
2020-11-15 09:40:07 +00:00
Eric Tuvesson
9320266fe8
fix(sprite2d): Rect is not handling pixel snap
related https://github.com/godotengine/godot/issues/42985

(cherry picked from commit e892a92ad6)
2020-10-28 15:09:16 +01:00
Jonathan Vice
96ca267209
Reorder sprite h_frames & v_frames
(cherry picked from commit 28326aec60)
2020-09-24 14:43:10 +02:00
Gilles Roudière
b5251eb00f Don't compile editor-only function when tools=no 2020-01-09 22:15:48 +01:00
Rémi Verschelde
a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

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

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Tyler Greenwood
e4a0abdd93 Fixed a bug within sprite.cpp that caused nan values to appear when a texture had zero area 2019-12-16 13:53:35 +01:00
Tomasz Chabora
6c0ef9f729 Auto-increment frame_coords when keying 2019-10-22 20:12:55 +02:00
Gilles Roudiere
b27ec4aea7 Fixes Sprite frame_coords 2019-10-13 08:44:44 +02:00
Rémi Verschelde
f84bf7e8a8
Merge pull request #32351 from nekomatata/texture-rect-size-update
Update TextureRect when its Texture is modified directly
2019-10-07 08:57:17 +02:00
PouleyKetchoupp
c7834ee566 Update TextureRect and Sprite when their Texture is modified directly.
Modified Sprite to use "changed" signal instead of _changed_callback to make it work when tool is disabled (change receptors are editor only).

Fixes #32349
2019-10-05 17:32:46 +02:00
qarmin
17732fe698 Added some obvious errors explanations 2019-09-25 10:28:50 +02:00
groud
11cb4eb363 Add frame_cords accessors to Sprite and Sprite3D 2019-07-27 13:05:02 +02:00
Rémi Verschelde
336846e547 Inspector: Fix PROPERTY_HINT_SPRITE_FRAME not behaving as RANGE
This was a regression in 3.1 and later from the new inspector, where
PROPERTY_HINT_SPRITE_FRAME was not fully re-implemented. It's meant to
be a normal PROPERTY_HINT_RANGE which also automatically increments its
value when keyed in the animation player.

To avoid code duplication, I made the frames properties use the actual
PROPERTY_HINT_RANGE and introduced a PROPERTY_USAGE_KEYING_INCREMENTS
usage flag instead.
2019-07-25 09:29:51 +02:00
qarmin
4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
Gilles Roudière
a6c229bbfd Fixes bad gizmo alignment for textures with odd size 2019-03-07 21:05:23 +01: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
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
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
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
groud
4d78e16bc1 Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
Juan Linietsky
9b1fdad035
Merge pull request #16122 from ibrahn/sprite-region-with-frames
Allow use of frames in sprites with texture region enabled.
2018-05-07 20:38:12 -03:00
volzhs
3ecf8eef37 Fix error spam with Sprite has compressed texture
Fix #18177
2018-04-16 21:53:54 +09:00
volzhs
af0d547c02 Fix index out of size error on Image
Fix #18229
2018-04-16 21:15:31 +09:00
Ibrahn Sahir
9db767d076 Allow use of frames in sprites with texture region enabled.
If texture region is enabled on a sprite, Hframes and Vframes will now
divide the selected region into frames.
2018-04-08 19:56:58 +01:00
Gilles Roudiere
72ed1e4244 Remove the selection rect for nodes that do not require it 2018-04-03 22:04:19 +02:00
ShyRed
a23c0877f1 Update Sprite when Texture changes
Make Sprite monitor its Texture for changes and trigger an update when the sprite changes.
2018-03-10 17:23:29 +01:00
Rémi Verschelde
079b919b41
Merge pull request #17341 from poke1024/fix16461
Fix unselectable flipped sprites (fixes 16461)
2018-03-08 08:40:49 +01:00
Rémi Verschelde
0b600fde3f
Merge pull request #17189 from CodeAndWeb/master
Fixes Selection of Sprites using AtlasTexture
2018-03-08 08:37:22 +01:00
poke1024
bd2e1df216 Fix unselectable flipped sprites (fixes 16461) 2018-03-07 18:58:45 +01:00
Bernhard Liebl
5f917139ab Fix uninitialized data in Sprite::_get_rects() 2018-03-04 21:19:32 +01:00
Andreas Loew
a01ba4523b Fix selection of Sprites using AtlasTexture in the editor.
Fixes #16261.
2018-03-02 19:17:47 +01:00
Rémi Verschelde
222516a815
Merge pull request #16756 from willnationsdev/shifted-rect-sprite
Simplify detection of Sprite clicks
2018-02-21 10:42:47 +01:00
Will Nations
b0bdb4456b Expose Sprite._edit_get_rect for click rect access 2018-02-19 16:45:11 -06:00
Gilles Roudiere
8dad41e395 2D editor GUI input rework. Changes are:
- The input handling is done into several distinct functions, and the
  code is more consistent.
- The actions' history is more precise ("Edited CanvasItem"
  is now "Rotated CanvasItem","Moved CanvasItem",etc...)
- Fixed a little bug about input key events not forwarded correctly to plugins
- IK is followed by default when you move a bone node, the alt-key allow
  you to move it normally
2018-02-16 10:14:52 +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
459ee51338
Merge pull request #15093 from poke1024/canvas-editor-select
More exact picking for canvas editor
2018-01-03 11:15:28 +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
Bernhard Liebl
8505871a87 More exact picking for canvas editor 2017-12-27 20:24:58 +01:00
Gilles Roudiere
8d1f2b1857 Rework the canvas_item API for further improves to the canvas item editor 2017-11-19 13:36:31 +01: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
Ignacio Etcheverry
2f290038d6 Removes type information from method binds 2017-08-10 07:17:50 +02:00
Juan Linietsky
e47ecc63ef Properly update frame range after modifying the vframe/hframes, closes #7624 2017-08-05 16:19:36 -03:00