Commit graph

152 commits

Author SHA1 Message Date
Saracen
fcef45006e SpatialEditorGizmo add_mesh bindings fix 2019-09-25 09:30:25 +01:00
Hugo Locurcio
0feff49375
Improve the AudioStreamPlayer3D gizmo
This adds more lines to the emission angle cone to give a better
feel of depth in the 3D world.
2019-09-24 22:41:02 +02:00
Ignacio Etcheverry
97143e60c1 Fix wrong defval in EditorSpatialGizmo.add_mesh method bind
The type of the parameter 'skeleton' was changed from 'RID' to 'SkinReference', yet the default value remained 'RID()'.
2019-09-24 15:12:27 +02:00
Rémi Verschelde
159470df08
Merge pull request #32275 from godotengine/skin_support
Added skin support and simplified APIs to override bone position + glTF 2.0 import fixes
2019-09-23 15:02:15 +02:00
Juan Linietsky
d81ddaf33e Added skin support and simplified APIs to override bone position. 2019-09-18 19:46:32 -03:00
Hugo Locurcio
bfa246cda8
Improve the 3D light gizmos
OmniLight and SpotLight gizmos were tweaked to better represent
their depth in the 3D world.

The default light gizmo color was changed to match the gizmo
icon color closely.
2019-09-17 06:01:21 +02:00
Hugo Locurcio
c2bcc3f700
Use the same axis colors consistently in the 2D and 3D editors 2019-09-13 14:08:41 +02:00
Hugo Locurcio
a350fd4a57
Draw 3D collision shape/raycast gizmos in grayscale when disabled
This makes them easier to distinguish from their enabled counterparts,
as is already done in the 2D editor.
2019-08-21 15:32:51 +02:00
Cameron Reikes
345fcb96a2 Add particles icon to CPUParticles 2019-08-08 16:28:01 -07:00
Hugo Locurcio
0ce59bf6dd
Implement snapping for most 3D gizmos 2019-07-03 12:26:01 +02:00
qarmin
3c154eb93b Remove unnecessary code and add some error explanations 2019-07-01 12:59:42 +02:00
qarmin
4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
Rémi Verschelde
5c66771e3e
Merge pull request #29283 from qarmin/fix_some_always_same_values
Remove always true/false values
2019-06-20 21:10:10 +02:00
qarmin
072e40368e Fix always true/false values 2019-06-20 16:59:48 +02:00
JFonS
6f31143996 Add HeightMapShape mesh in CollisionShape gizmo 2019-06-03 11:59:55 +02:00
Guilherme Felipe
70ead9455f [EditorSpatialGizmo] Fix error in intersect_ray 2019-05-08 16:51:23 -03:00
Hein-Pieter van Braam
5d33f241f0
Merge pull request #26064 from JFonS/add_frustum_camera_mode
Add FRUSTUM camera mode, allowing tilted frustums
2019-04-23 06:20:13 +03:00
qarmin
856a8226a5 Small fixes, mostly dupicated code 2019-04-08 11:03:37 +02:00
JFonS
2658e5d03d Add priority to gizmos and fix small issues
User defined gizmos will haave higher preference than editor gizmos by
default. Also fixed some inconsistencies in the gizmos menu when using
custom gizmos.
2019-03-12 00:30:50 +01:00
Rémi Verschelde
88a36e20cb doc: Sync classref with current source 2019-02-25 11:22:41 +01:00
Ignacio Etcheverry
448d3904a1 Fix default value of EditorSpatialGizmo.add_mesh method bind 2019-02-24 01:15:16 +01:00
Juan Linietsky
bfa9be85d3 Remove copy and use instance material override in gizmos, fixes #23783 2019-02-23 20:20:54 -03:00
marxin
8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
Michael Alexsander Silva Dias
44c37aabf1 Fix navigation editor color materials not having unique names 2019-02-20 11:34:46 -03:00
JFonS
54b95b6c5a Add FRUSTUM camera mode, allowing tilted frustums
This new camera mode makes it easy to create tilted frustums for mirror
or portal effects.

