using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using Amazon.Runtime.Internal.Util; using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace MetaAssets; public class CustomStringEnumConverter : StringEnumConverter { public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) { try { if (reader.TokenType == JsonToken.String) { string? enumText = reader.Value?.ToString(); if (string.IsNullOrEmpty(enumText)) enumText = "None"; return Enum.Parse(objectType, enumText!, true); } } catch (Exception ex) { throw new Exception($"Error converting value {reader.Value?.ToString()} to type '{objectType}'." , ex); } // we don't actually expect to get here. throw new Exception($"Unexpected token {reader.TokenType} when parsing enum."); } } [JsonConverter(typeof(StringEnumConverter))] public enum ESeasonPassType { None = 0, Free = 1, Charged = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum EActionType { NONE = 0, SINGLE = 1, MULTI = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum TaxiType { NONE = 0, INSTANCE = 1, WAYPOINT = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum ERequirementItemType { None = 0, OWNS = 1, EQUIP = 2, USE = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum ERequirementQuestType { None = 0, ING = 1, COMPLETED = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum EQuestType { NONE = 0, EPIC = 1, TUTORIAL = 2, NORMAL = 3, UGQ = 4, } [JsonConverter(typeof(StringEnumConverter))] public enum EAssignType { NONE = 0, MAIL = 1, DIALOGUE = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum EAssignRequireType { NONE = 0, PlayerInitial = 1, Quest_Complete = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum OncePeriodRangeType { NONE = 0, Nolimit = 1, Daily = 2, Weekly = 3, Monthly = 4, } [JsonConverter(typeof(StringEnumConverter))] public enum LandType { NORMAL = 0, CONCERT = 1, FARMING = 2, PUBLICSHARE = 3, RENTAL = 4, } [JsonConverter(typeof(StringEnumConverter))] public enum EExpireType { NONE = 0, TOOL = 1, FIXEDTERM = 2, DELAY = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum EItemLargeType { TOOL = 0, EXPENDABLE = 1, TICKET = 2, RAND_BOX = 3, CLOTH = 4, AVATAR = 5, PROP = 6, TATTOO = 7, BEAUTY = 8, CURRENCY = 9, PRODUCT = 10, SET_BOX = 11, } [JsonConverter(typeof(StringEnumConverter))] public enum EItemSmallType { HANDMIRROR = 0, LIGHTSTICK = 1, FIRECRACKER = 2, LIGHTSABER = 3, REGISTER_ITEM_SOCIAL_ACTION = 4, REGISTER_ITEM_INTERIOR = 5, SAIYAN_AURA = 6, TICKET = 7, RANDOMBOX = 8, SHIRT = 9, DRESS = 10, OUTER = 11, PANTS = 12, GLOVES = 13, RING = 14, BRACELET = 15, BAG = 16, BACKPACK = 17, CAP = 18, MASK = 19, GLASSES = 20, EARRING = 21, NECKLACE = 22, SHOES = 23, SOCKS = 24, ANKLET = 25, OFFICECHAIR = 26, WALLMOUNTTV = 27, OUTDOORCHAIR = 28, TV = 29, VIGNETTE = 30, COOKWARE = 31, KITCHEN_TOOL = 32, LAPTOP = 33, OUTDOOR_GOODS = 34, BED = 35, DECO = 36, FURNITURE = 37, MUSIC = 38, SHELF_S = 39, SHELF_L = 40, SOFA_SINGLE = 41, SOFA_COUCH = 42, LIGHT_CEILING = 43, LIGHT_FLOOR = 44, LIGHT_TABLE = 45, LIGHT_PENDENT = 46, TABLE_S = 47, TABLE_L = 48, TABLE_LIVINGROOM = 49, TABLE_OFFICE = 50, LEISURE_APPLIANCE = 51, INDUCTION = 52, MICROWAVE = 53, LARGE_APPLIANCE = 54, COSMETIC = 55, CHEST = 56, LEFT_ARM = 57, RIGHT_ARM = 58, BACK = 59, LEFT_LEG = 60, RIGHT_LEG = 61, CARTRIDGE = 62, BUFF_DRINK = 63, INTERPHONE = 64, MEGAPHONE = 65, CURRENCY = 66, NFTLAND = 67, SUMMONSTONE = 68, CRAFTING_CLOTHES = 69, CRAFTING_FURNITURE = 70, CRAFTING_COOKING = 71, BEACON_BODY = 72, BEACON_ITEM = 73, RECIPE = 74, QUEST_ASSIGN = 75, QUEST_COOLTIME_RESET = 76, GOLD = 77, SAPPHIRE = 78, CALIUM = 79, RUBY = 80, BEAM = 81, PRODUCT = 82, SPEAKER = 83, LIGHT_LIMITED = 84, MUSICPLAYER = 85, NECKLESS = 86, SHOULDERBAG = 87, LANDCERTIFICATE = 88, SETBOX = 89, } [JsonConverter(typeof(StringEnumConverter))] public enum EUGQAction { NONE = 0, NOTUSE = 1, CLOTH = 2, FOOD = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum ESnapType { Wall = 0, Floor = 1, Ceiling = 2, Free = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum AccessType { Public = 0, Item = 1, Belong = 2, Season = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum VoiceChatType { Normal = 0, All = 1, } [JsonConverter(typeof(StringEnumConverter))] public enum ViewType { Basic = 0, Closure = 1, } [JsonConverter(typeof(StringEnumConverter))] public enum ETileType { Wall = 0, Floor = 1, Ceiling = 2, Object = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum FacialAnimationType { Laugh = 0, Cry = 1, Smile = 2, Sad = 3, Angry = 4, } [JsonConverter(typeof(StringEnumConverter))] public enum ParticlePositionType { Head = 0, Hand_r = 1, Hand_l = 2, Spine_03 = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum CategoryType { Expression = 0, Signs = 1, } [JsonConverter(typeof(StringEnumConverter))] public enum ERecipeType { None = 0, Basic = 1, Add = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum ECVArithmeticOperation { Add = 0, Sub = 1, Mul = 2, Div = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum EGenderType { MALE = 0, FEMALE = 1, ALL = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum ERaceType { LATINO = 0, CAUCASIAN = 1, AFRICAN = 2, NORTHEASTASIAN = 3, SOUTHASIAN = 4, PACIFICISLANDER = 5, ALL = 6, } [JsonConverter(typeof(StringEnumConverter))] public enum ERewardType { None = 0, Currency = 1, Item = 2, Gacha = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum EBuffCategory { None = 0, NORMAL = 1, EVENT = 2, INSTANCE = 3, TOOL = 4, WEAR = 5, } [JsonConverter(typeof(CustomStringEnumConverter))] public enum BuffMotionSetType { NONE = 0, STICK = 1, FOOD = 2, DRINK = 3, GUN = 4, } [JsonConverter(typeof(CustomStringEnumConverter))] public enum BuffHandType { NONE = 0, STICK = 1, GIMBAP = 2, CUP = 3, DEFAULT = 4, } [JsonConverter(typeof(StringEnumConverter))] public enum InstanceType { LF = 0, RF = 1, } [JsonConverter(typeof(StringEnumConverter))] public enum ItemType { DECO = 0, SIGN = 1, NPC = 2, KIOSK = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum WorldAccessType { None = 0, NFT = 1, Item = 2, Public = 3, } [JsonConverter(typeof(StringEnumConverter))] public enum ClaimType { None = 0, Normal = 1, Membership = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum WarpType { NONE = 0, ELEVATOR = 1, FITTINGROOM = 2, MYHOME = 3, RETURN = 4, TAXI = 5, WORLD = 6, BeaconCreateRoom = 7, EDITROOM = 8, INSTANCE = 9, BattleRoom = 10 } [JsonConverter(typeof(StringEnumConverter))] public enum EConditionSelection { USE_STATIC = 0, USE_SOURCE = 1, } [JsonConverter(typeof(StringEnumConverter))] public enum EUGQValueSource { NONE = 0, UGQ_NPC = 1, CLOTH_ITEM = 2, UGQ_ITEM = 3, UGQ_ATTRIBUTE_DEFINITION = 4, RANGE_1_30 = 5, UGQ_SOCIAL_ACTION = 6, } [JsonConverter(typeof(StringEnumConverter))] public enum ECVToolMotionType { STICK = 0, DRINK = 1, GUN = 2, FOOD = 3, LANTERN = 4, MICROPHONE = 5, QUESTCAM = 6, SMARTCAM = 7, PHONE = 8, DEFAULT = 9, } [JsonConverter(typeof(StringEnumConverter))] public enum ECVToolHandGripType { STICK = 0, CUP = 1, GUN = 2, GIMBAP = 3, LANTERN = 4, YELLOWCARD = 5, MICROPHONE = 6, QUESTCAM = 7, SMARTCAM = 8, DRINK = 9, CAMERA = 10, DEFAULT = 11, } [JsonConverter(typeof(StringEnumConverter))] public enum ActivateFuncType { NONE = 0, VOICE = 1, PHOTO = 2, MUSICBOX = 3, MUSICPLAYER = 4, } [JsonConverter(typeof(StringEnumConverter))] public enum SizeType { NONE = 0, SMALL = 1, MEDIUM = 2, LARGE = 3, GIANT = 4, } [JsonConverter(typeof(StringEnumConverter))] public enum EBuffEndCondition { NONE = 0, ACTIONSTEP = 1, TRIGGER = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum EBuffEndExecution { NONE = 0, GETBUFF = 1, } [JsonConverter(typeof(StringEnumConverter))] public enum EditorType { NONE = 0, CALIVERSE = 1, USER = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum EBattleObjectType { None = 0, Weapon = 1, Pod_Combat = 2, Pod_Box = 3, Buff = 4, } [JsonConverter(typeof(StringEnumConverter))] public enum ECombatPodType { None = 0, Storage = 1, Pod = 2, } [JsonConverter(typeof(StringEnumConverter))] public enum EPropSmallType { None = 0, Default = 1, Cooking = 2, FURNITURE = 3, CLOTHES = 4, EXIT = 5, SHORTCUT = 6, PLAY = 7, } [JsonConverter(typeof(StringEnumConverter))] public enum EGameObjectType { None = 0, Weapon = 1, Pod_Combat = 2, Pod_Box = 3, Buff = 4, Save_Point = 5, }