diff --git a/WireChem.py b/WireChem.py index 7d8c31c..8dbde6e 100644 --- a/WireChem.py +++ b/WireChem.py @@ -32,12 +32,14 @@ from pyglet import image from os.path import expanduser ''' *********************************************************************************************** ''' -''' Fonctions d'initialisation ''' +''' Fonctions de chargement ''' +#Enregistre les données utilisateurs def sync(): global Uworlds,finished write(gethome()+"/dbdata",["Uworlds","finished"]) +#Vérifie l'existence de la base de donnée utilisateur def verifyhome(): global Uworlds,finished if not os.path.exists(gethome()): @@ -46,11 +48,13 @@ def verifyhome(): Uworlds=[[{0:0}]] finished=[(0,0)] sync() - + +#Trouve le chemin vers le repertoire utilisateur def gethome(): home = expanduser("~")+"/.wirechem" return home +#Ecrit les variables spécifiés dans la base selectionnée (utilisateur ou système) def write(afile,var): d=shelve.open(afile,writeback=True) for k in var: @@ -58,17 +62,20 @@ def write(afile,var): d.sync() d.close() +#Lit une base de donnée def read(afile): d=shelve.open(afile,writeback=True) for k in d.keys(): globals()[k]=copy.deepcopy(d[k]) d.close() +#Charge le dictionnaire sous forme de variables def load(d): for k in d.keys(): if k[0]!="_": globals()[k]=copy.deepcopy(d[k]) +#Référence les variables def reference(var,noms): if len(noms)==2: for y in range(len(var)): @@ -79,10 +86,94 @@ def reference(var,noms): for x in range(len(var[y])): var[x][y][noms[0]]=x +#duplique les références def duplicateref(d): for k in d.keys(): d[d[k]['nom']]=d[k] + +''' *********************************************************************************************** ''' +''' Sauvegarde/Restauration ''' + +def readlevel(w,l,user): + global tuto,worlds,cout,selected,sizex,sizey,stat,tech + tuto='' + if user: + if w1 and sys.argv[1]=='debug': + debug=True + else: + debug=False + +''' *********************************************************************************************** ''' +''' initialisation ''' + +debug=False +worlds={} +init() +print debug + +''' *********************************************************************************************** ''' +''' Classes graphiques ''' + +#Bouton sensible a plusieurs évènements class abutton(object): def update(self,dt): try: @@ -127,22 +218,23 @@ class abutton(object): else: self.sprite.scale=float(self.height)/image.height self.sprite.opacity=color - if type(self.seleted) is tuple: - color=(self.seleted[0],self.seleted[1],self.seleted[2],255) + if type(self.selected) is tuple: + color=(self.selected[0],self.selected[1],self.selected[2],255) self.vertex_list2 = self.window.batch.add(4,pyglet.gl.GL_LINE_LOOP, self.window.p2, ('v2i', (self.x, self.y, self.x+self.width, self.y, self.x+self.width, self.y+self.height, self.x, self.y+self.height)), ('c4B', color * 4)) - elif type(self.seleted) is list: - self.sprite.opacity=(self.seleted[0],self.seleted[1],self.seleted[2]) + elif type(self.selected) is list: + self.sprite.color=(self.selected[0],self.selected[1],self.selected[2]) if self.hilite and int(time.time())%2==0: color=(255,0,0,128) self.vertex_list3 = self.window.batch.add(4,pyglet.gl.GL_QUADS, self.window.p2, ('v2i', (self.x, self.y, self.x+self.width, self.y, self.x+self.width, self.y+self.height, self.x, self.y+self.height)), ('c4B', color * 4)) - def __init__(self, window, name, x, y, width, height , active, hilite, visible, seleted, content, hint, typeof, text, text2): + def __init__(self, window, name, x, y, width, height , active, hilite, visible, selected, content, hint, typeof, text, text2): self.name=name self.index=0 + self.enter=0 self.x=x self.y=y self.width=width @@ -153,7 +245,7 @@ class abutton(object): self.content=content self.typeof=typeof self.hint=hint - self.seleted=seleted + self.selected=selected self.window=window self.window.push_handlers(self.on_mouse_press) self.window.push_handlers(self.on_mouse_motion) @@ -198,10 +290,26 @@ class abutton(object): eval("self.window.on_mouse_scroll_"+self.name+"("+str(state)+")") def on_mouse_motion(self, x, y, dx, dy): - if x>self.x and y>self.y and xself.x and y>self.y and x1024: + self.loc[2]=-1 + if self.loc[1]>768: + self.loc[3]=-1 + if self.loc[0]<0: + self.loc[2]=1 + if self.loc[1]<0: + self.loc[3]=1 + self.fond.blit_tiled(0, 0, 0, self.width, self.height) self.batch.draw() def on_mouse_press_exit2(self, state): pyglet.app.exit() + def on_mouse_enter_exit2(self, state): + self.buttons[4].setselected([255,0,0]) + + def on_mouse_leave_exit2(self, state): + self.buttons[4].setselected(False) + ''' *********************************************************************************************** ''' -''' Initialisation ''' - - +''' Lancement du menu principal ''' + menu_principal = menu() menu_principal.set_minimum_size(1024, 768) glEnable(GL_BLEND);