/** * The MIT License (MIT) * * Copyright (c) 2012-2017 DragonBones team and other contributors * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ using System.Collections.Generic; namespace DragonBones { /// /// public abstract class DataParser { protected const string DATA_VERSION_2_3 = "2.3"; protected const string DATA_VERSION_3_0 = "3.0"; protected const string DATA_VERSION_4_0 = "4.0"; protected const string DATA_VERSION_4_5 = "4.5"; protected const string DATA_VERSION_5_0 = "5.0"; protected const string DATA_VERSION_5_5 = "5.5"; protected const string DATA_VERSION = DATA_VERSION_5_5; protected static readonly List DATA_VERSIONS = new List() { DATA_VERSION_5_5, DATA_VERSION_5_0, DATA_VERSION_4_5, DATA_VERSION_4_0, DATA_VERSION_3_0, DATA_VERSION_2_3 }; protected const string TEXTURE_ATLAS = "textureAtlas"; protected const string SUB_TEXTURE = "SubTexture"; protected const string FORMAT = "format"; protected const string IMAGE_PATH = "imagePath"; protected const string WIDTH = "width"; protected const string HEIGHT = "height"; protected const string ROTATED = "rotated"; protected const string FRAME_X = "frameX"; protected const string FRAME_Y = "frameY"; protected const string FRAME_WIDTH = "frameWidth"; protected const string FRAME_HEIGHT = "frameHeight"; protected const string DRADON_BONES = "dragonBones"; protected const string USER_DATA = "userData"; protected const string ARMATURE = "armature"; protected const string BONE = "bone"; protected const string SLOT = "slot"; protected const string CONSTRAINT = "constraint"; protected const string IK = "ik"; protected const string SKIN = "skin"; protected const string DISPLAY = "display"; protected const string ANIMATION = "animation"; protected const string Z_ORDER = "zOrder"; protected const string FFD = "ffd"; protected const string FRAME = "frame"; protected const string TRANSLATE_FRAME = "translateFrame"; protected const string ROTATE_FRAME = "rotateFrame"; protected const string SCALE_FRAME = "scaleFrame"; protected const string DISPLAY_FRAME = "displayFrame"; protected const string COLOR_FRAME = "colorFrame"; protected const string DEFAULT_ACTIONS = "defaultActions"; protected const string ACTIONS = "actions"; protected const string EVENTS = "events"; protected const string INTS = "ints"; protected const string FLOATS = "floats"; protected const string STRINGS = "strings"; protected const string CANVAS = "canvas"; protected const string TRANSFORM = "transform"; protected const string PIVOT = "pivot"; protected const string AABB = "aabb"; protected const string COLOR = "color"; protected const string VERSION = "version"; protected const string COMPATIBLE_VERSION = "compatibleVersion"; protected const string FRAME_RATE = "frameRate"; protected const string TYPE = "type"; protected const string SUB_TYPE = "subType"; protected const string NAME = "name"; protected const string PARENT = "parent"; protected const string TARGET = "target"; protected const string STAGE = "stage"; protected const string SHARE = "share"; protected const string PATH = "path"; protected const string LENGTH = "length"; protected const string DISPLAY_INDEX = "displayIndex"; protected const string BLEND_MODE = "blendMode"; protected const string INHERIT_TRANSLATION = "inheritTranslation"; protected const string INHERIT_ROTATION = "inheritRotation"; protected const string INHERIT_SCALE = "inheritScale"; protected const string INHERIT_REFLECTION = "inheritReflection"; protected const string INHERIT_ANIMATION = "inheritAnimation"; protected const string INHERIT_DEFORM = "inheritDeform"; protected const string BEND_POSITIVE = "bendPositive"; protected const string CHAIN = "chain"; protected const string WEIGHT = "weight"; protected const string FADE_IN_TIME = "fadeInTime"; protected const string PLAY_TIMES = "playTimes"; protected const string SCALE = "scale"; protected const string OFFSET = "offset"; protected const string POSITION = "position"; protected const string DURATION = "duration"; protected const string TWEEN_TYPE = "tweenType"; protected const string TWEEN_EASING = "tweenEasing"; protected const string TWEEN_ROTATE = "tweenRotate"; protected const string TWEEN_SCALE = "tweenScale"; protected const string CLOCK_WISE = "clockwise"; protected const string CURVE = "curve"; protected const string SOUND = "sound"; protected const string EVENT = "event"; protected const string ACTION = "action"; protected const string X = "x"; protected const string Y = "y"; protected const string SKEW_X = "skX"; protected const string SKEW_Y = "skY"; protected const string SCALE_X = "scX"; protected const string SCALE_Y = "scY"; protected const string VALUE = "value"; protected const string ROTATE = "rotate"; protected const string SKEW = "skew"; protected const string ALPHA_OFFSET = "aO"; protected const string RED_OFFSET = "rO"; protected const string GREEN_OFFSET = "gO"; protected const string BLUE_OFFSET = "bO"; protected const string ALPHA_MULTIPLIER = "aM"; protected const string RED_MULTIPLIER = "rM"; protected const string GREEN_MULTIPLIER = "gM"; protected const string BLUE_MULTIPLIER = "bM"; protected const string UVS = "uvs"; protected const string VERTICES = "vertices"; protected const string TRIANGLES = "triangles"; protected const string WEIGHTS = "weights"; protected const string SLOT_POSE = "slotPose"; protected const string BONE_POSE = "bonePose"; protected const string GOTO_AND_PLAY = "gotoAndPlay"; protected const string DEFAULT_NAME = "default"; protected static ArmatureType _GetArmatureType(string value) { switch (value.ToLower()) { case "stage": return ArmatureType.Stage; case "armature": return ArmatureType.Armature; case "movieclip": return ArmatureType.MovieClip; default: return ArmatureType.None; } } protected static DisplayType _GetDisplayType(string value) { switch (value.ToLower()) { case "image": return DisplayType.Image; case "mesh": return DisplayType.Mesh; case "armature": return DisplayType.Armature; case "boundingbox": return DisplayType.BoundingBox; default: return DisplayType.None; } } protected static BoundingBoxType _GetBoundingBoxType(string value) { switch (value.ToLower()) { case "rectangle": return BoundingBoxType.Rectangle; case "ellipse": return BoundingBoxType.Ellipse; case "polygon": return BoundingBoxType.Polygon; default: return BoundingBoxType.Rectangle; } } protected static ActionType _GetActionType(string value) { switch (value.ToLower()) { case "play": return ActionType.Play; case "frame": return ActionType.Frame; case "sound": return ActionType.Sound; default: return ActionType.Play; } } protected static BlendMode _GetBlendMode(string value) { switch (value.ToLower()) { case "normal": return BlendMode.Normal; case "add": return BlendMode.Add; case "alpha": return BlendMode.Alpha; case "darken": return BlendMode.Darken; case "difference": return BlendMode.Difference; case "erase": return BlendMode.Erase; case "hardlight": return BlendMode.HardLight; case "invert": return BlendMode.Invert; case "layer": return BlendMode.Layer; case "lighten": return BlendMode.Lighten; case "multiply": return BlendMode.Multiply; case "overlay": return BlendMode.Overlay; case "screen": return BlendMode.Screen; case "subtract": return BlendMode.Subtract; default: return BlendMode.Normal; } } public DataParser() { } public abstract DragonBonesData ParseDragonBonesData(object rawData, float scale); public abstract bool ParseTextureAtlasData(object rawData, TextureAtlasData textureAtlasData, float scale); } }