Compare commits
	
		
			2 Commits 
		
	
	
		
			1dbcf8af69
			...
			7fcb584843
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								 | 
						7fcb584843 | |
| 
							
							
								 | 
						d3214ed1c9 | 
											
												Binary file not shown.
											
										
									
								| 
		 After Width: | Height: | Size: 4.3 KiB  | 
											
												Binary file not shown.
											
										
									
								| 
		 After Width: | Height: | Size: 74 KiB  | 
| 
						 | 
					@ -10,6 +10,7 @@ export default ({ replace, replaceOne, replaceRawCode, dictionary, matchOne, mat
 | 
				
			||||||
    // Replace assets
 | 
					    // Replace assets
 | 
				
			||||||
    replaceOne(/(\(4,"crown",4,")[^"]+"\),/g, "$1" + assets.crownIcon + "\"),");
 | 
					    replaceOne(/(\(4,"crown",4,")[^"]+"\),/g, "$1" + assets.crownIcon + "\"),");
 | 
				
			||||||
    replaceOne(/(\(6,"territorial\.io",6,")[^"]+"\),/g, "$1" + assets.fxClientLogo + "\"),");
 | 
					    replaceOne(/(\(6,"territorial\.io",6,")[^"]+"\),/g, "$1" + assets.fxClientLogo + "\"),");
 | 
				
			||||||
 | 
					    replaceOne(/(\(22,"logo",8,")[^"]+"\)/g, "$1" + assets.smallLogo + "\")");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Add FX Client version info to the game version window
 | 
					    // Add FX Client version info to the game version window
 | 
				
			||||||
    replaceRawCode(`ar.oa(4,1,new s8("ℹ️ "+Translations.txt[84],gameVersion+"<br><a href='"+ah.aC5+"' target='_blank'>"+ah.aC5+"</a>",`,
 | 
					    replaceRawCode(`ar.oa(4,1,new s8("ℹ️ "+Translations.txt[84],gameVersion+"<br><a href='"+ah.aC5+"' target='_blank'>"+ah.aC5+"</a>",`,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
const fx_version = '0.6.4.9'; // FX Client Version
 | 
					const fx_version = '0.6.5'; // FX Client Version
 | 
				
			||||||
const fx_update = 'Jun 26'; // FX Client Last Updated
 | 
					const fx_update = 'Jul 5'; // FX Client Last Updated
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (localStorage.getItem("fx_winCount") == undefined || localStorage.getItem("fx_winCount") == null) {
 | 
					if (localStorage.getItem("fx_winCount") == undefined || localStorage.getItem("fx_winCount") == null) {
 | 
				
			||||||
    var wins_counter = 0;
 | 
					    var wins_counter = 0;
 | 
				
			||||||
| 
						 | 
					@ -211,6 +211,49 @@ var settingsManager = new (function() {
 | 
				
			||||||
        // should probably firgure out a way to do this without reloading - // You can't do it, localstorages REQUIRE you to reload
 | 
					        // should probably firgure out a way to do this without reloading - // You can't do it, localstorages REQUIRE you to reload
 | 
				
			||||||
        window.location.reload();
 | 
					        window.location.reload();
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const fileInput = document.createElement("input");
 | 
				
			||||||
 | 
					    fileInput.type = "file";
 | 
				
			||||||
 | 
					    function handleFileSelect(event) {
 | 
				
			||||||
 | 
					        const input = event.target;
 | 
				
			||||||
 | 
					        /** @type {File} */
 | 
				
			||||||
 | 
					        const selectedFile = input.files[0];
 | 
				
			||||||
 | 
					        if (!selectedFile) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        input.removeEventListener("change", handleFileSelect);
 | 
				
			||||||
 | 
					        input.value = "";
 | 
				
			||||||
 | 
					        if (!selectedFile.name.endsWith(".json")) return alert("Invalid file format");
 | 
				
			||||||
 | 
					        const fileReader = new FileReader();
 | 
				
			||||||
 | 
					        fileReader.onload = function() {
 | 
				
			||||||
 | 
					            let result;
 | 
				
			||||||
 | 
					            try {    
 | 
				
			||||||
 | 
					                result = JSON.parse(fileReader.result);
 | 
				
			||||||
 | 
					                if (confirm("Warning: This will override all current settings, click \"OK\" to confirm")) settings = result;
 | 
				
			||||||
 | 
					                localStorage.setItem("fx_settings", JSON.stringify(settings));
 | 
				
			||||||
 | 
					                window.location.reload();
 | 
				
			||||||
 | 
					            } catch (error) {
 | 
				
			||||||
 | 
					                alert("Error\n" + error)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        fileReader.readAsText(selectedFile);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    this.importFromFile = function() {
 | 
				
			||||||
 | 
					        fileInput.click();
 | 
				
			||||||
 | 
					        fileInput.addEventListener('change', handleFileSelect);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    // https://stackoverflow.com/a/34156339
 | 
				
			||||||
 | 
					    function saveFile(content, fileName, contentType) {
 | 
				
			||||||
 | 
					        var a = document.createElement("a");
 | 
				
			||||||
 | 
					        var file = new Blob([content], {type: contentType});
 | 
				
			||||||
 | 
					        a.href = URL.createObjectURL(file);
 | 
				
			||||||
 | 
					        a.download = fileName;
 | 
				
			||||||
 | 
					        a.click();
 | 
				
			||||||
 | 
					        URL.revokeObjectURL(a.href);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    this.exportToFile = function() {
 | 
				
			||||||
 | 
					        saveFile(JSON.stringify(settings), 'FX_client_settings.json', 'application/json');
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.syncFields = function() {
 | 
					    this.syncFields = function() {
 | 
				
			||||||
        Object.keys(inputFields).forEach(function(key) { inputFields[key].value = settings[key]; });
 | 
					        Object.keys(inputFields).forEach(function(key) { inputFields[key].value = settings[key]; });
 | 
				
			||||||
        Object.keys(checkboxFields).forEach(function(key) { checkboxFields[key].checked = settings[key]; });
 | 
					        Object.keys(checkboxFields).forEach(function(key) { checkboxFields[key].checked = settings[key]; });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -111,6 +111,8 @@
 | 
				
			||||||
        <footer>
 | 
					        <footer>
 | 
				
			||||||
            <button onclick="settingsManager.resetAll()">Reset Settings</button>
 | 
					            <button onclick="settingsManager.resetAll()">Reset Settings</button>
 | 
				
			||||||
            <button onclick="settingsManager.save()">Save Settings</button>
 | 
					            <button onclick="settingsManager.save()">Save Settings</button>
 | 
				
			||||||
 | 
					            <button onclick="settingsManager.importFromFile()">Import</button>
 | 
				
			||||||
 | 
					            <button onclick="settingsManager.exportToFile()">Export</button>
 | 
				
			||||||
        </footer>
 | 
					        </footer>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="window scrollable selectable" id="playerlist" style="display: none;">
 | 
					    <div class="window scrollable selectable" id="playerlist" style="display: none;">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,7 @@
 | 
				
			||||||
	border-width    : 2px;
 | 
						border-width    : 2px;
 | 
				
			||||||
	border-width    : calc(0.15 * (1vw + 1vh));
 | 
						border-width    : calc(0.15 * (1vw + 1vh));
 | 
				
			||||||
	font-size       : 20px;
 | 
						font-size       : 20px;
 | 
				
			||||||
	font-size       : calc(14px + ((0.4 * (0.8vw + 1vh)) + 0.15rem));
 | 
						font-size       : calc(14px + ((0.5 * (1.1vw - 0.1vh)) + 0.14rem));
 | 
				
			||||||
	max-height      : 90%;
 | 
						max-height      : 90%;
 | 
				
			||||||
	transition      : 0.2s;
 | 
						transition      : 0.2s;
 | 
				
			||||||
	z-index         : 10;
 | 
						z-index         : 10;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue