diff --git a/Nuake/src/Scripting/NetModules/UINetAPI.cpp b/Nuake/src/Scripting/NetModules/UINetAPI.cpp index 0c917102..ad321550 100644 --- a/Nuake/src/Scripting/NetModules/UINetAPI.cpp +++ b/Nuake/src/Scripting/NetModules/UINetAPI.cpp @@ -18,12 +18,12 @@ UUID UUIDFromString(const std::string& input) return std::stoull(input); } -uint64_t FindChildByIDIcall(const Coral::String& canvasUUID, const Coral::String& id, const Coral::String& id2) +Coral::String FindChildByIDIcall(const Coral::String& canvasUUID, const Coral::String& id, const Coral::String& id2) { if (!ResourceManager::IsResourceLoaded(UUIDFromString(canvasUUID))) { Logger::Log("Error finding child, canvas is not loaded.", ".net/ui", CRITICAL); - return UUID(0); + return Coral::String::New(std::to_string(0)); } Ref uiResource = ResourceManager::GetResource(UUIDFromString(canvasUUID)); @@ -32,13 +32,13 @@ uint64_t FindChildByIDIcall(const Coral::String& canvasUUID, const Coral::String searchNode != nullptr) { Ref foundNode; - if (foundNode->FindChildByID(id2, foundNode)) + if (searchNode->FindChildByID(id2, foundNode)) { - return foundNode->GetScriptingID(); + return Coral::String::New(std::to_string(foundNode->GetScriptingID())); } } - return UUID(0); + return Coral::String::New(std::to_string(0)); } bool HasNativeInstanceICall(const Coral::String& canvasUUID, const Coral::String& nodeUUID, const Coral::String& nodeUUID2) diff --git a/NuakeNet/src/UI/UIComponent.cs b/NuakeNet/src/UI/UIComponent.cs index 4b139f58..05af3dd1 100644 --- a/NuakeNet/src/UI/UIComponent.cs +++ b/NuakeNet/src/UI/UIComponent.cs @@ -71,13 +71,20 @@ namespace Nuake.Net public class Node { - internal static unsafe delegate* FindChildByIDICall; + internal static unsafe delegate* FindChildByIDICall; internal static unsafe delegate* HasNativeInstanceICall; internal static unsafe delegate*> GetNativeInstanceNodeICall; public string UUID; public string CanvasUUID; + public Node() { } + public Node(string handle, string canvasHandle ) + { + UUID = handle; + CanvasUUID = canvasHandle; + } + public string ID { get; set; } = ""; public List Classes { get; set; } = new(); @@ -94,13 +101,13 @@ namespace Nuake.Net { Engine.Log("Calling FindChildByIDICall with params: " + CanvasUUID + " , " + UUID + " , " + id); - ulong uuid = FindChildByIDICall(CanvasUUID, CanvasUUID, UUID, id); - if (uuid == 0) + NativeString uuid = FindChildByIDICall(CanvasUUID, UUID, id); + if (uuid.ToString() == "0") { throw new Exception("Node not found"); } - Node? newNode = null; + T? newNode = null; //if (HasNativeInstanceICall(CanvasUUID, CanvasUUID, UUID)) //{ // NativeInstance handle; @@ -110,11 +117,9 @@ namespace Nuake.Net if(newNode == null) { - newNode = new Node() - { - UUID = uuid.ToString(), - CanvasUUID = CanvasUUID - }; + newNode = Activator.CreateInstance(); + newNode.UUID = uuid; + newNode.CanvasUUID = CanvasUUID; return newNode as T; }