Exemplo n.º 1
0
        public override void OnFrameworkInitializationCompleted()
        {
            AssetBank.LoadAssets();
            _lifetime = (IClassicDesktopStyleApplicationLifetime)ApplicationLifetime;
            // Initialize suspension hooks.
            var suspension = new AutoSuspendHelper(ApplicationLifetime);

            RxApp.SuspensionHost.CreateNewAppState = () => new MainWindowViewModel();
            //RxApp.SuspensionHost.SetupDefaultSuspendResume(new NewtonsoftJsonSuspensionDriver("appstate.json"));
            RxApp.SuspensionHost.SetupDefaultSuspendResume(new NewtonsoftJsonSuspensionDriver(Program.Settings.ConfigDir + "/appstate.json"));
            suspension.OnFrameworkInitializationCompleted();

            // Read main view model state from disk.
            var state = RxApp.SuspensionHost.GetAppState <MainWindowViewModel>();

            Locator.CurrentMutable.RegisterConstant <IScreen>(state);
            // Register views.
            Locator.CurrentMutable.Register <IViewFor <ChessboardViewModel> >(() => new Chessboard());
            Locator.CurrentMutable.Register <IViewFor <PlayViewModel> >(() => new PlayView());
            Locator.CurrentMutable.Register <IViewFor <LoginViewModel> >(() => new LoginView());
            Locator.CurrentMutable.Register <IViewFor <StartMenuViewModel> >(() => new StartMenuView());
            Locator.CurrentMutable.Register <IViewFor <CreateGameViewModel> >(() => new CreateGameView());
            Locator.CurrentMutable.Register <IViewFor <GameBrowserViewModel> >(() => new GameBrowserView());
            Locator.CurrentMutable.Register <IViewFor <ChessClockViewModel> >(() => new ChessClock());
            Locator.CurrentMutable.Register <IViewFor <CapturedPicesViewModel> >(() => new CapturedPices());
            Locator.CurrentMutable.Register <IViewFor <ChatboxViewModel> >(() => new Chatbox());
            Locator.CurrentMutable.Register <IViewFor <RegisterUserViewModel> >(() => new RegisterUserView());


            // Show the main window.
            new MainWindow {
                DataContext = Locator.Current.GetService <IScreen>()
            }.Show();
            base.OnFrameworkInitializationCompleted();
        }
Exemplo n.º 2
0
        public GameController GetGameController(IOutputter outputter)
        {
            var randomiser         = new Randomiser(new System.Random());
            var scheduleController = new ScheduleController();
            var renderController   = new RenderController(outputter);
            var inputController    = new InputController();
            var saveController     = new SaveController();
            var levelController    = new LevelController();
            var levelFactory       = new LevelFactory(randomiser);
            var itemFactory        = new ItemFactory();
            var stringFormatter    = new StringFormatterSmartFormat();
            var assetBank          = new AssetBank(stringFormatter);
            var eventBus           = new EventBus();
            var eventKeeper        = new EventKeeper(eventBus, assetBank);
            var screenFactory      = new ScreenFactory(eventKeeper);
            var playerFactory      = new PlayerFactory(levelController, eventBus, randomiser, scheduleController);
            var enemyFactory       = new EnemyFactory(eventBus, randomiser, scheduleController);

            return(new GameController(
                       renderController,
                       inputController,
                       saveController,
                       levelController,
                       levelFactory,
                       itemFactory,
                       screenFactory,
                       playerFactory,
                       enemyFactory,
                       eventBus,
                       scheduleController
                       ));
        }
Exemplo n.º 3
0
 public CapturedPice(ChessCom.PiceCapture pc)
 {
     Background = (ChessboardModel.FieldColorLight(pc.Location) ? StyleMirror.WhiteField : StyleMirror.BlackField) ?? new SolidColorBrush(Colors.Pink);
     Pice       = AssetBank.ImageFromPice(pc.Pice);
     Field      = pc.Location;
     PiceType   = pc.Pice;
 }
Exemplo n.º 4
0
 public Context()
 {
     Assets      = new AssetBank();
     Camera      = new Camera(this);
     Renderer    = new Renderer(this);
     Hud         = new HUD(this);
     Random      = new Random();
     FloatRandom = new FloatRandom(Random);
 }
