DarkflameServer/dGame/dComponents
David Markowitz ae349d6b15
feat: Add isolated and simplified path to add components (#1204)
* Components: Make ComponentType inline

Prevents the next commits ODR violation

* Components: Add new components

* Entity: Add headers

inline script component ComponentType

* Components: Flip constructor argument order

Entity comes first always

* Entity: Add generic AddComponent

Allows for much easier adding of components and is error proof by not allowing the user to add more than 1 of a specific component type to an Entity.

* Entity: Migrate all component constructors

Move all to the new variadic templates AddComponent function to reduce clutter and ways the component map is modified.
The new function makes no assumptions.  Component is assumed to not exist and is checked for with operator[].  This will construct a null component which will then be newed if the component didnt exist, or it will just get the current component if it does already exist.  No new component will be allocated or constructed if the component already exists and the already existing pointer is returned instead.

* Entity: Add placement new

For the case where the component may already exist, use a placement new to construct the component again, it would be constructed again, but would not need to go through the allocator.

* Entity: Add comments on likely new code

* Tests: Fix tests

* Update Entity.cpp

* Update SGCannon.cpp

* Entity: call destructor when re-constructing

* Update Entity.cpp

Update Entity.cpp

---------

Co-authored-by: Aaron Kimbrell <aronwk.aaron@gmail.com>
2023-10-22 20:08:49 -05:00
..
AchievementCacheKey.h cleanup enums to make them more consistent 2023-01-22 17:38:47 -06:00
BaseCombatAIComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
BaseCombatAIComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
BouncerComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
BouncerComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
BuffComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
BuffComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
BuildBorderComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
BuildBorderComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
CharacterComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
CharacterComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
CMakeLists.txt feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
CollectibleComponent.cpp feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
CollectibleComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
Component.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
Component.h chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
ControllablePhysicsComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
ControllablePhysicsComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
DestroyableComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
DestroyableComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
DonationVendorComponent.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
DonationVendorComponent.h chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
InventoryComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
InventoryComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
ItemComponent.cpp feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
ItemComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
LevelProgressionComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
LevelProgressionComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
LUPExhibitComponent.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
LUPExhibitComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
MissionComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
MissionComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
MissionOfferComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
MissionOfferComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
ModelComponent.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
ModelComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
ModuleAssemblyComponent.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
ModuleAssemblyComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
MovementAIComponent.cpp chore: Small movementAiComponent cleanup (#1145) 2023-08-03 21:38:04 -05:00
MovementAIComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
MovingPlatformComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
MovingPlatformComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
MultiZoneEntranceComponent.cpp fix #1194 (#1196) 2023-09-19 05:59:02 -05:00
MultiZoneEntranceComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PetComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
PetComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PhantomPhysicsComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
PhantomPhysicsComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PhysicsComponent.cpp chore: Physics Component abstraction and addition of tests (#1159) 2023-10-09 15:19:38 -05:00
PhysicsComponent.h chore: Physics Component abstraction and addition of tests (#1159) 2023-10-09 15:19:38 -05:00
PlayerForcedMovementComponent.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
PlayerForcedMovementComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PossessableComponent.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
PossessableComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PossessorComponent.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
PossessorComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PropertyComponent.cpp format codebase 2022-07-28 08:39:57 -05:00
PropertyComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PropertyEntranceComponent.cpp feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PropertyEntranceComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PropertyManagementComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
PropertyManagementComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
PropertyVendorComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
PropertyVendorComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
ProximityMonitorComponent.cpp format codebase 2022-07-28 08:39:57 -05:00
ProximityMonitorComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
RacingControlComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
RacingControlComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
RacingSoundTriggerComponent.h fix: Implement proper Sound trigger component serialization (#1160) 2023-08-06 15:38:12 -05:00
RacingStatsComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
RailActivatorComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
RailActivatorComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
RebuildComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
RebuildComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
RenderComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
RenderComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
RigidbodyPhantomPhysicsComponent.cpp chore: Physics Component abstraction and addition of tests (#1159) 2023-10-09 15:19:38 -05:00
RigidbodyPhantomPhysicsComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
RocketLaunchpadControlComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
RocketLaunchpadControlComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
ScriptedActivityComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
ScriptedActivityComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
ShootingGalleryComponent.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
ShootingGalleryComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
SimplePhysicsComponent.cpp feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
SimplePhysicsComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
SkillComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
SkillComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
SoundTriggerComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
SoundTriggerComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
SwitchComponent.cpp chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
SwitchComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
TriggerComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
TriggerComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
VehiclePhysicsComponent.cpp chore: Physics Component abstraction and addition of tests (#1159) 2023-10-09 15:19:38 -05:00
VehiclePhysicsComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
VendorComponent.cpp feat: Abstract Logger and simplify code (#1207) 2023-10-21 16:31:55 -07:00
VendorComponent.h chore: Make serialize actually virtual (#1156) 2023-08-10 14:33:15 -07:00
ZoneControlComponent.cpp feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00
ZoneControlComponent.h feat: Add isolated and simplified path to add components (#1204) 2023-10-22 20:08:49 -05:00