add eaglermobile by irv77
This commit is contained in:
parent
1bf9162242
commit
8ba599b332
84 changed files with 193521 additions and 2 deletions
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"liveServer.settings.port": 5501
|
||||
}
|
||||
|
|
@ -41,4 +41,5 @@
|
|||
<button class="button" style="height: 250px; cursor: unset; margin: 15px;"><h1 style="font-size: 32px;">1.8</h1><br><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding-top: 10px; padding-bottom: 10px; padding-right: 40px; padding-left: 40px;" href="1.8.html"><span class="material-icons-round">input</span> Select</a></button><br>
|
||||
<button class="button" style="height: 250px; cursor: unset; margin: 15px;"><h1 style="font-size: 32px;">1.5</h1><br><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding-top: 10px; padding-bottom: 10px; padding-right: 40px; padding-left: 40px;" href="1.5.html"><span class="material-icons-round">input</span> Select</a></button><br>
|
||||
<button class="button" style="height: 250px; cursor: unset; margin: 15px;"><h1 style="font-size: 32px;">1.3</h1><br><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding-top: 10px; padding-bottom: 10px; padding-right: 40px; padding-left: 40px;" href="1.3.html"><span class="material-icons-round">input</span> Select</a></button><br>
|
||||
<button class="button" style="height: 250px; cursor: unset; margin: 15px;"><h1 style="font-size: 32px;">Mobile</h1><br><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding-top: 10px; padding-bottom: 10px; padding-right: 40px; padding-left: 40px;" href="mobile.html"><span class="material-icons-round">input</span> Select</a></button><br>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@
|
|||
<br><br>
|
||||
|
||||
<div class="container">
|
||||
<button class="big-button"><u>Announcements</u> <br><br>Resource Packs out now! Servers coming next. Worlds will take longer as I have to create them myself.</button>
|
||||
<button class="big-button">Need Help?<br><br>Fill out an issue or start a discussion! We'll be sure to get back to it.</button>
|
||||
<button class="big-button"><u>Announcements</u> <br><br>Mobile client out now! Thanks to Irv77 for making it. Also, servers, resource packs, skins, and worlds are all available!</button>
|
||||
<button class="big-button">Need Help?<br><br>Fill out an issue or a discussion! We'll be sure to get back to it.</button>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
|||
38
mobile.html
Normal file
38
mobile.html
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Mobile Clients</title>
|
||||
<link rel="shortcut icon" href="assets/mc-logo.png" type="image/x-icon">
|
||||
<link rel="stylesheet" href="home.css">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round" rel="stylesheet">
|
||||
</head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B23XL7G2NK"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-B23XL7G2NK');
|
||||
</script>
|
||||
<body>
|
||||
|
||||
<ul>
|
||||
<li><a style="margin-left: 5px;" href="index.html">Home</a></li>
|
||||
<li><a class="active" href="clients.html">Clients</a></li>
|
||||
<li><a href="worlds.html">Worlds</a></li>
|
||||
<li><a href="packs.html">Resource Packs</a></li>
|
||||
<li><a href="servers.html">Servers</a></li>
|
||||
<li><a href="skins.html">Skins</a></li>
|
||||
<li><a href="mc quick guide/index.html" target="_blank">Quick Guide</a></li>
|
||||
<li style="float: right;"><a href="https://github.com/cobblesteve01/Eaglercraft-Extras" target="_blank"><img src="assets/github.png" style="height: 25px; color: white;" alt=""></a></li>
|
||||
</ul>
|
||||
|
||||
<h1 align="center" style="font-size: 54px; margin-bottom: -10px; text-decoration: none">Mobile Clients</h1>
|
||||
<p align="center" style='font-family: inter-medium;'>There is only one 💀</p><br><br><br>
|
||||
|
||||
<div class="container">
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset; font-family: inter-bold">EaglercraftX<p style="font-size: 14px; padding-bottom: 15px; font-family: inter-medium">Author: Irv77</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px; font-family: inter-bold" href="mobile/index.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
</div>
|
||||
BIN
mobile/assets.epk
Normal file
BIN
mobile/assets.epk
Normal file
Binary file not shown.
44842
mobile/classes.js
Normal file
44842
mobile/classes.js
Normal file
File diff suppressed because it is too large
Load diff
1
mobile/classes.js.map
Normal file
1
mobile/classes.js.map
Normal file
File diff suppressed because one or more lines are too long
620
mobile/eaglerpocketmobile.user.js
Normal file
620
mobile/eaglerpocketmobile.user.js
Normal file
|
|
@ -0,0 +1,620 @@
|
|||
function isMobile() {
|
||||
try {
|
||||
document.createEvent("TouchEvent");
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(!isMobile()) {
|
||||
alert("WARNING: This script was created for mobile, and may break functionality in non-mobile browsers!");
|
||||
}
|
||||
window.keyboardEnabled = false;
|
||||
window.crouchLock = false;
|
||||
window.sprintLock = false;
|
||||
window.keyboardFix = false; // temporarily set to true until I can figure out whats going wrong with the event listener in charge of switching it
|
||||
// Used for changing touchmove events to mousemove events
|
||||
var previousTouchX = null;
|
||||
var previousTouchY = null;
|
||||
var startTouchX = null;
|
||||
// better charCodeAt function
|
||||
String.prototype.toKeyCode = function() {
|
||||
const keyCodeList = {"0": 48, "1": 49, "2": 50, "3": 51, "4": 52, "5": 53, "6": 54, "7": 55, "8": 56, "9": 57, "backspace": 8, "tab": 9, "enter": 13, "shift": 16, "ctrl": 17, "alt": 18, "pause_break": 19, "caps_lock": 20, "escape": 27, " ": 32, "page_up": 33, "page_down": 34, "end": 35, "home": 36, "left_arrow": 37, "up_arrow": 38, "right_arrow": 39, "down_arrow": 40, "insert": 45, "delete": 46, "a": 65, "b": 66, "c": 67, "d": 68, "e": 69, "f": 70, "g": 71, "h": 72, "i": 73, "j": 74, "k": 75, "l": 76, "m": 77, "n": 78, "o": 79, "p": 80, "q": 81, "r": 82, "s": 83, "t": 84, "u": 85, "v": 86, "w": 87, "x": 88, "y": 89, "z": 90, "left_window_key": 91, "right_window_key": 92, "select_key": 93, "numpad_0": 96, "numpad_1": 97, "numpad_2": 98, "numpad_3": 99, "numpad_4": 100, "numpad_5": 101, "numpad_6": 102, "numpad_7": 103, "numpad_8": 104, "numpad_9": 105, "*": 106, "+": 107, "-": 109, ".": 110, "/": 111, "f1": 112, "f2": 113, "f3": 114, "f4": 115, "f5": 116, "f6": 117, "f7": 118, "f8": 119, "f9": 120, "f10": 121, "f11": 122, "f12": 123, "num_lock": 144, "scroll_lock": 145, ";": 186, "=": 187, ",": 188, "-": 189, ".": 190, "/": 191, "`": 192, "[": 219, "\\": 220, "]": 221, "\"": 222};
|
||||
return keyCodeList[this];
|
||||
}
|
||||
// Ignores keydown events that don't have the isValid parameter set to true
|
||||
const _addEventListener = EventTarget.prototype.addEventListener;
|
||||
Object.defineProperty(EventTarget.prototype, "addEventListener", {
|
||||
value: function (type, fn, ...rest) {
|
||||
if(type == 'keydown') {
|
||||
_addEventListener.call(this, type, function(...args) {
|
||||
if(!args[0].isValid && window.keyboardFix) {
|
||||
return;
|
||||
}
|
||||
return fn.apply(this, args);
|
||||
}, ...rest);
|
||||
} else {
|
||||
_addEventListener.call(this, type, fn, ...rest);
|
||||
}
|
||||
}
|
||||
});
|
||||
// Allows typing in #hiddenInput
|
||||
const _preventDefault = Event.prototype.preventDefault;
|
||||
Event.prototype.preventDefault = function() {
|
||||
if(document.activeElement.id != "hiddenInput") {
|
||||
this._preventDefault = _preventDefault;
|
||||
this._preventDefault();
|
||||
}
|
||||
}
|
||||
// Key and mouse events
|
||||
// Note: the client must have the key, keyCode, and which parameters defined or it will crash
|
||||
// Note: for text inputs, the client only reads from the "key" paramater
|
||||
// * an exception to this appears to be the shift and backspace key
|
||||
// Note: for inGame inputs, the client only reads from the "keyCode character"
|
||||
function keyEvent(name, state) {
|
||||
const charCode = name.toKeyCode();
|
||||
let evt = new KeyboardEvent(state, {
|
||||
key: name,
|
||||
keyCode: charCode,
|
||||
which: charCode
|
||||
});
|
||||
evt.isValid = true; // Disables fix for bad keyboard input
|
||||
window.dispatchEvent(evt);
|
||||
}
|
||||
function mouseEvent(number, state, canvas) {
|
||||
canvas.dispatchEvent(new PointerEvent(state, {"button": number}))
|
||||
}
|
||||
function wheelEvent(canvas, delta) {
|
||||
canvas.dispatchEvent(new WheelEvent("wheel", {
|
||||
"wheelDeltaY": delta
|
||||
}));
|
||||
}
|
||||
function setButtonVisibility(pointerLocked) {
|
||||
let inGameStyle = document.getElementById('inGameStyle');
|
||||
let inMenuStyle = document.getElementById('inMenuStyle');
|
||||
inGameStyle.disabled = pointerLocked;
|
||||
inMenuStyle.disabled = !pointerLocked;
|
||||
}
|
||||
// POINTERLOCK
|
||||
// When requestpointerlock is called, this dispatches an event, saves the requested element to window.fakelock, and unhides the touch controls
|
||||
window.fakelock = null;
|
||||
|
||||
Object.defineProperty(Element.prototype, "requestPointerLock", {
|
||||
value: function() {
|
||||
window.fakelock = this
|
||||
document.dispatchEvent(new Event('pointerlockchange'));
|
||||
setButtonVisibility(true);
|
||||
return true
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Makes pointerLockElement return window.fakelock
|
||||
Object.defineProperty(Document.prototype, "pointerLockElement", {
|
||||
get: function() {
|
||||
return window.fakelock;
|
||||
}
|
||||
});
|
||||
// When exitPointerLock is called, this dispatches an event, clears the
|
||||
Object.defineProperty(Document.prototype, "exitPointerLock", {
|
||||
value: function() {
|
||||
window.fakelock = null
|
||||
document.dispatchEvent(new Event('pointerlockchange'));
|
||||
setButtonVisibility(false);
|
||||
return true
|
||||
}
|
||||
});
|
||||
|
||||
// FULLSCREEN
|
||||
window.fakefull = null;
|
||||
// Stops the client from crashing when fullscreen is requested
|
||||
Object.defineProperty(Element.prototype, "requestFullscreen", {
|
||||
value: function() {
|
||||
window.fakefull = this
|
||||
document.dispatchEvent(new Event('fullscreenchange'));
|
||||
return true
|
||||
}
|
||||
});
|
||||
Object.defineProperty(document, "fullscreenElement", {
|
||||
get: function() {
|
||||
return window.fakefull;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(Document.prototype, "exitFullscreen", {
|
||||
value: function() {
|
||||
window.fakefull = null
|
||||
document.dispatchEvent(new Event('fullscreenchange'));
|
||||
return true
|
||||
}
|
||||
});
|
||||
|
||||
// FILE UPLOADING
|
||||
// Safari doesn't recognize the element.click() used to display the file uploader as an action performed by the user, so it ignores it.
|
||||
// This hijacks the element.createElement() function to add the file upload to the DOM, so the user can manually press the button again.
|
||||
const _createElement = document.createElement;
|
||||
document.createElement = function(type, ignore) {
|
||||
this._createElement = _createElement;
|
||||
var element = this._createElement(type);
|
||||
if(type == "input" && !ignore) {
|
||||
document.querySelectorAll('#fileUpload').forEach(e => e.parentNode.removeChild(e));
|
||||
element.id = "fileUpload";
|
||||
element.addEventListener('change', function(e) {
|
||||
element.hidden = true;
|
||||
element.style.display = "none";
|
||||
}, {passive: false, once: true});
|
||||
window.addEventListener('focus', function(e) {
|
||||
setTimeout(() => {
|
||||
element.hidden = true;
|
||||
element.style.display = "none";
|
||||
}, 300)
|
||||
}, { once: true })
|
||||
document.body.appendChild(element);
|
||||
}
|
||||
return element;
|
||||
}
|
||||
|
||||
// Lazy way to hide touch controls through CSS.
|
||||
let inGameStyle = document.createElement("style");
|
||||
inGameStyle.id = "inGameStyle";
|
||||
inGameStyle.textContent = `
|
||||
.inGame {
|
||||
display: none;
|
||||
}`;
|
||||
document.documentElement.appendChild(inGameStyle);
|
||||
|
||||
let inMenuStyle = document.createElement("style");
|
||||
inMenuStyle.id = "inMenuStyle";
|
||||
inMenuStyle.textContent = `
|
||||
.inMenu {
|
||||
display: none;
|
||||
}`;
|
||||
document.documentElement.appendChild(inMenuStyle);
|
||||
|
||||
|
||||
// The canvas is created by the client after it finishes unzipping and loading. When the canvas is created, this applies any necessary event listeners
|
||||
function waitForElm(selector) {
|
||||
return new Promise(resolve => {
|
||||
if (document.querySelector(selector)) {
|
||||
return resolve(document.querySelector(selector));
|
||||
}
|
||||
const observer = new MutationObserver(mutations => {
|
||||
if (document.querySelector(selector)) {
|
||||
observer.disconnect();
|
||||
resolve(document.querySelector(selector));
|
||||
}
|
||||
});
|
||||
observer.observe(document.documentElement, {
|
||||
childList: true,
|
||||
subtree: true
|
||||
});
|
||||
});
|
||||
}
|
||||
function createTouchButton(buttonClass, buttonDisplay, elementName) {
|
||||
var touchButton = document.createElement(elementName ?? 'button', true);
|
||||
touchButton.classList.add(buttonClass);
|
||||
touchButton.classList.add(buttonDisplay);
|
||||
touchButton.classList.add("mobileControl");
|
||||
touchButton.addEventListener("touchmove", function(e){e.preventDefault()}, false);
|
||||
return touchButton;
|
||||
}
|
||||
|
||||
function toggleKeyboard() {
|
||||
const keyboardInput = document.getElementById('hiddenInput');
|
||||
if (window.keyboardEnabled) {
|
||||
window.keyboardEnabled = false;
|
||||
keyboardInput.blur();
|
||||
} else {
|
||||
window.keyboardEnabled = true;
|
||||
keyboardInput.select();
|
||||
}
|
||||
}
|
||||
|
||||
waitForElm('canvas').then(() => {insertCanvasElements()});
|
||||
function insertCanvasElements() {
|
||||
// Translates touchmove events to mousemove events when inGame, and touchmove events to wheele events when inMenu
|
||||
var canvas = document.querySelector('canvas');
|
||||
canvas.addEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
const touch = e.targetTouches[0]; // We can get away with this because every other touch event will be on different elements
|
||||
|
||||
if (!previousTouchX) {
|
||||
previousTouchX = touch.pageX;
|
||||
previousTouchY = touch.pageY;
|
||||
}
|
||||
e.movementX = touch.pageX - previousTouchX;
|
||||
e.movementY = touch.pageY - previousTouchY;
|
||||
var evt = window.fakelock ? new MouseEvent("mousemove", {movementX: e.movementX, movementY: e.movementY}) : new WheelEvent("wheel", {"wheelDeltaY": e.movementY});
|
||||
canvas.dispatchEvent(evt);
|
||||
previousTouchX = touch.pageX;
|
||||
previousTouchY = touch.pageY;
|
||||
}, false);
|
||||
|
||||
canvas.addEventListener("touchend", function(e) {
|
||||
previousTouchX = null;
|
||||
previousTouchY = null;
|
||||
}, false)
|
||||
//Updates button visibility on load
|
||||
setButtonVisibility(window.fakelock != null);
|
||||
// Adds all of the touch screen controls
|
||||
// Theres probably a better way to do this but this works for now
|
||||
let strafeRightButton = createTouchButton("strafeRightButton", "inGame", "div");
|
||||
strafeRightButton.classList.add("strafeSize");
|
||||
strafeRightButton.style.cssText = "left:24vh;bottom:22vh;"
|
||||
document.body.appendChild(strafeRightButton);
|
||||
let strafeLeftButton = createTouchButton("strafeLeftButton", "inGame", "div");
|
||||
strafeLeftButton.classList.add("strafeSize");
|
||||
strafeLeftButton.style.cssText = "left:5.5vh;bottom:22vh;"
|
||||
document.body.appendChild(strafeLeftButton);
|
||||
|
||||
let forwardButton = createTouchButton("forwardButton", "inGame", "div");
|
||||
forwardButton.style.cssText = "left:14vh;bottom:22vh;"
|
||||
forwardButton.addEventListener("touchstart", function(e){
|
||||
keyEvent("w", "keydown");
|
||||
strafeRightButton.classList.remove("hide");
|
||||
strafeLeftButton.classList.remove("hide");
|
||||
forwardButton.classList.add("active");
|
||||
}, false);
|
||||
forwardButton.addEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
const touch = e.targetTouches[0]; // We can get away with this because every other touch event will be on different elements
|
||||
|
||||
if (!startTouchX) {
|
||||
startTouchX = touch.pageX;
|
||||
}
|
||||
let movementX = touch.pageX - startTouchX;
|
||||
if((movementX * 10) > window.innerHeight) {
|
||||
strafeRightButton.classList.add("active");
|
||||
strafeLeftButton.classList.remove("active");
|
||||
keyEvent("d", "keydown");
|
||||
keyEvent("a", "keyup");
|
||||
|
||||
} else if ((movementX * 10) < (0 - window.innerHeight)) {
|
||||
strafeLeftButton.classList.add("active");
|
||||
strafeRightButton.classList.remove("active");
|
||||
keyEvent("a", "keydown");
|
||||
keyEvent("d", "keyup");
|
||||
} else {
|
||||
strafeRightButton.classList.remove("active");
|
||||
strafeLeftButton.classList.remove("active");
|
||||
|
||||
}
|
||||
}, false);
|
||||
forwardButton.addEventListener("touchend", function(e) {
|
||||
keyEvent("w", "keyup");
|
||||
keyEvent("d", "keyup");
|
||||
keyEvent("a", "keyup");
|
||||
strafeRightButton.classList.remove("active");
|
||||
strafeLeftButton.classList.remove("active");
|
||||
strafeRightButton.classList.add("hide");
|
||||
strafeLeftButton.classList.add("hide");
|
||||
forwardButton.classList.remove("active");
|
||||
|
||||
startTouchX = null;
|
||||
}, false);
|
||||
strafeRightButton.classList.add("hide");
|
||||
strafeLeftButton.classList.add("hide");
|
||||
document.body.appendChild(forwardButton);
|
||||
|
||||
|
||||
let rightButton = createTouchButton("rightButton", "inGame");
|
||||
rightButton.style.cssText = "left:24vh;bottom:12vh;"
|
||||
rightButton.addEventListener("touchstart", function(e){keyEvent("d", "keydown")}, false);
|
||||
rightButton.addEventListener("touchend", function(e){keyEvent("d", "keyup")}, false);
|
||||
document.body.appendChild(rightButton);
|
||||
let leftButton = createTouchButton("leftButton", "inGame");
|
||||
leftButton.style.cssText = "left: 4vh; bottom:12vh;"
|
||||
leftButton.addEventListener("touchstart", function(e){keyEvent("a", "keydown")}, false);
|
||||
leftButton.addEventListener("touchend", function(e){keyEvent("a", "keyup")}, false);
|
||||
document.body.appendChild(leftButton);
|
||||
let backButton = createTouchButton("backButton", "inGame");
|
||||
backButton.style.cssText = "left:14vh;bottom:2vh;"
|
||||
backButton.addEventListener("touchstart", function(e){keyEvent("s", "keydown")}, false);
|
||||
backButton.addEventListener("touchend", function(e){keyEvent("s", "keyup")}, false);
|
||||
document.body.appendChild(backButton);
|
||||
let jumpButton = createTouchButton("jumpButton", "inGame");
|
||||
jumpButton.style.cssText = "right:20vh;bottom:20vh;"
|
||||
jumpButton.addEventListener("touchstart", function(e){keyEvent(" ", "keydown")}, false);
|
||||
jumpButton.addEventListener("touchend", function(e){keyEvent(" ", "keyup")}, false);
|
||||
document.body.appendChild(jumpButton);
|
||||
|
||||
let crouchButton = createTouchButton("crouchButton", "inGame");
|
||||
crouchButton.style.cssText = "left:14vh;bottom:12vh;"
|
||||
crouchButton.addEventListener("touchstart", function(e){
|
||||
keyEvent("shift", "keydown")
|
||||
window.crouchLock = window.crouchLock ? null : false
|
||||
crouchTimer = setTimeout(function(e) {
|
||||
window.crouchLock = (window.crouchLock != null);
|
||||
crouchButton.classList.toggle('active');
|
||||
}, 1000);
|
||||
}, false);
|
||||
|
||||
crouchButton.addEventListener("touchend", function(e) {
|
||||
if(!window.crouchLock) {
|
||||
keyEvent("shift", "keyup")
|
||||
crouchButton.classList.remove('active');
|
||||
window.crouchLock = false
|
||||
}
|
||||
clearTimeout(crouchTimer);
|
||||
}, false);
|
||||
document.body.appendChild(crouchButton);
|
||||
let inventoryButton = createTouchButton("inventoryButton", "inGame");
|
||||
inventoryButton.classList.add("smallMobileControl");
|
||||
inventoryButton.style.cssText = "right:19.5vh;bottom:0vh;"
|
||||
inventoryButton.addEventListener("touchstart", function(e){keyEvent("e", "keydown")}, false);
|
||||
inventoryButton.addEventListener("touchend", function(e){keyEvent("e", "keyup")}, false);
|
||||
document.body.appendChild(inventoryButton);
|
||||
let exitButton = createTouchButton("exitButton", "inMenu");
|
||||
exitButton.classList.add("smallMobileControl");
|
||||
exitButton.style.cssText = "top: 0.5vh; margin: auto; left: 1vh; right:8vh;"
|
||||
exitButton.addEventListener("touchstart", function(e){keyEvent("`", "keydown")}, false);
|
||||
exitButton.addEventListener("touchend", function(e){keyEvent("`", "keyup")}, false);
|
||||
document.body.appendChild(exitButton);
|
||||
// input for keyboard button
|
||||
let hiddenInput = document.createElement('input', true);
|
||||
hiddenInput.id = "hiddenInput"
|
||||
hiddenInput.classList.add("inMenu")
|
||||
// We are hiding the text input behind button because opacity was causing problems.
|
||||
hiddenInput.style.cssText = "position:absolute;top: 0vh; margin: auto; left: 8vh; right:0vh;font-size:20px;z-index:-10;color: transparent;text-shadow: 0 0 0 black;";
|
||||
hiddenInput.value = " " //Allows delete to be detected before input is changed
|
||||
hiddenInput.addEventListener("input", function(e) {
|
||||
let inputData = e.data ?? "delete"; // backspace makes null
|
||||
window.lastKey = inputData
|
||||
hiddenInput.value = " "; // We need a character to detect deleting
|
||||
if(window.keyboardFix) {
|
||||
if(e.inputType == 'insertText') {
|
||||
let isShift = (inputData.toLowerCase() != inputData);
|
||||
if(isShift) {
|
||||
keyEvent("shift", "keydown")
|
||||
keyEvent(inputData, "keydown");
|
||||
keyEvent(inputData, "keyup");
|
||||
keyEvent("shift", "keyup")
|
||||
} else {
|
||||
keyEvent(inputData, "keydown");
|
||||
keyEvent(inputData, "keyup");
|
||||
}
|
||||
} else if (e.inputType == 'deleteContentForward' || e.inputType == 'deleteContentBackward') {
|
||||
keyEvent("backspace", "keydown")
|
||||
keyEvent("backspace", "keyup")
|
||||
}
|
||||
}
|
||||
}, false);
|
||||
hiddenInput.addEventListener("keydown", function(e) {
|
||||
if(!(e.key && e.keyCode && e.which) && !window.keyboardFix) {
|
||||
console.warn("Switching from keydown to input events due to invalid KeyboardEvent. Some functionality will be lost.")
|
||||
window.keyboardFix = true;
|
||||
if(window.lastKey) {
|
||||
keyEvent(window.lastKey, "keydown")
|
||||
keyEvent(window.lastKey, "keyup")
|
||||
}
|
||||
}
|
||||
}, false);
|
||||
document.body.appendChild(hiddenInput);
|
||||
let keyboardButton = createTouchButton("keyboardButton", "inMenu");
|
||||
keyboardButton.classList.add("smallMobileControl");
|
||||
keyboardButton.style.cssText = "top: 0.5vh; margin: auto; left: 6vh; right:0vh;"
|
||||
keyboardButton.addEventListener("touchstart", function(e){e.preventDefault();hiddenInput.blur()}, false);
|
||||
keyboardButton.addEventListener("touchend", function(e){e.preventDefault();toggleKeyboard()}, false);
|
||||
document.body.appendChild(keyboardButton);
|
||||
let placeButton = createTouchButton("placeButton", "inGame");
|
||||
placeButton.style.cssText = "right:6vh;bottom:37vh;"
|
||||
placeButton.addEventListener("touchstart", function(e){mouseEvent(2, "mousedown", canvas)}, false);
|
||||
placeButton.addEventListener("touchend", function(e){mouseEvent(2, "mouseup", canvas)}, false);
|
||||
document.body.appendChild(placeButton);
|
||||
let breakButton = createTouchButton("breakButton", "inGame");
|
||||
breakButton.style.cssText = "right:19vh;bottom:41vh;"
|
||||
breakButton.addEventListener("touchstart", function(e){mouseEvent(0, "mousedown", canvas)}, false);
|
||||
breakButton.addEventListener("touchend", function(e){mouseEvent(0, "mouseup", canvas)}, false);
|
||||
document.body.appendChild(breakButton);
|
||||
let selectButton = createTouchButton("selectButton", "inGame");
|
||||
selectButton.style.cssText = "right:6vh;bottom:49vh;"
|
||||
selectButton.addEventListener("touchstart", function(e){mouseEvent(1, "mousedown", canvas)}, false);
|
||||
selectButton.addEventListener("touchend", function(e){mouseEvent(1, "mouseup", canvas)}, false);
|
||||
document.body.appendChild(selectButton);
|
||||
let scrollUpButton = createTouchButton("scrollUpButton", "inGame");
|
||||
scrollUpButton.classList.add("smallMobileControl");
|
||||
scrollUpButton.style.cssText = "right:6.6vh;bottom:0vh;"
|
||||
scrollUpButton.addEventListener("touchstart", function(e){wheelEvent(canvas, -10)}, false);
|
||||
document.body.appendChild(scrollUpButton);
|
||||
let scrollDownButton = createTouchButton("scrollDownButton", "inGame");
|
||||
scrollDownButton.classList.add("smallMobileControl");
|
||||
scrollDownButton.style.cssText = "right:25.8vh;bottom:0vh;"
|
||||
scrollDownButton.addEventListener("touchstart", function(e){wheelEvent(canvas, 10)}, false);
|
||||
document.body.appendChild(scrollDownButton);
|
||||
let throwButton = createTouchButton("throwButton", "inGame");
|
||||
throwButton.classList.add("smallMobileControl");
|
||||
throwButton.style.cssText = "right:13vh;bottom:0vh;"
|
||||
throwButton.addEventListener("touchstart", function(e){keyEvent("q", "keydown")}, false);
|
||||
throwButton.addEventListener("touchend", function(e){keyEvent("q", "keyup")}, false);
|
||||
document.body.appendChild(throwButton);
|
||||
let sprintButton = createTouchButton("sprintButton", "inGame");
|
||||
sprintButton.style.cssText = "right:19vh;bottom:53vh;"
|
||||
sprintButton.addEventListener("touchstart", function(e) {
|
||||
keyEvent("r", "keydown");
|
||||
window.sprintLock = window.sprintLock ? null : false
|
||||
sprintTimer = setTimeout(function(e) {
|
||||
window.sprintLock = (window.sprintLock != null);
|
||||
sprintButton.classList.toggle('active');
|
||||
}, 1000);
|
||||
}, false);
|
||||
|
||||
sprintButton.addEventListener("touchend", function(e) {
|
||||
if(!window.sprintLock) {
|
||||
keyEvent("r", "keyup");
|
||||
sprintButton.classList.remove('active');
|
||||
window.sprintLock = false
|
||||
}
|
||||
clearTimeout(sprintTimer);
|
||||
}, false);
|
||||
document.body.appendChild(sprintButton);
|
||||
let pauseButton = createTouchButton("pauseButton", "inGame");
|
||||
pauseButton.classList.add("smallMobileControl");
|
||||
pauseButton.style.cssText = "top: 0.5vh; margin: auto; left: 0vh; right: 0vh;"
|
||||
pauseButton.addEventListener("touchstart", function(e){keyEvent("`", "keydown")}, false);
|
||||
pauseButton.addEventListener("touchend", function(e){keyEvent("`", "keyup")}, false);
|
||||
document.body.appendChild(pauseButton);
|
||||
let chatButton = createTouchButton("chatButton", "inGame");
|
||||
chatButton.classList.add("smallMobileControl");
|
||||
chatButton.style.cssText = "top: 0.5vh; margin: auto; left: 0vh; right: 14vh;"
|
||||
chatButton.addEventListener("touchstart", function(e){keyEvent("t", "keydown")}, false);
|
||||
document.body.appendChild(chatButton);
|
||||
let perspectiveButton = createTouchButton("perspectiveButton", "inGame");
|
||||
perspectiveButton.classList.add("smallMobileControl");
|
||||
perspectiveButton.style.cssText = "top: 0.5vh; margin: auto; left: 0vh; right: 28vh;"
|
||||
perspectiveButton.addEventListener("touchstart", function(e) {
|
||||
keyEvent("f", "keydown");
|
||||
keyEvent("5", "keydown");
|
||||
}, false);
|
||||
perspectiveButton.addEventListener("touchend", function(e) {
|
||||
keyEvent("f", "keyup");
|
||||
keyEvent("5", "keyup");
|
||||
}, false);
|
||||
document.body.appendChild(perspectiveButton);
|
||||
let screenshotButton = createTouchButton("screenshotButton", "inGame");
|
||||
screenshotButton.classList.add("smallMobileControl");
|
||||
screenshotButton.style.cssText = "top: 0.5vh; margin: auto; left: 28vh; right: 0vh;"
|
||||
screenshotButton.addEventListener("touchstart", function(e) {
|
||||
keyEvent("f", "keydown");
|
||||
keyEvent("2", "keydown");
|
||||
}, false);
|
||||
screenshotButton.addEventListener("touchend", function(e) {
|
||||
keyEvent("f", "keyup");
|
||||
keyEvent("2", "keyup");
|
||||
}, false);
|
||||
document.body.appendChild(screenshotButton);
|
||||
let coordinatesButton = createTouchButton("coordinatesButton", "inGame");
|
||||
coordinatesButton.classList.add("smallMobileControl");
|
||||
coordinatesButton.style.cssText = "top: 0.5vh; margin: auto; left: 14vh; right: 0vh;"
|
||||
coordinatesButton.addEventListener("touchstart", function(e) {
|
||||
keyEvent("f", "keydown");
|
||||
keyEvent("3", "keydown");
|
||||
}, false);
|
||||
coordinatesButton.addEventListener("touchend", function(e) {
|
||||
keyEvent("f", "keyup");
|
||||
keyEvent("3", "keyup");
|
||||
}, false);
|
||||
document.body.appendChild(coordinatesButton);
|
||||
}
|
||||
// CSS for touch screen buttons, along with fixing iOS's issues with 100vh ignoring the naviagtion bar, and actually disabling zoom because safari ignores user-scalable=no :(
|
||||
let customStyle = document.createElement("style");
|
||||
customStyle.textContent = `
|
||||
.mobileControl {
|
||||
position: absolute;
|
||||
width: 9vh;
|
||||
height: 9vh;
|
||||
-webkit-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
padding:0px;
|
||||
background-color: transparent;
|
||||
box-sizing: content-box;
|
||||
image-rendering: pixelated;
|
||||
background-size: cover;
|
||||
outline:none;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
margin: 1vh;
|
||||
opacity: 0.5;
|
||||
}
|
||||
.mobileControl:active {
|
||||
opacity: 0.75;
|
||||
}
|
||||
.strafeSize {
|
||||
width: 7.5vh;
|
||||
height: 7.5vh;
|
||||
}
|
||||
.smallMobileControl {
|
||||
width: 6vh;
|
||||
height: 6vh;
|
||||
margin: 1vh 0vh;
|
||||
}
|
||||
html, body {
|
||||
height: -webkit-fill-available !important;
|
||||
touch-action: pan-x pan-y;
|
||||
}
|
||||
.hide {
|
||||
display: none;
|
||||
}
|
||||
#fileUpload {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 100vw;
|
||||
top: 0;
|
||||
bottom: 100vh;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color:rgba(255,255,255,0.5);
|
||||
}
|
||||
.strafeRightButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAARRJREFUOE+dk0EORTAQhkci2HAEF3ESJ7Rgyw2cwAEkVhI7QhDJe/n7Mk3R0rxu0M7/dWb841RV9SHDmufZdHTbdwCCoO97a5EaOAwDtW1LEtQ0zQnkui4dx/EKBwTLyfNclAZQFEU0juOjGDHLsshLANr3/QdCWUjRdqnZWoO6rqO6rk93pGkqvx9BV3EQBFK4ritZgbIsEyJVrKajA03TdO8RQCYIgAziPqE0LQh/rSxLLQyQJEkojmN6BeFWE+xaFmKNGXE/dDATSBqSfXQ1mwpTy4KQzXtyNoN0Y8EwiNXfzplbG1Ln9r+c/TY2p2ZjYLnWN6HuXPqoKAryPE/EYDMMQzHRWNu2Sa3v++KdYzkezy+eN1EbyruiHgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.strafeLeftButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAUFJREFUOE+dlDGqhDAQhrMgKhYWHsCLeARP4Lk8hIW9N7CxtbQQrAQLQVFUhPf485gwyWbZfZvGJM58zvz546Oqqh/BxrZtfPnx/EEgEzCO40eQaZpE3/dCggBp21ZLdBxH3Pf9BOP7mHddJ2NegoiA4CAIxL7vVjCqkaCyLKVGqOhVFbYeKRag67p0ECUURaHlJkki4jjW9sIwFMuySH0UCMJCNA7yfV+tj+NQcxP6LxAvhaBZlsntr0FIBoyD1nX904haIwGHYRB1XQveHlUFSJqmAhpRRU8g3gIEN0EEiaJIWQGtaaB5njWfmCCzEvqo5iO0RiBbezYI95E0ZJ7n0pD8+E0/cU2443GF1KlxEJns3W3lcVbQO4DtvRIbFdGv4BsQcuSpAdQ0jWLg3tA4z1NOPc+TT9d11TskY59ifgE9QD9CDm6XPgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.forwardButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAcZJREFUSEulVEuqwkAQ7OAnoujalRfxCJ4gl/ESHsKFa72BJ3AhIiJk60IwKH6ZR43U0JlMiOH1xsx0T1ldU9PRarUy4sX1evW3aq+jxWJher2ePXg4HGoD+AdOp5PsdjuxwEhuNpsCaLPZlPf7bfcHg0Euf7lcROeZPB6P9tMBb7dbB8IiHEQQvKod1O/3+y/wbDYzw+HQMQaz2+1mwTQjMAwxRz1zBM6y7AuMA9CG7bKQDLFeLpd2OZlMXJ0vRRD4fD67ln0J5vO5ZU9ZkiRxqmjwghRkrLWlrmmaynq9ljiOJYoiud/vMh6PZTQaBS8bGj+fz7wUqPTbA9tGoyGtVssCvV4v+Xw+ollrQqXAmgbZdjodt22MkcfjUcoaditcni+Fz5ZO8VnrLp2PtSu0FJotWEJfBL4RYE2H+MA5xijUNtNsAQZd6YwyrStdEdKWbMkca+0QPqzcy/PtRrZgSZuFnrPW+mfgqrmg87CeBg76uA5gqBauKABzVmAIMbrdbm7IcB/W0wOIjvrpgdQdmwAPMtZ28tsEc90JH4vugMDOxxiZfDH/1RjnLfB0OjUhUCT7/X7wf5CDDRHtdtv+4sK4Rv4PfpOwZeVjdiYAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.rightButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAVhJREFUSEudlT2qhTAQhSOICKK1lRtxCS7PRVjYuwaxtbKyFewURUS4j5PHyNy8/OibKpiZb04mmdFrmuYjDLZtm2nL+d1TwSpsmiYJSdNU0NpGnedZjOMovLquP1EUibZtnSqeOAAKk2As+r53xvm+L67r0volSSKWZZFqX4MRoMIJSN+d4KqqZOY8z0WWZV8qbcoBXtf1txS4FBSdBwAchqE4jsOYQFcTgM/z/AZzRwLTN1sCLug1+EkC+AzDIIIg+KuYLkNVrB6bTlAUhUAMmbbGtlJgD08Nx+aGBBz+L7Dusozgsixlg+BV6BTrVMLPWQoX2FRb/r5R433fZanuy3sKtj03Dr47zwV2NYjahY/Appa2Tau7QbhiOhIFmibZazACqEF0k4yAfKKpIrSKbUqe7t0NglLQ7+RpsMtPjk2Au66Tow7DgxscyOI4lkv4wbgv9yP/HwHyemKMQPbVAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.leftButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAUdJREFUSEutlTuqhUAMQEcQEUFrt+a6XIa17sDG1sJSsBLsFEVFuJcEMoxhPm8uL5WOycl3YtA0zUcYZN930yfneaCCVdA8z05jncKyLGIcRxFUVYUR933/E4gbAfS+bzs4DEPxPM/LVncGClmWiXVdMVorGAAgHOxKC8AgP5VimibRti0CiqJ4+ZLgsiw/eZ6LYRic0anAOI7FeZ5a8LZtIgAwuIRumoQDSc8ExlLYwCYgB1Pj4PxVCh4xdLeua7SHlE3iFTFBCQhTQRPCHXjVmINt4+UFBpCrFJSFN5ii/Gvz1KyszePp/8u4qaPjckClAJvjOPCCeUVsc6C70riEdBcExitJEmyiLQPdxMjtxsGUFhnptptpddLNM0bsWo3qd+7kFTH9TnyANl253bquk3qQRhRF+A7PXK7rkkdpmqIO6QOQ5AuINXqeGbRlFgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.backButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAXtJREFUSEuVlT3KhEAMhiMsKgt6BC/iETyB59pDWFjrDWxsLSwFK8FCUFZ2RdiPCBky+ca/wBbjxGfeeROzVp7nPxDxfr/lo9trC8F7oK7rbgP7voemacBK03RTXFXVbYjpBYRiKHBd17Cuq8r1fR/meYbn8wnjOGqMx+OhcjGP7yN4WRazYp6MEAx+KK45nK81MHqJ3pyFhJ1aIcFJkpydoe3HcazWmscmsOu6l+CfzweM4NfrtXUFt6JtWyiKAo7g6Dn+wjCEIAiU56h4miawCDwMg1YgtIPACKAi8mtItbiniscV8+KcqUYoqeWHGcHSVK5a7km1JEoVz+QxQfZUm9ReBlOiSbXJWw7Wise7gn95UvWet3TLf11x9OVx1Sa1XMguGK8kBw8OmSzLNlFRFAGCKAh66vHecKEJxqGHs+KoK64MHQm/1G7yJf71yTHKi7cNelRMfyeXps7FpA1clqVKx+nP4/v9bkvP87Tn2KsUjuOAbdtqjXt/DvSA6WCSwboAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.jumpButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAARlJREFUOE+dlD2KhVAMhSMIWrkx1+CqXISFtS7C1sLSVrAQFEVFmOFcyH25eXNVJpWS+OXkz6Cu6x8Stq6rfH39HEjQX5BhGG5h4zhS3/cUlGVpFLVt+yp7GIZ0XZeNBQTmgJIkoW3bjEMGywwcw36AzvN0QTrbPM9UVZXhpGlKgGgDaFmWD6jrOkcFQ+I4Nt/u++7AOOkXSPZIQ1AGPtQwJHBAmAy6D9MQXYqGOT2SoKIoiMvxjRGwLMtMKywoz3MzflakQVyWhGqQGb8G/ac0BzRNk52aD3bbbK2IS3gaP8fZqWmQXMq7hfzaI5+ip8PDliPRK0USBgVs+mjNiUAR/wqeVPj8FtQ0jY3BJcOO4/ByoyiyPo77BUACR9z5EdScAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.crouchButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAASVJREFUOE+dlDsKhEAMhkcQtPJiVh7AU3kCKwsLKz2ErYWlrWAhKIqKsEsCmc08fLB/pSR++ZPM6FRV9RFMy7Lw19fPDgfZIH3f38KGYRBd1wknz3N01DTNq+qu64rzPGUuQEAKKAgCsa4rBngyr0A5FAfQcRwqSK82TZMoyxI5YRgKgOgC0DzPP1DbtooLgvi+j99u26bAqKgB4jPikCiK0EmapgYMCigg2AxMH6RDeCtFURgwZUYclGWZgHbAiU0Ei+MYRyFBSZLg+smRDoK2wCXJBsL166B/WlNA4zjKrdlgtvkow9YdUQtP66c8uTUdxA/l3YE0ztGVo6eLR0t45YjDwAFJv7R4RcAR/QqeXFzFJaiua5kDNxm07/sl1/M8GaO8L0fuVtxHFTIkAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.crouchButton:active {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAStJREFUOE+dlLGKhEAMhiOICqKdYGthaetL2GhlNQ9nZWFh5YtZiIKwRwLJjXHc3bu/WZnJfPknyazXtu0LACAMQ/whHcch3/qD44IgkK26rsFDUJIkjwc/bRRFAVmW/YJw4Rv5vg/neUooQlDiCEFpmsK2bbRhB9sJOIb3nSCdbV1XWJaFOE3TUCKtG6gsy4sLhkRRRGf3fb/AOKnTEWezIV3XkZNhGG4wjBeQMYbaz8XWEPsq8zzfYI+gcRwBr4NOXGKYMYZKIaC+7184XOxIg/Ba6JLlAuV5Dp4G/edqBOLJtrvmgrnqgy6rqroPpF2TT+3n2EeQPZTvBpLjBKRr9M17wxhugoD0HOlnwmBcZ9nv8ALiv4J3brAzWnEcy5I3TRNN9l9lQ/DsD7Mvyc0ay6bsAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.inventoryButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAedJREFUOE+tlM1OwkAQx6elTYiCkSMnvKAX38KLr+DRm69hfAIP3jwbE24ceA4+TDBpCMWEFGgMBCgBUlrzXzLLLsVYo3NpOjv72/987Bq1Wi2mf7AgCATFYOB0OiXTNCV6s9mQYRiUyWSkbzKZHDx6uVyS7/vU7Xa3wPl8Ts1mkxgSx7EAAQhfFEUaHH7ECEWGIb6u6+4UAliv16VCAMIwJMuyxAb8Q72qdl8q1MmUkW6j0dCAgADAZYAiVoON+OeD4O/1erpCABEAs237YK14nRcBRUlg/X6f1uv1toYodrvdFikiVQ7CBiiEArVhh05DyhLY6XRoNBpJIMAMTTtRCeBwOCQ057h8KRiB80a5XC61DzXUFAIYF8/o/u6W3t0Penh8ovJJNuErZU2yS+eJOMdxdk1Bygy8ub4iz/+k55dXCfzJd3F6JIZaU+h5Hi0WC/IiS5xUNEMqFAo0Ho81Xz6fp9lspvlQGplypVKJB4MBAci3I20j1DipUAWqQ4yZ+24ecfD+FCSAqKFq2MSDrN5bvi081BgxWAKIOVSvFwYcm9W7zI+BGsfXL1FDBvImfgiQGgNYKWfCzxti8NqgWQbXEO9ZGuMUkcF+UySw1WqJGvzFMIOr1WqrsFqtaiws/sYAYvsC6d7MZCUlFo0AAAAASUVORK5CYIIA");
|
||||
}
|
||||
.chatButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAh5JREFUOE99lN8vA0EQx2fjkYY3HvB/8V4kEg8SBJUGVVJU4rfeVRO01bpIT8VviYjEq2tF678g5ZGVmbm9Hy02l9zd7MxnZ747u+Lhsig7OrtBDQkS8BFCkAn/BQiQUrILmvHTfqOfeXEDAkE4397Z5TqQn/BBmMtwtQACTy5vQU8kQTxcFSmJSqncsKAT4AGohBQwrqcBpHQzUiDlUB/gpFL3QSAsX5WGIBUcHJn4K47sWmyONERN4toBfftA6ISQz9q7q4ONRM2UiM2BVtAW50izFT3N2t9fmKTRa7lMhr7REIF2tExDVv3BXtqAlkAbJGIRml9JZmhjxN1ZgXatalk0MTAehs/am73DvHOubrxrmNH2/DSDUjkW+7ZokGfFYo0GQ9PwUXuDhJb9Vaf+YA80B9pgPRIm/9W9QwZdF3LYflCxShQ4FI4QSPWRl6ZsWNrqTIgkW9vPc2nnRtbOiEHDs/P/gNBDUGnxqXHqz80Dg97iNLcvsWtfnrghv7+/YGxhmWA4cPX6sTQ5xtpJgK3DY8B4YWZSEvsANcJRD4mODjeAmiiSu2EnbzKokN6l81gpPVPARCzuBP4GoeKwGe1DnDwy+UwqULWMIHe7fSeepXFuBVUWmvWjAouNIDS8WJyRs6K6PjzXinOVeIr1ZJSSj6UqGHmDU8SC7R70/3NrqnnVqM51oy9FZXRDd7Oxa+C7y9/ZXKGnfI9WP7ZEKinpenUjAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.pauseButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAjJJREFUOE9lVO1qE1EQnXkK+6P6FP7oI/gMraIoFIMr1WL9aNEfRWNtS1Li1ti6aYr5sEkXyRrRRC2IFNqCgptIE5/myszcO7tbLwuZPTv3zJmTOxcP+10zMXkB3DJggB5EZIjeERCMMZJCMIX2l/Ki3jdAIqLv5ybPJwmchxkS4RVyV4AIP/QPINiuAB5+6bKI0WD4X0HdkCJwghxhIWgAGJMockQu4ewGlXImYCJq37VGROn2RU3WlqQvwx7S98KbOscZIpc4ffOW7mm+3uRYMHFZMImLQUOiH72IPfo7HKqCmdxtNbRZ9jmeyXm8kZIdRnix0uQ/Br9/6nAH4zhWsy97c7YeQt3f4PiKd0dV1vwNjYvVlph90A2ZaBSLR7Suzt21McJuqUB5cE0xgN1SkTHKL73dE6KvnRZDo3igVa7P39NztFNYZ/zG/IK2y5j9Z17W2tLa5/CdVWSJEGB24YESba++YILZ+4TRQthaW9HD+6oeMil+bNUMndrT3/ZAIkLu4aJWLz/Pc5x7tKhE5ZU8m05Pee890H6MmlVD54A8cstbeqxm+8+WGfaWnujI+E+XtbWtdiREncYOz+No8EeEI0Lv+KcoMgYuTV3kuH/ySwsR5oa4sh9JAUc0HhKRnBNxIjXxAuit4NoiONjviNlERMBpLIqcKr0+UteKXiWaCZBSVDVHgzGE7VAkUsN2yLLvotV9zyinfcF63uQ3g0SN7UEmKWlV1abbp8G1F94/2dEyKXciad8AAAAASUVORK5CYIIA");
|
||||
}
|
||||
.exitButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAiBJREFUOE99U11rE1EQnfsvFKwg/QkK+iaIio+KJNAnbUQoRaGgf0NRTFPU3TTJBjfdTZpN/aJtUHwU8anJJlH/y8o5c+92k1bnJXvn48yZMxNzmETZ2aXzQjMikunn6YYgkuZtb/+LGAAZY+TMuaX/IfwzBpBWMxAzHMQZaEyPxkw+rWeRpCPteFWDWIdRRiITC+Qm1KgRybJ5cOtzFKtBxO5mOIiyLBOZjca5RqXVCvPiRl01QYKIlCsVFu1sw6/p1VbEhgSCa3I0IoHSfQVxFtsigBfJRNt1BXKjHfQ77DcbpQyUKw9yEBSiCSkXDP6O7zN/sx3raJ97IcWejVOOEO1/lX4cHoMVFuDg7pRWpHzrGnO2gq6O+SFqM06NrPWG3wi2eFZ43y6tyN3rV/PcN+GuAu2FDTL/lU7owI6MGLm3vk6NcWMa0O01a5vHQxoRrzPQmt22bxkpEOpWHz2eE9aBoSNg69VXtomIFw1Uo27zbc4IHw83NsjCCax6z7/R2Xv5gmD13nslsONvcSe/0ykDa0+f6N3YYggLS7qhOye+Xz97zt9G/yNZmtCrZSjC+mEH33/mWwPIzSuXyO5wwX/j8kWOHySflFHo16jRdKQawVAEQ7JOpqOd9Iu0yMiIeefV+F+bjSe5gAv3d0L4on5kZOxoP9I/kvSTvDM6uCPiai0j+ItvsnU+PJYvLOteYfZ89WqKiZrg/LkONucvWvgqB/7CAfgAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.keyboardButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAfdJREFUOE+VVN1KG0EU/ubait7ZC9un6IXP4BvU9qJQJFhsEUGpPkAsWJL+xEjMxhRjEhMXyRqx2lYoRfCmF81uyca3UGKvp5xzZpJsFI3Lwjkz88035+ebUafHdf1w/DHsp6FBv1KKp2isoKC1FghNk2ss4byjH1BEROtj44+6AMapCInwCrk9gAj3j0/gbOSgTr/VOYjQ9yPAzo47nIRTBLTuRhT6waB7IzgmovRtakTEaRO7orR4cKefyG4zJkLUPcpWU6rRrc11P+kUBfHryOMatYIAz2Ze96VnOmXaZTtoi11aTyGZK3Fj1M/DGqPPGw08n53D0PAI/rUv2V61L/BgePTamPCEKaQ+IJmvSAlO6i4TtfwAL97MRyLiUI0UIm03c18+JvBpa0eIvtcqJD+EDR8v5xeQyZYQm5661RIpYXKJVXwuVCW1r26ZjyWi2OJbo2UR5E1RWDkSIrP6Dultl3uhDioFTapt/gnwamkZmWwZsemnbG/67BrZ9Eoc6zt7oP3KK+U16SBsBDg8+30vUU5OPEGm6glRrbjJ9zH0/0phSYzmgg7i53Y9uZP9RJ3bLe0SPd7iO7s1KTYREa5JEfXqb8AkeyLK6zO/BbfqSoiUsCGMjkVVdr1XY4xz3sd1fM3pnC9tN5vMm9QbnH2n+uv5HyQVKCmWNUnHAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.placeButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAd5JREFUOE+tlMlqQkEQRfs5gAv10xwQEf1Fd4J+h8PChYi6EKeNOCvqC6fltv2ISQxJgQjd1afq1vCCVqsVmn+w/X5vKYGAm83GxGIxh77dbiYIAhOPx93Zer1+Gfp0OpnVamVGo9EDuNvtTLfbNYKEYWhBADm73+8ROOf42IyCwP6Px+NnhgDb7bbLEMD1ejWJRMI+kJxsNvtlccjOSUZup9OJAIGS5eFwMM1m0zpXKhUHJEN8KBNBJ5NJNEOAOGDJZNI9JBjAVCpl8vl8JEOglASbTqfmcrk8akix+/2+lYhUOfHgeDxaIHflcvlbyQ44HA7Ncrl0QB4L6mdYLBbfBy4WC+tMg3xLp9MOTq2oqW+ZTMZ2nBpGMgQITA3QI78Rr+5rtZoNOBgMnk1Bsg+kATK/EQLqnnqXSiXbacYmkuFsNrOpMyr86Di1ZAtoDIZ8bQ9Zabi5c5Lr9Xo4n88NQG2HXyM1hbNqtfpzU3ygdllDyzwK6I8NgTUFiuAkC6guy0Gyt9utG+xCoeB2V0NNIOwTkDnESctOwTUm2pRcLmfPfD+t36caCkg0/7Ol4vtfGKnwG8TXBjWBJPM9e8ckEQW+IdkBe72ercFfjBk8n8+PDBuNRoTF5W8MkOwDqQTfZInxo/8AAAAASUVORK5CYIIA");
|
||||
}
|
||||
.breakButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAeRJREFUOE+tlMmKAjEURVMO4EL9MZcKKn6iO0G/w2HhQkRdiNNCcVbUak7kplNlNU1DP6iFMXXq3vvyEnQ6ndD8Q51OJ0sJBNzv9yaVSjn08/k0QRCYdDrt1na7XeKnr9er2Ww2ZjKZvIHH49H0+30jSBiGFgSQtdfrFYGzfjgcHLxQKJjpdPqtEGC323UKATweD5PJZCyI36iXWty0220HrNfrVp2zzIZerxcBAgGgGFANnI8Dy+VyFoDdarVqZrNZVCFAIFQ2m03MSsoEwwVPuVw28/nc3O/3d4aEPRwOrUU2kBuFKhQmKZM67FJYdsDxeGzW67UFbrdbu6FYLDqVcWVxWCJwtVq5fNhQKpVMPp//yEw2a7Wa+yBOyDCi0AeSEWEDpQEo55GySqXiOk7jiGg0Gn03BcsAdb7URaBqgN9R5eufhI8MF4uFbcLlcokcC/nS8dD0oIr9Kme52WyGy+XSANR0xJsATN1MPE9+l33g+Xy2+5Ms+1Dl5sOdZQHJUeMUbwovak1KsYttNetHoF6kk+TlqwbMmGkM+a05/8jQV8jGRqNhHSl8ZpjibKr8BnHbcAMFssx9RjNU/qT4WckiBzyeoQMOBgN3/fzUxd/WmZLb7fZW2Gq1Ivv58y8FSPUFhmoAc4SumvkAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.selectButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAcRJREFUOE+tlMuuAUEQhqsZCWJ4KAsLL0pG4pKQWHgHzMJK2LlFIm5BMCd/SbXumRGccyoRme7O13/VX9Wq0+kE9A9xOByYogS43W4pkUho9O12I6UUJZNJvbbZbGKvPp1OtFqtaDKZPID7/Z6GwyEJJAgCBgGItfv9bsGxjjOsSCn+n06nT4UA9vt98jxPKyiXy9Rutz/6xtn1ev0EIt3BYEC1Wo3S6TRvFItF6vV6dL1eyXEc/Y09rJVKJd5HuhEgFAIohf3Uo263y3ABXi6XRw1R7NFoRJVKhdXg9mw2y3WCUaiTaZhciMwkkLIGjsdjWi6XDETKSDefz78VWq/XrZQt4GKxoGq1qoG5XM5qIXFUlEI1ah6bMhQCiFpKZDIZqwexjvYBAC2FX7PZ1Apns9nTZQG+UhiXO+prmhipIW5AH0oNXddlg9AWpikyPWj4RqMRraHnecF8PicBisu/NsUEHo9Hq4apVCrWadQPCmNdFmDY5UKhwCYgzLmV2cXabreL9qEAw32IKUCYYxc3hubocR+GgYB88zDIebgMxRqI98wcpbdjEjpgAX3f58fxL4F0z+fzQ2Gr1bJY2PwmAJL4ASn3ymSCH/2UAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.scrollUpButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAfhJREFUOE+tlL1OAkEUhe8sUAkklHQ2dj6Q0crEwsTCWFlZGJ/Aws7amNBR8Bz8mKBBwmJClp+YEGAJkIU1Z8gZdlnWaPQ27A53vnvO3TujSqWSL/8QrutqiiJwNBqJZVkGvVwuRSkliUTCrA2Hw52lZ7OZDAYDabVaa+BkMpFqtSqE+L6vQQBibbVaheBYR45WpJT+tW17oxDAcrlsFALgeZ4kk0m9Ae9QH1S7LRXqjGXYrVQqISAgAACEgox0Oq0foZCFULTdbocVAogERCqVCglAwb2DQ73mNl4kCEVLEJ1ORxaLxbqHaHa9XtcWYZVJUAGF+IIA3p6fysnVteQtT7LZbKgoLBtgs9mUfr8v4/E4doAIRMIuaATY6/XEz+9/O5FQ+Gp/6Jy7+wetNJPJ6H6ihyGFBGITg5u3qziDT730+PSsoehpo9HYfBRYJvD97TVW5c3lheyCoc8Ry47jyHQ6jYU5q6ScHR9FlHGDsVwoFPxutysA8nRsUzE2BNJm7FcOAnmWObScRwJRCD3L5XJmtFjcWCYQPQwG1HLQg+NEZSiKecXsIiJAzCGSeNgx4HgOnmVs5MXAPB6/SA8J5CZeBFDBQrxh6ITXG3Jw28CJomXcZz8JWoSDYMCyAdZqNd2DvwROyXw+XyssFoshFv78TQDE+AI1+8NkGpdDjwAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.scrollDownButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAfxJREFUOE+tlMtKY0EQhqtzAdEkuPUBxI0PJO4EF4ILn2AYfItZDLhzBrLLIrjxHXIRIoSQEyGcXBgIuSckOfJ1qPYcY4KD1uZ0OtVf/39XdZt8Ph/IN8RoNLIUo8B+vy+xWMyhl8ulGGMkHo+7uV6v9+HW0+lUut2u1Ov1NXA4HEqpVBKFBEFgQQCZW61WETjz5FhFxtiv53lvCgEWCgWnEMBisZBEImEX8Bv1YbXvpaLOWcZusViMAIEAGI/Hbm0qlXJjFOpGbNpoNKIKAZJAJJNJ+2Wjg+NTOx5VnyQMZA4oR0I0m02Zz+frM+SwK5WKtYhVklAG7PbqQn7+urPATCaztR+w7IC1Wk06nY4DDgYDB3v2XuTPw6MFbgs22gC2222bT4FUGTAC4K4wvmfPMKIQ4Ecwv/tvJ+z3/V85zuxJtVp9KwqWAVIt7PqrhPy4uRaFsWhXnBzub1r2fd9WjVZBKdDL8zPLAXgUW2xlUn1nOZvNBq1WSwDq7dCWUagCP1XlMFDvsjbtZDKxSgkUKpCNtf9UtquyArXKmsAiGp0z1Uin0+7ualPTu8QGkD4kSS87Dc44fJdZqA+D5un12zhDBeoifQiwphvpC6OK9Xkjh9cGN0Yt8559JtQiDsKBZQcsl8v2DL4S3JLZbLZWmMvlIiz+/J8ApPEKFYzOZJBKmFAAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.throwButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAehJREFUOE+tlLtOAlEQhme5VAK9D2DnG1nZ2VpZG5/Aws7amNBR0PoAFnIxwYQQFhOyXEJCuEOANd/BOeyyG4PRaTZ7Lt/5/5k5xykWi778Q0ynU0NxFDgajSSRSFj0ZrMRx3EkmUzaseFwGHv0YrGQfr8vzWZzB5xMJlKpVEQhvu8bEEDGttttCM44a4wixzFf13X3CgGWSiWrEMB6vZZUKmU28I/6oNpDqaizlrFbLpdDQCAANA0oUjVs5F8PYrzVaoUVAmQBkU6nQwI4kMhkMqFxoKSEaLfbslqtdjkk2bVazVjEqi5iw3w+l5Ozc7NpWn+XXC4XWxgsW2Cj0ZBer2eBgIGiDNjt1aWBXFzfyGliHQuNALvdbuhkChWEfbifZv7u/sFAs9msXY8TchhSqEAmadI4mBIUSk4pHG7q9fq+KFgGSLXG4/GPsDgonRCx7HmezGazo2BAvf5AHp+ejX2UWsv5fN7vdDqCyqDNl9e32GoeDip0MBjschgEetvUUZDDRaiMAA+rTLK10YP3Vm+LNjUtRtgcqkL6MHi9aHA2B++yuavfD4OC9fpFcqhA3aQPAS2hB6lStazPG2t4begQm0Pes2NCLeIgGFi2wGq1anLwl6DCy+Vyp7BQKIRYTP4mAGl8AUQGwWSM9G4HAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.sprintButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAd1JREFUOE+tlEmKAkEQRSMdwIV6MbeKeEKVciXoORwWLkTUhThtxAFnq/lh/zSzyoaW7gCxDCtf/JjStNvtUP7BDoeDUgyB2+1WEomERd/vdzHGSDKZtL7NZvM29Ol0kvV6LePx+Anc7/fS6/WEkDAMFQQgfI/Hw4PDj3dUkTH6PZlMXgoB7HQ6ViEAt9tNUqmUHsBvqHfVRqVCnU0Z6Xa7XQ8ICAAsAxRRDQ7iNwPBP51OfYUA4gXY8Xi0AvL5vD4jKC2bzeojoCgJbDabyeVyedYQxR4MBpoiUq3VavZwoVAQAOr1uudjIDqRsgWORiNZrVYeMJPJ6LvoYKVSkWq1Kq4PgVxoDLhcLq0CNKnVaikAivEpFovSaDRi0Fwup6mjhp5CAlls1JFQKi2VShIEgReIJRkOh6+mIGUA0a10Oi3X61V2u11MZblc1lq+Sz2W8nw+V+kYFTdlqvsJxo7blIMgCBeLhQDI7Yg24KOmuEAO8bsRQRBatMPw25QJjHaZh9lFlIGGceFQY3bfAjGH7nphVNAkd5d1V78vBq4h1y9WQwJ5iBcBVouBeMNQKa83vIPbBpNhmDLus98YU0QGrqGGFtjv97WofzFsyfl8fipsNpseC39+YgDRvgDSDetkcdqdJgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.perspectiveButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAgxJREFUOE+VlM9L40AUx9+cF8Gbe1D/ld5F6FXv1h8gHirtaltXXGvU1o2g7ura1IJat61haaz4W7AieE6y2P4ZwrLnkfemM0lNl7JDIJnJy+d93zdvhj1d1/jH/kGQgwMHvBhjtIRzBgw45yIEl/Gxdcc46+oOGILwfV//gBdAcawNIrgCLhMg8Oz6Hoz9PLCnmxqJaDiuCvqfB90oAnDuKfKDIrEEsXJZrSuTQFi+LK3puKr0sVgC/v55hQ89vQpkZDW/NcoqPXdMfipQw3GUg5FYEkKhkILU63XIZVeCTgODTaMoEjxeWeRR0/U8Go+nCHRxbsHQcBgQ9H7sZ9K0tJk/oR/DHi6q9Neatq1iJ+cXQdd3wbJKChYOj8BEZJRisOS91SUBKpSF2fc1k0AN21V1T6eWCCRHNDoVULSTXqT4rcOSAN1Wy9h+QB61Gm3mczrg0daXVFsjyqzbRxVR2qX5s6XIUd0aXV4NKNIX5gNdjbDvxyats/PyEceufbFdlTG2kiEQliTv2WS8o6Ld0i/A75l1UuDYB+iRLO3T2lfliQStz812BP2oWAJULR7Qfmw4vwOGJjK6UqTFox27PH9qiT3ZDSS//hfIOK0KsxGEwS92UFHXjQYAPkUF/uw0wayYQiIW3Dp62ue0AdR7MfMdN8aGxrVvhkqOMsVx5gX5lclziiDMO/DeAFwyISmrQZieAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.screenshotButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAcdJREFUOE+llE1LAkEYx585R3Ssg/WVvEbn3g7RoVBRRJFMS0vBsFLXhHzJlyXcjNJKiBA67264+zUiOk88M+64WxAsLgs7M/vMb/7Pf2YeMhr06JJnBayHAgV8CSFsCPsECFBKeQgOY3PyxTil/wIEQfh/0bM8DWBxxAHhXA63FkDg3WAIUrEMZPTUYyIMTRdBbhoZqQ5A6VTRTCBM30rN1HSR+rovJERJ6YTdkt8WQaZUY34KkKFpzIMNXwi+vz4FaG5+AUrphNNhGy4r1flCb32FeWTqOmz6w27sgWIqDtlyg20MeX3osl0zVRW2g1GHGotaKDXEAlsba6yNSi+TMchWWtzsYU9mIEPVYSccYyBrIk7CtqI0BcjrXQUcR1A+HoXcdZODnrstPH6AHu1G4n8U/QfKxcJwVm3z1B7lm4kiDfYOkq5AmUgQzmsyO6fkvlWleGrHqg6+w5Qrj9IhP1w0bwHnE6VRoXgO0KPA0amrXTsO7EOhrXBQt37F7qOhfbiCWMHljsLv5KwgqdPlZiMI6WN1ZkUV+q6ZILdlLhETnpQeZ59dAPGf92zlRjpJ0EReEv6gTF7OpkF286w6xSBkWvB+AJ1TDClYPe7/AAAAAElFTkSuQmCC");
|
||||
}
|
||||
.coordinatesButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAeZJREFUOE+VlF1LAkEUhs9cR3RZF9avqyiILgwtxRBJttJawT7NNaHS0pZwM/oOIoKud1fSvxHR9cQ544y7rmANgvNx5pn3vHtm2PtDk0+EpkA2DhzwxxijKRwzYMA5FyE4jd3uP8ZZ98/AEITr46HJXgDFMR9EcAVcHoDA64cXMI5KwN4fmySi7bgq6D8d3agAcN5TNAw0E4krfjGrqT6BMH2ZWsdxvan7rJiOxOHn+4s2j4yOAYKkVXrxjPxUoLbjBJ0EBqjEC8E+wrAhMGdUhIC3e4s86riDPZqNJnwgBEjYUSYNuVKVPgx7vW3QV+vY9kCP52JJBZIBhWIVwuF5OFxPQa5cE2a/NE0CtW23v0RgIZFSENwsG0J200mKz59cCNBTo4blB+SRp9AWk2kfBDfLlk8lVEHunNZFanfmeVeRoxbDa+sBiL4aC1Q1Sto/M2me3dROOVbtp+2SooiWCUCy8ehACMYfXFwB7mdWtcyxDtCj5Y3tAGRzZcmXcr+RhbolQI3KMd3HttOCeEYHXT8gK9ATLRoeeltKl5a4k/0gufMvEIw1LhvCbAThxKfdGnr6oACPojL/cDpg1k0hERPuPj3+MV0AtS5GnufG2NK4tmeow1CmeM56QV4l8p0iCOs9eL/YmiwplUjFQgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
`;
|
||||
document.documentElement.appendChild(customStyle);
|
||||
BIN
mobile/favicon.png
Normal file
BIN
mobile/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
61
mobile/index.html
Normal file
61
mobile/index.html
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="description" content="Play minecraft 1.8 in your browser" />
|
||||
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
|
||||
<title>EaglercraftX 1.8</title>
|
||||
<meta property="og:locale" content="en-US" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="EaglercraftX 1.8" />
|
||||
<meta property="og:description" content="Play minecraft 1.8 in your browser" />
|
||||
<meta property="og:image" content="favicon.png" />
|
||||
<link type="image/png" rel="shortcut icon" href="favicon.png" />
|
||||
<script type="text/javascript" src="classes.js"></script>
|
||||
<script type="text/javascript" src="eaglerpocketmobile.user.js"></script>
|
||||
<script type="text/javascript">
|
||||
"use strict";
|
||||
window.addEventListener("load", () => {
|
||||
if(document.location.href.startsWith("file:")) {
|
||||
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
|
||||
}else {
|
||||
|
||||
// %%%%%%%%% launch options %%%%%%%%%%%%
|
||||
|
||||
const relayId = Math.floor(Math.random() * 3);
|
||||
window.eaglercraftXOpts = {
|
||||
demoMode: false,
|
||||
container: "game_frame",
|
||||
assetsURI: "assets.epk",
|
||||
localesURI: "lang/",
|
||||
worldsDB: "worlds",
|
||||
servers: [
|
||||
{ addr: "wss://zentic.cc", name: "Zentic" }
|
||||
],
|
||||
relays: [
|
||||
{ addr: "wss://relay.deev.is/", comment: "lax1dude relay #1", primary: relayId == 0 },
|
||||
{ addr: "wss://relay.lax1dude.net/", comment: "lax1dude relay #2", primary: relayId == 1 },
|
||||
{ addr: "wss://relay.shhnowisnottheti.me/", comment: "ayunami relay #1", primary: relayId == 2 },
|
||||
{ addr: "wss://eaglerrelay.glitch.me", comment: "hellscaped public relay #1", primary: relayId == 3 }
|
||||
]
|
||||
};
|
||||
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
var q = window.location.search;
|
||||
if(typeof q === "string" && q.startsWith("?")) {
|
||||
q = new URLSearchParams(q);
|
||||
var s = q.get("server");
|
||||
if(s) window.eaglercraftXOpts.joinServer = s;
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body style="margin:0px;width:100vw;height:100vh;overflow:hidden;" id="game_frame">
|
||||
</body>
|
||||
</html>
|
||||
1683
mobile/lang/af_ZA.lang
Normal file
1683
mobile/lang/af_ZA.lang
Normal file
File diff suppressed because it is too large
Load diff
1696
mobile/lang/ar_SA.lang
Normal file
1696
mobile/lang/ar_SA.lang
Normal file
File diff suppressed because it is too large
Load diff
1812
mobile/lang/ast_ES.lang
Normal file
1812
mobile/lang/ast_ES.lang
Normal file
File diff suppressed because it is too large
Load diff
1604
mobile/lang/az_AZ.lang
Normal file
1604
mobile/lang/az_AZ.lang
Normal file
File diff suppressed because it is too large
Load diff
2516
mobile/lang/bg_BG.lang
Normal file
2516
mobile/lang/bg_BG.lang
Normal file
File diff suppressed because it is too large
Load diff
1869
mobile/lang/ca_ES.lang
Normal file
1869
mobile/lang/ca_ES.lang
Normal file
File diff suppressed because it is too large
Load diff
2375
mobile/lang/cs_CZ.lang
Normal file
2375
mobile/lang/cs_CZ.lang
Normal file
File diff suppressed because it is too large
Load diff
1573
mobile/lang/cy_GB.lang
Normal file
1573
mobile/lang/cy_GB.lang
Normal file
File diff suppressed because it is too large
Load diff
1819
mobile/lang/da_DK.lang
Normal file
1819
mobile/lang/da_DK.lang
Normal file
File diff suppressed because it is too large
Load diff
2512
mobile/lang/de_DE.lang
Normal file
2512
mobile/lang/de_DE.lang
Normal file
File diff suppressed because it is too large
Load diff
1709
mobile/lang/el_GR.lang
Normal file
1709
mobile/lang/el_GR.lang
Normal file
File diff suppressed because it is too large
Load diff
1778
mobile/lang/en_AU.lang
Normal file
1778
mobile/lang/en_AU.lang
Normal file
File diff suppressed because it is too large
Load diff
2517
mobile/lang/en_CA.lang
Normal file
2517
mobile/lang/en_CA.lang
Normal file
File diff suppressed because it is too large
Load diff
2515
mobile/lang/en_GB.lang
Normal file
2515
mobile/lang/en_GB.lang
Normal file
File diff suppressed because it is too large
Load diff
1929
mobile/lang/en_PT.lang
Normal file
1929
mobile/lang/en_PT.lang
Normal file
File diff suppressed because it is too large
Load diff
1770
mobile/lang/eo_UY.lang
Normal file
1770
mobile/lang/eo_UY.lang
Normal file
File diff suppressed because it is too large
Load diff
2514
mobile/lang/es_AR.lang
Normal file
2514
mobile/lang/es_AR.lang
Normal file
File diff suppressed because it is too large
Load diff
2515
mobile/lang/es_ES.lang
Normal file
2515
mobile/lang/es_ES.lang
Normal file
File diff suppressed because it is too large
Load diff
2496
mobile/lang/es_MX.lang
Normal file
2496
mobile/lang/es_MX.lang
Normal file
File diff suppressed because it is too large
Load diff
1807
mobile/lang/es_UY.lang
Normal file
1807
mobile/lang/es_UY.lang
Normal file
File diff suppressed because it is too large
Load diff
1999
mobile/lang/es_VE.lang
Normal file
1999
mobile/lang/es_VE.lang
Normal file
File diff suppressed because it is too large
Load diff
2124
mobile/lang/et_EE.lang
Normal file
2124
mobile/lang/et_EE.lang
Normal file
File diff suppressed because it is too large
Load diff
1864
mobile/lang/eu_ES.lang
Normal file
1864
mobile/lang/eu_ES.lang
Normal file
File diff suppressed because it is too large
Load diff
1490
mobile/lang/fa_IR.lang
Normal file
1490
mobile/lang/fa_IR.lang
Normal file
File diff suppressed because it is too large
Load diff
2378
mobile/lang/fi_FI.lang
Normal file
2378
mobile/lang/fi_FI.lang
Normal file
File diff suppressed because it is too large
Load diff
1636
mobile/lang/fil_PH.lang
Normal file
1636
mobile/lang/fil_PH.lang
Normal file
File diff suppressed because it is too large
Load diff
2517
mobile/lang/fr_CA.lang
Normal file
2517
mobile/lang/fr_CA.lang
Normal file
File diff suppressed because it is too large
Load diff
2518
mobile/lang/fr_FR.lang
Normal file
2518
mobile/lang/fr_FR.lang
Normal file
File diff suppressed because it is too large
Load diff
1774
mobile/lang/ga_IE.lang
Normal file
1774
mobile/lang/ga_IE.lang
Normal file
File diff suppressed because it is too large
Load diff
1565
mobile/lang/gl_ES.lang
Normal file
1565
mobile/lang/gl_ES.lang
Normal file
File diff suppressed because it is too large
Load diff
1528
mobile/lang/gv_IM.lang
Normal file
1528
mobile/lang/gv_IM.lang
Normal file
File diff suppressed because it is too large
Load diff
1585
mobile/lang/he_IL.lang
Normal file
1585
mobile/lang/he_IL.lang
Normal file
File diff suppressed because it is too large
Load diff
1412
mobile/lang/hi_IN.lang
Normal file
1412
mobile/lang/hi_IN.lang
Normal file
File diff suppressed because it is too large
Load diff
2517
mobile/lang/hr_HR.lang
Normal file
2517
mobile/lang/hr_HR.lang
Normal file
File diff suppressed because it is too large
Load diff
2515
mobile/lang/hu_HU.lang
Normal file
2515
mobile/lang/hu_HU.lang
Normal file
File diff suppressed because it is too large
Load diff
1363
mobile/lang/hy_AM.lang
Normal file
1363
mobile/lang/hy_AM.lang
Normal file
File diff suppressed because it is too large
Load diff
1836
mobile/lang/id_ID.lang
Normal file
1836
mobile/lang/id_ID.lang
Normal file
File diff suppressed because it is too large
Load diff
1891
mobile/lang/is_IS.lang
Normal file
1891
mobile/lang/is_IS.lang
Normal file
File diff suppressed because it is too large
Load diff
2517
mobile/lang/it_IT.lang
Normal file
2517
mobile/lang/it_IT.lang
Normal file
File diff suppressed because it is too large
Load diff
2517
mobile/lang/ja_JP.lang
Normal file
2517
mobile/lang/ja_JP.lang
Normal file
File diff suppressed because it is too large
Load diff
2514
mobile/lang/ka_GE.lang
Normal file
2514
mobile/lang/ka_GE.lang
Normal file
File diff suppressed because it is too large
Load diff
2492
mobile/lang/ko_KR.lang
Normal file
2492
mobile/lang/ko_KR.lang
Normal file
File diff suppressed because it is too large
Load diff
1628
mobile/lang/kw_GB.lang
Normal file
1628
mobile/lang/kw_GB.lang
Normal file
File diff suppressed because it is too large
Load diff
1624
mobile/lang/la_LA.lang
Normal file
1624
mobile/lang/la_LA.lang
Normal file
File diff suppressed because it is too large
Load diff
1910
mobile/lang/lb_LU.lang
Normal file
1910
mobile/lang/lb_LU.lang
Normal file
File diff suppressed because it is too large
Load diff
2518
mobile/lang/lt_LT.lang
Normal file
2518
mobile/lang/lt_LT.lang
Normal file
File diff suppressed because it is too large
Load diff
1754
mobile/lang/lv_LV.lang
Normal file
1754
mobile/lang/lv_LV.lang
Normal file
File diff suppressed because it is too large
Load diff
458
mobile/lang/mi_NZ.lang
Normal file
458
mobile/lang/mi_NZ.lang
Normal file
|
|
@ -0,0 +1,458 @@
|
|||
addServer.add=Oti
|
||||
addServer.enterIp=Wāhi noho o te tūmau
|
||||
addServer.enterName=Ingoa o te tūmau
|
||||
addServer.hideAddress=huna wāhitau
|
||||
addServer.resourcePack=Pōkai Rauemi Tūmau
|
||||
addServer.resourcePack.disabled=Monokia
|
||||
addServer.resourcePack.enabled=Mkakaurangi
|
||||
addServer.resourcePack.prompt=Tohuāki
|
||||
addServer.title=Whakatika i te tūmau
|
||||
book.editTitle=Tomo Book Taitara:
|
||||
book.finalizeButton=Tohu me Katia
|
||||
book.finalizeWarning=Kia mōhio mai! A, no te haina koe i te pukapuka, ka kore e taea te reira.
|
||||
book.signButton=Tohu
|
||||
chat.cannotSend=Kāore e taea te tukatuka kōrerorero karere
|
||||
chat.copy=Tārua ki Papatopenga
|
||||
chat.link.confirm=Kei te hiahia koe ki te whakatuwhera i te hononga ki a koutou?
|
||||
chat.link.confirmTrusted=E hiahia ana koe ki te whakatūwhera mai tēnei hono ranei te tārua te reira ki o koutou papatopenga?
|
||||
chat.link.open=Whakatūwhera i roto i te Browser
|
||||
chat.link.warning=Kaua e whakat hononga i tangata ke!
|
||||
chat.stream.emote=(%s) * %s %s
|
||||
chat.stream.text=(%s) <%s> %s
|
||||
chat.type.achievement=%s kua tika roaa te paetae %s
|
||||
connect.authorizing=Takiuru in...
|
||||
connect.connecting=E hono ana ki te tūmau...
|
||||
connect.failed=I rahua te hono ki te tūmau
|
||||
controls.title=Mana
|
||||
createWorld.customize.custom.presets=Tatūkē
|
||||
createWorld.customize.flat.addLayer=tāpiri kahu-
|
||||
createWorld.customize.flat.editLayer=apa whakatika
|
||||
createWorld.customize.flat.height=teitei
|
||||
createWorld.customize.flat.layer.bottom=raro %s
|
||||
createWorld.customize.flat.layer.top=runga -%s
|
||||
createWorld.customize.flat.removeLayer=tango kahu-
|
||||
createWorld.customize.flat.tile=Apa nāunau
|
||||
createWorld.customize.flat.title=Whakaraupapa Superflat
|
||||
createWorld.customize.presets=Tatūkē
|
||||
createWorld.customize.presets.list=Tērā rānei, konei te etahi hanga tatou i mua!
|
||||
createWorld.customize.presets.select=whakamahi tatūkē
|
||||
createWorld.customize.presets.share=E hiahia ana ki te faaite i to koutou tatūkē ki te tangata? Whakamahia te pouaka i raro nei!
|
||||
createWorld.customize.presets.title=tīpako i te tatūkē
|
||||
demo.day.1=Tenei demo ka muri e rima nga ra game, koutou pai te mahi!
|
||||
demo.day.2=ra e rua
|
||||
demo.day.3=ra e toru
|
||||
demo.day.4=ra e wha
|
||||
demo.day.5=Ko koutou ra whakamutunga tenei!
|
||||
demo.day.6=kua mutu e rima nga ra. Press "F5" ki te tango he pikitia o to koutou hanga
|
||||
demo.day.warning=Ko to koutou wa tata ake!
|
||||
demo.demoExpired=Demo oti!
|
||||
demo.help.buy=hoko Minecraft inaianei!
|
||||
demo.help.fullWrapped=Tenei demo ka muri e rima nga ra (e pā ana ki 1 haora me te 40 miniti o te wā tūturu). Tirohia te whakatutukitanga mō ngā tīwhiri! Kia ngahau!
|
||||
demo.help.inventory=Whakamahia %1$s ki te whakatuwhera i tō peke
|
||||
demo.help.jump=Peke mā te pēhi i %1$s
|
||||
demo.help.later=Tonu tākaro!
|
||||
demo.help.movement=Whakamahia %1$s, %2$s, %3$s, %4$s me te kiore ki te neke a tawhio noa
|
||||
demo.help.movementMouse=Titiro huri noa te whakamahi i te kiore
|
||||
demo.help.movementShort=Neke mā te pēhi i %1$s, %2$s, %3$s, %4$s
|
||||
demo.help.title=Aratau Demo Minecraft
|
||||
demo.remainingTime=te wā e toe ana: %s
|
||||
demo.reminder=Kua mutu te demo. te hoko i te kēmu ki te haere tonu tīmata ranei te ao hou!
|
||||
disconnect.closed=katia hononga
|
||||
disconnect.disconnected=Kua momotu i te Tūmau
|
||||
disconnect.endOfStream=Mutunga o te Awa
|
||||
disconnect.kicked=I whana i te kēmu
|
||||
disconnect.loginFailed=I rahua te takiuru
|
||||
disconnect.loginFailedInfo=I rahua te takiuru: %s
|
||||
disconnect.loginFailedInfo.invalidSession=Wātū muhu (Me tīmata anō i tō kēmu)
|
||||
disconnect.loginFailedInfo.serversUnavailable=Ko te motuhēhēnga he wā ki raro mo te tiaki.
|
||||
disconnect.lost=hononga ngaro
|
||||
disconnect.overflow=papare te waipuke
|
||||
disconnect.quitting=whakamutu
|
||||
disconnect.spam=Whana hoki whakamuhani
|
||||
disconnect.timeout=pau i roto i
|
||||
entity.Boat.name=Waka
|
||||
entity.EntityHorse.name=Hoiho
|
||||
entity.horse.name=Hoiho
|
||||
gameMode.adventure=Aratau Adventure
|
||||
gameMode.changed=Kua whakahoutia te gameplay
|
||||
gameMode.creative=Aratau Creative
|
||||
gameMode.hardcore=aratau tino!
|
||||
gameMode.survival=Aratau Survival
|
||||
generator.amplified=ô-
|
||||
generator.amplified.info=pānui: anake hoki ngahau, me nui rorohiko
|
||||
generator.default=taunoa
|
||||
generator.flat=Superflat
|
||||
generator.largeBiomes=ngā wāhi nui
|
||||
gui.all=Katoa
|
||||
gui.back=Hoki
|
||||
gui.cancel=Whakakore
|
||||
gui.done=Oti
|
||||
gui.down=iho
|
||||
gui.no=Kāo
|
||||
gui.toMenu=hoki ki te mata taitara
|
||||
gui.up=Ake
|
||||
gui.yes=Āe
|
||||
item.apple.name=Āporo
|
||||
item.arrow.name=Pere
|
||||
item.bed.name=Moenga
|
||||
item.beefCooked.name=Kotinga mīti
|
||||
item.boat.name=Waka
|
||||
item.bone.name=Wheua
|
||||
item.bow.name=Kopere
|
||||
item.bread.name=Parāoa
|
||||
item.bucket.name=Pēre
|
||||
item.cake.name=Keke
|
||||
item.carrots.name=Kāreti
|
||||
item.charcoal.name=Waro
|
||||
item.clock.name=Karaka
|
||||
item.coal.name=Waro
|
||||
item.compass.name=Kāpehu
|
||||
item.cookie.name=Pihikete
|
||||
item.diamond.name=Taimana
|
||||
item.egg.name=Hēki
|
||||
item.emerald.name=Kahurangi
|
||||
item.feather.name=Piki
|
||||
item.fishingRod.name=Matira
|
||||
item.flint.name=Matā
|
||||
item.hatchetWood.name=Tuaina ki rakau
|
||||
item.ingotGold.name=Gold Ingot
|
||||
item.ingotIron.name=Iron Ingot
|
||||
item.leather.name=Rera
|
||||
item.map.name=Mapi
|
||||
item.painting.name=Waituhi
|
||||
item.pickaxeWood.name=Keriwhenua ki rakau
|
||||
item.saddle.name=Tera
|
||||
item.seeds.name=Purapura
|
||||
item.shovelWood.name=koko rakau
|
||||
item.sign.name=Pouārahi
|
||||
item.snowball.name=Poi huka
|
||||
item.stick.name=Rākau
|
||||
item.sulphur.name=Paura
|
||||
item.swordIron.name=Iron Hoari
|
||||
item.swordWood.name=te hoari rakau
|
||||
item.wheat.name=Wīti
|
||||
key.categories.inventory=Rārangi taonga
|
||||
key.categories.multiplayer=Multiplayer
|
||||
key.inventory=Rārangi taonga
|
||||
key.jump=Peke
|
||||
lanServer.otherPlayers=i ngā tautuhinga mō ētahi atu kaitākaro
|
||||
lanServer.scanning=matawai mō ngā kēmu i runga i tō whatunga rohe
|
||||
lanServer.start=tīmata LAN ao
|
||||
lanServer.title=LAN te ao
|
||||
language.code=mi_NZ
|
||||
language.name=Te Reo Māori
|
||||
language.region=Aotearoa
|
||||
mcoServer.title=hou te ao ipurangi Minecraft
|
||||
menu.convertingLevel=Faafariuraa o te ao
|
||||
menu.disconnect=Wetea
|
||||
menu.game=tahua kēmu
|
||||
menu.generatingLevel=Auaha te ao
|
||||
menu.generatingTerrain=Auaha te whenua
|
||||
menu.loadingLevel=Rāwekeweke te ao
|
||||
menu.multiplayer=huihui
|
||||
menu.options=nga kōwhiringa...
|
||||
menu.playdemo=Te tākaro Demo World
|
||||
menu.quit=Putanga
|
||||
menu.resetdemo=Tautuhi anō Demo World
|
||||
menu.respawning=whakawhānau takarure
|
||||
menu.returnToGame=Hoki ki te kēmu
|
||||
menu.returnToMenu=Putanga me haere ki te rārangi tono
|
||||
menu.shareToLan=tuwhera tō LAN
|
||||
menu.simulating=Construction o te ao i roto i nga paraire
|
||||
menu.singleplayer=anake
|
||||
menu.switchingLevel=Whakawhitiwhiti nga ao
|
||||
multiplayer.connect=Hono
|
||||
multiplayer.downloadingStats=Te tikiake i ngā tatauranga & whakatutukitanga ...
|
||||
multiplayer.downloadingTerrain=Tikiake ana i nga whenua
|
||||
multiplayer.info1=Minecraft Multiplayer kore tēnei wā kei te oti, engari i reira
|
||||
multiplayer.info2=whakamātautau bug wawe puta.
|
||||
multiplayer.ipinfo=Tomo i te IP o te tūmau, ki te hono atu ki reira:
|
||||
multiplayer.player.joined=%s uru atu te kēmu
|
||||
multiplayer.player.joined.renamed=%s (e mōhiotia i mua kia rite ki %s) i uru ki te kēmu
|
||||
multiplayer.player.left=%s mahue te kēmu
|
||||
multiplayer.stopSleeping=waiho Bed
|
||||
multiplayer.texturePrompt.line1=E taunaki ana tēnei tūmau i te whakamahi o te mōkihi rauemi ritenga.
|
||||
multiplayer.texturePrompt.line2=E hiahia ana koe ki te tiki ake me te tāuta i te reira aunoa?
|
||||
multiplayer.title=te tākaro multiplayer
|
||||
options.advancedButton=Settings Ataata Arā...
|
||||
options.advancedOpengl=OpenGL Arā
|
||||
options.advancedVideoTitle=Settings Ataata Arā
|
||||
options.anaglyph=3D Anaglyph
|
||||
options.ao=Whakamumuratanga Whakaene
|
||||
options.ao.max=Mōrahi
|
||||
options.ao.min=Mōkito
|
||||
options.ao.off=OFF
|
||||
options.chat.color=Tae
|
||||
options.chat.height.unfocused=Not Focused Height
|
||||
options.chat.links=Hononga Tukutuku
|
||||
options.chat.links.prompt=Tohuāki i runga i Hononga
|
||||
options.chat.opacity=Opacity
|
||||
options.chat.scale=Tauine
|
||||
options.chat.title=Settings kōrerorero...
|
||||
options.chat.visibility=kōrerorero
|
||||
options.chat.visibility.full=whakaaturia
|
||||
options.chat.visibility.hidden=Huna
|
||||
options.chat.visibility.system=tono anake
|
||||
options.chat.width=Whānuitanga
|
||||
options.controls=Mana...
|
||||
options.difficulty=Uaua
|
||||
options.difficulty.easy=Ngāwari
|
||||
options.difficulty.hard=Māro
|
||||
options.difficulty.hardcore=Hardcore
|
||||
options.difficulty.normal=Pūnoa
|
||||
options.difficulty.peaceful=Rangimārie
|
||||
options.farWarning1=Tūtohutia te tāutanga Java 64 bit te
|
||||
options.farWarning2='Far' hoatu tawhiti (koe 32 bit)
|
||||
options.fboEnable=Whakahohe i FBOs
|
||||
options.fov=FOV
|
||||
options.fov.max=Quake PROV
|
||||
options.fov.min=Pūnoa
|
||||
options.framerateLimit=Mokatere tāpare Max
|
||||
options.framerateLimit.max=Unlimited
|
||||
options.gamma=Gile
|
||||
options.gamma.max=Kanapa
|
||||
options.gamma.min=Moody
|
||||
options.graphics=Whakairoiro
|
||||
options.graphics.fancy=Fancy
|
||||
options.graphics.fast=Nohopuku
|
||||
options.guiScale=GUI Tauine
|
||||
options.guiScale.auto=Car
|
||||
options.guiScale.large=Nui
|
||||
options.guiScale.normal=Pūnoa
|
||||
options.guiScale.small=Iti
|
||||
options.hidden=Huna
|
||||
options.invertMouse=Huripoki Kiore
|
||||
options.language=Reo...
|
||||
options.languageWarning=E kore ai translations reo e tōtika 100%%
|
||||
options.multiplayer.title=Settings Multiplayer...
|
||||
options.music=Puoro
|
||||
options.off=OFF
|
||||
options.on=ON
|
||||
options.particles=matūriki
|
||||
options.particles.all=Katoa
|
||||
options.particles.decreased=Heke
|
||||
options.particles.minimal=Iti
|
||||
options.performanceButton=Settings Mahinga Ataata...
|
||||
options.performanceVideoTitle=Settings Mahinga Ataata
|
||||
options.postButton=Settings Post-Processing...
|
||||
options.postProcessEnable=Whakahohetia te Post-Processing
|
||||
options.postVideoTitle=Settings Post-Processing
|
||||
options.qualityButton=Settings Kounga Ataata...
|
||||
options.qualityVideoTitle=Settings Kounga Ataata
|
||||
options.renderClouds=Kapua
|
||||
options.renderDistance=Hoatu tawhiti
|
||||
options.renderDistance.far=Tawhiti
|
||||
options.renderDistance.normal=Pūnoa
|
||||
options.renderDistance.short=Poto
|
||||
options.renderDistance.tiny=Iti
|
||||
options.saturation=waiwai
|
||||
options.sensitivity=Rauangi
|
||||
options.sensitivity.max=HYPERSPEED!!!
|
||||
options.sensitivity.min=*Oha*
|
||||
options.snooper=Tukua popore
|
||||
options.sound=tangi
|
||||
options.sounds=Music & Oro...
|
||||
options.sounds.title=Kōwhiringa Music & Sound
|
||||
options.stream=Pāohotanga Settings...
|
||||
options.stream.changes=Me tīmata anō pea koutou awa koe mo ki enei rerekētanga tango i te wahi.
|
||||
options.stream.compression.high=Tiketike
|
||||
options.stream.compression.low=Iti
|
||||
options.stream.compression.medium=Waenga
|
||||
options.stream.mic_toggle.talk=Kōrero
|
||||
options.title=kōwhiringa
|
||||
options.video=Settings Video...
|
||||
options.videoTitle=Settings Video
|
||||
options.viewBobbing=Tirohia te whāwhā
|
||||
options.visible=whakaaturia
|
||||
record.nowPlaying=tākaro Na: %s
|
||||
selectServer.add=Tāpiri Tūmau
|
||||
selectServer.defaultName=Tūmau Minecraft
|
||||
selectServer.delete=Porowhiu
|
||||
selectServer.deleteButton=Porowhiu
|
||||
selectServer.deleteQuestion=Whakaū i te tango o tenei tūmau?
|
||||
selectServer.deleteWarning=Ngaro ka ake ake! (Te wa i!)
|
||||
selectServer.direct=Whakarerekē
|
||||
selectServer.edit=Whakarerekē
|
||||
selectServer.empty=tahanga
|
||||
selectServer.hiddenAddress=(Huna)
|
||||
selectServer.refresh=Update
|
||||
selectServer.select=amui atu tūmau
|
||||
selectServer.title=te tīpako i te tūmau
|
||||
selectWorld.allowCommands=Tuku i te whakahau:
|
||||
selectWorld.allowCommands.info=Kainga, herehere, i ētahi atu momo ao... /gamemode, /xp
|
||||
selectWorld.bonusItems=utu uma:
|
||||
selectWorld.cheats=Tinihanga
|
||||
selectWorld.conversion=Me tahuri!
|
||||
selectWorld.create=Waihanga he world new
|
||||
selectWorld.createDemo=Te tākaro New Demo World
|
||||
selectWorld.customizeType=Whakatauritea
|
||||
selectWorld.delete=Porowhiu
|
||||
selectWorld.deleteButton=Porowhiu
|
||||
selectWorld.deleteQuestion=E hiahia ana koe ki te muku i tēnei ao ki a koutou?
|
||||
selectWorld.deleteWarning=ka ngaro ake ake! (He roa te wā!)
|
||||
selectWorld.empty=tahanga
|
||||
selectWorld.enterName=ingoa ao
|
||||
selectWorld.enterSeed=uri mo te kaihanga ao
|
||||
selectWorld.gameMode=Aratau Game
|
||||
selectWorld.gameMode.adventure=Haere māia
|
||||
selectWorld.gameMode.adventure.line1=Rite aratau ora, engari e kore e taea e poraka
|
||||
selectWorld.gameMode.adventure.line2=tāpiri, te tango ranei,
|
||||
selectWorld.gameMode.creative=auaha
|
||||
selectWorld.gameMode.creative.line1=rauemi mure ore, e rere ana, me te kore utu
|
||||
selectWorld.gameMode.creative.line2=Top -%s
|
||||
selectWorld.gameMode.hardcore=tino
|
||||
selectWorld.gameMode.hardcore.line1=Rite aratau ora, kua kiia i faingataa
|
||||
selectWorld.gameMode.hardcore.line2=uaua, a kotahi te ora anake
|
||||
selectWorld.gameMode.survival=Noho ora
|
||||
selectWorld.gameMode.survival.line1=Rapu mō te rauemi, ke fokotuutuu, taonga
|
||||
selectWorld.gameMode.survival.line2=taumata, te hauora, me te matekai
|
||||
selectWorld.hardcoreMode=tino:
|
||||
selectWorld.hardcoreMode.info=mukua ao te ki runga ki te mate
|
||||
selectWorld.mapFeatures=Whakaputa hanganga:
|
||||
selectWorld.mapFeatures.info=Kainga, herehere, i ētahi atu momo ao
|
||||
selectWorld.mapType=Momo o te ao:
|
||||
selectWorld.mapType.normal=Noa
|
||||
selectWorld.moreWorldOptions=Ētahi atu Kōwhiringa Ao ...
|
||||
selectWorld.newWorld=ao hou
|
||||
selectWorld.newWorld.copyOf=kape o te %s
|
||||
selectWorld.recreate=Waihangatia tētahi atu wā
|
||||
selectWorld.rename=Huria te ingoa
|
||||
selectWorld.renameButton=whakaingoa
|
||||
selectWorld.renameTitle=whakaingoa World
|
||||
selectWorld.resultFolder=ka ora i roto i:
|
||||
selectWorld.seedInfo=waiho kia pātea tonu hoki te uri tupurangi
|
||||
selectWorld.select=Te tākaro i te ao kua tīpakohia
|
||||
selectWorld.title=Tīpakohia te ao
|
||||
selectWorld.world=Ao
|
||||
soundCategory.ambient=Ambient / Taiao
|
||||
soundCategory.block=poraka
|
||||
soundCategory.hostile=Vaerua kaikiri
|
||||
soundCategory.master=rōrahi te Kaiwhakaako
|
||||
soundCategory.music=Puoro
|
||||
soundCategory.neutral=Vaerua hoa
|
||||
soundCategory.player=kaitākaro
|
||||
soundCategory.record=Poraka rekoata / Tuhipoka
|
||||
soundCategory.weather=Weather
|
||||
tile.activatorRail.name=Activator Rail
|
||||
tile.anvil.name=Paepae maitai
|
||||
tile.bedrock.name=maka tefito
|
||||
tile.blockCoal.name=Poraka o Coal
|
||||
tile.blockDiamond.name=Poraka o Diamond
|
||||
tile.bookshelf.name=PukaPuka
|
||||
tile.brick.name=Pereki
|
||||
tile.button.name=Pātene
|
||||
tile.cake.name=Keke
|
||||
tile.carrots.name=Kāreti
|
||||
tile.chest.name=pouaka
|
||||
tile.chestTrap.name=aaka mau
|
||||
tile.cloth.name=Wūru
|
||||
tile.cocoa.name=Koukou
|
||||
tile.crops.name=Kai
|
||||
tile.deadbush.name=mate Bush
|
||||
tile.detectorRail.name=pūkimi Rail
|
||||
tile.dirt.default.name=Oneone
|
||||
tile.dirt.podzol.name=Onemata
|
||||
tile.doorIron.name=Iron Door
|
||||
tile.doorWood.name=Door Rakau
|
||||
tile.doublePlant.fern.name=Ponga
|
||||
tile.doublePlant.rose.name=Rōha
|
||||
tile.doublePlant.sunflower.name=Putiputi rā
|
||||
tile.farmland.name=Papanga pāmu
|
||||
tile.fence.name=Taiepa
|
||||
tile.fire.name=Ahi
|
||||
tile.flower1.dandelion.name=Tawao
|
||||
tile.flower2.allium.name=Allium
|
||||
tile.flower2.houstonia.name=Azure Bluet
|
||||
tile.flower2.tulipRed.name=Whero Tulip
|
||||
tile.furnace.name=Oumu
|
||||
tile.glass.name=Karaehe
|
||||
tile.goldenRail.name=Rail Powered
|
||||
tile.grass.name=tarutaru Poraka
|
||||
tile.gravel.name=Tuakirikiri
|
||||
tile.hayBlock.name=hay wuru
|
||||
tile.ice.name=Haupapa
|
||||
tile.ladder.name=Arawhata
|
||||
tile.lava.name=Tahepuia
|
||||
tile.leaves.acacia.name=hitimi Rau
|
||||
tile.leaves.big_oak.name=Dark Oak Rau
|
||||
tile.leaves.birch.name=birch Rau
|
||||
tile.leaves.jungle.name=uru raau no Rau
|
||||
tile.leaves.name=Ngā rau
|
||||
tile.leaves.oak.name=Rau oki
|
||||
tile.leaves.spruce.name=Rau te puruhi
|
||||
tile.lever.name=Ara
|
||||
tile.log.acacia.name=hitimi Wood
|
||||
tile.log.big_oak.name=Dark Oak Wood
|
||||
tile.log.birch.name=Birch Wood
|
||||
tile.log.jungle.name=uru raau no Wood
|
||||
tile.log.name=Rākau
|
||||
tile.log.oak.name=Rākau oke
|
||||
tile.log.spruce.name=te puruhi mo Wood
|
||||
tile.mobSpawner.name=Monster Spawner
|
||||
tile.obsidian.name=Matā
|
||||
tile.oreCoal.name=Coal Ore
|
||||
tile.oreDiamond.name=Diamond Ore
|
||||
tile.oreGold.name=Gold Ore
|
||||
tile.oreIron.name=Iron Ore
|
||||
tile.potatoes.name=Rīwai
|
||||
tile.pumpkin.name=Paukena
|
||||
tile.rail.name=Ara tereina
|
||||
tile.redstoneDust.name=Redstone puehu
|
||||
tile.sand.default.name=Kirikiri
|
||||
tile.sand.red.name=Kirikiri whero
|
||||
tile.sandStone.chiseled.name=whaoa hōanga
|
||||
tile.sandStone.default.name=Hōanga
|
||||
tile.sandStone.name=Hōanga
|
||||
tile.sandStone.smooth.name=hōanga Whakaene
|
||||
tile.sapling.acacia.name=hitimi Māhuri
|
||||
tile.sapling.birch.name=Birch Māhuri
|
||||
tile.sapling.jungle.name=uru raau no Māhuri
|
||||
tile.sapling.oak.name=Oak Māhuri
|
||||
tile.sapling.spruce.name=te puruhi mo Māhuri
|
||||
tile.sign.name=Tohu
|
||||
tile.snow.name=Huka
|
||||
tile.stainedGlass.black.name=Black ōpure koata
|
||||
tile.stainedGlass.blue.name=Blue ōpure koata
|
||||
tile.stainedGlass.brown.name=Brown ōpure koata
|
||||
tile.stainedGlass.cyan.name=Urikiko ōpure koata
|
||||
tile.stainedGlass.gray.name=Gray ōpure koata
|
||||
tile.stainedGlass.green.name=Green ōpure koata
|
||||
tile.stainedGlass.name=ōpure koata
|
||||
tile.stainedGlass.pink.name=Pink ōpure koata
|
||||
tile.stainedGlass.purple.name=Papura ōpure koata
|
||||
tile.stainedGlass.red.name=Whero ōpure koata
|
||||
tile.stainedGlass.silver.name=Light Gray ōpure koata
|
||||
tile.stairsSandStone.name=hōanga Arawhata
|
||||
tile.stairsStone.name=Stone Arawhata
|
||||
tile.stairsWood.name=Oak Wood Arawhata
|
||||
tile.stairsWoodAcacia.name=Hitimi Wood Arawhata
|
||||
tile.stairsWoodBirch.name=Birch Wood Arawhata
|
||||
tile.stairsWoodDarkOak.name=Dark Oak Wood Arawhata
|
||||
tile.stairsWoodJungle.name=Uru raau no Wood Arawhata
|
||||
tile.stairsWoodSpruce.name=Te puruhi mo Wood Arawhata
|
||||
tile.stoneMoss.name=Moss Stone
|
||||
tile.stonebrick.name=Cobblestone
|
||||
tile.tallgrass.fern.name=Ponga
|
||||
tile.tallgrass.grass.name=Karaihe
|
||||
tile.tallgrass.name=Karaihe
|
||||
tile.tallgrass.shrub.name=Riki
|
||||
tile.thinGlass.name=Pihanga
|
||||
tile.tnt.name=TNT
|
||||
tile.torch.name=Rama
|
||||
tile.water.name=Wai
|
||||
tile.weightedPlate_heavy.name=Plate Pressure tautaha (Taumaha)
|
||||
tile.weightedPlate_light.name=Plate Pressure tautaha (Light)
|
||||
tile.wood.acacia.name=Hitimi Wood papa
|
||||
tile.wood.big_oak.name=Dark Oak Wood papa
|
||||
tile.wood.birch.name=Birch Wood papa
|
||||
tile.wood.jungle.name=Uru raau no Wood papa
|
||||
tile.wood.name=papa rākau
|
||||
tile.wood.oak.name=Oak papa rakau
|
||||
tile.wood.spruce.name=Te puruhi mo Wood papa
|
||||
tile.woodSlab.acacia.name=Hitimi Wood papa
|
||||
tile.woodSlab.big_oak.name=Dark Oak Wood papa
|
||||
tile.woodSlab.birch.name=Birch Wood Papa
|
||||
tile.woodSlab.jungle.name=Uru raau no Wood papa
|
||||
tile.woodSlab.oak.name=Oak Wood Papa
|
||||
tile.woodSlab.spruce.name=Te puruhi mo Wood papa
|
||||
tile.workbench.name=Papamahi
|
||||
1534
mobile/lang/ms_MY.lang
Normal file
1534
mobile/lang/ms_MY.lang
Normal file
File diff suppressed because it is too large
Load diff
1909
mobile/lang/mt_MT.lang
Normal file
1909
mobile/lang/mt_MT.lang
Normal file
File diff suppressed because it is too large
Load diff
1739
mobile/lang/nds_DE.lang
Normal file
1739
mobile/lang/nds_DE.lang
Normal file
File diff suppressed because it is too large
Load diff
2516
mobile/lang/nl_NL.lang
Normal file
2516
mobile/lang/nl_NL.lang
Normal file
File diff suppressed because it is too large
Load diff
1630
mobile/lang/nn_NO.lang
Normal file
1630
mobile/lang/nn_NO.lang
Normal file
File diff suppressed because it is too large
Load diff
1852
mobile/lang/no_NO.lang
Normal file
1852
mobile/lang/no_NO.lang
Normal file
File diff suppressed because it is too large
Load diff
2490
mobile/lang/oc_FR.lang
Normal file
2490
mobile/lang/oc_FR.lang
Normal file
File diff suppressed because it is too large
Load diff
1981
mobile/lang/pl_PL.lang
Normal file
1981
mobile/lang/pl_PL.lang
Normal file
File diff suppressed because it is too large
Load diff
2516
mobile/lang/pt_BR.lang
Normal file
2516
mobile/lang/pt_BR.lang
Normal file
File diff suppressed because it is too large
Load diff
1989
mobile/lang/pt_PT.lang
Normal file
1989
mobile/lang/pt_PT.lang
Normal file
File diff suppressed because it is too large
Load diff
1104
mobile/lang/qya_AA.lang
Normal file
1104
mobile/lang/qya_AA.lang
Normal file
File diff suppressed because it is too large
Load diff
2515
mobile/lang/ro_RO.lang
Normal file
2515
mobile/lang/ro_RO.lang
Normal file
File diff suppressed because it is too large
Load diff
2517
mobile/lang/ru_RU.lang
Normal file
2517
mobile/lang/ru_RU.lang
Normal file
File diff suppressed because it is too large
Load diff
436
mobile/lang/se_NO.lang
Normal file
436
mobile/lang/se_NO.lang
Normal file
|
|
@ -0,0 +1,436 @@
|
|||
achievement.bakeCake=Gielis
|
||||
achievement.bakeCake.desc=Nisut, sohkar, mielki ja monit!
|
||||
achievement.blazeRod=Dollii
|
||||
achievement.bookcase=Girjerájusbargi
|
||||
achievement.buildBetterPickaxe=Buoredat
|
||||
achievement.diamonds=DIAMÁNTTAT!
|
||||
achievement.killWither=Álgu.
|
||||
achievement.spawnWither=Álgu?
|
||||
achievement.theEnd=Loahppa?
|
||||
achievement.theEnd2=Loahppa.
|
||||
addServer.add=Gárvvis
|
||||
attribute.name.generic.movementSpeed=Johtilvuohta
|
||||
book.finalizeButton=Sivdnidat ja dahppat
|
||||
book.generation.0=Originála
|
||||
book.signButton=Sivdnidat
|
||||
chat.stream.emote=(%s) * %s %s
|
||||
chat.stream.text=(%s) <%s> %s
|
||||
commands.ban.failed=Ii máhte gieldit čuojaheadji %s
|
||||
commands.ban.success=Čuojaheaddji %s lea gieldán
|
||||
commands.ban.usage=/ban <nama> [sivva...]
|
||||
commands.clone.usage=/clone <x1> <y1> <z1> <x2> <y2> <z2> <x> <y> <z> [mode]
|
||||
commands.compare.usage=/testforblocks <x1> <y1> <z1> <x2> <y2> <z2><x><y><z>[mode]
|
||||
commands.defaultgamemode.usage=/defaultgamemode <modus>
|
||||
commands.deop.failed=Ii máhte de-op %s
|
||||
commands.deop.usage=/deop <čuojaheadji>
|
||||
commands.difficulty.usage=/difficulty <ođđa áŧestus>
|
||||
commands.entitydata.noPlayers=%s lea čuojaheaddji ja ii máhte rievdaduvvot
|
||||
commands.gamemode.usage=/gamemode <modus> [čuojaheaddji]
|
||||
commands.generic.usage=Geavahus: %s
|
||||
commands.kick.usage=/kick <čuojaheadji> [sivva...]
|
||||
commands.message.display.incoming=%s savkala dutnje: %s
|
||||
commands.message.display.outgoing=Don savkalat čuojaheaddjai %s: %s
|
||||
commands.op.failed=Ii máhte op %s
|
||||
commands.op.usage=/op <čuojaheadji>
|
||||
commands.particle.usage=/particle <name> <x> <y> <z> <xd> <yd> <zd> <speed> [count] [mode]
|
||||
commands.say.usage=/say <dieđáhus>
|
||||
commands.scoreboard.teams.add.alreadyExists=Joavku namain %s juo gávdno
|
||||
commands.scoreboard.teams.add.success=Joavku '%s' lea lasihan
|
||||
commands.scoreboard.teams.leave.noTeam=Don it leat joavkkus
|
||||
commands.scoreboard.teams.list.entry=- %1$s: čájáhusanamma '%2$s', čuojaheaddjit %3$s
|
||||
commands.scoreboard.teams.list.player.empty=Eai leat čuojaheaddjit joavkkus %s
|
||||
commands.scoreboard.teams.list.usage=/scoreboard teams list [namma]
|
||||
commands.scoreboard.teams.option.usage=/scoreboard teams option <team> <friendlyfire|color|seeFriendlyInvisibles|nametagVisibility|deathMessageVisibility> <value>
|
||||
commands.scoreboard.teams.remove.success=Joavku %s lea sihkkon
|
||||
commands.seed.success=Seed: %s
|
||||
commands.setworldspawn.usage=/setworldspawn [<x> <y> <z>]
|
||||
commands.stats.block.usage=/stats block <x> <y> <z> <mode> ...
|
||||
commands.testfor.success=%s lea gávdnan
|
||||
commands.time.query=Diibmu lea %s
|
||||
commands.title.usage.clear=/title <čuojaheaddji> clear|reset
|
||||
commands.unban.failed=Ii máhte eahpegieldit čuojaheadji %s
|
||||
commands.unban.success=Čuojaheaddji %s lea eahpegieldán
|
||||
commands.unban.usage=/pardon <nama>
|
||||
commands.unbanip.usage=/pardon-ip <adreassa>
|
||||
commands.whitelist.add.usage=/whitelist add <čuojaheadji>
|
||||
commands.whitelist.remove.usage=/whitelist sihko <čuojaheadji>
|
||||
commands.worldborder.center.usage=/worldborder center <x> <z>
|
||||
container.enchant.clue=%s . . . ?
|
||||
container.furnace=Steaikauvdna
|
||||
container.isLocked=%s lea lohkkadan!
|
||||
createWorld.customize.custom.confirmTitle=Varuhus!
|
||||
createWorld.customize.custom.next=Viidáseappot
|
||||
createWorld.customize.custom.preset.goodLuck=Ollu lihkku
|
||||
createWorld.customize.custom.preset.isleLand=Sulloeatnan
|
||||
createWorld.customize.custom.preset.waterWorld=Čázi máilbmi
|
||||
createWorld.customize.custom.prev=Ruoktu
|
||||
createWorld.customize.custom.riverSize=Joga sturrodat
|
||||
createWorld.customize.custom.useCaves=Čiehppasat
|
||||
createWorld.customize.custom.useLavaLakes=Lava jávrrit
|
||||
createWorld.customize.custom.useRavines=Ruččut
|
||||
createWorld.customize.custom.useTemples=Tempelat
|
||||
createWorld.customize.custom.useVillages=Gávpogat
|
||||
createWorld.customize.custom.useWaterLakes=Čázi jávrrit
|
||||
createWorld.customize.flat.height=Allodat
|
||||
createWorld.customize.flat.layer.bottom=Bodni - %s
|
||||
createWorld.customize.flat.layer.top=Giera + %s
|
||||
death.attack.generic=%1$s jámii
|
||||
deathScreen.score=Čuoggát
|
||||
deathScreen.title=Don leat jábmi!
|
||||
demo.day.2=Nubbi beaivi
|
||||
demo.day.3=Goalmmát beaivi
|
||||
demo.day.4=Njealját beaivi
|
||||
demo.day.5=Dát lea du maŋimus beaivi!
|
||||
demo.help.buy=Oasttát dál!
|
||||
demo.help.later=Joatkkát ja čuojahat!
|
||||
disconnect.quitting=Guođđit
|
||||
disconnect.timeout=Mihkkege vástádus
|
||||
enchantment.level.1=I
|
||||
enchantment.level.10=X
|
||||
enchantment.level.2=II
|
||||
enchantment.level.3=III
|
||||
enchantment.level.4=IV
|
||||
enchantment.level.5=V
|
||||
enchantment.level.6=VI
|
||||
enchantment.level.7=VII
|
||||
enchantment.level.8=VIII
|
||||
enchantment.level.9=IX
|
||||
entity.Boat.name=Fanas
|
||||
entity.Cat.name=Bussá
|
||||
entity.Chicken.name=Vuonccis
|
||||
entity.Cow.name=Gussa
|
||||
entity.Creeper.name=Creeper
|
||||
entity.EntityHorse.name=Heasta
|
||||
entity.Item.name=Diŋga
|
||||
entity.Pig.name=Spiidni
|
||||
entity.Rabbit.name=Kaniidna
|
||||
entity.Sheep.name=Sávza
|
||||
entity.SnowMan.name=Čagigolem
|
||||
entity.Spider.name=Heavdni
|
||||
entity.Villager.librarian=Girjerájusbargi
|
||||
entity.VillagerGolem.name=Ruovddigolem
|
||||
entity.Wolf.name=Gumpe
|
||||
entity.Zombie.name=Zombi
|
||||
entity.generic.name=dovdameahttun
|
||||
entity.horse.name=Heasta
|
||||
entity.zombiehorse.name=Zombi heasta
|
||||
gameMode.adventure=Máinasmodus
|
||||
gameMode.hardcore=Hardcore-modus!
|
||||
gui.all=Buot
|
||||
gui.back=Ruoktu
|
||||
gui.cancel=Šluhtte
|
||||
gui.done=Gárvvis
|
||||
gui.down=vulos
|
||||
gui.no=Ii
|
||||
gui.none=Ii mihkkege
|
||||
gui.stats=Statistihkat
|
||||
gui.toMenu=Ruoktu váldufálus
|
||||
gui.up=Bajás
|
||||
gui.yes=Gal
|
||||
inventory.binSlot=Billistát diŋgga
|
||||
item.apple.name=Eappel
|
||||
item.banner.black.name=Čáhppat leavga
|
||||
item.banner.blue.name=Alit leavga
|
||||
item.banner.brown.name=Ruškat leavga
|
||||
item.banner.gray.name=Ránis leavga
|
||||
item.banner.green.name=Ruoná leavga
|
||||
item.banner.mojang.black=Čáhppat ášši
|
||||
item.banner.mojang.blue=Alit ášši
|
||||
item.banner.mojang.brown=Ruškat ášši
|
||||
item.banner.mojang.gray=Ránis ášši
|
||||
item.banner.mojang.green=Ruoná ášši
|
||||
item.banner.mojang.orange=Oránša ášši
|
||||
item.banner.mojang.pink=Guvgesruoksa ášši
|
||||
item.banner.mojang.purple=Sáhppat ášši
|
||||
item.banner.mojang.red=Ruoksat ášši
|
||||
item.banner.mojang.white=Vielgat ášši
|
||||
item.banner.mojang.yellow=Fiskat ášši
|
||||
item.banner.orange.name=Oránša leavga
|
||||
item.banner.pink.name=Guvgesruoksat leavga
|
||||
item.banner.purple.name=Sáhppat leavga
|
||||
item.banner.red.name=Ruoksat leavga
|
||||
item.banner.small_stripes.black=Čáhppat ráidá
|
||||
item.banner.small_stripes.blue=Alit ráidá
|
||||
item.banner.small_stripes.brown=Ruškat
|
||||
ráidá
|
||||
item.banner.small_stripes.gray=Ránis ráidá
|
||||
item.banner.small_stripes.green=Ruoná ráidá
|
||||
item.banner.small_stripes.orange=Oránša ráidá
|
||||
item.banner.small_stripes.pink=Guvgeruoksat ráidá
|
||||
item.banner.small_stripes.purple=Sáhppat ráidá
|
||||
item.banner.small_stripes.red=Ruoksat ráidá
|
||||
item.banner.small_stripes.white=Vielgat ráidá
|
||||
item.banner.small_stripes.yellow=Fiskat ráidá
|
||||
item.banner.straight_cross.black=Čáhppat ruossa
|
||||
item.banner.straight_cross.blue=Alit ruossa
|
||||
item.banner.straight_cross.brown=Ruškat ruossa
|
||||
item.banner.straight_cross.gray=Ránis ruossa
|
||||
item.banner.straight_cross.green=Ruoná ruossa
|
||||
item.banner.straight_cross.orange=Oránša ruossa
|
||||
item.banner.straight_cross.pink=Guvgesruoksat ruossa
|
||||
item.banner.straight_cross.purple=Sáhppat ruossa
|
||||
item.banner.straight_cross.red=Ruoksat ruossa
|
||||
item.banner.straight_cross.white=Vielgat ruossa
|
||||
item.banner.straight_cross.yellow=Fiskat ruossa
|
||||
item.banner.white.name=Vielgat leavga
|
||||
item.banner.yellow.name=Fiskat leavga
|
||||
item.bed.name=Seaŋga
|
||||
item.boat.name=Fanas
|
||||
item.book.name=Girji
|
||||
item.bow.name=Dávgi
|
||||
item.bowl.name=Bolljá
|
||||
item.bread.name=Láibi
|
||||
item.bucket.name=Skállu
|
||||
item.bucketLava.name=Lavaskállu
|
||||
item.bucketWater.name=Čáziskállu
|
||||
item.cake.name=Gáhkku
|
||||
item.clay.name=láira
|
||||
item.cookie.name=Keaksa
|
||||
item.diamond.name=Diamántta
|
||||
item.egg.name=Monni
|
||||
item.feather.name=Dávgi
|
||||
item.fireworksCharge.black=Čáhppat
|
||||
item.fireworksCharge.blue=Alit
|
||||
item.fireworksCharge.gray=Ránis
|
||||
item.fireworksCharge.green=Ruoná
|
||||
item.fireworksCharge.orange=Oránša
|
||||
item.fireworksCharge.red=Ruoksat
|
||||
item.fireworksCharge.white=Vielgat
|
||||
item.hatchetDiamond.name=Diamántta-ákšu
|
||||
item.hatchetGold.name=Golliákšu
|
||||
item.hatchetIron.name=Ruovddiákšu
|
||||
item.hatchetStone.name=Geađggiákšu
|
||||
item.hatchetWood.name=Muorra-ákšu
|
||||
item.leaves.name=Lasttat
|
||||
item.map.name=Gárta
|
||||
item.melon.name=Melovdna
|
||||
item.milk.name=Mielki
|
||||
item.paper.name=Bábir
|
||||
item.pickaxeDiamond.name=Diamánttaguohkki
|
||||
item.pickaxeGold.name=Golliguohkki
|
||||
item.pickaxeIron.name=Ruovddiguohkki
|
||||
item.pickaxeStone.name=Geađggiguohkki
|
||||
item.pickaxeWood.name=Muorraguohkki
|
||||
item.potion.name=Juhkamuš
|
||||
item.record.11.desc=C418 - 11
|
||||
item.record.13.desc=C418 - 13
|
||||
item.record.blocks.desc=C418 - blocks
|
||||
item.record.cat.desc=C418 - cat
|
||||
item.record.chirp.desc=C418 - chirp
|
||||
item.record.far.desc=C418 - far
|
||||
item.record.mall.desc=C418 - mall
|
||||
item.record.mellohi.desc=C418 - mellohi
|
||||
item.record.stal.desc=C418 - stal
|
||||
item.record.strad.desc=C418 - strad
|
||||
item.record.wait.desc=C418 - wait
|
||||
item.record.ward.desc=C418 - ward
|
||||
item.redstone.name=Ruoksatgeađgi
|
||||
item.saddle.name=Sále
|
||||
item.sign.name=Galba
|
||||
item.skull.char.name=Oaivi
|
||||
item.skull.creeper.name=Creeper oaivi
|
||||
item.skull.player.name=Čuojaheadji %s oaivi
|
||||
item.skull.zombie.name=Zombi oaivi
|
||||
item.stick.name=Sággi
|
||||
item.sugar.name=Sohkar
|
||||
item.sulphur.name=Rukta
|
||||
item.swordDiamond.name=Diamánttamiehkki
|
||||
item.swordGold.name=Gollimiehkki
|
||||
item.swordIron.name=Ruovddimiehkki
|
||||
item.swordStone.name=Geađggimiehkki
|
||||
item.swordWood.name=Muorramiehkki
|
||||
itemGroup.combat=Dáistaleapmi
|
||||
itemGroup.food=Borramuš
|
||||
itemGroup.redstone= Ruoksatgeađgi
|
||||
itemGroup.tools=Reaiddut
|
||||
key.categories.movement=Johtu
|
||||
key.jump=Njuiket
|
||||
key.mouseButton=Boallu %1$s
|
||||
key.playerlist=Čuojaheadjelistu
|
||||
key.sprint=Viegat
|
||||
lanServer.title=LAN máilbmi
|
||||
language.code=sme
|
||||
language.name=Davvisámegiella
|
||||
language.region=Sápmi
|
||||
menu.disconnect=Guođe
|
||||
menu.options=Heivehusat...
|
||||
menu.quit=Guođe spealus
|
||||
menu.returnToGame=Ruoktu spealluin
|
||||
menu.switchingLevel=Molssut máilmmiid
|
||||
multiplayer.connect=Čanat
|
||||
multiplayer.downloadingTerrain=Viežžá eanadaga
|
||||
multiplayer.player.joined=%s lea laktásan spealu
|
||||
multiplayer.player.left=%s guđii spealus
|
||||
multiplayer.stopSleeping=Guođđit seaŋggas
|
||||
options.ao.off=II ALDE
|
||||
options.blockAlternatives=Molssoeavttolaččat blohkat
|
||||
options.chat.color=Ivnnit
|
||||
options.chat.visibility.hidden=Čiegus
|
||||
options.chat.width=Viidodat
|
||||
options.difficulty=Áŧestus
|
||||
options.difficulty.easy=Geahpas
|
||||
options.difficulty.hard=Lossat
|
||||
options.difficulty.hardcore=Hardcore
|
||||
options.difficulty.normal=Normála
|
||||
options.difficulty.peaceful= Ráfálaš
|
||||
options.fov.max=Quake Pro
|
||||
options.fov.min=Normála
|
||||
options.graphics=Grafihkka
|
||||
options.graphics.fancy=Fiinnis
|
||||
options.graphics.fast=Johtil
|
||||
options.guiScale.auto=Automáhtalaš
|
||||
options.guiScale.large=Stuoris
|
||||
options.guiScale.normal=Normála
|
||||
options.guiScale.small=Uhcci
|
||||
options.hidden=Čiegus
|
||||
options.language=Giella...
|
||||
options.modelPart.cape=Gákti
|
||||
options.modelPart.hat=Háhtta
|
||||
options.modelPart.jacket=Jáhkka
|
||||
options.music=Musihkka
|
||||
options.off=II ALDE
|
||||
options.on=ALDE
|
||||
options.particles=Partihkalat
|
||||
options.particles.all=Buot
|
||||
options.renderClouds=Balvvat
|
||||
options.renderDistance.far=Viiddis
|
||||
options.renderDistance.normal=Normála
|
||||
options.renderDistance.short=Oanehaš
|
||||
options.renderDistance.tiny=Smávis
|
||||
options.sensitivity.max=HYPERJOHTIL!!!
|
||||
options.sound=Jienat
|
||||
options.sounds=Musihkka ja jienat...
|
||||
options.stream.bytesPerPixel=Dássu
|
||||
options.stream.chat.enabled.always=Álo
|
||||
options.stream.chat.enabled.never=Ii goassige
|
||||
options.stream.chat.userFilter=Geavaheadjifilttar
|
||||
options.stream.mic_toggle.mute=Váidudat
|
||||
options.stream.mic_toggle.talk=Humat
|
||||
options.title=Heivehusat
|
||||
potion.damageBoost=Vuoibmi
|
||||
potion.digSpeed=Hoahppu
|
||||
potion.hunger=Nealgi
|
||||
potion.moveSpeed=Johtilvuohta
|
||||
potion.poison=Mirko
|
||||
potion.potency.1=II
|
||||
potion.potency.2=III
|
||||
potion.potency.3=IV
|
||||
potion.prefix.mundane=Dábálaš
|
||||
potion.prefix.uninteresting=Ahkit
|
||||
selectServer.delete=Sihko
|
||||
selectServer.deleteButton=Sihko
|
||||
selectServer.edit=Rievdádeapmi
|
||||
selectServer.empty=guoros
|
||||
selectServer.hiddenAddress=(Čiegus)
|
||||
selectWorld.create=Luova ođđasa máilmmi
|
||||
selectWorld.delete=Sihko
|
||||
selectWorld.deleteButton=Sihko
|
||||
selectWorld.empty=guoros
|
||||
selectWorld.enterName=Máilmmi namma
|
||||
selectWorld.gameMode=Spealumodus
|
||||
selectWorld.gameMode.adventure=Máinnas
|
||||
selectWorld.gameMode.creative=Kreatiiva
|
||||
selectWorld.gameMode.hardcore=Hardcore
|
||||
selectWorld.hardcoreMode=Hardcore:
|
||||
selectWorld.mapType=Máilmmi tiipa:
|
||||
selectWorld.mapType.normal=Normála
|
||||
selectWorld.moreWorldOptions=Eanet máilmmiheivehusat...
|
||||
selectWorld.newWorld=Ođđa máilbmi
|
||||
selectWorld.newWorld.copyOf="%s" máŋggus
|
||||
selectWorld.rename=Attát ođđasa nama
|
||||
selectWorld.renameButton=Attát ođđasa nama
|
||||
selectWorld.renameTitle=Attát máilbmái ođđasa nama
|
||||
selectWorld.title=Vállje máilmmi
|
||||
selectWorld.world=Máilbmi
|
||||
soundCategory.block=Blohkat
|
||||
soundCategory.music=Musihkka
|
||||
soundCategory.player=Čuojaheaddjit
|
||||
soundCategory.weather=Dálki
|
||||
stat.itemsButton=Diŋggat
|
||||
stream.unavailable.initialization_failure.extra=(Sivva: %s)
|
||||
stream.unavailable.no_fbo.version=Dál don atnát: %s
|
||||
stream.unavailable.not_supported.mac.okay=Buoredat
|
||||
stream.unavailable.report_to_mojang=Dieđihát Mojangai
|
||||
stream.user.mode.banned=Gieldán
|
||||
stream.user.mode.banned.other=Gieldán %s gulahallangaskaoamis
|
||||
stream.user.mode.banned.self=Gieldán du gulahallangaskaoamis
|
||||
stream.user.mode.broadcaster=Doaimmaheaddji
|
||||
stream.user.mode.broadcaster.other=Doaimmaheaddji
|
||||
stream.user.mode.broadcaster.self=Doaimmaheaddji (Don!)
|
||||
stream.userinfo.ban=Gielddát
|
||||
stream.userinfo.unban=Eahpegielddát
|
||||
tile.anvil.intact.name=Stáđđi
|
||||
tile.anvil.name=Stáđđi
|
||||
tile.barrier.name=Eastta
|
||||
tile.bed.name=Seaŋga
|
||||
tile.blockCoal.name=Hilablohkka
|
||||
tile.blockDiamond.name=Diamánttablohkka
|
||||
tile.blockGold.name=Golliblohkka
|
||||
tile.blockIron.name=Ruovddiblohkka
|
||||
tile.blockRedstone.name=Ruoksatgeađggiblohkka
|
||||
tile.brick.name=Tiillat
|
||||
tile.cake.name=Gáhkku
|
||||
tile.carrots.name=Rušppit
|
||||
tile.clay.name=láira
|
||||
tile.cloth.black.name=Čáhppat ullu
|
||||
tile.cloth.blue.name=Alit ullu
|
||||
tile.cloth.brown.name=Ruškat ullu
|
||||
tile.cloth.gray.name=Ránis ullu
|
||||
tile.cloth.green.name=Ruoná ullu
|
||||
tile.cloth.name=Ullu
|
||||
tile.cloth.orange.name=Oránša ullu
|
||||
tile.cloth.pink.name=Guvgesruoksat ullu
|
||||
tile.cloth.purple.name=Sáhppat ullu
|
||||
tile.cloth.red.name=Ruoksat ullu
|
||||
tile.cloth.white.name=Ullu
|
||||
tile.cloth.yellow.name=Fiskat ullu
|
||||
tile.cocoa.name=Kakáo
|
||||
tile.dirt.coarse.name=Roavis eana
|
||||
tile.dirt.default.name=Eana
|
||||
tile.dirt.name=Eana
|
||||
tile.doublePlant.name=Šaddu
|
||||
tile.fire.name=Dolla
|
||||
tile.flower1.name=Lieđđi
|
||||
tile.flower2.name=Lieđđi
|
||||
tile.glass.name=Glássa
|
||||
tile.gravel.name=Čievra
|
||||
tile.ice.name=Jiekŋa
|
||||
tile.lava.name=Lava
|
||||
tile.leaves.name=Lasttat
|
||||
tile.litpumpkin.name=Gurbetlikta
|
||||
tile.log.name=Muorra
|
||||
tile.melon.name=Melovdna
|
||||
tile.mushroom.name=Guoppar
|
||||
tile.potatoes.name=Buđeitad
|
||||
tile.pumpkin.name=Gurbbet
|
||||
tile.redSandStone.chiseled.name=Luokčan Ruoksat Sáttogeađgi
|
||||
tile.redSandStone.default.name=Ruoksat Sáttogeađgi
|
||||
tile.redSandStone.name=Ruoksat Sáttogeađgi
|
||||
tile.sand.default.name=Sáttu
|
||||
tile.sand.name=Sáttu
|
||||
tile.sand.red.name=Ruoksat sáttu
|
||||
tile.sandStone.chiseled.name=Luokčan sáttogeađgi
|
||||
tile.sandStone.default.name=Sáttogeađgi
|
||||
tile.sandStone.name=Sáttogeađgi
|
||||
tile.sign.name=Galba
|
||||
tile.sponge.dry.name=Guopparas
|
||||
tile.sponge.wet.name=Njuoskkas guopparas
|
||||
tile.stone.stone.name=Geađgi
|
||||
tile.tallgrass.grass.name=Rássi
|
||||
tile.tallgrass.name=Rássi
|
||||
tile.tallgrass.shrub.name=Miestta
|
||||
tile.tnt.name=TNT
|
||||
tile.torch.name=Spáiddar
|
||||
tile.water.name=Čáhci
|
||||
tile.woolCarpet.black.name=Čáhppat lávdebeaitta
|
||||
tile.woolCarpet.blue.name=Alit lávdebeaitta
|
||||
tile.woolCarpet.brown.name=Ruškat lávdebeaitta
|
||||
tile.woolCarpet.gray.name=Ránis lávdebeaitta
|
||||
tile.woolCarpet.green.name=Ruoná lávdebeaitta
|
||||
tile.woolCarpet.name=Lávdebeaitta
|
||||
tile.woolCarpet.orange.name=Oránša lávdebeaitta
|
||||
tile.woolCarpet.pink.name=Guvgesruoksat lávdebeaitta
|
||||
tile.woolCarpet.purple.name=Sáhppat lávdebeaitta
|
||||
tile.woolCarpet.red.name=Ruoksat lávdebeaitta
|
||||
tile.woolCarpet.white.name=Lávdebeaitta
|
||||
tile.woolCarpet.yellow.name=Fiskat lávdebeaitta
|
||||
1849
mobile/lang/sk_SK.lang
Normal file
1849
mobile/lang/sk_SK.lang
Normal file
File diff suppressed because it is too large
Load diff
1574
mobile/lang/sl_SI.lang
Normal file
1574
mobile/lang/sl_SI.lang
Normal file
File diff suppressed because it is too large
Load diff
1820
mobile/lang/sr_SP.lang
Normal file
1820
mobile/lang/sr_SP.lang
Normal file
File diff suppressed because it is too large
Load diff
2516
mobile/lang/sv_SE.lang
Normal file
2516
mobile/lang/sv_SE.lang
Normal file
File diff suppressed because it is too large
Load diff
1729
mobile/lang/th_TH.lang
Normal file
1729
mobile/lang/th_TH.lang
Normal file
File diff suppressed because it is too large
Load diff
1253
mobile/lang/tlh_AA.lang
Normal file
1253
mobile/lang/tlh_AA.lang
Normal file
File diff suppressed because it is too large
Load diff
2518
mobile/lang/tr_TR.lang
Normal file
2518
mobile/lang/tr_TR.lang
Normal file
File diff suppressed because it is too large
Load diff
2471
mobile/lang/uk_UA.lang
Normal file
2471
mobile/lang/uk_UA.lang
Normal file
File diff suppressed because it is too large
Load diff
2517
mobile/lang/val_ES.lang
Normal file
2517
mobile/lang/val_ES.lang
Normal file
File diff suppressed because it is too large
Load diff
2492
mobile/lang/vi_VN.lang
Normal file
2492
mobile/lang/vi_VN.lang
Normal file
File diff suppressed because it is too large
Load diff
2516
mobile/lang/zh_CN.lang
Normal file
2516
mobile/lang/zh_CN.lang
Normal file
File diff suppressed because it is too large
Load diff
2517
mobile/lang/zh_TW.lang
Normal file
2517
mobile/lang/zh_TW.lang
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue