コード例 #1
0
        protected override void Subscribed()
        {
            Raise(new SetClearColourEvent(0, 0, 0));
            if (_logicalMap != null)
            {
                return;
            }

            var assetManager = Resolve <IAssetManager>();
            var state        = Resolve <IGameState>();

            _logicalMap = new LogicalMap2D(assetManager, _mapData, state.TemporaryMapChanges, state.PermanentMapChanges);
            var tileset = assetManager.LoadTexture(_logicalMap.TilesetId);

            AttachChild(new ScriptManager());
            AttachChild(new Collider2D(_logicalMap, !_logicalMap.UseSmallSprites));
            var renderable = AttachChild(new MapRenderable2D(_logicalMap, tileset));
            var selector   = AttachChild(new SelectionHandler2D(_logicalMap, renderable));

            selector.HighlightIndexChanged += (sender, x) => renderable.HighlightIndex = x;
            TileSize             = new Vector3(renderable.TileSize, 1.0f);
            _logicalMap.TileSize = renderable.TileSize;


            var movementSettings = _logicalMap.UseSmallSprites ? MovementSettings.Small() : MovementSettings.Large();

            _partyMovement = AttachChild(new PartyCaterpillar(Vector2.Zero, MovementDirection.Right, movementSettings));

            foreach (var npc in _logicalMap.Npcs)
            {
                AttachChild(_logicalMap.UseSmallSprites
                    ? new SmallNpc(npc) as IComponent
                    : new LargeNpc(npc));
            }

            RebuildPartyMembers();
        }
コード例 #2
0
 public Movement2D(MovementSettings settings) => _settings = settings ?? throw new ArgumentNullException(nameof(settings));