256 lines
7.4 KiB
Lua
256 lines
7.4 KiB
Lua
|
|
------------------------------------------------
|
|
--作者: 王圣
|
|
--日期: 2019-04-22
|
|
--文件: ModelViewSystem.lua
|
|
--模块: ModelViewSystem
|
|
--描述: 模型展示
|
|
------------------------------------------------
|
|
--引用
|
|
local ModelViewSystem = {
|
|
ModelId = 0, --模型id
|
|
FashionBodyId = 0, --时装模型id
|
|
FashionWeaponId = 0, --时装武器id
|
|
Scale = 0, --缩放值
|
|
PosY = nil, --Y位置
|
|
ShowType = 0, --展示类型
|
|
Name = "", --展示名字
|
|
IsShowWear = false, --是否显示穿戴
|
|
WearId = 0, --穿戴id
|
|
IsStartTaskOnHide = false, --关闭后是否执行主线
|
|
ExtData = nil, --额外数据
|
|
DelayTime = 0, --打开界面的延时时间
|
|
}
|
|
|
|
--初始化
|
|
function ModelViewSystem:Initialize()
|
|
GameCenter.RegFixEventHandle(LogicLuaEventDefine.EID_EVENT_SHOWMODEL_VIEW, self.OnShowModelEvent, self);
|
|
end
|
|
|
|
--反初始化
|
|
function ModelViewSystem:UnInitialize()
|
|
GameCenter.UnRegFixEventHandle(LogicLuaEventDefine.EID_EVENT_SHOWMODEL_VIEW, self.OnShowModelEvent, self);
|
|
end
|
|
|
|
function ModelViewSystem:Update(dt)
|
|
if self.DelayTime > 0 then
|
|
self.DelayTime = self.DelayTime - dt
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
end
|
|
|
|
--展示模型
|
|
function ModelViewSystem:OnShowModelEvent(obj, sender)
|
|
if obj == nil then
|
|
return
|
|
end
|
|
if type(obj) == "table" then
|
|
local type = obj[1]
|
|
local id = obj[2]
|
|
local scale = obj[3]
|
|
local posY = obj[4]
|
|
local name = ""
|
|
if obj[5] then
|
|
name = obj[5]
|
|
end
|
|
self:ShowModel(type, id, scale, posY, name)
|
|
else
|
|
local type = obj[0]
|
|
local id = obj[1]
|
|
local scale = obj[2]
|
|
local posY = obj[3]
|
|
local name = ""
|
|
if obj[4] then
|
|
name = obj[4]
|
|
end
|
|
self:ShowModel(type, id, scale, posY, name)
|
|
end
|
|
end
|
|
|
|
function ModelViewSystem:ShowModel(mtype,id, scale, posY, name, isShowWear, wearId, info)
|
|
self.IsShowWear = false
|
|
if isShowWear then
|
|
self.IsShowWear = true
|
|
self.WearId = wearId
|
|
end
|
|
self.DelayTime = 0
|
|
self.ExtData = nil
|
|
if info ~= nil and type(info) == "number" then
|
|
self.DelayTime = info
|
|
elseif info ~= nil then
|
|
self.ExtData = info
|
|
end
|
|
if mtype == ShowModelType.Mount then
|
|
self:ShowMount(id,scale,posY, name)
|
|
elseif mtype == ShowModelType.Wing then
|
|
self:ShowWing(id, name)
|
|
elseif mtype == ShowModelType.FaBao then
|
|
self:ShowFaBao(id,scale,posY, name)
|
|
elseif mtype == ShowModelType.Player then
|
|
self:ShowPlayer(id,scale,posY, name)
|
|
elseif mtype == ShowModelType.Fashion then
|
|
self:ShowLpFashion(scale,posY, name)
|
|
elseif mtype == ShowModelType.Pet then
|
|
self:ShowPet(id, scale,posY, name)
|
|
elseif mtype == ShowModelType.LpWeapon then
|
|
self:ShowLpWeapon(id, scale, posY, name)
|
|
elseif mtype == ShowModelType.SoulEquip then
|
|
self:ShowSoulEquip(id, scale, posY, name)
|
|
elseif mtype == ShowModelType.SpecialBox then
|
|
self:ShowSpecialBox(id, scale, posY, name)
|
|
end
|
|
end
|
|
|
|
--展示坐骑模型
|
|
function ModelViewSystem:ShowMount(id, scale, posY, name)
|
|
self.ModelId = id
|
|
self.Scale = scale
|
|
self.PosY = posY
|
|
self.Name = name
|
|
self.ShowType = ShowModelType.Mount
|
|
self.IsShowWear = false
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
--展示翅膀模型
|
|
function ModelViewSystem:ShowWing(id, name)
|
|
self.ModelId = id
|
|
self.Name = name
|
|
self.ShowType = ShowModelType.Wing
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
--展示法宝模型
|
|
function ModelViewSystem:ShowFaBao(id, scale, posY, name)
|
|
self.ModelId = id
|
|
self.Scale = scale
|
|
self.PosY = posY
|
|
self.Name = name
|
|
self.IsShowWear = false
|
|
self.ShowType = ShowModelType.FaBao
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
--展示宝箱模型
|
|
function ModelViewSystem:ShowSpecialBox(id, scale, posY, name)
|
|
self.ModelId = id
|
|
self.Scale = scale
|
|
self.PosY = posY
|
|
self.Name = name
|
|
self.ShowType = ShowModelType.SpecialBox
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
--展示魂甲模型
|
|
function ModelViewSystem:ShowSoulEquip(id, scale, posY, name)
|
|
self.ModelId = id
|
|
self.Scale = scale
|
|
self.PosY = posY
|
|
self.Name = name
|
|
self.ShowType = ShowModelType.SoulEquip
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
--展示角色模型
|
|
function ModelViewSystem:ShowPlayer(id, scale, posY, name)
|
|
self.ModelId = id
|
|
self.Scale = scale
|
|
self.PosY = posY
|
|
self.Name = name
|
|
self.ShowType = ShowModelType.Player
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
--展示武器模型
|
|
function ModelViewSystem:ShowLpWeapon(id, scale, posY, name)
|
|
--LpWeapon
|
|
self.ModelId = id
|
|
self.Scale = scale
|
|
self.PosY = posY
|
|
self.Name = name
|
|
self.ShowType = ShowModelType.LpWeapon
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
--展示时装
|
|
function ModelViewSystem:ShowLpFashion(scale, posY, name)
|
|
self.Scale = scale
|
|
self.PosY = posY
|
|
self.Name = name
|
|
local wearList = GameCenter.NewFashionSystem.WearList
|
|
if wearList == nil then
|
|
return
|
|
end
|
|
local occ = 0
|
|
local player = GameCenter.GameSceneSystem:GetLocalPlayer()
|
|
if player then
|
|
occ = player.IntOcc
|
|
end
|
|
for i = 1,#wearList do
|
|
if wearList[i].Type == NewFashionType.Body then
|
|
--获取时装模型ID
|
|
self.FashionBodyId = RoleVEquipTool.GetFashionBodyModelID(occ, wearList[i].Id)
|
|
elseif wearList[i].Type == NewFashionType.Weapon then
|
|
--获取时装武器ID
|
|
self.FashionWeaponId = RoleVEquipTool.GetFashionWeaponModelID(occ, wearList[i].Id)
|
|
end
|
|
end
|
|
self.ShowType = ShowModelType.Fashion
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
--展示时装
|
|
function ModelViewSystem:ShowFashion(data,scale, posY, name)
|
|
self.Scale = scale
|
|
self.PosY = posY
|
|
self.Name = name
|
|
local occ = 0
|
|
local player = GameCenter.GameSceneSystem:GetLocalPlayer()
|
|
if player then
|
|
occ = player.IntOcc
|
|
end
|
|
local type = data:GetType()
|
|
if type == NewFashionType.Body then
|
|
self.FashionBodyId = data:GetModelId(occ)
|
|
elseif type == NewFashionType.Weapon then
|
|
self.FashionWeaponId = data:GetModelId(occ)
|
|
end
|
|
self.ShowType = ShowModelType.Fashion
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
--展示法宝模型
|
|
function ModelViewSystem:ShowPet(id, scale, posY, name)
|
|
self.ModelId = id
|
|
self.Scale = scale
|
|
self.PosY = posY
|
|
self.Name = name
|
|
self.IsShowWear = false
|
|
self.ShowType = ShowModelType.Pet
|
|
if self.DelayTime <= 0 then
|
|
GameCenter.PushFixEvent(UIEventDefine.UIModelViewForm_OPEN)
|
|
end
|
|
end
|
|
|
|
return ModelViewSystem
|