55 lines
1.6 KiB
Plaintext
55 lines
1.6 KiB
Plaintext
extends BasicRoom
|
|
class_name ControlRoom
|
|
@onready var steeringMinigame = $Monitor/SubViewport/SteeringMinigame
|
|
|
|
@onready var lightswitch = $LightSwitch/ButtonLogicToggleLightswitch
|
|
@onready var switchPivot = $LightSwitch/SwitchPivot
|
|
@onready var light = $OmniLight3D
|
|
|
|
@export var controllStick: Node3D
|
|
@export var shipConditionDisplayNumber: int = 100
|
|
@onready var shipConditionNumberLabel = $Monitor_001/SubViewport2/Control/ShipConditionNumber
|
|
@onready var shipConditionNumberLabelSettings = shipConditionNumberLabel.label_settings
|
|
|
|
func _ready() -> void:
|
|
if controllStick:
|
|
controllStick.get_child(0).onPressed.connect(controllLeverPressed)
|
|
steeringMinigame.collision.connect(onAstroidCollision)
|
|
steeringMinigame.controllStick = controllStick
|
|
|
|
func _process(_delta: float) -> void:
|
|
if shipConditionNumberLabel.label_settings:
|
|
if shipConditionDisplayNumber >70:
|
|
shipConditionNumberLabelSettings.font_color = Color.GREEN
|
|
elif shipConditionDisplayNumber <=30:
|
|
shipConditionNumberLabelSettings.font_color = Color.RED
|
|
else:
|
|
shipConditionNumberLabelSettings.font_color = Color.YELLOW
|
|
|
|
if lightswitch.state:
|
|
switchPivot.rotation.x = deg_to_rad(0)
|
|
else:
|
|
switchPivot.rotation.x = deg_to_rad(17)
|
|
|
|
if SpaceshipLogicRef:
|
|
if SpaceshipLogicRef.power:
|
|
light.visible = lightswitch.state
|
|
else:
|
|
light.visible = SpaceshipLogicRef.power
|
|
else:
|
|
return
|
|
|
|
if !SpaceshipLogicRef.shipFuel:
|
|
steeringMinigame.active = false
|
|
|
|
shipConditionNumberLabel.text = str(shipConditionDisplayNumber) + "%"
|
|
|
|
|
|
|
|
func controllLeverPressed():
|
|
steeringMinigame.activate()
|
|
|
|
func onAstroidCollision():
|
|
if SpaceshipLogicRef:
|
|
SpaceshipLogicRef.collisionWithAstroid()
|