def edit(__, id): __.edit_mode = True qt.QWidget.setVisible(__, True) __.obj = __.master.enemies[id] __.name.setText(__.obj.name) __.width.setText(str(__.obj.width)) __.height.setText(str(__.obj.height)) __.image.setText(get_name(__.obj.image)) __.image.path = __.obj.image __.core.setText(get_name(__.obj.core)) __.core.path = __.obj.core
def __init__(__, boss, mode=True, name=K.path_map + "save.wf"): """Fenetre 'exploreur' pour sauvegarder et charger les maps . mode = 1 (save) ou 0 (load)""" tk.Tk.__init__(__) text_mode = "Sauvegarder" * bool(mode) + "Charger" * bool(not mode) __.title(text_mode) __.mode = mode __.boss = boss __.old_ind = 0 __.Struct = tk.Frame(__) __.Struct2 = tk.Frame(__) __.Entry = Entry256(__.Struct2, width=30) if mode: __.Entry.insert(0, get_name(try_file(name))) else: __.Entry.insert(0, get_name(name)) __.Scroll = tk.Scrollbar(__.Struct, width=20) __.List = tk.Listbox(__.Struct, width=50, height=30) __.refresh() __.Scroll.config(command=__.List.yview) __.List.config(yscrollcommand=__.Scroll.set) __.Erreur = tk.Label(__.Struct2, fg="red") __.Struct.pack(side=tk.LEFT) __.Struct2.pack(side=tk.RIGHT) __.List.pack(side=tk.RIGHT, fill=tk.Y) __.Scroll.pack(side=tk.LEFT, fill=tk.Y) __.Entry.pack() tk.Button(__.Struct2, text=text_mode, command=__.valider).pack(fill=tk.X) tk.Button(__.Struct2, text="Supprimer", command=__.suppr).pack(fill=tk.X) tk.Button(__.Struct2, text="Renommer", command=__.renommer).pack(fill=tk.X) __.Erreur.pack(fill=tk.X) __.List.bind('<ButtonRelease-1>', lambda ev: __.clic(True)) __.bind("<Destroy>", lambda ev: __.quit()) __.mainloop()
def __init__(__,boss,mode=True,name=K.path_map + "save.wf"): """Fenetre 'exploreur' pour sauvegarder et charger les maps . mode = 1 (save) ou 0 (load)""" tk.Tk.__init__(__) text_mode = "Sauvegarder" * bool(mode) + "Charger" * bool(not mode) __.title(text_mode) __.mode = mode __.boss = boss __.old_ind = 0 __.Struct = tk.Frame(__) __.Struct2 = tk.Frame(__) __.Entry = Entry256(__.Struct2,width=30) if mode: __.Entry.insert(0, get_name(try_file(name))) else: __.Entry.insert(0, get_name(name)) __.Scroll = tk.Scrollbar(__.Struct, width=20) __.List = tk.Listbox(__.Struct, width=50,height=30) __.refresh() __.Scroll.config(command = __.List.yview) __.List.config(yscrollcommand = __.Scroll.set) __.Erreur = tk.Label(__.Struct2, fg="red") __.Struct.pack(side=tk.LEFT) __.Struct2.pack(side=tk.RIGHT) __.List.pack(side = tk.RIGHT, fill = tk.Y) __.Scroll.pack(side = tk.LEFT, fill = tk.Y) __.Entry.pack() tk.Button(__.Struct2, text=text_mode, command=__.valider).pack(fill=tk.X) tk.Button(__.Struct2, text="Supprimer", command=__.suppr).pack(fill=tk.X) tk.Button(__.Struct2,text="Renommer" , command=__.renommer).pack(fill=tk.X) __.Erreur.pack(fill=tk.X) __.List.bind('<ButtonRelease-1>',lambda ev : __.clic(True)) __.bind("<Destroy>",lambda ev: __.quit()) __.mainloop()
def paintEvent(__, event): painter = qt.QPainter(__) v = __.master.display.scrollArea.viewport() for i in range(__.master.idGraphic + 1): layer = __.master.tab.widget(i) w = layer.tileWidth() h = layer.tileHeight() for x in range(event.rect().width() / w): x += event.rect().x() / w for y in range(event.rect().height() / h): y += event.rect().y() / h if not layer.isVisible(): painter.drawPixmap(event.rect(), Field.EMPTY) continue if len(layer.map) <= x or len(layer.map[0]) <= y: continue tile = layer.map[x][y] rect = qt.QRect(x * w, y * h, w, h) if layer.type == Layer.COLLISION: if tile.tileset: painter.fillRect(rect, qt.QColor(255, 0, 0, 128)) else: painter.drawPixmap(rect, Field.EMPTY) else: if tile.tileset == "": painter.drawPixmap(rect, Field.EMPTY) else: for id in range(__.master.master.tileset.tab.count()): if __.master.master.tileset.tab.widget(id).tilesetName() == tile.tileset: painter.drawPixmap(rect, __.master.master.tileset.tab.widget(id).tileset.pixmap().copy(tile.x * w, tile.y * h, w, h)) break if layer == __.master.currentLayer() and len(layer.map): x = len(layer.map) * w y = len(layer.map[0]) * h brush = qt.QBrush(qt.QColor(30, 30, 30), qt.Qt.Dense5Pattern) painter.fillRect(0, y, Layer.field.width(), Layer.field.height() - y, brush) painter.fillRect(x, 0, Layer.field.width() - x, Layer.field.height(), brush) pens = [qt.QColor("blue"), qt.QColor("red")] for i in range(__.master.idGraphic + 1, __.master.tab.count()): layer = __.master.tab.widget(i) if not layer.isVisible(): continue painter.setPen(pens[i % len(pens)]) last = -1 default = event.rect().y() + __.master.display.scrollArea.viewport().y() + 15 y = default for e in layer.list: if event.rect().x() + event.rect().width() < e[0]: break if last <= e[0] and e[0] < last + 100: y += 15 else: y = default last = e[0] if layer.type == Layer.EVENT: tmp = default + __.master.display.scrollArea.viewport().height() - 30 - (y - default) painter.drawLine(e[0], 0, e[0], tmp) painter.drawText(e[0] + 5, tmp, get_name(e[1])) else: painter.drawLine(e[0], y - 10, e[0], DEFAULT_MAP_WIDTH * DEFAULT_TILE_HEIGHT) painter.drawText(e[0] + 5, y, get_name(e[1])) print Field.GRID if Field.GRID == True: __.drawGrid(painter, event) painter.end()
def slot_open(__): file = qt.QFileDialog.getOpenFileName(None, "Ajouter un tileset", TILESET_PATH) if file: __.addTileset(get_name(file))
def addTileset(__, tilesetname): ext = get_ext(tilesetname) __.tab.addTab(Tileset(TILESET_PATH + tilesetname, __.config), get_name(tilesetname)[ : -len(ext) - 1])
def refresh(__): __.List.delete(0,tk.END) erreur = 0 for i,f in enumerate(get_files(K.path_map)): if get_ext(f) == "wf": __.List.insert(i - erreur, get_name(f)) else: erreur += 1
def refresh(__): __.List.delete(0, tk.END) erreur = 0 for i, f in enumerate(get_files(K.path_map)): if get_ext(f) == "wf": __.List.insert(i - erreur, get_name(f)) else: erreur += 1
def slot_image(__): path = qt.QFileDialog.getOpenFileName(__, "Load an image", ELEMENT_PATH) __.image.path = get_name(path) __.image.setText(__.image.path)
def slot_core(__): path = qt.QFileDialog.getOpenFileName(__, "Load an AI", CORE_PATH) ext = get_ext(path) name = get_name(path)[ : -len(ext) - 1] __.core.path = name __.core.setText(name)
def slot_image(__): path = qt.QFileDialog.getOpenFileName(__, "Load an picture", ENEMY_PATH) name = get_name(path) __.image.path = name __.image.setText(name)
def addTileset(__, tilesetname): ext = get_ext(tilesetname) __.tab.addTab(Tileset(TILESET_PATH + tilesetname, __.config), get_name(tilesetname)[:-len(ext) - 1])