Commit graph

455 commits

Author SHA1 Message Date
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
99ceddd11e Editor settings categories are now tidy and beautiful! 2017-01-05 19:41:36 -03:00
Juan Linietsky
0f7af4ea51 -Changed most project settings in the engine, so they have major and minor categories.
-Changed SectionedPropertyEditor to support this
-Renamed Globals singleton to GlobalConfig, makes more sense.
-Changed the logic behind persisten global settings, instead of the persist checkbox, a revert button is now available
2017-01-05 09:16:00 -03:00
Juan Linietsky
9e477babb3 -GDScript support for accessing properties directly
-Added code lookup and code completion support for properties too
2017-01-04 17:37:45 -03:00
Juan Linietsky
76c2e8583e Merge branch 'master' of https://github.com/godotengine/godot 2017-01-04 01:17:41 -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
Ferenc Arn
bd7ba0b664 Use right handed coordinate system for rotation matrices and quaternions. Also fixes Euler angles (XYZ convention, which is used as default by Blender).
Furthermore, functions which expect a rotation matrix will now give an error simply, rather than trying to orthonormalize such matrices. The documentation for such functions has be updated accordingly.

This commit breaks code using 3D rotations, and is a part of the breaking changes in 2.1 -> 3.0 transition. The code affected within Godot code base is fixed in this commit.
2017-01-03 17:41:04 -06: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
dcc4ee21c1 Revert expression reduction from #7390
Fixes #7412.
2017-01-02 20:01:27 +01:00
Rémi Verschelde
caddbbe174 Merge pull request #7390 from bojidar-bg/gdscript-assign-error
Disallow assignment to constants and expressions
2017-01-02 15:54:43 +01:00
Rémi Verschelde
0b2771bd65 Merge pull request #7271 from Faless/ipv6_cleanup
Fixes and improvementes for IPv6 implementation.
2017-01-02 15:51:45 +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
Bojidar Marinov
0b077162a3
Disallow assignment to constants and expressions
Fixes #6221, fixes #6824
2016-12-29 12:31:19 +02:00
Bojidar Marinov
23381a530b
Add named colors to GDScript/Visual Script/core.
Names and values taken from https://en.wikipedia.org/wiki/X11_color_names
2016-12-17 11:14:53 +02:00
Fabio Alessandrelli
1aff508dd9 IP_Address now handle IPv4 and IPv6 transparently
IP_Address changes:
- Converts to and from String transparently while handling IPv4 as IPv6
  mapped (::ffff:[IP]) address internally.
- Completely remove AddrType enum.
- Setting/Getting of ip array is now only possible through dedicated functions
  (ie. set_ipv4, get_ipv4, set_ipv6, get_ipv6)
- Add function to know if the address is a valid IPv4 (for IP implementation and enet)
2016-12-09 18:24:59 +01:00
Błażej Szczygieł
86a2a42303 WebM: Fix compilation on Linux/X11 ARM platform 2016-12-08 01:38:14 +01:00
Rémi Verschelde
56195873b6 Remove incomplete Inverse Kinematic module
The plan is to implement IK properly in the core engine for version 3.1,
together with ragdolls in the Skeleton node to let them reuse the same
limits and constraints.

Therefore we remove this module as part of the API breakage in 3.0, so
that we are not limited by staying compatible with it in 3.1.
2016-12-04 11:53:59 +01:00
Błażej Szczygieł
a7f76e1b13 WebM: Fix iPhone x86 compilation 2016-11-16 14:06:02 +01:00
George Marques
fa327f886e
Add "Positive" operator to VisualScript 2016-11-11 23:46:32 -02:00
Rémi Verschelde
7751a933a9 Merge pull request #6802 from henriquelalves/master
Added small modification on gdscript parser to allow users insert '+' before variables
2016-11-11 10:55:26 +01:00
Rémi Verschelde
57cc953cff Merge pull request #7028 from bojidar-bg/gdscript-multiline-comment-fixup
Make GDScript parser ignore floating strings in class definition
2016-11-06 12:07:02 +01:00
Rémi Verschelde
be4eff1d8b Merge pull request #7019 from vnen/rename-winrt-uwp
Rename WinRT platform to UWP
2016-11-06 12:03:10 +01:00
Rémi Verschelde
611a94e3a6 opus: Move public headers to match system install 2016-11-03 21:18:23 +01:00
George Marques
411faaa6f4
Rename remaining WinRT references to UWP 2016-11-03 14:51:08 -02:00
George Marques
fb5a73a39f
Rename WinRT files to UWP 2016-11-03 14:51:08 -02:00
Bojidar Marinov
074bcb2a7b
Make GDScript parser ignore floating strings in class definition
Fixes #1320
2016-11-03 12:26:38 +02:00
Rémi Verschelde
cc95d4448c scons: Reorder options for clarity
Also prefix all thirdparty-related toggles with `builtin`.
2016-11-03 07:45:08 +01:00
Pedro J. Estébanez
f935d7ab0e Make regex compilable with RTTI disabled 2016-11-01 19:16:46 +01:00
Rémi Verschelde
f34151ff0f style: Various other PEP8 fixes in Python files
Done with `autopep8 --select=E7`, fixes:

