Give BoxContainer a preset capacity to reduce allocations in layout.
Removed Control.GetChild(string) and similar. This was no longer used (and was a pretty bad idea in general), and the implementation had a lot of wasted book keeping to do.
Use UpdateLayout() instead of DoUpdateLayout() in Control minsize changed to avoid doing redundant layout, and by extension style & minsize, updates.
Used RemoveAllChildren instead of DisposeAllChildren in EntitySpawnWindow because it's faster (way less stuff to clear, just let the GC handle it).
Optimized ResourcePath with a better GetHashCode(), better Equals, replacement for List<T>.ToArray()
Fixed enumerator allocations in stylesheet SelectorElement matching to speed up style updates.
ResourceCache now caches fallbacks to avoid constructing Resource instance when fetching fallback explicitly.
ResourceCache now has nested dictionaries for Type -> ResourcePath -> BaseResource storage of resources.
Use calculated property instead of auto property for TextureResource.Fallback
Reverts b40413dfd6.
Decorates EntityPrototype.Name with CanBeNull.
The entity spawn window now properly handles prototypes with null names. Previously, a null name would throw a NullException. Entities with null names will never show up in the spawn window search results.
* Fixes right click menu stopping input
Removed a flag change when the modal stack was showing, which preventing the click from getting passed to the next function.
* Added parsing for mod2 and mod3 from Keybind YAML
* Fixes a crash on context change when a keybind is not defined in keybinds.yml
* Implemented ShowDebugConsole Hotkey
* Refactored input system
Refactored input system to run Key and Mouse input through the InputManager before doing stuff.
* Upgraded LineEdit and classes that use it. Fixed input while KeyboardFocused.
Upgraded LineEdit to use Keybinds.
Upgraded DebugConsole to use Keybinds.
Replaced all references to MouseDown, MouseUp, KeyDown, and KeyUp with KeyBindUp and KeyBindDown.
Moved UserInterfaceManager call from GameController.Input to InputManager event.
Stopped input going to simulation while a control has focus in UserInterfaceManager.
* Some fixes for input system
Fixed keybinds getting stuck when selecting a LineEdit.
Changed MenuBar to not error.
Fixed a few cases where LineEdit would eat input if you hovered over it and where mouse input got eaten when clicking in the world while a LineEdit was selected.
* Removed extra dependencies
* Added GUIBoundKeyEventArgs to ButtonEventArgs
* Fixes for input with LineEdit selected
Fixed multiple keybinds mapped to the same key not triggering.
Fixed keybind input not getting to LineEdit when hovering over a control.
* Implemented Key Repeat for LineEdit
* Fix for input on Robust.Lite Launcher
* Renames NonFocusKeybinds to EnableAllKeybinds
Renamed NonFocusKeybinds to EnableAllKeybinds and added comment to clarify usage
* Adds repeating keybinds
Used for TextBackspace, TextCursorLeft, and TextCursorRight
Reverts a change to LineEdit that implemented repeating keys
Adds some documentation comments
* Refactor UI system.
Deferred updating is used for styling & layout. This fixes the awful time complexity of containers.
Removed SetDefaults and Initialize. They were a bad idea alright.
* Fix build on .NET Framework.
* Attempted Clyde cleanup, didn't get far.
* Add negation operator to Vector2i.
* Add RenderOrder to ISpriteComponent.
* Post process shaders.
Adds "post process" shaders to sprite component.
These are executed on the WHOLE sprite component (every layer)
in one draw.
This is necessary to implement functional outlines.
* Remove unused options menu tscn
* Move SS14Window to pure C#
* Move SpriteView to pure C#
* Move EntitySpawnWindow and EntitySpawnItem to pure C#
* Removes using statements accidentally added by resharper
* Set EntitySpawnWindow default size to normal value
Note that in construction menu and storage menu this had to be done in the object initializer and didn't work if it was set in the Initialize function for the respective menus. For whatever reason setting it in the EntitySpawnWindow.Initialize works fine.
Not quite perfect, but quite usable.
Adds the ability to scale the UI. Scaling is controlled via a cvar,
and can be changed at runtime.
Fractional scaling is supported.
Some controls could be better (SpriteView, TextureRect),
but for now it's a good start.
* Added centered unit box static field to Box2.
* MapGrid is more testable.
* Added some unit tests for MapGrid.
Fixed bug in MapChunk.GridTileToLocal().
MapGrid.UpdateAABB() actually expands properly now.
* Moved IMapChunk to Robust.Shared.Map.
Moved Chunk class out of MapManager class.
* Added unit tests for MapChunk.
* Bounds reduce by 1, so almost working.
* Now bound shrinking works :D
* Moved MapGrid out of MapManager.
Moved IMapGrid into the Shared/Map folder.
Replaced all calls to IMapGrid.ParentMap.Index with IMapGrid.ParentMapId.
* Added more MapGrid unit tests.
Fixed a bug in TryGetTileRef.
* Removed unused method TileRef.GetStep().
Removed unused property TileRef.TileSize.
Removed unused property TileRef.Tile, made the field public with the same name.
Made the TileRef struct readonly.
Removed property TileRef.TileDef.
Removed property TileRef.LocalPos.
Renamed GridTile to GridIndices.
Implemented IEquatable on TileRef.
Implemented Equality operators on TileRef.
Added PublicAPI attribute to TileRef.
Added doc comments to TileRef.
* Modified Tile:
Added the PublicApi annotation.
Made struct readonly.
Filled out doc comments.
Changed auto properties to readonly fields.
Renamed TileId to TypeId.
Added a static Empty tile to the struct.
Implemented IEquatable.
* Modified MapCoordinates:
Added PublicApi attribute.
Implemented IEquatable.
Filled out doc comments.
Removed Map property.
* Modified ScreenCoordinates:
Filled out doc comments.
Added the PublicApi attribute.
Implemented IEquatable.
* Modified GridCoordinates:
Removed method IsValidLocation.
* Removed property GridCoordinates.Grid.
* Removed GridCoordinates.Map.
* Removed GridCoordinates.MapId.
* Removed property GridCoordinates.IsWorld.
Removed constructors taking a MapId.
* Removed static IoCManager calls from GridCoordinates.
* Modified GridCoordinates:
Added attribute PublicApi.
Filled out doc comments.
* Filled out doc comments for MapGrid.
Filled out doc comments for MapIndices.
Misc refactors for both.
* added command to teleport grids.
* Added method Box2.Intersect.
Added method Box2.Union.
Placement manager now spawns new grids to place tiles not connected to an existing grid.
RobustToolbox projects should be named Robust.*
This PR changes the RobustToolbox projects from SS14.* to Robust.*
Updates SS14.* prefixes/namespaces to Robust.*
Updates SpaceStation14.sln to RobustToolbox.sln
Updates MSBUILD/SS14.* to MSBUILD/Robust.*
Updates CSProject and MSBuild references for the above
Updates git_helper.py
Removes Runserver and Runclient as they are unusable