public void Initialise(GameLoopEventHandler onUpdate, GameLoopEventHandler onRender, IEntityDataProvider graphicsDataProvider) { BLT.Open(); _update = onUpdate; _render = onRender; var config = $"window: size={Configuration.InitialWidth * TILE_SPACING}x{Configuration.InitialHeight * TILE_SPACING}, cellsize=4x4, title='{Configuration.WindowTitle}'"; BLT.Set(config); BLT.Set("input: precise-mouse=false, filter=[keyboard,mouse+];"); BLT.Set("text font: Images/Tileset/Andux_sleipnir_8x12_tf.png, codepage=437, size=8x12, spacing=2x3;"); BLT.Set("textLarge font: Images/Tileset/Andux_sleipnir_8x12_tf.png, codepage=437, size=8x12, resize=16x24, resize-filter=nearest, spacing=4x6;"); BLT.Set("textXLarge font: Images/Tileset/Andux_sleipnir_8x12_tf.png, codepage=437, size=8x12, resize=32x48, resize-filter=nearest, spacing=8x12;"); _spriteManager = SetUpSpriteManager(graphicsDataProvider); List <IDataRogueControlRenderer> controlRenderers = BLTControlRenderer.DefaultControlRenderers; controlRenderers.AddRange(Configuration.AdditionalControlRenderers); Renderer = new BLTTilesUnifiedRenderer(controlRenderers, _spriteManager, Configuration); BLT.Refresh(); }
public void SetUp() { _targetingData = GetTargetingData(); _callbackTarget = null; _callbackHappened = false; _renderer = Substitute.For <IUnifiedRenderer>(); var rendererSystem = Substitute.For <IRendererSystem>(); rendererSystem.Renderer.Returns(_renderer); var playerSystem = Substitute.For <IPlayerSystem>(); _activityStack = new ActivityStack(); _ioConfig = new IOSystemConfiguration(); _activityStack.Push(new GameplayActivity(new Rectangle(0, 0, 0, 0), new Padding(0), _ioConfig, playerSystem)); _activitySystem = Substitute.For <IActivitySystem>(); _positionSystem = Substitute.For <IPositionSystem>(); _targetingSystem = Substitute.For <ITargetingSystem>(); _systemContainer = Substitute.For <ISystemContainer>(); _systemContainer.ActivitySystem.Returns(_activitySystem); _systemContainer.PositionSystem.Returns(_positionSystem); _systemContainer.RendererSystem.Returns(rendererSystem); _systemContainer.TargetingSystem.Returns(_targetingSystem); SetTargetableCells(new MapCoordinate("Map", 1, 0)); _targetingActivity = new TargetingActivity(_activitySystem.DefaultPosition, _activitySystem.DefaultPadding, _targetingData, _callback, _systemContainer, new MapCoordinate("Map", 0, 0), _ioConfig); _activityStack.Push(_targetingActivity); }
public void HandleMouseInput(MouseData mouse) { var x = mouse.X; var y = mouse.Y; if (_activitySystem.Peek() is GameplayActivity activity && _systemContainer.PlayerSystem.Player != null) { IUnifiedRenderer renderer = _systemContainer.RendererSystem.Renderer; var hoveredLocation = renderer.GetGameplayMapCoordinateFromMousePosition(_systemContainer.RendererSystem.CameraPosition, x, y); SetHoveredLocation(hoveredLocation); } }
public SystemContainer( EntityDataProviders entityDataProviderContainer = null, IUnifiedRenderer renderer = null, IList <Type> additionalComponentTypes = null ) { if (entityDataProviderContainer == null) { entityDataProviderContainer = new EntityDataProviders(); } _prototypeEntityDataProvider = entityDataProviderContainer.PrototypeEntityDataProvider ?? new NullDataProvider(); _keyBindingsDataProvider = entityDataProviderContainer.KeyBindingsDataProvider ?? new NullDataProvider(); _worldEntityDataProvider = entityDataProviderContainer.WorldEntityDataProvider ?? new NullDataProvider(); _playerEntityDataProvider = entityDataProviderContainer.PlayerEntityDataProvider ?? new NullDataProvider(); _vaultDataProvider = entityDataProviderContainer.VaultDataProvider ?? new NullDataProvider(); _renderer = renderer; _additionalComponentTypes = additionalComponentTypes; }
public RendererSystem(IPlayerSystem playerSystem, IActivitySystem activitySystem, IUnifiedRenderer renderer) { _playerSystem = playerSystem; _activitySystem = activitySystem; Renderer = renderer; }
private void CreateAndRegisterSystems(EntityDataProviders entityDataProviders, IList <Type> additionalComponentTypes, IUnifiedRenderer renderer, string seed, IOSystemConfiguration ioSystemConfiguration) { SystemContainer = new SystemContainer(entityDataProviders, renderer, additionalComponentTypes); SystemContainer.CreateSystems(seed); SystemContainer.RendererSystem.IOSystemConfiguration = ioSystemConfiguration; SystemContainer.ActivitySystem.QuitAction = Quit; }