diff --git a/src/Snap.Hutao/Snap.Hutao/IdentityStructs.json b/src/Snap.Hutao/Snap.Hutao/IdentityStructs.json index b1a73ff9..cd8c0019 100644 --- a/src/Snap.Hutao/Snap.Hutao/IdentityStructs.json +++ b/src/Snap.Hutao/Snap.Hutao/IdentityStructs.json @@ -41,6 +41,30 @@ "Equatable": true, "EqualityOperators": true }, + { + "Name": "FurnitureId", + "Documentation": "家具 Id", + "Equatable": true, + "EqualityOperators": true + }, + { + "Name": "FurnitureMakeId", + "Documentation": "家具配方 Id", + "Equatable": true, + "EqualityOperators": true + }, + { + "Name": "FurnitureSuiteId", + "Documentation": "家具套装 Id", + "Equatable": true, + "EqualityOperators": true + }, + { + "Name": "FurnitureTypeId", + "Documentation": "家具分类 Id", + "Equatable": true, + "EqualityOperators": true + }, { "Name": "Level", "Documentation": "等级 1 - 90", diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/FurnitureDeploySurfaceType.cs b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/FurnitureDeploySurfaceType.cs new file mode 100644 index 00000000..bd625992 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/FurnitureDeploySurfaceType.cs @@ -0,0 +1,25 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.Model.Intrinsic; + +internal enum FurnitureDeploySurfaceType +{ + Ground = 0, + Wall = 1, + Ceil = 2, + StackObjPlane = 3, + Door = 4, + Chandelier = 5, + Floor = 6, + WallBody = 7, + Carpet = 8, + LegoRockery = 9, + Stair = 10, + NPC = 11, + Animal = 12, + Apartment = 13, + FurnitureSuite = 14, + Road = 15, + Terrain = 16, +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/FurnitureDeployType.cs b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/FurnitureDeployType.cs new file mode 100644 index 00000000..3da44628 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/FurnitureDeployType.cs @@ -0,0 +1,13 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.Model.Intrinsic; + +internal enum FurnitureDeployType +{ + Interior, + Exterior, + InteriorRoom, + InteriorHall, + Skybox, +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/GroupRecordType.cs b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/GroupRecordType.cs new file mode 100644 index 00000000..90f2aebc --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/GroupRecordType.cs @@ -0,0 +1,14 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.Model.Intrinsic; + +internal enum GroupRecordType +{ + None, + Racing, + Balloon, + Stake, + Seek, + Explosion, +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/SpecialFurnitureType.cs b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/SpecialFurnitureType.cs new file mode 100644 index 00000000..2b4e0ac7 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/SpecialFurnitureType.cs @@ -0,0 +1,26 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.Model.Intrinsic; + +internal enum SpecialFurnitureType +{ + NormalFurniture, + BlockDependent, + FarmField, + TeleportPoint, + Fishpond, + Npc, + Apartment, + FurnitureSuite, + Paimon, + Fish, + CustomBaseFurniture, + CustomNodeFurniture, + VirtualFurniture, + GroupFurniture, + CoopPictureFrame, + ChangeBgmFurniture, + ServerGadget, + Fishtank, +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Achievement/Reward.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Achievement/Reward.cs index 40749e14..7f3d2440 100644 --- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Achievement/Reward.cs +++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Achievement/Reward.cs @@ -8,15 +8,4 @@ namespace Snap.Hutao.Model.Metadata.Achievement; /// /// 奖励 /// -internal sealed class Reward -{ - /// - /// Id - /// - public MaterialId Id { get; set; } - - /// - /// 数量 - /// - public uint Count { get; set; } -} \ No newline at end of file +internal sealed class Reward : IdCount; \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/Furniture.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/Furniture.cs new file mode 100644 index 00000000..8f2ca0ca --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/Furniture.cs @@ -0,0 +1,50 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +using Snap.Hutao.Model.Intrinsic; +using Snap.Hutao.Model.Primitive; + +namespace Snap.Hutao.Model.Metadata.Furniture; + +internal sealed class Furniture +{ + public List Types { get; set; } = default!; + + public FurnitureDeploySurfaceType SurfaceType { get; set; } + + public bool IsSpecial { get; set; } + + public SpecialFurnitureType SpecialType { get; set; } + + public uint Comfort { get; set; } + + public uint Cost { get; set; } + + public uint DiscountCost { get; set; } + + public bool CanFloat { get; set; } + + public bool IsUnique { get; set; } + + public string? ItemIcon { get; set; } + + public string? EffectIcon { get; set; } + + public QualityType RankLevel { get; set; } + + public List GruopUnits { get; set; } = default!; + + public GroupRecordType GroupRecordType { get; set; } + + public List SourceTexts { get; set; } = default!; + + public FurnitureId Id { get; set; } + + public string Name { get; set; } = default!; + + public string Description { get; set; } = default!; + + public string? Icon { get; set; } + + public uint Rank { get; set; } +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/FurnitureMake.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/FurnitureMake.cs new file mode 100644 index 00000000..eb322ef1 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/FurnitureMake.cs @@ -0,0 +1,18 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +using Snap.Hutao.Model.Intrinsic; +using Snap.Hutao.Model.Primitive; + +namespace Snap.Hutao.Model.Metadata.Furniture; + +internal sealed class FurnitureMake +{ + public FurnitureMakeId Id { get; set; } + + public FurnitureId ItemId { get; set; } + + public uint Experience { get; set; } + + public List Materials { get; set; } = default!; +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/FurnitureSuite.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/FurnitureSuite.cs new file mode 100644 index 00000000..e3a75316 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/FurnitureSuite.cs @@ -0,0 +1,26 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +using Snap.Hutao.Model.Intrinsic; +using Snap.Hutao.Model.Primitive; + +namespace Snap.Hutao.Model.Metadata.Furniture; + +internal sealed class FurnitureSuite +{ + public FurnitureSuiteId Id { get; set; } + + public List Types { get; set; } = default!; + + public string Name { get; set; } = default!; + + public string Description { get; set; } = default!; + + public string ItemIcon { get; set; } = default!; + + public string? MapIcon { get; set; } + + public List? FavoriteNpcs { get; set; } + + public List Units { get; set; } = default!; +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/FurnitureType.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/FurnitureType.cs new file mode 100644 index 00000000..54450a5c --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Furniture/FurnitureType.cs @@ -0,0 +1,28 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +using Snap.Hutao.Model.Intrinsic; +using Snap.Hutao.Model.Primitive; + +namespace Snap.Hutao.Model.Metadata.Furniture; + +internal sealed class FurnitureType +{ + public FurnitureTypeId Id { get; set; } + + public uint Category { get; set; } + + public string Name { get; set; } = default!; + + public string Name2 { get; set; } = default!; + + public string TabIcon { get; set; } = default!; + + public FurnitureDeployType SceneType { get; set; } + + public bool BagPageOnly { get; set; } + + public bool IsShowInBag { get; set; } + + public uint Sort { get; set; } +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/IdCount.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/IdCount.cs new file mode 100644 index 00000000..c4d301f8 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/IdCount.cs @@ -0,0 +1,20 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +using Snap.Hutao.Model.Intrinsic; +using Snap.Hutao.Model.Primitive; + +namespace Snap.Hutao.Model.Metadata; + +internal class IdCount +{ + /// + /// Id + /// + public MaterialId Id { get; set; } + + /// + /// 数量 + /// + public uint Count { get; set; } +} \ No newline at end of file