Finishing what I started a couple years ago, the packaging system now packages .rsi files into single .rsic files. This means a single .rsi "file" (1 + N files) becomes a single file when packaged.
This should improve performance on game startup, downloading, etc etc. The total file count for SS14 goes down from 30,000 to 6,000 (with the previous change for merging text files too).
Mostly just involved shuffling a bunch of the RSI loading code around so that it can be re-used for this purpose nicely. The original prototype in the code was copy-pasted, which obviously couldn't be relied upon.
This does mean that if you're loading an RSI's interior PNG directly via a texture path, that PNG will now be unavailable on packaged builds. To avoid this, you can set "rsic": false in the meta.json, so that it gets left alone by the pass.
Vector3, Vector4, Matrix4, and Quaternion are now gone. Use System.Numerics instead.
This commit is just replacing usages, cleaning up using declarations, and moving over the (couple) helpers that are actually important.
* feat: Add VV editor for tuples
* refactor: make tuple editor work in more cases
* feat: support other arity tuples
* fix: correct release notes entry
* refactor: use a new index selector for tuples
Also yank out silly unused code.
* fix: make all non-ValueTuples readonly
* refactor: spell out ValueTuple arities
,,,,,,,,,,,,,,,,,,,,,
* Find PlacementModes by attribute
* Let modes specify priority
* Make some PlacementManager dependencies public so Content can use them
* Space out the priorities a bit more
* xmldoc for attribute
* Revert "xmldoc for attribute"
This reverts commit f1f0299c55.
* Revert "Space out the priorities a bit more"
This reverts commit 549eac1eb2.
* Revert "Make some PlacementManager dependencies public so Content can use them"
This reverts commit c060f6cb2d.
* Revert "Let modes specify priority"
This reverts commit f113b40c7f.
* Revert "Find PlacementModes by attribute"
This reverts commit 27efb6c5cf.
* Completely redo to use PlacementManager's mode dictionary
* Backwards compat
* Cache the value of AllModeNames
* feat: now view-variable controls can be registered from content, or even dynamically added
* refactor: whitespaces and xml-doc
* refactor: added changelog entry
* refactor: added methods for adding condition at start and at the end
* refactor: merged start/end methods, for IViewVariableControlFactory, improved changelog message
* refactor: replaced bool insertLast with InsertPosition enum
* refactor: reverse order of checks registration in ViewVariableControlFactory c-tor
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
* add: IColorSelectorStrategy class
defines some common variables and functions that depend on the slider type
my hope is to kill all the switch statements in here
* add: IColorSelectorStrategy FromColorData method
* add: RGB and HSV color slider strategies
* add: initialize ColorSelectorStrategy
* refactor: rename IColorSelectorStrategy to IColorSliderStrategy
this makes more sense i think
* refactor: nuke switch statements, use strategy in colorselectorsliders
* remove: remove GetSliderLabels in favor of strategy
* refactor: better abstraction for slider InputBox.ValueChanged
* refactor: rename OnColorSet to OnSliderValueChanged
more intuitive
* refactor: turn alpha slider max value into a const
no magic numbers
* tweak: make color sliders update channels individually
* fix: add braces around this callback
* tweak: move some variables around
i realize there's an Order to this so
* add: throw error if UpdateSlider is called with invalid value
* add: documentation comments to ColorSelectorSliders
* refactor: simplify UpdateSlider
* refactor: simplify GetColorValueDivisor
* fix: solved the color slider stack overflow
* fix: ensure _strategy is set before other functions use it
* tweak: rename Update to UpdateAllSliders
clearer
* fix: update slider colors on update
accidentally removed it and forgot to put it back
* remove: redundant comment
false alarm
* fix: prevent inputbox infinite event loop
this was also erroneously changing the color whenever the slider type changed
* fix: reviews part 1
- changed ColorSliderStrategy into abstract class
- fixed "strategy" typo
- changed NotImplementedException into ArgumentOutOfRangeException
* fix: make selector strategy static instances
There was a bunch of complex code to analyze the full type string the server sent, except I have no idea what use this was. It's both incorrect (the type string isn't guaranteed to work if the remote .NET version is different) and unnecessary as PropertyFor already handles all the cases.
* Make some PlacementManager dependency fields public
* Revert "Make some PlacementManager dependency fields public"
This reverts commit 99fe37b502.
* Now part of IPlacementManager
* fix: use correct device in OAL extension lookup
* fix: don't try to set non-existent window icons
* Revert "fix: don't try to set non-existent window icons"
This reverts commit 793958fb8c.
Moving to other PR.
* Clean up all missing EntitySystem proxy method uses
* Restore comment
* Fix bad change that caused closure allocation
* tuple
* Revert "tuple"
This reverts commit 14581a40aa.
* Revert "Fix bad change that caused closure allocation"
This reverts commit 215b2559ed.
* Revert "Restore comment"
This reverts commit 4a47a36557.
* Revert "Clean up all missing EntitySystem proxy method uses"
This reverts commit 3b1fe4ce7f.
* Redo with improved code fixer.
Let's see how it fares this time
Fixes#6020
The assert was caused by the native OS path (C:\Windows\...) being passed through a ResPath. Bad. While looking at this I realized the sound font loader callback system was a mess and I should probably clean it up, so I did.
The file name is now properly namespaced in the loader callback, which should avoid spaghetti like this in the future. The details of how this works are a pain in the ass because Fluidsynth isn't well-designed.
I split LoadSoundfont() into two functions: one for resource, one for user paths. The other is kept there but compatible.
I can't believe I spent 3 hours on dealing with this nonsense and most of it is just due to Fluidsynth being poorly designed...
Previously these errors propagated all the way into Clyde. Guh.
Probably still need more error handling around the input system, but this is important regardless.
* Fix TransformComponent state handling changing the coordinates of detached entities
* Make ResetPredictedEntities not handle state for detached entities
* Fix incorrect saved window positions
As of however many UI PRs ago windows store their last position on the client and it re-opens windows at that position.
The issue is that the code to avoid windows being able to go off-screen was immediately bulldozing this value, at least if the x <= 0. Now we just don't run it until we have a valid measure (probably the frame after) and avoid unnecessarily having an incorrect position applied.
* Explainer
* Replace PhysicsMapComponent
- Dumb idea
- Lots of book-keeping and perf overhead.
- Much saner this way.
* stuff
* More work
* Purge
* Fixes
* Eh?
* Fixes
* Also this
* weh
* Fixes
* ice-cream
* Fix
* Fix stacking / gravity
* Gravity query
* MoveBuffer optimisations
* Fixes for test
* World gravity
* Fix build
* Avoid some transform resolves for contactless ents
* Less getcomps
* Fix contact caching
* Possibly less copies
* reh
* bulldoze
* Test "fix"
* seikrets
* a
* I saw this but now I decideded against it
* true