Commit Graph

1035 Commits

Author SHA1 Message Date
reaperrr
04fb0f209d Spatially partition some actor overlays 2017-12-23 17:56:11 +00:00
RoosterDragon
ca01a1f186 Presize MemoryStream when possible.
Also use GetBuffer when we know we have presized the stream to the exact required size to prevent a needless copy.
2017-12-19 00:59:11 +01:00
reaperrr
383840135f Replace IsDisabled checks in production with IsTraitPaused/Disabled checks
Note: We might want to separate IsTraitDisabled checks later (possibly make the latter cancel the currently produced item), but that can be done in a follow-up.
2017-12-17 21:18:44 +00:00
GSonderling
488cec64b8 Added support for filtering exits by production type. 2017-12-13 04:08:52 +01:00
Paul Chote
c87409ed1a Remove legacy bounds code. 2017-12-11 19:45:07 +01:00
Paul Chote
ff5b4b15b3 Introduce IDecorationBounds to replace Actor.SelectionOverlayBounds. 2017-12-11 19:45:07 +01:00
Paul Chote
6f5d035e79 Introduce IMouseBounds and split/rework mouse rectangles.
The render bounds for an actor now include the area covered
by bibs, shadows, and any other widgets. In many cases this
area is much larger than we really want to consider for
tooltips and mouse selection.

An optional Margin is added to Selectable to support cases
like infantry, where we want the mouse area of the actor
to be larger than the drawn selection box.
2017-12-11 19:45:07 +01:00
Paul Chote
8fcc80b05a Use IRender.ScreenBounds in ScreenMap.
Traits are now required to trigger a ScreenMap update whenever they
believe that their ScreenBounds have changed.
2017-12-11 19:45:07 +01:00
Paul Chote
86bfe28ade Add ScreenBounds method to IRender interface.
This method is expected to return Rectangles that cover
the region where Renderables returned by Render may exist.
2017-12-11 19:45:07 +01:00
Paul Chote
29255c8e01 Add IModel.AggregateBounds and ModelAnimation.ScreenBounds.
The bounds define the smallest Rectangle that covers all
rotations of all frames within a model sequence.
2017-12-11 19:45:07 +01:00
RoosterDragon
62ab6ae6f1 OccupiedCells and TargetableCells must return arrays, not just enumerables.
This allows callers to efficiently enumerate these returned collections without the allocation and overhead imposed by the IEnumerable interface. All implementations were already returning arrays, so this only required a signature change.
2017-12-07 20:39:30 +02:00
RoosterDragon
6a97502e09 Reuse buffers when loading Xcc databases.
We can reuse the list as a buffer when reading strings to avoid throwaway allocations, which will reduce GC pressure during loading.
2017-11-30 02:16:51 +02:00
reaperrr
c48ddbdfa5 Fix Mammoth Mk2 render bounds
And polish trait internals a little.
2017-11-29 11:39:24 +02:00
reaperrr
d21992130a Fix TS harvester render bounds 2017-11-29 11:39:24 +02:00
abcdefg30
ed67cea852 Fix a crash in Disguise.cs when order.TargetActor is null 2017-11-26 18:41:53 +01:00
abcdefg30
c83dda4ce7 Initialize AsActor as self.Info 2017-11-26 18:41:53 +01:00
abcdefg30
4c707ad6a6 Fix WithDisguisingInfantryBody crashing when losing the disguise 2017-11-26 18:41:53 +01:00
Paul Chote
b898b5001a Rename AttackBase.IsAttacking to IsAiming to make its uses and assumptions clear. 2017-11-26 15:58:00 +01:00
Mustafa Alperen Seki
f35f6c0813 Move Sprite handling from Disguise to WithDisguisingInfantryBody 2017-11-15 15:48:24 +00:00
Mustafa Alperen Seki
ecdfcda43e Add DisguisedAsCondition 2017-11-15 15:48:24 +00:00
Mustafa Alperen Seki
bb600620a9 Add ShowTicks to InfiltrateForCash 2017-11-15 15:16:39 +01:00
reaperrr
8b7a71685c Remove AmmoPool-awareness from Armament 2017-11-12 19:48:06 +00:00
Andrii Yukhymchak
f4dbf55510 Chrono into map edge fix 2017-11-12 18:23:17 +00:00
Paul Chote
4fe7ffed85 Simplify and fix code quality in GpsDot. 2017-11-03 09:56:00 +01:00
Paul Chote
1376ad674e Remove Player.CanViewActor and .CanTargetActor. 2017-11-03 09:56:00 +01:00
Paul Chote
47634b25f9 Remove IFogVisibilityModifier. 2017-11-03 09:56:00 +01:00
Paul Chote
4dba9f5b88 Add RevealDisguiseType.Move. 2017-11-03 09:30:50 +01:00
Paul Chote
7afd219742 Expose Disguise ValidStances and TargetTypes to yaml. 2017-11-03 09:30:50 +01:00
Paul Chote
c9c7c5744c Explicitly implement interfaces in Disguise trait. 2017-11-03 09:30:50 +01:00
Paul Chote
5f9a67ed87 Migrate frozen actors from ExtraData to Target. 2017-10-26 18:48:41 +03:00
Paul Chote
cfac996438 Generalize factionVariant to a TypeDictionary of Inits. 2017-10-22 03:32:21 +03:00
RoosterDragon
3a9abda441 Specify C# 5 as the language version used in all projects.
Attempts to use features from a new version will generate compile errors (on Roslyn and possibly other compilers), preventing accidental adoption of new language features.
2017-10-19 14:18:03 +02:00
Paul Chote
d967c564a2 Remove TargetActor and TargetLocation from order issuing. 2017-10-15 19:07:46 +02:00
Paul Chote
19b2c33514 Remove unused code from AttackOrderPower. 2017-10-15 19:07:46 +02:00
Raffael Zica
f2b5040d30 YamlException is now thrown if WeaponInfo can not be found in Ruleset.Weapons
Removed invalid spacing at the end of the line 36 in ThrowsShrapnel

