Haiotoko/code.py
2023-07-23 19:03:06 +10:00

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)