Commit Graph
75 Commits
Author SHA1 Message Date
Simon Lübeß a3de5ddc9c Serialization: Support sharing object references 2024-04-13 00:50:09 +02:00
Simon Lübeß d81471419d Refactored script instance serialization and now the refactoring is finally finished... 2024-04-10 14:42:07 +02:00
Simon Lübeß d28426478b Font renderer improvements + component for scripting 2024-03-17 20:29:52 +01:00
Simon Lübeß 930d289565 Improved copying of components 2024-03-17 20:28:41 +01:00
Simon Lübeß a2c7bf7d06 Ensure generating unique Entity IDs 2024-03-17 20:25:38 +01:00
Simon Lübeß 96609a6c31 FontRenderer: Basic Rich Text processing and lazy text building 2024-03-16 23:35:12 +01:00
Simon Lübeß fc475eb468 Save and copy editor flags with scene. Replaced EditorComponent with DontSafe-flag 2024-03-10 13:11:53 +01:00
Simon Lübeß 72bd152999 Refactor 2024-03-10 13:01:05 +01:00
Simon Lübeß 0a8d83ffb6 Changed Transform Update order 2024-02-26 13:47:29 +01:00
Simon Lübeß 8ff35d3967 ScriptCore: Added more properties to components
- Added CircleRenderer
- Transform: Added Rotation, RotationEuler, RotationAxisAngle and Scale
- RigidBody: Added BodyType and GravityScale
- Added ColorRGBA
2024-01-27 19:46:37 +01:00
Simon Lübeß 7026be1c90 2D Physics and script improvements
- fixed time step
- Fixed crash caused by physics script callback being registered in simulation mode
- Moved 2D Physics config to file
- Finally gave up on the attempt to keep X and Y rotation when applying new Z-rotation from 2D rigidbody to transform and now I can sleep well
- Streamlined starting and stopping of scenes
- Scripts: execute all inits and OnCreates before OnUpdate
2024-01-22 23:19:55 +01:00
Simon Lübeß c906fc9667 Properly destroy script instances
Now without memory leaks!
2024-01-18 21:29:11 +01:00
Simon Lübeß ba68eb7428 Editor: Show name of open scene in window title 2024-01-12 15:41:56 +01:00
Simon Lübeß 99a12a118c Fixed Script data for entity copying 2024-01-09 13:41:54 +01:00
Simon Lübeß ed756f5847 Fixed scripts OnUpdate not being called in play mode 2023-12-13 14:01:23 +01:00
Simon Lübeß e69e1b5526 Show Buttons in entity editor
- ScriptEngine: Added HasCustomAttribute- extension method
- ScriptEngine: Added Application class
2023-12-12 13:38:29 +01:00
Simon Lübeß 1238a43896 Start and Stop script runtime for editor scene 2023-12-03 14:06:40 +01:00
Simon Lübeß 5852e11ccb Start of edit mode scripts
- Initialize script instances in edit mode
- Run OnCreate and OnUpdate for Entities with RunInEditMode-Attribute
2023-12-02 00:28:04 +01:00
Simon Lübeß dc551fb85c Remove native script component 2023-12-01 23:51:53 +01:00
Simon Lübeß 214889470f Scene: Set ScriptEngine Context (Scene) when copying entities
Fixes invalid access when constructors throw exceptions
2023-11-18 02:00:11 +01:00
Simon Lübeß 38fc1f63b3 Small script engine improvements
- Fixed script class name not visible in Component Editor
- Retain user assembly file system watcher (fixed deletion while handling events)
- Fixed crash when a scritp constains a List or Array (by ignoring them for now)
- Fixed Typo in Genericinst
- Scene: Invoke OnCreate for copied entity scripts
2023-10-28 21:48:43 +02:00
Simon Lübeß 688046fcf9 Scripting: Create Rigidbodies and Colliders during runtime 2023-09-21 15:10:20 +02:00
Simon Lübeß 446dc2ca2a Scripting: Basic copying of entities during runtime + Reference Components using UUID 2023-09-21 14:23:00 +02:00
Simon Lübeß 754c149493 Entity Creation and Destruction from scripts
- ScriptEngine: Allow destroying scripts during runtime
- Scripting:
    - Create new entities using Constructors
    - Added Destroy functions for Entities
    - Added SetScript/RemoveScript functions for Entities
    - Allow adding multiple components at once
    - Added Is-Method
- Mono Wrapper: Added Array-Functions
- WorldEnumerator: Fixed crash due to dangling list pointer after entity creation
- Scene:
    - Basic create Rigidbodies during runtime
    - Start of entity copying (For runtime use)
    - Added DestroyEntityDeferred
- SceneSerializer:
    - Added option to assign new IDs to entities
