diff --git a/omp-gdk/src/scripting/objects/functions.rs b/omp-gdk/src/scripting/objects/functions.rs index 98f4de6..3e0a049 100644 --- a/omp-gdk/src/scripting/objects/functions.rs +++ b/omp-gdk/src/scripting/objects/functions.rs @@ -19,7 +19,6 @@ native!(SetObjectRot, object: struct Object, rotation: Vector3); native!(GetObjectRot, object: struct Object, rotation: mut Vector3); native!(GetObjectModel, object: struct Object, -> isize); native!(SetObjectNoCameraCol, object: struct Object); -native!(IsValidObject, object: struct Object, -> bool); native!(MoveObject, object: struct Object, data: ObjectMoveData, -> isize); native!(StopObject, object: struct Object); native!(IsObjectMoving, object: struct Object, -> bool); @@ -37,6 +36,7 @@ native!(IsObjectMaterialSlotUsed, object: struct Object, materialIndex: isize, - native!(GetObjectMaterialData, object: struct Object, materialIndex: isize, modelid: mut isize, textureLibrary: mut str, textureName: mut str, materialColour: mut Colour, text: mut str, materialSize: mut isize, fontFace: mut str, fontSize: mut isize, bold: mut bool, fontColour: mut Colour, backgroundColour: mut Colour, textAlignment: mut isize); native!(IsObjectNoCameraCol, object: struct Object, -> bool); native!(GetObjectID, object: struct Object, -> isize); +native!(GetObjectFromID, id: isize, -> struct Object); // player object functions @@ -65,6 +65,7 @@ native!(IsPlayerObjectMaterialSlotUsed, object: struct PlayerObject, materialInd native!(GetPlayerObjectMaterialData, object: struct PlayerObject, materialIndex: isize, modelid: mut isize, textureLibrary: mut str, textureName: mut str, materialColour: mut Colour , text: mut str, materialSize: mut isize, fontFace: mut str, fontSize: mut isize, bold:mut bool, fontColour: mut Colour , backgroundColour: mut Colour , textAlignment: mut isize); native!(IsPlayerObjectNoCameraCol, object: struct PlayerObject, -> bool); native!(GetPlayerObjectID, object: struct PlayerObject, -> isize); +native!(GetPlayerObjectFromID, player: struct Player, id: isize, -> struct PlayerObject); #[doc(hidden)] pub fn load_functions() { @@ -79,7 +80,6 @@ pub fn load_functions() { load_function!(GetObjectRot); load_function!(GetObjectModel); load_function!(SetObjectNoCameraCol); - load_function!(IsValidObject); load_function!(MoveObject); load_function!(StopObject); load_function!(IsObjectMoving); @@ -97,6 +97,7 @@ pub fn load_functions() { load_function!(GetObjectMaterialData); load_function!(IsObjectNoCameraCol); load_function!(GetObjectID); + load_function!(GetObjectFromID); // player object functions @@ -125,4 +126,5 @@ pub fn load_functions() { load_function!(GetPlayerObjectMaterialData); load_function!(IsPlayerObjectNoCameraCol); load_function!(GetPlayerObjectID); + load_function!(GetPlayerObjectFromID); } diff --git a/omp-gdk/src/scripting/objects/mod.rs b/omp-gdk/src/scripting/objects/mod.rs index ef2658d..d36c5bb 100644 --- a/omp-gdk/src/scripting/objects/mod.rs +++ b/omp-gdk/src/scripting/objects/mod.rs @@ -257,6 +257,11 @@ impl Object { pub fn get_id(&self) -> isize { functions::GetObjectID(self) } + + /// Get Object from an id + pub fn from_id(id: isize) -> Option { + functions::GetObjectFromID(id) + } } pub struct PlayerObject { diff --git a/omp-gdk/src/scripting/players/mod.rs b/omp-gdk/src/scripting/players/mod.rs index 3ab0454..3541d07 100644 --- a/omp-gdk/src/scripting/players/mod.rs +++ b/omp-gdk/src/scripting/players/mod.rs @@ -887,6 +887,12 @@ impl Player { pub fn edit_player_object(&self, object: &PlayerObject) { objects::functions::EditPlayerObject(self, object) } + + /// Get PlayerObject from an id + pub fn get_player_object_from_id(&self, id: isize) -> Option { + objects::functions::GetPlayerObjectFromID(self, id) + } + pub fn create_player_text_draw(&self, position: Vector2, text: &str) -> Option { textdraws::functions::CreatePlayerTextDraw(self, position, text) }