- E701 - Put colon-separated compound statement on separate lines.
- E702 - Put semicolon-separated compound statement on separate lines.
- E703 - Put semicolon-separated compound statement on separate lines.
- E711 - Fix comparison with None.
- E712 - Fix (trivial case of) comparison with boolean.
- E713 - Fix (trivial case of) non-membership check.
- E721 - Fix various deprecated code (via lib2to3).
2016-11-01 00:35:16 +01:00
Rémi Verschelde
817dd7ccbb style: Fix PEP8 blank lines issues in Python files
Done with `autopep8 --select=E3,W3`, fixes:

- E301 - Add missing blank line.
- E302 - Add missing 2 blank lines.
- E303 - Remove extra blank lines.
- E304 - Remove blank line following function decorator.
- E309 - Add missing blank line.
- W391 - Remove trailing blank lines.
2016-11-01 00:35:16 +01:00
Rémi Verschelde
d4c17700aa style: Fix PEP8 whitespace issues in Python files
Done with `autopep8 --select=E2,W2`, fixes:

- E201 - Remove extraneous whitespace.
- E202 - Remove extraneous whitespace.
- E203 - Remove extraneous whitespace.
- E211 - Remove extraneous whitespace.
- E221 - Fix extraneous whitespace around keywords.
- E222 - Fix extraneous whitespace around keywords.
- E223 - Fix extraneous whitespace around keywords.
- E224 - Remove extraneous whitespace around operator.
- E225 - Fix missing whitespace around operator.
- E226 - Fix missing whitespace around operator.
- E227 - Fix missing whitespace around operator.
- E228 - Fix missing whitespace around operator.
- E231 - Add missing whitespace.
- E231 - Fix various deprecated code (via lib2to3).
- E241 - Fix extraneous whitespace around keywords.
- E242 - Remove extraneous whitespace around operator.
- E251 - Remove whitespace around parameter '=' sign.
- E261 - Fix spacing after comment hash.
- E262 - Fix spacing after comment hash.
- E265 - Format block comments.
- E271 - Fix extraneous whitespace around keywords.
- E272 - Fix extraneous whitespace around keywords.
- E273 - Fix extraneous whitespace around keywords.
- E274 - Fix extraneous whitespace around keywords.
- W291 - Remove trailing whitespace.
- W293 - Remove trailing whitespace.
2016-11-01 00:35:16 +01:00
Rémi Verschelde
97c8508f5e style: Start applying PEP8 to Python files, indentation issues
Done with `autopep8 --select=E1`, fixes:

- E101 - Reindent all lines.
- E112 - Fix under-indented comments.
- E113 - Fix over-indented comments.
- E115 - Fix under-indented comments.
- E116 - Fix over-indented comments.
- E121 - Fix a badly indented line.
- E122 - Fix a badly indented line.
- E123 - Fix a badly indented line.
- E124 - Fix a badly indented line.
- E125 - Fix indentation undistinguish from the next logical line.
- E126 - Fix a badly indented line.
- E127 - Fix a badly indented line.
- E128 - Fix a badly indented line.
- E129 - Fix a badly indented line.
2016-11-01 00:33:51 +01:00
Rémi Verschelde
c6c13eb8fc Merge pull request #6490 from zaps166/webm-pr
Add WebM support
2016-10-30 18:12:00 +01:00
Rémi Verschelde
f1b89f1778 Merge pull request #6887 from leezh/regex_module
RegEx re-implemented as a module
2016-10-30 12:02:44 +01:00
Juan Linietsky
53d8f2b1ec PBR more or less working, still working on bringing gizmos back 2016-10-27 11:50:26 -03:00
Zher Huei Lee
9a5ce099f1 Changed RegEx to inherit Resource 2016-10-27 10:27:40 +01:00
Zher Huei Lee
c3b4686082 Added global sub and bounds checking to RegEx 2016-10-27 10:27:40 +01:00
Zher Huei Lee
439d439321 RegEx re-implemented as a module
Re-wrote nrex as a module using godot-specific parts and new
features:

 * Added string substitutions.
 * Named groups are now supported.
 * Removed use of mutable variables in RegEx. RegExMatch is returned
   instead.
