add blueprint & property implementation

Signed-off-by: Folling <mail@folling.io>
This commit is contained in:
Folling 2025-01-04 15:25:10 +01:00
parent bfac86b8a1
commit 8dff07f3fc
Signed by: folling
SSH key fingerprint: SHA256:S9qEx5WCFFLK49tE/LKnKuJYM5sw+++Dn6qJbbyxnCY
6 changed files with 772 additions and 43 deletions

View file

@ -154,6 +154,22 @@ IKA_API void ikarus_blueprint_set_name(
struct IkarusErrorData * error_out
);
/// \brief Gets whether a blueprint has a property.
/// \param blueprint The blueprint to check the property of.
/// \pre \li Must not be null.
/// \pre \li Must exist.
/// \param property The property to check the existence of.
/// \pre \li Must not be null.
/// \pre \li Must exist.
/// \pre \li Must be in the same project as the blueprint.
/// \param error_out \see errors.h
/// \return True if the blueprint has the property, false otherwise or if an error occurs.
IKA_API bool ikarus_blueprint_has_property(
struct IkarusBlueprint * blueprint,
struct IkarusProperty * property,
struct IkarusErrorData * error_out
);
/// \brief Gets the properties of a blueprint.
/// \param blueprint The blueprint to get the properties of.
/// \pre \li Must not be null.
@ -161,7 +177,7 @@ IKA_API void ikarus_blueprint_set_name(
/// \param size_out An out parameter for the number of items in the returned array or undefined if an error occurs.
/// \param error_out \see errors.h
/// \return The properties of the blueprint or null if an error occurs.
IKA_API struct IkarusBlueprint ** ikarus_blueprint_get_properties(
IKA_API struct IkarusProperty ** ikarus_blueprint_get_properties(
struct IkarusBlueprint * blueprint,
size_t * size_out,
struct IkarusErrorData * error_out
@ -176,15 +192,15 @@ IKA_API struct IkarusBlueprint ** ikarus_blueprint_get_properties(
IKA_API size_t
ikarus_blueprint_get_properties_count(struct IkarusBlueprint * blueprint, struct IkarusErrorData * error_out);
/// \brief Gets all entities linked to a blueprint.
/// \param blueprint The blueprint to get the entities of.
/// \brief Gets the linked entities of a blueprint.
/// \param blueprint The blueprint to get the linked entities of.
/// \pre \li Must not be null.
/// \pre \li Must exist.
/// \param size_out An out parameter for the number of items in the returned array or undefined if an error occurs.
/// \remark Ignore if null.
/// \param error_out \see errors.h
/// \return The entities linked to the blueprint or null if an error occurs.
IKA_API struct IkarusEntity ** ikarus_blueprint_get_entities(
/// \return The linked entities of the blueprint or null if an error occurs.
IKA_API struct IkarusEntity ** ikarus_blueprint_get_linked_entities(
struct IkarusBlueprint * blueprint,
size_t * size_out,
struct IkarusErrorData * error_out
@ -197,7 +213,7 @@ IKA_API struct IkarusEntity ** ikarus_blueprint_get_entities(
/// \param error_out \see errors.h
/// \return The number of entities linked to the blueprint or 0 if an error occurs.
IKA_API size_t
ikarus_blueprint_get_entities_count(struct IkarusBlueprint * blueprint, struct IkarusErrorData * error_out);
ikarus_blueprint_get_linked_entities_count(struct IkarusBlueprint * blueprint, struct IkarusErrorData * error_out);
IKARUS_END_HEADER