Järjestelmäviesti:Common.js

Seikkailuoppaasta
Versio hetkellä 14. kesäkuuta 2022 kello 11.22 – tehnyt Tapsa (keskustelu | muokkaukset)

Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.

  • Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
  • Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
  • Internet Explorer: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
  • Opera: Valikko → Asetukset (Opera → Asetukset Macilla) ja sitten Tietosuoja ja turvallisuus → Tyhjennä selaustiedot → Välimuistissa olevat kuvat ja tiedostot.
function createItemDisplay(itemData) {
	
	if (!itemData || itemData.trim() == '') {
		return $('<div class="x-item"/>');
	}
	
	itemData = itemData.trim();
	
	const $it = $('<div class="x-item"/>');
	const dataParts = itemData.split(',');
	if (dataParts[0].indexOf('item:') == 0) {
		if (dataParts[0].indexOf('.png') == -1) dataParts[0] += '.png';
		$it.css('background-image', 'url("https://cubisti.xeno.fi/' + dataParts[0].substring(5) + '")');
		if (dataParts[0].indexOf('vanilla:') != -1) {
			$it.attr('data-vanilla-item', 'true');
		}
	} else if (dataParts[0].indexOf('http') == 0) {
		$it.css('background-image', 'url("' + dataParts[0] + '")');
	}
	
	if (dataParts.length > 1) {
		$it.attr('data-item-title', dataParts[1]);
	}
	
	if (dataParts.length > 2) {
		$it.append($('<span/>').text(''+dataParts[2]));
	}
	
	return $it;
	
}

$(function(){
	
	// hide the stupid navigation options under the title
	$('#mw-page-header-links').hide();
	$('#p-views li').each(function(){
		if (!$(this).is('#ca-more')) {
			$('#p-cactions ul').prepend($(this));
		}
	});
	
	// title-less pages
	if ($('[data-x-hide-title]').length > 0) {
		$('#firstHeading').hide();
		$('#bodyContentOuter').css('margin-top', '-1.5em');
	}
	
	const $itemOverlay = $('<div/>')
		.css({
			'position': 'fixed',
			'z-index': '1000',
			'padding': '5px 10px',
			'font-family': 'monospace',
			'color': '#ffffff',
			'background-color': '#2a114f',
			'border': '3px solid rgba(255, 255, 255, 0.2)',
			'border-radius': '5px',
			'box-shadow': '-2px -2px 0 black, 2px -2px 0 black, -2px 2px 0 black, 2px 2px 0 black',
			'top': '0',
			'left': '0'
		});
	
	$('body').append($itemOverlay);
	$itemOverlay.hide();
	
	// crafting grids
	$('.x-crafting').each(function(){
		
		const craftItems = ($(this).attr('data-crafting-data') || '').split(';');
		const resultItem = craftItems[craftItems.length-1];
		
		const $grid = $('<div class="x-crafting-grid"/>');
		const $result = $('<div class="x-crafting-result"/>');
		$result.append(createItemDisplay(resultItem));
		
		$.each(craftItems.slice(0, -1), function(key, it){
			it = it.trim();
			$grid.append(createItemDisplay(it));
		});
		
		$(this).append($grid);
		$(this).append($('<div class="x-crafting-arrow"/>'));
		$(this).append($result);
		
	});
	
	var isItemOverlay = false;
	
	$('body').on('mousemove', function(e){
		if (isItemOverlay) {
			$itemOverlay.css('left', (e.clientX+15)+'px');
			$itemOverlay.css('top', (e.clientY+15)+'px');
		}
	})
	
	$('.x-item[data-item-title]')
		.css('cursor', 'pointer')
		.on('mouseover', function(e){
			$itemOverlay.show();
			isItemOverlay = true;
			$itemOverlay.html('');
			$itemOverlay.append($('<div style="font-weight: bold;"/>').text($(this).attr('data-item-title') || '?'));
		})
		.on('mouseout', function(e){
			$itemOverlay.hide();
			isItemOverlay = false;
		})
		.on('mouseup', function(e){
			if ($(this).is('[data-vanilla-item]')) {
				window.open('https://www.google.com/search?q=' + encodeURIComponent('minecraft wiki ' + $(this).attr('data-item-title').toLowerCase()));
				return;
			}
			if (e.button == 1) {
				window.open('/index.php/' + $(this).attr('data-item-title'));
			} else {
				window.location.href = '/index.php/' + $(this).attr('data-item-title');
			}
		});
	
});