2016-10-27 10:27:40 +01:00
yg2f
f7773d499d fix bug introduced by #6501
( @Akien : this PR is for current HEAD only, not to be cherry-picked for 2.1.1 )

this is manual revertion of #6501 which introduced a bug that prevented
scons from detecting Mingw under Windows when MSVC was installed.
(thanks to @vnen for finding this)

AND
it fixes the actual bug that prevented scons from detecting MSVC standalone
compiler ( a confusions between ``VSINSTALLDIR`` and ``VCINSTALLDIR`` )

The freeware Standalone MSVC C++ Build Tools are available here :
http://landinghub.visualstudio.com/visual-cpp-build-tools
2016-10-26 19:29:30 +02:00
Rémi Verschelde
c67e3a485d Merge pull request #6925 from godotengine/ipv6
Adding IPv6 support
2016-10-26 14:32:51 +02:00
Bojidar Marinov
713f1451b9
Allow typing hints for Array class (in GDScript and Inspector/ArrayPropertyEdit)
Closes #3586, by implementing the `1b` variation mentioned there.
2016-10-26 14:38:41 +03:00
Błażej Szczygieł
d710b265f8 Add WebM module
Use already existing libraries: libvorbis and libopus. Also use newly
added libraries: libvpx, libwebm, libsimplewebm.
2016-10-23 02:46:06 +02:00
Henrique L. Alves
6a4b4c7db4 Added small modification on parser for '+' 2016-10-22 14:26:48 -02:00
Rémi Verschelde
cf3ba3379f Merge pull request #6564 from SuperUserNameMan/gdscript_opcode_line_opcode_breakpoint
fixes #6487, GDscript compiler ignores OPCODE_LINE and OPCODE_BREAKPOINT in Release mode
2016-10-22 12:45:46 +02:00
Ariel Manzur
887a897c02 adding ipv6 2016-10-18 18:53:18 -03:00
Rémi Verschelde
e96c49f849 Merge pull request #6850 from akien-mga/pr-scsub-shebang
SCsub: Add python shebang as a hint for syntax highlighting
2016-10-17 20:13:18 +02:00
Rémi Verschelde
fc8ccd5b8c SCsub: Add python shebang as a hint for syntax highlighting
Also switch existing shebangs to "better" /usr/bin/env python.
2016-10-17 20:10:46 +02:00
Rémi Verschelde
31e0e95362 Merge pull request #6692 from bojidar-bg/add-char-to-gd-vs-script
Add `String char(int ascii)` function to GDScript and Visual Script
2016-10-17 09:40:39 +02:00
Błażej Szczygieł
4ffa8f224d Theora: Don't compile unnecessary files, rename "x86_opt_*" 2016-10-16 22:31:27 +02:00
Rémi Verschelde
edbc0c0d0b freetype: Make it a module and split thirdparty library
Comment out the weird workaround for building on Windows at it might
not be needed anymore. Testing needed to confirm.
2016-10-15 18:10:17 +02:00
Rémi Verschelde
e6dc51a0f7 chibi: Move to a module 2016-10-15 12:20:53 +02:00
Rémi Verschelde
8311a78df5 squish: Move to a module and split thirdparty lib 2016-10-15 12:01:28 +02:00
Rémi Verschelde
5c12c9e69b mpc: Move to a module and split thirdparty libmpcdec 2016-10-15 11:50:42 +02:00
Rémi Verschelde
cfcc8a20e8 theora: Move to a module and split thirdparty lib
Same rationale as the previous commits.
2016-10-15 11:50:41 +02:00
Rémi Verschelde
da09c6131b modules: Clone env in each module
This allows to pass include paths and flags only to a given thirdparty
library, thus preventing conflicts between their files (e.g. between
opus and openssl which both provide modes.h.

This also has the nice effect of making the compilation command smaller
for each module as it no longer related to all other modules, only the
final linking brings them together.

This however requires adding manually the ogg include path in opus
and vorbis when building against the builtin ogg, since it is no longer
in the global env.

Also simplified template 'thirdparty_<module>_sources' to
'thirdparty_sources'.

"Core" modules like cscript, gdscript, gridmap, ik and virtual_script
still use the main env_modules, but it could be changed if need be.
2016-10-15 11:50:41 +02:00
Rémi Verschelde
422196759f openssl: Move to a module and split thirdparty lib
Same rationale as the previous commits.
2016-10-15 11:50:41 +02:00
Rémi Verschelde
d9a291f641 ogg/vorbis/opus: Make them modules and unbundle thirdparty libs
Took the opportunity to undo the Godot changed made to the
opus source. The opus module should eventually be built in its
own environment to avoid polluting others with too many include
dirs and defines.

TODO: Fix the platform/ stuff for opus.
2016-10-15 11:50:40 +02:00
Rémi Verschelde
ee3cf211c6 webp: Make it a module and unbundle libwebp thirdparty files
Note that there are two Godot-specific changes made to libwebp
for the javascript/HTML5 platform. They are documented in the
README.md.
2016-10-15 11:50:39 +02:00
Rémi Verschelde
b1e8889d96 dds/etc1/pbm/pvr: Make those modules and split thirdparty files
They are not particularly packaged in Linux distros so we do not
facilitate unbundling via SCons. There could be done if/when there
is interest.

Also s/pnm/pbm/, long-lived typo :)
2016-10-15 11:50:39 +02:00
Rémi Verschelde
c31ad71f10 enet: Split enet thirdparty files and allow unbundling
Building against shared libraries only implemented for Linux X11 so far.
TODO: Document Godot's modifications of upstream enet.
2016-10-15 11:50:39 +02:00
Rémi Verschelde
16ba665db6 jpg: Make it a module and split jpgd thirdparty files
Similar rationale as in previous commit.
2016-10-15 11:50:39 +02:00
Rémi Verschelde
5e373c2a69 Merge pull request #6813 from Faless/fix_6801_bis
Re-Allow absolute paths, make them behave correctly
2016-10-14 18:14:05 +02:00
Pedro J. Estébanez
1b3dcac281 Adapt overlooked instances of zero-based column numbers 2016-10-13 12:57:14 +02:00
Fabio Alessandrelli
11349a786b Revert "Add warning when (pre)loading paths with leading / (#4280 - #3106)"
Also closes: #6801

