Files
2025-01-25 04:38:09 +08:00

94 lines
2.7 KiB
Lua

------------------------------------------------
--作者: gzg
--日期: 2020-02-20
--文件: FSkinPartWrap.lua
--模块: FSkinPartWrap
--描述: 示例类
--注意: 在类中的定义字段,不能赋值为nil,需要赋值为一个值.
------------------------------------------------
--引用
local LuaFSkinPartBase = CS.Thousandto.Plugins.LuaType.LuaFSkinPartBase;
local FGameObjectSoulEquip = require("Logic.FGameObject.FGameObjectSoulEquip")
--在类中的定义字段,不能赋值为nil,需要赋值为一个值.默认可以为0
local FSkinPartWrap = {
--CS父类对象
_SuperObj_ = 0,
--这里如果定义成员,这里必须
_OnCreateFGameObjectHandler = nil;
}
--#region //类继承的固定模板
--构造函数
function FSkinPartWrap:New(parent, code, onLoadFinishedCallBack, isHideModel)
local _m = Utils.DeepCopy(self)
_m._OnCreateFGameObjectHandler = Utils.Handler(self.OnCreateFGameObject, self, nil, true);
_m._SuperObj_ = LuaFSkinPartBase.Create(parent, code, onLoadFinishedCallBack, isHideModel, _m._OnCreateFGameObjectHandler);
_m:_InitBindOverride_();
_m:_InitContent_();
Utils.BuildInheritRel(_m);
return _m
end
function FSkinPartWrap:GetCSObj()
return self._SuperObj_;
end
--绑定Override的方法
function FSkinPartWrap:_InitBindOverride_()
--重载函数的重定义
self._SuperObj_.OnSwitchFGameObjectDelegate = Utils.Handler(self.OnSwitchFGameObject, self, nil, true);
--...
end
--初始化
function FSkinPartWrap:_InitContent_()
--todo
end
--卸载
function FSkinPartWrap:Free()
self._SuperObj_.OnSwitchFGameObjectDelegate = nil;
LuaFSkinPartBase.Destroy(self._SuperObj_);
_m._OnCreateFGameObjectHandler = nil;
Utils.Destory(self);
end
--#endregion
--#region //重载父类的函数
-- <summary>
-- 创建一个GameObject对象
-- </summary>
-- <returns>FGameObjectModel</returns>
function FSkinPartWrap:OnCreateFGameObject(code)
if code == FSkinPartCode.Reserved_1 then
return FGameObjectSoulEquip:New():GetCSObj();
end
return nil;
end
-- <summary>
-- 对象切换处理
-- </summary>
-- <param name="fgameObject">FGameObjectModel</param>
-- <param name="modelType">ModelTypeCode</param>
-- <param name="modelID">int</param>
-- <param name="isShow">bool</param>
-- <returns>FGameObjectModel</returns>
function FSkinPartWrap:OnSwitchFGameObject( fgameObject, modelType, modelID, isShow)
if (fgameObject ~= nil) and self.Code == FSkinPartCode.Wing then
return fgameObject:SwitchModel(modelType, modelID, isShow);
elseif (fgameObject ~= nil) and self.Code == FSkinPartCode.Reserved_1 then
return fgameObject:SwitchModel(modelType, modelID, isShow)
end
end
--#endregion
return FSkinPartWrap