Commit Graph

1010 Commits

Author SHA1 Message Date
Paul Chote
5b017cee58 Remove "Primary" tag. 2015-12-26 12:38:27 +00:00
Paul Chote
ef2f9cbafa Remove "Fake" tag. 2015-12-26 12:38:27 +00:00
Paul Chote
372bbaf7b6 Overhaul WithDecoration trait. 2015-12-26 12:38:26 +00:00
Paul Chote
3ceacbb7c1 Fix Z-sorting for UISpriteRenderable. 2015-12-26 12:37:22 +00:00
Matthias Mailänder
4f080a996e also render highest density sprite frame 2015-12-25 19:37:55 +01:00
Matthias Mailänder
e80625880f Merge pull request #10011 from atlimit8/EasierActorSelectionInGame
Better actor selection in game by actor bounds center
2015-12-25 19:17:12 +01:00
Matthias Mailänder
b289478123 Merge pull request #10189 from reaperrr/less-lazy1
AttackBase and Armament optimizations
2015-12-25 14:04:46 +01:00
RoosterDragon
3a2139de26 Add PlayerDictionary.
This custom collection allows other classes to implement a Player to value mapping, but also stores the values in an array for faster lookup by the player index in the world. For some code, this improved lookup time is important for performance.
2015-12-23 23:54:04 +00:00
atlimit8
b07cd683e8 Easier actor selection in game by actor bounds center 2015-12-23 12:09:08 -06:00
atlimit8
43b2957331 Merge pull request #10251 from abcdefg30/removeISpriteBody
Remove ISpriteBody
2015-12-21 11:37:54 -06:00
Matthias Mailänder
0fe644f458 Merge pull request #10203 from pchote/widelines2
Rewrite line renderer: Part 2 (remove LineRenderer plus other cleanups)
2015-12-21 07:36:21 +01:00
Oliver Brakmann
71478aa2b8 Merge pull request #9734 from RoosterDragon/auto-target-perf
Improve AutoTarget performance
2015-12-20 19:53:17 +01:00
abcdefg30
72ac5240b8 Remove ISpriteBody 2015-12-20 18:44:55 +01:00
Paul Chote
8fc323602c Use RgbaColorRenderer in WeatherOverlay. 2015-12-19 12:28:56 +00:00
Paul Chote
f6606afa8b Use RgbaColorRenderer in CombatDebugOverlay. 2015-12-19 12:28:10 +00:00
Paul Chote
b35762f537 Use RgbaColorRenderer in TerrainGeometryOverlay. 2015-12-19 12:28:09 +00:00
Paul Chote
0f1fcdaca4 Move DrawTargetMarker to TargetLineRenderable. 2015-12-19 12:28:08 +00:00
teees
00c15eaf3a Add cruising upgrade to Aircraft trait 2015-12-16 13:18:18 +01:00
Oliver Brakmann
c7a9d024b0 Merge pull request #10234 from abcdefg30/damagedFix
Fix the idle animation of the host in WithRepairAnimation.cs
2015-12-15 22:51:18 +01:00
abcdefg30
6e5181fe4d Fix the idle animation of the host in WithRepairAnimation.cs using the damage state of the repaired actor. 2015-12-15 20:57:55 +01:00
teees
c1c386a994 Removed default definitions for repair and rearmbuildings in Aircraft.cs 2015-12-15 18:44:05 +01:00
Oliver Brakmann
20725c9b2c Merge pull request #10153 from abcdefg30/repairableNear
Add a 'Voice' field to RepairableNearInfo
2015-12-14 21:59:56 +01:00
Oliver Brakmann
11cbb43212 Merge pull request #9918 from penev92/fixTransforms
Fix an oversight regarding building unlocking
2015-12-14 21:00:41 +01:00
Oliver Brakmann
02fa63c1b4 Merge pull request #9853 from penev92/unglobalFileSystem
Unglobal file system
2015-12-14 20:52:30 +01:00
reaperrr
0d60ee5fe0 Disable WithSpriteTurret until build/transform complete 2015-12-14 15:27:52 +01:00
teees
19036d1927 Disable WithVoxelTurret until build/transform complete 2015-12-14 12:10:40 +01:00
reaperrr
2d55bbdedf Cache trait look-ups and range modifiers directly in Armament
Avoid the performance impact of accessing Lazy.Value by caching them
when the actor is created and accessing the references directly when needed.
2015-12-14 04:34:58 +01:00
reaperrr
0e5ea959aa Perform faster checks in AB.CanAttack much earlier
Move self.IsDisabled right after IsInWorld and IsTraitDisabled checks.
This should skip/avoid a lot of the following checks when actors are disabled by low power, EMP or similar, potentially saving some performance when there are many disabled actors with attack trait.

