Commit Graph
100 Commits
Author SHA1 Message Date
Simon Lübeß 270e34b983 Fixed list of struct drag and drop, added context menu to remove list entries 2023-12-01 23:14:19 +01:00
Simon Lübeß df446188b6 Add support for strings and BoolX in script engine, show strings as textfields in editor 2023-12-01 23:13:30 +01:00
Simon Lübeß b68bad5bda Keep Entities selected when switching between Play- and Edit-Mode
- Fixed the check whether all selected entities have the same parent
2023-11-29 14:16:36 +01:00
Simon Lübeß 0257b93c7b Move List elements via Drag and Drop 2023-11-22 19:28:02 +01:00
Simon Lübeß 872a400966 Scripts: More range attributes for fields
- Added Minimum- and Maximum attributes
- Documentation for Min, Max and Range
- EntityEditor: Refactoring + Range Attributes
2023-11-22 01:59:57 +01:00
Simon Lübeß ffe86a18cf Scripts: First implementation of Range- and Readonly-Attributes + added support for all primitive types 2023-11-22 00:57:18 +01:00
Simon Lübeß 881bb8ee51 Scriptengine: Support char-type 2023-11-22 00:55:07 +01:00
Simon Lübeß 05350d4768 Renamed EditfloatX to EditFloatX 2023-11-22 00:54:43 +01:00
Simon Lübeß 8127884b50 Improved List editor and added Enum editor, fixed changed fields not updating 2023-11-18 18:06:13 +01:00
Simon Lübeß 18867fd208 Scripting: VectorGeneratorgenerate Equals methods 2023-11-18 18:03:14 +01:00
Simon Lübeß 849a8582f6 Scripting: Added Log functions to print objects 2023-11-18 18:02:37 +01:00
Simon Lübeß f28eabf807 Fixed mono not finding assemblies like linq, etc. 2023-11-18 17:56:09 +01:00
Simon Lübeß 060d1ae6fc Scripting: Implemented Equals and GetHashCode for UUID 2023-11-18 16:45:46 +01:00
Simon Lübeß 24365ec477 Call correct UUID constructor for Entities, fixed crash and weirdness when Scripts have fields that are classes
Let's not talk about the fact that this was a one line fix all along...
2023-11-18 02:05:55 +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ß 2a4eac814b ScriptGlue: Changed signature of Entity_GetScriptInstance 2023-11-18 01:59:10 +01:00
Simon Lübeß 1a92f4aec1 Started reworking entity initialisation 2023-11-18 01:04:12 +01:00
Simon Lübeß 02a2ccb6f9 Copy ScriptCore dependencies to output, EntityEditor: Start of lists 2023-11-16 18:32:13 +01:00
Simon Lübeß d2972d1b03 Updated submodule "gltf" 2023-11-15 16:25:12 +01:00
Simon Lübeß d718c6625d Allow separators in "Create new Asset" dropdown (also changed text to just "Create new") 2023-11-15 16:23:22 +01:00
Simon Lübeß 6f1467046d Tried EntityEditor in C# 2023-11-10 12:41:58 +01:00
Simon Lübeß b41eaad788 Disposable Rigidbody2D 2023-10-28 21:48:56 +02: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ß 909012f518 Moved Script Solution (.sln) to project root
- Updated vswhere.exe
- Scripts created via Asset browser are now being added to the project
- Fixed Apply not being called for extended Settings
- Correctly wrap New File preview only when line full
- Create Project: Show warning, when target directory already exists
2023-10-27 22:29:10 +02:00
Simon Lübeß 3d8756ec42 Added context menu entry to create C#-Scripts.
Allow entering file name before creation
2023-10-19 19:27:01 +02:00
Simon Lübeß bad7b08046 EditorContentManager: Fixed asset reloading
(thats why unit tests exist... or at least types...)
2023-09-29 18:56:37 +02:00
Simon Lübeß d32bc6c475 Properties Window: Combined "Save"- and "Apply"-Buttons into one "Save"-Button 2023-09-29 18:51:21 +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ß ba54d48dfe Fixed referencing entities and components that are not the script owners entity 2023-09-16 22:14:52 +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ß ff54eb738e UUID: Removed empty constructor, added static Create-Function 2023-09-13 13:14:54 +02:00
Simon Lübeß 370eaf9bc7 Skip CMake compiler testing 2023-09-13 01:02:13 +02:00
Simon Lübeß 5af174ecee ScriptCore: atan2 2023-09-05 23:15:48 +02:00
Simon Lübeß 7bffd01401 Rigidbody2D Get/Set Linear and Angular Velocity 2023-09-05 23:15:33 +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ß 2f58f0e142 Renamed RigidBody2D to Rigidbody2D
+ Math.normalize(Quaternion)
+ Position and Rotation properties for Rigidbody2D
+ use In, Out on beef side in ScriptGlue
2023-09-03 19:42:50 +02:00
Simon Lübeß 0165279220 Implemented "Open recent Project" menu entry
+ Clean up handle -> asset map when chaning Asset or Resource directory
2023-08-21 14:11:51 +02:00
Simon Lübeß 3affb8a32f Scripting: Added Set and GetPosition to Rigidbody2D
+ Vectors: Hide swizzles in Debugger + Generate ToString
2023-08-21 13:20:12 +02:00
Simon Lübeß d3c19dd8da 2D Polygon Collider editor with Gizmos
+ Added Handles class
2023-08-21 13:18:51 +02:00
Simon Lübeß 377997f903 Fixed mouse wrapping to wrong position when window is moved 2023-08-14 23:56:43 +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ß a112fcc64a Automatic switch between Player <-> Editor Tabs
+ Allow Editor to inject into Settings
2023-08-14 22:10:27 +02:00
Simon Lübeß f71e851ab5 Push Loggers earlyer to hopefully avoid race condition
+ Fix null check in EditorLogger
2023-08-14 22:09:35 +02:00
Simon Lübeß 040e87d57f Fixed Selection and Deletion in Entity Hierarchy Window 2023-08-14 14:32:58 +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ß 987246a806 Asset Drag'n'Drop preview 2023-08-02 14:59:35 +02:00
Simon Lübeß f654a4f379 Fixed AssetHierarchy not updating + Drag'n'drop Files in Asset Browser 2023-08-02 13:48:06 +02:00
Simon Lübeß 92334d8150 Hide obsolete Application.Get() 2023-08-02 00:08:30 +02:00
Simon Lübeß 0101f546a5 Use InvokeOnMainThread for asset tree updates 2023-08-02 00:08:17 +02:00
Simon Lübeß 6c4ac923c6 Asset renaming + AssetHierarchy: major refactoring for file tree construction
+ AssetFile: Added "AssetConfigPath" Property
+ Less crashy, more cleaner
2023-08-01 23:56:52 +02:00
Simon Lübeß 51441f0e70 Fixed memory leak 2023-08-01 23:20:25 +02:00
Simon Lübeß d2600c7517 Fixed Race-Condition in SamplerStateManager 2023-08-01 22:50:09 +02:00
Simon Lübeß 60725c3588 Universal AssetHandles. Serialize AssetHandle instead of AssetIdentifier
A bit unstable
2023-08-01 21:38:54 +02:00
Simon Lübeß 6d7f26b1f4 Added "Create new Folder" to Asset Browser context menu 2023-08-01 16:45:54 +02:00
Simon Lübeß b1f89a345f Deletion of Assets and Directories 2023-08-01 16:45:33 +02:00
Simon Lübeß 253dd8087e Added option to create Materials in Asset Browser 2023-08-01 16:24:31 +02:00
Simon Lübeß e8a5594540 Allow changing Effect of Materials
+ TextureDimension Property for Texture
2023-08-01 13:28:04 +02:00
Simon Lübeß 5d8c1b111a Project user settings, load recent scenes, properly cleanup ScriptEngine when switching scenes 2023-07-31 20:09:56 +02:00
Simon Lübeß 3298053d9d Fixed Asset Drag'n'Drop 2023-07-31 20:07:12 +02:00
Simon Lübeß adccb74f44 Editor Layer cleanup 2023-07-31 18:48:36 +02:00
Simon Lübeß 97113b5df6 Start of Create Asset Context Menu
+ Asset Hierarchy: Fixed Assets in Folder-Root not being shown
2023-07-31 17:40:05 +02:00
Simon Lübeß c374d86ec7 Cleanup 2023-07-31 16:40:27 +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ß 11a57f5285 Fixed ComponentEditWindow showing component editor after it was deleted 2023-07-31 16:35:38 +02:00
Simon Lübeß 0d015b485e Basic project creation
+ Added TreeNode.RemoveChild
+ Added Directory.Copy
+ Path.Combine now replaces alt directory separator
+ Project: Renamed ProjectName to Name
+ Project.Load: Save settings, if file doesn't exist
2023-07-31 16:35:12 +02:00
Simon Lübeß 17e4a6a589 Updated Beef.Linq 2023-07-30 20:32:19 +02:00
Simon Lübeß c1a87ed946 Separated Assets to Resources (Engine assets) and Assets (Project specific)
+ AssetHierarchy: Exposed RootNode
+ ContentBrowserWindow: Fixed Empty Folder not being Leaf-Node
+ TreeNode: Added IsParentOf, IsChildOf and IsInSubtree.
    + Fixed InternalDeleteTreeAndChildren for null trees
