initial commit, hope i didnt push any keys :P
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
extends AudioStreamPlayer
|
||||
class_name AudioArrayPlayer
|
||||
|
||||
signal all_finished()
|
||||
|
||||
export var queue := []
|
||||
|
||||
func stop():
|
||||
queue.clear()
|
||||
.stop()
|
||||
|
||||
func _ready():
|
||||
self.connect("finished", self, "_finished")
|
||||
|
||||
func start():
|
||||
if len(queue) > 0:
|
||||
var new = queue[0]
|
||||
if new is float:
|
||||
get_tree().create_timer(new).connect("timeout", self, "_finish_delay")
|
||||
return
|
||||
stream = new
|
||||
stream.loop
|
||||
if !playing:
|
||||
play()
|
||||
else:
|
||||
emit_signal("all_finished")
|
||||
|
||||
func _finish_delay():
|
||||
next()
|
||||
|
||||
func next():
|
||||
queue.pop_front()
|
||||
start()
|
||||
|
||||
func _finished():
|
||||
next()
|
||||
|
||||
|
||||
func play_all(extra:=[]):
|
||||
add_streams(extra)
|
||||
start()
|
||||
|
||||
func add_stream(new:AudioStream):
|
||||
queue.append(new)
|
||||
|
||||
func add_streams(new:Array):
|
||||
queue.append_array(new)
|
||||
@@ -0,0 +1,11 @@
|
||||
extends Resource
|
||||
class_name Alarm
|
||||
|
||||
export(bool) var active = true # Alarm on or off
|
||||
export(Resource) var moment = Moment.new() # Time when its supposed to go off
|
||||
export(bool) var snooze = true # If alarm is snoozable
|
||||
|
||||
export(bool) var speak_time := true
|
||||
export(bool) var play_music := true
|
||||
export(bool) var override_weather_music = false
|
||||
export(Constants.WEATHER) var weather_music = Constants.WEATHER.SUNNY
|
||||
@@ -0,0 +1,37 @@
|
||||
extends Node
|
||||
|
||||
signal changed()
|
||||
signal saved()
|
||||
signal loaded()
|
||||
|
||||
var flags:Flags
|
||||
|
||||
func _ready():
|
||||
if '--reset' in OS.get_cmdline_args():#or true:
|
||||
flags = Flags.new()
|
||||
save_flags()
|
||||
|
||||
load_flags()
|
||||
if flags == null:
|
||||
flags = Flags.new()
|
||||
flags.connect("changed", self, "_flags_updated")
|
||||
save_flags()
|
||||
|
||||
func load_flags(path:="user://flags.tres"):
|
||||
print("load from ",path)
|
||||
var newflags = ResourceLoader.load(path)
|
||||
if newflags != null:
|
||||
flags = newflags
|
||||
flags.connect("changed", self, "_flags_updated")
|
||||
emit_signal("loaded")
|
||||
# print("ok")
|
||||
|
||||
func save_flags(path:="user://flags.tres"):
|
||||
print("save to ",path)
|
||||
if OK == ResourceSaver.save(path, flags):
|
||||
emit_signal("saved")
|
||||
# print('ok')
|
||||
|
||||
func _flags_updated():
|
||||
emit_signal("changed")
|
||||
save_flags()
|
||||
@@ -0,0 +1,94 @@
|
||||
extends Reference
|
||||
class_name Constants
|
||||
|
||||
static func current_moment()->Moment:
|
||||
var out = Moment.new()
|
||||
var current = Time.get_time_dict_from_system()
|
||||
out.hour = current['hour']
|
||||
out.minute = current['minute']
|
||||
return out
|
||||
|
||||
enum WEATHER { # DO NOT CHANGE THE ORDER OF THIS!!! IT MATTERS IN SOME PLACES!!
|
||||
CLOUDY,
|
||||
FOGGY,
|
||||
PARTLYCLOUDY,
|
||||
RAINY,
|
||||
SNOWY,
|
||||
STORMY,
|
||||
SUNNY,
|
||||
UNKNOWN,
|
||||
}
|
||||
|
||||
static func celsius_to_fahrenheit(celsius:float)->float:
|
||||
return (celsius * (9/5)) + 32
|
||||
|
||||
static func fahrenheit_to_celsius(fahrenheit:float)->float:
|
||||
return (fahrenheit - 32) * 5/9
|
||||
|
||||
static func code_to_weather(code)->int:
|
||||
return weather_codes.get(str(code), WEATHER.UNKNOWN)
|
||||
|
||||
const weather_color := {
|
||||
WEATHER.CLOUDY: Color('9fdbff'),
|
||||
WEATHER.FOGGY: Color('ff8fd5'),
|
||||
WEATHER.PARTLYCLOUDY: Color('52eba1'),
|
||||
WEATHER.RAINY: Color('ff9092'),
|
||||
WEATHER.SNOWY: Color('d58fff'),
|
||||
WEATHER.STORMY: Color('8e92ff'),
|
||||
WEATHER.SUNNY: Color('e9ea29'),
|
||||
WEATHER.UNKNOWN: Color('d0d0d0'),
|
||||
}
|
||||
|
||||
static func weather_to_color(weather:int):
|
||||
var out:Color = weather_color.get(weather, WEATHER.UNKNOWN)
|
||||
return out
|
||||
|
||||
const weather_codes := {
|
||||
'1000': WEATHER.SUNNY,
|
||||
'1003': WEATHER.PARTLYCLOUDY,
|
||||
'1006': WEATHER.CLOUDY,
|
||||
'1009': WEATHER.RAINY,
|
||||
'1030': WEATHER.FOGGY,
|
||||
'1063': WEATHER.RAINY,
|
||||
'1066': WEATHER.SNOWY,
|
||||
'1069': WEATHER.SNOWY,
|
||||
'1072': WEATHER.RAINY,
|
||||
'1087': WEATHER.STORMY,
|
||||
'1114': WEATHER.SNOWY,
|
||||
'1117': WEATHER.SNOWY,
|
||||
'1135': WEATHER.FOGGY,
|
||||
'1147': WEATHER.FOGGY,
|
||||
'1150': WEATHER.RAINY,
|
||||
'1153': WEATHER.RAINY,
|
||||
'1168': WEATHER.RAINY,
|
||||
'1171': WEATHER.RAINY,
|
||||
'1180': WEATHER.RAINY,
|
||||
'1183': WEATHER.RAINY,
|
||||
'1189': WEATHER.RAINY,
|
||||
'1182': WEATHER.RAINY,
|
||||
'1192': WEATHER.RAINY,
|
||||
'1195': WEATHER.RAINY,
|
||||
'1198': WEATHER.RAINY,
|
||||
'1201': WEATHER.RAINY,
|
||||
'1204': WEATHER.SNOWY,
|
||||
'1207': WEATHER.SNOWY,
|
||||
'1210': WEATHER.SNOWY,
|
||||
'1213': WEATHER.SNOWY,
|
||||
'1216': WEATHER.SNOWY,
|
||||
'1222': WEATHER.SNOWY,
|
||||
'1225': WEATHER.SNOWY,
|
||||
'1237': WEATHER.SNOWY,
|
||||
'1240': WEATHER.RAINY,
|
||||
'1243': WEATHER.RAINY,
|
||||
'1246': WEATHER.STORMY,
|
||||
'1249': WEATHER.RAINY,
|
||||
'1252': WEATHER.RAINY,
|
||||
'1255': WEATHER.SNOWY,
|
||||
'1258': WEATHER.SNOWY,
|
||||
'1261': WEATHER.SNOWY,
|
||||
'1264': WEATHER.SNOWY,
|
||||
'1273': WEATHER.STORMY,
|
||||
'1276': WEATHER.STORMY,
|
||||
'1279': WEATHER.STORMY,
|
||||
'1282': WEATHER.STORMY,
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
extends Resource
|
||||
class_name Flags
|
||||
|
||||
export var api_key :String
|
||||
export var location := "Leiden"
|
||||
export var alarms := []
|
||||
export var automatic_dark_mode := false
|
||||
|
||||
export var show_celsius := true
|
||||
export var show_fahrenheit := true
|
||||
export var use_12_hour_clock := true
|
||||
|
||||
export var prevent_sleep_mode := false
|
||||
|
||||
signal alarm_added(alarm)
|
||||
signal alarm_removed(alarm)
|
||||
|
||||
func _changed():
|
||||
emit_signal("changed")
|
||||
|
||||
func add_alarm(new:Alarm)->bool:
|
||||
if not new in alarms:
|
||||
alarms.append(new)
|
||||
emit_signal("alarm_added", new)
|
||||
_changed()
|
||||
return true
|
||||
return false
|
||||
|
||||
func remove_alarm(current:Alarm)->bool:
|
||||
if current in alarms:
|
||||
alarms.erase(current)
|
||||
emit_signal("alarm_removed", current)
|
||||
_changed()
|
||||
return true
|
||||
return false
|
||||
@@ -0,0 +1,37 @@
|
||||
extends Resource
|
||||
class_name Moment
|
||||
|
||||
export(int, 0,22) var hour:int # Hour alarm should go off
|
||||
export(int, 0,59) var minute:int # Minute alarm should go off
|
||||
|
||||
func _init(h:int=0,m:int=0):
|
||||
hour = h
|
||||
minute = m
|
||||
|
||||
func padded_minute()->String:
|
||||
return str(minute).pad_zeros(2)
|
||||
|
||||
func padded_hour()->String:
|
||||
return str(hour).pad_zeros(2)
|
||||
|
||||
func padded_hour_12()->String:
|
||||
return str(hour_12()).pad_zeros(2)
|
||||
|
||||
func hour_12()->int:
|
||||
return hour % 12
|
||||
|
||||
func to_seconds()->int:
|
||||
return hour*60*60 + minute*60
|
||||
|
||||
func am_pm()->String:
|
||||
return 'am' if is_am() else 'pm'
|
||||
|
||||
func is_morning()->bool:
|
||||
# 5 to 12
|
||||
return hour <= 11 and hour >= 5
|
||||
|
||||
func is_am()->bool:
|
||||
return !is_pm()
|
||||
|
||||
func is_pm()->bool:
|
||||
return hour > 11
|
||||
Reference in New Issue
Block a user