Commit graph

249 commits

Author SHA1 Message Date
Andrew Thomas c3a005011b Convert tilemap format in get_tile_data() 2017-12-09 10:44:26 -06:00
PJB3005 cea5078ebe Fixes TileMap occluder offsets.
This is NOT related to #14388!

This fixes a graphical bug where the light occluders used by tilemaps weren't getting offset anymore, this they'd be positioned incorrectly.

I tried on all 3 tilemap positioning modes and it seemed to work on every one.
2017-12-08 20:14:06 +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
Ruslan Mustakov e967dbca6f Fix TileMap and TileSet ClassDB bindings 2017-11-24 11:43:15 +07: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
Vito 5515d28107 Fixing tilemap rotation for non top-left tiles. 2017-11-15 09:22:07 +00:00
Juan Linietsky 19b1ff0fc5 Disabled filter clip by default and made it optional, fixes #12368, likely others too 2017-11-10 09:22:25 -03:00
Juan Linietsky 192a4d7de5 Reworked how servers preallocate RIDs, should fix #10970 2017-11-09 23:35:34 -03: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
Rémi Verschelde 348eb4e4c5 Merge pull request #10361 from RandomShaper/tilemap-global-mtl
Let TileMap apply its material
2017-08-30 16:02:12 +02:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Juan Linietsky 3061eca190 Removed old fp_adjust code that conflicts with clipped rects, fixes #9925 2017-08-25 10:40:29 -03: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 32dd9a9f66 ClassDB: Provide the enum name of integer constants 2017-08-20 22:07:43 +02:00
TwistedTwigleg 00f6c85928 Synchronize parameter names in definition and declaration
Fixes #10244.
2017-08-16 17:22:23 +02:00
Pedro J. Estébanez 3bb5abbc35 Let TileMap apply its material
So when a material is set, every tile will be rendered with that. Quadrants will not be recreated, so a `CanvasItem` will exist per material per quadrant regardless a global material is set.

This makes also __Use parent material__ work for `TileMap`s.

