Commit Graph

47 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
Marcelo Fernandez ff95bbc6c4 Fixed Bucket Fill tool 2018-07-24 13:11:38 -03:00
Max Hilbrunner 81fd48eb1e
Tilemap editor: Fix crash introduced in #17582 2018-07-24 17:42:24 +02:00
Ovnuniarchos d9d78786dc Tile randomizer for tilemap editor. 2018-07-01 20:50:56 +02: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
James Beedie 6cbafdea16 Added autotile override 2018-06-02 21:25:09 -04:00
Marcelo Fernandez cadd72793b Improve TileMap undo operations, second try 2018-05-29 19:35:30 -03:00
Rémi Verschelde 665319de35
Revert "Improve TileMap undo operations" 2018-05-25 13:00:28 +02:00
Marcelo Fernandez f1383f80bf Improve TileMap undo operations 2018-05-23 14:31:51 -03:00
Anish cca7633739 Replaces CTRL with CMD in TileMapEditor for MacOS.
Replacing CTRL with CMD makes sense dure to consistency
with MacOS and avoiding conflict with the accessibility
hotkey (ctrl+lmb = rmb)

Fixes: #18238
2018-04-23 19:39:01 +05:30
Alexander Alekseev 0853ac2006 Update transform buttons in tile editor while using T, A, S shortcuts (fixes #17962) 2018-04-04 16:02:44 +03:00
Martin Rieke d538fcd92d Add functionality to move selected tiles in tile map editor
This change adds a new entry "Move Selection" to the "Tile Map"
menu in the tile map editor. It allows the user to easily move
as set of selected tiles.
2018-04-04 09:23:56 +02:00
Rémi Verschelde c81356153e
Merge pull request #16971 from Noshyaar/tilemap
TileMap: add fix_invalid_tiles
2018-03-13 13:57:58 +01:00
Rémi Verschelde 65dc4abca3
Merge pull request #16978 from Noshyaar/tmsc
Add icon to TileMapEditor popupmenu
2018-03-13 13:57:10 +01:00
Poommetee Ketson 2de1dfa42f Update icons when theme changed 2018-02-25 23:04:16 +07:00
Poommetee Ketson 0f36c7aae5 Add icon to TileMapEditor popupmenu 2018-02-24 20:39:19 +07:00
Poommetee Ketson 7effe46461 TileMap: add fix_invalid_tiles 2018-02-24 19:34:41 +07:00
Damar Indra e69dd47501 Tileset Editor Improvement 2018-02-20 22:33:59 +07: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 b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Andreas Haas 34e489f060
TileMapEditor: Fix tile placement.
Fixes #14625
2017-12-13 16:46:22 +01:00
Mariano Suligoy af719a90a7 TileMap Fixes 2017-12-02 20:49:01 -03:00
Matthias Hoelzl 2beadf7ac0 Fix displacement for centered tilemaps
- Fixes tile and collision placement for tilemaps with
  `tile_origin` set to `TILE_ORIGIN_CENTER`.
- Also fixes a bug in the offset computation for collision shapes
  with `flip_v` flag set to true if `tile_origin` is
  `TILE_ORIGIN_BOTTOM_LEFT`.
2017-11-27 15:12:30 +01:00
Pedro J. Estébanez 3f31925b18 Universalize draw-over API for EditorPlugins
- Now it is usable from both `CanvasItem` and `Spatial` editors.
- `EditorPlugin` API changes:
 - `forward_draw_over_canvas()` becomes `forward_draw_over_viewport()`.
 - `update_canvas()` becomes `update_overlays()`, which now triggers the update of every overlay on top of any 2D or 3D viewports present. Also now it returns the number of such viewports, which is useful whenever you need to know the number of draw-over calls you'll get.
 - New: `[set/is]_force_draw_over_forwarding_enabled()` to force overlaying regardless it handles the current object type, in a similar fashion as `[set/is]_input_event_forwarding_always_enabled`. This kind of overlay is also on top of those for regular handled node types.
 - New: `forward_force_draw_over_canvas()`, which is the callback that gets called for plugins that enable forced overlaying.
2017-11-24 21:24:15 +01:00
Mariano Suligoy bcfb0a09f8 Implement auto-tiling 2017-11-20 06:27:47 -03: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
Marc Gilleron 0b7ae364ea Fix tilemap undo/redo 2017-11-08 22:26:19 +01:00
Marc Gilleron e9f6ff5bd1 Use bresenham line in freehand tilemap painting to fill discontinuities 2017-10-23 01:26:51 +02:00
Gilles Roudiere fc02605b49 Fixes snapping and replaces the _draw_canvas by forward_canvas_draw 2017-10-18 00:01:59 +02:00
Marcelo Fernandez 6f1ac101b8 Bucket fill will now incrementally process the queue on preview mode 2017-09-24 10:35:55 -03:00
Marcelo Fernandez 3571087843 Fix possible infinite loop with bucket fill tool 2017-09-23 23:30:00 -03:00
Jakob Schwab f98f65fd7f Adds missing shortcuts to TileEditor. Keeps fill-tool selected after use
The following keyboard shortcuts are now available:
-Bucket fill (G)
-Paint Tile (P)
-Transpose Tile (T)
Fixes #10918
2017-09-17 13:09:04 +02:00
Hein-Pieter van Braam b2a38854fd Fix unused variable warnings
The forth in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-08 15:03:53 +02:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Andreas Haas 6134d8741d Editor: Add some more translatable strings. 2017-08-25 18:49:45 +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
Rémi Verschelde 19aff15a1a Tilemap Editor: Setting to hide tile info in the menu bar
Based on e513ecb7a1.
2017-08-16 19:51:55 +02:00
Daniel J. Ramirez e4a9233a83 Hide tilemap menu when no tilemap is selected 2017-08-10 14:48:48 -05:00
Juan Linietsky dbb6a39722 Moved mirror and rotations to the tile mapen, to avoid taking up too much toolbar space, fixes #6461 2017-08-08 22:46:26 -03:00
Andreas Haas 95da12212b
TileMap: Fix infinite loop when trying to bucket-delete empty tiles.
Right-clicking when the bucket tool is enabled means "erase all instances of this tile".
So it doesn't make sense to try doing this for empty tiles :P

Fixes #10065
2017-08-03 20:46:13 +02:00
alexholly a3c90b0293 renamed all Rect2.pos to Rect2.position 2017-06-04 02:09:17 +02:00
Andreas Haas 9bc5348961
InputEvent: Renamed "pos" property to "position"
Make the naming consistent with other classes.
2017-06-03 11:26:39 +02:00
Juan Linietsky 5b3709d309 Removal of InputEvent as built-in Variant type..
this might cause bugs I haven't found yet..
2017-05-20 17:05:38 -03:00
Rémi Verschelde df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Pedro J. Estébanez 54abbc532f Several enhancements for the tile map editor
Allow sorting tile palette by name
Allow hiding tile ids in tile palette
2017-03-27 10:45:02 +02: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
Rémi Verschelde 49c065d29c Refactoring: rename tools/editor/ to editor/
The other subfolders of tools/ had already been moved to either
editor/, misc/ or thirdparty/, so the hiding the editor code that
deep was no longer meaningful.
2017-03-05 14:21:25 +01:00