Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- define("PoE/WeaponTree/WeaponTree", ["require", "jquery", "Backbone", "PoE/Handlebars/TemplateCollection", "PoE/PassiveSkillTree/Skill", "PoE/PassiveSkillTree/SkillPopup", "PoE/Geom/Bounds", "text!PoE/WeaponTree/WeaponTree.hbt"], (function(e) {
- var t = e("jquery")
- , n = e("Backbone")
- , i = e("PoE/Handlebars/TemplateCollection")
- , o = e("PoE/PassiveSkillTree/Skill")
- , r = e("PoE/PassiveSkillTree/SkillPopup");
- e("PoE/Geom/Bounds");
- return e("text!PoE/WeaponTree/WeaponTree.hbt"),
- n.View.extend({
- initialize: function(e) {
- this.sprites = e.sprites,
- this.render()
- },
- mousemove: function(e) {
- var n = e.currentTarget.getAttribute("data-node");
- if (n != this.model.startNode) {
- var i = {
- x: t(window).scrollLeft(),
- y: t(window).scrollTop(),
- width: t(window).width(),
- height: t(window).height()
- }
- , a = {
- x: e.pageX - i.x,
- y: e.pageY - i.y,
- viewport: i
- };
- if (!(n in this.popups)) {
- var s = new o(this.model.nodes[n]);
- s.type = "crucible",
- this.popups[n] = new r(s)
- }
- this.popups[n].handleMouseover(a)
- }
- },
- mouseleave: function(e) {
- var t = e.currentTarget.getAttribute("data-node");
- t in this.popups && (this.popups[t].handleMouseout(),
- this.popups[t].destroy(),
- delete this.popups[t])
- },
- render: function() {
- this.popups = [];
- var e = this
- , t = this.$el
- , n = this.model;
- n.sprites = this.sprites,
- i.load("PoE/WeaponTree/WeaponTree.hbt").done((function(e) {
- t.html(e(n))
- }
- )).then((function() {
- var n = t[0].querySelectorAll(".node");
- for (var i in n)
- n.hasOwnProperty(i) && (n[i].addEventListener("mouseenter", (function(t) {
- e.mousemove(t)
- }
- )),
- n[i].addEventListener("mousemove", (function(t) {
- e.mousemove(t)
- }
- )),
- n[i].addEventListener("mouseleave", (function(t) {
- e.mouseleave(t)
- }
- )))
- }
- ))
- }
- })
- }
- )),
- define("PoE/WeaponTree/WeaponTreeRenderer", ["require", "jquery", "Handlebars", "PoE/WeaponTree/WeaponTree"], (function(e) {
- var t = e("jquery")
- , n = e("Handlebars")
- , i = e("PoE/WeaponTree/WeaponTree")
- , o = {
- SPRITES: void 0,
- init: function(e) {
- if (this.registerHelper(),
- void 0 !== this.SPRITES) {
- this.spriteCoords = {};
- for (var n = 0, o = Object.entries(this.SPRITES); n < o.length; n++) {
- var r = _slicedToArray(o[n], 2)
- , a = r[0]
- , s = r[1];
- this.spriteCoords[a] = {};
- for (var l = 0, c = Object.values(s); l < c.length; l++)
- for (var d = c[l], u = 0, h = Object.entries(d.coords); u < h.length; u++) {
- var p = _slicedToArray(h[u], 2)
- , f = p[0]
- , v = p[1];
- this.spriteCoords[a][f] = v
- }
- }
- for (var m in e) {
- for (var g = e[m], y = 40, b = Math.round(460), w = b, x = 0, P = Math.round(460), E = 0, C = 0, k = Object.entries(g.nodes); C < k.length; C++) {
- var T = _slicedToArray(k[C], 2)[1]
- , S = 100 * T.orbit - y;
- T.stroke = 10,
- T.or = 30,
- T.ir = 21,
- T.x = Math.round(T.or + 100 * T.orbit),
- T.y = Math.round((b + S + y) / 2) - 100 * T.orbitIndex,
- P = Math.min(P, T.x - T.or),
- E = Math.max(E, T.x + T.or),
- w = Math.min(w, T.y - T.or),
- x = Math.max(x, T.y + T.or)
- }
- var L = Math.round(b / 2)
- , I = Math.max(Math.abs(w - L), Math.abs(x - L));
- w = L - I,
- x = L + I,
- g.frameX = P,
- g.frameY = w,
- g.frameW = E - P,
- g.frameH = x - w,
- new i({
- el: t("#" + g.elementId),
- model: g,
- sprites: this.SPRITES
- })
- }
- } else
- console.error("No WeaponTree sprites! Cannot render")
- },
- getSpriteCoords: function(e, t) {
- return this.spriteCoords[e][t] || null
- },
- registerHelper: function() {
- var e = this;
- n.registerHelper("drawWeaponTreeLines", (function(t) {
- return new n.SafeString(e.drawWeaponTreeLines(t))
- }
- )),
- n.registerHelper("drawWeaponTreeNode", (function() {
- var t;
- return new n.SafeString((t = e.drawWeaponTreeNode).call.apply(t, [this].concat(Array.prototype.slice.call(arguments))))
- }
- )),
- n.registerHelper("fixIconPaths", (function(e) {
- return /\/gen\/image\//.test(e) ? e = e.split(/[\\/]/).pop().replace(/\.[^/.]+$/, "") : /\/image\/Art\/2DArt\//.test(e) && (e = e.match(/\/(Art\/2DArt\/.*)$/).at(1)),
- e
- }
- ))
- },
- drawWeaponTreeLine: function(e, t) {
- var n = []
- , i = parseFloat(e.x)
- , r = parseFloat(e.y);
- for (var a in e.out) {
- var s = t[e.out[a]];
- if (s) {
- var l = parseFloat(s.x)
- , c = parseFloat(s.y)
- , d = Math.sqrt(Math.pow(Math.abs(l - i), 2) + Math.pow(Math.abs(c - r), 2))
- , u = r > c ? -28 : 28
- , h = e.allocated && s.allocated ? "CrucibleEdgeActive" : "CrucibleEdgeNormal"
- , p = o.getSpriteCoords("line", h);
- p && n.push('\n <g transform="translate('.concat(i, " ").concat(r - e.ir / 2, ") rotate(").concat(u, ')">\n <use xlink:href="#line/').concat(h, '" width="').concat(d, '" height="').concat(p.h * d / p.w, '"/>\n </g>'))
- }
- }
- return n
- },
- drawWeaponTreeLines: function(e) {
- for (var t = [], n = 0, i = Object.values(e); n < i.length; n++) {
- var r = i[n];
- t.push.apply(t, _toConsumableArray(o.drawWeaponTreeLine(r, e)))
- }
- return t.join("\n")
- },
- drawWeaponTreeNode: function(e, t) {
- var i = []
- , r = n.helpers.fixIconPaths(e.icon)
- , a = o.getSpriteCoords("normalActive", e.icon);
- if (a) {
- var s = a.x * (2 * e.ir / a.w)
- , l = a.y * (2 * e.ir / a.h);
- i.push(' <use xlink:href="#'.concat(e.allocated ? "normalActive" : "normalInactive", "/").concat(r, '" x="').concat(e.or - e.ir, '" y="').concat(e.or - e.ir, '" width="').concat(2 * e.ir, '" height="').concat(2 * e.ir, '" opacity="1" clip-path="circle(').concat(e.ir, " at ").concat(e.ir + s, " ").concat(e.ir + l, ')"/>'))
- }
- var c = "CrucibleFrame".concat(e.isNotable ? "Notable" : e.isReward ? "Sell" : "").concat(e.allocated ? "Allocated" : "Normal");
- return i.push('<use xlink:href="#frame/'.concat(c, '" class="node node-').concat(t, '" data-node="').concat(t, '" x="0" y="0" width="').concat(2 * e.or, '" height="').concat(2 * e.or, '" opacity="1" />')),
- i.join("")
- }
- };
- return o
- }
- )),
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement