/** * eAdventure (formerly <e-Adventure> and <e-Game>) is a research project of the * <e-UCM> research group. * * Copyright 2005-2010 <e-UCM> research group. * * You can access a list of all the contributors to eAdventure at: * http://e-adventure.e-ucm.es/contributors * * <e-UCM> is a research group of the Department of Software Engineering * and Artificial Intelligence at the Complutense University of Madrid * (School of Computer Science). * * C Profesor Jose Garcia Santesmases sn, * 28040 Madrid (Madrid), Spain. * * For more info please visit: <http://e-adventure.e-ucm.es> or * <http://www.e-ucm.es> * * **************************************************************************** * * This file is part of eAdventure, version 2.0 * * eAdventure is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * eAdventure is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with eAdventure. If not, see <http://www.gnu.org/licenses/>. */ package es.eucm.ead.engine.html.platform.injection; import es.eucm.ead.engine.assets.drawables.*; import es.eucm.ead.engine.assets.drawables.shapes.GdxBezierShape; import es.eucm.ead.engine.assets.drawables.shapes.GdxCircleShape; import es.eucm.ead.engine.assets.drawables.shapes.GdxRectangleShape; import es.eucm.ead.engine.assets.fonts.RuntimeFont; import es.eucm.ead.engine.assets.multimedia.RuntimeMusic; import es.eucm.ead.engine.assets.multimedia.RuntimeSound; import es.eucm.ead.engine.gameobjects.debuggers.GhostDebuggerGO; import es.eucm.ead.engine.gameobjects.debuggers.ProfilerDebuggerGO; import es.eucm.ead.engine.gameobjects.debuggers.TrajectoryDebuggerGO; import es.eucm.ead.engine.gameobjects.effects.*; import es.eucm.ead.engine.gameobjects.effects.sceneelement.ChangeColorGO; import es.eucm.ead.engine.gameobjects.events.ConditionEvGO; import es.eucm.ead.engine.gameobjects.events.SceneElementEvGO; import es.eucm.ead.engine.gameobjects.events.TimedEvGO; import es.eucm.ead.engine.gameobjects.events.WatchFieldEvGO; import es.eucm.ead.engine.gameobjects.sceneelements.*; import es.eucm.ead.engine.gameobjects.sceneelements.huds.MouseHudGO; import es.eucm.ead.engine.gameobjects.sceneelements.transitions.*; import es.eucm.ead.engine.gameobjects.trajectories.dijkstra.NodeTrajectoryGO; import es.eucm.ead.engine.gameobjects.trajectories.polygon.PolygonTrajectoryGO; import es.eucm.ead.engine.gameobjects.trajectories.simple.SimpleTrajectoryGO; import es.eucm.ead.engine.gameobjects.widgets.TextAreaGO; import es.eucm.ead.legacyplugins.engine.BubbleNameGO; import es.eucm.ead.legacyplugins.engine.events.TimerGO; import es.eucm.ead.legacyplugins.engine.sceneelements.ClockDisplayGO; import es.eucm.ead.legacyplugins.engine.sceneelements.DynamicSceneGO; import es.eucm.ead.tools.gwt.Injector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class InjectorHelper implements Injector { static private Logger logger = LoggerFactory .getLogger(InjectorHelper.class); private GwtGinInjector ginjector; public InjectorHelper(GwtGinInjector injector) { this.ginjector = injector; } public void setInjector(GwtGinInjector ginjector) { this.ginjector = ginjector; } @SuppressWarnings("unchecked") @Override public <T> T getInstance(Class<T> clazz) { Object o = null; // Effects if (clazz == TogglePauseGO.class) o = ginjector.getTogglePauseGO(); else if (clazz == ShowSceneElementGO.class) o = ginjector.getShowSceneElementGO(); else if (clazz == LoadGameGO.class) o = ginjector.getLoadGameGO(); else if (clazz == RandomGO.class) o = ginjector.getRandomGO(); else if (clazz == ModifyHudGO.class) o = ginjector.getModifyHudGO(); else if (clazz == ChangeSceneGO.class) o = ginjector.getChangeSceneGO(); else if (clazz == RemoveGO.class) o = ginjector.getRemoveGO(); else if (clazz == SpeakGO.class) o = ginjector.getSpeakGO(); else if (clazz == ActorActionsGO.class) o = ginjector.getActorActionsGO(); else if (clazz == PhysicsEffectGO.class) o = ginjector.getPhysicsEffectGO(); else if (clazz == ChangeFieldGO.class) o = ginjector.getChangeFieldGO(); else if (clazz == ChangeChapterGO.class) o = ginjector.getChangeChapterGO(); else if (clazz == DragGO.class) o = ginjector.getDragGO(); else if (clazz == QuitGameGO.class) o = ginjector.getQuitGameGO(); else if (clazz == AddChildGO.class) o = ginjector.getAddChildGO(); else if (clazz == EmptyEffectGO.class) o = ginjector.getEmptyEffectGO(); else if (clazz == WaitUntilGO.class) o = ginjector.getWaitUntilGO(); else if (clazz == QuestionGO.class) o = ginjector.getQuestionGO(); else if (clazz == ToggleSoundGO.class) o = ginjector.getToggleSoundGO(); else if (clazz == PlayMusicGO.class) o = ginjector.getPlayMusicGO(); else if (clazz == HighlightSceneElementGO.class) o = ginjector.getHighlightSceneElementGO(); else if (clazz == ChangeColorGO.class) o = ginjector.getChangeColorGO(); else if (clazz == WaitGO.class) o = ginjector.getWaitGO(); else if (clazz == TriggerMacroGO.class) o = ginjector.getTriggerMacroGO(); else if (clazz == MoveSceneElementGO.class) o = ginjector.getMoveSceneElementGO(); else if (clazz == InterpolationGO.class) o = ginjector.getInterpolationGO(); else if (clazz == ModifyInventoryGO.class) o = ginjector.getModifyInventoryGO(); else if (clazz == AddActorReferenceGO.class) o = ginjector.getAddActorReferenceGO(); else if (clazz == PlaySoundGO.class) o = ginjector.getPlaySoundGO(); else if (clazz == ApplyForceGO.class) o = ginjector.getApplyForceGO(); // SceneElements else if (clazz == WatchFieldEvGO.class) o = ginjector.getWatchFieldEvGO(); else if (clazz == SceneElementEvGO.class) o = ginjector.getSceneElementEvGO(); else if (clazz == TimedEvGO.class) o = ginjector.getTimedEvGO(); else if (clazz == ConditionEvGO.class) o = ginjector.getConditionEvGO(); // Events else if (clazz == GhostDebuggerGO.class) o = ginjector.getGhostDebuggerGO(); else if (clazz == SceneElementGO.class) o = ginjector.getSceneElementGO(); else if (clazz == GroupElementGO.class) o = ginjector.getGroupElementGO(); else if (clazz == MaskTransitionGO.class) o = ginjector.getMaskTransitionGO(); else if (clazz == SceneGO.class) o = ginjector.getSceneGO(); else if (clazz == SceneGO.class) o = ginjector.getSceneGO(); else if (clazz == TrajectoryDebuggerGO.class) o = ginjector.getTrajectoryDebuggerGO(); else if (clazz == ScaleTransitionGO.class) o = ginjector.getScaleTransitionGO(); else if (clazz == VideoSceneGO.class) o = ginjector.getVideoSceneGO(); else if (clazz == DisplaceTransitionGO.class) o = ginjector.getDisplaceTransitionGO(); else if (clazz == ProfilerDebuggerGO.class) o = ginjector.getProfilerDebuggerGO(); else if (clazz == FadeInTransitionGO.class) o = ginjector.getFadeInTransitionGO(); else if (clazz == GhostElementGO.class) o = ginjector.getGhostElementGO(); else if (clazz == MouseHudGO.class) o = ginjector.getMouseHudGO(); else if (clazz == SceneGO.class) o = ginjector.getSceneGO(); else if (clazz == TextAreaGO.class) o = ginjector.getTextAreaGO(); else if (clazz == EmptyTransitionGO.class) o = ginjector.getEmptyTransitionGO(); // Trajectories else if (clazz == SimpleTrajectoryGO.class) o = ginjector.getSimpleTrajectoryGO(); else if (clazz == NodeTrajectoryGO.class) o = ginjector.getNodeTrajectoryGO(); else if (clazz == PolygonTrajectoryGO.class) o = ginjector.getPolygonTrajectoryGO(); // Assets else if (clazz == GdxCircleShape.class) o = ginjector.getGdxCircleShape(); else if (clazz == RuntimeCaption.class) o = ginjector.getRuntimeCaption(); else if (clazz == RuntimeImage.class) o = ginjector.getRuntimeImage(); else if (clazz == RuntimeFont.class) o = ginjector.getRuntimeFont(); else if (clazz == RuntimeStateDrawable.class) o = ginjector.getRuntimeStateDrawable(); else if (clazz == RuntimeFilteredDrawable.class) o = ginjector.getRuntimeFilteredDrawable(); else if (clazz == GdxBezierShape.class) o = ginjector.getGdxBezierShape(); else if (clazz == RuntimeStateDrawable.class) o = ginjector.getRuntimeStateDrawable(); else if (clazz == RuntimeNinePatchImage.class) o = ginjector.getRuntimeNinePatchImage(); else if (clazz == RuntimeFont.class) o = ginjector.getRuntimeFont(); else if (clazz == RuntimeMusic.class) o = ginjector.getRuntimeMusic(); else if (clazz == RuntimeSound.class) o = ginjector.getRuntimeSound(); else if (clazz == RuntimeComposedDrawable.class) o = ginjector.getRuntimeComposedDrawable(); else if (clazz == RuntimeFramesAnimation.class) o = ginjector.getRuntimeFramesAnimation(); else if (clazz == GdxRectangleShape.class) o = ginjector.getGdxRectangleShape(); else if (clazz == RuntimeFilteredDrawable.class) o = ginjector.getRuntimeFilteredDrawable(); // Plugins FIXME else if (clazz == BubbleNameGO.class) o = ginjector.getBubbleNameGO(); else if (clazz == DynamicSceneGO.class) o = ginjector.getDynamicSceneGO(); else if (clazz == ClockDisplayGO.class) o = ginjector.getClockDisplayGO(); else if (clazz == TimerGO.class) o = ginjector.getTimerGO(); if (o == null) { logger .warn("Instance for class {} not defined in ginjector", clazz); } return (T) o; } }