* Added struct skeleton for EntityCoordinates.
* Polish EntityCoordinates, add tests, add EntityCoordinates to Transforms
* Doc cleanup
* Remove useless code
* Return offset 0 when you don't have a parent
* Test for making sure EntityCoordinates for entities without parents have offset 0
* Use parent transform's GridId for GetGridId.
* Adds various methods, checks and tests
* Replace GridCoordinates with EntityCoordinates
* EyeManager.WorldToScreen fix
* Address reviews
* Fix za buildo
* Fix one transform test
* Fix the remaining tests
* Remove duplicate
* Remove another merge duplicate
* Fix property
* Rename most usages of GridCoordinates to EntityCoordinates.
* Add WithEntityId method to EntityCoordinates.
* Fix EntityCoordinates usage in GetEntitiesInRange
* Remove cursed IMapGrid method, change naming.
* Makes GridTileLookupSystem use EntityCoordinates
Co-authored-by: Acruid <shatter66@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
update a bunch of packages and use JetBrains.Annotations as private asset as needed
mark some hot math methods agg inline to benefit from loop opts
use FMA for interp
use canny min/max/clamp
make Quaternion NormalizeAngle fixed time and faster
clean up YamlDotNet references
* Adds Map components to the ECS system.
* Grid entities are now created along with map grids.
Grid components are now properly reused from map deserialization when a grid is created through the MapManager.
* Make MapGridComponent shared.
Don't send Nullspace default grid to client, they have their own.
Properly link the new grid with the entity sent from the server.
* Fixes nullRefException when ToString() is called on an Entity with no Prototype.
* Adds logging debug info about binding a map/grid to an entity.
Nightly Commit.
* Client map networking now properly pivots a grid from the client entity to the shared entity.
Added IMapGridComponent.ClearGridId() to properly dissociate the component from a grid before deleting it.
WorldPosition of a default grid is always 0,0 regardless of the entity transform (if any).
Nullspace map and default grid are not bound to an entity.
Nullspace map and default grid cannot be deleted.
* Map Entities are now created along with new maps.
* Client & Server load with new scene hierarchy.
* Fix rebase damage.
* Added ContainerHelpers helper class.
* Fix Container checks.
* Fixed clothes.
* Fixing unit tests.
* Removed disabled code.
* Actually initialize and startup the Map and Grid entities.
* Moved IMap from Shared/Interfaces/Map to Shared/Map namespace.
* Extracted Map class out of the MapManager class.
* Removed the Map class and interface.
* Fully removed the Map and IMap class.
Code was changed so that time starts at tick zero, and all entities are initialized in the space between tick 0 to 1. This was a solution to the fact fromSequence was including entities with lastStateUpdate tick one less than the actual sequence number. This is purely an issue about when exactly the game does its logic relative to the tick signals, ie positive or negative edge of the tick. Right now the game is set up to run the game logic on the positive edge of a Tick (enforced by GameLoop).
The second big part is that an empty collection takes 5ish bytes more than a null collection in the NetSerializer, even though they are conceptually the same thing in a game state. This PR puts null checks around everything and allows GameStates to have whole sections of itself null. This reduced the payload size of an empty game state from 49B to 15B.
This PR also fixes the bug where the physics system marks every movable entity as dirty every tick.
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