Shaderpack settings nearly finalized.
Added saving function, add pack button, drag and drop functionality to the button, ability to refresh the list of packs. Added height limit to the dropdown with scrolling. Cleaned up some styles.
This commit is contained in:
@@ -208,3 +208,23 @@ exports.setEnabledShaderpack = function(instanceDir, pack){
|
||||
}
|
||||
fs.writeFileSync(optionsShaders, buf, {encoding: 'utf-8'})
|
||||
}
|
||||
|
||||
/**
|
||||
* Add shaderpacks.
|
||||
*
|
||||
* @param {FileList} files The files to add.
|
||||
* @param {string} instanceDir The path to the server instance directory.
|
||||
*/
|
||||
exports.addShaderpacks = function(files, instanceDir) {
|
||||
|
||||
const p = path.join(instanceDir, 'shaderpacks')
|
||||
|
||||
exports.validateDir(p)
|
||||
|
||||
for(let f of files) {
|
||||
if(SHADER_REGEX.exec(f.name) != null) {
|
||||
fs.moveSync(f.path, path.join(p, f.name))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -267,6 +267,7 @@ settingsNavDone.onclick = () => {
|
||||
saveModConfiguration()
|
||||
ConfigManager.save()
|
||||
saveDropinModConfiguration()
|
||||
saveShaderpackSettings()
|
||||
switchView(getCurrentView(), VIEWS.landing)
|
||||
}
|
||||
|
||||
@@ -728,6 +729,8 @@ document.addEventListener('keydown', (e) => {
|
||||
if(getCurrentView() === VIEWS.settings && selectedSettingsTab === 'settingsTabMods'){
|
||||
if(e.key === 'F5'){
|
||||
reloadDropinMods()
|
||||
saveShaderpackSettings()
|
||||
resolveShaderpacksForUI()
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -780,6 +783,44 @@ function setShadersOptions(arr, selected){
|
||||
}
|
||||
}
|
||||
|
||||
function saveShaderpackSettings(){
|
||||
let sel = 'OFF'
|
||||
for(let opt of document.getElementById('settingsShadersOptions').childNodes){
|
||||
if(opt.hasAttribute('selected')){
|
||||
sel = opt.getAttribute('value')
|
||||
}
|
||||
}
|
||||
DropinModUtil.setEnabledShaderpack(CACHE_SETTINGS_INSTANCE_DIR, sel)
|
||||
}
|
||||
|
||||
function bindShaderpackButton() {
|
||||
const spBtn = document.getElementById('settingsShaderpackButton')
|
||||
spBtn.onclick = () => {
|
||||
const p = path.join(CACHE_SETTINGS_INSTANCE_DIR, 'shaderpacks')
|
||||
DropinModUtil.validateDir(p)
|
||||
shell.openItem(p)
|
||||
}
|
||||
spBtn.ondragenter = e => {
|
||||
e.dataTransfer.dropEffect = 'move'
|
||||
spBtn.setAttribute('drag', '')
|
||||
e.preventDefault()
|
||||
}
|
||||
spBtn.ondragover = e => {
|
||||
e.preventDefault()
|
||||
}
|
||||
spBtn.ondragleave = e => {
|
||||
spBtn.removeAttribute('drag')
|
||||
}
|
||||
|
||||
spBtn.ondrop = e => {
|
||||
spBtn.removeAttribute('drag')
|
||||
e.preventDefault()
|
||||
|
||||
DropinModUtil.addShaderpacks(e.dataTransfer.files, CACHE_SETTINGS_INSTANCE_DIR)
|
||||
resolveShaderpacksForUI()
|
||||
}
|
||||
}
|
||||
|
||||
// Server status bar functions.
|
||||
|
||||
/**
|
||||
@@ -846,6 +887,7 @@ function prepareModsTab(first){
|
||||
resolveShaderpacksForUI()
|
||||
bindDropinModsRemoveButton()
|
||||
bindDropinModFileSystemButton()
|
||||
bindShaderpackButton()
|
||||
bindModsToggleSwitch()
|
||||
loadSelectedServerOnModsTab()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user