59 lines
2.8 KiB
Lua
59 lines
2.8 KiB
Lua
---
|
|
--- Generated by EmmyLua(https://github.com/EmmyLua)
|
|
--- Created by LT.
|
|
--- DateTime: 2024/8/23 17:10
|
|
---
|
|
MyVehicleSystem = MyVehicleSystem or {}
|
|
MyVehicleSystem.VehicleClassName = "STExtraWheeledVehicle"
|
|
MyVehicleSystem.SpawnVehiclePointPath = UGCGameSystem.GetUGCResourcesFullPath('Asset/Blueprint/SceneActor/BP_VehicleSpawnPoint.BP_VehicleSpawnPoint_C')
|
|
|
|
function MyVehicleSystem.GetVehicleBaseClass()
|
|
if MyVehicleSystem.VehicleBaseClass == nil then
|
|
MyVehicleSystem.VehicleBaseClass = ScriptGameplayStatics.FindClass(MyVehicleSystem.VehicleClassName)
|
|
end
|
|
return MyVehicleSystem.VehicleBaseClass
|
|
end
|
|
|
|
function MyVehicleSystem.GetSpawnVehiclePointClass()
|
|
if MyVehicleSystem.VehicleBaseClass == nil then
|
|
MyVehicleSystem.VehicleBaseClass = UE.LoadClass(MyVehicleSystem.SpawnVehiclePointPath)
|
|
end
|
|
return MyVehicleSystem.VehicleBaseClass
|
|
end
|
|
|
|
--- 保存当前场景中载具的信息
|
|
function MyVehicleSystem.SaveAllVehicleTF(MapIndex)
|
|
MyVehicleSystem.AllVehicleTF = {}
|
|
--local AllVehicles = {}
|
|
--AllVehicles = ScriptGameplayStatics.GetActorsOfClass(UGCGameSystem.GameState, MyVehicleSystem.GetVehicleBaseClass(), {})
|
|
--for i, VehicleInst in pairs(AllVehicles) do
|
|
-- MyVehicleSystem.AllVehicleTF[#MyVehicleSystem.AllVehicleTF + 1] = {VehicleID = VehicleInst.VehicleConfigID, Pos = VehicleInst:K2_GetActorLocation(), Rot = VehicleInst:K2_GetActorRotation(), Inst = VehicleInst}
|
|
--end
|
|
--UGCLogSystem.LogTree("[MyVehicleSystem_SaveAllVehicleTF]", MyVehicleSystem.AllVehicleTF)
|
|
MyVehicleSystem.AllVehicleTF = {}
|
|
local AllVehicleSpawnPoints = ScriptGameplayStatics.GetActorsOfClass(UGCGameSystem.GameState, MyVehicleSystem.GetSpawnVehiclePointClass(), {})
|
|
for i, v in pairs(AllVehicleSpawnPoints) do
|
|
UGCLogSystem.Log("[MyVehicleSystem_SaveAllVehicleTF] VehiclePath:%s", v.VehiclePath)
|
|
if MapIndex == nil or MapIndex == v.MapIndex then
|
|
MyVehicleSystem.AllVehicleTF[#MyVehicleSystem.AllVehicleTF + 1] = {VehiclePath = v.VehiclePath, Pos = v:K2_GetActorLocation(), Rot = v:K2_GetActorRotation(), Inst = nil}
|
|
end
|
|
end
|
|
UGCLogSystem.LogTree("[MyVehicleSystem_SaveAllVehicleTF]", MyVehicleSystem.AllVehicleTF)
|
|
end
|
|
|
|
--- 移除场景中的载具
|
|
function MyVehicleSystem.DestroyAllSavedVehicle()
|
|
for i, v in pairs(MyVehicleSystem.AllVehicleTF) do
|
|
if UE.IsValid(v.Inst) then
|
|
UGCVehicleSystem.DestroySelf(v.Inst)
|
|
end
|
|
end
|
|
end
|
|
|
|
--- 重置当前场景中的载具,需要先调移除
|
|
function MyVehicleSystem.ResetAllSavedVehicle()
|
|
for i, v in pairs(MyVehicleSystem.AllVehicleTF) do
|
|
MyVehicleSystem.AllVehicleTF[i].Inst = UGCVehicleSystem.SpawnVehicleNew(v.VehiclePath, v.Pos, v.Rot, true)
|
|
UGCLogSystem.Log("[MyVehicleSystem_ResetAllSavedVehicle] Inst:%s", tostring(MyVehicleSystem.AllVehicleTF[i].Inst))
|
|
end
|
|
end |