Closes #9996.
2017-08-15 23:41: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
Hassan A 74587a4927 Added get_used_cells_by_id method 3.0 2017-08-02 18:02:00 -04:00
Bojidar Marinov 4d2642b666 Readd tilemap's shape_transform and bugfixes
This reverts commit a808f53020.
2017-07-01 20:56:51 +03:00
Juan Linietsky a808f53020 Revert "Fix Tileset/tilemap issues related to my adding of one-way collisions to them" 2017-07-01 13:02:04 -03:00
Bojidar Marinov 80356f925c
Fix #9409, fixup #9370; tileset now has shape transform instead of offset
Fix bad return type in CollisionObject2D, Shape -> Shape2D. Was causing unintended null when casting. (9409)
Fix a misplaced ++ operator. (9370)
Fix merging with exiting tileset duplicating shapes. (9370)
2017-06-30 19:01:20 +03:00
Rémi Verschelde f2bc0cc966 Merge pull request #9370 from bojidar-bg/c-9318-oneway-tilemaps
Add one-way collisions and individual shape offsets for tilesets
2017-06-26 22:47:26 +02:00
Rémi Verschelde f7b77e5b76 Merge pull request #9318 from bojidar-bg/readd-normal-tilemap
Add normal map to tilemaps and tilesets
2017-06-26 22:47:11 +02:00
Bojidar Marinov 207feb2f87
Add one-way collisions and individual shape offsets for tilesets
As requested in #9318
Accidentially fixes #2231 as well
2017-06-25 21:47:30 +03:00
Poommetee Ketson e3998528e0 BuildSystem: generated files have .gen.extension 2017-06-25 07:55:01 +07:00
Bojidar Marinov 2edb082c7e
Add normal map to tilemaps and tilesets
Fixes #9310
2017-06-22 18:15:50 +03:00
Poommetee Ketson 6c44fff508 Refactor layer_mask to collision_layer 2017-06-14 10:58:34 +07:00
alexholly a3c90b0293 renamed all Rect2.pos to Rect2.position 2017-06-04 02:09:17 +02:00
Rémi Verschelde d596946a45 Merge pull request #8271 from MattUV/master
Add methods to get and set bits of collision layers and masks for TileMaps (3.0)
2017-04-09 23:37:56 +02:00
Rémi Verschelde df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Juan Linietsky 74808ac4d9 New particle system, mostly working, some small features missing. 2017-04-06 23:49:27 -03:00
MattUV 6b5305b972 Add set/get_collision_layer/mask_bit() to TileMaps
Add four methods to the TileMap node to make collision layers and masks be modified bit by bit (like PhysicBody2Ds and RayCast2Ds:

 * set_collision_layer_bit()
 * set_collision_mask_bit()

 * get_collision_layer_bit()
 * get_collision_mask_bit()

To comply with collision layers' renaming from https://github.com/godotengine/godot/issues/5696 , the method names are NOT set/get_layer_mask_bit()
2017-04-06 23:27:55 +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
Andreas Haas 962243f931
TileMap: Respect self_modulate property
Now `TileMap`s make use of the `self_modulate` property.

There's still a bug: The Editor doesn't re-draw with the new color when you change the TileMaps `self_modulate`
in the inspector. You'll have to make it update manually (by placing a tile, changing the transform, etc..)
I'll open an issue for that after this is merged (If I don't fix it in the meantime ^^).
2017-03-05 11:42:01 +01:00
Bojidar Marinov 136e1e18ba
Add Rect2 TileMap::get_used_rect(), closes #4390 2017-02-20 23:02:03 +02: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
Juan Linietsky 94609305a0 Merge pull request #6519 from RandomShaper/enhance-tileset
Add modulate (color) to TileSet tiles
2017-01-14 16:52:16 -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 a2903fc51d Must now register with set_transform_notify() to get NOTIFICATION_TRANSFORM_CHANGED 2017-01-12 20:35:46 -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 4338c90163 It is now possible to name layers of different kinds! 2017-01-10 22:20:57 -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 3f3f5a5359 Merge remote-tracking branch 'origin/gles3' into gles3-on-master
Various merge conflicts have been fixed manually and some mistakes
might have been made - time will tell :)
2017-01-02 21:52:26 +01:00
Rémi Verschelde 6428ebd91f Merge pull request #7406 from neikeq/pr-issue-5076
TileMap: _update_dirty_quadrants() cancel pending update pre return
2017-01-02 15:11:23 +01: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
Ignacio Etcheverry 5b3acd287d TileMap: _update_dirty_quadrants() cancel pending update pre return 2017-01-01 21:08:12 +01:00
Pedro J. Estébanez 86789c7071 Add modulate (color) to TileSet tiles 2016-11-30 14:33:39 +01:00
Ovnuniarchos e07dd9ab32 TileMap now honors blending mode. 2016-11-24 21:28:10 +01:00
Juan Linietsky 22d83bc9f6 Begining of GLES3 renderer:
-Most 2D drawing is implemented
-Missing shaders
-Missing all 3D
-Editor needs to be set on update always to be used, otherwise it does not refresh
-Large parts of editor not working
2016-10-03 21:35:16 +02:00
Patrick Reh fff4d5867c Added Tile Origin = Bottom Left option to the TileMap 2016-06-20 12:18:53 +02:00
Bojidar Marinov 2a581835ca Fix issues with tilemap covering child nodes and old quadrants
Closes #4070
2016-03-18 18:57:26 +02:00
Hubert Jarosz 4a4f247914
remove trailing whitespace 2016-03-09 00:00:52 +01:00
Juan Linietsky 70cdfa681a -Change link to new documentation
-fixed bug in tilemap collision debug
2016-02-20 10:02:14 -03:00
Rémi Verschelde 5439937899 Bind method is_cell_transposed 2016-02-15 23:30:52 +01:00
Johan Manuel a634fc7a4a Added get_cellv() method to TileMap 2016-02-06 13:48:41 +01:00
Ignacio Etcheverry a9dbe83155 TileMap: Properly flip/rotate tiles with non-square region 2016-01-04 15:28:11 +01:00
Ignacio Etcheverry e22e0cecf7 TileMap: Consider texture offset for rotated tiles 2016-01-02 18:17:20 +01:00
George Marques 5be9ff7b67 Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
reduz 5063cd7757 -Make tilemap able to change light mask, fixes #2557 2015-12-29 14:47:13 -03:00
reduz f7b64a62d1 -renamed function get_relative_transform() to get_relative_transform_to_parent(), makes more sense
-fixed newly introduced bug in onready keyword, fixes #3155
2015-12-28 21:05:57 -03:00
Juan Linietsky ec8f0d7eb9 ability to set occluder mask in tilemap, fixes #3025 2015-12-12 10:45:31 -03:00
Juan Linietsky 9251298f46 -collision debug is shown above all else, fixes #2985 2015-12-12 08:11:36 -03:00
Brickcaster 4e0511a8a0 Fix for negative coords. Regarding issue #2665
int() of negative numbers rounds up. Needed to add a condition to account for negative values. Thanks to Romulox_x for providing this solution.
2015-10-24 21:47:48 -04:00
Juan Linietsky 83d9a692be Ability to visually debug geometry visually:
-Visible 2D and 3D Shapes, Polygons, Tile collisions, etc.
-Visible Navmesh and Navpoly
-Visible collision contacts for 2D and 3D as a red point
-Customizable colors in project settings
2015-09-20 13:03:46 -03:00
Juan Linietsky 59961c9914 Live edit WORK IN PROGRESS
1) press the heart while the game is running
2) select a scene to live edit from the opened scenes
3) edit/add/remove nodes or resources, change their properties, etc.
4) watch changes reflected in running game, in all places this scene is
edited
5) It's not perfect obviously, but the aim of it is to try to reflect
your changes as best as possible in the running game.
2015-08-02 12:30:01 -03:00
Juan Linietsky af06843982 -new collision layer & mask system for 2D, for more flexible collision masking 2015-05-03 16:47:21 -03:00
Juan Linietsky 4661a6e126 -try to avoid errors when path using ".." is present in script include, fixes #1703 2015-04-18 16:17:33 -03:00
Juan Linietsky be46be7801 -renamed function to get object from instance id
-added function to get list of tiles used
2015-04-18 14:00:15 -03:00
Juan Linietsky 3fddc9e55a fixed navigation tile issue, fixes #1581 2015-04-09 01:18:01 -03:00
marynate 7957709cb1 Fix compie error in TileMap::_fix_cell_transform(...) 2015-03-09 16:28:08 +08:00
Juan Linietsky 09489e3a78 lot of work on 2D lighting and isometric maps
added a new demo, isometric_light that does full isometric sorting,
lights, shadows, etc.
2015-03-09 02:34:56 -03:00
Carl Olsson 196185d0be Merge branch 'master' of https://github.com/okamstudio/godot
Conflicts:
	scene/2d/tile_map.cpp
2015-02-15 18:21:35 +10:00
Carl Olsson 8bb1e19d73 Replace body_mode property with use_kinematic flag.
Revert 2D Platformer demo's moving platforms to sprite plus body.
2015-02-14 06:43:50 +10:00
Carl Olsson 9d182e93a3 Added body mode property to TileMap to select between static and kinematic physics bodies. Kinematic allow use of TileMaps for moving platforms for example.
Updated 2D Platformer demo to use kinematic TileMaps for moving platforms, in doing so discovered that the tileset was messed up and not converting properly, so fixed that too.
And in order to fix the tileset I need to activate snapping for collision polygon vertices.
2015-02-13 20:49:21 +10:00
Carl Olsson 6a38ab1b43 Reorder tile transforms so transpose occurs before flips. Much more intuitive for flipping transposed tiles. 2015-02-13 10:56:53 +10:00
Carl Olsson c613fb121b Moved wrapper function to TileMapEditor. 2015-02-11 21:40:50 +10:00
Carl Olsson 9171f71ff5 Revert variant arg length to 5 and add 5 arg wrapper function for TileMap set_cell. 2015-02-11 21:11:14 +10:00
Carl Olsson c5bf43f6eb Working TileMap tile transpose transform. 2015-02-02 21:27:48 +10:00
Carl Olsson a8b318871c Prep for tile transpose transform. 2015-01-19 23:07:25 +10:00
Juan Linietsky 0dbedd18fc SceneMainLoop -> SceneTree
-=-=-=-=-=-=-=-=-=-=-=-=-=-

*YOUR SOURCE MIGHT NOT WORK*
For mor information on fix:
https://github.com/okamstudio/godot/wiki/devel_scene_tree

Other stuff:
-Shower of bullets demo
-Fixes all around
2014-11-05 21:20:42 -03:00
Juan Linietsky 371eac9bef -added custom metadata to physics shapes (2D only for now)
-gizmos are not displayed in camera preview
2014-10-16 00:06:34 -03:00
Juan Linietsky af4a97bef9 missing fils from yesterday comit.
must have made some mistake with git,
not sure why they were not sent..
2014-10-03 08:58:41 -03:00
Juan Linietsky b24fe3dd20 Huge Amount of BugFix
-=-=-=-=-=-=-=-=-=-=-

