TrinityCore
Loading...
Searching...
No Matches
GameObjectAIFactory.h
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef TRINITY_GAMEOBJECTAIFACTORY_H
19
#define TRINITY_GAMEOBJECTAIFACTORY_H
20
21
#include "
ObjectMgr.h
"
22
#include "
SelectableAI.h
"
23
24
class
GameObject
;
25
class
GameObjectAI
;
26
27
template
<
class
REAL_GO_AI,
bool
is_db_allowed = true>
28
struct
GameObjectAIFactory
:
public
SelectableAI
<GameObject, GameObjectAI>
29
{
30
GameObjectAIFactory
(std::string
const
& name)
31
:
SelectableAI
<
GameObject
,
GameObjectAI
>(name,
sObjectMgr
->
GetScriptId
(name, false), is_db_allowed) { }
32
33
GameObjectAI
*
Create
(
GameObject
* go)
const override
34
{
35
return
new
REAL_GO_AI(go,
GetScriptId
());
36
}
37
38
int32
Permit
(
GameObject
const
* go)
const override
39
{
40
return
REAL_GO_AI::Permissible(go);
41
}
42
};
43
44
typedef
SelectableAI<GameObject, GameObjectAI>::FactoryHolderRegistry
GameObjectAIRegistry
;
45
46
#define sGameObjectAIRegistry GameObjectAIRegistry::instance()
47
48
#endif
int32
int32_t int32
Definition
Define.h:150
GameObjectAIRegistry
SelectableAI< GameObject, GameObjectAI >::FactoryHolderRegistry GameObjectAIRegistry
Definition
GameObjectAIFactory.h:44
ObjectMgr.h
sObjectMgr
#define sObjectMgr
Definition
ObjectMgr.h:1885
SelectableAI.h
GameObjectAI
Definition
GameObjectAI.h:44
GameObject
Definition
GameObject.h:166
ObjectRegistry
Definition
ObjectRegistry.h:29
GameObjectAIFactory
Definition
GameObjectAIFactory.h:29
GameObjectAIFactory::Create
GameObjectAI * Create(GameObject *go) const override
Definition
GameObjectAIFactory.h:33
GameObjectAIFactory::GameObjectAIFactory
GameObjectAIFactory(std::string const &name)
Definition
GameObjectAIFactory.h:30
GameObjectAIFactory::Permit
int32 Permit(GameObject const *go) const override
Definition
GameObjectAIFactory.h:38
SelectableAI
Definition
SelectableAI.h:32
SelectableAI< GameObject, GameObjectAI >::GetScriptId
uint32 GetScriptId() const
Definition
SelectableAI.h:38
server
game
AI
GameObjectAIFactory.h
Generated on Sun May 10 2026 02:08:52 for TrinityCore by
1.9.8