Project_Glowstone/GlowstoneBlock.py

74 lines
2.2 KiB
Python

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QPushButton, QTreeView
from PyQt5.Qt import QStandardItemModel, QStandardItem
from PyQt5.QtCore import pyqtSlot, QAbstractListModel
import json
import GlowstoneDust
class App(QMainWindow):
def __init__(self, target_dir='.'):
super().__init__()
self.title = 'Project Glowstone: Block Edition'
self.left = 300
self.top = 300
self.width = 640
self.height = 480
self.target_dir = target_dir
self.init_ui()
def init_ui(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.treeView = QTreeView()
self.treeView.setHeaderHidden(True)
self.update_modlist(list(GlowstoneDust.get_modpack_info(self.target_dir)))
self.statusBar().showMessage('Message')
self.show()
def update_modlist(self, modlist=None):
self.treeModel = QStandardItemModel()
self.rootNode = self.treeModel.invisibleRootItem()
self.modlist = modlist or []
print(json.dumps(self.modlist, indent=4))
mc = QStandardItem('Minecraft')
mc.setEditable(False)
self.rootNode.appendRow(mc)
for mod in self.modlist:
mod_row = QStandardItem(mod['modid'])
for dependant_mod in mod.get('dependencies', []):
if dependant_mod is dict:
mod_row.appendRow(QStandardItem(dependant_mod.get('modid')))
else:
mod_row.appendRow(QStandardItem(dependant_mod))
mc.appendRow(mod_row)
self.treeView.setModel(self.treeModel)
self.treeView.expandAll()
self.setCentralWidget(self.treeView)
@pyqtSlot()
def on_click(self):
print('PyQt5 button click')
@pyqtSlot()
def make_tree(self):
print("Making mod tree...")
modpack_info = GlowstoneDust.get_modpack_info('.')
print(json.dumps(modpack_info))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App(target_dir=r"C:\Users\VY Canis Majoris\AppData\Roaming\.moddedminecraft\1.12\1.12.2\Sinkhole\mods")
sys.exit(app.exec_())