Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
 public RendererSystem(IPlayerSystem playerSystem, IActivitySystem activitySystem, IUnifiedRenderer renderer)
 {
     _playerSystem   = playerSystem;
     _activitySystem = activitySystem;
     Renderer        = renderer;
 }
Exemplo n.º 6
0
        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;
        }