`
}
this.initTemplate();
this.generateContent();
this.initCss();
addons.emmiter.on("game-load", () => {
detourAfter(Engine.addonsPanel, "manageVisible", () => {
if (!this.addedCustomAddons) {
this.addCustomAddonButton();
this.addedCustomAddons = true;
};
addons.emmiter.emit("addons-toggle");
});
});
})();
/*
POPUP MENU
kept for compatibility reasons...
*/
this.popupMenu = function(menu, e) {
window.Engine.interface.showPopupMenu(menu, e);
};
/*
SETTINGS MODULE
provides custom settings
*/
this.settings = new (function() {
var self = this;
var extraSettings = [];
var $extraSettings, $scrollPane;
addons.dictionary.add("addon_settings", {
pl: "Ustawienia dodatków",
en: "Addon settings"
})
if (!Storage.get("addonsettings")) {
Storage.set("addonsettings", {});
};
this.init = function() {
var _old = Engine.settings.toggle;
Engine.settings.toggle = function() {
var ret = _old.apply(this, arguments);
self.manageExtraSettings();
addons.emmiter.emit("settings-toggle");
return ret;
};
};
this.updateSettingTable = function() {
$extraSettings = document.createElement("div");
$extraSettings.classList.add("seccond-c");
var $header = document.createElement("h2");
$header.classList.add("settings-addons");
$header.innerHTML = "
"+_txt("addon_settings")+"";
$extraSettings.appendChild($header);
var $list = document.createElement("ul");
$list.classList.add("hero-options");
var html = "", setting, enabled;
for (var i=0; i
"+setting.txt+"";
};
$list.innerHTML = html;
$list.addEventListener("click", this.toggleSetting);
$extraSettings.appendChild($list);
};
this.toggleSetting = function(e) {
const path = e.composedPath(); // e.path tylko na chrome jest, upsik
for (var i=0; i";
}
$shortcut.addEventListener("click", () => {
this.loadDisplay(options.id);
});
$shortcut.addEventListener("contextmenu", e => {
e.preventDefault();
this.moveDisplayToWindow(options.id);
});
$($shortcut).tip(options.name);
$scrollContent.appendChild($shortcut);
list.push({
$: $element,
$short: $shortcut,
id: options.id,
name: options.name,
wndStyle: options.wndStyle,
noTitle: options.noTitle,
noForcedWndHeight: options.noForcedWndHeight
})
}
this.moveDisplayToWindow = function(id) {
var display = this.getDisplayById(id);
display.$short.style["display"] = "none";
if (currentDisplay == display) {
//display.$.remove();
//$title.innerHTML = "";
//currentDisplay = false;
for (var i=0; i {
var html = display.$.parentElement.innerHTML;
display.$.remove();
hwnd.setContent(html);
this.removeDisplayWindow(display);
hwnd.getInnerWnd().fadeAndRemove();
}
});
hwnd.$.style.width = "241px;";
if (!display.noForcedWndHeight) hwnd.$.style.height = display.noTitle ? "290px" : "260px";
if (display.wndStyle) {
Object.assign(hwnd.$.style, display.wndStyle);
}
hwnd.setHeader(display.noTitle ? "" : display.name);
hwnd.setContent(display.$);
const innerWnd = hwnd.getInnerWnd();
innerWnd.setTransparentWindow();
innerWnd.changeDraggableContainment('.game-window-positioner'); // zmienili z dragable na draggable, ktoś umie angielski
//innerWnd.setSavePosWnd("display_"+display.id, {
// x: '251',
// y: '100'
//});
//$('.alerts-layer').append(hwnd.$);
innerWnd.updatePos();
}
this.removeDisplayWindow = function(display) {
if (movedToWindow.length == list.length) {
hidden = false;
$wrapper.style["display"] = "block";
this.loadDisplay(display.id);
}
display.$short.style["display"] = "block";
movedToWindow.splice(movedToWindow.indexOf(display.id),1);
Storage.set("addonDisplay/movedToWindow", movedToWindow);
}
this.loadDefaultDisplay = function() {
var lastId = Storage.get("addonDisplay/active");
if (lastId == null) lastId = list[0].id;
self.loadDisplay(lastId);
self.createDisplayWindows();
}
this.getDisplayById = function(id) {
for (var i=0; i- na dole są ikonki dodatków korzystających z tej mechaniki. Klikając je można się między nimi przełączać.
- kliknięcie ikonki prawym przyciskiem myszy spowoduje przeniesienie dodatku spod toreb do oddzielnego okienka,
które można dowolnie przesuwać.
- jeżeli masz mały monitor, to w ustawieniach jest opcja włączenia przycisku do ukrywania toreb, który znajduje się obok zestawów eq.`
:
`It appears that an addon which uses the so-called addon display system has been installed. You can find it under the bags in your inventory. Usage:
- if you have multiple addons that use this system, you can switch between their displays by using the icons located under the display.
- right-clicking an icon will cause the display to be moved to a separate window, which can then be freely moved.
- in case the display doesn't fit on your screen, you can enable a bag-hiding button in the game settings. Upon enabling, it will appear next to the battleset buttons.
`,
css: {
"max-width": "350px"
}
})
Storage.set("addonDisplay/tutorial", true);
}
this.catchCLLTable = function() {
var timers = document.getElementsByClassName("cll-timers");
if (timers.length) {
addons.settings.add({
txt: _l() == "pl" ? "Umieszczaj minutniki klanowe pod torbami" : "Show guild timers under the bags",
id: "API_clan_timer_display",
default: false
});
addons.emmiter.on("toggle-addon-API_clan_timer_display", () => message(_l() == "pl" ? "Zmiany będą widoczne po odświeżeniu gry" : "Changes will come into effect once the page has been reloaded"));
if (!addons.settings.get("API_clan_timer_display")) return;
while(timers.length) {
var $timer = timers[0];
$($timer).trigger("mouseenter");
$($timer).draggable("disable");
Object.assign($timer.style, {
"position": "static",
"margin-top": "3px",
"margin-left": "1px"
});
var css = $timer.getAttribute("style");
$timer.setAttribute("style", css.replace("static;", "static !important;"));
var name = $timer.getAttribute("id").split("cll-timers-")[1].replace(/_/g, " ");
this.add({
name: _l() == "pl" ? "Minutniki klanowe "+name : "Clan timers "+name,
element: $timer,
id: "cll-timer-"+name,
icon: ""+protocol+"//grooove.pl/favicon.ico",
noTitle: true
})
}
}
}
this.onGameLoad = function() {
self.catchCLLTable();
if (list.length > 0) {
self.loadDefaultDisplay();
}
}
this.initSettings = function() {
addons.settings.add({
txt: _l() == "pl" ? "Przycisk ukrycia toreb" : "Bag hide button",
id: "API_hide_bag",
default: false
});
var buttonState = addons.settings.get("API_hide_bag");
this.toggleBagHideBtt(buttonState, true);
addons.emmiter.on("toggle-addon-API_hide_bag", this.toggleBagHideBtt);
var show = Storage.get("addonDisplay/showBag");
if (show == null || !buttonState) show = true;
this.toggleBag(show);
}
this.toggleBagHideBtt = function(show, init) {
$bagHide.style["display"] = show ? "block" : "none";
if (!init) self.toggleBag(true);
}
this.toggleBag = function(show) {
show = typeof(show) != "object" ? show : $bag.style["display"] == "none";
$bag.style["display"] = show ? "block" : "none";
$bagBG.style["display"] = show ? "block" : "none";
$bagWrapper.style["height"] = show ? "" : "0px";
if (show) $wrapper.style["margin-top"] = 0;
else $wrapper.style["margin-top"] = "-205px";
Storage.set("addonDisplay/showBag", show);
}
this.init = function() {
if (Storage.get("addonDisplay") == null) {
Storage.set("addonDisplay", {});
}
var moved = Storage.get("addonDisplay/movedToWindow")
if (moved) movedToWindow = moved;
$wrapper = document.querySelector(".b_wrapper");
$wrapper.innerHTML = "";
$scrollWrapper = document.createElement("div");
$scrollWrapper.classList.add("addonDisplay-scroll-wrapper");
$scrollContent = document.createElement("div");
$scrollContent.classList.add("addonDisplay-scroll-content");
$scrollWrapper.appendChild($scrollContent);
$wrapper.appendChild($scrollWrapper);
$title = document.createElement("div");
$title.classList.add("addonDisplay-header");
// $wrapper.appendChild($title);
$singleWrapper = document.createElement("div");
$singleWrapper.classList.add("addonDisplay-single-wrapper");
$wrapper.appendChild($singleWrapper);
$bagHide = document.createElement("div");
$bagHide.classList.add("addonDisplay-hide-bag");
$bagHide.addEventListener("click", this.toggleBag);
$bagHide.dataset["tip"] = "ukryj/pokaż torbę";
$bag = document.querySelector(".inventory-grid");
$bagBG = document.querySelector(".inventory-grid-bg");
$bagWrapper = document.querySelector(".inventory_wrapper");
$bagWrapper.appendChild($bagHide);
var style = `
.b_wrapper {
width: 241px;
display: none;
background: rgba(0,0,0,0.3);
color: white;
margin-left: 10px;
}
.addonDisplay-single-wrapper {
overflow: hidden;
width: 100%;
padding: 5px;
height: 260px;
}
.addonDisplay-single-wrapper.long {
height: 290px;
}
.addonDisplay-single-display {
color: white;
width: 100%;
overflow-y: scroll;
overflow-x: hidden;
height: 260px;
padding-right: 17px;
margin-top: 4px;
}
.addonDisplay-single-display.long {
height: 290px;
}
.addonDisplay-single-display.noForcedWndHeight {
height: initial;
}
.addonDisplay-single-wrapper > .addonDisplay-single-display.long {
height: 302px;
margin-top: -7px;
}
.addonDisplay-header {
border-bottom: 1px gray dashed;
font-size: 125%;
padding: 5px;
height: 20px;
line-height: 20px;
}
.addonDisplay-scroll-wrapper {
width: 100%;
height: 27px;
border-bottom: 1px gray dashed;
}
.addonDisplay-scroll-content > div {
float: left;
width: 24.5px;
height: 25px;
line-height: 25px;
font-size: 110%;
text-align: center;
border: 1px solid black;
border-collapse: collapse;
background: rgba(0,0,0,0.08);
cursor: url(${protocol}//aldous.margonem.pl/img/gui/cursor/5.png), auto;;
transition: background .1s ease-in-out;
}
.addonDisplay-scroll-content > div:hover {
background: rgba(55,55,55,0.47);
}
.addonDisplay-scroll-content > div.active {
background: rgba(70,70,70,0.47);
}
.addonDisplay-hide-bag {
background: url(https://i.imgur.com/PpUPE6G.png);
width: 32px;
height: 32px;
position: absolute;
top: -35px;
left: 73px;
display: none;
cursor: ${addons.cursors.pointer};
}
`;
var $style = document.createElement("style");
$style.innerHTML = style;
document.head.appendChild($style);
for (let i=0; i this.init());
})(this);
/*detourBefore(Engine.windowManager, "add", () => {
console.trace();
});*/
})();
});