summaryrefslogtreecommitdiff
path: root/core/script_language.cpp
AgeCommit message (Collapse)Author
2019-05-03Allow overriding how scripted objects are converted to stringsLeonard Meagher
solves #26796 - ADD `String to_string()` method to Object which can be overriden by `String _to_string()` in scripts - ADD `String to_string(r_valid)` method to ScriptInstance to allow langauges to control how scripted objects are converted to strings - IMPLEMENT to_string for GDScriptInstance, VisualScriptInstance, and NativeScriptInstance - ADD Documentation about `Object.to_string` and `Object._to_string` - Changed `Variant::operator String` to use `obj->to_string()`
2019-03-09Allow class_name scripts to have nested inheritanceGeorge Marques
2019-03-05Fix enums coming from other classes without preloadBojidar Marinov
Fix #19704, fix #26001
2019-02-20Add -Wshadow=local to warnings and fix reported issues.marxin
Fixes #25316.
2019-02-09Use script instance binding for objects constructed from C#Ignacio Etcheverry
Only possible if the object class is a "native type". If the object class is a user class (that derives a "native type") then a script is needed. Since CSharpLanguage does cleanup of script instance bindings when finished, cases like #25621 will no longer cause problems. Fixed ~Object() trying to free script instance bindings after the language has already been removed, which would result in a NULL dereference.
2019-01-10Merge pull request #24877 from neikeq/issue-24280Rémi Verschelde
Fix properties being lost when reloading placeholder GDScript instance
2019-01-10Fix properties being lost when reloading placeholder GDScript instanceIgnacio Etcheverry
During reloading in `GDScriptLanguage::reload_all_scripts` a placeholder instance that must remain so is replaced with a new placeholder instance. The state is then restored by calling `ScriptInstance::set` for each property. This does not work if the script is missing the properties due to build/parse failing. The fix for such cases is to call `placeholder_set_fallback` instead of `set` on the script instance. I took this chance to move the `build_failed` flag from `PlaceHolderScriptInstance` to `Script`. That improves the code a lot. I also renamed it to `placeholder_fallback_enabled` which is a much better name (`build_failed` could lead to misunderstandings).
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-11-10Fix GDScript placeholder fallbackIgnacio Etcheverry
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
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-07-29Fix case where exported properties value is lostIgnacio Etcheverry
Fixes exported property modified values lost when creating a placeholder script instance with a failed script compilation - Object set/get will call PlaceHolderScriptInstance's new fallback set/get methods as a last resort. This way, placeholder script instances can keep the values for storage or until the script is compiled successfuly. - Script::can_instance() will only return true if a real script instance can be created. Otherwise, in the case of placeholder script instances, it will return false. - Object::set_script(script) is now in charge of requesting the creation of placeholder script instances. It's no longer Script::instance_create(owner)'s duty. - PlaceHolderScriptInstance has a new method set_build_failed(bool) to determine whether it should call into its script methods or not. - Fixed a few problems during reloading of C# scripts.
2018-07-15Global class names (and GDScript support for it)Juan Linietsky
2018-06-30-Fixes to OBJ importer, option to disable optimizationJuan Linietsky
-Fixes to script language, PlaceHolder can now get and check methods
2018-05-28Revert "Make the performance reporting update frequency customizable"Juan Linietsky
2018-05-18Make the performance reporting update frequency customizableHugo Locurcio
The default update frequency has been changed from 1000ms to 250ms.
2018-01-12Bind many more properties to scriptsBojidar Marinov
Notable potentially breaking changes: - PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL - Some properties were renamed, and sometimes even shadowed by new ones - New getter methods (some virtual) were added
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
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-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-12-19Add Script.get_base_script/instance_base_type APIWill Nations
2017-12-07Style: Apply new clang-format 5.0 style to all filesRémi Verschelde
2017-10-25Removes Script::get_node_type()Jerome67000
used before GDScript, with squirrel apparently
2017-09-08Fix unused variable warningsHein-Pieter van Braam
The forth in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-01Has_method is already provided by ObjectHein-Pieter van Braam
c812c17633 introduces some extra gdscript bindings for signal discovery and adds a binding for has_method() to Script objects. This method is already provided by the ancestor Object. This fixes the startup message: ERROR: bind_methodfi: Class Script already has a method has_method At: core/class_db.cpp:1178.
2017-08-29Made some methods to check method/signal availability in GDScript, closes #9800Juan Linietsky
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
2017-08-08Moved member variables from constructor to initialization listWilson E. Alvarez
2017-08-06keep default exported script values unless overriden, closes #8127Juan Linietsky
2017-07-22Script languges are uninitialized properly now.Juan Linietsky
2017-07-16Added a simpler/faster way to bind script languages instance wrappers to GodotJuan Linietsky
2017-04-08Add "Godot Engine contributors" copyright lineRémi Verschelde
2017-03-05A Whole New World (clang-format edition)Rémi Verschelde
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-02-13Rename the _MD macro to D_METHODHein-Pieter van Braam
This new name also makes its purpose a little clearer This is a step towards fixing #56
2017-01-02ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to ↵Juan Linietsky
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-01Welcome in 2017, dear changelog reader!Rémi Verschelde
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!
2016-08-25More visual script workJuan Linietsky
-Block switches to 2d/3d editor if editing visual script -Added cast node in flow control -Added ability to do RPC in visual script -Comment nodes -Fix bug with inverted cable in connecting backwards -Copy and paste nodes, including from different scripts
2016-06-26-Fix crashes with thread_exit()Juan Linietsky
-Added draft of C script API (still disabled and unused)
2016-06-25Added function to notify ScriptLanguage when a thread is created/freed, ↵Juan Linietsky
allows scripts to allocate a stack there via TLS
2016-06-13Changed reload logic to auto-hard-reload scripts on save. It's simpler to ↵Juan Linietsky
use and also fixes #4756
2016-06-01Ability to reload scripts on running gameJuan Linietsky
2016-03-09remove trailing whitespaceHubert Jarosz
2016-01-23-Some changes to how scenes and scripts are overriden in scene instance and ↵Juan Linietsky
inheritance -Fixes #3127 and also properly fixes #2958
2016-01-01Update copyright to 2016 in headersGeorge Marques
2015-12-05-Display on animation editor which keys are invalid and which tracks are ↵Juan Linietsky
unresolved -Added a tool to clean up unresolved tracks and unused keys
2015-06-26improved get_node(), connect(), etc code completion.Juan Linietsky
-properly completes text arguments -includes the "/root" autoloads
2015-04-18Updated copyright year in all headersJuan Linietsky
2014-11-13UDP FixesJuan Linietsky
-=-=-=-=- Curse the day I decided to port UDP code, as it ended up being two nights of work. At least It's done now (I hope). -Fixed UDP Support, API seems stable -Added UDP Chat demo (chat that can lose your packets, heh) -Added helpers to areas and bodies to get list of collided bodies and contained bodies. -Sped up screen/viewport capture code. -Added code to save an image as PNG -Small fix so scripts register their singletons after modules did.
2014-09-22-variables with export in script are now IMMEDIATELY AND ALWAYS visible in ↵Juan Linietsky
properties (#718) -WorldEnvironment cleanup issues fixed (#563) -Text Editor improvement to shift-mouse selection (#648) -(Hopefully) fixed rare (but horrible) indexing bug in GDScript compiler (#652) -Some changes to PhysicsBody API, renamed property "active" to "sleeping", which makes more sense -Added add_collision_exception() API in PhysicsBody (more accessible) -ability to select and copy in the output messages panel
2014-06-11Light Baker!Juan Linietsky
-=-=-=-=-=-= -Support for lightmap baker, have fun figuring out how it works before tutorial is published.
2014-02-09GODOT IS OPEN SOURCEJuan Linietsky