From 77c10d14c9733819762d057407899efd6794af17 Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Wed, 2 Jan 2019 14:19:41 -0800 Subject: [PATCH] Support changing instance ClassName --- plugin/src/Session.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugin/src/Session.lua b/plugin/src/Session.lua index 3e4f6b5b..7d82c659 100644 --- a/plugin/src/Session.lua +++ b/plugin/src/Session.lua @@ -100,7 +100,13 @@ end local function reconcile(instanceData, instanceMap, instanceMetadataMap, id, existingInstance) local data = instanceData[id] - assert(data.ClassName == existingInstance.ClassName) + if data.ClassName ~= existingInstance.ClassName then + -- TODO: Preserve existing children instead? + local parent = existingInstance.Parent + instanceMap:destroyId(id) + reify(instanceData, instanceMap, instanceMetadataMap, id, parent) + return + end for key, value in pairs(data.Properties) do setProperty(existingInstance, key, value.Value)