81 lines
2.0 KiB
Plaintext
81 lines
2.0 KiB
Plaintext
GOManager_SceneObject = class("GOManager_SceneObject")
|
|
|
|
function GOManager_SceneObject:ctor()
|
|
|
|
end
|
|
|
|
function GOManager_SceneObject:Clear()
|
|
self:SetFinder(nil)
|
|
self:SetSceneAnimation(nil)
|
|
end
|
|
|
|
function GOManager_SceneObject:GetFinder()
|
|
return self.finder
|
|
end
|
|
|
|
function GOManager_SceneObject:SetFinder(finder)
|
|
self.finder = finder
|
|
local sceneObjectMaterials = nil
|
|
if nil ~= finder then
|
|
sceneObjectMaterials = finder.sceneObjectMaterials
|
|
end
|
|
Game.EnviromentManager:SetSceneObjectMaterials(sceneObjectMaterials)
|
|
end
|
|
|
|
function GOManager_SceneObject:ClearFinder(obj)
|
|
if nil ~= self.finder and self.finder.gameObject == obj.gameObject then
|
|
self:SetFinder(nil)
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
function GOManager_SceneObject:GetSceneAnimation()
|
|
return self.sceneAnimation
|
|
end
|
|
|
|
function GOManager_SceneObject:SetSceneAnimation(a)
|
|
self.sceneAnimation = a
|
|
Game.MapManager:SetSceneAnimation(a)
|
|
end
|
|
|
|
function GOManager_SceneObject:ClearSceneAnimation(obj)
|
|
if nil ~= self.sceneAnimation and self.sceneAnimation.gameObject == obj.gameObject then
|
|
self:SetSceneAnimation(nil)
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
function GOManager_SceneObject:RegisterGameObject(obj)
|
|
local objType = obj.type
|
|
local objID = obj.ID
|
|
if Game.GameObjectType.SceneObjectFinder == objType then
|
|
self:SetFinder(obj)
|
|
return true
|
|
elseif Game.GameObjectType.SceneAnimation == objType then
|
|
self:SetSceneAnimation(obj)
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
function GOManager_SceneObject:UnregisterGameObject(obj)
|
|
local objType = obj.type
|
|
if Game.GameObjectType.SceneObjectFinder == objType then
|
|
if not self:ClearFinder(obj) then
|
|
Debug_AssertFormat(false, "UnregisterSceneObjectFinder({0}) failed: {1}", obj, obj.ID)
|
|
return false
|
|
end
|
|
return true
|
|
elseif Game.GameObjectType.SceneAnimation == objType then
|
|
if not self:ClearSceneAnimation(obj) then
|
|
Debug_AssertFormat(false, "UnregisterSceneAnimation({0}) failed: {1}", obj, obj.ID)
|
|
return false
|
|
end
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|