2023-07-30 20:30:06 +02:00
Simon Lübeß 20dae92be7 Fixed Assets having scrollbars in content browser 2023-07-30 13:55:50 +02:00
Simon Lübeß df67f32399 Start of project system
+ added Directory.IsEmpty
2023-07-30 13:23:34 +02:00
Simon Lübeß 14a802d057 Added new line to EditorLogger 2023-07-30 13:21:33 +02:00
Simon Lübeß 12d6df3edf Fixed crash when AssetViewer has size of 0 (RTFM) 2023-07-29 18:54:45 +02:00
Simon Lübeß 2838449186 Ignore MonoDebugger.log 2023-07-28 21:15:23 +02:00
Simon Lübeß 75513bea3d Removed obsolete texture viewer 2023-07-28 21:09:33 +02:00
Simon Lübeß 16c3d7c44d Updated ImGui 2023-07-28 13:38:59 +02:00
Simon Lübeß 7ae069baf6 Fixed loading UI font 2023-07-28 12:26:15 +02:00
Simon Lübeß 00dc3faa19 Failed to show and edit script sctruct
+ SizeInBytes for MonoFields
2023-07-28 11:48:01 +02:00
Simon Lübeß f39acdadb3 Show enum fields in Edit mode 2023-07-28 00:07:10 +02:00
Simon Lübeß 1254d01545 Handle exceptions from C# Scripts + Log window + EditorLogger
+ Renamed Platform/DX11/ImGui.bf to .../Dx11ImGui.bf for clarity
+ ImGuiExtension: ImageButtonEx thata takes a TextureViewBinding
+ EditorLogger that logs to the LogWindow
+ Current logger can now be changed
+ Info, Trace, Warning and Error Icons
2023-07-27 21:58:42 +02:00
Simon Lübeß 0bc517842f Allow changing logger 2023-07-27 00:42:42 +02:00
Simon Lübeß 3e63281508 Fixed mono debugging... 2023-07-26 22:56:43 +02:00
Simon Lübeß ef486b7082 Basic entity highlighting 2023-07-25 19:37:13 +02:00
Simon Lübeß 81a61d5a90 Drag'n'drop for components
+ Added CreateInstance to ScriptClass
+ Added CreateComponentInstance to ScriptInstance
2023-07-25 16:37:41 +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ß b53ed2d8f2 Made script deserialization more robust 2023-07-24 21:28:58 +02:00
Simon Lübeß 457b43352a Debugging, but it doesn't work for some reason 2023-07-21 16:16:24 +02:00
Simon Lübeß cc7fb7311f Added single step for simulation and play mode
+ Added ManualStepTime to GameTime
2023-07-20 23:21:21 +02:00
Simon Lübeß 5f27b8001a Automatic script assembly reloading 2023-07-20 22:11:11 +02:00
Simon Lübeß 0cbb8a4966 Fixed C# -> Beef Type mapping 2023-07-20 17:53:32 +02:00
Simon Lübeß 79adc70f01 Gitignores and missing updates to scripts 2023-07-20 17:51:06 +02:00
Simon Lübeß 78ba016b03 Log Exceptions in thrown by Script OnUpdate-Function 2023-07-20 17:48:50 +02:00
Simon Lübeß 3e55a1614a Shader like vectors for C# Scripting 2023-07-20 17:48:28 +02:00
Simon Lübeß f0de874572 Start of generate vectors for C# 2023-07-19 18:43:26 +02:00
Simon Lübeß 6e02a04a4f Changed ScriptCore to DotNet Standard 2.0 2023-07-19 15:45:36 +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ß 66d66d3308 Serialize script fields in "array" + more forgiving deserialization 2023-07-17 04:04:01 +02:00