├── .babelrc
├── .gitignore
├── LICENSE
├── README.md
├── doc
└── images
│ ├── code-sample-screenshot.png
│ └── editor-sample-screenshot.png
├── examples
└── ReactUmgExamples
│ ├── Config
│ ├── DefaultEditor.ini
│ ├── DefaultEngine.ini
│ └── DefaultGame.ini
│ ├── Content
│ ├── HelloReactUMG.umap
│ └── Scripts
│ │ ├── .babelrc
│ │ ├── aliases.js
│ │ ├── bootstrap.js
│ │ ├── helloReactUMG.js
│ │ ├── helloReactUMG.jsx
│ │ ├── package.json
│ │ └── typings
│ │ ├── _part_0_ue.d.ts
│ │ ├── _part_1_ue.d.ts
│ │ └── ue.d.ts
│ ├── Plugins
│ └── .keepme
│ └── ReactUmgExamples.uproject
├── package.json
└── src
├── ReactUMGComponent.js
├── ReactUMGDefaultInjection.js
├── ReactUMGEmptyComponent.js
├── ReactUMGMount.js
├── ReactUMGReconcileTransaction.js
├── UMGRoots.js
├── attributePayload.js
├── components
├── Button.js
├── HorizontalBox.js
├── Input.js
├── Text.js
├── VerticalBox.js
└── index.js
├── devtools
├── InitializeJavaScriptAppEngine.js
└── setupDevtools.js
└── index.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "react",
4 | "es2015"
5 | ],
6 | "plugins": [
7 | "transform-class-properties"
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | lib
3 |
4 | Binaries
5 | Saved
6 | Plugins
7 | DerivedDataCache
8 | Intermediate
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 drywolf
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # react-umg
2 | A React renderer for Unreal Motion Graphics (https://docs.unrealengine.com/latest/INT/Engine/UMG/)
3 |
4 | ### Disclaimer
5 |
6 | This library is in a very early proof-of-concept phase. Many core features are missing and bugs are expected to happen.
7 |
8 | ### Screenshots
9 |
10 | Building Unreal Engine 4 user interface structures with [React](https://facebook.github.io/react/) and [JSX](https://facebook.github.io/jsx/) syntax.
11 |
12 |
13 |
14 |
15 |
16 | ### Building react-umg
17 |
18 | - `npm i`
19 | - `npm run build`
20 |
21 | ### Running the examples
22 |
23 | - build the react-umg code (see above)
24 | - compile the [Unreal.js plugin](https://github.com/ncsoft/Unreal.js)
25 | - copy the built `UnrealJS` plugin into the `examples/ReactUmgExamples/Plugins/` folder
26 | - open the `ReactUmgExamples.uproject` UE4 project
27 | - open the `ReactUmgExamples` level in the project
28 | - run the level in the editor
29 | - try out interacting with the displayed controls and the included sample behaviors
30 |
31 | ### Contact
32 |
33 | - [@DrywolfDev](https://twitter.com/intent/follow?screen_name=DrywolfDev)
34 |
35 | ### License
36 |
37 | - Licensed under the MIT license
38 | - see [LICENSE](https://github.com/drywolf/ts3-overwatch-stats-plugin/blob/master/LICENSE) for details
39 |
40 | ### Credit
41 |
42 | - This module builds upon:
43 | - [React.js](https://facebook.github.io/react/)
44 | - [Unreal.js](https://github.com/ncsoft/Unreal.js)
45 |
--------------------------------------------------------------------------------
/doc/images/code-sample-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drywolf/react-umg/65b1f8c9f6149c32f6c462589dc44f4326703844/doc/images/code-sample-screenshot.png
--------------------------------------------------------------------------------
/doc/images/editor-sample-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drywolf/react-umg/65b1f8c9f6149c32f6c462589dc44f4326703844/doc/images/editor-sample-screenshot.png
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Config/DefaultEditor.ini:
--------------------------------------------------------------------------------
1 | [EditoronlyBP]
2 | bAllowClassAndBlueprintPinMatching=true
3 | bReplaceBlueprintWithClass=true
4 | bDontLoadBlueprintOutsideEditor=true
5 | bBlueprintIsNotBlueprintType=true
6 |
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Config/DefaultEngine.ini:
--------------------------------------------------------------------------------
1 | [URL]
2 |
3 | [/Script/HardwareTargeting.HardwareTargetingSettings]
4 | TargetedHardwareClass=Desktop
5 | AppliedTargetedHardwareClass=Desktop
6 | DefaultGraphicsPerformance=Maximum
7 | AppliedDefaultGraphicsPerformance=Maximum
8 |
9 |
10 |
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Config/DefaultGame.ini:
--------------------------------------------------------------------------------
1 | [/Script/EngineSettings.GeneralProjectSettings]
2 | ProjectID=EDEA40E84EF7472583F4649384FA71CA
3 |
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Content/HelloReactUMG.umap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drywolf/react-umg/65b1f8c9f6149c32f6c462589dc44f4326703844/examples/ReactUmgExamples/Content/HelloReactUMG.umap
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Content/Scripts/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "react",
4 | "es2015"
5 | ],
6 | "plugins": [
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Content/Scripts/aliases.js:
--------------------------------------------------------------------------------
1 | UObject.prototype.ClearTimerbyFunctionName = UObject.prototype.K2_ClearTimer;
2 | UObject.prototype.GetTimerElapsedTimebyFunctionName = UObject.prototype.K2_GetTimerElapsedTime;
3 | UObject.prototype.GetTimerRemainingTimebyFunctionName = UObject.prototype.K2_GetTimerRemainingTime;
4 | UObject.prototype.IsTimerActivebyFunctionName = UObject.prototype.K2_IsTimerActive;
5 | UObject.prototype.IsTimerPausedbyFunctionName = UObject.prototype.K2_IsTimerPaused;
6 | UObject.prototype.PauseTimerbyFunctionName = UObject.prototype.K2_PauseTimer;
7 | UObject.prototype.SetTimerbyFunctionName = UObject.prototype.K2_SetTimer;
8 | UObject.prototype.DoesTimerExistbyFunctionName = UObject.prototype.K2_TimerExists;
9 | UObject.prototype.UnpauseTimerbyFunctionName = UObject.prototype.K2_UnPauseTimer;
10 | UObject.prototype.ToString = UObject.prototype.Conv_ObjectToString;
11 | UObject.prototype.Equal = UObject.prototype.EqualEqual_ObjectObject;
12 | UObject.prototype.NotEqual = UObject.prototype.NotEqual_ObjectObject;
13 | UObject.prototype.GetClass = UObject.prototype.GetObjectClass;
14 | Class.prototype.GetDisplayName = Class.prototype.GetClassDisplayName;
15 | Class.prototype.Equal = Class.prototype.EqualEqual_ClassClass;
16 | Class.prototype.NotEqual = Class.prototype.NotEqual_ClassClass;
17 | Actor.prototype.ConstructionScript = Actor.prototype.UserConstructionScript;
18 | Actor.prototype.SnapActorTo = Actor.prototype.SnapRootComponentTo;
19 | Actor.prototype.Tick = Actor.prototype.ReceiveTick;
20 | Actor.prototype.RadialDamage = Actor.prototype.ReceiveRadialDamage;
21 | Actor.prototype.PointDamage = Actor.prototype.ReceivePointDamage;
22 | Actor.prototype.Hit = Actor.prototype.ReceiveHit;
23 | Actor.prototype.EndPlay = Actor.prototype.ReceiveEndPlay;
24 | Actor.prototype.Destroyed = Actor.prototype.ReceiveDestroyed;
25 | Actor.prototype.BeginPlay = Actor.prototype.ReceiveBeginPlay;
26 | Actor.prototype.AnyDamage = Actor.prototype.ReceiveAnyDamage;
27 | Actor.prototype.ActorOnReleased = Actor.prototype.ReceiveActorOnReleased;
28 | Actor.prototype.TouchLeave = Actor.prototype.ReceiveActorOnInputTouchLeave;
29 | Actor.prototype.TouchEnter = Actor.prototype.ReceiveActorOnInputTouchEnter;
30 | Actor.prototype.EndInputTouch = Actor.prototype.ReceiveActorOnInputTouchEnd;
31 | Actor.prototype.BeginInputTouch = Actor.prototype.ReceiveActorOnInputTouchBegin;
32 | Actor.prototype.ActorOnClicked = Actor.prototype.ReceiveActorOnClicked;
33 | Actor.prototype.ActorEndOverlap = Actor.prototype.ReceiveActorEndOverlap;
34 | Actor.prototype.ActorEndCursorOver = Actor.prototype.ReceiveActorEndCursorOver;
35 | Actor.prototype.ActorBeginOverlap = Actor.prototype.ReceiveActorBeginOverlap;
36 | Actor.prototype.ActorBeginCursorOver = Actor.prototype.ReceiveActorBeginCursorOver;
37 | Actor.prototype.Teleport = Actor.prototype.K2_TeleportTo;
38 | Actor.prototype.SetActorTransform = Actor.prototype.K2_SetActorTransform;
39 | Actor.prototype.SetActorRotation = Actor.prototype.K2_SetActorRotation;
40 | Actor.prototype.SetActorRelativeTransform = Actor.prototype.K2_SetActorRelativeTransform;
41 | Actor.prototype.SetActorRelativeRotation = Actor.prototype.K2_SetActorRelativeRotation;
42 | Actor.prototype.SetActorRelativeLocation = Actor.prototype.K2_SetActorRelativeLocation;
43 | Actor.prototype.SetActorLocationAndRotation = Actor.prototype.K2_SetActorLocationAndRotation;
44 | Actor.prototype.SetActorLocation = Actor.prototype.K2_SetActorLocation;
45 | Actor.prototype.OnReset = Actor.prototype.K2_OnReset;
46 | Actor.prototype.OnEndViewTarget = Actor.prototype.K2_OnEndViewTarget;
47 | Actor.prototype.OnBecomeViewTarget = Actor.prototype.K2_OnBecomeViewTarget;
48 | Actor.prototype.GetRootComponent = Actor.prototype.K2_GetRootComponent;
49 | Actor.prototype.GetActorRotation = Actor.prototype.K2_GetActorRotation;
50 | Actor.prototype.GetActorLocation = Actor.prototype.K2_GetActorLocation;
51 | Actor.prototype.DetachFromActor = Actor.prototype.K2_DetachFromActor;
52 | Actor.prototype.DestroyComponent = Actor.prototype.K2_DestroyComponent;
53 | Actor.prototype.DestroyActor = Actor.prototype.K2_DestroyActor;
54 | Actor.prototype.AttachToComponent = Actor.prototype.K2_AttachToComponent;
55 | Actor.prototype.AttachToActor = Actor.prototype.K2_AttachToActor;
56 | Actor.prototype.AttachActorToActor = Actor.prototype.K2_AttachRootComponentToActor;
57 | Actor.prototype.AttachActorToComponent = Actor.prototype.K2_AttachRootComponentTo;
58 | Actor.prototype.AddActorWorldTransform = Actor.prototype.K2_AddActorWorldTransform;
59 | Actor.prototype.AddActorWorldRotation = Actor.prototype.K2_AddActorWorldRotation;
60 | Actor.prototype.AddActorWorldOffset = Actor.prototype.K2_AddActorWorldOffset;
61 | Actor.prototype.AddActorLocalTransform = Actor.prototype.K2_AddActorLocalTransform;
62 | Actor.prototype.AddActorLocalRotation = Actor.prototype.K2_AddActorLocalRotation;
63 | Actor.prototype.AddActorLocalOffset = Actor.prototype.K2_AddActorLocalOffset;
64 | Actor.prototype.GetActorTransform = Actor.prototype.GetTransform;
65 | Actor.prototype.DetachActorFromActor = Actor.prototype.DetachRootComponentFromParent;
66 | ActorComponent.prototype.Tick = ActorComponent.prototype.ReceiveTick;
67 | ActorComponent.prototype.EndPlay = ActorComponent.prototype.ReceiveEndPlay;
68 | ActorComponent.prototype.BeginPlay = ActorComponent.prototype.ReceiveBeginPlay;
69 | ActorComponent.prototype.DestroyComponent = ActorComponent.prototype.K2_DestroyComponent;
70 | ActorComponent.prototype.IsComponentBeingDestroyed = ActorComponent.prototype.IsBeingDestroyed;
71 | SceneComponent.prototype.SetWorldTransform = SceneComponent.prototype.K2_SetWorldTransform;
72 | SceneComponent.prototype.SetWorldRotation = SceneComponent.prototype.K2_SetWorldRotation;
73 | SceneComponent.prototype.SetWorldLocationAndRotation = SceneComponent.prototype.K2_SetWorldLocationAndRotation;
74 | SceneComponent.prototype.SetWorldLocation = SceneComponent.prototype.K2_SetWorldLocation;
75 | SceneComponent.prototype.SetRelativeTransform = SceneComponent.prototype.K2_SetRelativeTransform;
76 | SceneComponent.prototype.SetRelativeRotation = SceneComponent.prototype.K2_SetRelativeRotation;
77 | SceneComponent.prototype.SetRelativeLocationAndRotation = SceneComponent.prototype.K2_SetRelativeLocationAndRotation;
78 | SceneComponent.prototype.SetRelativeLocation = SceneComponent.prototype.K2_SetRelativeLocation;
79 | SceneComponent.prototype.GetWorldTransform = SceneComponent.prototype.K2_GetComponentToWorld;
80 | SceneComponent.prototype.GetWorldScale = SceneComponent.prototype.K2_GetComponentScale;
81 | SceneComponent.prototype.GetWorldRotation = SceneComponent.prototype.K2_GetComponentRotation;
82 | SceneComponent.prototype.GetWorldLocation = SceneComponent.prototype.K2_GetComponentLocation;
83 | SceneComponent.prototype.DetachFromComponent = SceneComponent.prototype.K2_DetachFromComponent;
84 | SceneComponent.prototype.AttachToComponent = SceneComponent.prototype.K2_AttachToComponent;
85 | SceneComponent.prototype.AttachTo = SceneComponent.prototype.K2_AttachTo;
86 | SceneComponent.prototype.AddWorldTransform = SceneComponent.prototype.K2_AddWorldTransform;
87 | SceneComponent.prototype.AddWorldRotation = SceneComponent.prototype.K2_AddWorldRotation;
88 | SceneComponent.prototype.AddWorldOffset = SceneComponent.prototype.K2_AddWorldOffset;
89 | SceneComponent.prototype.AddRelativeRotation = SceneComponent.prototype.K2_AddRelativeRotation;
90 | SceneComponent.prototype.AddRelativeLocation = SceneComponent.prototype.K2_AddRelativeLocation;
91 | SceneComponent.prototype.AddLocalTransform = SceneComponent.prototype.K2_AddLocalTransform;
92 | SceneComponent.prototype.AddLocalRotation = SceneComponent.prototype.K2_AddLocalRotation;
93 | SceneComponent.prototype.AddLocalOffset = SceneComponent.prototype.K2_AddLocalOffset;
94 | PrimitiveComponent.prototype.ComponentOverlapActors = PrimitiveComponent.prototype.ComponentOverlapActors_NEW;
95 | PrimitiveComponent.prototype.ComponentOverlapComponents = PrimitiveComponent.prototype.ComponentOverlapComponents_NEW;
96 | PrimitiveComponent.prototype.SetPhysicalMaterialOverride = PrimitiveComponent.prototype.SetPhysMaterialOverride;
97 | PrimitiveComponent.prototype.SetMaxDrawDistance = PrimitiveComponent.prototype.SetCullDistance;
98 | PrimitiveComponent.prototype.LineTraceComponent = PrimitiveComponent.prototype.K2_LineTraceComponent;
99 | PrimitiveComponent.prototype.IsQueryCollisionEnabled = PrimitiveComponent.prototype.K2_IsQueryCollisionEnabled;
100 | PrimitiveComponent.prototype.IsPhysicsCollisionEnabled = PrimitiveComponent.prototype.K2_IsPhysicsCollisionEnabled;
101 | PrimitiveComponent.prototype.IsCollisionEnabled = PrimitiveComponent.prototype.K2_IsCollisionEnabled;
102 | PrimitiveComponent.prototype.CreateMIDForElementFromMaterial = PrimitiveComponent.prototype.CreateAndSetMaterialInstanceDynamicFromMaterial;
103 | PrimitiveComponent.prototype.CreateMIDForElement = PrimitiveComponent.prototype.CreateAndSetMaterialInstanceDynamic;
104 | PrimitiveComponent.prototype.GetMoveIgnoreActors = PrimitiveComponent.prototype.CopyArrayOfMoveIgnoreActors;
105 | HUD.prototype.HitBoxReleased = HUD.prototype.ReceiveHitBoxRelease;
106 | HUD.prototype.HitBoxEndCursorOver = HUD.prototype.ReceiveHitBoxEndCursorOver;
107 | HUD.prototype.HitBoxClicked = HUD.prototype.ReceiveHitBoxClick;
108 | HUD.prototype.HitBoxBeginCursorOver = HUD.prototype.ReceiveHitBoxBeginCursorOver;
109 | PawnActionsComponent.prototype.PushAction = PawnActionsComponent.prototype.K2_PushAction;
110 | PawnActionsComponent.prototype.PerformAction = PawnActionsComponent.prototype.K2_PerformAction;
111 | PawnActionsComponent.PerformAction = PawnActionsComponent.K2_PerformAction;
112 | PawnActionsComponent.prototype.ForceAbortAction = PawnActionsComponent.prototype.K2_ForceAbortAction;
113 | PawnActionsComponent.prototype.AbortAction = PawnActionsComponent.prototype.K2_AbortAction;
114 | Controller.prototype.GetControlledPawn = Controller.prototype.K2_GetPawn;
115 | AIController.prototype.SetFocus = AIController.prototype.K2_SetFocus;
116 | AIController.prototype.SetFocalPoint = AIController.prototype.K2_SetFocalPoint;
117 | AIController.prototype.ClearFocus = AIController.prototype.K2_ClearFocus;
118 | AISense_Blueprint.prototype.OnNewPawn = AISense_Blueprint.prototype.K2_OnNewPawn;
119 | AITask_MoveTo.prototype.MoveToLocationorActor = AITask_MoveTo.prototype.AIMoveTo;
120 | AITask_MoveTo.MoveToLocationorActor = AITask_MoveTo.AIMoveTo;
121 | Pawn.prototype.Unpossessed = Pawn.prototype.ReceiveUnpossessed;
122 | Pawn.prototype.Possessed = Pawn.prototype.ReceivePossessed;
123 | Pawn.prototype.GetMovementInputVector = Pawn.prototype.K2_GetMovementInputVector;
124 | Character.prototype.UpdateCustomMovement = Character.prototype.K2_UpdateCustomMovement;
125 | Character.prototype.OnStartCrouch = Character.prototype.K2_OnStartCrouch;
126 | Character.prototype.OnMovementModeChanged = Character.prototype.K2_OnMovementModeChanged;
127 | Character.prototype.OnEndCrouch = Character.prototype.K2_OnEndCrouch;
128 | Character.prototype.CanJump = Character.prototype.CanJumpInternal;
129 | Widget.prototype.HasAnyUserFocusedDescendants = Widget.prototype.HasFocusedDescendants;
130 | WidgetBlueprintLibrary.prototype.DrawText = WidgetBlueprintLibrary.prototype.DrawTextFormatted;
131 | WidgetBlueprintLibrary.DrawText = WidgetBlueprintLibrary.DrawTextFormatted;
132 | WidgetBlueprintLibrary.prototype.DrawString = WidgetBlueprintLibrary.prototype.DrawText;
133 | WidgetBlueprintLibrary.DrawString = WidgetBlueprintLibrary.DrawText;
134 | WidgetBlueprintLibrary.prototype.CreateWidget = WidgetBlueprintLibrary.prototype.Create;
135 | WidgetBlueprintLibrary.CreateWidget = WidgetBlueprintLibrary.Create;
136 | AnimInstance.prototype.GetTransitionTimeElapsed = AnimInstance.prototype.GetInstanceTransitionTimeElapsedFraction;
137 | AnimInstance.prototype.GetTransitionTimeElapsed = AnimInstance.prototype.GetInstanceTransitionTimeElapsed;
138 | AnimInstance.prototype.GetTransitionCrossfadeDuration = AnimInstance.prototype.GetInstanceTransitionCrossfadeDuration;
139 | AnimInstance.prototype.StateWeight = AnimInstance.prototype.GetInstanceStateWeight;
140 | AnimInstance.prototype.CurrentStateTime = AnimInstance.prototype.GetInstanceCurrentStateElapsedTime;
141 | AnimInstance.prototype.TimeRemaining = AnimInstance.prototype.GetInstanceAssetPlayerTimeFromEndFraction;
142 | AnimInstance.prototype.TimeRemaining = AnimInstance.prototype.GetInstanceAssetPlayerTimeFromEnd;
143 | AnimInstance.prototype.CurrentTime = AnimInstance.prototype.GetInstanceAssetPlayerTimeFraction;
144 | AnimInstance.prototype.CurrentTime = AnimInstance.prototype.GetInstanceAssetPlayerTime;
145 | AnimInstance.prototype.Length = AnimInstance.prototype.GetInstanceAssetPlayerLength;
146 | SkinnedMeshComponent.prototype.FindClosestBone = SkinnedMeshComponent.prototype.FindClosestBone_K2;
147 | SkeletalMeshComponent.prototype.GetClosestPointOnPhysicsAsset = SkeletalMeshComponent.prototype.K2_GetClosestPointOnPhysicsAsset;
148 | GameInstance.prototype.Shutdown = GameInstance.prototype.ReceiveShutdown;
149 | GameInstance.prototype.Init = GameInstance.prototype.ReceiveInit;
150 | GameInstance.prototype.TravelError = GameInstance.prototype.HandleTravelError;
151 | GameInstance.prototype.NetworkError = GameInstance.prototype.HandleNetworkError;
152 | World.prototype.LogBoxShape = World.prototype.LogBox;
153 | World.prototype.BoxOverlapActors = World.prototype.BoxOverlapActors_NEW;
154 | World.prototype.BoxOverlapComponents = World.prototype.BoxOverlapComponents_NEW;
155 | World.prototype.MultiBoxTraceByChannel = World.prototype.BoxTraceMulti;
156 | World.prototype.MultiBoxTraceForObjects = World.prototype.BoxTraceMultiForObjects;
157 | World.prototype.BoxTraceByChannel = World.prototype.BoxTraceSingle;
158 | World.prototype.BoxTraceForObjects = World.prototype.BoxTraceSingleForObjects;
159 | World.prototype.CapsuleOverlapActors = World.prototype.CapsuleOverlapActors_NEW;
160 | World.prototype.CapsuleOverlapComponents = World.prototype.CapsuleOverlapComponents_NEW;
161 | World.prototype.MultiCapsuleTraceByChannelDeprecated = World.prototype.CapsuleTraceMulti_DEPRECATED;
162 | World.prototype.MultiCapsuleTraceByChannel = World.prototype.CapsuleTraceMulti_NEW;
163 | World.prototype.MultiCapsuleTraceByObjectDeprecated = World.prototype.CapsuleTraceMultiByObject_DEPRECATED;
164 | World.prototype.MultiCapsuleTraceForObjects = World.prototype.CapsuleTraceMultiForObjects;
165 | World.prototype.SingleCapsuleTraceByChannelDeprecated = World.prototype.CapsuleTraceSingle_DEPRECATED;
166 | World.prototype.CapsuleTraceByChannel = World.prototype.CapsuleTraceSingle_NEW;
167 | World.prototype.SingleCapsuleTraceByObjectDeprecated = World.prototype.CapsuleTraceSingleByObject_DEPRECATED;
168 | World.prototype.CapsuleTraceForObjects = World.prototype.CapsuleTraceSingleForObjects;
169 | World.prototype.DrawDebugCone = World.prototype.DrawDebugConeInDegrees;
170 | World.prototype.ClearandInvalidateTimerbyHandle = World.prototype.K2_ClearAndInvalidateTimerHandle;
171 | World.prototype.ClearTimerbyHandle = World.prototype.K2_ClearTimerHandle;
172 | World.prototype.GetTimerElapsedTimebyHandle = World.prototype.K2_GetTimerElapsedTimeHandle;
173 | World.prototype.GetTimerRemainingTimebyHandle = World.prototype.K2_GetTimerRemainingTimeHandle;
174 | World.prototype.IsTimerActivebyHandle = World.prototype.K2_IsTimerActiveHandle;
175 | World.prototype.IsTimerPausedbyHandle = World.prototype.K2_IsTimerPausedHandle;
176 | World.prototype.PauseTimerbyHandle = World.prototype.K2_PauseTimerHandle;
177 | World.prototype.DoesTimerExistbyHandle = World.prototype.K2_TimerExistsHandle;
178 | World.prototype.UnpauseTimerbyHandle = World.prototype.K2_UnPauseTimerHandle;
179 | World.prototype.MultiLineTraceByChannelDeprecated = World.prototype.LineTraceMulti_DEPRECATED;
180 | World.prototype.MultiLineTraceByChannel = World.prototype.LineTraceMulti_NEW;
181 | World.prototype.MultiLineTraceByObjectDeprecated = World.prototype.LineTraceMultiByObject_DEPRECATED;
182 | World.prototype.MultiLineTraceForObjects = World.prototype.LineTraceMultiForObjects;
183 | World.prototype.SingleLineTraceByChannelDeprecated = World.prototype.LineTraceSingle_DEPRECATED;
184 | World.prototype.LineTraceByChannel = World.prototype.LineTraceSingle_NEW;
185 | World.prototype.SingleLineTraceByObjectDeprecated = World.prototype.LineTraceSingleByObject_DEPRECATED;
186 | World.prototype.LineTraceForObjects = World.prototype.LineTraceSingleForObjects;
187 | World.prototype.SphereOverlapActors = World.prototype.SphereOverlapActors_NEW;
188 | World.prototype.SphereOverlapComponents = World.prototype.SphereOverlapComponents_NEW;
189 | World.prototype.MultiSphereTraceByChannelDeprecated = World.prototype.SphereTraceMulti_DEPRECATED;
190 | World.prototype.MultiSphereTraceByChannel = World.prototype.SphereTraceMulti_NEW;
191 | World.prototype.MultiSphereTraceByObjectDeprecated = World.prototype.SphereTraceMultiByObject_DEPRECATED;
192 | World.prototype.MultiSphereTraceForObjects = World.prototype.SphereTraceMultiForObjects;
193 | World.prototype.SingleSphereTraceByChannelDeprecated = World.prototype.SphereTraceSingle_DEPRECATED;
194 | World.prototype.SphereTraceByChannel = World.prototype.SphereTraceSingle_NEW;
195 | World.prototype.SingleSphereTraceByObjectDeprecated = World.prototype.SphereTraceSingleByObject_DEPRECATED;
196 | World.prototype.SphereTraceForObjects = World.prototype.SphereTraceSingleForObjects;
197 | World.prototype.SuggestProjectileVelocity = World.prototype.BlueprintSuggestProjectileVelocity;
198 | World.prototype.CreateWidget = World.prototype.Create;
199 | PlayerController.prototype.ConvertWorldLocationToScreenLocation = PlayerController.prototype.ProjectWorldLocationToScreen;
200 | PlayerController.prototype.ConvertScreenLocationToWorldSpace = PlayerController.prototype.DeprojectScreenPositionToWorld;
201 | PlayerController.prototype.ConvertMouseLocationToWorldSpace = PlayerController.prototype.DeprojectMousePositionToWorld;
202 | GameMode.prototype.OnPostLogin = GameMode.prototype.K2_PostLogin;
203 | GameMode.prototype.OnSwapPlayerControllers = GameMode.prototype.K2_OnSwapPlayerControllers;
204 | GameMode.prototype.OnSetMatchState = GameMode.prototype.K2_OnSetMatchState;
205 | GameMode.prototype.OnRestartPlayer = GameMode.prototype.K2_OnRestartPlayer;
206 | GameMode.prototype.OnLogout = GameMode.prototype.K2_OnLogout;
207 | GameMode.prototype.OnChangeName = GameMode.prototype.K2_OnChangeName;
208 | GameMode.prototype.FindPlayerStart = GameMode.prototype.K2_FindPlayerStart;
209 | MovementComponent.prototype.MoveUpdatedComponent = MovementComponent.prototype.K2_MoveUpdatedComponent;
210 | MovementComponent.prototype.GetModifiedMaxSpeed = MovementComponent.prototype.K2_GetModifiedMaxSpeed;
211 | MovementComponent.prototype.GetMaxSpeedModifier = MovementComponent.prototype.K2_GetMaxSpeedModifier;
212 | PawnMovementComponent.prototype.GetInputVector = PawnMovementComponent.prototype.K2_GetInputVector;
213 | CharacterMovementComponent.prototype.GetWalkableFloorZ = CharacterMovementComponent.prototype.K2_GetWalkableFloorZ;
214 | CharacterMovementComponent.prototype.GetWalkableFloorAngle = CharacterMovementComponent.prototype.K2_GetWalkableFloorAngle;
215 | CharacterMovementComponent.prototype.GetModifiedMaxAcceleration = CharacterMovementComponent.prototype.K2_GetModifiedMaxAcceleration;
216 | AudioComponent.prototype.SetIntegerParameter = AudioComponent.prototype.SetIntParameter;
217 | AudioComponent.prototype.SetBooleanParameter = AudioComponent.prototype.SetBoolParameter;
218 | AudioComponent.prototype.GetAttenuationSettingsToApply = AudioComponent.prototype.BP_GetAttenuationSettingsToApply;
219 | ArrowComponent.prototype.SetArrowColor = ArrowComponent.prototype.SetArrowColor_New;
220 | TextRenderComponent.prototype.SetText = TextRenderComponent.prototype.K2_SetText;
221 | GameplayStatics.prototype.GetClass = GameplayStatics.prototype.GetObjectClass;
222 | GameplayStatics.GetClass = GameplayStatics.GetObjectClass;
223 | GameplayStatics.prototype.SuggestProjectileVelocity = GameplayStatics.prototype.BlueprintSuggestProjectileVelocity;
224 | GameplayStatics.SuggestProjectileVelocity = GameplayStatics.BlueprintSuggestProjectileVelocity;
225 | KismetArrayLibrary.prototype.Shuffle = KismetArrayLibrary.prototype.Array_Shuffle;
226 | KismetArrayLibrary.Shuffle = KismetArrayLibrary.Array_Shuffle;
227 | KismetArrayLibrary.prototype.SetArrayElem = KismetArrayLibrary.prototype.Array_Set;
228 | KismetArrayLibrary.SetArrayElem = KismetArrayLibrary.Array_Set;
229 | KismetArrayLibrary.prototype.Resize = KismetArrayLibrary.prototype.Array_Resize;
230 | KismetArrayLibrary.Resize = KismetArrayLibrary.Array_Resize;
231 | KismetArrayLibrary.prototype.RemoveItem = KismetArrayLibrary.prototype.Array_RemoveItem;
232 | KismetArrayLibrary.RemoveItem = KismetArrayLibrary.Array_RemoveItem;
233 | KismetArrayLibrary.prototype.RemoveIndex = KismetArrayLibrary.prototype.Array_Remove;
234 | KismetArrayLibrary.RemoveIndex = KismetArrayLibrary.Array_Remove;
235 | KismetArrayLibrary.prototype.Length = KismetArrayLibrary.prototype.Array_Length;
236 | KismetArrayLibrary.Length = KismetArrayLibrary.Array_Length;
237 | KismetArrayLibrary.prototype.LastIndex = KismetArrayLibrary.prototype.Array_LastIndex;
238 | KismetArrayLibrary.LastIndex = KismetArrayLibrary.Array_LastIndex;
239 | KismetArrayLibrary.prototype.IsValidIndex = KismetArrayLibrary.prototype.Array_IsValidIndex;
240 | KismetArrayLibrary.IsValidIndex = KismetArrayLibrary.Array_IsValidIndex;
241 | KismetArrayLibrary.prototype.Insert = KismetArrayLibrary.prototype.Array_Insert;
242 | KismetArrayLibrary.Insert = KismetArrayLibrary.Array_Insert;
243 | KismetArrayLibrary.prototype.Get = KismetArrayLibrary.prototype.Array_Get;
244 | KismetArrayLibrary.Get = KismetArrayLibrary.Array_Get;
245 | KismetArrayLibrary.prototype.FindItem = KismetArrayLibrary.prototype.Array_Find;
246 | KismetArrayLibrary.FindItem = KismetArrayLibrary.Array_Find;
247 | KismetArrayLibrary.prototype.ContainsItem = KismetArrayLibrary.prototype.Array_Contains;
248 | KismetArrayLibrary.ContainsItem = KismetArrayLibrary.Array_Contains;
249 | KismetArrayLibrary.prototype.Clear = KismetArrayLibrary.prototype.Array_Clear;
250 | KismetArrayLibrary.Clear = KismetArrayLibrary.Array_Clear;
251 | KismetArrayLibrary.prototype.AppendArray = KismetArrayLibrary.prototype.Array_Append;
252 | KismetArrayLibrary.AppendArray = KismetArrayLibrary.Array_Append;
253 | KismetArrayLibrary.prototype.AddUnique = KismetArrayLibrary.prototype.Array_AddUnique;
254 | KismetArrayLibrary.AddUnique = KismetArrayLibrary.Array_AddUnique;
255 | KismetArrayLibrary.prototype.Add = KismetArrayLibrary.prototype.Array_Add;
256 | KismetArrayLibrary.Add = KismetArrayLibrary.Array_Add;
257 | KismetGuidLibrary.prototype.ParseStringtoGuid = KismetGuidLibrary.prototype.Parse_StringToGuid;
258 | KismetGuidLibrary.ParseStringtoGuid = KismetGuidLibrary.Parse_StringToGuid;
259 | KismetGuidLibrary.prototype.NotEqual = KismetGuidLibrary.prototype.NotEqual_GuidGuid;
260 | KismetGuidLibrary.NotEqual = KismetGuidLibrary.NotEqual_GuidGuid;
261 | KismetGuidLibrary.prototype.IsValid = KismetGuidLibrary.prototype.IsValid_Guid;
262 | KismetGuidLibrary.IsValid = KismetGuidLibrary.IsValid_Guid;
263 | KismetGuidLibrary.prototype.Equal = KismetGuidLibrary.prototype.EqualEqual_GuidGuid;
264 | KismetGuidLibrary.Equal = KismetGuidLibrary.EqualEqual_GuidGuid;
265 | KismetGuidLibrary.prototype.ToString = KismetGuidLibrary.prototype.Conv_GuidToString;
266 | KismetGuidLibrary.ToString = KismetGuidLibrary.Conv_GuidToString;
267 | KismetInputLibrary.prototype.IsTouchEvent = KismetInputLibrary.prototype.PointerEvent_IsTouchEvent;
268 | KismetInputLibrary.IsTouchEvent = KismetInputLibrary.PointerEvent_IsTouchEvent;
269 | KismetInputLibrary.prototype.IsMouseButtonDown = KismetInputLibrary.prototype.PointerEvent_IsMouseButtonDown;
270 | KismetInputLibrary.IsMouseButtonDown = KismetInputLibrary.PointerEvent_IsMouseButtonDown;
271 | KismetInputLibrary.prototype.GetWheelDelta = KismetInputLibrary.prototype.PointerEvent_GetWheelDelta;
272 | KismetInputLibrary.GetWheelDelta = KismetInputLibrary.PointerEvent_GetWheelDelta;
273 | KismetInputLibrary.prototype.GetUserIndex = KismetInputLibrary.prototype.PointerEvent_GetUserIndex;
274 | KismetInputLibrary.GetUserIndex = KismetInputLibrary.PointerEvent_GetUserIndex;
275 | KismetInputLibrary.prototype.GetTouchpadIndex = KismetInputLibrary.prototype.PointerEvent_GetTouchpadIndex;
276 | KismetInputLibrary.GetTouchpadIndex = KismetInputLibrary.PointerEvent_GetTouchpadIndex;
277 | KismetInputLibrary.prototype.GetScreenSpacePosition = KismetInputLibrary.prototype.PointerEvent_GetScreenSpacePosition;
278 | KismetInputLibrary.GetScreenSpacePosition = KismetInputLibrary.PointerEvent_GetScreenSpacePosition;
279 | KismetInputLibrary.prototype.GetPointerIndex = KismetInputLibrary.prototype.PointerEvent_GetPointerIndex;
280 | KismetInputLibrary.GetPointerIndex = KismetInputLibrary.PointerEvent_GetPointerIndex;
281 | KismetInputLibrary.prototype.GetLastScreenSpacePosition = KismetInputLibrary.prototype.PointerEvent_GetLastScreenSpacePosition;
282 | KismetInputLibrary.GetLastScreenSpacePosition = KismetInputLibrary.PointerEvent_GetLastScreenSpacePosition;
283 | KismetInputLibrary.prototype.GetGestureDelta = KismetInputLibrary.prototype.PointerEvent_GetGestureDelta;
284 | KismetInputLibrary.GetGestureDelta = KismetInputLibrary.PointerEvent_GetGestureDelta;
285 | KismetInputLibrary.prototype.GetEffectingButton = KismetInputLibrary.prototype.PointerEvent_GetEffectingButton;
286 | KismetInputLibrary.GetEffectingButton = KismetInputLibrary.PointerEvent_GetEffectingButton;
287 | KismetInputLibrary.prototype.GetCursorDelta = KismetInputLibrary.prototype.PointerEvent_GetCursorDelta;
288 | KismetInputLibrary.GetCursorDelta = KismetInputLibrary.PointerEvent_GetCursorDelta;
289 | KismetInputLibrary.prototype.IsShiftDown = KismetInputLibrary.prototype.InputEvent_IsShiftDown;
290 | KismetInputLibrary.IsShiftDown = KismetInputLibrary.InputEvent_IsShiftDown;
291 | KismetInputLibrary.prototype.IsRightShiftDown = KismetInputLibrary.prototype.InputEvent_IsRightShiftDown;
292 | KismetInputLibrary.IsRightShiftDown = KismetInputLibrary.InputEvent_IsRightShiftDown;
293 | KismetInputLibrary.prototype.IsRightControlDown = KismetInputLibrary.prototype.InputEvent_IsRightControlDown;
294 | KismetInputLibrary.IsRightControlDown = KismetInputLibrary.InputEvent_IsRightControlDown;
295 | KismetInputLibrary.prototype.IsRightCommandDown = KismetInputLibrary.prototype.InputEvent_IsRightCommandDown;
296 | KismetInputLibrary.IsRightCommandDown = KismetInputLibrary.InputEvent_IsRightCommandDown;
297 | KismetInputLibrary.prototype.IsRightAltDown = KismetInputLibrary.prototype.InputEvent_IsRightAltDown;
298 | KismetInputLibrary.IsRightAltDown = KismetInputLibrary.InputEvent_IsRightAltDown;
299 | KismetInputLibrary.prototype.IsRepeat = KismetInputLibrary.prototype.InputEvent_IsRepeat;
300 | KismetInputLibrary.IsRepeat = KismetInputLibrary.InputEvent_IsRepeat;
301 | KismetInputLibrary.prototype.IsLeftShiftDown = KismetInputLibrary.prototype.InputEvent_IsLeftShiftDown;
302 | KismetInputLibrary.IsLeftShiftDown = KismetInputLibrary.InputEvent_IsLeftShiftDown;
303 | KismetInputLibrary.prototype.IsLeftControlDown = KismetInputLibrary.prototype.InputEvent_IsLeftControlDown;
304 | KismetInputLibrary.IsLeftControlDown = KismetInputLibrary.InputEvent_IsLeftControlDown;
305 | KismetInputLibrary.prototype.IsLeftCommandDown = KismetInputLibrary.prototype.InputEvent_IsLeftCommandDown;
306 | KismetInputLibrary.IsLeftCommandDown = KismetInputLibrary.InputEvent_IsLeftCommandDown;
307 | KismetInputLibrary.prototype.IsLeftAltDown = KismetInputLibrary.prototype.InputEvent_IsLeftAltDown;
308 | KismetInputLibrary.IsLeftAltDown = KismetInputLibrary.InputEvent_IsLeftAltDown;
309 | KismetInputLibrary.prototype.IsControlDown = KismetInputLibrary.prototype.InputEvent_IsControlDown;
310 | KismetInputLibrary.IsControlDown = KismetInputLibrary.InputEvent_IsControlDown;
311 | KismetInputLibrary.prototype.IsCommandDown = KismetInputLibrary.prototype.InputEvent_IsCommandDown;
312 | KismetInputLibrary.IsCommandDown = KismetInputLibrary.InputEvent_IsCommandDown;
313 | KismetInputLibrary.prototype.IsAltDown = KismetInputLibrary.prototype.InputEvent_IsAltDown;
314 | KismetInputLibrary.IsAltDown = KismetInputLibrary.InputEvent_IsAltDown;
315 | KismetInputLibrary.prototype.Equal = KismetInputLibrary.prototype.EqualEqual_KeyKey;
316 | KismetInputLibrary.Equal = KismetInputLibrary.EqualEqual_KeyKey;
317 | KismetInputLibrary.prototype.Equal = KismetInputLibrary.prototype.EqualEqual_InputChordInputChord;
318 | KismetInputLibrary.Equal = KismetInputLibrary.EqualEqual_InputChordInputChord;
319 | KismetInputLibrary.prototype.GetEffectingButton = KismetInputLibrary.prototype.ControllerEvent_GetEffectingButton;
320 | KismetInputLibrary.GetEffectingButton = KismetInputLibrary.ControllerEvent_GetEffectingButton;
321 | KismetMathLibrary.prototype.BitwiseXOR = KismetMathLibrary.prototype.Xor_IntInt;
322 | KismetMathLibrary.BitwiseXOR = KismetMathLibrary.Xor_IntInt;
323 | KismetMathLibrary.prototype.VectorLengthSquared = KismetMathLibrary.prototype.VSizeSquared;
324 | KismetMathLibrary.VectorLengthSquared = KismetMathLibrary.VSizeSquared;
325 | KismetMathLibrary.prototype.Vector2dLengthSquared = KismetMathLibrary.prototype.VSize2DSquared;
326 | KismetMathLibrary.Vector2dLengthSquared = KismetMathLibrary.VSize2DSquared;
327 | KismetMathLibrary.prototype.Vector2dLength = KismetMathLibrary.prototype.VSize2D;
328 | KismetMathLibrary.Vector2dLength = KismetMathLibrary.VSize2D;
329 | KismetMathLibrary.prototype.VectorLength = KismetMathLibrary.prototype.VSize;
330 | KismetMathLibrary.VectorLength = KismetMathLibrary.VSize;
331 | KismetMathLibrary.prototype.Lerp = KismetMathLibrary.prototype.VLerp;
332 | KismetMathLibrary.Lerp = KismetMathLibrary.VLerp;
333 | KismetMathLibrary.prototype.Ease = KismetMathLibrary.prototype.VEase;
334 | KismetMathLibrary.Ease = KismetMathLibrary.VEase;
335 | KismetMathLibrary.prototype.Lerp = KismetMathLibrary.prototype.TLerp;
336 | KismetMathLibrary.Lerp = KismetMathLibrary.TLerp;
337 | KismetMathLibrary.prototype.ZeroValue = KismetMathLibrary.prototype.TimespanZeroValue;
338 | KismetMathLibrary.ZeroValue = KismetMathLibrary.TimespanZeroValue;
339 | KismetMathLibrary.prototype.MinValue = KismetMathLibrary.prototype.TimespanMinValue;
340 | KismetMathLibrary.MinValue = KismetMathLibrary.TimespanMinValue;
341 | KismetMathLibrary.prototype.MaxValue = KismetMathLibrary.prototype.TimespanMaxValue;
342 | KismetMathLibrary.MaxValue = KismetMathLibrary.TimespanMaxValue;
343 | KismetMathLibrary.prototype.Ease = KismetMathLibrary.prototype.TEase;
344 | KismetMathLibrary.Ease = KismetMathLibrary.TEase;
345 | KismetMathLibrary.prototype.Sign = KismetMathLibrary.prototype.SignOfInteger;
346 | KismetMathLibrary.Sign = KismetMathLibrary.SignOfInteger;
347 | KismetMathLibrary.prototype.Sign = KismetMathLibrary.prototype.SignOfFloat;
348 | KismetMathLibrary.Sign = KismetMathLibrary.SignOfFloat;
349 | KismetMathLibrary.prototype.RotateVectorAroundAxis = KismetMathLibrary.prototype.RotateAngleAxis;
350 | KismetMathLibrary.RotateVectorAroundAxis = KismetMathLibrary.RotateAngleAxis;
351 | KismetMathLibrary.prototype.Lerp = KismetMathLibrary.prototype.RLerp;
352 | KismetMathLibrary.Lerp = KismetMathLibrary.RLerp;
353 | KismetMathLibrary.prototype.RGBtoHSV = KismetMathLibrary.prototype.RGBToHSV_Vector;
354 | KismetMathLibrary.RGBtoHSV = KismetMathLibrary.RGBToHSV_Vector;
355 | KismetMathLibrary.prototype.Ease = KismetMathLibrary.prototype.REase;
356 | KismetMathLibrary.Ease = KismetMathLibrary.REase;
357 | KismetMathLibrary.prototype.BitwiseOR = KismetMathLibrary.prototype.Or_IntInt;
358 | KismetMathLibrary.BitwiseOR = KismetMathLibrary.Or_IntInt;
359 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_VectorVector;
360 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_VectorVector;
361 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_Vector2DVector2D;
362 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_Vector2DVector2D;
363 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_TimespanTimespan;
364 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_TimespanTimespan;
365 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_RotatorRotator;
366 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_RotatorRotator;
367 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_ObjectObject;
368 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_ObjectObject;
369 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_NameName;
370 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_NameName;
371 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_IntInt;
372 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_IntInt;
373 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_FloatFloat;
374 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_FloatFloat;
375 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_DateTimeDateTime;
376 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_DateTimeDateTime;
377 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_ClassClass;
378 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_ClassClass;
379 | KismetMathLibrary.prototype.NotEqual = KismetMathLibrary.prototype.NotEqual_ByteByte;
380 | KismetMathLibrary.NotEqual = KismetMathLibrary.NotEqual_ByteByte;
381 | KismetMathLibrary.prototype.NotEqualBoolean = KismetMathLibrary.prototype.NotEqual_BoolBool;
382 | KismetMathLibrary.NotEqualBoolean = KismetMathLibrary.NotEqual_BoolBool;
383 | KismetMathLibrary.prototype.NOTBoolean = KismetMathLibrary.prototype.Not_PreBool;
384 | KismetMathLibrary.NOTBoolean = KismetMathLibrary.Not_PreBool;
385 | KismetMathLibrary.prototype.BitwiseNOT = KismetMathLibrary.prototype.Not_Int;
386 | KismetMathLibrary.BitwiseNOT = KismetMathLibrary.Not_Int;
387 | KismetMathLibrary.prototype.Delta = KismetMathLibrary.prototype.NormalizedDeltaRotator;
388 | KismetMathLibrary.Delta = KismetMathLibrary.NormalizedDeltaRotator;
389 | KismetMathLibrary.prototype.Normalize2D = KismetMathLibrary.prototype.Normal2D;
390 | KismetMathLibrary.Normalize2D = KismetMathLibrary.Normal2D;
391 | KismetMathLibrary.prototype.Normalize = KismetMathLibrary.prototype.Normal;
392 | KismetMathLibrary.Normalize = KismetMathLibrary.Normal;
393 | KismetMathLibrary.prototype.InvertRotator = KismetMathLibrary.prototype.NegateRotator;
394 | KismetMathLibrary.InvertRotator = KismetMathLibrary.NegateRotator;
395 | KismetMathLibrary.prototype.NearlyEqual = KismetMathLibrary.prototype.NearlyEqual_TransformTransform;
396 | KismetMathLibrary.NearlyEqual = KismetMathLibrary.NearlyEqual_TransformTransform;
397 | KismetMathLibrary.prototype.NearlyEqual = KismetMathLibrary.prototype.NearlyEqual_FloatFloat;
398 | KismetMathLibrary.NearlyEqual = KismetMathLibrary.NearlyEqual_FloatFloat;
399 | KismetMathLibrary.prototype.Power = KismetMathLibrary.prototype.MultiplyMultiply_FloatFloat;
400 | KismetMathLibrary.Power = KismetMathLibrary.MultiplyMultiply_FloatFloat;
401 | KismetMathLibrary.prototype.ScaleRotator = KismetMathLibrary.prototype.Multiply_RotatorInt;
402 | KismetMathLibrary.ScaleRotator = KismetMathLibrary.Multiply_RotatorInt;
403 | KismetMathLibrary.prototype.ScaleRotator = KismetMathLibrary.prototype.Multiply_RotatorFloat;
404 | KismetMathLibrary.ScaleRotator = KismetMathLibrary.Multiply_RotatorFloat;
405 | KismetMathLibrary.prototype.LinePlaneIntersection = KismetMathLibrary.prototype.LinePlaneIntersection_OriginNormal;
406 | KismetMathLibrary.LinePlaneIntersection = KismetMathLibrary.LinePlaneIntersection_OriginNormal;
407 | KismetMathLibrary.prototype.LerpUsingHSV = KismetMathLibrary.prototype.LinearColorLerpUsingHSV;
408 | KismetMathLibrary.LerpUsingHSV = KismetMathLibrary.LinearColorLerpUsingHSV;
409 | KismetMathLibrary.prototype.Lerp = KismetMathLibrary.prototype.LinearColorLerp;
410 | KismetMathLibrary.Lerp = KismetMathLibrary.LinearColorLerp;
411 | KismetMathLibrary.prototype.UnrotateVector = KismetMathLibrary.prototype.LessLess_VectorRotator;
412 | KismetMathLibrary.UnrotateVector = KismetMathLibrary.LessLess_VectorRotator;
413 | KismetMathLibrary.prototype.InRange = KismetMathLibrary.prototype.InRange_FloatFloat;
414 | KismetMathLibrary.InRange = KismetMathLibrary.InRange_FloatFloat;
415 | KismetMathLibrary.prototype.HSVtoRGB = KismetMathLibrary.prototype.HSVToRGB_Vector;
416 | KismetMathLibrary.HSVtoRGB = KismetMathLibrary.HSVToRGB_Vector;
417 | KismetMathLibrary.prototype.Snaptogrid = KismetMathLibrary.prototype.GridSnap_Float;
418 | KismetMathLibrary.Snaptogrid = KismetMathLibrary.GridSnap_Float;
419 | KismetMathLibrary.prototype.RotateVector = KismetMathLibrary.prototype.GreaterGreater_VectorRotator;
420 | KismetMathLibrary.RotateVector = KismetMathLibrary.GreaterGreater_VectorRotator;
421 | KismetMathLibrary.prototype.Truncate = KismetMathLibrary.prototype.FTrunc;
422 | KismetMathLibrary.Truncate = KismetMathLibrary.FTrunc;
423 | KismetMathLibrary.prototype.Division = KismetMathLibrary.prototype.FMod;
424 | KismetMathLibrary.Division = KismetMathLibrary.FMod;
425 | KismetMathLibrary.prototype.Min = KismetMathLibrary.prototype.FMin;
426 | KismetMathLibrary.Min = KismetMathLibrary.FMin;
427 | KismetMathLibrary.prototype.Max = KismetMathLibrary.prototype.FMax;
428 | KismetMathLibrary.Max = KismetMathLibrary.FMax;
429 | KismetMathLibrary.prototype.Floor = KismetMathLibrary.prototype.FFloor;
430 | KismetMathLibrary.Floor = KismetMathLibrary.FFloor;
431 | KismetMathLibrary.prototype.Clamp = KismetMathLibrary.prototype.FClamp;
432 | KismetMathLibrary.Clamp = KismetMathLibrary.FClamp;
433 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_VectorVector;
434 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_VectorVector;
435 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_Vector2DVector2D;
436 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_Vector2DVector2D;
437 | KismetMathLibrary.prototype.EqualTransform = KismetMathLibrary.prototype.EqualEqual_TransformTransform;
438 | KismetMathLibrary.EqualTransform = KismetMathLibrary.EqualEqual_TransformTransform;
439 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_TimespanTimespan;
440 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_TimespanTimespan;
441 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_RotatorRotator;
442 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_RotatorRotator;
443 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_ObjectObject;
444 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_ObjectObject;
445 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_NameName;
446 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_NameName;
447 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_IntInt;
448 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_IntInt;
449 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_FloatFloat;
450 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_FloatFloat;
451 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_DateTimeDateTime;
452 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_DateTimeDateTime;
453 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_ClassClass;
454 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_ClassClass;
455 | KismetMathLibrary.prototype.Equal = KismetMathLibrary.prototype.EqualEqual_ByteByte;
456 | KismetMathLibrary.Equal = KismetMathLibrary.EqualEqual_ByteByte;
457 | KismetMathLibrary.prototype.EqualBoolean = KismetMathLibrary.prototype.EqualEqual_BoolBool;
458 | KismetMathLibrary.EqualBoolean = KismetMathLibrary.EqualEqual_BoolBool;
459 | KismetMathLibrary.prototype.DotProduct = KismetMathLibrary.prototype.DotProduct2D;
460 | KismetMathLibrary.DotProduct = KismetMathLibrary.DotProduct2D;
461 | KismetMathLibrary.prototype.DotProduct = KismetMathLibrary.prototype.Dot_VectorVector;
462 | KismetMathLibrary.DotProduct = KismetMathLibrary.Dot_VectorVector;
463 | KismetMathLibrary.prototype.Tan = KismetMathLibrary.prototype.DegTan;
464 | KismetMathLibrary.Tan = KismetMathLibrary.DegTan;
465 | KismetMathLibrary.prototype.Sin = KismetMathLibrary.prototype.DegSin;
466 | KismetMathLibrary.Sin = KismetMathLibrary.DegSin;
467 | KismetMathLibrary.prototype.Cos = KismetMathLibrary.prototype.DegCos;
468 | KismetMathLibrary.Cos = KismetMathLibrary.DegCos;
469 | KismetMathLibrary.prototype.Atan2 = KismetMathLibrary.prototype.DegAtan2;
470 | KismetMathLibrary.Atan2 = KismetMathLibrary.DegAtan2;
471 | KismetMathLibrary.prototype.Atan = KismetMathLibrary.prototype.DegAtan;
472 | KismetMathLibrary.Atan = KismetMathLibrary.DegAtan;
473 | KismetMathLibrary.prototype.Asin = KismetMathLibrary.prototype.DegAsin;
474 | KismetMathLibrary.Asin = KismetMathLibrary.DegAsin;
475 | KismetMathLibrary.prototype.Acos = KismetMathLibrary.prototype.DegAcos;
476 | KismetMathLibrary.Acos = KismetMathLibrary.DegAcos;
477 | KismetMathLibrary.prototype.MinValue = KismetMathLibrary.prototype.DateTimeMinValue;
478 | KismetMathLibrary.MinValue = KismetMathLibrary.DateTimeMinValue;
479 | KismetMathLibrary.prototype.MaxValue = KismetMathLibrary.prototype.DateTimeMaxValue;
480 | KismetMathLibrary.MaxValue = KismetMathLibrary.DateTimeMaxValue;
481 | KismetMathLibrary.prototype.CrossProduct = KismetMathLibrary.prototype.CrossProduct2D;
482 | KismetMathLibrary.CrossProduct = KismetMathLibrary.CrossProduct2D;
483 | KismetMathLibrary.prototype.CrossProduct = KismetMathLibrary.prototype.Cross_VectorVector;
484 | KismetMathLibrary.CrossProduct = KismetMathLibrary.Cross_VectorVector;
485 | KismetMathLibrary.prototype.ToVector2D = KismetMathLibrary.prototype.Conv_VectorToVector2D;
486 | KismetMathLibrary.ToVector2D = KismetMathLibrary.Conv_VectorToVector2D;
487 | KismetMathLibrary.prototype.ToTransform = KismetMathLibrary.prototype.Conv_VectorToTransform;
488 | KismetMathLibrary.ToTransform = KismetMathLibrary.Conv_VectorToTransform;
489 | KismetMathLibrary.prototype.RotationFromXVector = KismetMathLibrary.prototype.Conv_VectorToRotator;
490 | KismetMathLibrary.RotationFromXVector = KismetMathLibrary.Conv_VectorToRotator;
491 | KismetMathLibrary.prototype.ToLinearColor = KismetMathLibrary.prototype.Conv_VectorToLinearColor;
492 | KismetMathLibrary.ToLinearColor = KismetMathLibrary.Conv_VectorToLinearColor;
493 | KismetMathLibrary.prototype.ToVector = KismetMathLibrary.prototype.Conv_Vector2DToVector;
494 | KismetMathLibrary.ToVector = KismetMathLibrary.Conv_Vector2DToVector;
495 | KismetMathLibrary.prototype.GetRotationXVector = KismetMathLibrary.prototype.Conv_RotatorToVector;
496 | KismetMathLibrary.GetRotationXVector = KismetMathLibrary.Conv_RotatorToVector;
497 | KismetMathLibrary.prototype.ToVector = KismetMathLibrary.prototype.Conv_LinearColorToVector;
498 | KismetMathLibrary.ToVector = KismetMathLibrary.Conv_LinearColorToVector;
499 | KismetMathLibrary.prototype.ToColor = KismetMathLibrary.prototype.Conv_LinearColorToColor;
500 | KismetMathLibrary.ToColor = KismetMathLibrary.Conv_LinearColorToColor;
501 | KismetMathLibrary.prototype.ToFloat = KismetMathLibrary.prototype.Conv_IntToFloat;
502 | KismetMathLibrary.ToFloat = KismetMathLibrary.Conv_IntToFloat;
503 | KismetMathLibrary.prototype.ToByte = KismetMathLibrary.prototype.Conv_IntToByte;
504 | KismetMathLibrary.ToByte = KismetMathLibrary.Conv_IntToByte;
505 | KismetMathLibrary.prototype.ToBool = KismetMathLibrary.prototype.Conv_IntToBool;
506 | KismetMathLibrary.ToBool = KismetMathLibrary.Conv_IntToBool;
507 | KismetMathLibrary.prototype.ToVector = KismetMathLibrary.prototype.Conv_FloatToVector;
508 | KismetMathLibrary.ToVector = KismetMathLibrary.Conv_FloatToVector;
509 | KismetMathLibrary.prototype.ToLinearColor = KismetMathLibrary.prototype.Conv_FloatToLinearColor;
510 | KismetMathLibrary.ToLinearColor = KismetMathLibrary.Conv_FloatToLinearColor;
511 | KismetMathLibrary.prototype.ToLinearColor = KismetMathLibrary.prototype.Conv_ColorToLinearColor;
512 | KismetMathLibrary.ToLinearColor = KismetMathLibrary.Conv_ColorToLinearColor;
513 | KismetMathLibrary.prototype.ToInt = KismetMathLibrary.prototype.Conv_ByteToInt;
514 | KismetMathLibrary.ToInt = KismetMathLibrary.Conv_ByteToInt;
515 | KismetMathLibrary.prototype.ToFloat = KismetMathLibrary.prototype.Conv_ByteToFloat;
516 | KismetMathLibrary.ToFloat = KismetMathLibrary.Conv_ByteToFloat;
517 | KismetMathLibrary.prototype.ToInt = KismetMathLibrary.prototype.Conv_BoolToInt;
518 | KismetMathLibrary.ToInt = KismetMathLibrary.Conv_BoolToInt;
519 | KismetMathLibrary.prototype.ToFloat = KismetMathLibrary.prototype.Conv_BoolToFloat;
520 | KismetMathLibrary.ToFloat = KismetMathLibrary.Conv_BoolToFloat;
521 | KismetMathLibrary.prototype.ToByte = KismetMathLibrary.prototype.Conv_BoolToByte;
522 | KismetMathLibrary.ToByte = KismetMathLibrary.Conv_BoolToByte;
523 | KismetMathLibrary.prototype.CombineRotators = KismetMathLibrary.prototype.ComposeRotators;
524 | KismetMathLibrary.CombineRotators = KismetMathLibrary.ComposeRotators;
525 | KismetMathLibrary.prototype.XORBoolean = KismetMathLibrary.prototype.BooleanXOR;
526 | KismetMathLibrary.XORBoolean = KismetMathLibrary.BooleanXOR;
527 | KismetMathLibrary.prototype.ORBoolean = KismetMathLibrary.prototype.BooleanOR;
528 | KismetMathLibrary.ORBoolean = KismetMathLibrary.BooleanOR;
529 | KismetMathLibrary.prototype.NORBoolean = KismetMathLibrary.prototype.BooleanNOR;
530 | KismetMathLibrary.NORBoolean = KismetMathLibrary.BooleanNOR;
531 | KismetMathLibrary.prototype.NANDBoolean = KismetMathLibrary.prototype.BooleanNAND;
532 | KismetMathLibrary.NANDBoolean = KismetMathLibrary.BooleanNAND;
533 | KismetMathLibrary.prototype.ANDBoolean = KismetMathLibrary.prototype.BooleanAND;
534 | KismetMathLibrary.ANDBoolean = KismetMathLibrary.BooleanAND;
535 | KismetMathLibrary.prototype.Min = KismetMathLibrary.prototype.BMin;
536 | KismetMathLibrary.Min = KismetMathLibrary.BMin;
537 | KismetMathLibrary.prototype.Max = KismetMathLibrary.prototype.BMax;
538 | KismetMathLibrary.Max = KismetMathLibrary.BMax;
539 | KismetMathLibrary.prototype.BitwiseAND = KismetMathLibrary.prototype.And_IntInt;
540 | KismetMathLibrary.BitwiseAND = KismetMathLibrary.And_IntInt;
541 | KismetMathLibrary.prototype.Absolute = KismetMathLibrary.prototype.Abs_Int;
542 | KismetMathLibrary.Absolute = KismetMathLibrary.Abs_Int;
543 | KismetMathLibrary.prototype.Absolute = KismetMathLibrary.prototype.Abs;
544 | KismetMathLibrary.Absolute = KismetMathLibrary.Abs;
545 | KismetStringLibrary.prototype.NotEqual = KismetStringLibrary.prototype.NotEqual_StrStr;
546 | KismetStringLibrary.NotEqual = KismetStringLibrary.NotEqual_StrStr;
547 | KismetStringLibrary.prototype.Equal = KismetStringLibrary.prototype.EqualEqual_StrStr;
548 | KismetStringLibrary.Equal = KismetStringLibrary.EqualEqual_StrStr;
549 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_VectorToString;
550 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_VectorToString;
551 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_Vector2dToString;
552 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_Vector2dToString;
553 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_TransformToString;
554 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_TransformToString;
555 | KismetStringLibrary.prototype.StringtoVector2D = KismetStringLibrary.prototype.Conv_StringToVector2D;
556 | KismetStringLibrary.StringtoVector2D = KismetStringLibrary.Conv_StringToVector2D;
557 | KismetStringLibrary.prototype.StringtoVector = KismetStringLibrary.prototype.Conv_StringToVector;
558 | KismetStringLibrary.StringtoVector = KismetStringLibrary.Conv_StringToVector;
559 | KismetStringLibrary.prototype.StringtoRotator = KismetStringLibrary.prototype.Conv_StringToRotator;
560 | KismetStringLibrary.StringtoRotator = KismetStringLibrary.Conv_StringToRotator;
561 | KismetStringLibrary.prototype.StringToName = KismetStringLibrary.prototype.Conv_StringToName;
562 | KismetStringLibrary.StringToName = KismetStringLibrary.Conv_StringToName;
563 | KismetStringLibrary.prototype.StringToInt = KismetStringLibrary.prototype.Conv_StringToInt;
564 | KismetStringLibrary.StringToInt = KismetStringLibrary.Conv_StringToInt;
565 | KismetStringLibrary.prototype.StringToFloat = KismetStringLibrary.prototype.Conv_StringToFloat;
566 | KismetStringLibrary.StringToFloat = KismetStringLibrary.Conv_StringToFloat;
567 | KismetStringLibrary.prototype.StringtoColor = KismetStringLibrary.prototype.Conv_StringToColor;
568 | KismetStringLibrary.StringtoColor = KismetStringLibrary.Conv_StringToColor;
569 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_RotatorToString;
570 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_RotatorToString;
571 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_ObjectToString;
572 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_ObjectToString;
573 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_NameToString;
574 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_NameToString;
575 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_IntToString;
576 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_IntToString;
577 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_FloatToString;
578 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_FloatToString;
579 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_ColorToString;
580 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_ColorToString;
581 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_ByteToString;
582 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_ByteToString;
583 | KismetStringLibrary.prototype.ToString = KismetStringLibrary.prototype.Conv_BoolToString;
584 | KismetStringLibrary.ToString = KismetStringLibrary.Conv_BoolToString;
585 | KismetStringLibrary.prototype.Append = KismetStringLibrary.prototype.Concat_StrStr;
586 | KismetStringLibrary.Append = KismetStringLibrary.Concat_StrStr;
587 | KismetStringLibrary.prototype.BuildString = KismetStringLibrary.prototype.BuildString_Vector2d;
588 | KismetStringLibrary.BuildString = KismetStringLibrary.BuildString_Vector2d;
589 | KismetStringLibrary.prototype.BuildString = KismetStringLibrary.prototype.BuildString_Vector;
590 | KismetStringLibrary.BuildString = KismetStringLibrary.BuildString_Vector;
591 | KismetStringLibrary.prototype.BuildString = KismetStringLibrary.prototype.BuildString_Rotator;
592 | KismetStringLibrary.BuildString = KismetStringLibrary.BuildString_Rotator;
593 | KismetStringLibrary.prototype.BuildString = KismetStringLibrary.prototype.BuildString_Object;
594 | KismetStringLibrary.BuildString = KismetStringLibrary.BuildString_Object;
595 | KismetStringLibrary.prototype.BuildString = KismetStringLibrary.prototype.BuildString_Name;
596 | KismetStringLibrary.BuildString = KismetStringLibrary.BuildString_Name;
597 | KismetStringLibrary.prototype.BuildString = KismetStringLibrary.prototype.BuildString_Int;
598 | KismetStringLibrary.BuildString = KismetStringLibrary.BuildString_Int;
599 | KismetStringLibrary.prototype.BuildString = KismetStringLibrary.prototype.BuildString_Float;
600 | KismetStringLibrary.BuildString = KismetStringLibrary.BuildString_Float;
601 | KismetStringLibrary.prototype.BuildString = KismetStringLibrary.prototype.BuildString_Color;
602 | KismetStringLibrary.BuildString = KismetStringLibrary.BuildString_Color;
603 | KismetStringLibrary.prototype.BuildString = KismetStringLibrary.prototype.BuildString_Bool;
604 | KismetStringLibrary.BuildString = KismetStringLibrary.BuildString_Bool;
605 | KismetSystemLibrary.prototype.SphereTraceForObjects = KismetSystemLibrary.prototype.SphereTraceSingleForObjects;
606 | KismetSystemLibrary.SphereTraceForObjects = KismetSystemLibrary.SphereTraceSingleForObjects;
607 | KismetSystemLibrary.prototype.SingleSphereTraceByObjectDeprecated = KismetSystemLibrary.prototype.SphereTraceSingleByObject_DEPRECATED;
608 | KismetSystemLibrary.SingleSphereTraceByObjectDeprecated = KismetSystemLibrary.SphereTraceSingleByObject_DEPRECATED;
609 | KismetSystemLibrary.prototype.SphereTraceByChannel = KismetSystemLibrary.prototype.SphereTraceSingle_NEW;
610 | KismetSystemLibrary.SphereTraceByChannel = KismetSystemLibrary.SphereTraceSingle_NEW;
611 | KismetSystemLibrary.prototype.SingleSphereTraceByChannelDeprecated = KismetSystemLibrary.prototype.SphereTraceSingle_DEPRECATED;
612 | KismetSystemLibrary.SingleSphereTraceByChannelDeprecated = KismetSystemLibrary.SphereTraceSingle_DEPRECATED;
613 | KismetSystemLibrary.prototype.MultiSphereTraceForObjects = KismetSystemLibrary.prototype.SphereTraceMultiForObjects;
614 | KismetSystemLibrary.MultiSphereTraceForObjects = KismetSystemLibrary.SphereTraceMultiForObjects;
615 | KismetSystemLibrary.prototype.MultiSphereTraceByObjectDeprecated = KismetSystemLibrary.prototype.SphereTraceMultiByObject_DEPRECATED;
616 | KismetSystemLibrary.MultiSphereTraceByObjectDeprecated = KismetSystemLibrary.SphereTraceMultiByObject_DEPRECATED;
617 | KismetSystemLibrary.prototype.MultiSphereTraceByChannel = KismetSystemLibrary.prototype.SphereTraceMulti_NEW;
618 | KismetSystemLibrary.MultiSphereTraceByChannel = KismetSystemLibrary.SphereTraceMulti_NEW;
619 | KismetSystemLibrary.prototype.MultiSphereTraceByChannelDeprecated = KismetSystemLibrary.prototype.SphereTraceMulti_DEPRECATED;
620 | KismetSystemLibrary.MultiSphereTraceByChannelDeprecated = KismetSystemLibrary.SphereTraceMulti_DEPRECATED;
621 | KismetSystemLibrary.prototype.SphereOverlapComponents = KismetSystemLibrary.prototype.SphereOverlapComponents_NEW;
622 | KismetSystemLibrary.SphereOverlapComponents = KismetSystemLibrary.SphereOverlapComponents_NEW;
623 | KismetSystemLibrary.prototype.SphereOverlapActors = KismetSystemLibrary.prototype.SphereOverlapActors_NEW;
624 | KismetSystemLibrary.SphereOverlapActors = KismetSystemLibrary.SphereOverlapActors_NEW;
625 | KismetSystemLibrary.prototype.LineTraceForObjects = KismetSystemLibrary.prototype.LineTraceSingleForObjects;
626 | KismetSystemLibrary.LineTraceForObjects = KismetSystemLibrary.LineTraceSingleForObjects;
627 | KismetSystemLibrary.prototype.SingleLineTraceByObjectDeprecated = KismetSystemLibrary.prototype.LineTraceSingleByObject_DEPRECATED;
628 | KismetSystemLibrary.SingleLineTraceByObjectDeprecated = KismetSystemLibrary.LineTraceSingleByObject_DEPRECATED;
629 | KismetSystemLibrary.prototype.LineTraceByChannel = KismetSystemLibrary.prototype.LineTraceSingle_NEW;
630 | KismetSystemLibrary.LineTraceByChannel = KismetSystemLibrary.LineTraceSingle_NEW;
631 | KismetSystemLibrary.prototype.SingleLineTraceByChannelDeprecated = KismetSystemLibrary.prototype.LineTraceSingle_DEPRECATED;
632 | KismetSystemLibrary.SingleLineTraceByChannelDeprecated = KismetSystemLibrary.LineTraceSingle_DEPRECATED;
633 | KismetSystemLibrary.prototype.MultiLineTraceForObjects = KismetSystemLibrary.prototype.LineTraceMultiForObjects;
634 | KismetSystemLibrary.MultiLineTraceForObjects = KismetSystemLibrary.LineTraceMultiForObjects;
635 | KismetSystemLibrary.prototype.MultiLineTraceByObjectDeprecated = KismetSystemLibrary.prototype.LineTraceMultiByObject_DEPRECATED;
636 | KismetSystemLibrary.MultiLineTraceByObjectDeprecated = KismetSystemLibrary.LineTraceMultiByObject_DEPRECATED;
637 | KismetSystemLibrary.prototype.MultiLineTraceByChannel = KismetSystemLibrary.prototype.LineTraceMulti_NEW;
638 | KismetSystemLibrary.MultiLineTraceByChannel = KismetSystemLibrary.LineTraceMulti_NEW;
639 | KismetSystemLibrary.prototype.MultiLineTraceByChannelDeprecated = KismetSystemLibrary.prototype.LineTraceMulti_DEPRECATED;
640 | KismetSystemLibrary.MultiLineTraceByChannelDeprecated = KismetSystemLibrary.LineTraceMulti_DEPRECATED;
641 | KismetSystemLibrary.prototype.UnpauseTimerbyHandle = KismetSystemLibrary.prototype.K2_UnPauseTimerHandle;
642 | KismetSystemLibrary.UnpauseTimerbyHandle = KismetSystemLibrary.K2_UnPauseTimerHandle;
643 | KismetSystemLibrary.prototype.UnpauseTimerbyFunctionName = KismetSystemLibrary.prototype.K2_UnPauseTimer;
644 | KismetSystemLibrary.UnpauseTimerbyFunctionName = KismetSystemLibrary.K2_UnPauseTimer;
645 | KismetSystemLibrary.prototype.DoesTimerExistbyHandle = KismetSystemLibrary.prototype.K2_TimerExistsHandle;
646 | KismetSystemLibrary.DoesTimerExistbyHandle = KismetSystemLibrary.K2_TimerExistsHandle;
647 | KismetSystemLibrary.prototype.DoesTimerExistbyFunctionName = KismetSystemLibrary.prototype.K2_TimerExists;
648 | KismetSystemLibrary.DoesTimerExistbyFunctionName = KismetSystemLibrary.K2_TimerExists;
649 | KismetSystemLibrary.prototype.SetTimerbyFunctionName = KismetSystemLibrary.prototype.K2_SetTimer;
650 | KismetSystemLibrary.SetTimerbyFunctionName = KismetSystemLibrary.K2_SetTimer;
651 | KismetSystemLibrary.prototype.PauseTimerbyHandle = KismetSystemLibrary.prototype.K2_PauseTimerHandle;
652 | KismetSystemLibrary.PauseTimerbyHandle = KismetSystemLibrary.K2_PauseTimerHandle;
653 | KismetSystemLibrary.prototype.PauseTimerbyFunctionName = KismetSystemLibrary.prototype.K2_PauseTimer;
654 | KismetSystemLibrary.PauseTimerbyFunctionName = KismetSystemLibrary.K2_PauseTimer;
655 | KismetSystemLibrary.prototype.IsValid = KismetSystemLibrary.prototype.K2_IsValidTimerHandle;
656 | KismetSystemLibrary.IsValid = KismetSystemLibrary.K2_IsValidTimerHandle;
657 | KismetSystemLibrary.prototype.IsTimerPausedbyHandle = KismetSystemLibrary.prototype.K2_IsTimerPausedHandle;
658 | KismetSystemLibrary.IsTimerPausedbyHandle = KismetSystemLibrary.K2_IsTimerPausedHandle;
659 | KismetSystemLibrary.prototype.IsTimerPausedbyFunctionName = KismetSystemLibrary.prototype.K2_IsTimerPaused;
660 | KismetSystemLibrary.IsTimerPausedbyFunctionName = KismetSystemLibrary.K2_IsTimerPaused;
661 | KismetSystemLibrary.prototype.IsTimerActivebyHandle = KismetSystemLibrary.prototype.K2_IsTimerActiveHandle;
662 | KismetSystemLibrary.IsTimerActivebyHandle = KismetSystemLibrary.K2_IsTimerActiveHandle;
663 | KismetSystemLibrary.prototype.IsTimerActivebyFunctionName = KismetSystemLibrary.prototype.K2_IsTimerActive;
664 | KismetSystemLibrary.IsTimerActivebyFunctionName = KismetSystemLibrary.K2_IsTimerActive;
665 | KismetSystemLibrary.prototype.Invalidate = KismetSystemLibrary.prototype.K2_InvalidateTimerHandle;
666 | KismetSystemLibrary.Invalidate = KismetSystemLibrary.K2_InvalidateTimerHandle;
667 | KismetSystemLibrary.prototype.GetTimerRemainingTimebyHandle = KismetSystemLibrary.prototype.K2_GetTimerRemainingTimeHandle;
668 | KismetSystemLibrary.GetTimerRemainingTimebyHandle = KismetSystemLibrary.K2_GetTimerRemainingTimeHandle;
669 | KismetSystemLibrary.prototype.GetTimerRemainingTimebyFunctionName = KismetSystemLibrary.prototype.K2_GetTimerRemainingTime;
670 | KismetSystemLibrary.GetTimerRemainingTimebyFunctionName = KismetSystemLibrary.K2_GetTimerRemainingTime;
671 | KismetSystemLibrary.prototype.GetTimerElapsedTimebyHandle = KismetSystemLibrary.prototype.K2_GetTimerElapsedTimeHandle;
672 | KismetSystemLibrary.GetTimerElapsedTimebyHandle = KismetSystemLibrary.K2_GetTimerElapsedTimeHandle;
673 | KismetSystemLibrary.prototype.GetTimerElapsedTimebyFunctionName = KismetSystemLibrary.prototype.K2_GetTimerElapsedTime;
674 | KismetSystemLibrary.GetTimerElapsedTimebyFunctionName = KismetSystemLibrary.K2_GetTimerElapsedTime;
675 | KismetSystemLibrary.prototype.ClearTimerbyHandle = KismetSystemLibrary.prototype.K2_ClearTimerHandle;
676 | KismetSystemLibrary.ClearTimerbyHandle = KismetSystemLibrary.K2_ClearTimerHandle;
677 | KismetSystemLibrary.prototype.ClearTimerbyFunctionName = KismetSystemLibrary.prototype.K2_ClearTimer;
678 | KismetSystemLibrary.ClearTimerbyFunctionName = KismetSystemLibrary.K2_ClearTimer;
679 | KismetSystemLibrary.prototype.ClearandInvalidateTimerbyHandle = KismetSystemLibrary.prototype.K2_ClearAndInvalidateTimerHandle;
680 | KismetSystemLibrary.ClearandInvalidateTimerbyHandle = KismetSystemLibrary.K2_ClearAndInvalidateTimerHandle;
681 | KismetSystemLibrary.prototype.GetDisplayName = KismetSystemLibrary.prototype.GetClassDisplayName;
682 | KismetSystemLibrary.GetDisplayName = KismetSystemLibrary.GetClassDisplayName;
683 | KismetSystemLibrary.prototype.DrawDebugCone = KismetSystemLibrary.prototype.DrawDebugConeInDegrees;
684 | KismetSystemLibrary.DrawDebugCone = KismetSystemLibrary.DrawDebugConeInDegrees;
685 | KismetSystemLibrary.prototype.ComponentOverlapComponents = KismetSystemLibrary.prototype.ComponentOverlapComponents_NEW;
686 | KismetSystemLibrary.ComponentOverlapComponents = KismetSystemLibrary.ComponentOverlapComponents_NEW;
687 | KismetSystemLibrary.prototype.ComponentOverlapActors = KismetSystemLibrary.prototype.ComponentOverlapActors_NEW;
688 | KismetSystemLibrary.ComponentOverlapActors = KismetSystemLibrary.ComponentOverlapActors_NEW;
689 | KismetSystemLibrary.prototype.CapsuleTraceForObjects = KismetSystemLibrary.prototype.CapsuleTraceSingleForObjects;
690 | KismetSystemLibrary.CapsuleTraceForObjects = KismetSystemLibrary.CapsuleTraceSingleForObjects;
691 | KismetSystemLibrary.prototype.SingleCapsuleTraceByObjectDeprecated = KismetSystemLibrary.prototype.CapsuleTraceSingleByObject_DEPRECATED;
692 | KismetSystemLibrary.SingleCapsuleTraceByObjectDeprecated = KismetSystemLibrary.CapsuleTraceSingleByObject_DEPRECATED;
693 | KismetSystemLibrary.prototype.CapsuleTraceByChannel = KismetSystemLibrary.prototype.CapsuleTraceSingle_NEW;
694 | KismetSystemLibrary.CapsuleTraceByChannel = KismetSystemLibrary.CapsuleTraceSingle_NEW;
695 | KismetSystemLibrary.prototype.SingleCapsuleTraceByChannelDeprecated = KismetSystemLibrary.prototype.CapsuleTraceSingle_DEPRECATED;
696 | KismetSystemLibrary.SingleCapsuleTraceByChannelDeprecated = KismetSystemLibrary.CapsuleTraceSingle_DEPRECATED;
697 | KismetSystemLibrary.prototype.MultiCapsuleTraceForObjects = KismetSystemLibrary.prototype.CapsuleTraceMultiForObjects;
698 | KismetSystemLibrary.MultiCapsuleTraceForObjects = KismetSystemLibrary.CapsuleTraceMultiForObjects;
699 | KismetSystemLibrary.prototype.MultiCapsuleTraceByObjectDeprecated = KismetSystemLibrary.prototype.CapsuleTraceMultiByObject_DEPRECATED;
700 | KismetSystemLibrary.MultiCapsuleTraceByObjectDeprecated = KismetSystemLibrary.CapsuleTraceMultiByObject_DEPRECATED;
701 | KismetSystemLibrary.prototype.MultiCapsuleTraceByChannel = KismetSystemLibrary.prototype.CapsuleTraceMulti_NEW;
702 | KismetSystemLibrary.MultiCapsuleTraceByChannel = KismetSystemLibrary.CapsuleTraceMulti_NEW;
703 | KismetSystemLibrary.prototype.MultiCapsuleTraceByChannelDeprecated = KismetSystemLibrary.prototype.CapsuleTraceMulti_DEPRECATED;
704 | KismetSystemLibrary.MultiCapsuleTraceByChannelDeprecated = KismetSystemLibrary.CapsuleTraceMulti_DEPRECATED;
705 | KismetSystemLibrary.prototype.CapsuleOverlapComponents = KismetSystemLibrary.prototype.CapsuleOverlapComponents_NEW;
706 | KismetSystemLibrary.CapsuleOverlapComponents = KismetSystemLibrary.CapsuleOverlapComponents_NEW;
707 | KismetSystemLibrary.prototype.CapsuleOverlapActors = KismetSystemLibrary.prototype.CapsuleOverlapActors_NEW;
708 | KismetSystemLibrary.CapsuleOverlapActors = KismetSystemLibrary.CapsuleOverlapActors_NEW;
709 | KismetSystemLibrary.prototype.BoxTraceForObjects = KismetSystemLibrary.prototype.BoxTraceSingleForObjects;
710 | KismetSystemLibrary.BoxTraceForObjects = KismetSystemLibrary.BoxTraceSingleForObjects;
711 | KismetSystemLibrary.prototype.BoxTraceByChannel = KismetSystemLibrary.prototype.BoxTraceSingle;
712 | KismetSystemLibrary.BoxTraceByChannel = KismetSystemLibrary.BoxTraceSingle;
713 | KismetSystemLibrary.prototype.MultiBoxTraceForObjects = KismetSystemLibrary.prototype.BoxTraceMultiForObjects;
714 | KismetSystemLibrary.MultiBoxTraceForObjects = KismetSystemLibrary.BoxTraceMultiForObjects;
715 | KismetSystemLibrary.prototype.MultiBoxTraceByChannel = KismetSystemLibrary.prototype.BoxTraceMulti;
716 | KismetSystemLibrary.MultiBoxTraceByChannel = KismetSystemLibrary.BoxTraceMulti;
717 | KismetSystemLibrary.prototype.BoxOverlapComponents = KismetSystemLibrary.prototype.BoxOverlapComponents_NEW;
718 | KismetSystemLibrary.BoxOverlapComponents = KismetSystemLibrary.BoxOverlapComponents_NEW;
719 | KismetSystemLibrary.prototype.BoxOverlapActors = KismetSystemLibrary.prototype.BoxOverlapActors_NEW;
720 | KismetSystemLibrary.BoxOverlapActors = KismetSystemLibrary.BoxOverlapActors_NEW;
721 | KismetTextLibrary.prototype.NotEqual = KismetTextLibrary.prototype.NotEqual_TextText;
722 | KismetTextLibrary.NotEqual = KismetTextLibrary.NotEqual_TextText;
723 | KismetTextLibrary.prototype.Equal = KismetTextLibrary.prototype.EqualEqual_TextText;
724 | KismetTextLibrary.Equal = KismetTextLibrary.EqualEqual_TextText;
725 | KismetTextLibrary.prototype.ToString = KismetTextLibrary.prototype.Conv_TextToString;
726 | KismetTextLibrary.ToString = KismetTextLibrary.Conv_TextToString;
727 | KismetTextLibrary.prototype.ToText = KismetTextLibrary.prototype.Conv_StringToText;
728 | KismetTextLibrary.ToText = KismetTextLibrary.Conv_StringToText;
729 | KismetTextLibrary.prototype.ToText = KismetTextLibrary.prototype.Conv_NameToText;
730 | KismetTextLibrary.ToText = KismetTextLibrary.Conv_NameToText;
731 | KismetTextLibrary.prototype.ToText = KismetTextLibrary.prototype.Conv_IntToText;
732 | KismetTextLibrary.ToText = KismetTextLibrary.Conv_IntToText;
733 | KismetTextLibrary.prototype.ToText = KismetTextLibrary.prototype.Conv_FloatToText;
734 | KismetTextLibrary.ToText = KismetTextLibrary.Conv_FloatToText;
735 | KismetTextLibrary.prototype.ToText = KismetTextLibrary.prototype.Conv_ByteToText;
736 | KismetTextLibrary.ToText = KismetTextLibrary.Conv_ByteToText;
737 | KismetTextLibrary.prototype.ToText = KismetTextLibrary.prototype.Conv_BoolToText;
738 | KismetTextLibrary.ToText = KismetTextLibrary.Conv_BoolToText;
739 | KismetTextLibrary.prototype.AsTimespan = KismetTextLibrary.prototype.AsTimespan_Timespan;
740 | KismetTextLibrary.AsTimespan = KismetTextLibrary.AsTimespan_Timespan;
741 | KismetTextLibrary.prototype.AsTime = KismetTextLibrary.prototype.AsTime_DateTime;
742 | KismetTextLibrary.AsTime = KismetTextLibrary.AsTime_DateTime;
743 | KismetTextLibrary.prototype.AsPercent = KismetTextLibrary.prototype.AsPercent_Float;
744 | KismetTextLibrary.AsPercent = KismetTextLibrary.AsPercent_Float;
745 | KismetTextLibrary.prototype.AsDateTime = KismetTextLibrary.prototype.AsDateTime_DateTime;
746 | KismetTextLibrary.AsDateTime = KismetTextLibrary.AsDateTime_DateTime;
747 | KismetTextLibrary.prototype.AsDate = KismetTextLibrary.prototype.AsDate_DateTime;
748 | KismetTextLibrary.AsDate = KismetTextLibrary.AsDate_DateTime;
749 | KismetTextLibrary.prototype.AsCurrency = KismetTextLibrary.prototype.AsCurrencyBase;
750 | KismetTextLibrary.AsCurrency = KismetTextLibrary.AsCurrencyBase;
751 | KismetTextLibrary.prototype.AsCurrency = KismetTextLibrary.prototype.AsCurrency_Integer;
752 | KismetTextLibrary.AsCurrency = KismetTextLibrary.AsCurrency_Integer;
753 | KismetTextLibrary.prototype.AsCurrency = KismetTextLibrary.prototype.AsCurrency_Float;
754 | KismetTextLibrary.AsCurrency = KismetTextLibrary.AsCurrency_Float;
755 | VisualLoggerKismetLibrary.prototype.LogBoxShape = VisualLoggerKismetLibrary.prototype.LogBox;
756 | VisualLoggerKismetLibrary.LogBoxShape = VisualLoggerKismetLibrary.LogBox;
757 | Canvas.prototype.ClippedTextSize = Canvas.prototype.K2_TextSize;
758 | Canvas.prototype.WrappedTextSize = Canvas.prototype.K2_StrLen;
759 | Canvas.prototype.Project = Canvas.prototype.K2_Project;
760 | Canvas.prototype.DrawTriangles = Canvas.prototype.K2_DrawTriangle;
761 | Canvas.prototype.DrawTexture = Canvas.prototype.K2_DrawTexture;
762 | Canvas.prototype.DrawText = Canvas.prototype.K2_DrawText;
763 | Canvas.prototype.DrawPolygon = Canvas.prototype.K2_DrawPolygon;
764 | Canvas.prototype.DrawMaterialTriangles = Canvas.prototype.K2_DrawMaterialTriangle;
765 | Canvas.prototype.DrawMaterial = Canvas.prototype.K2_DrawMaterial;
766 | Canvas.prototype.DrawLine = Canvas.prototype.K2_DrawLine;
767 | Canvas.prototype.DrawBox = Canvas.prototype.K2_DrawBox;
768 | Canvas.prototype.DrawBorder = Canvas.prototype.K2_DrawBorder;
769 | Canvas.prototype.Deproject = Canvas.prototype.K2_Deproject;
770 | GameUserSettings.prototype.SetResolutionScaleValue = GameUserSettings.prototype.SetResolutionScaleValueEx;
771 | GameUserSettings.prototype.SetResolutionScaleValue_Deprecated = GameUserSettings.prototype.SetResolutionScaleValue;
772 | GameUserSettings.prototype.GetResolutionScaleInformation = GameUserSettings.prototype.GetResolutionScaleInformationEx;
773 | GameUserSettings.prototype.GetResolutionScaleInformation_Deprecated = GameUserSettings.prototype.GetResolutionScaleInformation;
774 | MaterialInstanceDynamic.prototype.InterpolateMaterialInstanceParameters = MaterialInstanceDynamic.prototype.K2_InterpolateMaterialInstanceParams;
775 | MaterialInstanceDynamic.prototype.GetVectorParameterValue = MaterialInstanceDynamic.prototype.K2_GetVectorParameterValue;
776 | MaterialInstanceDynamic.prototype.GetTextureParameterValue = MaterialInstanceDynamic.prototype.K2_GetTextureParameterValue;
777 | MaterialInstanceDynamic.prototype.GetScalarParameterValue = MaterialInstanceDynamic.prototype.K2_GetScalarParameterValue;
778 | MaterialInstanceDynamic.prototype.CopyMaterialInstanceParameters = MaterialInstanceDynamic.prototype.K2_CopyMaterialInstanceParameters;
779 | Texture2D.prototype.GetSizeY = Texture2D.prototype.Blueprint_GetSizeY;
780 | Texture2D.prototype.GetSizeX = Texture2D.prototype.Blueprint_GetSizeX;
781 | InAppPurchaseQueryCallbackProxy.prototype.ReadInAppPurchaseInformation = InAppPurchaseQueryCallbackProxy.prototype.CreateProxyObjectForInAppPurchaseQuery;
782 | InAppPurchaseQueryCallbackProxy.ReadInAppPurchaseInformation = InAppPurchaseQueryCallbackProxy.CreateProxyObjectForInAppPurchaseQuery;
783 | LeaderboardQueryCallbackProxy.prototype.ReadLeaderboardInteger = LeaderboardQueryCallbackProxy.prototype.CreateProxyObjectForIntQuery;
784 | LeaderboardQueryCallbackProxy.ReadLeaderboardInteger = LeaderboardQueryCallbackProxy.CreateProxyObjectForIntQuery;
785 | VREditorQuickMenu.prototype.Refresh = VREditorQuickMenu.prototype.RefreshUI;
786 | ProceduralMeshComponent.prototype.UpdateMeshSection = ProceduralMeshComponent.prototype.UpdateMeshSection_LinearColor;
787 | ProceduralMeshComponent.prototype.UpdateMeshSectionFColor = ProceduralMeshComponent.prototype.UpdateMeshSection;
788 | ProceduralMeshComponent.prototype.CreateMeshSection = ProceduralMeshComponent.prototype.CreateMeshSection_LinearColor;
789 | ProceduralMeshComponent.prototype.CreateMeshSectionFColor = ProceduralMeshComponent.prototype.CreateMeshSection;
790 | Guid.prototype.ToString = Guid.prototype.Conv_GuidToString;
791 | Guid.prototype.Equal = Guid.prototype.EqualEqual_GuidGuid;
792 | Guid.prototype.IsValid = Guid.prototype.IsValid_Guid;
793 | Guid.prototype.NotEqual = Guid.prototype.NotEqual_GuidGuid;
794 | Vector.prototype.ToString = Vector.prototype.Conv_VectorToString;
795 | Vector.prototype.ToLinearColor = Vector.prototype.Conv_VectorToLinearColor;
796 | Vector.prototype.RotationFromXVector = Vector.prototype.Conv_VectorToRotator;
797 | Vector.prototype.ToTransform = Vector.prototype.Conv_VectorToTransform;
798 | Vector.prototype.ToVector2D = Vector.prototype.Conv_VectorToVector2D;
799 | Vector.prototype.CrossProduct = Vector.prototype.Cross_VectorVector;
800 | Vector.prototype.DotProduct = Vector.prototype.Dot_VectorVector;
801 | Vector.prototype.Equal = Vector.prototype.EqualEqual_VectorVector;
802 | Vector.prototype.RotateVector = Vector.prototype.GreaterGreater_VectorRotator;
803 | Vector.prototype.UnrotateVector = Vector.prototype.LessLess_VectorRotator;
804 | Vector.prototype.LinePlaneIntersection = Vector.prototype.LinePlaneIntersection_OriginNormal;
805 | Vector.prototype.Normalize = Vector.prototype.Normal;
806 | Vector.prototype.NotEqual = Vector.prototype.NotEqual_VectorVector;
807 | Vector.prototype.RotateVectorAroundAxis = Vector.prototype.RotateAngleAxis;
808 | Vector.prototype.Ease = Vector.prototype.VEase;
809 | Vector.prototype.Lerp = Vector.prototype.VLerp;
810 | Vector.prototype.VectorLength = Vector.prototype.VSize;
811 | Vector.prototype.VectorLengthSquared = Vector.prototype.VSizeSquared;
812 | Vector2D.prototype.ToString = Vector2D.prototype.Conv_Vector2dToString;
813 | Vector2D.prototype.ToVector = Vector2D.prototype.Conv_Vector2DToVector;
814 | Vector2D.prototype.CrossProduct = Vector2D.prototype.CrossProduct2D;
815 | Vector2D.prototype.DotProduct = Vector2D.prototype.DotProduct2D;
816 | Vector2D.prototype.Equal = Vector2D.prototype.EqualEqual_Vector2DVector2D;
817 | Vector2D.prototype.Normalize2D = Vector2D.prototype.Normal2D;
818 | Vector2D.prototype.NotEqual = Vector2D.prototype.NotEqual_Vector2DVector2D;
819 | Vector2D.prototype.Vector2dLength = Vector2D.prototype.VSize2D;
820 | Vector2D.prototype.Vector2dLengthSquared = Vector2D.prototype.VSize2DSquared;
821 | Rotator.prototype.ToString = Rotator.prototype.Conv_RotatorToString;
822 | Rotator.prototype.CombineRotators = Rotator.prototype.ComposeRotators;
823 | Rotator.prototype.GetRotationXVector = Rotator.prototype.Conv_RotatorToVector;
824 | Rotator.prototype.Equal = Rotator.prototype.EqualEqual_RotatorRotator;
825 | Rotator.prototype.ScaleRotator = Rotator.prototype.Multiply_RotatorFloat;
826 | Rotator.prototype.ScaleRotator = Rotator.prototype.Multiply_RotatorInt;
827 | Rotator.prototype.InvertRotator = Rotator.prototype.NegateRotator;
828 | Rotator.prototype.Delta = Rotator.prototype.NormalizedDeltaRotator;
829 | Rotator.prototype.NotEqual = Rotator.prototype.NotEqual_RotatorRotator;
830 | Rotator.prototype.Ease = Rotator.prototype.REase;
831 | Rotator.prototype.Lerp = Rotator.prototype.RLerp;
832 | Color.prototype.ToLinearColor = Color.prototype.Conv_ColorToLinearColor;
833 | LinearColor.prototype.ToString = LinearColor.prototype.Conv_ColorToString;
834 | LinearColor.prototype.ToColor = LinearColor.prototype.Conv_LinearColorToColor;
835 | LinearColor.prototype.ToVector = LinearColor.prototype.Conv_LinearColorToVector;
836 | LinearColor.prototype.HSVtoRGB = LinearColor.prototype.HSVToRGB_Vector;
837 | LinearColor.prototype.Lerp = LinearColor.prototype.LinearColorLerp;
838 | LinearColor.prototype.LerpUsingHSV = LinearColor.prototype.LinearColorLerpUsingHSV;
839 | LinearColor.prototype.RGBtoHSV = LinearColor.prototype.RGBToHSV_Vector;
840 | Transform.prototype.ToString = Transform.prototype.Conv_TransformToString;
841 | Transform.prototype.EqualTransform = Transform.prototype.EqualEqual_TransformTransform;
842 | Transform.prototype.NearlyEqual = Transform.prototype.NearlyEqual_TransformTransform;
843 | Transform.prototype.Ease = Transform.prototype.TEase;
844 | Transform.prototype.Lerp = Transform.prototype.TLerp;
845 | DateTime.prototype.AsDate = DateTime.prototype.AsDate_DateTime;
846 | DateTime.prototype.AsDateTime = DateTime.prototype.AsDateTime_DateTime;
847 | DateTime.prototype.AsTime = DateTime.prototype.AsTime_DateTime;
848 | DateTime.prototype.Equal = DateTime.prototype.EqualEqual_DateTimeDateTime;
849 | DateTime.prototype.NotEqual = DateTime.prototype.NotEqual_DateTimeDateTime;
850 | Timespan.prototype.AsTimespan = Timespan.prototype.AsTimespan_Timespan;
851 | Timespan.prototype.Equal = Timespan.prototype.EqualEqual_TimespanTimespan;
852 | Timespan.prototype.NotEqual = Timespan.prototype.NotEqual_TimespanTimespan;
853 | Key.prototype.Equal = Key.prototype.EqualEqual_KeyKey;
854 | TimerHandle.prototype.Invalidate = TimerHandle.prototype.K2_InvalidateTimerHandle;
855 | TimerHandle.prototype.IsValid = TimerHandle.prototype.K2_IsValidTimerHandle;
856 | InputEvent.prototype.IsAltDown = InputEvent.prototype.InputEvent_IsAltDown;
857 | InputEvent.prototype.IsCommandDown = InputEvent.prototype.InputEvent_IsCommandDown;
858 | InputEvent.prototype.IsControlDown = InputEvent.prototype.InputEvent_IsControlDown;
859 | InputEvent.prototype.IsLeftAltDown = InputEvent.prototype.InputEvent_IsLeftAltDown;
860 | InputEvent.prototype.IsLeftCommandDown = InputEvent.prototype.InputEvent_IsLeftCommandDown;
861 | InputEvent.prototype.IsLeftControlDown = InputEvent.prototype.InputEvent_IsLeftControlDown;
862 | InputEvent.prototype.IsLeftShiftDown = InputEvent.prototype.InputEvent_IsLeftShiftDown;
863 | InputEvent.prototype.IsRepeat = InputEvent.prototype.InputEvent_IsRepeat;
864 | InputEvent.prototype.IsRightAltDown = InputEvent.prototype.InputEvent_IsRightAltDown;
865 | InputEvent.prototype.IsRightCommandDown = InputEvent.prototype.InputEvent_IsRightCommandDown;
866 | InputEvent.prototype.IsRightControlDown = InputEvent.prototype.InputEvent_IsRightControlDown;
867 | InputEvent.prototype.IsRightShiftDown = InputEvent.prototype.InputEvent_IsRightShiftDown;
868 | InputEvent.prototype.IsShiftDown = InputEvent.prototype.InputEvent_IsShiftDown;
869 | UPointerEvent.prototype.GetCursorDelta = UPointerEvent.prototype.PointerEvent_GetCursorDelta;
870 | UPointerEvent.prototype.GetEffectingButton = UPointerEvent.prototype.PointerEvent_GetEffectingButton;
871 | UPointerEvent.prototype.GetGestureDelta = UPointerEvent.prototype.PointerEvent_GetGestureDelta;
872 | UPointerEvent.prototype.GetLastScreenSpacePosition = UPointerEvent.prototype.PointerEvent_GetLastScreenSpacePosition;
873 | UPointerEvent.prototype.GetPointerIndex = UPointerEvent.prototype.PointerEvent_GetPointerIndex;
874 | UPointerEvent.prototype.GetScreenSpacePosition = UPointerEvent.prototype.PointerEvent_GetScreenSpacePosition;
875 | UPointerEvent.prototype.GetTouchpadIndex = UPointerEvent.prototype.PointerEvent_GetTouchpadIndex;
876 | UPointerEvent.prototype.GetUserIndex = UPointerEvent.prototype.PointerEvent_GetUserIndex;
877 | UPointerEvent.prototype.GetWheelDelta = UPointerEvent.prototype.PointerEvent_GetWheelDelta;
878 | UPointerEvent.prototype.IsMouseButtonDown = UPointerEvent.prototype.PointerEvent_IsMouseButtonDown;
879 | UPointerEvent.prototype.IsTouchEvent = UPointerEvent.prototype.PointerEvent_IsTouchEvent;
880 | InputChord.prototype.Equal = InputChord.prototype.EqualEqual_InputChordInputChord;
881 | ControllerEvent.prototype.GetEffectingButton = ControllerEvent.prototype.ControllerEvent_GetEffectingButton;
882 | PaintContext.prototype.DrawString = PaintContext.prototype.DrawText;
883 | PaintContext.prototype.DrawText = PaintContext.prototype.DrawTextFormatted;
884 |
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Content/Scripts/bootstrap.js:
--------------------------------------------------------------------------------
1 | (function (global) {
2 | "use strict"
3 |
4 | module.exports = function (filename) {
5 | // Context.WriteDTS(Context.Paths[0] + 'typings/ue.d.ts')
6 | // Context.WriteAliases(Context.Paths[0] + 'aliases.js')
7 |
8 | Context.RunFile('aliases.js')
9 | Context.RunFile('polyfill/unrealengine.js')
10 | Context.RunFile('polyfill/timers.js')
11 |
12 | require('devrequire')(filename)
13 | }
14 | })(this)
15 |
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Content/Scripts/helloReactUMG.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
4 |
5 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6 |
7 | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
8 |
9 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10 |
11 | /// />
12 |
13 | function GetPC() {
14 | return PlayerController.C(GWorld.GetAllActorsOfClass(PlayerController).OutActors[0]);
15 | }
16 |
17 | function main() {
18 |
19 | var _ = require('lodash');
20 | var React = require('react');
21 | var ReactUMG = require('../../../../lib'); // react-umg
22 |
23 | var widget = null;
24 | var PC = GetPC();
25 |
26 | // create a root widget
27 | widget = GWorld.CreateWidget(JavascriptWidget, PC);
28 | widget.JavascriptContext = Context;
29 | widget.bSupportsKeyboardFocus = true;
30 |
31 | var StatelessContainer = function StatelessContainer(_ref) {
32 | var children = _ref.children;
33 | return React.createElement(
34 | 'vbox',
35 | null,
36 | children
37 | );
38 | };
39 |
40 | var ControlledText = function (_React$Component) {
41 | _inherits(ControlledText, _React$Component);
42 |
43 | function ControlledText(props, context) {
44 | _classCallCheck(this, ControlledText);
45 |
46 | var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ControlledText).call(this, props, context));
47 |
48 | _this.state = { text: "controlled text-component" };
49 | return _this;
50 | }
51 |
52 | _createClass(ControlledText, [{
53 | key: 'onChange',
54 | value: function onChange(value) {
55 | this.setState({ text: value });
56 | }
57 | }, {
58 | key: 'render',
59 | value: function render() {
60 | var _this2 = this;
61 |
62 | return React.createElement(
63 | 'hbox',
64 | null,
65 | React.createElement('input', { value: this.state.text, onChange: function onChange(value) {
66 | return _this2.onChange(value);
67 | } }),
68 | React.createElement(
69 | 'text',
70 | null,
71 | this.state.text
72 | )
73 | );
74 | }
75 | }]);
76 |
77 | return ControlledText;
78 | }(React.Component);
79 |
80 | var UncontrolledText = function (_React$Component2) {
81 | _inherits(UncontrolledText, _React$Component2);
82 |
83 | function UncontrolledText(props, context) {
84 | _classCallCheck(this, UncontrolledText);
85 |
86 | var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(UncontrolledText).call(this, props, context));
87 |
88 | _this3.state = { text: "uncontrolled text-component" };
89 | return _this3;
90 | }
91 |
92 | _createClass(UncontrolledText, [{
93 | key: 'onChange',
94 | value: function onChange(value) {
95 | this.setState({ text: value });
96 | }
97 | }, {
98 | key: 'render',
99 | value: function render() {
100 | var _this4 = this;
101 |
102 | return React.createElement(
103 | 'hbox',
104 | null,
105 | React.createElement('input', { onChange: function onChange(value) {
106 | return _this4.onChange(value);
107 | } }),
108 | React.createElement(
109 | 'text',
110 | null,
111 | this.state.text
112 | )
113 | );
114 | }
115 | }]);
116 |
117 | return UncontrolledText;
118 | }(React.Component);
119 |
120 | var Stateful = function (_React$Component3) {
121 | _inherits(Stateful, _React$Component3);
122 |
123 | function Stateful(props, context) {
124 | _classCallCheck(this, Stateful);
125 |
126 | var _this5 = _possibleConstructorReturn(this, Object.getPrototypeOf(Stateful).call(this, props, context));
127 |
128 | _this5.state = { count: 5 };
129 | return _this5;
130 | }
131 |
132 | _createClass(Stateful, [{
133 | key: 'onChange',
134 | value: function onChange(value) {
135 | this.setState({ count: parseInt(value) || 0 });
136 | }
137 | }, {
138 | key: 'render',
139 | value: function render() {
140 | var _this6 = this;
141 |
142 | return React.createElement(
143 | 'vbox',
144 | null,
145 | React.createElement('input', { value: this.state.count.toString(), onChange: function onChange(value) {
146 | return _this6.onChange(value);
147 | } }),
148 | React.createElement(
149 | 'text',
150 | null,
151 | 'item-count: ' + this.state.count.toString()
152 | ),
153 | _.times(this.state.count, function (i) {
154 | return React.createElement(
155 | 'text',
156 | { key: i },
157 | 'item_' + i.toString()
158 | );
159 | })
160 | );
161 | }
162 | }]);
163 |
164 | return Stateful;
165 | }(React.Component);
166 |
167 | ReactUMG.render(React.createElement(
168 | 'vbox',
169 | null,
170 | React.createElement(
171 | 'text',
172 | null,
173 | 'Hello react-umg!'
174 | ),
175 | React.createElement(
176 | 'text',
177 | null,
178 | 'by @DrywolfDev'
179 | ),
180 | React.createElement('text', null),
181 | React.createElement(
182 | 'text',
183 | null,
184 | new Date().toISOString()
185 | ),
186 | React.createElement(
187 | StatelessContainer,
188 | null,
189 | React.createElement(
190 | 'text',
191 | null,
192 | 'A'
193 | ),
194 | React.createElement(
195 | 'text',
196 | null,
197 | 'B'
198 | )
199 | ),
200 | React.createElement(
201 | StatelessContainer,
202 | null,
203 | React.createElement(
204 | 'button',
205 | { onClick: function onClick() {
206 | return console.log("click 1");
207 | } },
208 | React.createElement(
209 | 'text',
210 | null,
211 | 'Button 1'
212 | )
213 | ),
214 | React.createElement(
215 | 'button',
216 | { onClick: function onClick() {
217 | return console.log("click 2");
218 | } },
219 | React.createElement(
220 | 'text',
221 | null,
222 | 'Button 2'
223 | )
224 | ),
225 | React.createElement(UncontrolledText, null),
226 | React.createElement(ControlledText, null),
227 | React.createElement(Stateful, null)
228 | )
229 | ), widget);
230 |
231 | widget.AddToViewport();
232 |
233 | // Switch PC to UI only mode.
234 | PC.bShowMouseCursor = true;
235 | PC.SetInputMode_UIOnly(widget);
236 |
237 | return function () {
238 | widget.RemoveFromViewport();
239 | };
240 | }
241 |
242 | try {
243 | module.exports = function () {
244 | var cleanup = null;
245 | process.nextTick(function () {
246 | return cleanup = main();
247 | });
248 | return function () {
249 | return cleanup();
250 | };
251 | };
252 | } catch (e) {
253 | require('bootstrap')('helloReactUMG');
254 | }
255 |
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Content/Scripts/helloReactUMG.jsx:
--------------------------------------------------------------------------------
1 | /// />
2 |
3 | function GetPC() {
4 | return PlayerController.C(GWorld.GetAllActorsOfClass(PlayerController).OutActors[0])
5 | }
6 |
7 | function main() {
8 |
9 | const _ = require('lodash');
10 | const React = require('react');
11 | const ReactUMG = require('../../../../lib'); // react-umg
12 |
13 | let widget = null
14 | let PC = GetPC()
15 |
16 | // create a root widget
17 | widget = GWorld.CreateWidget(JavascriptWidget, PC)
18 | widget.JavascriptContext = Context
19 | widget.bSupportsKeyboardFocus = true
20 |
21 | const StatelessContainer = ({children}) =>
22 | (
23 |
24 | {children}
25 |
26 | );
27 |
28 | class ControlledText extends React.Component
29 | {
30 | constructor(props, context)
31 | {
32 | super(props, context);
33 | this.state = {text: "controlled text-component"};
34 | }
35 |
36 | onChange(value)
37 | {
38 | this.setState({text: value});
39 | }
40 |
41 | render()
42 | {
43 | return (
44 |
45 | this.onChange(value)}>
46 | {this.state.text}
47 |
48 | );
49 | }
50 | }
51 |
52 | class UncontrolledText extends React.Component
53 | {
54 | constructor(props, context)
55 | {
56 | super(props, context);
57 | this.state = {text: "uncontrolled text-component"};
58 | }
59 |
60 | onChange(value)
61 | {
62 | this.setState({text: value});
63 | }
64 |
65 | render()
66 | {
67 | return (
68 |
69 | this.onChange(value)}>
70 | {this.state.text}
71 |
72 | );
73 | }
74 | }
75 |
76 | class Stateful extends React.Component
77 | {
78 | constructor(props, context)
79 | {
80 | super(props, context);
81 | this.state = {count: 5};
82 | }
83 |
84 | onChange(value)
85 | {
86 | this.setState({count: parseInt(value) || 0});
87 | }
88 |
89 | render()
90 | {
91 | return (
92 |
93 | this.onChange(value)}>
94 | {'item-count: ' + this.state.count.toString()}
95 | {_.times(this.state.count, i => {'item_' + i.toString()})}
96 |
97 | );
98 | }
99 | }
100 |
101 | ReactUMG.render(
102 |
103 | Hello react-umg!
104 | by @DrywolfDev
105 |
106 | {new Date().toISOString()}
107 |
108 |
109 | A
110 | B
111 |
112 |
113 |
114 |
117 |
118 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | ,
128 | widget
129 | );
130 |
131 | widget.AddToViewport()
132 |
133 | // Switch PC to UI only mode.
134 | PC.bShowMouseCursor = true
135 | PC.SetInputMode_UIOnly(widget)
136 |
137 | return function () {
138 | widget.RemoveFromViewport()
139 | }
140 | }
141 |
142 | try {
143 | module.exports = () => {
144 | let cleanup = null
145 | process.nextTick(() => cleanup = main());
146 | return () => cleanup()
147 | }
148 | }
149 | catch (e) {
150 | require('bootstrap')('helloReactUMG')
151 | }
152 |
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Content/Scripts/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-umg-examples",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "scripts": {
6 | "build": "babel helloReactUMG.jsx --out-file helloReactUMG.js",
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "DryWolf",
10 | "license": "ISC",
11 | "description": "",
12 | "dependencies": {
13 | "lodash": "^4.14.1",
14 | "react": "^15.3.0"
15 | },
16 | "devDependencies": {
17 | "babel-cli": "^6.6.4",
18 | "babel-eslint": "^5.0.0",
19 | "babel-plugin-transform-class-properties": "^6.6.0",
20 | "babel-preset-es2015": "^6.6.0",
21 | "babel-preset-react": "^6.5.0",
22 | "babel-register": "^6.7.2"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/Plugins/.keepme:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drywolf/react-umg/65b1f8c9f6149c32f6c462589dc44f4326703844/examples/ReactUmgExamples/Plugins/.keepme
--------------------------------------------------------------------------------
/examples/ReactUmgExamples/ReactUmgExamples.uproject:
--------------------------------------------------------------------------------
1 | {
2 | "FileVersion": 3,
3 | "EngineAssociation": "4.12",
4 | "Category": "",
5 | "Description": ""
6 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-umg",
3 | "version": "0.1.0",
4 | "description": "",
5 | "main": "lib/index.js",
6 | "scripts": {
7 | "build": "babel src -d lib",
8 | "watch": "babel --watch src -d lib",
9 | "test": "echo \"Error: no test specified\" && exit 1"
10 | },
11 | "keywords": [],
12 | "author": "",
13 | "license": "ISC",
14 | "devDependencies": {
15 | "babel-cli": "^6.6.4",
16 | "babel-eslint": "^5.0.0",
17 | "babel-plugin-transform-class-properties": "^6.6.0",
18 | "babel-preset-es2015": "^6.6.0",
19 | "babel-preset-react": "^6.5.0",
20 | "babel-register": "^6.7.2"
21 | },
22 | "dependencies": {
23 | "fbjs": "^0.8.3",
24 | "react": "^15.2.1"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/ReactUMGComponent.js:
--------------------------------------------------------------------------------
1 | import ReactMultiChild from 'react/lib/ReactMultiChild';
2 | import ReactCurrentOwner from 'react/lib/ReactCurrentOwner';
3 |
4 | // import {create, diff} from './attributePayload';
5 | import invariant from 'fbjs/lib/invariant';
6 | import warning from 'fbjs/lib/warning';
7 |
8 | import UmgRoots from './UMGRoots';
9 | import TypeThunks from './components';
10 |
11 | const builtin_types = Object.keys(TypeThunks);
12 |
13 | // In some cases we might not have a owner and when
14 | // that happens there is no need to inlcude "Check the render method of ...".
15 | const checkRenderMethod = () => ReactCurrentOwner.owner && ReactCurrentOwner.owner.getName()
16 | ? ` Check the render method of "${ReactCurrentOwner.owner.getName()}".` : '';
17 |
18 | /**
19 | * @constructor ReactUMGComponent
20 | * @extends ReactComponent
21 | * @extends ReactMultiChild
22 | */
23 | const ReactUMGComponent = function(element) {
24 | this.node = null;
25 | this._mountImage = null;
26 | this._renderedChildren = null;
27 | this._currentElement = element;
28 | this._umgElem = null;
29 |
30 | this._rootNodeID = null;
31 | this._typeThunk = TypeThunks[element.type];
32 |
33 | if (process.env.NODE_ENV !== 'production') {
34 | warning(
35 | builtin_types.indexOf(element.type) > -1,
36 | 'Attempted to render an unsupported generic component "%s". ' +
37 | 'Must be one of the following: ' + builtin_types,
38 | element.type,
39 | checkRenderMethod()
40 | );
41 | }
42 | };
43 |
44 | /**
45 | * Mixin for UMG components.
46 | */
47 | ReactUMGComponent.Mixin = {
48 | // this is called when changing a component in the middle of a tree
49 | // currently a noop since _nativeNode is not defined.
50 | getHostNode() {},
51 |
52 | getPublicInstance() {
53 | // TODO: This should probably use a composite wrapper
54 | return this;
55 | },
56 |
57 | unmountComponent() {
58 |
59 | if (this._umgElem)
60 | {
61 | this._umgElem.RemoveFromParent();
62 | this._umgElem.destroy();
63 | }
64 |
65 | this.unmountChildren();
66 | this._rootNodeID = null;
67 | this._umgElem = null;
68 | },
69 |
70 | updateProperties()
71 | {
72 | if (this._typeThunk.applyProperties)
73 | this._typeThunk.applyProperties(this._umgElem, this._currentElement);
74 | },
75 |
76 | /**
77 | *
78 | */
79 | mountComponent(
80 | transaction, // for creating/updating
81 | rootID, // Root ID of this subtree
82 | hostContainerInfo, // nativeContainerInfo
83 | context // secret context, shhhh
84 | ) {
85 | let parent = rootID;
86 |
87 | rootID = typeof rootID === 'object' ? rootID._rootNodeID : rootID;
88 | this._rootNodeID = rootID;
89 |
90 | let umgRoot = parent._umgElem ? parent._umgElem : UmgRoots[rootID];
91 |
92 | this._umgElem = this._typeThunk.createUmgElement(
93 | this._currentElement,
94 | elem => umgRoot.add_child(elem)
95 | );
96 |
97 | this.updateProperties();
98 |
99 | this.initializeChildren(
100 | this._currentElement.props.children,
101 | transaction,
102 | context
103 | );
104 | return rootID;
105 | },
106 |
107 | /**
108 | * Updates the component's currently mounted representation.
109 | */
110 | receiveComponent(
111 | nextElement,
112 | transaction,
113 | context
114 | ) {
115 | const prevElement = this._currentElement;
116 | this._currentElement = nextElement;
117 |
118 | this.updateProperties();
119 |
120 | // TODO: _reconcileListenersUponUpdate(prevElement.props, nextElement.props)
121 | this.updateChildren(nextElement.props.children, transaction, context);
122 | },
123 |
124 | initializeChildren(
125 | children,
126 | transaction, // for creating/updating
127 | context // secret context, shhhh
128 | ) {
129 | this.mountChildren(children, transaction, context);
130 | },
131 | };
132 |
133 | /**
134 | * Order of mixins is important. ReactUMGComponent overrides methods in
135 | * ReactMultiChild.
136 | */
137 | Object.assign(
138 | ReactUMGComponent.prototype,
139 | ReactMultiChild.Mixin,
140 | ReactUMGComponent.Mixin
141 | );
142 |
143 | export default ReactUMGComponent;
144 |
--------------------------------------------------------------------------------
/src/ReactUMGDefaultInjection.js:
--------------------------------------------------------------------------------
1 | /**
2 | * React UMG Default Injection
3 | */
4 | import './devtools/InitializeJavaScriptAppEngine';
5 | import ReactInjection from 'react/lib/ReactInjection';
6 | import ReactDefaultBatchingStrategy from 'react/lib/ReactDefaultBatchingStrategy';
7 | import ReactComponentEnvironment from 'react/lib/ReactComponentEnvironment';
8 | import ReactUMGReconcileTransaction from './ReactUMGReconcileTransaction';
9 | import ReactUMGComponent from './ReactUMGComponent';
10 | import ReactUMGEmptyComponent from './ReactUMGEmptyComponent';
11 |
12 | function inject() {
13 | ReactInjection.HostComponent.injectGenericComponentClass(
14 | ReactUMGComponent
15 | );
16 |
17 | // Maybe?
18 | ReactInjection.HostComponent.injectTextComponentClass(
19 | (instantiate) => new ReactUMGEmptyComponent(instantiate)
20 | );
21 |
22 | ReactInjection.Updates.injectReconcileTransaction(
23 | ReactUMGReconcileTransaction
24 | );
25 |
26 | ReactInjection.Updates.injectBatchingStrategy(
27 | ReactDefaultBatchingStrategy
28 | );
29 |
30 | ReactInjection.EmptyComponent.injectEmptyComponentFactory(
31 | (instantiate) => new ReactUMGEmptyComponent(instantiate)
32 | );
33 |
34 | ReactComponentEnvironment.processChildrenUpdates = function() {};
35 | ReactComponentEnvironment.replaceNodeWithMarkup = function() {};
36 | ReactComponentEnvironment.unmountIDFromEnvironment = function() {};
37 | }
38 |
39 | export default {
40 | inject,
41 | };
42 |
--------------------------------------------------------------------------------
/src/ReactUMGEmptyComponent.js:
--------------------------------------------------------------------------------
1 |
2 | const ReactMultiChild = require('react/lib/ReactMultiChild');
3 |
4 | const ReactUMGEmptyComponent = function(element) {
5 |
6 | this.node = null;
7 | this._mountImage = null;
8 | this._renderedChildren = null;
9 | this._currentElement = element;
10 | this._rootNodeID = null;
11 | };
12 |
13 | ReactUMGEmptyComponent.prototype = Object.assign(
14 | {
15 | construct(element) {},
16 |
17 | getPublicInstance() {},
18 | mountComponent() {},
19 | receiveComponent() {},
20 | unmountComponent() {},
21 | // Implement both of these for now. React <= 15.0 uses getNativeNode, but
22 | // that is confusing. Host environment is more accurate and will be used
23 | // going forward
24 | getNativeNode() {},
25 | getHostNode() {}
26 | },
27 | ReactMultiChild.Mixin
28 | );
29 |
30 | export default ReactUMGEmptyComponent;
31 |
--------------------------------------------------------------------------------
/src/ReactUMGMount.js:
--------------------------------------------------------------------------------
1 | /**
2 | * React Hardware mount method.
3 | *
4 | * @flow
5 | */
6 |
7 | import ReactInstanceHandles from 'react/lib/ReactInstanceHandles';
8 | import ReactElement from 'react/lib/ReactElement';
9 | import ReactUpdates from 'react/lib/ReactUpdates';
10 | import ReactUpdateQueue from 'react/lib/ReactUpdateQueue';
11 | import ReactReconciler from 'react/lib/ReactReconciler';
12 | import shouldUpdateReactComponent from 'react/lib/shouldUpdateReactComponent';
13 | import instantiateReactComponent from 'react/lib/instantiateReactComponent';
14 |
15 | import invariant from 'fbjs/lib/invariant';
16 | import warning from 'fbjs/lib/warning';
17 |
18 | import ReactUMGDefaultInjection from './ReactUMGDefaultInjection';
19 |
20 | import UMGInstantiator from 'instantiator';
21 |
22 | ReactUMGDefaultInjection.inject();
23 |
24 | // TODO: externalize management of UMG node meta-data (id, component, ...)
25 | let idCounter = 1;
26 |
27 | import UmgRoots from './UMGRoots';
28 | import TypeThunks from './components';
29 |
30 | const ReactUMGMount = {
31 | // for react devtools
32 | _instancesByReactRootID: {},
33 | nativeTagToRootNodeID(nativeTag) {
34 | throw new Error('TODO: implement nativeTagToRootNodeID ' + nativeTag);
35 | },
36 |
37 | /**
38 | * Renders a React component to the supplied `container` port.
39 | *
40 | * If the React component was previously rendered into `container`, this will
41 | * perform an update on it and only mutate the pins as necessary to reflect
42 | * the latest React component.
43 | */
44 | render(
45 | nextElement,
46 | umgWidget,
47 | callback
48 | ) {
49 | // WIP: it appears as though nextElement.props is an empty object...
50 | invariant(
51 | ReactElement.isValidElement(nextElement),
52 | 'ReactUMG.render(): Invalid component element.%s',
53 | (
54 | typeof nextElement === 'function' ?
55 | ' Instead of passing a component class, make sure to instantiate ' +
56 | 'it by passing it to React.createElement.' :
57 | // Check if it quacks like an element
58 | nextElement != null && nextElement.props !== undefined ?
59 | ' This may be caused by unintentionally loading two independent ' +
60 | 'copies of React.' :
61 | ''
62 | )
63 | );
64 |
65 | if (umgWidget) {
66 | const prevComponent = umgWidget.component;
67 |
68 | if (prevComponent) {
69 | const prevWrappedElement = prevComponent._currentElement;
70 | const prevElement = prevWrappedElement.props;
71 | if (shouldUpdateReactComponent(prevElement, nextElement)) {
72 | // $FlowFixMe
73 | const publicInst = prevComponent._renderedComponent.getPublicInstance();
74 | const updatedCallback = callback && function() {
75 | // appease flow
76 | if (callback) {
77 | callback.call(publicInst);
78 | }
79 | };
80 |
81 | ReactUMGMount._updateRootComponent(
82 | prevComponent,
83 | nextElement,
84 | container,
85 | updatedCallback
86 | );
87 | return publicInst;
88 | } else {
89 | warning(
90 | true,
91 | 'Unexpected `else` branch in ReactUMG.render()'
92 | );
93 | }
94 | }
95 | }
96 |
97 | if (!umgWidget.reactUmgId)
98 | umgWidget.reactUmgId = idCounter++;
99 |
100 | const rootId = ReactInstanceHandles.createReactRootID(umgWidget.reactUmgId);
101 |
102 | let umgRoot = UmgRoots[rootId];
103 |
104 | if (!umgRoot)
105 | {
106 | let typeThunk = TypeThunks[nextElement.type];
107 | umgRoot = typeThunk.createUmgElement(nextElement, UMGInstantiator);
108 |
109 | if (typeThunk.applyProperties)
110 | typeThunk.applyProperties(umgRoot, nextElement);
111 |
112 | UmgRoots[rootId] = umgRoot;
113 |
114 | umgWidget.SetRootWidget(umgRoot);
115 | }
116 |
117 | const nextComponent = instantiateReactComponent(nextElement);
118 |
119 | if (!umgWidget.component)
120 | umgWidget.component = nextComponent;
121 |
122 | ReactUpdates.batchedUpdates(() => {
123 | // Two points to React for using object pooling internally and being good
124 | // stewards of garbage collection and memory pressure.
125 | const transaction = ReactUpdates.ReactReconcileTransaction.getPooled();
126 | transaction.perform(() => {
127 | // The `component` here is an instance of your
128 | // `ReactCustomRendererComponent` class. To be 100% honest, I’m not
129 | // certain if the method signature is enforced by React core or if it is
130 | // renderer specific. This is following the ReactDOM renderer. The
131 | // important piece is that we pass our transaction and rootId through, in
132 | // addition to any other contextual information needed.
133 |
134 | nextComponent.mountComponent(
135 | transaction,
136 | rootId,
137 | // TODO: what is _idCounter used for and when should it be nonzero?
138 | {_idCounter: 0},
139 | {}
140 | );
141 | if (callback) {
142 | callback(nextComponent.getPublicInstance());
143 | }
144 | });
145 | ReactUpdates.ReactReconcileTransaction.release(transaction);
146 | });
147 |
148 | // needed for react-devtools
149 | ReactUMGMount._instancesByReactRootID[rootId] = nextComponent;
150 |
151 | return nextComponent.getPublicInstance();
152 | },
153 |
154 | /**
155 | * Unmounts a component.
156 | */
157 | unmountComponentAtNode(
158 | container
159 | ) {
160 | throw new Error("not implemented yet");
161 |
162 | return true;
163 | },
164 |
165 | /**
166 | * Take a component that’s already mounted and replace its props
167 | */
168 | _updateRootComponent(
169 | prevComponent, // component instance already in the DOM
170 | nextElement, // component instance to render
171 | container, // firmata connection port
172 | callback // function triggered on completion
173 | ) {
174 | ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement);
175 | if (callback) {
176 | ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);
177 | }
178 |
179 | return prevComponent;
180 | },
181 |
182 | renderComponent(
183 | rootID,
184 | container,
185 | nextComponent,
186 | nextElement,
187 | board, // Firmata instnace
188 | callback
189 | ) {
190 |
191 | const component = nextComponent || instantiateReactComponent(nextElement);
192 |
193 | // The initial render is synchronous but any updates that happen during
194 | // rendering, in componentWillMount or componentDidMount, will be batched
195 | // according to the current batching strategy.
196 | ReactUpdates.batchedUpdates(() => {
197 | // Batched mount component
198 | const transaction = ReactUpdates.ReactReconcileTransaction.getPooled();
199 | transaction.perform(() => {
200 |
201 | component.mountComponent(
202 | transaction,
203 | rootID,
204 | {_idCounter: 0},
205 | {}
206 | );
207 | if (callback) {
208 | const publicInst = component.getPublicInstance();
209 | callback(publicInst);
210 | }
211 | });
212 | ReactUpdates.ReactReconcileTransaction.release(transaction);
213 | });
214 |
215 | return component.getPublicInstance();
216 | },
217 |
218 | getNode(nativeTag) {
219 | return nativeTag;
220 | },
221 |
222 | // // needed for react devtools ?!
223 | // getID(nativeTag: number): string {
224 | // const id = ReactInstanceHandles.getReactRootIDFromNodeID(nativeTag);
225 | // console.warn('TODO: ReactUMGMount.getID(%s) -> %s', nativeTag, id);
226 | // return id;
227 | // },
228 | };
229 |
230 | export default ReactUMGMount;
231 |
--------------------------------------------------------------------------------
/src/ReactUMGReconcileTransaction.js:
--------------------------------------------------------------------------------
1 | import CallbackQueue from 'react/lib/CallbackQueue';
2 | import PooledClass from 'react/lib/PooledClass';
3 | import Transaction from 'react/lib/Transaction';
4 | var ReactUpdateQueue = require('react/lib/ReactUpdateQueue');
5 |
6 | /**
7 | * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks during
8 | * the performing of the transaction.
9 | */
10 | var ON_UMG_READY_QUEUEING = {
11 | /**
12 | * Initializes the internal firmata `connected` queue.
13 | */
14 | initialize: function() {
15 | this.reactMountReady.reset();
16 | },
17 |
18 | /**
19 | * After Hardware is connected, invoke all registered `ready` callbacks.
20 | */
21 | close: function() {
22 | this.reactMountReady.notifyAll();
23 | },
24 | };
25 |
26 | /**
27 | * Executed within the scope of the `Transaction` instance. Consider these as
28 | * being member methods, but with an implied ordering while being isolated from
29 | * each other.
30 | */
31 | var TRANSACTION_WRAPPERS = [ON_UMG_READY_QUEUEING];
32 |
33 | function ReactUMGReconcileTransaction() {
34 | this.reinitializeTransaction();
35 | this.reactMountReady = CallbackQueue.getPooled(null);
36 | }
37 |
38 | const Mixin = {
39 | /**
40 | * @see Transaction
41 | * @abstract
42 | * @final
43 | * @return {array