26 lines
1.3 KiB
GDScript
26 lines
1.3 KiB
GDScript
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
|
|
@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
|