Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ResourceEncapsulatorContainerQueue.c
Go to the documentation of this file.
2class SCR_ResourceEncapsulatorContainerQueue : SCR_ResourceContainerQueue
3{
4 //------------------------------------------------------------------------------------------------
8 override int RegisterContainer(notnull SCR_ResourceContainer container)
9 {
10 int position = SCR_ResourceContainerQueueBase.INVALID_CONTAINER_INDEX;
11 bool shouldIncrementOffset;
13
14 EResourceContainerStorageType storageType = container.GetStorageType();
15
16 foreach (SCR_ResourceStoragePolicyBase policy: m_StoragePolicies)
17 {
18 storageQueue = policy.GetStorageQueue();
19
20 if (shouldIncrementOffset)
21 {
22 storageQueue.IncrementOffset(1);
23 continue;
24 }
25
26 if (!policy.IsStorageTypeValid(storageType))
27 continue;
28
29 SCR_ResourceEncapsulator encapsulator = SCR_ResourceEncapsulator.Cast(m_Interactor);
30 array<ref SCR_ResourceEncapsulatorActionBase> actions = encapsulator.GetActions();
31 SCR_ResourceContainer containerRepresentative = encapsulator.GetContainerRepresentative();
32
33 m_fAggregatedResourceValue += container.GetResourceValue();
34 m_fAggregatedMaxResourceValue += container.GetMaxResourceValue();
35
36 shouldIncrementOffset = true;
37 position = storageQueue.RegisterContainer(container, encapsulator);
38 }
39
40 return position;
41 }
42
43 //------------------------------------------------------------------------------------------------
44 override void DebugDraw()
45 {
46 if (!m_Interactor)
47 return;
48
49 int consumerIdx;
50 float heightDiff;
51 vector origin;
52 Color color1 = Color.FromInt(m_Interactor.GetDebugColor().PackToInt());
53 Color color2 = Color.FromInt(m_Interactor.GetDebugColor().PackToInt());
54
55 color1.Scale(0.2);
56 color1.SetA(1.0);
57 color2.Lerp(Color.FromInt(Color.WHITE), 0.0);
58 color2.SetA(1.0);
59
60 foreach (int idx, SCR_ResourceContainer container: m_aRegisteredContainers)
61 {
62 if (!container)
63 continue;
64
65 string infoText = string.Format(" ENC Pos: %1 Distance: %2 m ", idx, vector.Distance(m_Interactor.GetOwnerOrigin(), container.GetOwnerOrigin()));
66 origin = container.GetOwnerOrigin();
67 consumerIdx = container.GetLinkedInteractorIndex(m_Interactor);
68
69 if (container.IsResourceGainEnabled())
70 consumerIdx++;
71
72 if (container.IsResourceDecayEnabled())
73 consumerIdx++;
74
75 heightDiff = container.debugControlOffset * consumerIdx + container.debugControlOffset * 3;
76
77 Shape.CreateArrow(origin + Vector(0.0, heightDiff, 0.0), origin, 0.0, 0xFFFFFFFF, ShapeFlags.ONCE | ShapeFlags.NOZBUFFER);
78
79 Shape.CreateArrow(m_Interactor.GetOwnerOrigin(), (origin + Vector(0.0, heightDiff, 0.0)), 0.1, color1.PackToInt(), ShapeFlags.ONCE | ShapeFlags.NOZBUFFER |ShapeFlags.DEPTH_DITHER);
80
81 DebugTextWorldSpace.Create(m_Interactor.GetOwner().GetWorld(), infoText, DebugTextFlags.CENTER | DebugTextFlags.FACE_CAMERA | DebugTextFlags.ONCE, origin[0], origin[1] + heightDiff, origin[2], 10, color1.PackToInt(), color2.PackToInt(), consumerIdx + 1);
82
83 if (!container.GetComponent().IsDebugVisualizationEnabled())
84 container.DebugDraw(false);
85 }
86 }
87}
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
vector position
void DebugDraw()
EResourceContainerStorageType
Definition Color.c:13
int RegisterContainer(notnull SCR_ResourceContainer container, notnull SCR_ResourceInteractor actor)
SCR_ResourceContainer GetContainerRepresentative()
array< ref SCR_ResourceEncapsulatorActionBase > GetActions()
Instance of created debug visualizer.
Definition Shape.c:14
DebugTextFlags
ShapeFlags
Definition ShapeFlags.c:13
proto native vector Vector(float x, float y, float z)