RoosterDragon
330ca92045
Fix RCS1077
2023-11-19 19:28:57 +02:00
RoosterDragon
93a97d5d6f
Fix CA1851, assume_method_enumerates_parameters = true
2023-08-20 20:41:27 +02:00
RoosterDragon
3275875ae5
Fix CA1851
2023-08-20 20:41:27 +02:00
RoosterDragon
169c60883b
Fix CA2249, CA2251
2023-08-07 21:38:09 +02:00
Gustas
211f7160dc
Remove \r
...
we use \n everywhere else in the engine
2023-05-20 20:47:56 +03:00
RoosterDragon
8a285f9b19
Fix IDE0090
2023-04-08 16:51:51 +03:00
RoosterDragon
cbd0583289
Fix IDE0062
2023-04-08 16:51:51 +03:00
RoosterDragon
95f675becd
Improve performance of ActorInfo.TraitsInConstructOrder.
...
Avoid redundant enumerations of the more and unresolved enumerables. This gives an approx 3x speedup for this function.
2023-04-03 17:29:08 +03:00
abcdefg30
5bf7fe852c
Remove the copyright year numbers
2023-01-11 11:58:54 +02:00
abcdefg30
6a31b1f9f3
Update the copyright header year
2022-05-28 00:35:10 -05:00
Eduardo Cáceres
79f321cb44
.Any(), .Count() -> .Count or .Length
2022-05-18 11:42:36 -05:00
RoosterDragon
2583a7af31
After NotBefore<> support to control initialization order.
...
Requires<T> means that trait of type T will be initialized first, and asserts that at least one exists. The new NotBefore<T> means that trait of type T will be initialized first, but allows no traits.
This allows traits to control initialization order for optional dependencies. They want to be initialized second so they can rely on the dependencies having been initialized. But if the dependencies are optional then to not throw if none are present.
We apply this to Locomotor which was previously using AddFrameEndTask to work around trait order initialization. This improves the user experience as the initialization is applied whilst the loading screen is still visible, rather than the game starting and creating jank by performing initialization on the first tick.
2022-04-18 10:31:47 +01:00
Andre Mohren
6810469634
Updated copyright years.
2021-06-29 18:33:21 -05:00
teinarss
10676be377
Replace F extension with string interpolation
2021-05-08 22:20:59 +02:00
teinarss
c2279d3071
Change GetField calls to use nameof
2021-02-28 18:43:51 +01:00
Paul Chote
0eb0041f90
Allow ActorInits to target a specific trait by matching the @ suffix.
2020-06-08 19:18:38 +02:00
Paul Chote
86f61298e6
Replace ITraitInfo interface with TraitInfo class.
2020-05-21 13:01:04 +02:00
abcdefg30
23b3c237b7
Update the year numbers in all license headers to 2020
2020-01-05 17:00:34 +00:00
abcdefg30
9a5eaa7cb7
Don't throw an exception when a field is missing
2019-12-07 09:15:38 +01:00
Paul Chote
dba1301b61
Change new BitSet<T> to default(BitSet<T>).
2019-06-08 13:19:57 +02:00
abcdefg30
cadbd0d9ab
Change the year number in all cs headers from 2018 to 2019
2019-01-26 23:15:21 +01:00
Paul Chote
f6768fe624
Remove legacy editor actor properties plumbing.
2018-12-08 22:53:13 +01:00
Peter Antal
d2ff5b49fd
Allow each caller on MergeOrDefault to discard nodes.
...
Use filtering ActorInfo's to drop template actors.
2018-03-21 12:10:31 +01:00
RoosterDragon
d0f7511a62
Add TrimExcess to TypeDictionary.
...
After adding is finished, this can be used to reduce the memory footprint of the dictionary.
2018-03-21 12:08:23 +01:00
RoosterDragon
5bd5a384b7
Use a BitSet for representing target types.
...
- Rename Bits<T> to BitSet<T>.
- Implement set based helpers for BitSet<T>.
- When representing TargetTypes of ITargetable in various traits, use a BitSet<TargetableType> instead of HashSet<string> for better performance & reduced memory usage.
- Fix FieldLoader to trim input values when generating a BitSet<T>.
- Require T in BitSet<T> and BitSetAllocator<T> to be a class since it's just a marker value. This allows the JIT to instantiate generic code for these classes once, as they don't benefit from specialized code for T. (Typically JITs will generate shared code for all reference types, and unique code for every value type encountered).
2018-03-21 12:07:44 +01:00
Arular101
8a60918841
Update copyright notice year to 2018
2018-01-17 00:47:34 +01:00
Taryn Hill
43317e0f5d
Update copyright notice year to 2017
2016-12-31 23:46:13 -06:00
RoosterDragon
36c9558b5f
Added some comments to TraitsInConstructOrder.
2016-03-29 23:10:49 +01:00
RoosterDragon
3192432a5c
Strengthen ordering of TraitsInConstructOrder.
...
All types that are dependencies of a trait must now occur before it in the construct ordering. Previously, only one type that was a dependency of a trait needed to occur before it.
2016-03-29 23:10:46 +01:00
Paul Chote
e71225496b
Clarify GPL version.
2016-02-21 16:30:48 +00:00
Paul Chote
b396965fd9
Update licence header year.
2016-02-21 16:27:31 +00:00
Paul Chote
ab921682c4
Rewrite yaml merger.
2016-01-30 15:03:56 +00:00
abcdefg30
3c171569a7
Merge pull request #10193 from atlimit8/ITraitInfoInterface
...
TraitInfoInterface base for interfaces implemented by trait infos
2015-12-29 15:04:57 +01:00
atlimit8
3d2aa751a3
TraitInfoInterface base for interfaces implemented by trait infos
2015-12-07 18:22:43 -06:00
RoosterDragon
0caffa8196
Remove some global state dependence in ActorInfo.
...
Instead on relying on the global Game.ModData.ObjectCreator, this is passed in via a parameter.
2015-11-28 17:20:32 +01:00
Paul Chote
c7249e6fa6
Move yaml removals to the end of the merge.
2015-11-28 17:20:32 +01:00
Paul Chote
a074bb1d4b
Rename MiniYaml MergeLiberal -> MergePartial, MergeStrict -> Merge.
2015-11-28 17:20:21 +01:00
RoosterDragon
bfe1804bf6
Fix some spellings.
2015-11-27 16:19:59 +00:00
atlimit8
9cef739dd5
Make ActorInfo.{Traits => traits} private
2015-09-21 15:50:57 -05:00
atlimit8
b889675c83
ActorInfoTest fixup with new ActorInfo ctor
2015-09-21 15:50:57 -05:00
atlimit8
b38b6eadd0
Add IEnumerable<ITraitInfo> ActorInfo.TraitInfos() replacing actorInfo.traits enumeration
2015-09-21 15:50:57 -05:00
atlimit8
09984683a7
Add ActorInfo.TraitInfo[OrDefault]<T>() requiring ITraitIfo types
2015-09-19 09:56:14 -05:00
atlimit8
8162fa27ab
Add ActorInfo.HasTraitInfo<T>() requiring ITraitInfo types
2015-09-19 09:49:24 -05:00
atlimit8
429a9380e8
Ignore trait property requirements for abstract actor types
2015-07-12 12:44:30 -05:00
atlimit8
7881ff40bf
Added FieldLoader.SerializeAttribute.Required to require fields in MiniYaml
2015-07-12 12:44:22 -05:00
abcdefg30
6afc6a879e
Update the ActorInfo summary
2015-07-05 18:43:10 +02:00
Paul Chote
8a1f9261c3
Convert hidden [Desc] to a <summary>.
2015-04-22 21:24:48 +12:00
Paul Chote
2cbe269c1e
Support multiple inheritance for actor rules.
2015-04-22 21:24:47 +12:00
Paul Chote
0a43b3da72
Rewrite yaml merging block removal.
...
Fixes #2922 , #6818 .
2015-04-22 19:58:10 +12:00
abcdefg30
8ca61aa917
Updated all year numbers
2015-01-09 21:18:05 +01:00