tirbofish/dropbear · diff
fix: got dropbear.h to stop regenerating on every since build(makes build times faster)
Signature present but could not be verified.
Unverified
@@ -16,7 +16,16 @@ pub fn generate_c_header() -> anyhow::Result<()> { let mut enums = Vec::new(); collect_exported_functions(&src_dir, &mut functions, &mut structs, &mut enums)?; + functions.sort_by(|a, b| a.name.cmp(&b.name)); + enums.sort_by(|a, b| a.name.cmp(&b.name)); + let header = render_header(&functions, &structs, &enums); + if let Ok(existing) = std::fs::read_to_string(&output_path) { + if existing == header { + return Ok(()); + } + } + std::fs::write(&output_path, header)?; Ok(()) @@ -42,8 +51,12 @@ fn collect_exported_functions( enums: &mut Vec<EnumDef>, ) -> anyhow::Result<()> { if dir.is_dir() { - for entry in std::fs::read_dir(dir)? { - let entry = entry?; + let mut entries = std::fs::read_dir(dir)? + .filter_map(Result::ok) + .collect::<Vec<_>>(); + entries.sort_by_key(|entry| entry.path()); + + for entry in entries { let path = entry.path(); if path.is_dir() { collect_exported_functions(&path, out, structs, enums)?; @@ -536,7 +549,9 @@ fn render_header( for enm in enums { emit_repr_c_enum(enm, structs, &mut emitted, &mut out); } - for ty in needed { + let mut needed_list: Vec<String> = needed.into_iter().collect(); + needed_list.sort(); + for ty in needed_list { emit_structs_recursive(&ty, structs, &mut emitted, &mut out); } @@ -179,72 +179,31 @@ typedef struct NShapeCastStatusFfi { typedef NShapeCastStatusFfi NShapeCastStatus; -typedef void* PhysicsStatePtr; - -typedef struct NVector2 { - double x; - double y; -} NVector2; - -typedef struct i32Array { - int32_t* values; - size_t length; - size_t capacity; -} i32Array; - -typedef struct NNodeTransform { - NVector3 translation; - NQuaternion rotation; - NVector3 scale; -} NNodeTransform; - -typedef struct NNode { - const char* name; - const int32_t* parent; - i32Array children; - NNodeTransform transform; -} NNode; +typedef void* AssetRegistryPtr; -typedef struct NNodeArray { - NNode* values; - size_t length; - size_t capacity; -} NNodeArray; +typedef struct AxisLock { + bool x; + bool y; + bool z; +} AxisLock; typedef struct IndexNative { uint32_t index; uint32_t generation; } IndexNative; -typedef struct RigidBodyContext { - IndexNative index; - uint64_t entity_id; -} RigidBodyContext; - -typedef struct f64ArrayArray { - double* values; +typedef struct IndexNativeArray { + IndexNative* values; size_t length; size_t capacity; -} f64ArrayArray; - -typedef struct NSkin { - const char* name; - i32Array joints; - f64ArrayArray inverse_bind_matrices; - const int32_t* skeleton_root; -} NSkin; +} IndexNativeArray; -typedef struct NSkinArray { - NSkin* values; - size_t length; - size_t capacity; -} NSkinArray; +typedef struct CharacterCollisionArray { + uint64_t entity_id; + IndexNativeArray collisions; +} CharacterCollisionArray; -typedef struct NTransform { - NVector3 position; - NQuaternion rotation; - NVector3 scale; -} NTransform; +typedef void* CommandBufferPtr; typedef struct u64Array { uint64_t* values; @@ -252,35 +211,44 @@ typedef struct u64Array { size_t capacity; } u64Array; -typedef struct NCollider { - IndexNative index; - uint64_t entity_id; - uint32_t id; -} NCollider; - -typedef struct RayHit { - NCollider collider; - double distance; -} RayHit; +typedef struct ConnectedGamepadIds { + u64Array ids; +} ConnectedGamepadIds; typedef void* GraphicsContextPtr; -typedef struct IndexNativeArray { - IndexNative* values; +typedef void* InputStatePtr; + +typedef struct f64Array { + double* values; size_t length; size_t capacity; -} IndexNativeArray; +} f64Array; -typedef struct CharacterCollisionArray { - uint64_t entity_id; - IndexNativeArray collisions; -} CharacterCollisionArray; +typedef struct NAnimationChannel { + int32_t target_node; + f64Array times; + NChannelValues values; + NAnimationInterpolation interpolation; +} NAnimationChannel; -typedef struct Progress { - size_t current; - size_t total; - const char* message; -} Progress; +typedef struct NAnimationChannelArray { + NAnimationChannel* values; + size_t length; + size_t capacity; +} NAnimationChannelArray; + +typedef struct NAnimation { + const char* name; + NAnimationChannelArray channels; + float duration; +} NAnimation; + +typedef struct NAnimationArray { + NAnimation* values; + size_t length; + size_t capacity; +} NAnimationArray; typedef struct NAttenuation { float constant; @@ -288,32 +256,18 @@ typedef struct NAttenuation { float quadratic; } NAttenuation; +typedef struct NCollider { + IndexNative index; + uint64_t entity_id; + uint32_t id; +} NCollider; + typedef struct NColliderArray { NCollider* values; size_t length; size_t capacity; } NColliderArray; -typedef void* WorldPtr; - -typedef void* CommandBufferPtr; - -typedef struct ConnectedGamepadIds { - u64Array ids; -} ConnectedGamepadIds; - -typedef void* InputStatePtr; - -typedef struct NShapeCastHit { - NCollider collider; - double distance; - NVector3 witness1; - NVector3 witness2; - NVector3 normal1; - NVector3 normal2; - NShapeCastStatus status; -} NShapeCastHit; - typedef struct NColour { uint8_t r; uint8_t g; @@ -328,6 +282,11 @@ typedef struct NVector4 { double w; } NVector4; +typedef struct NVector2 { + double x; + double y; +} NVector2; + typedef struct NMaterial { const char* name; uint64_t diffuse_texture; @@ -352,10 +311,11 @@ typedef struct NMaterialArray { size_t capacity; } NMaterialArray; -typedef struct NRange { - float start; - float end; -} NRange; +typedef struct i32Array { + int32_t* values; + size_t length; + size_t capacity; +} i32Array; typedef struct NModelVertex { NVector3 position; @@ -387,216 +347,256 @@ typedef struct NMeshArray { size_t capacity; } NMeshArray; -typedef struct f64Array { - double* values; +typedef struct NNodeTransform { + NVector3 translation; + NQuaternion rotation; + NVector3 scale; +} NNodeTransform; + +typedef struct NNode { + const char* name; + const int32_t* parent; + i32Array children; + NNodeTransform transform; +} NNode; + +typedef struct NNodeArray { + NNode* values; size_t length; size_t capacity; -} f64Array; +} NNodeArray; -typedef struct NAnimationChannel { - int32_t target_node; - f64Array times; - NChannelValues values; - NAnimationInterpolation interpolation; -} NAnimationChannel; +typedef struct NRange { + float start; + float end; +} NRange; -typedef struct NAnimationChannelArray { - NAnimationChannel* values; +typedef struct NShapeCastHit { + NCollider collider; + double distance; + NVector3 witness1; + NVector3 witness2; + NVector3 normal1; + NVector3 normal2; + NShapeCastStatus status; +} NShapeCastHit; + +typedef struct f64ArrayArray { + double* values; size_t length; size_t capacity; -} NAnimationChannelArray; +} f64ArrayArray; -typedef struct NAnimation { +typedef struct NSkin { const char* name; - NAnimationChannelArray channels; - float duration; -} NAnimation; + i32Array joints; + f64ArrayArray inverse_bind_matrices; + const int32_t* skeleton_root; +} NSkin; -typedef struct NAnimationArray { - NAnimation* values; +typedef struct NSkinArray { + NSkin* values; size_t length; size_t capacity; -} NAnimationArray; +} NSkinArray; -typedef void* AssetRegistryPtr; +typedef struct NTransform { + NVector3 position; + NQuaternion rotation; + NVector3 scale; +} NTransform; + +typedef void* PhysicsStatePtr; + +typedef struct Progress { + size_t current; + size_t total; + const char* message; +} Progress; + +typedef struct RayHit { + NCollider collider; + double distance; +} RayHit; + +typedef struct RigidBodyContext { + IndexNative index; + uint64_t entity_id; +} RigidBodyContext; typedef void* SceneLoaderPtr; -typedef struct AxisLock { - bool x; - bool y; - bool z; -} AxisLock; +typedef void* WorldPtr; -int32_t dropbear_gamepad_is_button_pressed(InputStatePtr input, uint64_t gamepad_id, int32_t button_ordinal, bool* out0); -int32_t dropbear_gamepad_get_left_stick_position(InputStatePtr input, uint64_t gamepad_id, NVector2* out0); -int32_t dropbear_gamepad_get_right_stick_position(InputStatePtr input, uint64_t gamepad_id, NVector2* out0); -int32_t dropbear_collider_group_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); -int32_t dropbear_collider_group_get_colliders(WorldPtr world, PhysicsStatePtr physics, uint64_t entity, NColliderArray* out0); +int32_t dropbear_asset_model_get_animations(AssetRegistryPtr asset, uint64_t model_handle, NAnimationArray* out0); +int32_t dropbear_asset_model_get_label(AssetRegistryPtr asset, uint64_t model_handle, char** out0); +int32_t dropbear_asset_model_get_materials(AssetRegistryPtr asset, uint64_t model_handle, NMaterialArray* out0); +int32_t dropbear_asset_model_get_meshes(AssetRegistryPtr asset, uint64_t model_handle, NMeshArray* out0); +int32_t dropbear_asset_model_get_nodes(AssetRegistryPtr asset, uint64_t model_handle, NNodeArray* out0); +int32_t dropbear_asset_model_get_skins(AssetRegistryPtr asset, uint64_t model_handle, NSkinArray* out0); +int32_t dropbear_asset_texture_get_height(AssetRegistryPtr asset_manager, uint64_t texture_handle, uint32_t* out0); +int32_t dropbear_asset_texture_get_label(AssetRegistryPtr asset_manager, uint64_t texture_handle, char** out0, bool* out0_present); +int32_t dropbear_asset_texture_get_width(AssetRegistryPtr asset_manager, uint64_t texture_handle, uint32_t* out0); +int32_t dropbear_camera_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); +int32_t dropbear_camera_get_aspect(WorldPtr world, uint64_t entity, double* out0); +int32_t dropbear_camera_get_eye(WorldPtr world, uint64_t entity, NVector3* out0); +int32_t dropbear_camera_get_fovy(WorldPtr world, uint64_t entity, double* out0); +int32_t dropbear_camera_get_pitch(WorldPtr world, uint64_t entity, double* out0); +int32_t dropbear_camera_get_sensitivity(WorldPtr world, uint64_t entity, double* out0); +int32_t dropbear_camera_get_speed(WorldPtr world, uint64_t entity, double* out0); +int32_t dropbear_camera_get_target(WorldPtr world, uint64_t entity, NVector3* out0); +int32_t dropbear_camera_get_up(WorldPtr world, uint64_t entity, NVector3* out0); +int32_t dropbear_camera_get_yaw(WorldPtr world, uint64_t entity, double* out0); +int32_t dropbear_camera_get_zfar(WorldPtr world, uint64_t entity, double* out0); +int32_t dropbear_camera_get_znear(WorldPtr world, uint64_t entity, double* out0); +int32_t dropbear_camera_set_eye(WorldPtr world, uint64_t entity, const NVector3* eye); +int32_t dropbear_camera_set_fovy(WorldPtr world, uint64_t entity, double fovy); +int32_t dropbear_camera_set_pitch(WorldPtr world, uint64_t entity, double pitch); +int32_t dropbear_camera_set_sensitivity(WorldPtr world, uint64_t entity, double sensitivity); +int32_t dropbear_camera_set_speed(WorldPtr world, uint64_t entity, double speed); +int32_t dropbear_camera_set_target(WorldPtr world, uint64_t entity, const NVector3* target); +int32_t dropbear_camera_set_up(WorldPtr world, uint64_t entity, const NVector3* up); +int32_t dropbear_camera_set_yaw(WorldPtr world, uint64_t entity, double yaw); +int32_t dropbear_camera_set_zfar(WorldPtr world, uint64_t entity, double zfar); +int32_t dropbear_camera_set_znear(WorldPtr world, uint64_t entity, double znear); int32_t dropbear_character_collision_get_character_collision_collider(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NCollider* out0); +int32_t dropbear_character_collision_get_character_collision_normal1(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NVector3* out0); +int32_t dropbear_character_collision_get_character_collision_normal2(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NVector3* out0); int32_t dropbear_character_collision_get_character_collision_position(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NTransform* out0); +int32_t dropbear_character_collision_get_character_collision_status(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NShapeCastStatus* out0); +int32_t dropbear_character_collision_get_character_collision_time_of_impact(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, double* out0); int32_t dropbear_character_collision_get_character_collision_translation_applied(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NVector3* out0); int32_t dropbear_character_collision_get_character_collision_translation_remaining(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NVector3* out0); -int32_t dropbear_character_collision_get_character_collision_time_of_impact(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, double* out0); int32_t dropbear_character_collision_get_character_collision_witness1(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NVector3* out0); int32_t dropbear_character_collision_get_character_collision_witness2(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NVector3* out0); -int32_t dropbear_character_collision_get_character_collision_normal1(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NVector3* out0); -int32_t dropbear_character_collision_get_character_collision_normal2(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NVector3* out0); -int32_t dropbear_character_collision_get_character_collision_status(WorldPtr world, uint64_t entity, const IndexNative* collision_handle, NShapeCastStatus* out0); -int32_t dropbear_collider_get_collider_shape(PhysicsStatePtr physics, const NCollider* collider, ColliderShape* out0); -int32_t dropbear_collider_set_collider_shape(PhysicsStatePtr physics, const NCollider* collider, const ColliderShape* shape); int32_t dropbear_collider_get_collider_density(PhysicsStatePtr physics, const NCollider* collider, double* out0); -int32_t dropbear_collider_set_collider_density(PhysicsStatePtr physics, const NCollider* collider, double density); int32_t dropbear_collider_get_collider_friction(PhysicsStatePtr physics, const NCollider* collider, double* out0); -int32_t dropbear_collider_set_collider_friction(PhysicsStatePtr physics, const NCollider* collider, double friction); -int32_t dropbear_collider_get_collider_restitution(PhysicsStatePtr physics, const NCollider* collider, double* out0); -int32_t dropbear_collider_set_collider_restitution(PhysicsStatePtr physics, const NCollider* collider, double restitution); -int32_t dropbear_collider_get_collider_mass(PhysicsStatePtr physics, const NCollider* collider, double* out0); -int32_t dropbear_collider_set_collider_mass(PhysicsStatePtr physics, const NCollider* collider, double mass); int32_t dropbear_collider_get_collider_is_sensor(PhysicsStatePtr physics, const NCollider* collider, bool* out0); -int32_t dropbear_collider_set_collider_is_sensor(PhysicsStatePtr physics, const NCollider* collider, bool is_sensor); -int32_t dropbear_collider_get_collider_translation(PhysicsStatePtr physics, const NCollider* collider, NVector3* out0); -int32_t dropbear_collider_set_collider_translation(PhysicsStatePtr physics, const NCollider* collider, const NVector3* translation); +int32_t dropbear_collider_get_collider_mass(PhysicsStatePtr physics, const NCollider* collider, double* out0); +int32_t dropbear_collider_get_collider_restitution(PhysicsStatePtr physics, const NCollider* collider, double* out0); int32_t dropbear_collider_get_collider_rotation(PhysicsStatePtr physics, const NCollider* collider, NVector3* out0); +int32_t dropbear_collider_get_collider_shape(PhysicsStatePtr physics, const NCollider* collider, ColliderShape* out0); +int32_t dropbear_collider_get_collider_translation(PhysicsStatePtr physics, const NCollider* collider, NVector3* out0); +int32_t dropbear_collider_group_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); +int32_t dropbear_collider_group_get_colliders(WorldPtr world, PhysicsStatePtr physics, uint64_t entity, NColliderArray* out0); +int32_t dropbear_collider_set_collider_density(PhysicsStatePtr physics, const NCollider* collider, double density); +int32_t dropbear_collider_set_collider_friction(PhysicsStatePtr physics, const NCollider* collider, double friction); +int32_t dropbear_collider_set_collider_is_sensor(PhysicsStatePtr physics, const NCollider* collider, bool is_sensor); +int32_t dropbear_collider_set_collider_mass(PhysicsStatePtr physics, const NCollider* collider, double mass); +int32_t dropbear_collider_set_collider_restitution(PhysicsStatePtr physics, const NCollider* collider, double restitution); int32_t dropbear_collider_set_collider_rotation(PhysicsStatePtr physics, const NCollider* collider, const NVector3* rotation); -int32_t dropbear_kcc_kcc_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); -int32_t dropbear_kcc_move_character(WorldPtr world, PhysicsStatePtr physics_state, uint64_t entity, const NVector3* translation, double delta_time); -int32_t dropbear_kcc_set_rotation(WorldPtr world, PhysicsStatePtr physics_state, uint64_t entity, const NQuaternion* rotation); -int32_t dropbear_kcc_get_hit(WorldPtr world, uint64_t entity, CharacterCollisionArray* out0); -int32_t dropbear_rigidbody_exists_for_entity(WorldPtr world, PhysicsStatePtr physics, uint64_t entity, IndexNative* out0, bool* out0_present); -int32_t dropbear_rigidbody_get_rigidbody_mode(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, int32_t* out0); -int32_t dropbear_rigidbody_set_rigidbody_mode(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, int32_t mode); -int32_t dropbear_rigidbody_get_rigidbody_gravity_scale(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double* out0); -int32_t dropbear_rigidbody_set_rigidbody_gravity_scale(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double gravity_scale); -int32_t dropbear_rigidbody_get_rigidbody_linear_damping(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double* out0); -int32_t dropbear_rigidbody_set_rigidbody_linear_damping(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double linear_damping); -int32_t dropbear_rigidbody_get_rigidbody_angular_damping(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double* out0); -int32_t dropbear_rigidbody_set_rigidbody_angular_damping(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double angular_damping); -int32_t dropbear_rigidbody_get_rigidbody_sleep(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, bool* out0); -int32_t dropbear_rigidbody_set_rigidbody_sleep(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, bool sleep); -int32_t dropbear_rigidbody_get_rigidbody_ccd_enabled(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, bool* out0); -int32_t dropbear_rigidbody_set_rigidbody_ccd_enabled(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, bool ccd_enabled); -int32_t dropbear_rigidbody_get_rigidbody_linear_velocity(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, NVector3* out0); -int32_t dropbear_rigidbody_set_rigidbody_linear_velocity(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, const NVector3* linear_velocity); -int32_t dropbear_rigidbody_get_rigidbody_angular_velocity(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, NVector3* out0); -int32_t dropbear_rigidbody_set_rigidbody_angular_velocity(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, const NVector3* angular_velocity); -int32_t dropbear_rigidbody_get_rigidbody_lock_translation(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, AxisLock* out0); -int32_t dropbear_rigidbody_set_rigidbody_lock_translation(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, const AxisLock* lock_translation); -int32_t dropbear_rigidbody_get_rigidbody_lock_rotation(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, AxisLock* out0); -int32_t dropbear_rigidbody_set_rigidbody_lock_rotation(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, const AxisLock* lock_rotation); -int32_t dropbear_rigidbody_get_rigidbody_children(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, NColliderArray* out0); -int32_t dropbear_rigidbody_apply_impulse(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double x, double y, double z); -int32_t dropbear_rigidbody_apply_torque_impulse(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double x, double y, double z); -int32_t dropbear_scripting_load_scene_async(CommandBufferPtr command_buffer, SceneLoaderPtr scene_loader, const char* scene_name, uint64_t* out0); -int32_t dropbear_scripting_load_scene_async_with_loading(CommandBufferPtr command_buffer, SceneLoaderPtr scene_loader, const char* scene_name, const char* loading_scene, uint64_t* out0); -int32_t dropbear_scripting_switch_to_scene_immediate(CommandBufferPtr command_buffer, const char* scene_name); -int32_t dropbear_scripting_get_scene_load_handle_scene_name(SceneLoaderPtr scene_loader, uint64_t scene_id, char** out0); -int32_t dropbear_scripting_switch_to_scene_async(CommandBufferPtr command_buffer, SceneLoaderPtr scene_loader, uint64_t scene_id); -int32_t dropbear_scripting_get_scene_load_progress(SceneLoaderPtr scene_loader, uint64_t scene_id, Progress* out0); -int32_t dropbear_scripting_get_scene_load_status(SceneLoaderPtr scene_loader, uint64_t scene_id, uint32_t* out0); +int32_t dropbear_collider_set_collider_shape(PhysicsStatePtr physics, const NCollider* collider, const ColliderShape* shape); +int32_t dropbear_collider_set_collider_translation(PhysicsStatePtr physics, const NCollider* collider, const NVector3* translation); int32_t dropbear_engine_get_asset(AssetRegistryPtr asset, const char* label, const AssetKind* kind, uint64_t* out0, bool* out0_present); -int32_t dropbear_asset_model_get_label(AssetRegistryPtr asset, uint64_t model_handle, char** out0); -int32_t dropbear_asset_model_get_meshes(AssetRegistryPtr asset, uint64_t model_handle, NMeshArray* out0); -int32_t dropbear_asset_model_get_materials(AssetRegistryPtr asset, uint64_t model_handle, NMaterialArray* out0); -int32_t dropbear_asset_model_get_skins(AssetRegistryPtr asset, uint64_t model_handle, NSkinArray* out0); -int32_t dropbear_asset_model_get_animations(AssetRegistryPtr asset, uint64_t model_handle, NAnimationArray* out0); -int32_t dropbear_asset_model_get_nodes(AssetRegistryPtr asset, uint64_t model_handle, NNodeArray* out0); -int32_t dropbear_asset_texture_get_label(AssetRegistryPtr asset_manager, uint64_t texture_handle, char** out0, bool* out0_present); -int32_t dropbear_asset_texture_get_width(AssetRegistryPtr asset_manager, uint64_t texture_handle, uint32_t* out0); -int32_t dropbear_asset_texture_get_height(AssetRegistryPtr asset_manager, uint64_t texture_handle, uint32_t* out0); int32_t dropbear_engine_get_entity(WorldPtr world, const char* label, uint64_t* out0); int32_t dropbear_engine_quit(CommandBufferPtr command_buffer); -int32_t dropbear_entity_label_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); -int32_t dropbear_entity_get_label(WorldPtr world, uint64_t entity, char** out0); -int32_t dropbear_entity_get_children(WorldPtr world, uint64_t entity, u64Array* out0); int32_t dropbear_entity_get_child_by_label(WorldPtr world, uint64_t entity, const char* target, uint64_t* out0, bool* out0_present); +int32_t dropbear_entity_get_children(WorldPtr world, uint64_t entity, u64Array* out0); +int32_t dropbear_entity_get_label(WorldPtr world, uint64_t entity, char** out0); int32_t dropbear_entity_get_parent(WorldPtr world, uint64_t entity, uint64_t* out0, bool* out0_present); -int32_t dropbear_input_print_input_state(InputStatePtr input); -int32_t dropbear_input_is_key_pressed(InputStatePtr input, int32_t key_code, bool* out0); -int32_t dropbear_input_get_mouse_position(InputStatePtr input, NVector2* out0); -int32_t dropbear_input_is_mouse_button_pressed(InputStatePtr input, int32_t button_ordinal, bool* out0); -int32_t dropbear_input_get_mouse_delta(InputStatePtr input, NVector2* out0); -int32_t dropbear_input_is_cursor_locked(InputStatePtr input, bool* out0); -int32_t dropbear_input_set_cursor_locked(CommandBufferPtr command_buffer, InputStatePtr input, bool locked); +int32_t dropbear_entity_label_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); +int32_t dropbear_gamepad_get_left_stick_position(InputStatePtr input, uint64_t gamepad_id, NVector2* out0); +int32_t dropbear_gamepad_get_right_stick_position(InputStatePtr input, uint64_t gamepad_id, NVector2* out0); +int32_t dropbear_gamepad_is_button_pressed(InputStatePtr input, uint64_t gamepad_id, int32_t button_ordinal, bool* out0); +int32_t dropbear_input_get_connected_gamepads(InputStatePtr input, ConnectedGamepadIds* out0); int32_t dropbear_input_get_last_mouse_pos(InputStatePtr input, NVector2* out0); +int32_t dropbear_input_get_mouse_delta(InputStatePtr input, NVector2* out0); +int32_t dropbear_input_get_mouse_position(InputStatePtr input, NVector2* out0); int32_t dropbear_input_is_cursor_hidden(InputStatePtr input, bool* out0); +int32_t dropbear_input_is_cursor_locked(InputStatePtr input, bool* out0); +int32_t dropbear_input_is_key_pressed(InputStatePtr input, int32_t key_code, bool* out0); +int32_t dropbear_input_is_mouse_button_pressed(InputStatePtr input, int32_t button_ordinal, bool* out0); +int32_t dropbear_input_print_input_state(InputStatePtr input); int32_t dropbear_input_set_cursor_hidden(CommandBufferPtr command_buffer, InputStatePtr input, bool hidden); -int32_t dropbear_input_get_connected_gamepads(InputStatePtr input, ConnectedGamepadIds* out0); -int32_t dropbear_physics_get_gravity(PhysicsStatePtr physics, NVector3* out0); -int32_t dropbear_physics_set_gravity(PhysicsStatePtr physics, const NVector3* gravity); -int32_t dropbear_physics_raycast(PhysicsStatePtr physics, const NVector3* origin, const NVector3* dir, double time_of_impact, bool solid, RayHit* out0, bool* out0_present); -int32_t dropbear_physics_shape_cast(PhysicsStatePtr physics, const NVector3* origin, const NVector3* direction, const ColliderShape* shape, double time_of_impact, bool solid, NShapeCastHit* out0, bool* out0_present); -int32_t dropbear_physics_is_overlapping(PhysicsStatePtr physics, const NCollider* collider1, const NCollider* collider2, bool* out0); -int32_t dropbear_physics_is_triggering(PhysicsStatePtr physics, const NCollider* collider1, const NCollider* collider2, bool* out0); -int32_t dropbear_physics_is_touching(PhysicsStatePtr physics, uint64_t entity1, uint64_t entity2, bool* out0); -int32_t dropbear_mesh_get_texture(WorldPtr world, AssetRegistryPtr asset, uint64_t entity, const char* material_name, uint64_t* out0, bool* out0_present); -int32_t dropbear_mesh_set_texture_override(WorldPtr world, AssetRegistryPtr asset, uint64_t entity, const char* material_name, uint64_t texture_handle); -int32_t dropbear_mesh_set_material_tint(WorldPtr world, AssetRegistryPtr asset, GraphicsContextPtr graphics, uint64_t entity, const char* material_name, float r, float g, float b, float a); -int32_t dropbear_camera_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); -int32_t dropbear_camera_get_eye(WorldPtr world, uint64_t entity, NVector3* out0); -int32_t dropbear_camera_set_eye(WorldPtr world, uint64_t entity, const NVector3* eye); -int32_t dropbear_camera_get_target(WorldPtr world, uint64_t entity, NVector3* out0); -int32_t dropbear_camera_set_target(WorldPtr world, uint64_t entity, const NVector3* target); -int32_t dropbear_camera_get_up(WorldPtr world, uint64_t entity, NVector3* out0); -int32_t dropbear_camera_set_up(WorldPtr world, uint64_t entity, const NVector3* up); -int32_t dropbear_camera_get_aspect(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_camera_get_fovy(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_camera_set_fovy(WorldPtr world, uint64_t entity, double fovy); -int32_t dropbear_camera_get_znear(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_camera_set_znear(WorldPtr world, uint64_t entity, double znear); -int32_t dropbear_camera_get_zfar(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_camera_set_zfar(WorldPtr world, uint64_t entity, double zfar); -int32_t dropbear_camera_get_yaw(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_camera_set_yaw(WorldPtr world, uint64_t entity, double yaw); -int32_t dropbear_camera_get_pitch(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_camera_set_pitch(WorldPtr world, uint64_t entity, double pitch); -int32_t dropbear_camera_get_speed(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_camera_set_speed(WorldPtr world, uint64_t entity, double speed); -int32_t dropbear_camera_get_sensitivity(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_camera_set_sensitivity(WorldPtr world, uint64_t entity, double sensitivity); -int32_t dropbear_lighting_light_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); -int32_t dropbear_lighting_get_position(WorldPtr world, uint64_t entity, NVector3* out0); -int32_t dropbear_lighting_set_position(WorldPtr world, uint64_t entity, const NVector3* position); -int32_t dropbear_lighting_get_direction(WorldPtr world, uint64_t entity, NVector3* out0); -int32_t dropbear_lighting_set_direction(WorldPtr world, uint64_t entity, const NVector3* direction); -int32_t dropbear_lighting_get_colour(WorldPtr world, uint64_t entity, NColour* out0); -int32_t dropbear_lighting_set_colour(WorldPtr world, uint64_t entity, const NColour* colour); -int32_t dropbear_lighting_get_light_type(WorldPtr world, uint64_t entity, int32_t* out0); -int32_t dropbear_lighting_set_light_type(WorldPtr world, uint64_t entity, int32_t light_type); -int32_t dropbear_lighting_get_intensity(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_lighting_set_intensity(WorldPtr world, uint64_t entity, double intensity); +int32_t dropbear_input_set_cursor_locked(CommandBufferPtr command_buffer, InputStatePtr input, bool locked); +int32_t dropbear_kcc_get_hit(WorldPtr world, uint64_t entity, CharacterCollisionArray* out0); +int32_t dropbear_kcc_kcc_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); +int32_t dropbear_kcc_move_character(WorldPtr world, PhysicsStatePtr physics_state, uint64_t entity, const NVector3* translation, double delta_time); +int32_t dropbear_kcc_set_rotation(WorldPtr world, PhysicsStatePtr physics_state, uint64_t entity, const NQuaternion* rotation); int32_t dropbear_lighting_get_attenuation(WorldPtr world, uint64_t entity, NAttenuation* out0); -int32_t dropbear_lighting_set_attenuation(WorldPtr world, uint64_t entity, const NAttenuation* attenuation); -int32_t dropbear_lighting_get_enabled(WorldPtr world, uint64_t entity, bool* out0); -int32_t dropbear_lighting_set_enabled(WorldPtr world, uint64_t entity, bool enabled); +int32_t dropbear_lighting_get_casts_shadows(WorldPtr world, uint64_t entity, bool* out0); +int32_t dropbear_lighting_get_colour(WorldPtr world, uint64_t entity, NColour* out0); int32_t dropbear_lighting_get_cutoff_angle(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_lighting_set_cutoff_angle(WorldPtr world, uint64_t entity, double cutoff_angle); +int32_t dropbear_lighting_get_depth(WorldPtr world, uint64_t entity, NRange* out0); +int32_t dropbear_lighting_get_direction(WorldPtr world, uint64_t entity, NVector3* out0); +int32_t dropbear_lighting_get_enabled(WorldPtr world, uint64_t entity, bool* out0); +int32_t dropbear_lighting_get_intensity(WorldPtr world, uint64_t entity, double* out0); +int32_t dropbear_lighting_get_light_type(WorldPtr world, uint64_t entity, int32_t* out0); int32_t dropbear_lighting_get_outer_cutoff_angle(WorldPtr world, uint64_t entity, double* out0); -int32_t dropbear_lighting_set_outer_cutoff_angle(WorldPtr world, uint64_t entity, double outer_cutoff_angle); -int32_t dropbear_lighting_get_casts_shadows(WorldPtr world, uint64_t entity, bool* out0); +int32_t dropbear_lighting_get_position(WorldPtr world, uint64_t entity, NVector3* out0); +int32_t dropbear_lighting_light_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); +int32_t dropbear_lighting_set_attenuation(WorldPtr world, uint64_t entity, const NAttenuation* attenuation); int32_t dropbear_lighting_set_casts_shadows(WorldPtr world, uint64_t entity, bool casts_shadows); -int32_t dropbear_lighting_get_depth(WorldPtr world, uint64_t entity, NRange* out0); +int32_t dropbear_lighting_set_colour(WorldPtr world, uint64_t entity, const NColour* colour); +int32_t dropbear_lighting_set_cutoff_angle(WorldPtr world, uint64_t entity, double cutoff_angle); int32_t dropbear_lighting_set_depth(WorldPtr world, uint64_t entity, const NRange* depth); +int32_t dropbear_lighting_set_direction(WorldPtr world, uint64_t entity, const NVector3* direction); +int32_t dropbear_lighting_set_enabled(WorldPtr world, uint64_t entity, bool enabled); +int32_t dropbear_lighting_set_intensity(WorldPtr world, uint64_t entity, double intensity); +int32_t dropbear_lighting_set_light_type(WorldPtr world, uint64_t entity, int32_t light_type); +int32_t dropbear_lighting_set_outer_cutoff_angle(WorldPtr world, uint64_t entity, double outer_cutoff_angle); +int32_t dropbear_lighting_set_position(WorldPtr world, uint64_t entity, const NVector3* position); +int32_t dropbear_mesh_get_texture(WorldPtr world, AssetRegistryPtr asset, uint64_t entity, const char* material_name, uint64_t* out0, bool* out0_present); +int32_t dropbear_mesh_set_material_tint(WorldPtr world, AssetRegistryPtr asset, GraphicsContextPtr graphics, uint64_t entity, const char* material_name, float r, float g, float b, float a); +int32_t dropbear_mesh_set_texture_override(WorldPtr world, AssetRegistryPtr asset, uint64_t entity, const char* material_name, uint64_t texture_handle); +int32_t dropbear_physics_get_gravity(PhysicsStatePtr physics, NVector3* out0); +int32_t dropbear_physics_is_overlapping(PhysicsStatePtr physics, const NCollider* collider1, const NCollider* collider2, bool* out0); +int32_t dropbear_physics_is_touching(PhysicsStatePtr physics, uint64_t entity1, uint64_t entity2, bool* out0); +int32_t dropbear_physics_is_triggering(PhysicsStatePtr physics, const NCollider* collider1, const NCollider* collider2, bool* out0); +int32_t dropbear_physics_raycast(PhysicsStatePtr physics, const NVector3* origin, const NVector3* dir, double time_of_impact, bool solid, RayHit* out0, bool* out0_present); +int32_t dropbear_physics_set_gravity(PhysicsStatePtr physics, const NVector3* gravity); +int32_t dropbear_physics_shape_cast(PhysicsStatePtr physics, const NVector3* origin, const NVector3* direction, const ColliderShape* shape, double time_of_impact, bool solid, NShapeCastHit* out0, bool* out0_present); int32_t dropbear_properties_custom_properties_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); -int32_t dropbear_properties_get_string_property(WorldPtr world, uint64_t entity, const char* key, char** out0, bool* out0_present); -int32_t dropbear_properties_get_int_property(WorldPtr world, uint64_t entity, const char* key, int32_t* out0, bool* out0_present); -int32_t dropbear_properties_get_long_property(WorldPtr world, uint64_t entity, const char* key, int64_t* out0, bool* out0_present); +int32_t dropbear_properties_get_bool_property(WorldPtr world, uint64_t entity, const char* key, bool* out0, bool* out0_present); int32_t dropbear_properties_get_double_property(WorldPtr world, uint64_t entity, const char* key, double* out0, bool* out0_present); int32_t dropbear_properties_get_float_property(WorldPtr world, uint64_t entity, const char* key, float* out0, bool* out0_present); -int32_t dropbear_properties_get_bool_property(WorldPtr world, uint64_t entity, const char* key, bool* out0, bool* out0_present); +int32_t dropbear_properties_get_int_property(WorldPtr world, uint64_t entity, const char* key, int32_t* out0, bool* out0_present); +int32_t dropbear_properties_get_long_property(WorldPtr world, uint64_t entity, const char* key, int64_t* out0, bool* out0_present); +int32_t dropbear_properties_get_string_property(WorldPtr world, uint64_t entity, const char* key, char** out0, bool* out0_present); int32_t dropbear_properties_get_vec3_property(WorldPtr world, uint64_t entity, const char* key, NVector3* out0, bool* out0_present); -int32_t dropbear_properties_set_string_property(WorldPtr world, uint64_t entity, const char* key, const char* value); -int32_t dropbear_properties_set_int_property(WorldPtr world, uint64_t entity, const char* key, int32_t value); -int32_t dropbear_properties_set_long_property(WorldPtr world, uint64_t entity, const char* key, int64_t value); +int32_t dropbear_properties_set_bool_property(WorldPtr world, uint64_t entity, const char* key, bool value); int32_t dropbear_properties_set_double_property(WorldPtr world, uint64_t entity, const char* key, double value); int32_t dropbear_properties_set_float_property(WorldPtr world, uint64_t entity, const char* key, double value); -int32_t dropbear_properties_set_bool_property(WorldPtr world, uint64_t entity, const char* key, bool value); +int32_t dropbear_properties_set_int_property(WorldPtr world, uint64_t entity, const char* key, int32_t value); +int32_t dropbear_properties_set_long_property(WorldPtr world, uint64_t entity, const char* key, int64_t value); +int32_t dropbear_properties_set_string_property(WorldPtr world, uint64_t entity, const char* key, const char* value); int32_t dropbear_properties_set_vec3_property(WorldPtr world, uint64_t entity, const char* key, const NVector3* value); +int32_t dropbear_rigidbody_apply_impulse(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double x, double y, double z); +int32_t dropbear_rigidbody_apply_torque_impulse(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double x, double y, double z); +int32_t dropbear_rigidbody_exists_for_entity(WorldPtr world, PhysicsStatePtr physics, uint64_t entity, IndexNative* out0, bool* out0_present); +int32_t dropbear_rigidbody_get_rigidbody_angular_damping(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double* out0); +int32_t dropbear_rigidbody_get_rigidbody_angular_velocity(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, NVector3* out0); +int32_t dropbear_rigidbody_get_rigidbody_ccd_enabled(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, bool* out0); +int32_t dropbear_rigidbody_get_rigidbody_children(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, NColliderArray* out0); +int32_t dropbear_rigidbody_get_rigidbody_gravity_scale(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double* out0); +int32_t dropbear_rigidbody_get_rigidbody_linear_damping(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double* out0); +int32_t dropbear_rigidbody_get_rigidbody_linear_velocity(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, NVector3* out0); +int32_t dropbear_rigidbody_get_rigidbody_lock_rotation(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, AxisLock* out0); +int32_t dropbear_rigidbody_get_rigidbody_lock_translation(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, AxisLock* out0); +int32_t dropbear_rigidbody_get_rigidbody_mode(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, int32_t* out0); +int32_t dropbear_rigidbody_get_rigidbody_sleep(WorldPtr _world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, bool* out0); +int32_t dropbear_rigidbody_set_rigidbody_angular_damping(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double angular_damping); +int32_t dropbear_rigidbody_set_rigidbody_angular_velocity(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, const NVector3* angular_velocity); +int32_t dropbear_rigidbody_set_rigidbody_ccd_enabled(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, bool ccd_enabled); +int32_t dropbear_rigidbody_set_rigidbody_gravity_scale(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double gravity_scale); +int32_t dropbear_rigidbody_set_rigidbody_linear_damping(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, double linear_damping); +int32_t dropbear_rigidbody_set_rigidbody_linear_velocity(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, const NVector3* linear_velocity); +int32_t dropbear_rigidbody_set_rigidbody_lock_rotation(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, const AxisLock* lock_rotation); +int32_t dropbear_rigidbody_set_rigidbody_lock_translation(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, const AxisLock* lock_translation); +int32_t dropbear_rigidbody_set_rigidbody_mode(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, int32_t mode); +int32_t dropbear_rigidbody_set_rigidbody_sleep(WorldPtr world, PhysicsStatePtr physics, const RigidBodyContext* rigidbody, bool sleep); +int32_t dropbear_scripting_get_scene_load_handle_scene_name(SceneLoaderPtr scene_loader, uint64_t scene_id, char** out0); +int32_t dropbear_scripting_get_scene_load_progress(SceneLoaderPtr scene_loader, uint64_t scene_id, Progress* out0); +int32_t dropbear_scripting_get_scene_load_status(SceneLoaderPtr scene_loader, uint64_t scene_id, uint32_t* out0); +int32_t dropbear_scripting_load_scene_async(CommandBufferPtr command_buffer, SceneLoaderPtr scene_loader, const char* scene_name, uint64_t* out0); +int32_t dropbear_scripting_load_scene_async_with_loading(CommandBufferPtr command_buffer, SceneLoaderPtr scene_loader, const char* scene_name, const char* loading_scene, uint64_t* out0); +int32_t dropbear_scripting_switch_to_scene_async(CommandBufferPtr command_buffer, SceneLoaderPtr scene_loader, uint64_t scene_id); +int32_t dropbear_scripting_switch_to_scene_immediate(CommandBufferPtr command_buffer, const char* scene_name); int32_t dropbear_transform_exists_for_entity(WorldPtr world, uint64_t entity, bool* out0); int32_t dropbear_transform_get_local_transform(WorldPtr world, uint64_t entity, NTransform* out0); -int32_t dropbear_transform_set_local_transform(WorldPtr world, uint64_t entity, const NTransform* transform); int32_t dropbear_transform_get_world_transform(WorldPtr world, uint64_t entity, NTransform* out0); -int32_t dropbear_transform_set_world_transform(WorldPtr world, uint64_t entity, const NTransform* transform); int32_t dropbear_transform_propogate_transform(WorldPtr world, uint64_t entity, NTransform* out0); +int32_t dropbear_transform_set_local_transform(WorldPtr world, uint64_t entity, const NTransform* transform); +int32_t dropbear_transform_set_world_transform(WorldPtr world, uint64_t entity, const NTransform* transform); #endif /* DROPBEAR_H */