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); }
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"); }
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]); } }
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); }