Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mobViewer = {
- /*
- Object structure for mobData:
- {
- location: [x, y, z],
- primary: "primary mob str",
- mobs: [array, of, mobs],
- avgTier: ""
- }
- */
- mobData: [],
- npcData: [],
- dungeonData: [],
- init: function() {
- $.get("dat/gms_parsed.dat", function(data) {
- if (data == null || data.indexOf("@") == -1) return;
- var clusters = data.split("\n");
- for (i in clusters) {
- var cluster = clusters[i];
- if (cluster != null && cluster != "") {
- var mobs = {};
- var mobArr = cluster.split("@")[1].split(",");
- var avgTier = 0;
- for (j in mobArr) {
- if (mobArr[j] != "") {
- avgTier += parseFloat(mobArr[j].split(":")[1].split("-")[0]);
- var mob = mobArr[j].split(":")[0];
- if (!mobs.hasOwnProperty(mob)) {
- mobs[mob] = 1;
- } else {
- mobs[mob] ++;
- }
- }
- }
- avgTier /= mobArr.length-1;
- avgTier = Math.round(avgTier);
- avgTier = String(avgTier);
- // Find most frequent mob for primary mob
- var primaryMob = "";
- var primaryMobC = -1;
- for (j in mobs) {
- if (mobs[j] > primaryMobC) {
- primaryMob = j;
- primaryMobC = mobs[j];
- }
- }
- var obj = {
- location: {
- x: parseFloat(cluster.split("=")[0].split(",")[0]),
- y: parseFloat(cluster.split("=")[0].split(",")[1]),
- z: parseFloat(cluster.split("=")[0].split(",")[2])
- },
- primary: primaryMob,
- name: primaryMob,
- mobs: mobs,
- avgTier: avgTier
- };
- mobViewer.mobData.push(obj);
- }
- }
- for (i in mobViewer.mobData) {
- mobViewer.instantiateMarker(mobViewer.mobData[i]);
- }
- });
- // OPTIONAL: Make a separate plguin for NPCs (or just keep the code here...)
- $.get("dat/npcs", function(data) {
- if (data == null || data.indexOf(":") == -1) return;
- var clusters = data.split("\n");
- for (i in clusters) {
- var cluster = clusters[i];
- if (cluster != null && cluster != "") {
- var obj = {
- location: {
- x: parseFloat(cluster.split(":")[1].split(",")[0]),
- y: parseFloat(cluster.split(":")[1].split(",")[1]),
- z: parseFloat(cluster.split(":")[1].split(",")[2])
- },
- primary: "npc",
- name: cluster.split(":")[0],
- mobs: {},
- avgTier: ""
- };
- mobViewer.npcData.push(obj);
- }
- }
- for (i in mobViewer.npcData) {
- mobViewer.instantiateMarker(mobViewer.npcData[i]);
- }
- });
- // OPTIONAL: Make a separate plugin for Dungeons (or just keep the code here...)
- $.get("dat/dungeons", function(data) {
- if (data == null || data.indexOf(":") == -1) return;
- var clusters = data.split("\n");
- for (i in clusters) {
- var cluster = clusters[i];
- if (cluster != null && cluster != "") {
- var obj = {
- location: {
- x: parseFloat(cluster.split(":")[1].split(",")[0]),
- y: parseFloat(cluster.split(":")[1].split(",")[1]),
- z: parseFloat(cluster.split(":")[1].split(",")[2])
- },
- name: cluster.split(":")[0]
- };
- mobViewer.dungeonData.push(obj);
- }
- }
- for (i in mobViewer.dungeonData) {
- mobViewer.instantiateDungeonMarker(mobViewer.dungeonData[i]);
- }
- });
- },
- instantiateMarker: function(obj) {
- var blacklist = ["slime", "cow", "pig", "ocelot", "mooshroom", "bat"];
- if (blacklist.indexOf(obj.primary) > -1) return;
- var tCap = 5;
- // Image size determined by if legendary mob or regular
- var iconSize = obj.primary.indexOf("*") > -1 ? 28 : 21;
- // Add Primary Mob icon
- var markerIcon = L.icon({
- iconUrl: "img/MobIcons/" + mobViewer.mobMatcher(obj.primary) + ".png",
- iconSize: [iconSize, iconSize],
- iconAnchor: [iconSize/2, iconSize/2]
- });
- var markerOptions = {
- icon: markerIcon,
- title: (obj.avgTier == "" || parseFloat(obj.avgTier) > tCap || location.href.indexOf("/debug") == -1 ? "" : "T"+obj.avgTier+" ") + (obj.primary.indexOf("*") > -1 ? "Elite " : "") + (obj.primary==obj.name ? mobViewer.mobMatcher(obj.primary).capitalize() : obj.name) + " (" + obj.location.x + ", " + obj.location.y + ", " + obj.location.z + ")"
- };
- var markerLatLngPos = overviewer.util.fromWorldToLatLng(obj.location.x, obj.location.y, obj.location.z);
- var markerInstance = new L.marker(markerLatLngPos, markerOptions);
- core.markerClusters["mob"].addLayer(markerInstance);
- if (overviewerConfig.settings.enableWiki) {
- markerInstance.on("click", function(e) {
- mapUi.openWiki(obj.primary.indexOf("*") > -1 ? "Elite" : mobViewer.mobMatcherWiki(obj), overviewerConfig.settings.wikiDiv!=="undefined" ? overviewerConfig.settings.wikiDiv : "#firstHeading");
- });
- }
- },
- instantiateDungeonMarker: function(obj) {
- var blacklist = [];
- if (blacklist.indexOf(obj.name) > -1) return;
- // Add Primary Mob icon
- var markerIcon = L.icon({
- iconUrl: "img/dungeongem.png",
- iconSize: [26, 24],
- iconAnchor: [26/2, 24/2]
- });
- var markerOptions = {
- icon: markerIcon,
- title: obj.name + " (" + obj.location.x + ", " + obj.location.y + ", " + obj.location.z + ")"
- };
- var markerLatLngPos = overviewer.util.fromWorldToLatLng(obj.location.x, obj.location.y, obj.location.z);
- var markerInstance = new L.marker(markerLatLngPos, markerOptions);
- core.markerClusters["dungeon"].addLayer(markerInstance);
- if (overviewerConfig.settings.enableWiki) {
- markerInstance.on("click", function(e) {
- mapUi.openWiki(obj.name, overviewerConfig.settings.wikiDiv!=="undefined" ? overviewerConfig.settings.wikiDiv : "#firstHeading");
- });
- }
- },
- mobMatcher: function(str) {
- var mobTypes = ["npc", "wolf", "zombie", "whither", "tripoli", "skeleton", "naga", "lizardman", "goblin", "troll", "bandit", "imp", "golem", "magmacube", "spider", "daemon"];
- for (i in mobTypes) {
- if (str.indexOf(mobTypes[i]) == 0) {
- return mobTypes[i];
- }
- }
- return str;
- },
- mobMatcherWiki: function(obj) {
- var mobTypes = {
- troll: "Trolls Warriors",
- tripoli: "Tripoli Soldier",
- lizardman: "Lizardmen",
- whither: "Wither Skeleton",
- goblin: "Goblins"
- };
- var mob = mobViewer.mobMatcher(obj.primary);
- for (i in mobTypes) {
- if (i == mob) {
- return mobTypes[i];
- }
- }
- // Edge case of NPCs
- if (mob == "npc") {
- return obj.name;
- }
- return mob;
- }
- };
- mobViewer.init();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement