Burner
This commit is contained in:
parent
fcdd47e200
commit
2f2ac7c540
20 changed files with 218 additions and 30 deletions
20
src/burn_area.gd
Normal file
20
src/burn_area.gd
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
extends Area3D
|
||||
|
||||
|
||||
@export var enabled: bool = false
|
||||
@export_range(0,10,0.01,"or_greater","suffix:градус/с") var power: float = 0.1
|
||||
var flasks: Array[DraggableObject] = []
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if enabled:
|
||||
for flask in flasks:
|
||||
flask.get_node("Inventory").mean_temperature += delta * power
|
||||
|
||||
func _on_area_entered(area: Area3D) -> void:
|
||||
if area.is_in_group("flask"):
|
||||
flasks.append(area)
|
||||
|
||||
|
||||
func _on_area_exited(area: Area3D) -> void:
|
||||
if area.is_in_group("flask"):
|
||||
flasks.erase(area)
|
||||
1
src/burn_area.gd.uid
Normal file
1
src/burn_area.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://iv0p3iafoogu
|
||||
13
src/button_gens/burner_button.gd
Normal file
13
src/button_gens/burner_button.gd
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
extends ButtonGenerator
|
||||
|
||||
|
||||
func get_buttons() -> Control:
|
||||
var burn_button: Button = Button.new()
|
||||
burn_button.text = "Потушить спиртовку" if $"../BurnArea".enabled else "Зажечь спиртовку"
|
||||
burn_button.pressed.connect(toggle_burner)
|
||||
|
||||
return burn_button
|
||||
|
||||
func toggle_burner() -> void:
|
||||
$"../BurnArea".enabled = not $"../BurnArea".enabled
|
||||
GuiSignalBus.add_buttons.emit(get_buttons())
|
||||
1
src/button_gens/burner_button.gd.uid
Normal file
1
src/button_gens/burner_button.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://d3v8045s7423j
|
||||
|
|
@ -11,12 +11,16 @@ var dragged: bool = false:
|
|||
if dragged != value:
|
||||
if value:
|
||||
drag_started.emit()
|
||||
GuiSignalBus.clear_buttons.emit()
|
||||
get_viewport().get_camera_3d().start_interaction_seeking(self)
|
||||
if button_generator:
|
||||
GuiSignalBus.add_buttons.emit(button_generator.get_buttons())
|
||||
else:
|
||||
drag_ended.emit()
|
||||
dragged = value
|
||||
|
||||
@export var interactible: Interactible
|
||||
@export var button_generator: ButtonGenerator
|
||||
|
||||
@export var mask: PackedStringArray
|
||||
var contacted_draggables: Array[DraggableObject]
|
||||
|
|
|
|||
7
src/drag/gui_buttons.gd
Normal file
7
src/drag/gui_buttons.gd
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
@abstract
|
||||
extends Node
|
||||
|
||||
class_name ButtonGenerator
|
||||
|
||||
@abstract
|
||||
func get_buttons() -> Control
|
||||
1
src/drag/gui_buttons.gd.uid
Normal file
1
src/drag/gui_buttons.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dvpg3dt8qke2w
|
||||
|
|
@ -4,6 +4,8 @@ extends Node
|
|||
|
||||
signal interaction_confirmed(data: Dictionary)
|
||||
signal log_pushed(log_data: String)
|
||||
signal clear_buttons
|
||||
signal add_buttons(buttons: Control)
|
||||
|
||||
func push(log_data: String):
|
||||
log_pushed.emit(log_data)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@ var mean_temperature: float:
|
|||
set(new_temperature):
|
||||
mean_temperature = new_temperature
|
||||
temperature_changed.emit(new_temperature)
|
||||
update_temperature()
|
||||
if new_temperature != 0:
|
||||
update_temperature()
|
||||
|
||||
var total_amount: float:
|
||||
set(value):
|
||||
|
|
|
|||
18
src/ui/control_buttons_holder.gd
Normal file
18
src/ui/control_buttons_holder.gd
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
extends Control
|
||||
|
||||
|
||||
var current_inspected: Control
|
||||
|
||||
func _ready() -> void:
|
||||
GuiSignalBus.add_buttons.connect(add_buttons)
|
||||
GuiSignalBus.clear_buttons.connect(clear_buttons)
|
||||
|
||||
func clear_buttons() -> void:
|
||||
if current_inspected:
|
||||
current_inspected.queue_free()
|
||||
|
||||
func add_buttons(buttons: Control) -> void:
|
||||
clear_buttons()
|
||||
|
||||
current_inspected = buttons
|
||||
add_child(buttons)
|
||||
1
src/ui/control_buttons_holder.gd.uid
Normal file
1
src/ui/control_buttons_holder.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://457xdl1tsmde
|
||||
Loading…
Add table
Add a link
Reference in a new issue