This reverts commit e59820ac94.
2016-10-13 11:49:22 +02:00
Rémi Verschelde
f3106cddb3 Merge pull request #6775 from RandomShaper/one-based-col-numbers
Make text column numbers one-based
2016-10-11 09:09:49 +02:00
Rémi Verschelde
3df507d696 Merge pull request #6694 from bojidar-bg/gdscript-newline-functions
Allow for linebreaks in function calls and definitions and yeild/signal.
2016-10-11 09:06:14 +02:00
Pedro J. Estébanez
2f80965845 Make text column numbers one-based
Make one-based the column number on the code editor

Make one-based the column number for GDScript error messages

Make one-based the column number for shader code error messages
2016-10-10 11:56:45 +02:00
Rémi Verschelde
2fb5a00305 i18n: Fix string that broke msgmerge 2016-10-09 18:11:55 +02:00
Rémi Verschelde
20773733ca Merge pull request #6741 from Faless/network_no_spoof
Better checks for Multiplayer API, prevent packet source spoofing.
2016-10-09 14:52:35 +02:00
Rémi Verschelde
5f7f73c6ae Merge pull request #6730 from Faless/fix_export_crash_error
Throw an error when exporting a resource class
2016-10-09 14:44:10 +02:00
Rémi Verschelde
fda72354c9 Merge pull request #6702 from Faless/load_error_leading_slash
Add error when (pre)loading paths with leading / (#4280 - #3106)
2016-10-09 14:16:47 +02:00
Rémi Verschelde
c16c621c97 Merge pull request #6657 from Faless/multi_channel_rpc
Use 2 different ENet channels for reliable/unreliable packets
2016-10-09 14:05:40 +02:00
Fabio Alessandrelli
b80d72e662 Better checks for Multiplayer API, prevent packet source spoofing.
Fixes the following problems.

A malicious client was able to contact another peer faking its identity
(even looking like he was the server).

A malicious client was able to force other client disconnections by sending
bogus system packets to the server.
2016-10-07 16:48:55 +02:00
Fabio Alessandrelli
ee7df2c89a Throw an error when exporting a resource class
"export var tex = Texture"
will now throw an error to avoid crashing the editor:
"Exported constant not a type or resource"

Fixes #6719 . Closes #6729
2016-10-06 20:24:32 +02:00
Fabio Alessandrelli
e59820ac94 Add warning when (pre)loading paths with leading / (#4280 - #3106) 2016-10-04 16:07:45 +02: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
Bojidar Marinov
16a0e4b235
Allow for linebreaks in function calls and definitions and yeild/signal.
(Plus maybe a few other things)
2016-10-03 21:40:18 +03:00
Bojidar Marinov
513c0265c4
Add String char(int ascii) function to GDScript and Visual Script
Just hope it doesn't crashes with that much pointer math... 😄
2016-10-03 19:17:54 +03:00
Fabio Alessandrelli
c1dc71baee Fix possible buffer overflow in NetworkedMultiplayerENet
NetworkedMultiplayerENet::get_packet was reporting the wrong size for the packet buffer exposing a potential buffer overflow in case of malformed/malicious packets
2016-09-30 03:51:46 +02:00
Fabio Alessandrelli
8b9e5453a5 Use 2 different ENet channels for reliable/unreliable packets
This avoids stalling other sequenced but unreliable packets
(i.e. UNRELIABLE_ORDERED) when sending RELIABLE packets.
2016-09-30 02:48:25 +02:00
yg2f
217e09c79d Fixes #6487, GDscript compiler ignores OPCODE_LINE and OPCODE_BREAKPOINT in Release mode
When godot is in release mode, GDscript compiler does not generate
bytecodes for OPCODE_LINE and OPCODE_BREAKPOINT anymore.

This optimizes GDscript execution speed when the script contains a lot
of comments in blocs executed in loops.

Fixes #6487
2016-09-20 13:54:17 +02:00
George Marques
5ef64aae58
Fix build for templates 2016-09-12 22:40:46 -03:00
Juan Linietsky
37f1e86108 Do ctrl-click on any code identifier to go to definiton or help page. 2016-09-12 10:53:31 -03:00
Juan Linietsky
78f92dbcb9 Merge pull request #6281 from bojidar-bg/gdscript-ternary-operator
Ternary operator in GDScript (a if x else b)
2016-09-11 18:40:46 -03:00
Juan Linietsky
b83350f4b2 Added constants from types in code completion, somehow this was never added.
Stuff like Label.ALIGN_CENTER or Mesh.PRIMITIVE_TRIANGLES did not complete..
2016-09-11 12:20:28 -03:00
Juan Linietsky
1bf684cea2 -Cleaned up find/replace bar for replace (made selection only default if selection exists), also made buttons look like buttons
-Fixed a bug related to theme propagation, may be able to solve #6443, #6302 and others. Please test.
2016-09-11 10:05:46 -03:00
Juan Linietsky
fc61eb37ce Merge pull request #5920 from 29jm/fix-warnings
Fix some more warnings
2016-09-10 12:21:02 -03:00
Juan Linietsky
e6dc95e499 Merge pull request #6292 from bojidar-bg/gdscript-add-enums
Adds enums to GDScript
2016-09-10 11:59:51 -03:00
Juan Linietsky
7a27d5d9e7 Merge pull request #6363 from vnen/winrt
Fix the support for WinRT/UWP
2016-09-10 11:47:42 -03:00
Rémi Verschelde
8af99ef1c6 Merge pull request #6436 from djrm/icons
Tweaked some icons, including xform one
2016-09-09 07:46:42 +02:00
Daniel J. Ramirez
56f9adac3b Tweaked some icons, including xform one 2016-09-08 19:22:30 -05:00
Juan Linietsky
828e1c092f Renamed the bind_native functions to bind_vararg, should make it show the documentation more clearly and also make it easier to bind to C# 2016-09-07 19:39:57 -03:00
Juan Linietsky
405f6af79c -Added diectly editable expressions on node to VSEditor, closes #6392
-Added ability for LineEdit to expand to fit text
2016-09-06 20:34:24 -03:00
Juan Linietsky
23ababdcd5 Changed Vector3.snap from fmod to stepify, which makes more sense, fixes #6399 2016-09-06 19:14:47 -03:00
ISylvox
4aab004674 Should Fix Compiling Export Templates
- Works on Windows, Linux x11, Linux Server, Android, HTML5
- Not tested on Mac/iOS (don't have Apple's devices yet)
2016-09-06 04:50:30 +07:00
Răzvan Cosmin Rădulescu
00e743b76a Clean up GDScript template 2016-09-05 19:58:04 +02:00
Juan Linietsky
24bd472a4a Removed script_variables/ prefix to VS properties, made them easier to access from GD and Expression nodes 2016-09-04 10:38:41 -03:00
Juan Linietsky
9167cd45bb Added expression nodes to visual script, please test. 2016-09-04 10:34:40 -03:00
George Marques
5f5db46e8d
Patch thirdy-party libraries to build for WinRT
- Patch enet code.
- Patch OpenSSL code and add shims for unavailable API.
- Add extra definition header for Freetype.
2016-09-03 19:46:26 -03:00