Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚀 2025.1.0 #237

Draft
wants to merge 399 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
399 commits
Select commit Hold shift + click to select a range
c157b6d
Delete update by unity
Dec 25, 2024
bf753c3
Use boxing api in debugger proxy
Dec 25, 2024
401bc7f
Remove unnecessary allocation in systems group sourcegen
Dec 25, 2024
2186dc3
WorldBrowser improvements
Dec 25, 2024
2918c4f
Make injection table optional & resolve it in constructor
Dec 25, 2024
10ede7b
Make injection table completely optional for system groups
Dec 25, 2024
f61c7c2
Don't generate stash requirements for non-component types
Dec 25, 2024
167560e
TODOs
Dec 25, 2024
ca30cdc
Add TagStashTests, fix CreateReflectionStash
Dec 25, 2024
486d36d
Prepare disposable components for tests
Dec 25, 2024
1237991
Add disposable stash tests
Dec 25, 2024
8d1a487
Update MorpehComponentHelpersSemantic.cs
Dec 25, 2024
0b0e913
Simplify
Dec 25, 2024
4a6f27e
Allow injecting classes only
Dec 25, 2024
ff8cdea
Check parameterless constructors for non-system/non-initializer fields
Dec 25, 2024
5abf257
Rename for clarity
Dec 25, 2024
06c8d5a
Update DisposableComponent.cs
Dec 25, 2024
ad4e1bc
Add meaningful tests for components
Dec 25, 2024
52bba80
Check interface generation
Dec 25, 2024
6befbd2
Test generic components
Dec 25, 2024
f746308
Check diagnostics of components
Dec 25, 2024
e69919a
Fix incorrect entity.GetWorld behaviour
heymeepo Dec 25, 2024
d36636d
Fix duplicate array access at same index
heymeepo Dec 25, 2024
30f7c5c
Report a warning if an initializer has OnUpdate method with a float
Dec 25, 2024
354d314
Update InitializerSourceGenerator.cs
Dec 25, 2024
99faef4
Switch to method declaration usage
Dec 25, 2024
90b0828
Delete monoprovider (replacement exists)
Dec 25, 2024
55d921b
Delete systems counter from metrics
Dec 25, 2024
1eb25f6
Move diagnostics down
Dec 25, 2024
44fb014
Formatting
Dec 25, 2024
0a8c5d9
NativeDisposableStash
Dec 25, 2024
565845c
Hide under defines
Dec 25, 2024
69b9dbb
Il2cpp attributes
Dec 25, 2024
aabfa8c
Remove linq from modifiers detection
Dec 25, 2024
35a0525
Force linq usages to be static
Dec 25, 2024
8ca39a6
First set of fixes after testing
Dec 26, 2024
702a1bf
Fix attribute value prefix
Dec 26, 2024
a3e9138
TODO
Dec 26, 2024
cc23247
TODOs
Dec 26, 2024
71cc2ab
Use fully qualified logger paths
Dec 27, 2024
3168f39
Allow stash specialization to be disabled with a preprocessor define …
Dec 27, 2024
ba302ab
Remove MORPEH_NON_SERIALIZED directive
heymeepo Dec 27, 2024
9a3ede9
Suppress obsolete warnings for Unity integration
heymeepo Dec 27, 2024
1ed1a8f
Fix incorrect generic constraint construction
Dec 27, 2024
c844012
TODO
Dec 27, 2024
d0e2b83
Meta Files
olegmrzv Dec 27, 2024
04f52a7
Add MORPEH_REMOTE_BROWSER directive
heymeepo Dec 27, 2024
9d4423a
Completely custom loops with names
Dec 28, 2024
5dc1602
Make defining world optional in systems/initializers
Dec 28, 2024
fd0d63c
Test different scenarios
Dec 28, 2024
ccebd84
Fix missing defines, add todo
Dec 28, 2024
579bbef
Rename for clarity
Dec 28, 2024
0620943
Make requirements readonly
Dec 28, 2024
a03dcb9
Autogenerate only getter
Dec 28, 2024
4f700d3
Add profiling for system groups
Dec 28, 2024
c9ca0b5
Rename to avoid collisions
Dec 28, 2024
c93d48e
Fix WorldBrowser assembly stripping
heymeepo Dec 28, 2024
172b26e
Simplify injection generation for better performance
Jan 6, 2025
6d61ce1
Get rid of full semantic model from runner generator
Jan 6, 2025
16edd0f
Add profiling to runner
Jan 6, 2025
b17fc0a
Reuse FQDNs in injection generator
Jan 6, 2025
4f2b4c1
Reduce FQDN string creation for specialization
Jan 6, 2025
079fd50
Move validatable interfaces away
Jan 6, 2025
d6cdc6d
Implement interfaces for systems & initializers for easier creation
Jan 6, 2025
9b7ad2a
Convert kind detection to a switch instead of calling IsKind every time
Jan 6, 2025
6eaf5d3
Add fiddle for same name components inside the same namespace
Jan 6, 2025
4b70fbb
Add stashes to BasicGenericSystem for testing
Jan 6, 2025
597b3e6
Restructure
Jan 7, 2025
d215a9a
Add fiddle code for injection
Jan 7, 2025
ef30da2
Rename injectable to inject
Jan 7, 2025
2244ea6
Simplify, speed up, add TODOs
Jan 7, 2025
d82b7a3
Skip checking static members
Jan 7, 2025
d1a8de4
TODO
Jan 7, 2025
09eb025
Support fast & slow methods of finding injectable types
Jan 7, 2025
7f7a0b0
Support fast and slow scans in systems group
Jan 7, 2025
d784b74
Remove unnecessary attributes extraction, don't scan interfaces unles…
Jan 7, 2025
aeb3898
Remove method unless slow mode
Jan 7, 2025
f77c11e
Complete support for hierarchy-based injection with private fields
Jan 8, 2025
8b953f7
Fix static detection mismatch between implementations
Jan 8, 2025
0e0cc42
protected -> private for fiddle
Jan 8, 2025
32f6df5
Merge into one loop
Jan 8, 2025
ccf949b
Use thread static list cache
Jan 8, 2025
690a441
Basic tests for injection functionality
Jan 8, 2025
eba1532
Forgot this test
Jan 8, 2025
a9a6aa4
Add extra test for middleware class
Jan 8, 2025
581c872
Add static auto cleanup for UnityEditor
heymeepo Jan 8, 2025
b849054
Simplify monoprovider generator for less string creations
Jan 8, 2025
07c210b
Use simpler hashing for suffixes
Jan 8, 2025
32f9890
Remove full semantic model from systems group source generator
Jan 9, 2025
178bda1
Codestyle
Jan 9, 2025
16076e2
Allow profiling to be replaced with Unity's profiler on demand
Jan 9, 2025
a8321b8
Allow systems groups to be structs
Jan 9, 2025
3b5b238
Fix attribute usage for system and initializer
Jan 9, 2025
ac2745a
Add ability to add & remove components on entities for the WorldBrowser
heymeepo Jan 9, 2025
b60df0a
Report nested declaration errors for all generators
Jan 9, 2025
80f615e
Add & remove components on entities for remote WorldBrowser
heymeepo Jan 9, 2025
d1a6d77
Replace error throw with default component value on deserialization f…
heymeepo Jan 10, 2025
9a5ae87
Use shared pool across threads
Jan 10, 2025
0141063
Cache-testing for source generators, simplify component source genera…
Jan 10, 2025
33a69e0
Remove unnecessary appends
Jan 10, 2025
7518242
Forbid semantic model in DTO
Jan 10, 2025
f50ae86
Fix forbidden types check
Jan 10, 2025
ddc9c8b
Reduce strings usage
Jan 10, 2025
f6363c9
Move down
Jan 10, 2025
cd4a24b
Fix deserialized Unity.Object OdinInspector editor crush
heymeepo Jan 10, 2025
c78b4a5
Fix incorrect id search filtering
heymeepo Jan 10, 2025
58b6095
Update display format for dummy Unity.Object's
heymeepo Jan 10, 2025
b52d5c1
Cache-friendly system & initializer source generator with caching tests
Jan 11, 2025
f862ffe
Simplify getting stash requirements
Jan 11, 2025
4cc232d
Cleanup
Jan 11, 2025
ab01a4b
Use ImmutableArray under the hood of EquatableArray
Jan 11, 2025
8c660f9
Update EquatableArray.cs
Jan 11, 2025
5c298e0
Revert "Update EquatableArray.cs"
Jan 11, 2025
e9ce999
Revert "Use ImmutableArray under the hood of EquatableArray"
Jan 11, 2025
cea9a75
Add non-boxing enumerator to equatable array
Jan 11, 2025
8a14981
Just use record structs
Jan 11, 2025
67f70c7
Cache-friendly version generic resolvers extraction
Jan 11, 2025
b93b913
Faster disposable check for systems group
Jan 11, 2025
fc187d0
Move to record structs
Jan 11, 2025
8ef9cc0
Update InjectionSourceGenerator.cs
Jan 11, 2025
c1c66f6
Rename
Jan 11, 2025
857392e
Cache-friendly version of MonoProvider sourcegen. Make IValidatable/I…
Jan 11, 2025
32618ff
Add tracking names to monoprovider generator
Jan 11, 2025
f28489a
Incorrect visibility modifier
Jan 11, 2025
8a73197
Get only necessary stuff
Jan 11, 2025
d7e57ec
TODO
Jan 11, 2025
dca1c5d
Start making separate pipelines
Jan 11, 2025
0ed8016
Start creating pipelines
Jan 11, 2025
ef3d13d
TODOs
Jan 11, 2025
2ee4038
Fix groups and runners trying to generate inside a parent type
Jan 11, 2025
5fea7d2
TODO
Jan 11, 2025
6c8d037
Fix incorrect handling of failed component deserialization
heymeepo Jan 11, 2025
a377372
Add ScriptableObject pool for UnityObjectEditorAdapter
heymeepo Jan 11, 2025
8f1d82a
Update SetComponent using ComponentDataBoxed instead of raw data
heymeepo Jan 11, 2025
e0f2e17
Fix OdinInspector cannot reuse editors to render components
heymeepo Jan 11, 2025
60684c9
Simplify component transformation
Jan 12, 2025
aa69f26
Unify logic between extractions
Jan 12, 2025
95c2a29
Start implementing logging
Jan 12, 2025
6c536d2
Mark with [NotSerialized] tag failed serialization components
heymeepo Jan 12, 2025
1e1f0a6
Discard SetComponent in remote mode for components that contains unit…
heymeepo Jan 12, 2025
e252f56
ImmutableArray.First() uses Enumerable under the hood
Jan 13, 2025
a53325a
Rename folder Utils/Debug -> Utils/DebugUtils
heymeepo Jan 13, 2025
dcabf97
Update CHANGELOG.md to 2024.1.1
heymeepo Jan 13, 2025
371b9b9
Update README.md
heymeepo Jan 13, 2025
ddd4276
Compiler services
Jan 13, 2025
9f1759a
Move systems & initializers to a separate pipeline
Jan 13, 2025
0cabafe
Speed up stash requirements construction
Jan 13, 2025
eb0b2bb
Simplify and speed up getting generic information
Jan 13, 2025
30b7600
Wrap try-catch blocks
Jan 13, 2025
28113f8
Delete enumerator from equatable array
Jan 13, 2025
3c18c5a
Logs
Jan 13, 2025
18b5147
Logger TODO
Jan 13, 2025
c1c6163
Generate providers only in unity
Jan 13, 2025
1b0d339
Allow sourcegens to be debugged in Rider in Fiddle project
Jan 14, 2025
cf376e6
Fix interface for systems, add another interface for always enabled s…
Jan 15, 2025
3dd22a7
One attribute for injection
Jan 15, 2025
b2ad815
Start remaking systems group sourcegen
Jan 16, 2025
5d44219
Finish runner rework
Jan 16, 2025
ccacb44
Cleanup
Jan 16, 2025
542c5cd
Remove generics support from runners and systems groups
Jan 16, 2025
1491fa0
Rename for consistency
Jan 16, 2025
f8d4a1c
Support any hierarchy of types
Jan 16, 2025
e2af5cb
Cleanup
Jan 16, 2025
c52868e
Support hierarchy in injection
Jan 16, 2025
66fd016
Support extra modifiers in hierarchy
Jan 16, 2025
1b2a7e4
Take stringbuilder once
Jan 16, 2025
e59c03e
Make injection its own pipeline with caching
Jan 17, 2025
79b90de
Combine with equatable array
Jan 17, 2025
80e55f4
Cleanup
Jan 17, 2025
c45bb18
TODO
Jan 17, 2025
50fc710
Cleanup
Jan 17, 2025
3cc0d63
Fix initializer hierarchy closing order
Jan 17, 2025
00351a9
Fix incorrect keywords for structs
Jan 17, 2025
1aa8598
Cleanup utilities
Jan 17, 2025
31d2775
Remove diagnostics
Jan 17, 2025
8654243
Skip logging if file is not writable
Jan 17, 2025
b2c7cec
Support any depth for includestash generics
Jan 17, 2025
b32d38b
Reduce unnecessary calls
Jan 17, 2025
3c5b820
Don't need to scan disposable if tag is detected already
Jan 17, 2025
79e1ac0
Cleanup
Jan 17, 2025
154f955
Cleanup
Jan 17, 2025
d518c47
Cleanup
Jan 17, 2025
148cf44
Allow specialization to be disabled by user code. Detect Unity as opt…
Jan 19, 2025
e2cac11
Use unity profiler if unity is detected, skipping MLogger interface c…
Jan 20, 2025
89d360c
Update SourceGenerators.csproj
Jan 20, 2025
9644e21
Cleanup attributes
Jan 20, 2025
ab480ae
Fix different symbol checks
Jan 20, 2025
dce355d
Use switch-case with enumeration as it enumerates anyway
Jan 20, 2025
a7c8043
Support custom field names for stash requirements
Jan 20, 2025
31fefca
Add calls to fiddle
Jan 20, 2025
0c5a9b9
Generate registration/deregistration code only if a registered field …
Jan 20, 2025
d181fed
Avoid expensive iterations if there are too many generic injection re…
Jan 20, 2025
29f186c
Force unbound generic type in pipeline
Jan 20, 2025
39a4d42
Fix incorrect profiling namespace
Jan 20, 2025
bb43964
TODO
Jan 20, 2025
4546e4e
Allow update methods to be optional in a runner/group
Jan 20, 2025
ff2a057
Fix incorrect order of modifiers for hierarchy classes
Jan 20, 2025
8a27c26
TODO
Jan 20, 2025
639cdc9
Fix profiler marker names if a type is inside an hierarchy of types
Jan 20, 2025
b696e63
Delete unused
Jan 20, 2025
ee1a73a
Simplify
Jan 21, 2025
d513f4f
Cleanup
Jan 21, 2025
a89a478
Allow injecting into properties
Jan 21, 2025
1bdb5f0
Fix incorrect detection
Jan 21, 2025
89a51a4
Test injectable properties
Jan 21, 2025
5241fd8
Add property to fiddle
Jan 21, 2025
3978885
Add ip field for remote WorldBrowser connection
heymeepo Jan 21, 2025
a6656af
Fix RemoteModelsStorage include define
heymeepo Jan 21, 2025
205dc1d
Rename
Jan 21, 2025
508e722
Rename profiler markers for clarity
Jan 21, 2025
b41dd81
Fix Registration
Jan 21, 2025
9a3d93a
Update GroupPipeline.cs
Jan 21, 2025
b2f2a89
Create new injection table by default if it wasn't provided
Jan 21, 2025
32ec22e
Incorrect usage fix
Jan 21, 2025
0186b8b
We are guaranteed to have injection table in constructor now
Jan 21, 2025
73f68db
Fix extra closing bracket
Jan 21, 2025
31f493b
Update README.md
heymeepo Jan 21, 2025
4963822
Merge branch 'stage-2024.1' into stage-2025.1
Jan 23, 2025
d573a90
Fixes after merge
Jan 23, 2025
ad24e5b
Update Scellecs.Morpeh.csproj
heymeepo Jan 23, 2025
9d1aa16
Merge branch 'stage-2024.1' into stage-2025.1
Jan 23, 2025
6361ef3
Disable sourcegen logging
Jan 23, 2025
37d0992
Update version in package.json
Jan 23, 2025
9f9b953
Support slow component API with MORPEH_SOURCEGEN_ENABLE_SLOW_COMPONEN…
Jan 23, 2025
9340fab
TODO
Jan 23, 2025
8ebb137
Add slow api to fiddle
Jan 23, 2025
4de97d8
Make EntityExtensions non-obsolete as GetWorld will probably not be r…
Jan 23, 2025
37a6cb9
Liveliness checks for entities in slow API
Jan 23, 2025
95a4cd0
Fix errors in fiddle
Jan 23, 2025
11646f3
Add DataComponent to fiddle
Jan 23, 2025
1c7eaeb
Rework FilterDisposalTests to use stashes
Jan 23, 2025
c883cf6
Rework MigrationTests to use stashes
Jan 23, 2025
fe8ac0d
Rework FilterMatchTests to use stashes
Jan 23, 2025
1b786ae
Rework WorldTests to use stashes
Jan 23, 2025
a1df3e8
Cleanup entity extensions
Jan 23, 2025
abdcca3
TODO
Jan 23, 2025
9289565
Fix compilation errors in .NET ~8 and Csharp ~12 projects
Jan 24, 2025
af86b3d
Remove TODOs, add comments
Jan 24, 2025
bb1cf8a
ForceGenerateSlowApi for components generator
Jan 24, 2025
c34a2ac
Meta files, cleanup runtime helper after merge, delete icon setter as…
Jan 24, 2025
923b380
Fix missing MORPEH_REMOTE_BROWSER condition directive
heymeepo Jan 24, 2025
d7d1cde
Fix missing MORPEH_REMOTE_BROWSER condition directive++
heymeepo Jan 24, 2025
162db76
Merge branch 'stage-2024.1' into stage-2025.1
Jan 24, 2025
3c64d29
Rework EntityViewer to use boxed api & IComponent
Jan 24, 2025
ba66d80
Get rid of ExtendedComponentId, use boxed API in world browser
Jan 24, 2025
d83b655
Use IDataComponent for GetStash<T> calls
Jan 24, 2025
de57143
Remove TODO
Jan 24, 2025
23afc9a
Cleanup
Jan 24, 2025
90f3c76
Restore doNotDisableSystemOnException functionality
Gallardo994 Jan 30, 2025
709d6e7
Fix incorrect exception types in components slow api calls
Gallardo994 Jan 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use IDataComponent for GetStash<T> calls
Gallardo994 committed Jan 24, 2025
commit d83b6556ae58aa85af8682e53c64a43b301c30e8
2 changes: 1 addition & 1 deletion Scellecs.Morpeh/Core/Worlds/WorldStashExtensions.cs
Original file line number Diff line number Diff line change
@@ -52,7 +52,7 @@ private static IStash CreateReflectionStash(this World world, Type type)
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[PublicAPI]
[UnityEngine.Scripting.Preserve]
public static Stash<T> GetStash<T>(this World world, int capacity = -1) where T : struct, IComponent {
public static Stash<T> GetStash<T>(this World world, int capacity = -1) where T : struct, IDataComponent {
world.ThreadSafetyCheck();

var info = ComponentId<T>.info;