extends Resource class_name PlayerSkin ## A player skin defines the visual appearance of the character. ## Can be either a color tint (for the default procedural model) ## or a full GLB model replacement. @export var skin_name: String = "Default" @export var description: String = "" @export var model_path: String = "" # Path to .glb file, empty = use procedural ## Optional runtime armour/nozzle layer installed on the authored human rig. @export var mecha_theme: String = "" @export var color_tint: Color = Color(0.2, 0.4, 0.8) # For procedural model @export var is_unlocked: bool = true ## The first-person arms use lightweight procedural geometry, but their ## palette and sleeve coverage still identify the selected character. @export_group("Viewmodel Arms") @export var viewmodel_sleeve_color: Color = Color(0.16, 0.34, 0.72) @export var viewmodel_accent_color: Color = Color(0.28, 0.72, 1.0) @export var viewmodel_skin_color: Color = Color(0.96, 0.80, 0.72) @export var viewmodel_glove_color: Color = Color(0.10, 0.11, 0.16) @export var viewmodel_nail_color: Color = Color(0.92, 0.68, 0.72) ## bare: exposed hand + nails; fingerless: glove palm with exposed fingertips; ## glove: fully covered; android: segmented synthetic hand. @export_enum("bare", "fingerless", "glove", "android") var viewmodel_hand_style := "bare" @export_range(0.2, 0.9, 0.01) var viewmodel_sleeve_ratio: float = 0.68