Move IsValidFor before HasAnyValidWeapons because the latter is more
expensive.
2015-12-14 04:34:58 +01:00
reaperrr
acc9b37a01 Remove ITraitInfo from AttackBase
That is already included in UpgradableTraitInfo.
2015-12-14 04:34:58 +01:00
atlimit8
bee590a057 Merge pull request #10208 from RoosterDragon/perf-comments
Added some performance comments
2015-12-13 20:46:07 -06:00
Pavel Penev
22678221d0 Fix an oversight regarding building unlocking 2015-12-14 04:18:57 +02:00
Pavel Penev
1b88d24cfa Unstatic GlobalFileSystem and rename it to FileSystem
Add a ModFiles field on ModData and move all access to the file system to go through that.
2015-12-14 03:42:22 +02:00
Matthias Mailänder
02c5c1bbfb Merge pull request #10148 from pchote/widelines
Rewrite line renderer: Part 1 (improved lasers plus other cleanups)
2015-12-13 20:55:54 +01:00
Oliver Brakmann
1f440baaa0 Merge pull request #10120 from RoosterDragon/gps-dot-perf
Fix broken GPS and frozen actor behaviour
2015-12-13 18:28:12 +01:00
RoosterDragon
b0619a3e25 Added comments in performance sensitive code. 2015-12-13 16:24:54 +00:00
Oliver Brakmann
59d22a2ff0 Fix AttackMove not working properly under certain conditions
This fixes the issue where AttackMove (and possibly other order modes) would not work properly when people were clicking their mouse buttons at the same time. A move order (the default order mode) would be issued instead.
2015-12-13 14:16:06 +01:00
abcdefg30
fe334906f6 Make 'CloseEnough' on 'RepairableNear' use WDist 2015-12-13 01:10:38 +01:00
abcdefg30
301c2f0ca0 Add a 'Voice' field to RepairableNearInfo 2015-12-13 01:08:34 +01:00
RoosterDragon
21292061f9 Added "PERF: Avoid LINQ." comments. 2015-12-12 21:05:13 +00:00
RoosterDragon
7fbbaa2221 Optimize AutoTarget.ChooseTarget.
Avoid using LINQ for filtering, grouping and dictionary building. Instead, we do these ourselves to reduce overhead.

Actors are checked for AutoTargetIgnoreInfo (rather than the trait) since info checks are marginally faster. This check can now be done immediately to allow us to skip such actors right away.

The ClosestTo calculation is now only run on the group on actors for the selected armament, rather than all potential armaments.
2015-12-12 20:55:22 +00:00
RoosterDragon
487727c9d0 Optimize AutoTarget.ScanForTarget.
The currentTarget parameter is null at the only call site. Inlining it allows us to make some simplifications to the logic.
2015-12-12 20:55:20 +00:00
RoosterDragon
16386873af Optimize AttackBase.ChooseArmamentsForTarget.
Remove the unused onlyEnabled parameter to avoid it needlessly being captured in the closure, and simplify the logic.

Evaluate RequiresForceFire and Weapon.IsValidAgainst last in their respective logic chains as these are the most expensive operations and benefit from short-circuiting being able to skip their evaluation.
2015-12-12 20:55:19 +00:00
RoosterDragon
0fab3ec1b2 Remove LINQ in some performance critical AutoTarget paths. 2015-12-12 20:55:18 +00:00
RoosterDragon
dcf375a412 Store Targetables in Actor.
This can be used to avoid several lookups for these traits, as well as allow Actor to provide specialised methods to deal with target types efficiently. This also reduces some code duplication.
2015-12-12 20:55:17 +00:00
RoosterDragon
912a0630e2 Tweak some Render methods for efficiency. 2015-12-12 20:42:43 +00:00
RoosterDragon
cbc090dd38 Ensure frozen actors are rendered on the first tick they become visible.
The previous lazy rendering means the snapshot of the render state might be more up to date then when the frozen actor actually did become visible. Now, we take this snapshot as soon as needed. We still retain the performance of only doing this rendering when needed by avoiding extra rendering until the visibility cycles again.
2015-12-12 19:54:25 +00:00
teees
3b65232365 Optionally discard resources when silo capacity has been reached 2015-12-11 17:55:40 +01:00
teees
9dba85def5 Use heightmap to get correct groundlevel, fix additional behavior 2015-12-11 17:10:38 +01:00
Paul Chote
78556ec60c Remove obsolete WorldRenderer.DrawRangeCircle. 2015-12-10 23:25:58 +00:00
Paul Chote
170ef577d7 Reimplement RenderDetectionCircle trails. 2015-12-10 23:22:47 +00:00