ProjectFormat.hx 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package arm;
  2. import zui.Nodes;
  3. import iron.data.SceneFormat;
  4. @:structInit class TProjectFormat {
  5. @:optional public var version: String;
  6. @:optional public var assets: Array<String>; // texture_assets
  7. @:optional public var is_bgra: Null<Bool>; // Swapped red and blue channels for layer textures
  8. @:optional public var packed_assets: Array<TPackedAsset>;
  9. @:optional public var envmap: String; // Asset name
  10. @:optional public var envmap_strength: Null<Float>;
  11. @:optional public var camera_world: kha.arrays.Float32Array;
  12. @:optional public var camera_origin: kha.arrays.Float32Array;
  13. @:optional public var camera_fov: Null<Float>;
  14. @:optional public var swatches: Array<TSwatchColor>;
  15. #if (is_paint || is_sculpt)
  16. @:optional public var brush_nodes: Array<TNodeCanvas>;
  17. @:optional public var brush_icons: Array<haxe.io.Bytes>;
  18. @:optional public var material_nodes: Array<TNodeCanvas>;
  19. @:optional public var material_groups: Array<TNodeCanvas>;
  20. @:optional public var material_icons: Array<haxe.io.Bytes>;
  21. @:optional public var font_assets: Array<String>;
  22. @:optional public var layer_datas: Array<TLayerData>;
  23. @:optional public var mesh_datas: Array<TMeshData>;
  24. @:optional public var mesh_assets: Array<String>;
  25. @:optional public var mesh_icons: Array<haxe.io.Bytes>;
  26. #end
  27. #if is_paint
  28. @:optional public var atlas_objects: Array<Int>;
  29. @:optional public var atlas_names: Array<String>;
  30. #end
  31. #if is_lab
  32. @:optional public var material: TNodeCanvas;
  33. @:optional public var material_groups: Array<TNodeCanvas>;
  34. @:optional public var mesh_data: TMeshData;
  35. @:optional public var mesh_icon: haxe.io.Bytes;
  36. #end
  37. }
  38. @:structInit class TAsset {
  39. public var id: Int;
  40. public var name: String;
  41. public var file: String;
  42. }
  43. @:structInit class TPackedAsset {
  44. public var name: String;
  45. public var bytes: haxe.io.Bytes;
  46. }
  47. @:structInit class TSwatchColor {
  48. public var base: kha.Color;
  49. public var opacity: Float;
  50. public var occlusion: Float;
  51. public var roughness: Float;
  52. public var metallic: Float;
  53. public var normal: kha.Color;
  54. public var emission: Float;
  55. public var height: Float;
  56. public var subsurface: Float;
  57. }
  58. #if (is_paint || is_sculpt)
  59. @:structInit class TLayerData {
  60. public var name: String;
  61. public var res: Int; // Width pixels
  62. public var bpp: Int; // Bits per pixel
  63. public var texpaint: haxe.io.Bytes;
  64. public var uv_scale: Float;
  65. public var uv_rot: Float;
  66. public var uv_type: Int;
  67. public var decal_mat: kha.arrays.Float32Array;
  68. public var opacity_mask: Float;
  69. public var fill_layer: Int;
  70. public var object_mask: Int;
  71. public var blending: Int;
  72. public var parent: Int;
  73. public var visible: Bool;
  74. #if is_paint
  75. public var texpaint_nor: haxe.io.Bytes;
  76. public var texpaint_pack: haxe.io.Bytes;
  77. public var paint_base: Bool;
  78. public var paint_opac: Bool;
  79. public var paint_occ: Bool;
  80. public var paint_rough: Bool;
  81. public var paint_met: Bool;
  82. public var paint_nor: Bool;
  83. public var paint_nor_blend: Bool;
  84. public var paint_height: Bool;
  85. public var paint_height_blend: Bool;
  86. public var paint_emis: Bool;
  87. public var paint_subs: Bool;
  88. #end
  89. }
  90. #end