2023-09-15 23:22:27 +02:00
Simon Lübeß cd333f4f02 EditVector: Allow Disabling individual components
+ Disable XY-Angle when Entity has Rigidbody2D Component (This is something for future me, I couldn't figure it out...)
+ Start of handling of non trivial tranform nesting and rotations on XY axes
+ TranformComponent.RotationEuler: Normalize quaternion before converison
2023-09-05 23:14:51 +02:00
Simon Lübeß d7201299c7 Fixed physics only simulation
+ Don't run scripts in physics only mode
+ Don't initialize scritps in physics only mode
+ Don't setup physics callbacks in physics only mode
2023-08-14 22:38:55 +02:00
Simon Lübeß 74b17c8599 2D Polygon Collider 2023-08-13 12:03:06 +02:00
Simon Lübeß 4e5d3cfd64 Add OnCollisionLeave2D 2023-08-10 22:07:58 +02:00
Simon Lübeß b28ca14e15 Updated Box2D 2023-08-10 20:38:49 +02:00
Simon Lübeß aafcc41286 Invoke on collision enter + start of attach child colliders to rigidbody
+ Changed default Namespace of ScriptCore to GlitchyEngine
+ Implicit Casts float2 <-> b2Vec2
+ Entity constructor internal
+ Renamed RigidBody2D to Rigidbody2D (notice the B)
+ Basic Debug Draw actual 2D Colliders
+ Added Entity::GetParentWithComponent
2023-08-10 19:55:45 +02:00
Simon Lübeß 803fd7f8ba Fixed crash when ScriptComponent has no Instance in Play Mode 2023-07-31 16:36:02 +02:00
Simon Lübeß 37197cbdf1 Allow dragging and dropping of Entities in editor
+ New Dictionary Helpers
+ Made ImGui Payloads safer
+ Start of Component drag'n'drop
2023-07-24 23:17:00 +02:00
Simon Lübeß cd1562f372 Basic Script reloading
+ ScriptComponent now saves script name instead of direct ScriptClass reference
+ Added ClearDictionaryAndDeleteKeys helper
+ Moved ScriptFieldType to separate file
+ _ScriptFieldMap now uses String as Key
2023-07-18 22:06:34 +02:00
Simon Lübeß e8505f6bdb Scripting: FindEntityWithName and get script instance
+ Some C# UUID stuff
+ Added some Mono functions
+ ScriptEngine:
  + ID -> ScriptInstance map in ScriptEngine
  + GetManagedInstance

+ Fixed Scene not visible after loading a new scene
  + Renamed OnViewportResize to SetViewportSize for Scene and SceneRenderer
2023-07-17 20:27:18 +02:00
Simon Lübeß 1641bafd06 Don't instantiate scripts for Editor + ScriptComponent Serialzation + Don't crash when scene loading failed 2023-07-17 01:27:58 +02:00
Simon Lübeß f4607a6210 Script default values after init, Fix memory leak, Copy Script values on Play 2023-05-31 14:38:07 +02:00
Simon Lübeß 6a59deb9e2 Weiß ich nicht, ist Monate her... 2023-05-30 16:54:57 +02:00
Simon Lübeß 5855b13873 Wer weiß, was ich alles so gemacht hatte...
- Fixed crash caused by early ScriptEngine shutdown
2023-05-30 16:50:22 +02:00
Simon Lübeß ef5e4ba64f Fixed ScriptClass leaking 2023-03-30 15:13:21 +02:00
Simon Lübeß e60d74fccd Basic entity scripting 2023-03-29 13:33:34 +02:00
Simon Lübeß d54cdf43ee Simulation mode and pause/resume 2023-03-24 23:50:46 +01:00
Simon Lübeß f16fbc3984 Separated window for game and editor 2023-03-24 22:48:55 +01:00
Simon Lübeß 184480243f Collider rendering 2023-03-24 19:13:32 +01:00
Simon Lübeß fc1875ed96 Added Line batch rendering 2023-03-24 12:54:46 +01:00
Simon Lübeß 2ba4b68e09 Split up sprite and circle renderer component 2023-03-19 12:19:22 +01:00
Simon Lübeß edcec02e94 Fixed AssetHandle serialization
- Serialize MeshComponents
- Fixed handling renamed files
2023-03-19 01:04:32 +01:00
Simon Lübeß c164aeecaa Copy scene when entering play mode 2023-03-18 23:30:57 +01:00
Simon Lübeß b22f73a156 Handles barely work now, mostly no crashes 2023-03-16 17:57:23 +01:00
Simon Lübeß c22d122921 Start of asset handles 2023-03-13 20:35:30 +01:00
Simon Lübeß 4589030da6 Load effects via content manager + virtual InitContentManager in App 2023-01-08 00:17:04 +01:00