Prevented NullReferenceException in cases where weapons aren't optional
2017-10-14 14:12:08 +02:00
Paul Chote
f425cbe0a4 Fix double-chronoshift return location exploit. 2017-10-08 20:04:36 +02:00
reaperrr
8533debc44 Require explicit INotifyAddedToWorld and INotifyRemovedFromWorld 2017-10-07 10:17:11 +02:00
reaperrr
9aaf800bca Require explicit INotifyActorDisposing 2017-09-28 13:14:08 +02:00
Paul Chote
69daa7e7cc Don't draw mine overlay for single-cell fields. 2017-09-27 21:00:56 +02:00
Paul Chote
a0e028ee0e Fix mine field overlay extending to map corner for the first tick. 2017-09-27 21:00:56 +02:00
Paul Chote
cc17b7419a Add voice feedback when issuing a mine deploy order. 2017-09-27 21:00:56 +02:00
Paul Chote
1d6cd81690 Add mine deployment to the command bar. 2017-09-27 21:00:56 +02:00
Matthias Mailänder
d17e414648 Fix the overlay to actor rule for crates 2017-09-22 13:04:29 +02:00
Matthias Mailänder
44cfa793df Don't import veinholedummy and correct it's index
as it is a Westwood hack we don't need to immitate.
There are already better ways to limit vein growth.
2017-09-22 13:04:29 +02:00
reaperrr
c3ece99796 Spatially partition SatelliteLaunch and GpsSatellite effects 2017-09-17 12:52:04 +01:00
reaperrr
85e60ef77f More misc explicit interface implementations
By-product from making ITick explicit in various places.
2017-09-16 15:51:37 +02:00
reaperrr
ec354f89cd Make ITick implementations explicit in Mods.Cnc and Mods.D2k 2017-09-16 15:51:37 +02:00
reaperrr
ddfed13db4 Make Tick and TickIdle explicit in WithInfantryBody 2017-09-16 15:51:37 +02:00
reaperrr
dbcfb0c92e Rename and move WithTurretedSpriteBody
The name wasn't in line with our implicit naming convention and ambigous on top of that.
Also, only used by RA and TD so moved to Mods.Cnc.
2017-09-15 18:10:13 +01:00
abcdefg30
17f7aac35c Add more RevealDisguiseOn types 2017-09-13 21:18:21 +02:00