Last active
December 28, 2021 23:00
-
-
Save Rio6/ca6b9e3dfdcf5f8c64f3720b9b1237a3 to your computer and use it in GitHub Desktop.
A menu that lets you copy all your fleets to another account. Note: the overwrite button overwrites all fleets in the target account, not just one fleet.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// edited from original copy page so it only copies the fleets | |
// | |
(function() { | |
ui.copyPage = function() { | |
return ui.inScreen("menu", "Copy Import/Export", function() { | |
onecup.padding_bottom(100); | |
onecup.position("relative"); | |
onecup.textarea("#commanderCode", function() { | |
onecup.position("absolute"); | |
onecup.top(70); | |
onecup.left(10); | |
onecup.width(500); | |
onecup.bottom(60); | |
onecup.border("1px solid rgba(255,255,255,.3)"); | |
onecup.background_color("rgba(0,0,0,.3)"); | |
onecup.color("rgba(255,255,255,.9)"); | |
onecup.font_size(8); | |
//return onecup.text(commander.fleet); | |
return onecup.text(JSON.stringify(commander.fleet)); | |
}); | |
onecup.div(".hover-black", function() { | |
onecup.position("absolute"); | |
onecup.bottom(10); | |
onecup.left(10); | |
onecup.height(40); | |
onecup.width(245); | |
onecup.color("white"); | |
onecup.font_size(20); | |
onecup.text_align("center"); | |
onecup.line_height(40); | |
onecup.text("Overwrite"); | |
return onecup.onclick(function() { | |
var data, json; | |
console.log("here"); | |
data = onecup.lookup('#commanderCode').value; | |
json = JSON.parse(data); | |
//window.commander = json; | |
window.commander.fleet = json; | |
//console.log("local save"); | |
//commander.ts = Date.now(); | |
//db.save("commander", commander); | |
//rootNet?.sendPlayer() | |
account.rootSave(); | |
//return location.reload(); | |
ui.go("menu"); | |
}); | |
}); | |
return onecup.div(".hover-black", function() { | |
onecup.position("absolute"); | |
onecup.bottom(10); | |
onecup.left(255); | |
onecup.height(40); | |
onecup.width(245); | |
onecup.color("white"); | |
onecup.font_size(20); | |
onecup.text_align("center"); | |
onecup.line_height(40); | |
onecup.text("Merge"); | |
return onecup.onclick(function() { | |
var createMergedFleets = function(fleetA, fleetB) { | |
if(!fleetA) return fleetB; | |
if(!fleetB) return fleetA; | |
var newFleet = {ais: {}, selection: fleetA.selection}; | |
var index = 0; | |
for(let fleet of [fleetA, fleetB]) { | |
let keyTable = {}; | |
for(let i in fleet) { | |
if(fleet[i] && /[0-9]+,[0-9]+/.test(i)) { | |
let tmp = i.split(","), row = tmp[0], col = tmp[1]; | |
if(!keyTable[row]) { | |
keyTable[row] = index++; | |
} | |
let key = keyTable[row] + "," + col; | |
newFleet[key] = fleet[i]; | |
} | |
} | |
for(let i in fleet.ais) { | |
if(typeof keyTable[i] !== "undefined") | |
newFleet.ais[keyTable[i]] = fleet.ais[i]; | |
} | |
} | |
return newFleet; | |
}; | |
var data, json; | |
console.log("here"); | |
data = onecup.lookup('#commanderCode').value; | |
json = JSON.parse(data); | |
var newFleet = createMergedFleets(window.commander.fleet, json); | |
if(window.commander.fleet.archive || json.archive) | |
newFleet.archive = createMergedFleets(window.commander.fleet.archive, json.archive); | |
window.commander.fleet = newFleet; | |
account.rootSave(); | |
ui.go("menu"); | |
}); | |
}); | |
}); | |
}; | |
}).call(this); | |
// Fleet screen draw hook | |
var copyPage = copyPage || { | |
fleetUIHook: window.fleetUI | |
} | |
window.fleetUI = function() { | |
if(!commander) return; | |
onecup.div(".hover-black", function() { | |
onecup.margin(20); | |
onecup.text_align("center"); | |
onecup.color("white"); | |
onecup.text("Export/Import All Fleets"); | |
onecup.position("absolute"); | |
onecup.top(0); | |
onecup.right(64); | |
onecup.z_index("2"); | |
onecup.onclick(function(e) { | |
ui.go("copy"); | |
}); | |
}); | |
return copyPage.fleetUIHook.call(this); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment