godot/core
Dennis Brakhane 1e068d34f4 Add support for Python-like negative indexing
Negative indexing is a useful feature in Python, especially when combined
with array slicing. Array slicing will hopefully be implemented later, but
negative indexing is useful in its own right.

A negative index is indexing from the end of an array,
"array[-1] == array[array.size()-1]", using a negative index
larger/smaller than the length of the array is still an error.

While primarily useful for arrays and strings, support is also added to
"array like" structures like Vector3 and Color. This is done just
to be consistent; vector3[2] is much clearer than vector3[-1], but disallowing
it while allowing it for an array with 3 elements seems confusing.
2016-06-05 20:00:54 +02:00
..
bind DPI Detection support 2016-05-29 13:40:21 -03:00
helper Add math/script expression evaluation in editor (#3620) 2016-05-01 10:33:32 +02:00
io Fix typo in http_client.h 2016-06-03 21:48:20 +02:00
math First version of Profiler 2016-05-21 21:18:16 -03:00
os change invalid characters when get user data dir on Windows & Unix 2016-06-03 03:39:37 +09:00
allocators.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
array.cpp Added Array.find_last() and Array.count() 2016-06-03 23:36:02 +02:00
array.h Added Array.find_last() and Array.count() 2016-06-03 23:36:02 +02:00
balloon_allocator.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
color.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
color.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
command_queue_mt.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
command_queue_mt.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
compressed_translation.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
compressed_translation.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
core_string_names.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
core_string_names.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
dictionary.cpp dictionary has_all 2016-04-04 18:37:43 +02:00
dictionary.h dictionary has_all 2016-04-04 18:37:43 +02:00
dvector.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
dvector.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
error_list.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
error_macros.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
error_macros.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
event_queue.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
event_queue.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
fpstr.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
fpstr.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
func_ref.cpp Update mi.name 2015-09-25 18:51:04 +03:00
func_ref.h -fix bug in cache for atlas import/export 2014-03-13 22:57:24 -03:00
global_constants.cpp Remove duplicate 2016-04-07 21:20:22 +02:00
global_constants.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
globals.cpp First version of Profiler 2016-05-21 21:18:16 -03:00
globals.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
hash_map.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
hashfuncs.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
hq2x.cpp Finalized DynamicFont implementation 2016-05-29 11:37:52 -03:00
hq2x.h Finalized DynamicFont implementation 2016-05-29 11:37:52 -03:00
image_quantize.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
image.cpp Finalized DynamicFont implementation 2016-05-29 11:37:52 -03:00
image.h Finalized DynamicFont implementation 2016-05-29 11:37:52 -03:00
input_map.cpp Make Input Actions config not affect the editor 2016-06-05 01:19:42 -03:00
input_map.h Make Input Actions config not affect the editor 2016-06-05 01:19:42 -03:00
int_types.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
list.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
make_binders.py Remove trailing spaces 2016-04-02 20:26:12 +02:00
map.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
message_queue.cpp -make signals throw an error when target method is not found, fixes #2036 2016-01-04 09:35:21 -03:00
message_queue.h -make signals throw an error when target method is not found, fixes #2036 2016-01-04 09:35:21 -03:00
method_bind.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
method_bind.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
multi_bucket_array.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
object_type_db.cpp New reworked AnimatedSprite! 2016-05-14 23:48:45 -03:00
object_type_db.h New reworked AnimatedSprite! 2016-05-14 23:48:45 -03:00
object.cpp Created a NodeDock with signals and groups 2016-06-04 13:19:08 -03:00
object.h Created a NodeDock with signals and groups 2016-06-04 13:19:08 -03:00
packed_data_container.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
packed_data_container.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
pair.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
pair.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
path_db.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
path_db.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
path_remap.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
path_remap.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
pool_allocator.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
pool_allocator.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
print_string.cpp First version of Profiler 2016-05-21 21:18:16 -03:00
print_string.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
profile_clock.cpp First version of Profiler 2016-05-21 21:18:16 -03:00
profile_clock.h First version of Profiler 2016-05-21 21:18:16 -03:00
ref_ptr.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
ref_ptr.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
reference.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
reference.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
register_core_types.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
register_core_types.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
res_ptr.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
res_ptr.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
resource.cpp Expose ResourceImportMetadata::set_source_md5 for script 2016-06-03 18:45:44 +08:00
resource.h Changed import workflow 2016-05-27 14:19:11 -03:00
rid.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
rid.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
ring_buffer.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
safe_refcount.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
safe_refcount.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
script_debugger_debugger.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
script_debugger_local.cpp First version of Profiler 2016-05-21 21:18:16 -03:00
script_debugger_local.h First version of Profiler 2016-05-21 21:18:16 -03:00
script_debugger_remote.cpp Ability to reload scripts on running game 2016-06-01 20:31:42 -03:00
script_debugger_remote.h Ability to reload scripts on running game 2016-06-01 20:31:42 -03:00
script_language.cpp Ability to reload scripts on running game 2016-06-01 20:31:42 -03:00
script_language.h Ability to reload scripts on running game 2016-06-01 20:31:42 -03:00
SCsub Cosmetic fixes to SCons buildsystem 2015-11-01 20:53:26 +01:00
self_list.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
set.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
simple_type.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
sort.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
string_db.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
string_db.h remove trailing whitespace 2016-03-09 00:00:52 +01:00
translation.cpp Added translation support to Godot 2016-05-27 19:58:28 -03:00
translation.h Modified editor strings to be translatable in the future 2016-05-03 22:25:37 -03:00
typedefs.h Add support for patch versions (2.0.x) 2016-03-22 18:41:09 +01:00
ucaps.h Misc Fixes 2014-06-27 23:21:45 -03:00
undo_redo.cpp remove trailing whitespace 2016-03-09 00:00:52 +01:00
undo_redo.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
ustring.cpp remove trailing whitespace 2016-05-21 15:29:25 +02:00
ustring.h -Added configuration warning system for nodes 2016-05-17 18:28:44 -03:00
variant_call_bind.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
variant_call.cpp Added Array.find_last() and Array.count() 2016-06-03 23:36:02 +02:00
variant_construct_string.cpp begin new serialization framework 2015-02-15 01:21:26 -03:00
variant_op.cpp Add support for Python-like negative indexing 2016-06-05 20:00:54 +02:00
variant_parser.cpp -customizable shortcuts in editor 2016-06-04 21:31:47 -03:00
variant_parser.h -Use simpler methods for parsing simple tags, fixes #3274 2016-01-08 19:03:17 -03:00
variant.cpp -Added configuration warning system for nodes 2016-05-17 18:28:44 -03:00
variant.h -Added configuration warning system for nodes 2016-05-17 18:28:44 -03:00
vector.h Use non-templated nearest_power_of_2 2016-04-11 08:49:44 +02:00
vmap.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
vmap.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
vset.cpp Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
vset.h Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00