From d03e78a64813f60e9cb7b364c35bc48f8c943b44 Mon Sep 17 00:00:00 2001 From: Vulpovile Date: Tue, 16 Mar 2021 02:14:49 -0700 Subject: [PATCH] Made changing CFrame not require whole part re-rendering --- src/source/DataModelV2/PartInstance.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/source/DataModelV2/PartInstance.cpp b/src/source/DataModelV2/PartInstance.cpp index bcb3eeb..f172f61 100644 --- a/src/source/DataModelV2/PartInstance.cpp +++ b/src/source/DataModelV2/PartInstance.cpp @@ -221,7 +221,6 @@ void PartInstance::setPosition(Vector3 pos) { position = pos; cFrame = CoordinateFrame(cFrame.rotation, pos); - changed = true; } CoordinateFrame PartInstance::getCFrame() @@ -232,7 +231,7 @@ void PartInstance::setCFrame(CoordinateFrame coordinateFrame) { cFrame = coordinateFrame; position = coordinateFrame.translation; - changed = true; + //changed = true; } bool PartInstance::collides(PartInstance * part) @@ -325,10 +324,10 @@ static TCHAR* enumStr(int shape) void PartInstance::PropUpdate(LPPROPGRIDITEM &item) { - setChanged(); if(strcmp(item->lpszPropName, "Color3") == 0) { color = Color3(GetRValue(item->lpCurValue)/255.0F,GetGValue(item->lpCurValue)/255.0F,GetBValue(item->lpCurValue)/255.0F); + setChanged(); } else if(strcmp(item->lpszPropName, "Anchored") == 0) { @@ -396,6 +395,11 @@ void PartInstance::PropUpdate(LPPROPGRIDITEM &item) printf("%s", enumStr(strEnum((TCHAR*)item->lpCurValue))); setShape(strEnum((TCHAR*)item->lpCurValue)); } + else if(strcmp(item->lpszPropName, "Controller") == 0) + { + setChanged(); + PVInstance::PropUpdate(item); + } else PVInstance::PropUpdate(item); }