3class SCR_CreateEditablePrefabsPlugin : SCR_PrefabEditingPluginBase
5 [
Attribute(defvalue:
"{90B4D95CF3610F3D}Configs/Workbench/EditablePrefabs/EditablePrefabsConfig.conf",
desc:
"",
params:
"conf")]
6 protected ResourceName m_sConfig;
8 [
Attribute(
desc:
"[UNUSED] When enabled, the process will only update existing editable entities, not create new ones.")]
9 protected bool m_bOnlyUpdate;
15 m_bOnlyUpdate =
false;
17 Workbench.OpenModule(WorldEditor);
18 WorldEditor worldEditor = Workbench.GetModule(WorldEditor);
22 WorldEditorAPI api = worldEditor.GetApi();
26 EditablePrefabsConfig config = EditablePrefabsConfig.GetConfig(m_sConfig);
27 if (!config || !config.IsValid())
31 if (!config.CreateWorld())
35 array<ResourceName> selectedPrefabs = {};
36 if (!GetPrefabs(selectedPrefabs))
39 map<string, SCR_EEditablePrefabResult> results =
new map<string, SCR_EEditablePrefabResult>();
41 WBProgressDialog progress =
new WBProgressDialog(
"Processing Prefabs...", worldEditor);
44 api.BeginEntityAction();
45 int count = selectedPrefabs.Count();
46 float prevProgress, currProgress;
47 foreach (
int i, ResourceName selectedPrefab : selectedPrefabs)
49 config.CreateEditablePrefab(api, selectedPrefab, m_bOnlyUpdate, results);
51 currProgress = i / count;
52 if (currProgress - prevProgress >= 0.01)
54 progress.SetProgress(currProgress);
55 prevProgress = currProgress;
58 api.EndEntityAction();
62 config.LogResults(results);
68 Workbench.ScriptDialog(
"Configure 'Create/Update Selected Editable Prefabs' plugin",
"",
this);
73 protected bool ButtonClose()
80class SCR_CreateEditablePrefabsPluginResourceManager : SCR_CreateEditablePrefabsPlugin
83 override void GetSelected(out array<ResourceName> selection)
85 GetSelectedResourceBrowser(selection);
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
class WorkbenchDialog_AbortRetryIgnore ButtonAttribute("OK", true)
SCR_FieldOfViewSettings Attribute
proto external int GetSelected(out notnull array< MapItem > outItems)
Get all selected entities.