abcdefg30
5bf7fe852c
Remove the copyright year numbers
2023-01-11 11:58:54 +02:00
Gustas
858d782af1
Simplify 'default' expression (IDE0034)
2022-10-11 17:40:05 +02:00
Vapre
e3aa2dc6c0
HitShape, query trait via actor cached targetable positions.
2022-09-10 18:23:12 +02:00
abcdefg30
6a31b1f9f3
Update the copyright header year
2022-05-28 00:35:10 -05:00
Eduardo Cáceres
7eb64ea6fc
Use read-only autoimplemented property when possible
2022-05-18 11:42:36 -05:00
RoosterDragon
d67f696bd0
Move BlockedByActor, IPositionableInfo, IPositionable to Mods.Common.
...
Actor previously cached targetable locations for static actors as an optimization. As we can no longer reference the IPositionable interface, move this optimization to HitShape instead. Although we lose some of the efficiency of caching the final result on the actor, we gain some by allowing HitShape to cache the results as long as they have not changed. So instead of being limited to static actors, we can extend the caching to currently stationary actor.
2022-02-11 23:35:08 +01:00
Matthias Mailänder
59bed108b1
Minor csharp warning fixes.
2021-10-30 13:11:14 +02: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
Matthias Mailänder
5a0bcc01a6
Add a lint check for trait placement on hardcoded actor names.
2021-04-11 20:20:00 +02:00
teinarss
e12ff2c59d
Remove our own ReadOnlyDictionary and update usages
2021-04-03 11:33:31 +02:00
teinarss
d60c05eff3
Change to use pattern matching
2021-03-27 17:29:20 +01:00
teinarss
6b74093c04
Add readonly to structs
2021-03-14 15:17:57 +01:00
Paul Chote
d52ba83f96
Replace terniary null checks with coalescing.
2021-03-08 18:11:25 +01:00
teinarss
4a1e4f3e16
Use expression body syntax
2021-03-07 13:00:52 +00:00
abcdefg30
e6c9d5fc96
Don't check IsTraitDisabled twice when calculating IsTargetableBy
2021-02-12 02:17:26 +01:00
Paul Chote
90b26681eb
Remove trait queries from Actor ctor.
2020-10-18 18:00:17 +02:00
RoosterDragon
bb116034c7
Avoid or reduce LINQ allocations required in various areas.
2020-10-17 23:48:48 +02:00
reaperrr
f67b7ad837
Cache IResolveOrder traits on Actor
...
Avoids looking up all of them each time
an actor is given an order.
2020-10-10 13:59:40 +01:00
teinarss
9c4fd0e3d3
Use Null-Propagation Operator
2020-08-19 18:11:07 +01:00
teinarss
27f1a7ab27
Use out var syntax
2020-08-19 18:11:07 +01:00
Paul Chote
8c3793e7ea
Rename WRot.Zero to WRot.None.
2020-07-17 15:02:32 +02:00
Paul Chote
43717a89b5
Add Orientation getter to IFacing.
2020-06-21 18:05:40 +02:00
Paul Chote
b856613194
Add ISingleInstanceInit interface.
...
Inits that are logically singletons (e.g. actor
location or owner) should implement this interface
to avoid runtime inconsistencies.
Duplicate instances are rejected at init-time,
allowing simpler queries when they are used.
2020-06-19 17:57:56 +02:00
Paul Chote
6adf45bcb4
Convert IFacing.Facing and TurnSpeed to WAngle.
2020-06-12 18:35:41 +02:00
abcdefg30
52a9fcef3c
Rename "Created" to "Initialize" and let it handle adding to the world
2020-05-30 19:47:29 +02:00
Paul Chote
7c6ec577dc
Rewrite ActorInit queries.
2020-05-28 19:04:53 +02:00
atlimit8
1ef27d18c1
check name for Actor.GrantCondition()
2020-05-17 12:33:29 +02:00
atlimit8
259c8d2c98
Merge ConditionManager trait directly into Actor
2020-05-09 15:46:11 +02:00
Paul Chote
88cdad4189
Add support for polygon selection shapes.
2020-03-24 00:07:10 -05:00
abcdefg30
7cec1b771d
Fix Actor.CurrentActivity bogusly pointing to finished activities
2020-02-16 16:58:06 +01:00
abcdefg30
23b3c237b7
Update the year numbers in all license headers to 2020
2020-01-05 17:00:34 +00:00
abcdefg30
56726a0533
Add an ICreationActivity interface
2019-10-06 14:42:50 +01:00
tovl
b9c302a73a
Move ChildActivity handling into base Activity class.
2019-07-03 20:42:19 +02:00
Paul Chote
dba1301b61
Change new BitSet<T> to default(BitSet<T>).
2019-06-08 13:19:57 +02:00
Paul Chote
dabc7ec8dd
Remove unnecessary this. references.
2019-06-08 13:19:27 +02:00
Evgeniy S
3a30b013a5
Move Selection into a Trait
2019-05-31 15:50:53 +02:00
Oliver Brakmann
b4fd7331b2
Simplify Activity class
...
After the removal of the CompositeActivity class, all the supporting
code that made it work can be removed as well.
2019-03-30 14:38:23 +00:00
tovl
705795abde
Activity.Cancel returns void instead of bool.
2019-03-09 21:47:43 +00:00
tovl
8191a6566b
Add missing self and optional pretick parameters to Queue, QueueChild and PrintActivity methods.
...
This means sequenceActivities needs to accept self as well.
2019-03-09 21:47:43 +00:00
Paul Chote
ab4a7e3558
Replace System.Drawing primitives with our own.
2019-03-04 18:26:42 +00: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
a545b2e5fa
Deselect actors when their owner changes.
2019-01-26 21:40:31 +00:00
Paul Chote
0406b89a96
Add Actor.ReplacedByActor to track transformations.
...
This isn't great conceptually, but has precedent
in the Generation number.
2018-12-17 22:19:26 +01:00
Paul Chote
4b6853b433
Prevent multiple Transforms from triggering in the same tick.
...
This leads to actor duplication.
2018-12-08 11:34:49 +01:00
reaperrr
1553a8a5cb
Fix empty activity tick when becoming idle
...
Activities usually don't do much more than cleanup on their last, 'null' tick.
That, combined with queued activities normally only starting to tick on the next tick,
would lead to visible 1-tick 'gaps' between movement activities.
Non-movement activities would suffer from the same problem,
only with different (presumably less noticable) symptoms.
Now we start ticking any activity that was queued from OnBecomingIdle
immediately, to avoid that issue.
2018-12-05 09:20:58 +13:00
reaperrr
422ba16ed9
Run TickIdle from inside Actor.Tick instead of World.Tick
...
Avoids calling ActorsWithTrait<INotifyIdle> every tick and allows caching all INotifyIdle traits at creation.
2018-10-15 22:53:57 +02:00
reaperrr
9bcb754836
Add OnActorDispose plumbing to Activity
...
This allows activities to perform necessary cleanups on actor
death/disposal, for example by running OnLastRun directly,
which would otherwise be skipped when the actor dies or is disposed
through other means.
2018-09-24 22:01:22 +02:00
reaperrr
c983dda077
Fix husks not updating targetable positions on teleport
...
This should have checked for IPositionableInfo to begin with.
Husk already implements IPositionable, so implementing *Info as well
makes sense, even if it only serves to exclude it from
ITargetablePositions caching for now.
2018-08-14 17:26:36 +01:00
Chris Forbes
d4ef841678
Convert masses of HashSet<string> to BitSet<DamageType>
2018-07-28 20:12:42 +01:00