This work was kindly sponsored by IMVU.
2019-02-19 17:48:08 +01:00
Chaosus
43a3db4c00 Fix undo for Particles 3D gizmo 2019-02-08 14:26:52 +03:00
Rémi Verschelde
58de384978
Merge pull request #25540 from JFonS/remove_gizmo_errors
Fix gizmo errors on "Align with view"
2019-02-01 14:12:37 +01:00
JFonS
2232d3336e Fix gizmo errors on "Align with view" 2019-02-01 12:16:05 +01:00
JFonS
e90fb5b0ab Minor fixes and documentation for Spatial Gizmos 2019-01-27 18:40:01 +01:00
Rémi Verschelde
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Dualtagh Murray
b902a2f2a7 Fixing warnings generated by MSVC
Fixes #22684.
2018-10-19 11:45:24 +02:00
Rémi Verschelde
3e9740ac93 Fix more "may be used initialized" warnings from GCC 7
Fixes the following GCC 7 warnings:
```
core/cowdata.h:269:47: warning: 'alloc_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
core/error_macros.h:163:26: warning: 'nearest_point' may be used uninitialized in this function [-Wmaybe-uninitialized]
core/image.cpp:1579:5: warning: 'colormap_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
core/image.cpp:1582:12: warning: 'size_height' may be used uninitialized in this function [-Wmaybe-uninitialized]
core/image.cpp:1590:23: warning: 'size_width' may be used uninitialized in this function [-Wmaybe-uninitialized]
core/image.cpp:1599:29: warning: 'pixel_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
core/math/face3.cpp:207:15: warning: 'tri_max' may be used uninitialized in this function [-Wmaybe-uninitialized]
core/math/face3.cpp:209:15: warning: 'tri_min' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/gles3/rasterizer_scene_gles3.cpp:665:22: warning: 'best_used_frame' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/gles3/rasterizer_storage_gles3.cpp:865:27: warning: 'blit_target' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/gles3/rasterizer_storage_gles3.cpp:980:29: warning: 'blit_target' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/gles3/shader_gles3.h:122:9: warning: '<anonymous>.ShaderGLES3::Version::frag_id' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/gles3/shader_gles3.h:122:9: warning: '<anonymous>.ShaderGLES3::Version::id' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/gles3/shader_gles3.h:122:9: warning: '<anonymous>.ShaderGLES3::Version::vert_id' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/plugins/script_editor_plugin.cpp:1980:31: warning: 'se' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/scene_tree_dock.cpp:840:30: warning: 'new_node' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/spatial_editor_gizmos.cpp:4259:9: warning: 'a1' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/spatial_editor_gizmos.cpp:4259:9: warning: 'lll' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/spatial_editor_gizmos.cpp:4259:9: warning: 'lul' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/spatial_editor_gizmos.cpp:4260:9: warning: 'a2' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/spatial_editor_gizmos.cpp:4261:9: warning: 'a3' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/spatial_editor_gizmos.cpp:4265:3: warning: 'enable_lin' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/spatial_editor_gizmos.cpp:4294:3: warning: 'enable_ang' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/spatial_editor_gizmos.cpp:4311:34: warning: 'll' may be used uninitialized in this function [-Wmaybe-uninitialized]
editor/spatial_editor_gizmos.cpp:4311:34: warning: 'ul' may be used uninitialized in this function [-Wmaybe-uninitialized]
scene/3d/voxel_light_baker.cpp:1655:47: warning: 'cone_dirs' may be used uninitialized in this function [-Wmaybe-uninitialized]
scene/3d/voxel_light_baker.cpp:1656:73: warning: 'cone_weights' may be used uninitialized in this function [-Wmaybe-uninitialized]
scene/gui/texture_progress.cpp:181:6: warning: 'cp' may be used uninitialized in this function [-Wmaybe-uninitialized]
scene/gui/texture_progress.cpp:181:6: warning: 'cq' may be used uninitialized in this function [-Wmaybe-uninitialized]
servers/physics/shape_sw.cpp:1056:19: warning: 'support_max' may be used uninitialized in this function [-Wmaybe-uninitialized]
```
2018-10-04 18:54:20 +02:00
Rémi Verschelde
2b084352b9 Fix warnings on non-static data member initializers (C++11 feature)
We're not formally using C++11 yet so those trigger compilation warnings
(at least with GCC 5):

./main/input_default.h:122:30: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
  CursorShape default_shape = CURSOR_ARROW;
                              ^

Note: We may allow those eventually (especially for non-int static const),
but most of current occurrences were inconsistent with all other classes.

