Basic platformer with rope
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
@tool
|
||||
extends ListOptionControl
|
||||
|
||||
func _set_input_device() -> void:
|
||||
var current_setting : Variant = _get_setting(default_value)
|
||||
if current_setting is bool:
|
||||
current_setting = &"Default"
|
||||
AudioServer.input_device = _get_setting(default_value)
|
||||
|
||||
func _add_microphone_audio_stream() -> void:
|
||||
var instance := AudioStreamPlayer.new()
|
||||
instance.stream = AudioStreamMicrophone.new()
|
||||
instance.autoplay = true
|
||||
add_child.call_deferred(instance)
|
||||
instance.ready.connect(_set_input_device)
|
||||
|
||||
func _ready() -> void:
|
||||
if ProjectSettings.get_setting("audio/driver/enable_input", false):
|
||||
show()
|
||||
if AudioServer.input_device.is_empty():
|
||||
_add_microphone_audio_stream()
|
||||
else:
|
||||
_set_input_device()
|
||||
if not Engine.is_editor_hint():
|
||||
option_values = AudioServer.get_input_device_list()
|
||||
else:
|
||||
hide()
|
||||
super._ready()
|
||||
|
||||
func _on_setting_changed(value : Variant) -> void:
|
||||
if value >= option_values.size(): return
|
||||
AudioServer.input_device = option_values[value]
|
||||
super._on_setting_changed(value)
|
||||
|
||||
func _value_title_map(value : Variant) -> String:
|
||||
if value is String:
|
||||
return value
|
||||
else:
|
||||
return super._value_title_map(value)
|
||||
Reference in New Issue
Block a user