Files
room_glitch/core/simulation/room_device_definition.gd
T

76 lines
1.1 KiB
GDScript

@tool
class_name RoomDeviceDefinition
extends Resource
enum DeviceType {
GENERIC,
COIN_RELEASE,
LIGHT,
DOOR_LOCK,
DRAWER_LOCK,
BUZZER
}
enum Behavior {
MOMENTARY,
LATCHED
}
@export var device_id: StringName = &""
@export var display_name: String = ""
@export var device_type: DeviceType = DeviceType.GENERIC
@export var behavior: Behavior = Behavior.MOMENTARY
@export var initial_active: bool = false
@export_group("Layout")
@export var position: Vector2 = Vector2.ZERO
const FEET_TO_METERS: float = 0.3048
const METERS_TO_FEET: float = 1.0 / FEET_TO_METERS
#
# Internal/storage representation.
#
@export_storage
var physical_size_m: Vector2 = Vector2(
0.25,
0.25
)
#
# Designer-facing representation.
#
@export_group("Physical Dimensions")
@export_custom(
PROPERTY_HINT_NONE,
"suffix: ft"
)
var physical_size_ft: Vector2:
get:
return (
physical_size_m
* METERS_TO_FEET
)
set(value):
physical_size_m = (
value
* FEET_TO_METERS
)
@export_group("Physical Appearance")
@export var editor_texture: Texture2D = null
@export_range(0.1, 4.0, 0.05)
var editor_texture_scale: float = 1.0