See also http://www.stroustrup.com/C++11FAQ.html#member-init
2018-09-27 10:29:48 +02:00
Rémi Verschelde
277b24dfb7 Make core/ includes absolute, remove subfolders from include path
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-09-12 09:52:22 +02:00
JFonS
216ba4cc8b Fix SoftBody gizmo slowness, add ConcaveShape wireframe 2018-09-09 19:39:34 +02:00
Rémi Verschelde
8804eb8c06
Merge pull request #21707 from JFonS/fix_instanced_selection
Fix selection of instanced scenes in 3D
2018-09-05 18:11:56 +02:00
Rémi Verschelde
5fe01d4cfc Move ParticlesMaterial code to its own resource file
It's shared by both 2D and 3D particles (+ CPU ones), so it makes sense
to have as a common resource. It also allowed to disable compilation of
Particles (3D) when using 'disable_3d'.

Also cleaned up includes in SpatialEditorGizmos and some other places,
as well as dropped dead code in material_editor_plugin.cpp.
2018-09-04 11:32:56 +02:00
JFonS
4a412943d4 Fix selection of instanced scenes in 3D 2018-09-02 22:31:03 +02:00
Andrea Catania
2e722caead Fixed physics bone crash: #20397 2018-08-26 11:55:58 +02:00
Rémi Verschelde
404ee1a56b Style: Fix issues that went past CI 2018-08-21 21:28:06 +02:00
Juan Linietsky
e20864c340 Clipped camera implementation, a camera that avoids going into geometry. 2018-08-21 11:48:48 -03:00
Poommetee Ketson
76adef2704 Fix arg name in docs, some copy-paste errors 2018-08-21 01:51:19 +07:00
QbieShay
bb14ef5623 added spring arm node. 2018-08-18 14:34:42 +02:00
JFonS
ac51da2eb6 Improvements on the gizmo disabling menu and icon selection bugfix 2018-08-11 23:07:00 +02:00
JFonS
59fd18ab1a New gizmo structure and new gizmo disabling menu 2018-08-09 20:58:39 +02:00
Juan Linietsky
5b70ad9d34 Respect process order for out of order skeleton bones (fixes GLTF2 import issues). 2018-08-06 22:35:09 -03:00
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
AndreaCatania
17ebbfb56d Implemented Soft body
- Soft Body Physics node
- Soft Body Rendering
- Soft body Editor
- Soft body importer
2018-07-23 20:50:23 +02:00
Rémi Verschelde
7c9f7452f4 Style: Format code with clang-format 6.0.1 2018-07-18 16:27:03 +02:00
Max Hilbrunner
118d4f3115
Merge pull request #19540 from muiroc/cylinder
Cylinder resource and collision shape (bullet only)
2018-07-12 05:09:37 +02:00
muiroc
0a36e974da added cylinder shape support 2018-07-01 11:16:54 +02:00
JFonS
e245efaead Fix selection in 3D orthogonal view 2018-06-28 14:59:39 +02:00
Rémi Verschelde
e5e23c7ebf Fix invalid DEFVAL in SpatialEditorGizmo::add_unscaled_billboard
Likely added by mistake in #19487.
Should fix #19543.
2018-06-13 22:29:54 +02:00
JFonS
9cd1c20f6a Polished 3D selection 2018-06-13 17:52:37 +02:00
AndreaCatania
9e57a07fb6 Implemented ragdoll
Implementing ragdoll

Implementing ragdoll

Implementing ragdoll

Implementing ragdoll

Implementing ragdoll

a

Implemented implicit hierarchy.

Improved

Added some physics properties

Added bone offset to preserve COM, partially fixed scaling

work in progress

WIP

wip

Implemented Joint Gizmos

Implemented pin joint joint

Implemented all joints
2018-05-07 21:03:16 +02:00
Rémi Verschelde
e9c1957a3e
Merge pull request #16358 from JFonS/particlesgizmo_box_fix
ParticlesGizmo solid box now follows actual visibility_aabb position.
2018-05-03 21:47:00 +02:00
Crazy-P
e6deba8d19 Fixes logically dead code (Coverity)
Fixes reported logically dead codes by Coverity

* image.cpp: Doesn't really need any modification. But to remove the bug
report then we have to move the MAX call away from the for loop
statement.

