Skip to content

Commit

Permalink
updated readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Kezyma committed Jan 18, 2024
1 parent 65d84bf commit c262c41
Show file tree
Hide file tree
Showing 20 changed files with 1,154 additions and 51 deletions.
28 changes: 11 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,30 +30,24 @@ A plugin for Mod Organizer 2 that automatically exports your mod list, enabled p
To install a plugin from this repository, download a plugin from above and extract the folder inside into your `Mod Organizer\plugins` folder.

### This Repo
- `src` contains the plugin code and a shared code folder. Each plugin has its own folder and a `plugin_init.py` file.
- `src` contains the plugin code and shared code folders. Each plugin has its own folder and a `plugin_init.py` file.
- `release` contains the plugins packaged for individual release. each folder is an individual plugin.
- `readme` contains the readme files (and any other documentation) in individual plugin folders.
- `directory` contains the plugin directory used by Plugin Finder to search and install plugins.
- `meta` contains meta files for the NexusMods downloads, to be used when creating Wabbajack lists.
- `tools` contains various batch files.

### Tools
the `tools` folder contains a few batch files.

#### cleanup.bat
When called, the `release` folder will be deleted, as will any log files in the `tools` folder.

#### release.bat
Calling release.bat with parameters of different plugin names will; (eg. `release.bat rootbuilder reinstaller` would build rootbuilder and reinstaller)
- Copy the plugin and shared folders from `src` to `release\plugin`
- Copy the `plugin_init.py` file to `release\plugin` and rename it to `__init__.py`
- Copy the readme content from `readme\plugin` to `release\plugin`
- Zip the plugin for release and place it in `release\zip`
#### Generate Release.bat
When run, will deploy all plugins from the `src` folder to the `release` folder as well as zip them up and store them in `release\zip`.

#### release_all.bat
Calls release.bat with parameters for every plugin.
#### Generate UI.bat
When run, will search the `src` folder for `ui` files alongside `qt5` and `qt6` folders, then convert those files to python for each version of PyQt. Requires PyQt5 and PyQt6 to be installed.

#### deploy.bat
Calling deploy.bat with parameters of different plugin names will copy the relevant plugin folder from `release` to all the folders listed in `deploy_targets.txt`
(eg. `deploy.bat rootbuilder reinstaller` would deploy rootbuilder and reinstaller)
#### Launch Debug.bat
When run, will generate UI and a release with `Generate UI.bat` and `Generate Release.bat`, then download Mod Organizer 2 (if not already downloaded), install it in a folder called `debug`, deploy all plugins to it and launch `ModOrganizer.exe` for testing.

