MCPcopy Create free account
hub / github.com/PCGEx/PCGExtendedToolkit / Init

Method Init

Source/PCGExtendedToolkit/Private/Misc/PCGExWriteGUID.cpp:13–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11#define PCGEX_NAMESPACE WriteGUID
12
13bool FPCGExGUIDDetails::Init(FPCGExContext* InContext, TSharedRef<PCGExData::FFacade>& InFacade)
14{
15 switch (Format)
16 {
17 default:
18 case EPCGExGUIDFormat::Digits:
19 GUIDFormat = EGuidFormats::Digits;
20 break;
21 case EPCGExGUIDFormat::DigitsLower:
22 GUIDFormat = EGuidFormats::DigitsLower;
23 break;
24 case EPCGExGUIDFormat::DigitsWithHyphens:
25 GUIDFormat = EGuidFormats::DigitsWithHyphens;
26 break;
27 case EPCGExGUIDFormat::DigitsWithHyphensLower:
28 GUIDFormat = EGuidFormats::DigitsWithHyphensLower;
29 break;
30 case EPCGExGUIDFormat::DigitsWithHyphensInBraces:
31 GUIDFormat = EGuidFormats::DigitsWithHyphensInBraces;
32 break;
33 case EPCGExGUIDFormat::DigitsWithHyphensInParentheses:
34 GUIDFormat = EGuidFormats::DigitsWithHyphensInParentheses;
35 break;
36 case EPCGExGUIDFormat::HexValuesInBraces:
37 GUIDFormat = EGuidFormats::HexValuesInBraces;
38 break;
39 case EPCGExGUIDFormat::UniqueObjectGuid:
40 GUIDFormat = EGuidFormats::UniqueObjectGuid;
41 break;
42 case EPCGExGUIDFormat::Short:
43 GUIDFormat = EGuidFormats::Short;
44 break;
45 case EPCGExGUIDFormat::Base36Encoded:
46 GUIDFormat = EGuidFormats::Base36Encoded;
47 break;
48 }
49
50 AdjustedGridHashCollision = FVector(1 / GridHashCollision.X, 1 / GridHashCollision.Y, 1 / GridHashCollision.Z);
51 AdjustedPositionHashCollision = FVector(1 / PositionHashCollision.X, 1 / PositionHashCollision.Y, 1 / PositionHashCollision.Z);
52
53 bUseIndex = (Uniqueness & static_cast<uint8>(EPCGExGUIDUniquenessFlags::Index)) != 0;
54 bUseSeed = (Uniqueness & static_cast<uint8>(EPCGExGUIDUniquenessFlags::Seed)) != 0;
55 bUsePosition = (Uniqueness & static_cast<uint8>(EPCGExGUIDUniquenessFlags::Position)) != 0;
56
57 UniqueKeyReader = GetValueSettingUniqueKey();
58 if (!UniqueKeyReader->Init(InContext, InFacade)) { return false; }
59
60 const uint32 BaseUniqueKey = UniqueKeyReader->IsConstant() ? 0 : UniqueKeyConstant;
61 if ((Uniqueness & static_cast<uint8>(EPCGExGUIDUniquenessFlags::Grid)) != 0)
62 {
63 const FBox RefBounds = PCGHelpers::GetGridBounds(InContext->GetTargetActor(InFacade->Source->GetIn()), InContext->SourceComponent.Get());
64 GridHash = HashCombine(BaseUniqueKey, PCGEx::GH3(RefBounds.Min, AdjustedGridHashCollision));
65 GridHash = HashCombine(GridHash, PCGEx::GH3(RefBounds.Max, AdjustedGridHashCollision));
66 }
67 else
68 {
69 GridHash = BaseUniqueKey;
70 }

Callers 15

BootMethod · 0.45
ProcessMethod · 0.45
ExecuteInternalMethod · 0.45
BootMethod · 0.45
ProcessMethod · 0.45
ProcessMethod · 0.45
ExecuteInternalMethod · 0.45
ExecuteInternalMethod · 0.45
ProcessMethod · 0.45
BootMethod · 0.45
ProcessMethod · 0.45

Calls 3

GH3Function · 0.85
IsConstantMethod · 0.45
GetMethod · 0.45

Tested by 4

BootMethod · 0.36
ProcessMethod · 0.36
BootMethod · 0.36
ProcessMethod · 0.36