// Copyright (c) 2023 Alex Diener. All rights reserved. #include "PROJECT_NAME/EntityComponent_facing.h" #include "PROJECT_NAME/EntityComponent_facingSteering.h" #include "PROJECT_NAME/GameEntity.h" #include "PROJECT_NAME/Utilities.h" #include #define stemobject_implementation EntityComponent_facingSteering stemobject_vtable_begin(); stemobject_vtable_entry(dispose); stemobject_vtable_entry(getMoveVector); stemobject_vtable_end(); EntityComponent_facingSteering * EntityComponent_facingSteering_create(void) { stemobject_create_implementation(init) } bool EntityComponent_facingSteering_init(EntityComponent_facingSteering * self) { call_super(init, self); return true; } void EntityComponent_facingSteering_dispose(EntityComponent_facingSteering * self) { call_super_virtual(dispose, self); } Vector2i EntityComponent_facingSteering_getMoveVector(EntityComponent_facingSteering * self, struct GameEntity * entity) { EntityComponent_facing * facingComponent = call_virtual(getComponent, entity, COMPONENT_FACING); if (facingComponent != NULL) { return facingToVector2i(facingComponent->facing); } return VECTOR2i_ZERO; }