forked from juso40/bl2sdk_Mods
-
Notifications
You must be signed in to change notification settings - Fork 0
/
travel.py
69 lines (55 loc) · 2.83 KB
/
travel.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import unrealsdk
from . import bl2tools
from math import sqrt
class MapFT:
def __init__(self):
self.RemovedMarker = False
self.MapObjects = []
self.ObjectDelta = []
def get_location(
self,
caller: unrealsdk.UObject,
function: unrealsdk.UFunction,
params: unrealsdk.FStruct
) -> bool:
if self.RemovedMarker:
self.ObjectDelta.clear()
pawn = bl2tools.get_player_controller().Pawn
for i in caller.MapObjects:
if i.CustomObjectLoc.X != 0.0: # Get our newest Marker
MarkerLoc = (i.CustomObjectLoc.X, i.CustomObjectLoc.Y)
for objs in self.MapObjects:
MapObjLoc = (objs.Location.X, objs.Location.Y)
delta = sqrt((MapObjLoc[0] - MarkerLoc[0]) ** 2 + (MapObjLoc[1] - MarkerLoc[1]) ** 2)
self.ObjectDelta.append(delta)
temp = self.ObjectDelta.index(min(self.ObjectDelta))
if self.ObjectDelta[temp] <= 500:
if "vehicle" in bl2tools.get_obj_path_name(self.MapObjects[temp]).lower() and \
"spawnstation" not in bl2tools.get_obj_path_name(self.MapObjects[temp]).lower():
if self.MapObjects[temp].CanEnterVehicle(pawn):
self.MapObjects[temp].DriverEnter(pawn, True)
elif "fasttravel" in bl2tools.get_obj_path_name(self.MapObjects[temp]).lower():
dest_loc = self.MapObjects[temp].TeleportDest.ExitPoints[0]
pawn.Location = (dest_loc.Location.X, dest_loc.Location.Y, dest_loc.Location.Z + 50)
pawn.Controller.Rotation = (dest_loc.Rotation.Pitch, dest_loc.Rotation.Yaw, dest_loc.Rotation.Roll)
self.MapObjects.clear()
self.RemovedMarker = False
return True
else:
for i in caller.MapObjects:
if i.ClientInteractiveObject is not None:
self.MapObjects.append(i.ClientInteractiveObject)
if i.Vehicle is not None:
self.MapObjects.append(i.Vehicle)
self.RemovedMarker = True
return True
def GameInputPressed(self, input):
if input.Name == "Show FT":
pc = bl2tools.get_player_controller()
pc.PlayGfxMovieDefinition("UI_FastTravelStation.FastTravelStation_ThirdPerson_Definition")
def Enable(self):
def Teleport(caller: unrealsdk.UObject, function: unrealsdk.UFunction, params: unrealsdk.FStruct) -> bool:
return self.get_location(caller, function, params)
unrealsdk.RegisterHook("WillowGame.StatusMenuMapGFxObject.PlaceCustomObjective", "MarkerHook", Teleport)
def Disable(self):
unrealsdk.RemoveHook("WillowGame.StatusMenuMapGFxObject.PlaceCustomObjective", "MarkerHook")