96 lines
2.1 KiB
Python
96 lines
2.1 KiB
Python
import os
|
|
import sys
|
|
import time
|
|
import json
|
|
import alarm
|
|
import board
|
|
import storage
|
|
import displayio
|
|
import supervisor
|
|
import bitmaptools
|
|
import microcontroller
|
|
import adafruit_imageload
|
|
|
|
import menu
|
|
import entity
|
|
import animate
|
|
import selector
|
|
import buttonBus
|
|
|
|
|
|
def importer(path):
|
|
sys.path.append(path)
|
|
for entry in os.listdir(path):
|
|
if entry[-3:] == ".py":
|
|
string = f'import {entry}'[:-3]
|
|
exec (string)
|
|
elif "." not in entry:
|
|
importer(path+'/'+entry)
|
|
|
|
importer("/Activities")
|
|
sam = "xyz"
|
|
test.printit()
|
|
|
|
#screen /dev/ttyACM0 115200
|
|
|
|
#setup
|
|
board.DISPLAY.root_group.hidden = False
|
|
board.DISPLAY.rotation = 90
|
|
|
|
try:
|
|
storage.remount("/", False)
|
|
except RuntimeError as E:
|
|
print("Failed Mount")
|
|
|
|
root = displayio.Group()
|
|
|
|
bgGroup = displayio.Group()
|
|
bgItemGroup = displayio.Group()
|
|
haioGroup = displayio.Group()
|
|
fgItemGroup = displayio.Group()
|
|
menuGroup = displayio.Group()
|
|
selectorGroup = displayio.Group()
|
|
|
|
board.DISPLAY.show(root)
|
|
|
|
root.insert(0, bgGroup)
|
|
root.insert(1, bgItemGroup)
|
|
root.insert(2, haioGroup)
|
|
root.insert(3, fgItemGroup)
|
|
root.insert(4, menuGroup)
|
|
root.insert(5, selectorGroup)
|
|
|
|
wakeTime = time.monotonic()
|
|
|
|
|
|
entity = entity.entity()
|
|
entity.importSave()
|
|
|
|
#Load Settings
|
|
with open("/Save/settings.json", "r") as reader:
|
|
settings = json.loads(reader.read())
|
|
|
|
timeoutAmount = settings["timeout"]
|
|
timeout = round(time.monotonic() + timeoutAmount, 1)
|
|
nextWake = max(entity.character["nextEventTime"], entity.character["nextEvloutionTime"], entity.character["death"]) - entity.character["age"]
|
|
|
|
|
|
def checkTimeout():
|
|
# print("Time: " + str(round(time.monotonic(), 1)) + " Timeout: " + str(timeout))
|
|
if round(time.monotonic(), 1) == timeout:
|
|
entity.character["age"] += int(time.monotonic() - wakeTime)
|
|
# entity.update()
|
|
buttonBus.button1.deinit()
|
|
pin_alarm = alarm.pin.PinAlarm(pin=board.D1, value=True, pull=True)
|
|
time.sleep(0.5)
|
|
alarm.exit_and_deep_sleep_until_alarms(pin_alarm)
|
|
|
|
|
|
home = home.home(root, entity)
|
|
|
|
#System Loop
|
|
while True:
|
|
checkTimeout()
|
|
if home.looper():
|
|
timeout = round(time.monotonic() + timeoutAmount, 1)
|