-Fixes to Collada Exporter (avoid crash situtions)
-Fixed to Collada Importer (Fixed Animation Optimizer Bugs)
-Fixes to RigidBody/RigidBody2D body_enter/body_exit, was buggy
-Fixed ability for RigidBody/RigidBody2D to get contacts reported and bodyin/out in Kinematic mode.
-Added proper trigger support for 3D Physics shapes
-Changed proper value for Z-Offset in OmniLight
-Fixed spot attenuation bug in SpotLight
-Fixed some 3D and 2D spatial soudn bugs related to distance attenuation.
-Fixed bugs in EventPlayer (channels were muted by default)
-Fix in ButtonGroup (get nodes in group are now returned in order)
-Fixed Linear->SRGB Conversion, previous algo sucked, new algo works OK
-Changed SRGB->Linear conversion to use hardware if supported, improves texture quality a lot
-Fixed options for Y-Fov and X-Fov in camera, should be more intuitive.
-Fixed bugs related to viewports and transparency

Huge Amount of New Stuff:
-=-=-=-=-=-=-=-==-=-=-=-

-Ability to manually advance an AnimationPlayer that is inactive (with advance() function)
-More work in WinRT platform
-Added XY normalmap support, imports on this format by default. Reduces normlmap size and enables much nice compression using LATC
-Added Anisotropic filter support to textures, can be specified on import
-Added support for Non-Square, Isometric and Hexagonal tilemaps in TileMap.
-Added Isometric Dungeon demo.
-Added simple hexagonal map demo.
-Added Truck-Town demo. Shows how most types of joints and vehicles are used. Please somebody make a nicer town, this one is too hardcore.
-Added an Object-Picking API to both RigidBody and Area! (and relevant demo)
2014-10-03 00:10:51 -03:00
Juan Linietsky 11a5ed508b Fixed too many little issues, check the issues closed today. 2014-09-21 01:43:42 -03:00
Juan Linietsky 549d344f0f Fixing Issues...
- #672 (default user:// in $HOME/.godot/app_userdata (linux/osx) and $APPDATA/Godot/app_userdata (Windows)
- #676 (draw both tiles and octants in order from top to bottom, left to right )
- #686 (unicode escape sequences work now)
- #702 (was not a bug, but a test was added to see if bodies went too far away)
2014-09-19 18:39:50 -03:00
Juan Linietsky 01632a824e Bug Fixes
-=-=-=-=-

-Documentation now shows overridable theme values (though this needs to be documented).
-Detect when object transform is flipped and flip normals too.
-TileMap can specify bounce and friction for collision.
-Removed limit of 4 lights per object
-Added is_hovered() to buttons.
2014-06-29 22:41:02 -03:00
Juan Linietsky b324ff7ea5 A bit of everything:
-IMA-ADPCM support for samples, this means that sound effects can be compressed and use 4 timess less RAM.
-New 3D import workflow based on Wavefront OBJ. Import single objects as mesh resources instead of full scenes. Many people prefers to work this way. Just like the rest of the imported resources, these are updated in realtime if modified externally.
-Mesh resources now support naming surfaces. This helps reimporting to identify which user-created materials must be kept.
-Several fixes and improvements to SurfaceTool.
-Anti Aliasing added to WorldEnvironment effects (using FXAA)
-2D Physics bodies (RigidBody, KinematicBody, etc), Raycasts, Tilemap, etc support collision layers. This makes easy to group which objects collide against which.
-2D Trigger shapes can now also trigger collision reporting in other 2D bodies (it used to be in Area2D before)
-Viewport render target textures can now be filtered.
-Few fixes in GDscript make it easier to work with static functions and class members.
-Several and many bugfixes.
2014-05-14 01:22:15 -03:00
Juan Linietsky a4c1fa12a5 heck 2014-04-19 16:46:52 -03:00
Juan Linietsky 0360b454a4 -Fixed viewport stretch bugs
-Fixed input in viewport stretch bugs
-Fixed tilemap pixel overlap (really?)
2014-04-18 11:43:54 -03:00
Juan Linietsky b2ce682f6e -scripts are converted to bytecode on export
-fix bug in doc where touchscreen events were not documented
2014-02-25 09:31:47 -03:00
Juan Linietsky c45daa5604 ho 2014-02-23 09:22:21 -03:00
Juan Linietsky d7d65fa2f2 -improved physics ccd
-html5 exporter works again
-disable repeat on image loader by default
-can change shape offset en tileset, texture offset was broken
2014-02-19 11:57:14 -03:00
Juan Linietsky 0b806ee0fc GODOT IS OPEN SOURCE 2014-02-09 22:10:30 -03:00