Exemplo n.º 5
0
        public static TimedSpriteSet GetWalkingSpriteSet(AssetBank assets, int personNum, PersonOrientation orientation)
        {
            var b = assets.TimedSprites;

            return(personNum switch {
                1 => orientation switch {
                    PersonOrientation.Down => b.Person1Down,
                    PersonOrientation.Right => b.Person1Right,
                    PersonOrientation.Up => b.Person1Up,
                    PersonOrientation.Left => b.Person1Left,
                },
Exemplo n.º 6
0
        public void ListImportableObjects()
        {
            assetBank = ToolsManager.GetTool("AssetBank").GetComponent <AssetBank>();
            // Add Blender asset bank assets
            GlobalState.blenderBankImportObjectEvent.AddListener(OnBlenderBankObjectImported);
            GlobalState.blenderBankListEvent.AddListener(OnBlenderBank);
            BlenderBankInfo info = new BlenderBankInfo {
                action = BlenderBankAction.ListRequest
            };

            MixerClient.Instance.SendBlenderBank(info);
        }
Exemplo n.º 7
0
        public FormSelectBIGEntry(
            AssetBank bank, LinkDestination link, string current)
            :
            base(current)
        {
            myBank = bank;
            myLink = link;

            FindEntries();

            listViewEntries.Columns.RemoveAt(1);

            listViewEntries.Columns[0].Width =
                listViewEntries.ClientSize.Width;
        }
Exemplo n.º 8
0
        private string GetAssetName(AssetBank bank, string name)
        {
            if (bank.FindEntryBySymbolName(name) == null)
            {
                return(name);
            }

            int id = 1;

            while (id <= 99)
            {
                string tmpName = string.Format("{0}_{1:D2}", name, id);

                if (bank.FindEntryBySymbolName(tmpName) == null)
                {
                    return(tmpName);
                }

                ++id;
            }

            return(null);
        }
Exemplo n.º 9
0
 public EventKeeper(EventBus eventBus, AssetBank assetBank)
 {
     _assetBank = assetBank;
     eventBus.AddListener(this);
 }
Exemplo n.º 10
0
        public static Indexer2D <Tile> LoadIndexer(Texture2D src, AssetBank assets)
        {
            Dictionary <uint, Tile> map = new Dictionary <uint, Tile>
            {
                { 0x005784u, assets.Tiles.HospitalFloor },

                { 0xae9a9au, assets.Tiles.HospitalL },
                { 0xa19a9au, assets.Tiles.HospitalR },
                { 0xe4e4e4u, assets.Tiles.HospitalWindow1 },
                { 0xadadadu, assets.Tiles.HospitalWindow2 },
                { 0x584848u, assets.Tiles.HospitalWall },
                { 0x472f2fu, assets.Tiles.HospitalWallFlat },
                { 0x817676u, assets.Tiles.HospitalTableL },
                { 0x6d6262u, assets.Tiles.HospitalTableR },
                { 0x423535u, assets.Tiles.HospitalDoctor },

                { 0x5a4a34u, assets.Tiles.HouseFloor },
                { 0x185122u, assets.Tiles.HouseStairL },
                { 0x257332u, assets.Tiles.HouseStairR },
                { 0x7bfc91u, assets.Tiles.HouseElevatorL },
                { 0x80ca8cu, assets.Tiles.HouseElevatorR },
                { 0x1dff43u, assets.Tiles.HouseWall },
                { 0x04340cu, assets.Tiles.HouseWallFlat },

                { 0x197653u, assets.Tiles.MarketL },
                { 0x0d5b3du, assets.Tiles.MarketR },
                { 0x534129u, assets.Tiles.MarketIsleL },
                { 0x352714u, assets.Tiles.MarketIsleR },
                { 0xdb8717u, assets.Tiles.MarketCheckoutL },
                { 0xbf740fu, assets.Tiles.MarketCheckoutR },
                { 0xd2a05du, assets.Tiles.MarketWall },
                { 0x9d9d9du, assets.Tiles.MarketFloor },
                { 0xbe781au, assets.Tiles.MarketWallFlat },

                { 0x428b1du, assets.Tiles.ParkGrass },
                { 0x08668cu, assets.Tiles.ParkFence },

                { 0x383838u, assets.Tiles.Cobble },
                { 0x402b2bu, assets.Tiles.Cobble1 },
                { 0x361b1bu, assets.Tiles.Cobble2 },
                { 0x963030u, assets.Tiles.Cobble4 },
                { 0x840a0au, assets.Tiles.Cobble7 },
                { 0xcc7a7au, assets.Tiles.Cobble9 },
                { 0xff3232u, assets.Tiles.Cobble10 },

                { 0x54985fu, assets.Tiles.HouseS1L },
                { 0x3c8348u, assets.Tiles.HouseS1R },
                { 0x917575u, assets.Tiles.HouseS2L },
                { 0x735555u, assets.Tiles.HouseS2R },
                { 0x547359u, assets.Tiles.HouseS3L },
                { 0x3d5e43u, assets.Tiles.HouseS3R },
            };

            Tile[] lHouses =
            {
                assets.Tiles.House1L,
                assets.Tiles.House2L,
                assets.Tiles.House3L,
                assets.Tiles.House4L,
            };

            Tile[] rHouses =
            {
                assets.Tiles.House1R,
                assets.Tiles.House2R,
                assets.Tiles.House3R,
                assets.Tiles.House4R,
            };

            int w = src.Width, h = src.Height;

            uint[] data = new uint[w * h];
            src.GetData(data);
            Random random = new Random();

            Indexer2D <Tile> indexer2D = new Indexer2D <Tile>(w, h);

            for (int col = 0; col < w; col++)
            {
                for (int row = 0; row < h; row++)
                {
                    uint pixel = data[col + row * w] & 0xffffff;
                    pixel = ((pixel & 0xff) << 16) | (pixel & 0xff00) | ((pixel & 0xff0000) >> 16);

                    // special case for left and right side of houses
                    if (pixel == 0xff8787u)
                    {
                        indexer2D[col, row] = lHouses[random.Next(0, lHouses.Length)];
                    }
                    else if (pixel == 0xff0000u)
                    {
                        indexer2D[col, row] = rHouses[random.Next(0, rHouses.Length)];
                    }
                    else
                    {
                        if (!map.ContainsKey(pixel))
                        {
                            indexer2D[col, row] = assets.Tiles.Empty;
                        }
                        else
                        {
                            indexer2D[col, row] = map[pixel];
                        }
                    }
                }
            }

            return(indexer2D);
        }
Exemplo n.º 11
0
 /// <summary>
 /// Attempts to load a shader by extracting the binary blob from the asset bank at the specified resource
 /// </summary>
 /// <param name="sourceBank"></param>
 /// <param name="shaderName"></param>
 public ShaderTechnique(GraphicsDevice device, AssetBank sourceBank, string shaderName)
 {
     _assetPath = shaderName;
 }