def handleiconclick(self, vicon): if vicon == "trash": if panels.selectedtile is not None: panels.claimtile() self.clearselections() elif vicon == "zoomin": vista.zoomin() elif vicon == "zoomout": vista.zoomout() elif vicon == "menu": game.save() context.push(menu.Menu()) elif vicon == "music": noise.nexttrack() elif vicon == "heal": game.state.body.core.setbranchstatus() if self.healmode: self.clearselections() else: self.clearselections() if vista.icons["heal"].active: self.healmode = True elif vicon == "cut": if self.cutmode: self.clearselections() else: self.clearselections() if vista.icons["cut"].active: self.cutmode = True
def handlerightclick(self, mousepos): if vista.prect.collidepoint(mousepos): # Click on panel self.clearselections() if settings.trashonrightclick: jtile = panels.iconpoint(mousepos) if jtile in range(mechanics.ntiles): panels.claimtile(jtile) noise.play("trash") elif vista.vrect.collidepoint(mousepos): # Click on main window if settings.panonrightclick: vista.jumptoscreenpos(mousepos) else: self.clearselections()
def handleleftclick(self, mousepos): # TODO: handle dragging vs clicking more reliably if self.clickat is None: # It's a drag return (x0, y0), (x1, y1) = self.clickat, mousepos if abs(x0-x1) + abs(y0-y1) > 25: return vicon = vista.iconhit(mousepos) # Any vista icons pointed to if vicon is not None: self.handleiconclick(vicon) return bicon = panels.iconpoint(mousepos) # Any panel tile or icon pointed to if bicon is not None: panels.selecticon(bicon) return # Click on the main gameplay area if vista.vrect.collidepoint(mousepos): if self.cutmode and self.target is not None: self.target.die() self.clearselections() elif self.healmode and self.target is not None: self.target.autoheal = not self.target.autoheal elif self.parttobuild is not None and self.canbuild and game.state.body.canaddpart(self.parttobuild): if panels.selectedtile is not None: panels.claimtile() if panels.selectedorgan is not None: panels.claimorgan() game.state.body.addpart(self.parttobuild) self.clearselections() else: worldpos = vista.screentoworld(mousepos) if vista.HexGrid.nearesttile(worldpos) == (0,0): settings.showtips = not settings.showtips noise.play("addpart") return # Click on one of the panels self.clearselections()