#### deploy_all.bat
Calls deploy.bat with parameters for every plugin.
#### MetaGenerator.exe
When run, will check NexusMods for each plugin listed in `Plugins.json` and generate a file in the `meta` folder for Wabbajck list authors to use.
63 changes: 63 additions & 0 deletions src/plugin/curationclub/ui/curationclub_menu.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CurationClubMenu</class>
<widget class="QWidget" name="CurationClubMenu">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>530</width>
<height>225</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QSplitter" name="contentSplitter">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<widget class="QTabWidget" name="tabList">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="sortTab">
<attribute name="title">
<string>Sort</string>
</attribute>
</widget>
<widget class="QWidget" name="updateTab">
<attribute name="title">
<string>Update</string>
</attribute>
</widget>
<widget class="QWidget" name="helpTab">
<attribute name="title">
<string>Help</string>
</attribute>
</widget>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
138 changes: 138 additions & 0 deletions src/plugin/curationclub/ui/curationclub_sort.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>544</width>
<height>289</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>6</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Sort</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Running Curation Club will search your game folder and your mods for Creation Club content and sort them into individual mods in Mod Organizer.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Combine all Creation Club content into a single mod.</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Individual Mod Template</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit">
<property name="text">
<string>Creation Club - {NAME}</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Combined Mod Name</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_2">
<property name="text">
<string>Creation Club Content</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>424</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Sort</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
47 changes: 47 additions & 0 deletions src/plugin/curationclub/ui/qt5/curationclub_menu.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'D:\Repos\ModOrganizer-Plugins\src\plugin\curationclub\ui\curationclub_menu.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_CurationClubMenu(object):
def setupUi(self, CurationClubMenu):
CurationClubMenu.setObjectName("CurationClubMenu")
CurationClubMenu.resize(530, 225)
self.verticalLayout_2 = QtWidgets.QVBoxLayout(CurationClubMenu)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setSpacing(0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.contentSplitter = QtWidgets.QSplitter(CurationClubMenu)
self.contentSplitter.setOrientation(QtCore.Qt.Vertical)
self.contentSplitter.setObjectName("contentSplitter")
self.tabList = QtWidgets.QTabWidget(self.contentSplitter)
self.tabList.setObjectName("tabList")
self.sortTab = QtWidgets.QWidget()
self.sortTab.setObjectName("sortTab")
self.tabList.addTab(self.sortTab, "")
self.updateTab = QtWidgets.QWidget()
self.updateTab.setObjectName("updateTab")
self.tabList.addTab(self.updateTab, "")
self.helpTab = QtWidgets.QWidget()
self.helpTab.setObjectName("helpTab")
self.tabList.addTab(self.helpTab, "")
self.verticalLayout_2.addWidget(self.contentSplitter)

self.retranslateUi(CurationClubMenu)
self.tabList.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(CurationClubMenu)

def retranslateUi(self, CurationClubMenu):
_translate = QtCore.QCoreApplication.translate
CurationClubMenu.setWindowTitle(_translate("CurationClubMenu", "Form"))
self.tabList.setTabText(self.tabList.indexOf(self.sortTab), _translate("CurationClubMenu", "Sort"))
self.tabList.setTabText(self.tabList.indexOf(self.updateTab), _translate("CurationClubMenu", "Update"))
self.tabList.setTabText(self.tabList.indexOf(self.helpTab), _translate("CurationClubMenu", "Help"))
87 changes: 87 additions & 0 deletions src/plugin/curationclub/ui/qt5/curationclub_sort.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'D:\Repos\ModOrganizer-Plugins\src\plugin\curationclub\ui\curationclub_sort.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(544, 289)
self.verticalLayout = QtWidgets.QVBoxLayout(Form)
self.verticalLayout.setSpacing(6)
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(Form)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(10)
self.label.setFont(font)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.label_2 = QtWidgets.QLabel(Form)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
self.label_2.setSizePolicy(sizePolicy)
self.label_2.setWordWrap(True)
self.label_2.setObjectName("label_2")
self.verticalLayout.addWidget(self.label_2)
self.checkBox = QtWidgets.QCheckBox(Form)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.checkBox.sizePolicy().hasHeightForWidth())
self.checkBox.setSizePolicy(sizePolicy)
self.checkBox.setObjectName("checkBox")
self.verticalLayout.addWidget(self.checkBox)
self.label_3 = QtWidgets.QLabel(Form)
self.label_3.setObjectName("label_3")
self.verticalLayout.addWidget(self.label_3)
self.lineEdit = QtWidgets.QLineEdit(Form)
self.lineEdit.setObjectName("lineEdit")
self.verticalLayout.addWidget(self.lineEdit)
self.label_4 = QtWidgets.QLabel(Form)
self.label_4.setObjectName("label_4")
self.verticalLayout.addWidget(self.label_4)
self.lineEdit_2 = QtWidgets.QLineEdit(Form)
self.lineEdit_2.setObjectName("lineEdit_2")
self.verticalLayout.addWidget(self.lineEdit_2)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem)
self.widget = QtWidgets.QWidget(Form)
self.widget.setObjectName("widget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget)
self.horizontalLayout.setObjectName("horizontalLayout")
spacerItem1 = QtWidgets.QSpacerItem(424, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem1)
self.pushButton = QtWidgets.QPushButton(self.widget)
self.pushButton.setObjectName("pushButton")
self.horizontalLayout.addWidget(self.pushButton)
self.verticalLayout.addWidget(self.widget)

self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)

def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "Sort"))
self.label_2.setText(_translate("Form", "Running Curation Club will search your game folder and your mods for Creation Club content and sort them into individual mods in Mod Organizer."))
self.checkBox.setText(_translate("Form", "Combine all Creation Club content into a single mod."))
self.label_3.setText(_translate("Form", "Individual Mod Template"))
self.lineEdit.setText(_translate("Form", "Creation Club - {NAME}"))
self.label_4.setText(_translate("Form", "Combined Mod Name"))
self.lineEdit_2.setText(_translate("Form", "Creation Club Content"))
self.pushButton.setText(_translate("Form", "Sort"))
Loading

0 comments on commit c262c41

Please sign in to comment.