Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_AddPrefabToSelectedEntitiesPlugin.c
Go to the documentation of this file.
1#ifdef WORKBENCH
3 name: "Add selected Prefabs to selected entities",
4 description: "Add Resource Browser-selected Prefabs as first-level children to world-selected entities",
5 shortcut: "Ctrl+Alt+Shift+V", // use Resource Context Menu
6 wbModules: { "WorldEditor" },
7 awesomeFontCode: 0xF6BE,
8 resourceTypes: { "et" })]
9class SCR_AddPrefabToSelectedEntitiesPlugin : WorkbenchPlugin
10{
11 //------------------------------------------------------------------------------------------------
12 override void Run()
13 {
14 CreateSelectedPrefabsInSelectedEntities();
15 }
16
17 //------------------------------------------------------------------------------------------------
18 // as the name says
19 protected void CreateSelectedPrefabsInSelectedEntities(array<ResourceName> selectedResourceNames = null)
20 {
21 array<ResourceName> selectedResourceNamesArray = selectedResourceNames;
22
23 WorldEditor worldEditor = SCR_WorldEditorToolHelper.GetWorldEditor();
24 if (!worldEditor || worldEditor.IsPrefabEditMode())
25 return;
26
27 WorldEditorAPI worldEditorAPI = worldEditor.GetApi();
28 if (!worldEditorAPI)
29 return;
30
31 if (worldEditorAPI.IsGameMode())
32 return;
33
34 if (!selectedResourceNamesArray || selectedResourceNamesArray.IsEmpty())
35 {
36 selectedResourceNamesArray = SCR_WorldEditorToolHelper.GetSelectedResources(true);
37 if (!selectedResourceNamesArray || selectedResourceNamesArray.IsEmpty())
38 return;
39 }
40
41 array<IEntitySource> selectedEntitySources = SCR_WorldEditorToolHelper.GetSelectedWorldEntitySources();
42 if (!selectedEntitySources || selectedEntitySources.IsEmpty())
43 return;
44
45 bool beganAction = worldEditorAPI.BeginEntityAction();
46
47 foreach (ResourceName resourceName : selectedResourceNamesArray)
48 {
49 foreach (int i, IEntitySource selectedEntitySource : selectedEntitySources)
50 {
51 if (!worldEditorAPI.CreateEntityExt(resourceName, string.Empty, 0, selectedEntitySource, vector.Zero, vector.Zero, TraceFlags.WORLD) && i == 0)
52 {
53 Print("Cannot create " + resourceName, LogLevel.WARNING);
54 break; // skip the whole ResourceName
55 }
56 }
57 }
58
59 if (beganAction)
60 worldEditorAPI.EndEntityAction();
61 }
62
63 //------------------------------------------------------------------------------------------------
64 override void OnResourceContextMenu(notnull array<ResourceName> resources)
65 {
66 CreateSelectedPrefabsInSelectedEntities(resources);
67 }
68}
69#endif
GenerateFlowMaps WorkbenchPlugin WorkbenchPluginAttribute("Regenerate river flow-maps", "Generate and save/overwrite river flow-maps", "", "", {"WorldEditor"}, "", 0xf773)
Definition FlowmapTool.c:59
ResourceName resourceName
Definition SCR_AIGroup.c:66
override void Run()
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
TraceFlags
Definition TraceFlags.c:13