Add base config and project format

This commit is contained in:
luboslenco
2023-02-16 00:02:29 +01:00
parent 250e765e59
commit ca79e2e8b4
30 changed files with 136 additions and 196 deletions
+46
View File
@@ -0,0 +1,46 @@
package arm;
@:structInit class TConfigBase {
// The locale should be specified in ISO 639-1 format: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
// "system" is a special case that will use the system locale
@:optional public var locale: String;
// Window
@:optional public var window_mode: Null<Int>; // window, fullscreen
@:optional public var window_w: Null<Int>;
@:optional public var window_h: Null<Int>;
@:optional public var window_x: Null<Int>;
@:optional public var window_y: Null<Int>;
@:optional public var window_resizable: Null<Bool>;
@:optional public var window_maximizable: Null<Bool>;
@:optional public var window_minimizable: Null<Bool>;
@:optional public var window_vsync: Null<Bool>;
@:optional public var window_frequency: Null<Int>;
@:optional public var window_scale: Null<Float>;
// Render path
@:optional public var rp_supersample: Null<Float>;
@:optional public var rp_ssao: Null<Bool>;
@:optional public var rp_ssr: Null<Bool>;
@:optional public var rp_bloom: Null<Bool>;
@:optional public var rp_motionblur: Null<Bool>;
@:optional public var rp_gi: Null<Bool>;
@:optional public var rp_vignette: Null<Float>;
// Application
@:optional public var version: String;
@:optional public var sha: String; // Commit id
@:optional public var recent_projects: Array<String>; // Recently opened projects
@:optional public var bookmarks: Array<String>; // Bookmarked folders in browser
@:optional public var plugins: Array<String>; // List of enabled plugins
@:optional public var keymap: String; // Link to keymap file
@:optional public var theme: String; // Link to theme file
@:optional public var undo_steps: Null<Int>; // Number of undo steps to preserve
@:optional public var camera_pan_speed: Null<Float>;
@:optional public var camera_zoom_speed: Null<Float>;
@:optional public var camera_rotation_speed: Null<Float>;
@:optional public var zoom_direction: Null<Int>;
@:optional public var wrap_mouse: Null<Bool>;
@:optional public var show_asset_names: Null<Bool>;
@:optional public var touch_ui: Null<Bool>;
@:optional public var layout: Array<Int>;
@:optional public var workspace: Null<Int>;
@:optional public var server: String;
}
+36
View File
@@ -0,0 +1,36 @@
package arm;
@:structInit class TProjectBaseFormat {
@:optional public var version: String;
@:optional public var assets: Array<String>; // texture_assets
@:optional public var is_bgra: Null<Bool>; // Swapped red and blue channels for layer textures
@:optional public var packed_assets: Array<TPackedAsset>;
@:optional public var envmap: String; // Asset name
@:optional public var envmap_strength: Null<Float>;
@:optional public var camera_world: kha.arrays.Float32Array;
@:optional public var camera_origin: kha.arrays.Float32Array;
@:optional public var camera_fov: Null<Float>;
}
@:structInit class TAsset {
public var id: Int;
public var name: String;
public var file: String;
}
@:structInit class TPackedAsset {
public var name: String;
public var bytes: haxe.io.Bytes;
}
@:structInit class TSwatchColor {
public var base: kha.Color;
public var opacity: Float;
public var occlusion: Float;
public var roughness: Float;
public var metallic: Float;
public var normal: kha.Color;
public var emission: Float;
public var height: Float;
public var subsurface: Float;
}