Ejemplo n.º 1
0
        public void PaletteTest()
        {
            var pal = Test(assets => assets.LoadPalette(Palette.Toronto2D));

            Assert.Equal(AssetId.From(Palette.Toronto2D), AssetId.FromUInt32(pal.Id));
            Assert.True(pal.IsAnimated);
            Assert.Equal(4, pal.Period);
            Assert.Equal("Palette.Toronto2D", pal.Name);
        }
Ejemplo n.º 2
0
    static void Main()
    {
        AssetSystem.LoadEvents();

        var disk = new FileSystem {
            CurrentDirectory = @"C:\Depot\bb\ualbion"
        };
        var baseExchange     = AssetSystem.SetupSimple(disk, AssetMapping.Global, "Base");
        var testExchange     = AssetSystem.SetupSimple(disk, AssetMapping.Global, "UATestDev");
        var repackedExchange = AssetSystem.SetupSimple(disk, AssetMapping.Global, "Repacked");

        InitialiseAssets();

        var assets = new Dictionary <AssetId, object>
        {
            [AssetId.FromUInt32(PaletteCommon.Id)] = PaletteCommon,
            [Palette1Id]          = Palette1,
            [Tileset1.Tileset.Id] = Tileset1.Tileset,
            [(SpriteId)Tileset1.TilesetGfx.Id] = Tileset1.TilesetGfx,
        };

        void Merge(Dictionary <AssetId, object> newAssets)
        {
            foreach (var kvp in newAssets)
            {
                assets[kvp.Key] = kvp.Value;
            }
        }

        Merge(JumpMap.Build((Map)300, (Map)100, 5, 5));
        Merge(NpcMap.Build((Map)301));
        Merge(FlagTestMap.Build((Map)100));

        (object?asset, AssetInfo?info) LoaderFunc(AssetId id, string lang)
        => assets.TryGetValue(id, out var asset)
                ? (asset, new AssetInfo(new Dictionary <string, object> {
            { AssetProperty.PaletteId, Palette1Id.Id }
        }))
                : (null, null);

        // Create 3D lab graphics
        // Create 3D lab data
        // Create item data
        // Create player graphics
        //Tileset1.TilesetGfx.ToBitmap().Dump();

        testExchange.Resolve <IModApplier>().SaveAssets(LoaderFunc, () => { }, assets.Keys.ToHashSet(), null, null);
        repackedExchange.Resolve <IModApplier>().SaveAssets(LoaderFunc, () => { }, assets.Keys.ToHashSet(), null, null);
        Console.WriteLine("Done");
    }
Ejemplo n.º 3
0
        public void CommonPaletteTest()
        {
            var pal = Test(assets => assets.LoadPalette(Palette.Common));

            Assert.Equal(AssetId.From(Palette.Common), AssetId.FromUInt32(pal.Id));
            Assert.False(pal.IsAnimated);
            Assert.Equal(1, pal.Period);
            Assert.Equal("Palette.Common", pal.Name);
            var at0 = pal.GetPaletteAtTime(0);

            for (int i = 0; i < 192; i++)
            {
                Assert.Equal(0u, at0[i]);
            }
        }
Ejemplo n.º 4
0
        public static QueryEvent Serdes(QueryEvent e, AssetMapping mapping, ISerializer s, TextId textSourceId)
        {
            if (s == null)
            {
                throw new ArgumentNullException(nameof(s));
            }

            e ??= new QueryEvent(textSourceId);
            e.QueryType = s.EnumU8(nameof(QueryType), e.QueryType);
            e.Operation = s.EnumU8(nameof(Operation), e.Operation);
            e.Immediate = s.UInt8(nameof(Immediate), e.Immediate);
            e.Unk4      = s.UInt8(nameof(Unk4), e.Unk4);
            e.Unk5      = s.UInt8(nameof(Unk5), e.Unk5);

            e._value = e.AssetType != AssetType.None && e.AssetType != AssetType.Unknown
                ? AssetId.SerdesU16("Argument", AssetId.FromUInt32(e._value), e.AssetType, mapping, s).ToUInt32()
                : s.UInt16("Argument", (ushort)e._value);

            ApiUtil.Assert(e.Unk4 == 0);
            ApiUtil.Assert(e.Unk5 == 0);

            return(e);
        }