예제 #1
0
        public EditorApp(
            ImGuiRenderer imGuiRenderer,
            GameWindow gameWindow,
            IReadOnlyList <IWindow> windows,
            GameClock gameClock,
            WorldSystem worldSystem,
            EditTileMapState editTileMapState,
            IAssetsDatabase assetsDatabase
            )
        {
            _imGuiRenderer  = imGuiRenderer;
            _windows        = windows;
            _gameClock      = gameClock;
            _worldSystem    = worldSystem;
            _editorAppState = editTileMapState;
            _assetsDatabase = assetsDatabase;

            _imGuiRenderer.RebuildFontAtlas();
            var imGuiIo = ImGui.GetIO();

            imGuiIo.ConfigWindowsMoveFromTitleBarOnly = true;
            imGuiIo.ConfigFlags |= ImGuiConfigFlags.DockingEnable;

            gameWindow.AllowUserResizing = true;

            _worldSystem.CreateNewWorld();
        }
예제 #2
0
 public TilePaletteWindow(ISubscriber subscriber, TileSettings tileSettings, IAssetsDatabase assetsDatabase)
 {
     _tileSettings   = tileSettings;
     _assetsDatabase = assetsDatabase;
     subscriber.Subscribe <ComponentAddedMessage>(Handle);
     subscriber.Subscribe <ComponentRemovedMessage>(Handle);
 }
예제 #3
0
 protected override WorldData CoreRead(
     AssetId assetId,
     byte[] content,
     IAssetsDatabase assetsDatabase,
     ISerializer serializer
     ) =>
 serializer.Deserialize <WorldData>(content);
예제 #4
0
        protected override Sprite CoreRead(
            AssetId assetId,
            byte[] content,
            IAssetsDatabase assetsDatabase,
            ISerializer serializer
            )
        {
            var spriteData    = serializer.Deserialize <SpriteData>(content);
            var texture       = assetsDatabase.Load <Texture2D>(spriteData.TextureName);
            var textureRegion = new TextureRegion2D(texture, spriteData.Region);

            return(new Sprite(textureRegion));
        }
예제 #5
0
        public object Load(AssetId assetId, string assetPath, IAssetsDatabase assetsDatabase, ISerializer serializer)
        {
            using var fs = File.OpenRead(assetPath);

            var texture = Texture2D.FromStream(_graphicsDevice, fs);

            texture.Name = assetId;

            var data = new Color[texture.Width * texture.Height];

            texture.GetData(data);
            for (var i = 0; i != data.Length; ++i)
            {
                data[i] = Color.FromNonPremultiplied(data[i].ToVector4());
            }

            texture.SetData(data);

            return(texture);
        }
예제 #6
0
 public HeroComponentsFactory(IAssetsDatabase assetsDatabase)
 {
     _assetsDatabase = assetsDatabase;
 }
예제 #7
0
 protected abstract T CoreRead(
     AssetId assetId,
     byte[] content,
     IAssetsDatabase assetsDatabase,
     ISerializer serializer
     );
예제 #8
0
        public object Load(AssetId assetId, string assetPath, IAssetsDatabase assetsDatabase, ISerializer serializer)
        {
            var fileContents = File.ReadAllBytes(assetPath);

            return(CoreRead(assetId, fileContents, assetsDatabase, serializer));
        }