Files
CodenameEngine/source/animateatlas/JSONData.hx
T
2022-11-07 13:34:39 +01:00

158 lines
2.4 KiB
Haxe

package animateatlas;
/**
* All data needed for the json importer + some extra for after parsing.
* Stolen mostly from https://github.com/TomByrne/Starling-Extension-Adobe-Animate-Hx/blob/master/hx/src/starling/extensions/animate/AnimationAtlasData.hx
*/
typedef AnimationData = {
?ANIMATION:SymbolData,
?SYMBOL_DICTIONARY:{
Symbols:Array<SymbolData>
},
?metadata:{
?framerate:Null<Int>
}
}
typedef AtlasData = {
?ATLAS:{
SPRITES:Array<SpriteDummy>
},
?meta:{
app:String,
version:String,
image:String,
format:String,
size:{w:Int, h:Int},
scale:String,
}
}
typedef SpriteDummy = {
SPRITE:SpriteData
}
typedef SpriteData = {
name:String,
x:Int,
y:Int,
w:Int,
h:Int,
rotated:Bool
}
typedef SymbolData = {
?name:String,
SYMBOL_name:String,
?TIMELINE:SymbolTimelineData
}
typedef SymbolTimelineData = {
?sortedForRender:Bool,
LAYERS:Array<LayerData>
}
typedef LayerData = {
Layer_name:String,
Frames:Array<LayerFrameData>,
FrameMap:Map<Int, LayerFrameData>
}
typedef LayerFrameData = {
index:Int,
?name:String,
duration:Int,
elements:Array<ElementData>
}
typedef ElementData = {
?ATLAS_SPRITE_instance:Dynamic,
?SYMBOL_Instance:SymbolInstanceData
}
typedef SymbolInstanceData = {
SYMBOL_name:String,
Instance_Name:String,
bitmap:BitmapPosData,
symbolType:String,
transformationPoint:PointData,
Matrix3D:Matrix3DData,
?DecomposedMatrix:Decomposed3DData,
?color:ColorData,
?loop:String,
firstFrame:Int,
?filters:FilterData
}
typedef ColorData = {
mode:String,
?RedMultiplier:Float,
?greenMultiplier:Float,
?blueMultiplier:Float,
?alphaMultiplier:Float,
?redOffset:Float,
?greenOffset:Float,
?blueOffset:Float,
?AlphaOffset:Float,
?tintColor:String,
?tintMultiplier:Float
}
typedef BitmapPosData = {
name:String,
Position:PointData,
}
typedef PointData = {
x:Int,
y:Int
}
typedef Matrix3DData = {
m00:Float,
m01:Float,
m02:Float,
m03:Float,
m10:Float,
m11:Float,
m12:Float,
m13:Float,
m20:Float,
m21:Float,
m22:Float,
m23:Float,
m30:Float,
m31:Float,
m32:Float,
m33:Float,
}
//tryna add more support gimme a sec
typedef FilterData = {
?BlurFilter: {
blurX:Float,
blurY:Float,
quality:Int
},
?GlowFilter: {
blurX: Float,
blurY: Float,
color: Int,
alpha: Int,
quality: Int,
strength: Int,
knockout: Bool,
inner: Bool
}
}
typedef Decomposed3DData = {
Position:{x:Float, y:Float, z:Float},
Rotation:{x:Float, y:Float, z:Float},
Scaling:{x:Float, y:Float, z:Float},
}