Gridarta Editor
ArchetypeSetSpellLoader.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2015 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.model.spells;
21 
27 import org.apache.log4j.Category;
28 import org.apache.log4j.Logger;
29 import org.jetbrains.annotations.NotNull;
30 
35 public class ArchetypeSetSpellLoader<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> {
36 
40  private static final Category LOG = Logger.getLogger(ArchetypeSetSpellLoader.class);
41 
46  @NotNull
48 
54  public ArchetypeSetSpellLoader(@NotNull final GameObjectFactory<G, A, R> gameObjectFactory) {
55  this.gameObjectFactory = gameObjectFactory;
56  }
57 
65  public void load(@NotNull final ArchetypeSet<G, A, R> archetypeSet, final int typeNo, @NotNull final Spells<GameObjectSpell<G, A, R>> spells) {
66  int numSpells = 0;
67  for (final R archetype : archetypeSet.getArchetypes()) {
68  if (archetype.getTypeNo() == typeNo) {
69  spells.add(new GameObjectSpell<>(archetype, gameObjectFactory));
70  numSpells++;
71  }
72  }
73 
74  if (LOG.isInfoEnabled()) {
75  LOG.info("Found " + numSpells + " defined spells from archetypes.");
76  }
77  }
78 
79 }
void load(@NotNull final ArchetypeSet< G, A, R > archetypeSet, final int typeNo, @NotNull final Spells< GameObjectSpell< G, A, R >> spells)
Find all game object that describe spells and add corresponding Spell objects.
Extract spell definitions from an archetype set.
Base package of all Gridarta classes.
Common base class for spells and spell lists.
Definition: Spells.java:33
Reflects a game object (object on a map).
Definition: GameObject.java:36
Abstract factory for creating GameObject instances.
GameObjects are the objects based on Archetypes found on maps.
static final Category LOG
The Logger for printing log messages.
Describes a numbered in-game spell.
Interface that captures similarities between different ArchetypeSet implementations.
final GameObjectFactory< G, A, R > gameObjectFactory
The GameObjectFactory for creating GameObjects.
ArchetypeSetSpellLoader(@NotNull final GameObjectFactory< G, A, R > gameObjectFactory)
Creates a new instance.