* rasterizer_gles3.cpp: Removes unnecessary elif condition since it is
checked earlier in the function

* collada.cpp: If stamement never reached due to macro ERR_CONTINUE does
the same.

* navigation_mesh.cpp: Variables should always be null - however, also
checked for the very same condition in their function call. Leaving this
for review (whether the function call is necessary or not)

* path_editor_plugin.cpp: If cancel is true, then it should restore the
edited value to the original provided.
http://docs.godotengine.org/en/3.0/classes/class_editorspatialgizmo.html#class-editorspatialgizmo-commit-handle

* spatial_editor_gizmos.cpp: the very condition of i >= 3 is
predetermined in the if case right before it. Thus case 1 is always '1'
and case 2 is always '-1'

* grid_map_editor.cpp: Same as above in spatial_editor_gizmos.cpp

* voxel_light_baker.cpp: Same as above in spatial_editor_gizmos.cpp

* visual_server.cpp: Same as above in spatial_editor_gizmos.cpp

* visual_script_expression.cpp: char '-' is already true in the switch
case mechanism. Thus it can never reach to default case.

* particles.cpp: Case 'PARAM_MAX' is unreachable due to index checking
right before the switch execution.

* shader_language.cpp: Invalid index is handled in switch default case.
`type < TYPE_FLOAT && type > TYPE_VEC4` -> `(type < TYPE_FLOAT || type > TYPE_VEC4`)
Fixes the "always false problem" in TODO comment.
2018-04-21 22:35:23 +08:00
JFonS
29e0c08b6d ParticlesGizmo solid box now follows actual visibility_aabb position. 2018-02-14 16:37:55 +01:00
Rémi Verschelde
448076edb6
Merge pull request #16402 from Calinou/fix-camera-gizmo
Draw the Camera gizmo more accurately
2018-02-13 13:10:33 +01:00
Hugo Locurcio
0d7d293889
Draw the Camera gizmo more accurately
The Camera gizmo no longer looks twice as wide as it actually is.
This fixes #16399.
2018-02-04 23:28:04 +01:00
JFonS
d0a2931cd7 Fix gizmo solid box mesh being added twice 2018-02-02 13:18:28 +01: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
AndreaCatania
eb32c4b5d2 Fixed joint gizmos orientations 2017-12-23 15:19:03 +01:00
Juan Linietsky
1fa9aac3e4 -Make capture dependent on a cell size, not subdivision.
-Fixed a bug recently introduced when releasing mouse events and calling popups
2017-12-21 11:05:55 -03:00
Rémi Verschelde
8f25a2dc11 Cleanup some #if 0'd code 2017-12-17 15:40:24 +01:00
Daniel J. Ramirez
dcad7042dc Updated icons
[ciskip]
2017-12-14 15:49:27 -06:00
Juan Linietsky
f3ad14224e -Add lightmapper
-Fixes to unwrapper (remove degenerates), makes Thekla not crash
-Added optional cancel button in EditorProgress
-Added function to force processing of events (needed for cancel button)
2017-12-14 09:01:27 -03:00
Rémi Verschelde
dfb3634c34
Merge pull request #13836 from AndreaCatania/scale
Fixed bullet scale on get_transform and joints
2017-12-11 10:35:09 +01:00
AndreaCatania
63ec5823d1 Implemented skeleton visibility
Removed code visibility code from popup menu
2017-12-10 03:15:52 +01:00
AndreaCatania
5e10f80522 Makes consistent Slider joint Gizmo 2017-12-09 15:26:19 +01:00
AndreaCatania
0ea1c3bd53 Makes consistent 6DOF joint Gizmo 2017-12-09 15:01:00 +01:00
Ferenc Arn
d28763a4c1 Rename Rect3 to AABB.
Fixes #12973.
2017-11-17 11:01:41 -05:00
Daniel J. Ramirez
9001ba26aa Added and improved some missing icons, plus some other visual fixes. 2017-10-13 16:39:17 -05:00
Poommetee Ketson
520467376b 3DEditorGizmo: fix spotlight and camera gizmo & handle 2017-10-02 10:59:39 +07:00
SaracenOne
3cecd0c6dc Box selection for MeshInstances and subscene nodes. 2017-09-20 14:04:18 +01:00
Juan Linietsky
8f30c52a37 Removed ontop property, added a material rendering priority system. Fixes #9935, closes #10135 2017-09-01 13:01:08 -03:00
Rémi Verschelde
aac077774e Merge pull request #10774 from djrm/pr_gizmo_fixes
Fixed problem with highlight boxes not updating on translation
2017-08-30 12:45:01 +02:00
Juan Linietsky
9c3bddfac2 Merge pull request #10745 from neikeq/fix-docdata-and-stuff
DocData and virtual method type hints fixes
2017-08-29 20:11:07 -03:00
Daniel J. Ramirez
b61374e5bd Fixed problem with highlight boxes not updating on translation 2017-08-29 17:50:45 -05:00
Ignacio Etcheverry
c16d00591b DocData and type hints fixes
- Makes vararg methods automatically use PROPERTY_USAGE_NIL_IS_VARIANT on return types
- Completely removes the ":type" suffix for method names. Virtual methods must use the MethodInfo constructors that takes Variant::Type or PropertyHint as the first parameter for the return type (with CLASS_INFO as a helper to get the PropertyInfo). Parameters must use PROPERTY_HINT_RESOURCE_TYPE and hint string.
- PROPERTY_USAGE_NIL_IS_VARIANT is no longer needed for parameters, because parameters cannot be void.
- Adds missing PROPERTY_USAGE_NIL_IS_VARIANT to virtual and built-in methods that return Variant.
2017-08-29 19:40:21 +02:00
Daniel J. Ramirez
e5a71e3f95 Added missing gizmo icons and fixed ugly looking gizmo icons. 2017-08-28 15:49:16 -05:00
Daniel J. Ramirez
07e8d7270e Improved directional light arrow and gizmo highlighting 2017-08-28 13:32:28 -05:00
Daniel J. Ramirez
3003e19ab1 Highlight currently selected gizmo.
Work with, GIProbe, ReflectionProbe and Particles.
2017-08-28 01:28:24 -05:00
Rémi Verschelde
7ad14e7a3e Dead code tells no tales 2017-08-27 22:13:45 +02:00
Rémi Verschelde
bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Rémi Verschelde
565600e844 Cleanup tons of obsolete commented out code
Mostly in EditorNode, dropping some obsolete editor plugins and also a
cleanup of ProjectSettings/EditorSettings.
2017-08-26 17:47:57 +02:00
Juan Linietsky
1894157c9f -Massive clean up to gizmos
-Make sure handles are always visible (on top)
-Fixed instanced scene selection (should work properly now)
-Added interpolated camera
-Customizable gizmo colors in editor settings
2017-08-26 00:47:28 -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
Juan Linietsky
2cb19a53fd Fix primitive mesh selection, closes #9210 2017-08-18 19:25:18 -03: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
Juan Linietsky
2e73be99d8 Lots of work on Audio & Physics engine:
-Added new 3D stream player node
-Added ability for Area to capture sound from streams
-Added small features in physics to be able to properly guess distance to areas for sound
-Fixed 3D CollisionObject so shapes are added the same as in 2D, directly from children
-Fixed KinematicBody API to make it the same as 2D.
2017-07-15 08:32:34 -03:00
TwistedTwigleg
44ecfb028d Fixed syntax inconsistency in Vector3.snap and Vector3.snapped 2017-07-03 16:29:03 -04:00
BastiaanOlij
9483613138 Godot 3.0 primitives as resources for use with MeshInstance
Adds the following resources:
- CapsuleMesh: a capsule object
- CubeMesh: a cube that can be subdivided
- CylinderMesh: a cylinder
- PlaneMesh: a horizontal plane that can be subdivided
- PrismMesh: a prism shape
- SphereMesh: a sphere
- QuadMesh: reintroduction of the original quadmesh

Removes the old Quad and TestCube nodes
2017-06-16 21:40:23 +10:00
alexholly
935f730170 renamed all Rect3.pos to Rect3.position 2017-06-09 15:54:02 +02:00
Juan Linietsky
5bf810b5db -Added proper access to depth texture from shader
-Split Mesh into Mesh (abstrat class) and ArrayMesh, to allow to proper mesh primitives, as well as streamable meshes in the future.
2017-06-07 18:20:04 -03:00
Juan Linietsky
4286aef693 Particle system is complete. Rejoice! 2017-04-08 22:40:06 -03: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