"""
HITOBJECTS SYNTAX:
    x,y,type,hitSound,objectParams,hitSample
"""


class SliderParams():
    def __init__(self, curvePoints, curveType="B", slides=1, length=100):
        self.curveType = curveType # B=bézier, L=linear, P=perfect circle 
        self.curvePoints = curvePoints # '|x1:y1|x2:y2,'
        self.slides: int = slides
        self.length: float = length #visual length in osu px
    def __str__(self):
        curvePoints = [f"{x}:{y}" for x, y in self.curvePoints]
        curvePoints = "|".join(curvePoints)
        return f"{self.curveType}|{curvePoints},{self.slides},{self.length},,"

class HitObject():
    """
    Base class for hit objects.
    (x, y) int*int: position tuple
    time: int: time in ms where the object is placed.
    type: int
    hitsound: assumed to be the default (0)
    objectParams: awa (comma separated list)
    hitSample: don't write anything
    """
    def __init__(self, pos=(0, 0), time=0, objectType=0, newCombo=False, objectParams=""):
        self.pos = pos
        self.time = time
        self.objectType = objectType
        self.newCombo = newCombo*2
        self.objectParams = objectParams
    def __str__(self):
        return (f"{self.pos[0]},{self.pos[1]},{self.time},{self.objectType+self.newCombo},0,{self.objectParams},")



def import_hitobjects(filename: str):
    with open(filename, 'r') as file:
        lines = f.readlines()
    for line in lines:
        params = line.split(",")
        if params[3] == 
        




"""
circle = HitObject((120, 120),250,0,1)
slider = HitObject((120, 120), 250, 1, False, SliderParams(((130, 130), (110, 110))))
"""
