public static EditorTexture Load(string name, CommunityEditorPath path)
        {
            if (collection.ContainsKey(name))
            {
                return(GetStateTexture(name));
            }

            var _path    = string.Empty;
            var multiTex = new MultiTexture();

            switch (path)
            {
            case CommunityEditorPath.Root:
                _path = CommunityEditorFolder + "Resources/";
                break;

            case CommunityEditorPath.Fundamentals:
                _path = FundamentalsEditorFolder + "Resources/";
                break;

            case CommunityEditorPath.Events:
                _path = EventsEditorFolder + "Resources/";
                break;
            }

            multiTex.personal = EditorTexture.Single(AssetDatabase.LoadAssetAtPath <Texture2D>(_path + name + ".png"));
            multiTex.pro      = EditorTexture.Single(AssetDatabase.LoadAssetAtPath <Texture2D>(_path + name + "@Pro.png"));

            collection.Add(name, multiTex);

            return(GetStateTexture(name));
        }
Exemple #2
0
        private static UniTask CreateTexture(ResourceFile file, FbxSemanticsUnsafe <SkinnedVertex> fbx, Model3D model)
        {
            // ↓ main thread --------------------------------------
            var screen = model.GetValidScreen();

            Debug.Assert(Engine.CurrentContext == screen);
            var texture = new MultiTexture();

            model.AddComponent(texture);
            using var textureLoader = texture.GetLoaderContext(fbx.Textures.Length);
            try {
                for (int i = 0; i < fbx.Textures.Length; i++)
                {
                    var texPath = fbx.Textures[i];
                    var path    = texPath.ToString().Replace('\\', '/');
                    Debug.WriteLine(path);
                    continue;

                    // TODO: パスの解決
                    //var name = path;
                    //using var image = await file.ResourceLoader.LoadImageAsync(name, screen.AsyncBack, FrameTiming.Update);
                    //textureLoader.Load(i, image);
                }
            }
            catch {
                (texture as IDisposable).Dispose();
                throw;
            }
            return(UniTask.CompletedTask);
        }
Exemple #3
0
 public TileMap(string name, DrawLayer renderOrder, Vector3 tileSize, uint width, uint height, IPaletteManager paletteManager)
 {
     RenderOrder = renderOrder;
     TileSize    = tileSize;
     Width       = width;
     Height      = height;
     Tiles       = new Tile[width * height];
     Floors      = new MultiTexture("FloorTiles:" + name, paletteManager);
     Walls       = new MultiTexture("WallTiles:" + name, paletteManager);
 }
Exemple #4
0
        public static void CoreSprites(IAssetManager assets, string baseDir)
        {
            var dir = $@"{baseDir}\data\exported\MAIN.EXE";

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            // Dump all core sprites
            var palette = assets.LoadPalette(PaletteId.Inventory);

            for (int i = 0; i < 86; i++)
            {
                var name         = $"{i}_{(CoreSpriteId)i}";
                var coreSprite   = assets.LoadTexture((CoreSpriteId)i);
                var multiTexture = new MultiTexture(name, new DummyPaletteManager(palette));
                multiTexture.AddTexture(1, coreSprite, 0, 0, null, false);
                multiTexture.SavePng(1, 0, $@"{dir}\{name}.bmp");
            }
        }
        public static Texture2D Load(string collection, string name, string rootFileName)
        {
            if (!collections.ContainsKey(collection))
            {
                collections.Add(collection, new Dictionary <string, MultiTexture>());
            }

            if (collections[collection].ContainsKey(name))
            {
                return(GetStateTexture(collection, name));
            }

            var path     = PathOf(rootFileName) + "Resources/Icons/";
            var multiTex = new MultiTexture();

            multiTex.personal = AssetDatabase.LoadAssetAtPath <Texture2D>(path + name + ".png");
            multiTex.pro      = AssetDatabase.LoadAssetAtPath <Texture2D>(path + name + "@Pro.png");

            collections[collection].Add(name, multiTex);

            return(GetStateTexture(collection, name));
        }