Skip to content

Commit 32bb43a

Browse files
committed
quicksetup materials fix + append multiple target parts from bulk select
don't send the edited material to SetMaterials (internal dynamic properties) if only one material exists (the submaterial dynamic properties become invisible in that case) similar option to sending bulk select to proxy multi target, except it's appending, not overwriting existing ones, while preventing duplicate uids/names
1 parent 66b5fdb commit 32bb43a

File tree

1 file changed

+34
-3
lines changed

1 file changed

+34
-3
lines changed

lua/pac3/editor/client/parts.lua

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2692,7 +2692,12 @@ function pace.AddQuickSetupsToPartMenu(menu, obj)
26922692
mat:SetLoadVmt(mat2)
26932693

26942694
submaterials[i] = "toggled_"..kw.."_"..string.sub(obj.UniqueID,1,6)
2695-
obj:SetMaterials(table.concat(submaterials, ";"))
2695+
if #submaterials == 1 then
2696+
obj:SetMaterials("") obj:SetMaterial(submaterials[1])
2697+
else
2698+
obj:SetMaterials(table.concat(submaterials, ";"))
2699+
end
2700+
26962701
end, submat_togglers):SetIcon("icon16/paintcan.png")
26972702
end
26982703

@@ -2707,7 +2712,11 @@ function pace.AddQuickSetupsToPartMenu(menu, obj)
27072712
submaterials[i] = kw.."_"..string.sub(obj.UniqueID,1,6)
27082713

27092714
end
2710-
obj:SetMaterials(table.concat(submaterials, ";"))
2715+
if #submaterials == 1 then
2716+
obj:SetMaterials("") obj:SetMaterial(submaterials[1])
2717+
else
2718+
obj:SetMaterials(table.concat(submaterials, ";"))
2719+
end
27112720
end) pnl:SetImage("icon16/paintcan.png")
27122721

27132722
for i,mat2 in ipairs(mats) do
@@ -2720,7 +2729,11 @@ function pace.AddQuickSetupsToPartMenu(menu, obj)
27202729
mat:SetLoadVmt(mat2)
27212730

27222731
submaterials[i] = kw.."_"..string.sub(obj.UniqueID,1,6)
2723-
obj:SetMaterials(table.concat(submaterials, ";"))
2732+
if #submaterials == 1 then
2733+
obj:SetMaterials("") obj:SetMaterial(submaterials[1])
2734+
else
2735+
obj:SetMaterials(table.concat(submaterials, ";"))
2736+
end
27242737
end, edit_materials):SetIcon("icon16/paintcan.png")
27252738
end
27262739
end
@@ -3909,6 +3922,24 @@ function pace.AddClassSpecificPartMenuComponents(menu, obj)
39093922
end
39103923
obj:SetMultipleTargetParts(table.concat(uid_tbl,";"))
39113924
end):SetIcon("icon16/star.png")
3925+
if obj.MultipleTargetParts ~= "" then
3926+
menu:AddOption("(" .. #pace.BulkSelectList .. " parts in Bulk select) Add to multiple target parts", function()
3927+
local anti_duplicate = {}
3928+
local uid_tbl = string.Split(obj.MultipleTargetParts,";")
3929+
3930+
for i,uid in ipairs(uid_tbl) do
3931+
anti_duplicate[uid] = uid
3932+
end
3933+
for i,part in ipairs(pace.BulkSelectList) do
3934+
anti_duplicate[part.UniqueID] = part.UniqueID
3935+
end
3936+
uid_tbl = {}
3937+
for _,uid in pairs(anti_duplicate) do
3938+
table.insert(uid_tbl, uid)
3939+
end
3940+
obj:SetMultipleTargetParts(table.concat(uid_tbl,";"))
3941+
end):SetIcon("icon16/star.png")
3942+
end
39123943
end
39133944
elseif obj.ClassName == "beam" then
39143945
if not IsValid(obj.TargetPart) and obj.MultipleEndPoints == "" then

0 commit comments

Comments
 (0)