public RogueskivApp(RogueskivAppConfig appConfig) { AppConfig = appConfig; UxContext = new UxContext("Rogueskiv", AppConfig, imagesPath: "imgs", audiosPath: "audio", fontsPath: "fonts"); GameContext = new GameContext(appConfig.MaxGameStepsWithoutRender); LoadingScreenRenderer = new LoadingScreenRenderer(UxContext, AppConfig.FontFile); }
public RogueskivInputHandler( UxContext uxContext, RogueskivGame game, IGameRenderer gameRenderer ) : base( uxContext, game, gameRenderer, controlsByKeys: new Dictionary <int, int> { { (int)SDL_Keycode.SDLK_q, (int)Controls.QUIT }, { (int)SDL_Keycode.SDLK_ESCAPE, (int)Controls.PAUSE }, { (int)SDL_Keycode.SDLK_UP, (int)Controls.UP }, { (int)SDL_Keycode.SDLK_DOWN, (int)Controls.DOWN }, { (int)SDL_Keycode.SDLK_LEFT, (int)Controls.LEFT }, { (int)SDL_Keycode.SDLK_RIGHT, (int)Controls.RIGHT }, { (int)SDL_Keycode.SDLK_w, (int)Controls.UP }, { (int)SDL_Keycode.SDLK_s, (int)Controls.DOWN }, { (int)SDL_Keycode.SDLK_a, (int)Controls.LEFT }, { (int)SDL_Keycode.SDLK_d, (int)Controls.RIGHT }, { (int)SDL_Keycode.SDLK_KP_8, (int)Controls.UP }, { (int)SDL_Keycode.SDLK_KP_2, (int)Controls.DOWN }, { (int)SDL_Keycode.SDLK_KP_4, (int)Controls.LEFT }, { (int)SDL_Keycode.SDLK_KP_6, (int)Controls.RIGHT }, { (int)SDL_Keycode.SDLK_n, (int)Controls.TOGGLE_SOUNDS }, { (int)SDL_Keycode.SDLK_m, (int)Controls.TOGGLE_MUSIC }, }, closeWindowControl: (int)Controls.CLOSE_WINDOW, toggleMusicControl: (int)Controls.TOGGLE_MUSIC ) { }
public FixedPositionRenderer( UxContext uxContext, IRenderizable game, ISpriteProvider <T> spriteProvider ) : base(uxContext, game, spriteProvider) { }
public PlayerMovementEffectPlayer(UxContext uxContext, RogueskivGame game) : base(uxContext, audioFilename: "player_movement") { Game = game; PlayerMovementComp = game.Entities.GetSingleComponent <PlayerComp, BoundedMovementComp>(); PlayerPositionComp = game.Entities.GetSingleComponent <PlayerComp, CurrentPositionComp>(); PlayerLastPositionComp = game.Entities.GetSingleComponent <PlayerComp, LastPositionComp>(); }
public HealthRenderer(UxContext uxContext) : base(uxContext) { Texture = uxContext.GetTexture("player-health-bar.png"); TextureSize = new Size(TEXTURE_WIDTH, TEXTURE_HEIGHT); TextureRect = new SDL_Rect() { x = 0, y = 0, w = TextureSize.Width, h = TextureSize.Height }; }
public PlayerRenderer(UxContext uxContext, IRenderizable game, int playerRadius) : base( uxContext, game, new SingleSpriteProvider <CurrentPositionComp>( uxContext, "player.png", GetPlayerTextureRect(playerRadius) ) ) =>
public TitleRenderer(UxContext uxContext, IntPtr titleFont, IntPtr versionFont) { UxContext = uxContext; TextRenderer = new TextRenderer(uxContext, titleFont); VersionRenderer = new TextRenderer(uxContext, versionFont); var assembly = Assembly.GetExecutingAssembly(); FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location); Version = fileVersionInfo.ProductVersion; }
public PlayerAnimationProvider(UxContext uxContext, int playerRadius) { Texture = uxContext.GetTexture("player-texture.png"); var playerDiameter = playerRadius * 2; MaskTexture = Masks.GetCircleMask(playerRadius); TextureRect = new SDL_Rect { x = 0, y = 0, w = playerDiameter, h = playerDiameter }; OutputSize = new Size(TextureRect.w, TextureRect.h); NonRepeatingTextureSize = 64 - TextureRect.w; }
public TileRenderer(UxContext uxContext, IRenderizable game) : base( uxContext, game, new TileSpriteProvider( uxContext, "floor.png", new Size(1920, 1440) ) ) { }
public PickableRenderer( IGameRenderer gameRenderer, UxContext uxContext, IRenderizable game, IntPtr texture, SDL_Rect textureRect ) : base( uxContext, game, new PickableSpriteProvider <T>(texture, textureRect) ) =>
public RogueskivRenderer( UxContext uxContext, IGameContext gameContext, RogueskivGame game, IRogueskivUxConfig uxConfig, IRogueskivGameConfig gameConfig ) : base(uxContext, game) { RogueskivGame = game; UxContext = uxContext; UxConfig = uxConfig; PlayerPositionComp = game.Entities.GetSingleComponent <PlayerComp, CurrentPositionComp>(); var font = uxContext.GetFont(uxConfig.FontFile, FONT_SIZE); BoardTexture = uxContext.GetTexture("board.png"); var bgrRenderer = new BgrRenderer(uxContext, new Size(1920, 1440)); Renderers.Add(bgrRenderer); Renderers.Add(new BoardRenderer(uxContext, game, BoardTexture)); CompRenderers[typeof(FoodComp)] = new FoodRenderer(this, uxContext, game, BoardTexture); CompRenderers[typeof(TorchComp)] = new TorchRenderer(this, uxContext, game, BoardTexture); CompRenderers[typeof(MapRevealerComp)] = new MapRevealerRenderer(this, uxContext, game, BoardTexture); CompRenderers[typeof(AmuletComp)] = new AmuletRenderer(this, uxContext, game, BoardTexture); CompRenderers[typeof(EnemyComp)] = new EnemyRenderer(uxContext, game); CompRenderers[typeof(FOVComp)] = new FOVRenderer(uxContext); CompRenderers[typeof(PlayerComp)] = new PlayerRenderer(uxContext, game, gameConfig.PlayerRadius); CompRenderers[typeof(HealthComp)] = new HealthRenderer(uxContext); CompRenderers[typeof(TimerComp)] = new GameInfoRenderer( uxContext, gameContext, font, game.Floor, inGameTimeVisible: gameConfig.InGameTimeVisible, realTimeVisible: gameConfig.RealTimeVisible ); CompRenderers[typeof(PopUpComp)] = new PopUpRenderer(uxContext, game, font); PlayerMovementEffectPlayer = new PlayerMovementEffectPlayer(uxContext, game); EffectPlayers.Add(new BounceEffectPlayer(uxContext, game)); EffectPlayers.Add(new TorchPickedEffectPlayer(uxContext, game)); EffectPlayers.Add(new MapRevealerPickedEffectPlayer(uxContext, game)); EffectPlayers.Add(new FoodPickedEffectPlayer(uxContext, game)); EffectPlayers.Add(new WinEffectPlayer(uxContext, game)); EffectPlayers.Add(new EnemyCollidedEffectPlayer(uxContext, game)); EffectPlayers.Add(new StairsUpEffectPlayer(uxContext, game)); EffectPlayers.Add(new StairsDownEffectPlayer(uxContext, game)); EffectPlayers.Add(new DeathEffectPlayer(uxContext, game)); }
public GameInfoRenderer( UxContext uxContext, IGameContext gameContext, IntPtr font, int floor, bool inGameTimeVisible, bool realTimeVisible ) : base(uxContext, font) { Floor = floor; GameTicks = gameContext.GameTicks; InGameTimeVisible = inGameTimeVisible; RealTimeVisible = realTimeVisible; }
public RogueskivMenuRenderer(UxContext uxContext, RogueskivMenu game, string fontFile) : base(uxContext, game) { var titleFont = uxContext.GetFont(fontFile, TITLE_FONT_SIZE); var menuFont = uxContext.GetFont(fontFile, MENU_FONT_SIZE); var smallFont = uxContext.GetFont(fontFile, SMALL_FONT_SIZE); Renderers.Add(new TitleRenderer(uxContext, titleFont, smallFont)); Renderers.Add(new InstructionsRenderer(uxContext, smallFont)); Renderers.Add(new ControlsInfoRenderer(uxContext, game, smallFont)); Renderers.Add(new CustomSeedInputRenderer(uxContext, game, smallFont)); CompRenderers[typeof(MenuOptionComp)] = new MenuOptionRenderer(uxContext, game, menuFont); CompRenderers[typeof(StatsComp)] = new StatsRenderer(uxContext, smallFont); }
public static void SetUxCenter( UxContext uxContext, PointF playerPosition, int friction = 1 ) { var targetCenter = uxContext .ScreenSize.ToPoint().Divide(2) .Substract(playerPosition.ToPoint()); var cameraMovement = targetCenter .Substract(uxContext.Center) .Divide(friction); uxContext.Center = uxContext.Center.Add(cameraMovement); }
public EnemyRenderer(UxContext uxContext, IRenderizable game) : base( uxContext, game, new SingleSpriteProvider <CurrentPositionComp>( uxContext, "enemy.png", new SDL_Rect { x = 0, y = 0, w = 16, h = 16 } ) ) { }
public DownStairsRenderer(UxContext uxContext, IRenderizable game, IntPtr boardTexture) : base( uxContext, game, new SingleSpriteProvider <DownStairsComp>( boardTexture, new SDL_Rect { x = 0, y = BoardComp.TILE_SIZE, w = BoardComp.TILE_SIZE, h = BoardComp.TILE_SIZE } ) ) { }
public UpStairsRenderer(UxContext uxContext, IRenderizable game, IntPtr boardTexture) : base( uxContext, game, new SingleSpriteProvider <UpStairsComp>( boardTexture, new SDL_Rect { x = BoardComp.TILE_SIZE, y = BoardComp.TILE_SIZE, w = UP_STAIRS_SPRITE_WIDTH, h = BoardComp.TILE_SIZE } ) ) { }
public RogueskivMenuInputHandler( UxContext uxContext, RogueskivMenu game, IGameRenderer gameRenderer ) : base( uxContext, game, gameRenderer, controlsByKeys: new Dictionary <int, int> { { (int)SDL_Keycode.SDLK_ESCAPE, (int)Controls.QUIT }, { (int)SDL_Keycode.SDLK_q, (int)Controls.QUIT }, { (int)SDL_Keycode.SDLK_UP, (int)Controls.UP }, { (int)SDL_Keycode.SDLK_DOWN, (int)Controls.DOWN }, { (int)SDL_Keycode.SDLK_LEFT, (int)Controls.LEFT }, { (int)SDL_Keycode.SDLK_RIGHT, (int)Controls.RIGHT }, { (int)SDL_Keycode.SDLK_w, (int)Controls.UP }, { (int)SDL_Keycode.SDLK_s, (int)Controls.DOWN }, { (int)SDL_Keycode.SDLK_a, (int)Controls.LEFT }, { (int)SDL_Keycode.SDLK_d, (int)Controls.RIGHT }, { (int)SDL_Keycode.SDLK_KP_8, (int)Controls.UP }, { (int)SDL_Keycode.SDLK_KP_2, (int)Controls.DOWN }, { (int)SDL_Keycode.SDLK_KP_4, (int)Controls.LEFT }, { (int)SDL_Keycode.SDLK_KP_6, (int)Controls.RIGHT }, { (int)SDL_Keycode.SDLK_RETURN, (int)Controls.ENTER }, { (int)SDL_Keycode.SDLK_RETURN2, (int)Controls.ENTER }, { (int)SDL_Keycode.SDLK_KP_ENTER, (int)Controls.ENTER }, { (int)SDL_Keycode.SDLK_BACKSPACE, (int)Controls.BACKSPACE }, { (int)SDL_Keycode.SDLK_m, (int)Controls.TOGGLE_MUSIC }, }, closeWindowControl: (int)Controls.CLOSE_WINDOW, toggleMusicControl: (int)Controls.TOGGLE_MUSIC, allowRepeats: true ) { Game = game; ControlStates.Add((int)Controls.COPY, false); ControlStates.Add((int)Controls.PASTE, false); }
public FoodRenderer( IGameRenderer gameRenderer, UxContext uxContext, IRenderizable game, IntPtr boardTexture ) : base( gameRenderer, uxContext, game, boardTexture, new SDL_Rect { x = 0, y = 0, w = BoardComp.TILE_SIZE, h = BoardComp.TILE_SIZE } ) { }
public BounceEffectPlayer(UxContext uxContext, RogueskivGame game) : base(uxContext, game, "rock_hit") { }
public LoadingScreenRenderer(UxContext uxContext, string fontPath) : base(uxContext, uxContext.GetFont(fontPath, LOADING_FONT_SIZE)) { }
public InstructionsRenderer(UxContext uxContext, IntPtr font) { UxContext = uxContext; TextRenderer = new TextRenderer(uxContext, font); }
public PopUpRenderer(UxContext uxContext, RogueskivGame game, IntPtr font) : base(uxContext, font) => Game = game;
public StairsDownEffectPlayer(UxContext uxContext, RogueskivGame game) : base(uxContext, game, "stairs_down") { }
public BufferRenderer(UxContext uxContext) { UxContext = uxContext; SetBufferTexture(); }
protected EventEffectPlayer(UxContext uxContext, RogueskivGame game, string audioFilename) : base(uxContext, audioFilename) =>
public FoodPickedEffectPlayer(UxContext uxContext, RogueskivGame game) : base(uxContext, game, "food_picked") { }
public TorchPickedEffectPlayer(UxContext uxContext, RogueskivGame game) : base(uxContext, game, "torch_picked") { }
public MapRevealerPickedEffectPlayer(UxContext uxContext, RogueskivGame game) : base(uxContext, game, "map_revealer_picked") { }
public CustomSeedInputRenderer(UxContext uxContext, RogueskivMenu game, IntPtr font) { Game = game; TextRenderer = new TextRenderer(uxContext, font); }