public static T Create <T>(IDefaultData defaultData, ObjectCreationStrategy objectCreationStrategy) { var type = typeof(T); var defaultValue = type.GetDefaultValue(defaultData); if (defaultValue != null) { return((T)defaultValue); } if (type.IsInterface) { return(InterfaceCreator.Create <T>(type, defaultData, objectCreationStrategy)); } if (type.IsAbstract) { return(AbstractClassCreator.Create <T>(type, defaultData, objectCreationStrategy)); } if (type.IsArray) { return(ArrayCreator.Create <T>(type, defaultData, objectCreationStrategy)); } if (type.IsAction()) { return(ActionCreator.Create <T>(type)); } if (type.IsFunc()) { return(FuncCreator.Create <T>(type, defaultData, objectCreationStrategy)); } if (type.IsTask()) { return(TaskCreator.Create <T>(type, defaultData, objectCreationStrategy)); } return(UnknownTypeCreator.CreateDynamicFrom <T>(type, defaultData, objectCreationStrategy)); }
public override void Update(GameTime gameTime) { // Console.WriteLine(EnemyManager.enemySpawnTimer); #region worldConfigurator if (WorldConfigurator.developerMode) { InterfaceCreator.Update(); return; } #endregion #region buttonChecking foreach (var button in ScreenManager.buttons) { button.UpdateComponent(); button.HandleButtonActions(); } #endregion #region PauseGame if (MouseInput.LastMouseState.MiddleButton == ButtonState.Pressed && MouseInput.MouseState.MiddleButton == ButtonState.Released) { pauseGame = pauseGame == true ? false : true; foreach (var button in ScreenManager.buttons.ToList()) { if (button.Name.Contains("pause")) { button.Visible = pauseGame; } } foreach (var image in ScreenManager.images.ToList()) { if (image.Name.Contains("pause")) { image.Visible = pauseGame; } } } #region level handler Level.Update(); #endregion if (pauseGame || Level.nextLevel) { return; } //level accelerator Level.percentageTillNextLevel += WorldConfigurator.NEXT_LEVEL_INCREMENT * (float)gameTime.ElapsedGameTime.Milliseconds; #endregion #region water Handling ScreenManager.water.Update(); #endregion #region sun handling Sun.Update(gameTime); #endregion #region FoodClicking Actions.clickForFood(); foreach (var food in ScreenManager.food.ToList()) { food.UpdateGameObject(gameTime); food.Update(gameTime); } #endregion #region Fish Wandering & Fish eating & Fish dropping money foreach (var friendly in ScreenManager.friendly.ToList()) { friendly.UpdateEntity(gameTime); } #endregion #region coins clicking foreach (var coin in ScreenManager.coins.ToList()) { coin.UpdateGameObject(gameTime); coin.Update(gameTime); } #endregion #region Enemies Actions.hitEnemy(); EnemyManager.Update(gameTime); foreach (var enemy in ScreenManager.enemies.ToList()) { enemy.UpdateEntity(gameTime); } #endregion #region fonts foreach (var font in ScreenManager.fonts.ToList()) { font.Update(gameTime); } #endregion }
public override void Draw(GameTime gameTime) { ScreenManager.water.DrawToRenderTargets(); #region waterDrawing ScreenManager.water.Draw(); #endregion ScreenManager.Sprites.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); //Console.WriteLine(ScreenManager.getCurrentScreen()); #region WorldConfigurator developer mode if (WorldConfigurator.developerMode) { InterfaceCreator.Draw(); ScreenManager.Sprites.End(); return; } #endregion #region draw Friendly foreach (var friendly in ScreenManager.friendly) { friendly.DrawEntity(); } #endregion #region draw Food foreach (var food in ScreenManager.food) { food.Draw(); } #endregion #region draw Coins if (Player.MoneyBuffer > 0) { Player.Gold += (Player.MoneyBuffer / 2); Player.MoneyBuffer -= (Player.MoneyBuffer / 2); } foreach (var coins in ScreenManager.coins) { coins.Draw(); } #endregion #region draw Enemies foreach (var enemy in ScreenManager.enemies) { enemy.DrawEntity(); } #endregion #region drawBackground foreach (var item in ScreenManager.Textures2D) { { if (item.Key.Equals(ScreenManager.SPRITE_PLAYSCREEN + "test_background")) { // ScreenManager.effect.CurrentTechnique.Passes[0].Apply(); ScreenManager.Sprites.Draw(item.Value, new Rectangle(0, (int)ScreenManager.water.GetHeight(100), item.Value.Width, item.Value.Height * 2), Color.White); // ScreenManager.effect.CurrentTechnique.Passes[1].Apply(); } } } #endregion #region draw Buttons foreach (var button in ScreenManager.buttons) { button.DrawComponent(); } foreach (var image in ScreenManager.images) { image.DrawComponent(); } #endregion #region draw fonts foreach (var font in ScreenManager.fonts) { font.Draw(); } #endregion #region Draw cursor_damage foreach (var item in ScreenManager.Textures2D) { { if (item.Key.Equals(ScreenManager.SPRITES_CURSORS + "cursor_damage")) { if (ScreenManager.enemies.Count > 0) { ScreenManager.Sprites.Draw(item.Value, new Rectangle(MouseInput.getMouseX() - item.Value.Width / 2, MouseInput.getMouseY() - item.Value.Height / 2, item.Value.Width, item.Value.Height), Color.White); } } } } #endregion ScreenManager.Sprites.End(); }