diff --git a/journal/unix/images/ES/c1.png b/journal/unix/images/ES/c1.png new file mode 100644 index 0000000..3f70154 Binary files /dev/null and b/journal/unix/images/ES/c1.png differ diff --git a/journal/unix/images/ES/S1.png b/journal/unix/images/ES/s1.png similarity index 100% rename from journal/unix/images/ES/S1.png rename to journal/unix/images/ES/s1.png diff --git a/journal/unix/images/ES/S2.png b/journal/unix/images/ES/s2.png similarity index 100% rename from journal/unix/images/ES/S2.png rename to journal/unix/images/ES/s2.png diff --git a/journal/unix/images/ES/S3.png b/journal/unix/images/ES/s3.png similarity index 100% rename from journal/unix/images/ES/S3.png rename to journal/unix/images/ES/s3.png diff --git a/journal/unix/images/ES/S4.png b/journal/unix/images/ES/s4.png similarity index 100% rename from journal/unix/images/ES/S4.png rename to journal/unix/images/ES/s4.png diff --git a/journal/unix/images/ES/t8.png b/journal/unix/images/ES/t8.png index e2b344c..bfbc0b2 100644 Binary files a/journal/unix/images/ES/t8.png and b/journal/unix/images/ES/t8.png differ diff --git a/journal/unix/images/PTBR/c1.png b/journal/unix/images/PT_BR/c1.png similarity index 100% rename from journal/unix/images/PTBR/c1.png rename to journal/unix/images/PT_BR/c1.png diff --git a/journal/unix/images/PTBR/c2.png b/journal/unix/images/PT_BR/c2.png similarity index 100% rename from journal/unix/images/PTBR/c2.png rename to journal/unix/images/PT_BR/c2.png diff --git a/journal/unix/images/PTBR/c3.png b/journal/unix/images/PT_BR/c3.png similarity index 100% rename from journal/unix/images/PTBR/c3.png rename to journal/unix/images/PT_BR/c3.png diff --git a/journal/unix/images/PTBR/c4.png b/journal/unix/images/PT_BR/c4.png similarity index 100% rename from journal/unix/images/PTBR/c4.png rename to journal/unix/images/PT_BR/c4.png diff --git a/journal/unix/images/PTBR/c5.png b/journal/unix/images/PT_BR/c5.png similarity index 100% rename from journal/unix/images/PTBR/c5.png rename to journal/unix/images/PT_BR/c5.png diff --git a/journal/unix/images/PTBR/c6.png b/journal/unix/images/PT_BR/c6.png similarity index 100% rename from journal/unix/images/PTBR/c6.png rename to journal/unix/images/PT_BR/c6.png diff --git a/journal/unix/images/PTBR/c7.png b/journal/unix/images/PT_BR/c7.png similarity index 100% rename from journal/unix/images/PTBR/c7.png rename to journal/unix/images/PT_BR/c7.png diff --git a/journal/unix/images/PTBR/final.png b/journal/unix/images/PT_BR/final.png similarity index 100% rename from journal/unix/images/PTBR/final.png rename to journal/unix/images/PT_BR/final.png diff --git a/journal/unix/images/PTBR/S1.png b/journal/unix/images/PT_BR/s1.png similarity index 100% rename from journal/unix/images/PTBR/S1.png rename to journal/unix/images/PT_BR/s1.png diff --git a/journal/unix/images/PTBR/S2.png b/journal/unix/images/PT_BR/s2.png similarity index 100% rename from journal/unix/images/PTBR/S2.png rename to journal/unix/images/PT_BR/s2.png diff --git a/journal/unix/images/PTBR/S3.png b/journal/unix/images/PT_BR/s3.png similarity index 100% rename from journal/unix/images/PTBR/S3.png rename to journal/unix/images/PT_BR/s3.png diff --git a/journal/unix/images/PTBR/S4.png b/journal/unix/images/PT_BR/s4.png similarity index 100% rename from journal/unix/images/PTBR/S4.png rename to journal/unix/images/PT_BR/s4.png diff --git a/journal/unix/images/PTBR/save.png b/journal/unix/images/PT_BR/save.png similarity index 100% rename from journal/unix/images/PTBR/save.png rename to journal/unix/images/PT_BR/save.png diff --git a/journal/unix/images/PTBR/t1.png b/journal/unix/images/PT_BR/t1.png similarity index 100% rename from journal/unix/images/PTBR/t1.png rename to journal/unix/images/PT_BR/t1.png diff --git a/journal/unix/images/PTBR/t10.png b/journal/unix/images/PT_BR/t10.png similarity index 100% rename from journal/unix/images/PTBR/t10.png rename to journal/unix/images/PT_BR/t10.png diff --git a/journal/unix/images/PTBR/t11.png b/journal/unix/images/PT_BR/t11.png similarity index 100% rename from journal/unix/images/PTBR/t11.png rename to journal/unix/images/PT_BR/t11.png diff --git a/journal/unix/images/PTBR/t12.png b/journal/unix/images/PT_BR/t12.png similarity index 100% rename from journal/unix/images/PTBR/t12.png rename to journal/unix/images/PT_BR/t12.png diff --git a/journal/unix/images/PTBR/t13.png b/journal/unix/images/PT_BR/t13.png similarity index 100% rename from journal/unix/images/PTBR/t13.png rename to journal/unix/images/PT_BR/t13.png diff --git a/journal/unix/images/PTBR/t14.png b/journal/unix/images/PT_BR/t14.png similarity index 100% rename from journal/unix/images/PTBR/t14.png rename to journal/unix/images/PT_BR/t14.png diff --git a/journal/unix/images/PTBR/t15.png b/journal/unix/images/PT_BR/t15.png similarity index 100% rename from journal/unix/images/PTBR/t15.png rename to journal/unix/images/PT_BR/t15.png diff --git a/journal/unix/images/PTBR/t16.png b/journal/unix/images/PT_BR/t16.png similarity index 100% rename from journal/unix/images/PTBR/t16.png rename to journal/unix/images/PT_BR/t16.png diff --git a/journal/unix/images/PTBR/t2.png b/journal/unix/images/PT_BR/t2.png similarity index 100% rename from journal/unix/images/PTBR/t2.png rename to journal/unix/images/PT_BR/t2.png diff --git a/journal/unix/images/PTBR/t3.png b/journal/unix/images/PT_BR/t3.png similarity index 100% rename from journal/unix/images/PTBR/t3.png rename to journal/unix/images/PT_BR/t3.png diff --git a/journal/unix/images/PTBR/t4.png b/journal/unix/images/PT_BR/t4.png similarity index 100% rename from journal/unix/images/PTBR/t4.png rename to journal/unix/images/PT_BR/t4.png diff --git a/journal/unix/images/PTBR/t5.png b/journal/unix/images/PT_BR/t5.png similarity index 100% rename from journal/unix/images/PTBR/t5.png rename to journal/unix/images/PT_BR/t5.png diff --git a/journal/unix/images/PTBR/t6.png b/journal/unix/images/PT_BR/t6.png similarity index 100% rename from journal/unix/images/PTBR/t6.png rename to journal/unix/images/PT_BR/t6.png diff --git a/journal/unix/images/PTBR/t7.png b/journal/unix/images/PT_BR/t7.png similarity index 100% rename from journal/unix/images/PTBR/t7.png rename to journal/unix/images/PT_BR/t7.png diff --git a/journal/unix/images/PTBR/t8.png b/journal/unix/images/PT_BR/t8.png similarity index 100% rename from journal/unix/images/PTBR/t8.png rename to journal/unix/images/PT_BR/t8.png diff --git a/journal/unix/images/PTBR/t9.png b/journal/unix/images/PT_BR/t9.png similarity index 100% rename from journal/unix/images/PTBR/t9.png rename to journal/unix/images/PT_BR/t9.png diff --git a/journal/unix/images/ZH-CN/c1.png b/journal/unix/images/ZH_CN/c1.png similarity index 100% rename from journal/unix/images/ZH-CN/c1.png rename to journal/unix/images/ZH_CN/c1.png diff --git a/journal/unix/images/ZH-CN/c2.png b/journal/unix/images/ZH_CN/c2.png similarity index 100% rename from journal/unix/images/ZH-CN/c2.png rename to journal/unix/images/ZH_CN/c2.png diff --git a/journal/unix/images/ZH-CN/c3.png b/journal/unix/images/ZH_CN/c3.png similarity index 100% rename from journal/unix/images/ZH-CN/c3.png rename to journal/unix/images/ZH_CN/c3.png diff --git a/journal/unix/images/ZH-CN/c4.png b/journal/unix/images/ZH_CN/c4.png similarity index 100% rename from journal/unix/images/ZH-CN/c4.png rename to journal/unix/images/ZH_CN/c4.png diff --git a/journal/unix/images/ZH-CN/c5.png b/journal/unix/images/ZH_CN/c5.png similarity index 100% rename from journal/unix/images/ZH-CN/c5.png rename to journal/unix/images/ZH_CN/c5.png diff --git a/journal/unix/images/ZH-CN/c6.png b/journal/unix/images/ZH_CN/c6.png similarity index 100% rename from journal/unix/images/ZH-CN/c6.png rename to journal/unix/images/ZH_CN/c6.png diff --git a/journal/unix/images/ZH-CN/c7.png b/journal/unix/images/ZH_CN/c7.png similarity index 100% rename from journal/unix/images/ZH-CN/c7.png rename to journal/unix/images/ZH_CN/c7.png diff --git a/journal/unix/images/ZH-CN/final.png b/journal/unix/images/ZH_CN/final.png similarity index 100% rename from journal/unix/images/ZH-CN/final.png rename to journal/unix/images/ZH_CN/final.png diff --git a/journal/unix/images/ZH-CN/s1.png b/journal/unix/images/ZH_CN/s1.png similarity index 100% rename from journal/unix/images/ZH-CN/s1.png rename to journal/unix/images/ZH_CN/s1.png diff --git a/journal/unix/images/ZH-CN/s2.png b/journal/unix/images/ZH_CN/s2.png similarity index 100% rename from journal/unix/images/ZH-CN/s2.png rename to journal/unix/images/ZH_CN/s2.png diff --git a/journal/unix/images/ZH-CN/s3.png b/journal/unix/images/ZH_CN/s3.png similarity index 100% rename from journal/unix/images/ZH-CN/s3.png rename to journal/unix/images/ZH_CN/s3.png diff --git a/journal/unix/images/ZH-CN/s4.png b/journal/unix/images/ZH_CN/s4.png similarity index 100% rename from journal/unix/images/ZH-CN/s4.png rename to journal/unix/images/ZH_CN/s4.png diff --git a/journal/unix/images/ZH-CN/save.png b/journal/unix/images/ZH_CN/save.png similarity index 100% rename from journal/unix/images/ZH-CN/save.png rename to journal/unix/images/ZH_CN/save.png diff --git a/journal/unix/images/ZH-CN/t1.png b/journal/unix/images/ZH_CN/t1.png similarity index 100% rename from journal/unix/images/ZH-CN/t1.png rename to journal/unix/images/ZH_CN/t1.png diff --git a/journal/unix/images/ZH-CN/t10.png b/journal/unix/images/ZH_CN/t10.png similarity index 100% rename from journal/unix/images/ZH-CN/t10.png rename to journal/unix/images/ZH_CN/t10.png diff --git a/journal/unix/images/ZH-CN/t11.png b/journal/unix/images/ZH_CN/t11.png similarity index 100% rename from journal/unix/images/ZH-CN/t11.png rename to journal/unix/images/ZH_CN/t11.png diff --git a/journal/unix/images/ZH-CN/t12.png b/journal/unix/images/ZH_CN/t12.png similarity index 100% rename from journal/unix/images/ZH-CN/t12.png rename to journal/unix/images/ZH_CN/t12.png diff --git a/journal/unix/images/ZH-CN/t13.png b/journal/unix/images/ZH_CN/t13.png similarity index 100% rename from journal/unix/images/ZH-CN/t13.png rename to journal/unix/images/ZH_CN/t13.png diff --git a/journal/unix/images/ZH-CN/t14.png b/journal/unix/images/ZH_CN/t14.png similarity index 100% rename from journal/unix/images/ZH-CN/t14.png rename to journal/unix/images/ZH_CN/t14.png diff --git a/journal/unix/images/ZH-CN/t15.png b/journal/unix/images/ZH_CN/t15.png similarity index 100% rename from journal/unix/images/ZH-CN/t15.png rename to journal/unix/images/ZH_CN/t15.png diff --git a/journal/unix/images/ZH-CN/t16.png b/journal/unix/images/ZH_CN/t16.png similarity index 100% rename from journal/unix/images/ZH-CN/t16.png rename to journal/unix/images/ZH_CN/t16.png diff --git a/journal/unix/images/ZH-CN/t2.png b/journal/unix/images/ZH_CN/t2.png similarity index 100% rename from journal/unix/images/ZH-CN/t2.png rename to journal/unix/images/ZH_CN/t2.png diff --git a/journal/unix/images/ZH-CN/t3.png b/journal/unix/images/ZH_CN/t3.png similarity index 100% rename from journal/unix/images/ZH-CN/t3.png rename to journal/unix/images/ZH_CN/t3.png diff --git a/journal/unix/images/ZH-CN/t4.png b/journal/unix/images/ZH_CN/t4.png similarity index 100% rename from journal/unix/images/ZH-CN/t4.png rename to journal/unix/images/ZH_CN/t4.png diff --git a/journal/unix/images/ZH-CN/t5.png b/journal/unix/images/ZH_CN/t5.png similarity index 100% rename from journal/unix/images/ZH-CN/t5.png rename to journal/unix/images/ZH_CN/t5.png diff --git a/journal/unix/images/ZH-CN/t6.png b/journal/unix/images/ZH_CN/t6.png similarity index 100% rename from journal/unix/images/ZH-CN/t6.png rename to journal/unix/images/ZH_CN/t6.png diff --git a/journal/unix/images/ZH-CN/t7.png b/journal/unix/images/ZH_CN/t7.png similarity index 100% rename from journal/unix/images/ZH-CN/t7.png rename to journal/unix/images/ZH_CN/t7.png diff --git a/journal/unix/images/ZH-CN/t8.png b/journal/unix/images/ZH_CN/t8.png similarity index 100% rename from journal/unix/images/ZH-CN/t8.png rename to journal/unix/images/ZH_CN/t8.png diff --git a/journal/unix/images/ZH-CN/t9.png b/journal/unix/images/ZH_CN/t9.png similarity index 100% rename from journal/unix/images/ZH-CN/t9.png rename to journal/unix/images/ZH_CN/t9.png diff --git a/journal/unix/images/close.png b/journal/unix/images/close.png new file mode 100644 index 0000000..bd21c14 Binary files /dev/null and b/journal/unix/images/close.png differ diff --git a/journal/unix/journal.py b/journal/unix/journal.py index f24d75d..a9fd09b 100644 --- a/journal/unix/journal.py +++ b/journal/unix/journal.py @@ -6,26 +6,36 @@ from PyQt5.QtCore import Qt, QEvent, QThread, pyqtSignal, QRect, QRectF, QTimer, from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QLabel from PyQt5.QtGui import QIcon, QPixmap, QPainter -if sys.platform == "win32": pipe_path = '\\\\.\\pipe\\oneshot-journal-to-game' -else: pipe_path = '/tmp/oneshot-pipe' +if sys.platform == "win32": + pipe_path = '\\\\.\\pipe\\oneshot-journal-to-game' + import ctypes.wintypes + buff = ctypes.create_unicode_buffer(ctypes.wintypes.MAX_PATH) + ctypes.windll.shell32.SHGetFolderPathW(None, CSIDL_PERSONAL, None, SHGFP_TYPE_CURRENT, buf) + documents_path = os.path.join(buf.value, 'My Games') +else: + pipe_path = '/tmp/oneshot-pipe' + documents_path = os.path.expanduser('~/Documents') + +left_close = False +if sys.platform == "darwin": left_close = True try: base_path = sys._MEIPASS except AttributeError: base_path = os.path.abspath('.') class WatchPipe(QThread): change_image = pyqtSignal(str) - + def run(self): while True: while True: if os.path.exists(pipe_path): break else: time.sleep(0.1) - pipe = open(pipe_path, 'r') pipe.flush() while True: - if not os.path.exists(pipe_path): break # Handle game quitting cleanup + if not os.path.exists(pipe_path): + break # Handle game quitting cleanup message = os.read(pipe.fileno(), 256) if len(message) > 0: self.change_image.emit(message.decode()) @@ -38,10 +48,13 @@ class AnimationTimer(QThread): def run(self): while True: self.next_frame.emit() - time.sleep(1.0/60) - + time.sleep(1.0 / 60) + class Journal(QWidget): def __init__(self, *args, **kwargs): + self.app = kwargs['app'] + del kwargs['app'] + super().__init__(*args, **kwargs) self.mousedown = False @@ -49,11 +62,16 @@ class Journal(QWidget): self.label = QLabel(self) self.change_image('default_en') - - self.setWindowFlags(self.windowFlags() | Qt.FramelessWindowHint) + + self.close_label = QLabel(self) + self.close_label.setPixmap(QPixmap(os.path.join(base_path, 'images', 'close.png'))) + if not left_close: self.close_label.move(776, 0) # X = 800-24 + + if "linux" in sys.platform: self.setWindowFlags(Qt.FramelessWindowHint) + else: self.setWindowFlags(self.windowFlags() | Qt.FramelessWindowHint | Qt.NoDropShadowWindowHint) self.setAttribute(Qt.WA_TranslucentBackground) self.setMouseTracking(True) - self.setWindowTitle('') + self.setWindowTitle(' ') self.setMinimumSize(800, 600) self.setMaximumSize(800, 600) self.setGeometry(0, 0, 800, 600) @@ -63,6 +81,9 @@ class Journal(QWidget): self.mousedown = True self.mousedownpos = event.pos() + if ((left_close and self.mousedownpos.x() <= 24) or (not left_close and self.mousedownpos.x() >= 776)) and self.mousedownpos.y() < 24: + self.app.quit() + def mouseReleaseEvent(self, event): self.mousedown = False @@ -71,31 +92,30 @@ class Journal(QWidget): pos = event.pos() frameGm = self.frameGeometry() self.setGeometry(frameGm.x() + pos.x() - self.mousedownpos.x(), frameGm.y() + pos.y() - self.mousedownpos.y(), 800, 600) - + def change_image(self, image): name, lang = image.split('_', 1) - img = os.path.join(base_path, 'images', lang.upper(), '{}.png'.format(name)) - if not os.path.exists(img): + if lang == 'en': img = os.path.join(base_path, 'images', '{}.png'.format(name)) - if not os.path.exists(img): return + else: + img = os.path.join(base_path, 'images', lang.upper(), '{}.png'.format(name)) + if not os.path.exists(img): return self.pixmap = QPixmap(img) self.label.setPixmap(self.pixmap) class Niko(QWidget): def __init__(self, *args, **kwargs): self.x, self.y, self.start_y, self.app, self.thread = kwargs['x'], kwargs['y'], kwargs['y'], kwargs['app'], kwargs['thread'] - self.screen_width, self.screen_height = kwargs['screen_width'], kwargs['screen_height'] - del kwargs['x'], kwargs['y'], kwargs['screen_width'], kwargs['screen_height'], kwargs['app'], kwargs['thread'] - + self.screen_height = kwargs['screen_height'] + del kwargs['x'], kwargs['y'], kwargs['screen_height'], kwargs['app'], kwargs['thread'] + super().__init__(*args, **kwargs) - self.setWindowFlags(self.windowFlags() | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint) + self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint) self.setAttribute(Qt.WA_TranslucentBackground) - self.setWindowTitle('') - self.setMinimumSize(self.screen_width, self.screen_height) - self.setMaximumSize(self.screen_width, self.screen_height) - self.setGeometry(self.x, self.y, self.x+48, self.y+64) - + self.setMinimumSize(48, 64) + self.setMaximumSize(48, 64) + self.label = QLabel(self) self.frames = [QPixmap(os.path.join(base_path, 'images', 'niko{}.png'.format(n))) for n in range(1,4)] self.label.setPixmap(self.frames[1]) @@ -112,8 +132,13 @@ class Niko(QWidget): def update(self): self.label.setPixmap(self.frames[self.getFrame()]) self.y += 2 - self.setGeometry(self.x, self.y, self.x+48, self.y+64) - if self.y > self.screen_height: self.app.quit() + if self.y > self.screen_height: + self.app.quit() + return + elif self.y > self.screen_height - 64: + self.setMinimumSize(48, self.screen_height - self.y) + self.resize(48, self.screen_height - self.y) + self.move(self.x, self.y) if __name__ == '__main__': app = QApplication(sys.argv) @@ -121,20 +146,28 @@ if __name__ == '__main__': if len(sys.argv) == 3: # "Niko-leaves-the-screen" mode x, y = int(sys.argv[1]), int(sys.argv[2]) - screensize = app.primaryScreen().size() thread = AnimationTimer() - niko = Niko(x = x, y = y, screen_width = screensize.width(), screen_height = screensize.height(), app = app, thread = thread) + niko = Niko(x = x, y = y, screen_height = app.primaryScreen().size().height(), app = app, thread = thread) thread.next_frame.connect(niko.update) else: # Author's Journal mode - journal = Journal() - - thread = WatchPipe() - thread.change_image.connect(journal.change_image) - thread.start() - + journal = Journal(app = app) + save_path = os.path.join(documents_path, 'Oneshot', 'save_progress.oneshot') + if os.path.exists(save_path): + with open(save_path, 'rb') as save: + save.seek(-8, os.SEEK_END) + lang = save.read().decode('utf-8') + lang = lang[lang.find('[') + 1:lang.find(']')] + if lang == 'en_US': + lang = 'en' + journal.change_image('save_' + lang) + else: + thread = WatchPipe() + thread.change_image.connect(journal.change_image) + thread.start() + app.exec_()