Advertisement
Nickoladze

Untitled

Mar 30th, 2023
876
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 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) {
  2.     var t = e("jquery")
  3.       , n = e("Backbone")
  4.       , i = e("PoE/Handlebars/TemplateCollection")
  5.       , o = e("PoE/PassiveSkillTree/Skill")
  6.       , r = e("PoE/PassiveSkillTree/SkillPopup");
  7.     e("PoE/Geom/Bounds");
  8.     return e("text!PoE/WeaponTree/WeaponTree.hbt"),
  9.     n.View.extend({
  10.         initialize: function(e) {
  11.             this.sprites = e.sprites,
  12.             this.render()
  13.         },
  14.         mousemove: function(e) {
  15.             var n = e.currentTarget.getAttribute("data-node");
  16.             if (n != this.model.startNode) {
  17.                 var i = {
  18.                     x: t(window).scrollLeft(),
  19.                     y: t(window).scrollTop(),
  20.                     width: t(window).width(),
  21.                     height: t(window).height()
  22.                 }
  23.                   , a = {
  24.                     x: e.pageX - i.x,
  25.                     y: e.pageY - i.y,
  26.                     viewport: i
  27.                 };
  28.                 if (!(n in this.popups)) {
  29.                     var s = new o(this.model.nodes[n]);
  30.                     s.type = "crucible",
  31.                     this.popups[n] = new r(s)
  32.                 }
  33.                 this.popups[n].handleMouseover(a)
  34.             }
  35.         },
  36.         mouseleave: function(e) {
  37.             var t = e.currentTarget.getAttribute("data-node");
  38.             t in this.popups && (this.popups[t].handleMouseout(),
  39.             this.popups[t].destroy(),
  40.             delete this.popups[t])
  41.         },
  42.         render: function() {
  43.             this.popups = [];
  44.             var e = this
  45.               , t = this.$el
  46.               , n = this.model;
  47.             n.sprites = this.sprites,
  48.             i.load("PoE/WeaponTree/WeaponTree.hbt").done((function(e) {
  49.                 t.html(e(n))
  50.             }
  51.             )).then((function() {
  52.                 var n = t[0].querySelectorAll(".node");
  53.                 for (var i in n)
  54.                     n.hasOwnProperty(i) && (n[i].addEventListener("mouseenter", (function(t) {
  55.                         e.mousemove(t)
  56.                     }
  57.                     )),
  58.                     n[i].addEventListener("mousemove", (function(t) {
  59.                         e.mousemove(t)
  60.                     }
  61.                     )),
  62.                     n[i].addEventListener("mouseleave", (function(t) {
  63.                         e.mouseleave(t)
  64.                     }
  65.                     )))
  66.             }
  67.             ))
  68.         }
  69.     })
  70. }
  71. )),
  72. define("PoE/WeaponTree/WeaponTreeRenderer", ["require", "jquery", "Handlebars", "PoE/WeaponTree/WeaponTree"], (function(e) {
  73.     var t = e("jquery")
  74.       , n = e("Handlebars")
  75.       , i = e("PoE/WeaponTree/WeaponTree")
  76.       , o = {
  77.         SPRITES: void 0,
  78.         init: function(e) {
  79.             if (this.registerHelper(),
  80.             void 0 !== this.SPRITES) {
  81.                 this.spriteCoords = {};
  82.                 for (var n = 0, o = Object.entries(this.SPRITES); n < o.length; n++) {
  83.                     var r = _slicedToArray(o[n], 2)
  84.                       , a = r[0]
  85.                       , s = r[1];
  86.                     this.spriteCoords[a] = {};
  87.                     for (var l = 0, c = Object.values(s); l < c.length; l++)
  88.                         for (var d = c[l], u = 0, h = Object.entries(d.coords); u < h.length; u++) {
  89.                             var p = _slicedToArray(h[u], 2)
  90.                               , f = p[0]
  91.                               , v = p[1];
  92.                             this.spriteCoords[a][f] = v
  93.                         }
  94.                 }
  95.                 for (var m in e) {
  96.                     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++) {
  97.                         var T = _slicedToArray(k[C], 2)[1]
  98.                           , S = 100 * T.orbit - y;
  99.                         T.stroke = 10,
  100.                         T.or = 30,
  101.                         T.ir = 21,
  102.                         T.x = Math.round(T.or + 100 * T.orbit),
  103.                         T.y = Math.round((b + S + y) / 2) - 100 * T.orbitIndex,
  104.                         P = Math.min(P, T.x - T.or),
  105.                         E = Math.max(E, T.x + T.or),
  106.                         w = Math.min(w, T.y - T.or),
  107.                         x = Math.max(x, T.y + T.or)
  108.                     }
  109.                     var L = Math.round(b / 2)
  110.                       , I = Math.max(Math.abs(w - L), Math.abs(x - L));
  111.                     w = L - I,
  112.                     x = L + I,
  113.                     g.frameX = P,
  114.                     g.frameY = w,
  115.                     g.frameW = E - P,
  116.                     g.frameH = x - w,
  117.                     new i({
  118.                         el: t("#" + g.elementId),
  119.                         model: g,
  120.                         sprites: this.SPRITES
  121.                     })
  122.                 }
  123.             } else
  124.                 console.error("No WeaponTree sprites! Cannot render")
  125.         },
  126.         getSpriteCoords: function(e, t) {
  127.             return this.spriteCoords[e][t] || null
  128.         },
  129.         registerHelper: function() {
  130.             var e = this;
  131.             n.registerHelper("drawWeaponTreeLines", (function(t) {
  132.                 return new n.SafeString(e.drawWeaponTreeLines(t))
  133.             }
  134.             )),
  135.             n.registerHelper("drawWeaponTreeNode", (function() {
  136.                 var t;
  137.                 return new n.SafeString((t = e.drawWeaponTreeNode).call.apply(t, [this].concat(Array.prototype.slice.call(arguments))))
  138.             }
  139.             )),
  140.             n.registerHelper("fixIconPaths", (function(e) {
  141.                 return /\/gen\/image\//.test(e) ? e = e.split(/[\\/]/).pop().replace(/\.[^/.]+$/, "") : /\/image\/Art\/2DArt\//.test(e) && (e = e.match(/\/(Art\/2DArt\/.*)$/).at(1)),
  142.                 e
  143.             }
  144.             ))
  145.         },
  146.         drawWeaponTreeLine: function(e, t) {
  147.             var n = []
  148.               , i = parseFloat(e.x)
  149.               , r = parseFloat(e.y);
  150.             for (var a in e.out) {
  151.                 var s = t[e.out[a]];
  152.                 if (s) {
  153.                     var l = parseFloat(s.x)
  154.                       , c = parseFloat(s.y)
  155.                       , d = Math.sqrt(Math.pow(Math.abs(l - i), 2) + Math.pow(Math.abs(c - r), 2))
  156.                       , u = r > c ? -28 : 28
  157.                       , h = e.allocated && s.allocated ? "CrucibleEdgeActive" : "CrucibleEdgeNormal"
  158.                       , p = o.getSpriteCoords("line", h);
  159.                     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>'))
  160.                 }
  161.             }
  162.             return n
  163.         },
  164.         drawWeaponTreeLines: function(e) {
  165.             for (var t = [], n = 0, i = Object.values(e); n < i.length; n++) {
  166.                 var r = i[n];
  167.                 t.push.apply(t, _toConsumableArray(o.drawWeaponTreeLine(r, e)))
  168.             }
  169.             return t.join("\n")
  170.         },
  171.         drawWeaponTreeNode: function(e, t) {
  172.             var i = []
  173.               , r = n.helpers.fixIconPaths(e.icon)
  174.               , a = o.getSpriteCoords("normalActive", e.icon);
  175.             if (a) {
  176.                 var s = a.x * (2 * e.ir / a.w)
  177.                   , l = a.y * (2 * e.ir / a.h);
  178.                 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, ')"/>'))
  179.             }
  180.             var c = "CrucibleFrame".concat(e.isNotable ? "Notable" : e.isReward ? "Sell" : "").concat(e.allocated ? "Allocated" : "Normal");
  181.             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" />')),
  182.             i.join("")
  183.         }
  184.     };
  185.     return o
  186. }
  187. )),
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement