PGRData/Script/matrix/xentity/xrpgmakergame/object/XRpgMakerGameSteelData.lua
2024-09-01 22:49:41 +02:00

69 lines
No EOL
2.4 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local XRpgMakerGameObject = require("XEntity/XRpgMakerGame/Object/XRpgMakerGameObject")
local type = type
local pairs = pairs
local Vector3 = CS.UnityEngine.Vector3
---钢板对象
---@class XRpgMakerGameSteelData:XRpgMakerGameObject
local XRpgMakerGameSteelData = XClass(XRpgMakerGameObject, "XRpgMakerGameSteelData")
function XRpgMakerGameSteelData:Ctor(id, gameObject)
self.SteelStatus = XRpgMakerGameConfigs.XRpgMakerGameSteelBrokenType.Init
self.IsCheckPlayFlat = false --是否需要根据当前的状态加载对应的特效
end
function XRpgMakerGameSteelData:InitData()
-- local id = self:GetId()
-- local x = XRpgMakerGameConfigs.GetEntityX(id)
-- local y = XRpgMakerGameConfigs.GetEntityY(id)
-- self:UpdatePosition({PositionX = x, PositionY = y})
if not XTool.IsTableEmpty(self.MapObjData) then
self:InitDataByMapObjData(self.MapObjData)
end
self:SetStatus(XRpgMakerGameConfigs.XRpgMakerGameSteelBrokenType.Init)
end
---@param mapObjData XMapObjectData
function XRpgMakerGameSteelData:InitDataByMapObjData(mapObjData)
self.MapObjData = mapObjData
self:UpdatePosition({PositionX = self.MapObjData:GetX(), PositionY = self.MapObjData:GetY()})
end
---@return XMapObjectData
function XRpgMakerGameSteelData:GetMapObjData()
return self.MapObjData
end
--0正常1破损
function XRpgMakerGameSteelData:SetStatus(steelType)
if self.SteelStatus ~= steelType then
self.IsCheckPlayFlat = true
end
self.SteelStatus = steelType
end
function XRpgMakerGameSteelData:GetStatus()
return self.SteelStatus
end
--检查加载哪种特效
function XRpgMakerGameSteelData:CheckPlayFlat()
if not self.IsCheckPlayFlat then
return
end
local status = self:GetStatus()
local modelKey = status == XRpgMakerGameConfigs.XRpgMakerGameSteelBrokenType.Init and
XRpgMakerGameConfigs.ModelKeyMaps.Steel or
XRpgMakerGameConfigs.ModelKeyMaps.SteelBroken
local modelPath = XRpgMakerGameConfigs.GetRpgMakerGameModelPath(modelKey)
self:LoadModel(modelPath)
self.IsCheckPlayFlat = false
if status == XRpgMakerGameConfigs.XRpgMakerGameSteelBrokenType.Flat or status == XRpgMakerGameConfigs.XRpgMakerGameSteelBrokenType.Trap then
XSoundManager.PlaySoundByType(XSoundManager.UiBasicsMusic.RpgMakerGame_Broken, XSoundManager.SoundType.Sound)
end
end
return XRpgMakerGameSteelData