* Removed the EntitySystem event implementation, it now uses the more advanced EventBus.
Removed EntitySystem.RegisterMessageTypes() function.
Removed EntitySystem.SubscribeEvents() function.
Added EntitySystemMessage.NetChannel field. This holds the remote net channel the event originated from.
* Removed the Sender object from events. If you needed this field, add it to the event class.
* Removed unused event proxy methods from Entity.
SubscribeEvent() has been split into SubscribeNetworkEvent() and SubscribeLocalEvent() methods on EntitySystem.
Most methods on EntityEventBus now require callers to specify the source (Local or Network) of the events.
* separates Rays from CollisionRays, removing collision masking from Ray
* Entity, ClientEntityManager and EntityManager classes occasionally need to UpdateEntityTree
Entity intersection queries now use a DynamicTree
DynamicTree now correctly reports Count and separately NodeCount
DynamicTree now has optionally precise queries
DynamicTree no longer incorrectly Adds on AddOrUpdate if Update is not necessary
Entity startup now starts Transform, then Collidable, then remaining components
EntityManger's Entity dictionary is now a ConcurrentDictionary to support iteration under modification
DynamicTree freeing root leaf no longer results in invalid tree
SnapGridComponent has been extended to support additional area and directional queries
* added lots of calls to UpdateEntityTree, will need to scale back during review
fixed moved/changed AABB updates to DynamicTree, missed a ref
converted other methods in EntityManager to use the tree for spatial queries
* add unit tests for DynamicTree
make Capacity and EnsureCapacity public, setting Capacity will call EnsureCapacity
* fix brace style
* Box2 Grow -> Enlarged, Combine -> Union
Clients would treat any message coming in as being from the server they're connected to, instead of ignoring them if they're not correct.
This made the client crash inside integration tests because messages came in while disconnected.
This fixes that.
This allows us to make Content.Client and Content.Server Exe projects so that they can be executed directly via your IDE. This'll help wtih not forgetting to do a full rebuild and such.
Grid collision rectangles are now drawn as a blue overlay in the CollisionOverlay debug view.
GridChunkPartition now also returns the bounding rectangle, which is a union of all the collision rectangles.
Each IPhysShape now handles it's own debug drawing with a new method, DebugDraw.
Added MapManager.Restart().
Added MapManager.CreateNewMapEntity() and MapManager.SetMapEntity() for manipulating the map root entity.
You can now spawn entities directly into Nullspace, after setting up the Nullspace map entity.
* Fold animation delays into a single set for all directions.
* Update systems to use new RSI animations API.
* Fetching layer directions now done in sprite render.
* Allow overriding direction in SpriteView.
* 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.
* Use GLFW instead of OpenTK windows
* Seems to work pretty well now.
* Fix stackalloc issue on Framework.
* Add GLFW project to sln.
* Fix package downgrade.
* Fix SLN more.
* Please work.
* Fix C# version error.
* UI layout v2.
All controls now act like containers.
Moved anchor/margin layout model to LayoutContainer
Implement basic WPF-like attached properties for the above LayoutContainer.
* Fix VV.
* 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.
* Use DynamicMethod for dependency injection.
Should be way faster to initialize types and also have no allocation overhead
* Cleanup, don't make injectors for types without dependencies
* Fix Framework, maybe?
* Test the new system explicitly.
* Adds a new IPhysicsShape object where you can define what collisions shape a PhysBody has.
AABB is now accessed through the PhysicsShape, so the BoundingBoxComponent is not required.
* Default PhysShape now copies the AABB of the BoundingBoxComponent.
* Fixed issue with serialization of PhysShapeAabbComp.
* Spatial queries now use ICollidableComponent instead of BoundingBoxComponent.
showbb now draws entities using the obsolete BoundingBoxComponent in Aqua.
* Renamed PhysShapeAabbComp to PhysShapeAabb.
Removed BoundingBoxComponent.
* Default CollidableComponent does not collide with anything now.
* Renamed ICollidable to IPhysBody.
Moved ICollidable to the Robust.Shared/Physics namespace.
* PhysShapes are now a collection of primitive shapes that contribute to the whole PhysBody.
ObjectSerializer.DataField can now deal with abstract types using YAML tags.
* Added LocalBounds property to ClickableComponent.
Added state to ClickableComponent.
* Added a Rectangle physics shape.
* ClickableComponent now actually checks that a click is inside its bounds.
* Reverted the addition of a try/catch around map loading. Any errors can propagate to the code trying to load the map again.