Compare commits
No commits in common. "78518c66542caaeb86e0f5e24791da50f979736d" and "fc63625875945ec725020065b111b22bc8fbde10" have entirely different histories.
78518c6654
...
fc63625875
BIN
eagler-files/controller/1.8/Main/assets.epk
Normal file
BIN
eagler-files/controller/1.8/Main/assets.epk
Normal file
Binary file not shown.
61487
eagler-files/controller/1.8/Main/classes.js
Normal file
61487
eagler-files/controller/1.8/Main/classes.js
Normal file
File diff suppressed because one or more lines are too long
1
eagler-files/controller/1.8/Main/classes.js.map
Normal file
1
eagler-files/controller/1.8/Main/classes.js.map
Normal file
File diff suppressed because one or more lines are too long
BIN
eagler-files/controller/1.8/Main/favicon.png
Normal file
BIN
eagler-files/controller/1.8/Main/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
61
eagler-files/controller/1.8/Main/index.html
Normal file
61
eagler-files/controller/1.8/Main/index.html
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html style="width:100%;height:100%;background-color:black;">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-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 src="/js/ga4.js"></script>
|
||||||
|
<script src="/js/eag-ctrler.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
"use strict";
|
||||||
|
window.addEventListener("load", function() {
|
||||||
|
if(window.location.href.indexOf("file:") === 0) {
|
||||||
|
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
|
||||||
|
}else {
|
||||||
|
|
||||||
|
// %%%%%%%%% launch options %%%%%%%%%%%%
|
||||||
|
|
||||||
|
var relayId = Math.floor(Math.random() * 3);
|
||||||
|
window.eaglercraftXOpts = {
|
||||||
|
demoMode: false,
|
||||||
|
container: "game_frame",
|
||||||
|
assetsURI: "assets.epk",
|
||||||
|
localesURI: "lang/",
|
||||||
|
worldsDB: "worlds",
|
||||||
|
servers: [
|
||||||
|
/* example: { addr: "ws://localhost:8081/", name: "Local test server" } */
|
||||||
|
],
|
||||||
|
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 }
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
var q = window.location.search;
|
||||||
|
if((typeof q === "string") && q[0] === "?" && (typeof window.URLSearchParams !== "undefined")) {
|
||||||
|
q = new window.URLSearchParams(q);
|
||||||
|
var s = q.get("server");
|
||||||
|
if(s) window.eaglercraftXOpts.joinServer = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:black;" id="game_frame">
|
||||||
|
</body>
|
||||||
|
</html>
|
1683
eagler-files/controller/1.8/Main/lang/af_ZA.lang
Normal file
1683
eagler-files/controller/1.8/Main/lang/af_ZA.lang
Normal file
File diff suppressed because it is too large
Load Diff
1696
eagler-files/controller/1.8/Main/lang/ar_SA.lang
Normal file
1696
eagler-files/controller/1.8/Main/lang/ar_SA.lang
Normal file
File diff suppressed because it is too large
Load Diff
1812
eagler-files/controller/1.8/Main/lang/ast_ES.lang
Normal file
1812
eagler-files/controller/1.8/Main/lang/ast_ES.lang
Normal file
File diff suppressed because it is too large
Load Diff
1604
eagler-files/controller/1.8/Main/lang/az_AZ.lang
Normal file
1604
eagler-files/controller/1.8/Main/lang/az_AZ.lang
Normal file
File diff suppressed because it is too large
Load Diff
2516
eagler-files/controller/1.8/Main/lang/bg_BG.lang
Normal file
2516
eagler-files/controller/1.8/Main/lang/bg_BG.lang
Normal file
File diff suppressed because it is too large
Load Diff
1869
eagler-files/controller/1.8/Main/lang/ca_ES.lang
Normal file
1869
eagler-files/controller/1.8/Main/lang/ca_ES.lang
Normal file
File diff suppressed because it is too large
Load Diff
2375
eagler-files/controller/1.8/Main/lang/cs_CZ.lang
Normal file
2375
eagler-files/controller/1.8/Main/lang/cs_CZ.lang
Normal file
File diff suppressed because it is too large
Load Diff
1573
eagler-files/controller/1.8/Main/lang/cy_GB.lang
Normal file
1573
eagler-files/controller/1.8/Main/lang/cy_GB.lang
Normal file
File diff suppressed because it is too large
Load Diff
1819
eagler-files/controller/1.8/Main/lang/da_DK.lang
Normal file
1819
eagler-files/controller/1.8/Main/lang/da_DK.lang
Normal file
File diff suppressed because it is too large
Load Diff
2512
eagler-files/controller/1.8/Main/lang/de_DE.lang
Normal file
2512
eagler-files/controller/1.8/Main/lang/de_DE.lang
Normal file
File diff suppressed because it is too large
Load Diff
1709
eagler-files/controller/1.8/Main/lang/el_GR.lang
Normal file
1709
eagler-files/controller/1.8/Main/lang/el_GR.lang
Normal file
File diff suppressed because it is too large
Load Diff
1778
eagler-files/controller/1.8/Main/lang/en_AU.lang
Normal file
1778
eagler-files/controller/1.8/Main/lang/en_AU.lang
Normal file
File diff suppressed because it is too large
Load Diff
2517
eagler-files/controller/1.8/Main/lang/en_CA.lang
Normal file
2517
eagler-files/controller/1.8/Main/lang/en_CA.lang
Normal file
File diff suppressed because it is too large
Load Diff
2515
eagler-files/controller/1.8/Main/lang/en_GB.lang
Normal file
2515
eagler-files/controller/1.8/Main/lang/en_GB.lang
Normal file
File diff suppressed because it is too large
Load Diff
1929
eagler-files/controller/1.8/Main/lang/en_PT.lang
Normal file
1929
eagler-files/controller/1.8/Main/lang/en_PT.lang
Normal file
File diff suppressed because it is too large
Load Diff
1770
eagler-files/controller/1.8/Main/lang/eo_UY.lang
Normal file
1770
eagler-files/controller/1.8/Main/lang/eo_UY.lang
Normal file
File diff suppressed because it is too large
Load Diff
2514
eagler-files/controller/1.8/Main/lang/es_AR.lang
Normal file
2514
eagler-files/controller/1.8/Main/lang/es_AR.lang
Normal file
File diff suppressed because it is too large
Load Diff
2515
eagler-files/controller/1.8/Main/lang/es_ES.lang
Normal file
2515
eagler-files/controller/1.8/Main/lang/es_ES.lang
Normal file
File diff suppressed because it is too large
Load Diff
2496
eagler-files/controller/1.8/Main/lang/es_MX.lang
Normal file
2496
eagler-files/controller/1.8/Main/lang/es_MX.lang
Normal file
File diff suppressed because it is too large
Load Diff
1807
eagler-files/controller/1.8/Main/lang/es_UY.lang
Normal file
1807
eagler-files/controller/1.8/Main/lang/es_UY.lang
Normal file
File diff suppressed because it is too large
Load Diff
1999
eagler-files/controller/1.8/Main/lang/es_VE.lang
Normal file
1999
eagler-files/controller/1.8/Main/lang/es_VE.lang
Normal file
File diff suppressed because it is too large
Load Diff
2124
eagler-files/controller/1.8/Main/lang/et_EE.lang
Normal file
2124
eagler-files/controller/1.8/Main/lang/et_EE.lang
Normal file
File diff suppressed because it is too large
Load Diff
1864
eagler-files/controller/1.8/Main/lang/eu_ES.lang
Normal file
1864
eagler-files/controller/1.8/Main/lang/eu_ES.lang
Normal file
File diff suppressed because it is too large
Load Diff
1490
eagler-files/controller/1.8/Main/lang/fa_IR.lang
Normal file
1490
eagler-files/controller/1.8/Main/lang/fa_IR.lang
Normal file
File diff suppressed because it is too large
Load Diff
2378
eagler-files/controller/1.8/Main/lang/fi_FI.lang
Normal file
2378
eagler-files/controller/1.8/Main/lang/fi_FI.lang
Normal file
File diff suppressed because it is too large
Load Diff
1636
eagler-files/controller/1.8/Main/lang/fil_PH.lang
Normal file
1636
eagler-files/controller/1.8/Main/lang/fil_PH.lang
Normal file
File diff suppressed because it is too large
Load Diff
2517
eagler-files/controller/1.8/Main/lang/fr_CA.lang
Normal file
2517
eagler-files/controller/1.8/Main/lang/fr_CA.lang
Normal file
File diff suppressed because it is too large
Load Diff
2518
eagler-files/controller/1.8/Main/lang/fr_FR.lang
Normal file
2518
eagler-files/controller/1.8/Main/lang/fr_FR.lang
Normal file
File diff suppressed because it is too large
Load Diff
1774
eagler-files/controller/1.8/Main/lang/ga_IE.lang
Normal file
1774
eagler-files/controller/1.8/Main/lang/ga_IE.lang
Normal file
File diff suppressed because it is too large
Load Diff
1565
eagler-files/controller/1.8/Main/lang/gl_ES.lang
Normal file
1565
eagler-files/controller/1.8/Main/lang/gl_ES.lang
Normal file
File diff suppressed because it is too large
Load Diff
1528
eagler-files/controller/1.8/Main/lang/gv_IM.lang
Normal file
1528
eagler-files/controller/1.8/Main/lang/gv_IM.lang
Normal file
File diff suppressed because it is too large
Load Diff
1585
eagler-files/controller/1.8/Main/lang/he_IL.lang
Normal file
1585
eagler-files/controller/1.8/Main/lang/he_IL.lang
Normal file
File diff suppressed because it is too large
Load Diff
1412
eagler-files/controller/1.8/Main/lang/hi_IN.lang
Normal file
1412
eagler-files/controller/1.8/Main/lang/hi_IN.lang
Normal file
File diff suppressed because it is too large
Load Diff
2517
eagler-files/controller/1.8/Main/lang/hr_HR.lang
Normal file
2517
eagler-files/controller/1.8/Main/lang/hr_HR.lang
Normal file
File diff suppressed because it is too large
Load Diff
2515
eagler-files/controller/1.8/Main/lang/hu_HU.lang
Normal file
2515
eagler-files/controller/1.8/Main/lang/hu_HU.lang
Normal file
File diff suppressed because it is too large
Load Diff
1363
eagler-files/controller/1.8/Main/lang/hy_AM.lang
Normal file
1363
eagler-files/controller/1.8/Main/lang/hy_AM.lang
Normal file
File diff suppressed because it is too large
Load Diff
1836
eagler-files/controller/1.8/Main/lang/id_ID.lang
Normal file
1836
eagler-files/controller/1.8/Main/lang/id_ID.lang
Normal file
File diff suppressed because it is too large
Load Diff
1891
eagler-files/controller/1.8/Main/lang/is_IS.lang
Normal file
1891
eagler-files/controller/1.8/Main/lang/is_IS.lang
Normal file
File diff suppressed because it is too large
Load Diff
2517
eagler-files/controller/1.8/Main/lang/it_IT.lang
Normal file
2517
eagler-files/controller/1.8/Main/lang/it_IT.lang
Normal file
File diff suppressed because it is too large
Load Diff
2517
eagler-files/controller/1.8/Main/lang/ja_JP.lang
Normal file
2517
eagler-files/controller/1.8/Main/lang/ja_JP.lang
Normal file
File diff suppressed because it is too large
Load Diff
2514
eagler-files/controller/1.8/Main/lang/ka_GE.lang
Normal file
2514
eagler-files/controller/1.8/Main/lang/ka_GE.lang
Normal file
File diff suppressed because it is too large
Load Diff
2492
eagler-files/controller/1.8/Main/lang/ko_KR.lang
Normal file
2492
eagler-files/controller/1.8/Main/lang/ko_KR.lang
Normal file
File diff suppressed because it is too large
Load Diff
1628
eagler-files/controller/1.8/Main/lang/kw_GB.lang
Normal file
1628
eagler-files/controller/1.8/Main/lang/kw_GB.lang
Normal file
File diff suppressed because it is too large
Load Diff
1624
eagler-files/controller/1.8/Main/lang/la_LA.lang
Normal file
1624
eagler-files/controller/1.8/Main/lang/la_LA.lang
Normal file
File diff suppressed because it is too large
Load Diff
1910
eagler-files/controller/1.8/Main/lang/lb_LU.lang
Normal file
1910
eagler-files/controller/1.8/Main/lang/lb_LU.lang
Normal file
File diff suppressed because it is too large
Load Diff
2518
eagler-files/controller/1.8/Main/lang/lt_LT.lang
Normal file
2518
eagler-files/controller/1.8/Main/lang/lt_LT.lang
Normal file
File diff suppressed because it is too large
Load Diff
1754
eagler-files/controller/1.8/Main/lang/lv_LV.lang
Normal file
1754
eagler-files/controller/1.8/Main/lang/lv_LV.lang
Normal file
File diff suppressed because it is too large
Load Diff
458
eagler-files/controller/1.8/Main/lang/mi_NZ.lang
Normal file
458
eagler-files/controller/1.8/Main/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
eagler-files/controller/1.8/Main/lang/ms_MY.lang
Normal file
1534
eagler-files/controller/1.8/Main/lang/ms_MY.lang
Normal file
File diff suppressed because it is too large
Load Diff
1909
eagler-files/controller/1.8/Main/lang/mt_MT.lang
Normal file
1909
eagler-files/controller/1.8/Main/lang/mt_MT.lang
Normal file
File diff suppressed because it is too large
Load Diff
1739
eagler-files/controller/1.8/Main/lang/nds_DE.lang
Normal file
1739
eagler-files/controller/1.8/Main/lang/nds_DE.lang
Normal file
File diff suppressed because it is too large
Load Diff
2516
eagler-files/controller/1.8/Main/lang/nl_NL.lang
Normal file
2516
eagler-files/controller/1.8/Main/lang/nl_NL.lang
Normal file
File diff suppressed because it is too large
Load Diff
1630
eagler-files/controller/1.8/Main/lang/nn_NO.lang
Normal file
1630
eagler-files/controller/1.8/Main/lang/nn_NO.lang
Normal file
File diff suppressed because it is too large
Load Diff
1852
eagler-files/controller/1.8/Main/lang/no_NO.lang
Normal file
1852
eagler-files/controller/1.8/Main/lang/no_NO.lang
Normal file
File diff suppressed because it is too large
Load Diff
2490
eagler-files/controller/1.8/Main/lang/oc_FR.lang
Normal file
2490
eagler-files/controller/1.8/Main/lang/oc_FR.lang
Normal file
File diff suppressed because it is too large
Load Diff
1981
eagler-files/controller/1.8/Main/lang/pl_PL.lang
Normal file
1981
eagler-files/controller/1.8/Main/lang/pl_PL.lang
Normal file
File diff suppressed because it is too large
Load Diff
2516
eagler-files/controller/1.8/Main/lang/pt_BR.lang
Normal file
2516
eagler-files/controller/1.8/Main/lang/pt_BR.lang
Normal file
File diff suppressed because it is too large
Load Diff
1989
eagler-files/controller/1.8/Main/lang/pt_PT.lang
Normal file
1989
eagler-files/controller/1.8/Main/lang/pt_PT.lang
Normal file
File diff suppressed because it is too large
Load Diff
1104
eagler-files/controller/1.8/Main/lang/qya_AA.lang
Normal file
1104
eagler-files/controller/1.8/Main/lang/qya_AA.lang
Normal file
File diff suppressed because it is too large
Load Diff
2515
eagler-files/controller/1.8/Main/lang/ro_RO.lang
Normal file
2515
eagler-files/controller/1.8/Main/lang/ro_RO.lang
Normal file
File diff suppressed because it is too large
Load Diff
2517
eagler-files/controller/1.8/Main/lang/ru_RU.lang
Normal file
2517
eagler-files/controller/1.8/Main/lang/ru_RU.lang
Normal file
File diff suppressed because it is too large
Load Diff
436
eagler-files/controller/1.8/Main/lang/se_NO.lang
Normal file
436
eagler-files/controller/1.8/Main/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
eagler-files/controller/1.8/Main/lang/sk_SK.lang
Normal file
1849
eagler-files/controller/1.8/Main/lang/sk_SK.lang
Normal file
File diff suppressed because it is too large
Load Diff
1574
eagler-files/controller/1.8/Main/lang/sl_SI.lang
Normal file
1574
eagler-files/controller/1.8/Main/lang/sl_SI.lang
Normal file
File diff suppressed because it is too large
Load Diff
1820
eagler-files/controller/1.8/Main/lang/sr_SP.lang
Normal file
1820
eagler-files/controller/1.8/Main/lang/sr_SP.lang
Normal file
File diff suppressed because it is too large
Load Diff
2516
eagler-files/controller/1.8/Main/lang/sv_SE.lang
Normal file
2516
eagler-files/controller/1.8/Main/lang/sv_SE.lang
Normal file
File diff suppressed because it is too large
Load Diff
1729
eagler-files/controller/1.8/Main/lang/th_TH.lang
Normal file
1729
eagler-files/controller/1.8/Main/lang/th_TH.lang
Normal file
File diff suppressed because it is too large
Load Diff
1253
eagler-files/controller/1.8/Main/lang/tlh_AA.lang
Normal file
1253
eagler-files/controller/1.8/Main/lang/tlh_AA.lang
Normal file
File diff suppressed because it is too large
Load Diff
2518
eagler-files/controller/1.8/Main/lang/tr_TR.lang
Normal file
2518
eagler-files/controller/1.8/Main/lang/tr_TR.lang
Normal file
File diff suppressed because it is too large
Load Diff
2471
eagler-files/controller/1.8/Main/lang/uk_UA.lang
Normal file
2471
eagler-files/controller/1.8/Main/lang/uk_UA.lang
Normal file
File diff suppressed because it is too large
Load Diff
2517
eagler-files/controller/1.8/Main/lang/val_ES.lang
Normal file
2517
eagler-files/controller/1.8/Main/lang/val_ES.lang
Normal file
File diff suppressed because it is too large
Load Diff
2492
eagler-files/controller/1.8/Main/lang/vi_VN.lang
Normal file
2492
eagler-files/controller/1.8/Main/lang/vi_VN.lang
Normal file
File diff suppressed because it is too large
Load Diff
2516
eagler-files/controller/1.8/Main/lang/zh_CN.lang
Normal file
2516
eagler-files/controller/1.8/Main/lang/zh_CN.lang
Normal file
File diff suppressed because it is too large
Load Diff
2517
eagler-files/controller/1.8/Main/lang/zh_TW.lang
Normal file
2517
eagler-files/controller/1.8/Main/lang/zh_TW.lang
Normal file
File diff suppressed because it is too large
Load Diff
@ -69,6 +69,9 @@
|
|||||||
<a class="version-link filter-button" href="./eagler-files/wasm/1.8/Main/index.html">
|
<a class="version-link filter-button" href="./eagler-files/wasm/1.8/Main/index.html">
|
||||||
<button>Main 1.8 Client [WASM]</button>
|
<button>Main 1.8 Client [WASM]</button>
|
||||||
</a>
|
</a>
|
||||||
|
<a class="version-link filter-button" href="./eagler-files/controller/1.8/Main/index.html">
|
||||||
|
<button>Main 1.8 Client [Controller]</button>
|
||||||
|
</a>
|
||||||
<a class="version-link filter-button" href="./eagler-files/1.8/resent4.0/index.html">
|
<a class="version-link filter-button" href="./eagler-files/1.8/resent4.0/index.html">
|
||||||
<button>Resent Client 4.0</button>
|
<button>Resent Client 4.0</button>
|
||||||
</a>
|
</a>
|
||||||
|
558
js/eag-ctrler.js
Normal file
558
js/eag-ctrler.js
Normal file
@ -0,0 +1,558 @@
|
|||||||
|
// This is generally a bad practice, but we need to run scripts in the main context before the DOM loads. Because we are only matching eaglercraft.com, unsafeWindow should be safe to use.
|
||||||
|
// If someone knows a better way of doing this, please create an issue
|
||||||
|
try {
|
||||||
|
unsafeWindow.console.warn("DANGER: This userscript is using unsafeWindow. Unsafe websites could potentially use this to gain access to data and other content that the browser normally wouldn't allow!")
|
||||||
|
Object.defineProperty(window, "clientWindow", {
|
||||||
|
value: unsafeWindow
|
||||||
|
}); // If this is a userscript, use unsafeWindow
|
||||||
|
} catch {
|
||||||
|
Object.defineProperty(window, "clientWindow", {
|
||||||
|
value: window
|
||||||
|
}); // If this is plain javascript, use window
|
||||||
|
}
|
||||||
|
clientWindow.console.log("Eagler Console v1.0.0")
|
||||||
|
// TODO: remove the mobile check is implement the dynamic enabling and disabling of individual features
|
||||||
|
function isMobile() {
|
||||||
|
try {
|
||||||
|
document.createEvent("TouchEvent");
|
||||||
|
return true;
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!isMobile()) {
|
||||||
|
alert("WARNING: This script was created for controller use, and it will break functionality for keyboard use!");
|
||||||
|
}
|
||||||
|
// TODO: consolidate all of these into a single object?
|
||||||
|
clientWindow.crouchLock = false; // Used for crouch mobile control
|
||||||
|
clientWindow.sprintLock = false; // Used for sprint mobile control
|
||||||
|
clientWindow.keyboardFix = false; // keyboardFix ? "Standard Keyboard" : "Compatibility Mode"
|
||||||
|
clientWindow.inputFix = false; // If true, Duplicate Mode
|
||||||
|
clientWindow.blockNextInput = false; // Used for Duplicate Mode
|
||||||
|
clientWindow.hiddenInputFocused = false; // Used for keyboard display on mobile
|
||||||
|
clientWindow.canvasTouchMode = 0; // Used for canvas touch handling
|
||||||
|
/*
|
||||||
|
0 Idle
|
||||||
|
1 Touch initiated
|
||||||
|
2 Primary touch
|
||||||
|
3 Secondary touch
|
||||||
|
4 Scroll
|
||||||
|
5 Finished
|
||||||
|
*/
|
||||||
|
clientWindow.canvasTouchStartX = null;
|
||||||
|
clientWindow.canvasTouchStartY = null;
|
||||||
|
clientWindow.canvasTouchPreviousX = null;
|
||||||
|
clientWindow.canvasTouchPreviousY = null;
|
||||||
|
clientWindow.canvasPrimaryID = null;
|
||||||
|
clientWindow.buttonTouchStartX = null;
|
||||||
|
|
||||||
|
// charCodeAt is designed for unicode characters, and doesn't match the behavior of the keyCodes used by KeyboardEvents, thus necessitating this 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, "\u0060": 192, "[": 219, "\u005C": 220, "]": 221, "\u0022": 222};
|
||||||
|
return keyCodeList[this];
|
||||||
|
}
|
||||||
|
// Overrides the addEventListener behavior to all code injection on keydown event listeners. This function has thrown TypeErrors on some Android devices because fn is not recognized as a function
|
||||||
|
// This is used by Compatibility Mode to block invalid keyEvents
|
||||||
|
const _addEventListener = EventTarget.prototype.addEventListener;
|
||||||
|
Object.defineProperty(EventTarget.prototype, "addEventListener", {
|
||||||
|
value: function (type, fn, ...rest) {
|
||||||
|
if(type == 'keydown') { // Check if a keydown event is being added
|
||||||
|
_addEventListener.call(this, type, function(...args) {
|
||||||
|
if(args[0].isTrusted && clientWindow.keyboardFix) { // When we are in compatibility mode, we ignore all trusted keyboard events
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return fn.apply(this, args); // Appends the rest of the function specified by addEventListener
|
||||||
|
}, ...rest);
|
||||||
|
} else { // If it's not a keydown event, behave like normal (hopefully)
|
||||||
|
_addEventListener.call(this, type, fn, ...rest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Overrides preventDefault, because on some (Android) devices you couldn't type into hiddenInput
|
||||||
|
const _preventDefault = Event.prototype.preventDefault;
|
||||||
|
Event.prototype.preventDefault = function(shouldBypass) {
|
||||||
|
if(document.activeElement.id != "hiddenInput" || shouldBypass) { // activeElement is what element is currently focused
|
||||||
|
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
|
||||||
|
});
|
||||||
|
clientWindow.dispatchEvent(evt);
|
||||||
|
}
|
||||||
|
function mouseEvent(number, state, element, event = {"clientX": 0, "clientY" : 0, "screenX": 0, "screenY": 0}) {
|
||||||
|
element.dispatchEvent(new PointerEvent(state, {
|
||||||
|
"button": number,
|
||||||
|
"buttons": number,
|
||||||
|
"clientX": event.clientX,
|
||||||
|
"clientY" : event.clientY,
|
||||||
|
"screenX": event.screenX,
|
||||||
|
"screenY": event.screenY
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
function wheelEvent(element, delta) {
|
||||||
|
element.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 clientWindow.fakelock, and unhides the touch controls
|
||||||
|
clientWindow.fakelock = null;
|
||||||
|
|
||||||
|
Object.defineProperty(Element.prototype, "requestPointerLock", {
|
||||||
|
value: function() {
|
||||||
|
clientWindow.fakelock = this
|
||||||
|
document.dispatchEvent(new Event('pointerlockchange'));
|
||||||
|
setButtonVisibility(true);
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Makes pointerLockElement return clientWindow.fakelock
|
||||||
|
Object.defineProperty(Document.prototype, "pointerLockElement", {
|
||||||
|
get: function() {
|
||||||
|
return clientWindow.fakelock;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// When exitPointerLock is called, this dispatches an event, clears the
|
||||||
|
Object.defineProperty(Document.prototype, "exitPointerLock", {
|
||||||
|
value: function() {
|
||||||
|
clientWindow.fakelock = null
|
||||||
|
document.dispatchEvent(new Event('pointerlockchange'));
|
||||||
|
setButtonVisibility(false);
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// FULLSCREEN
|
||||||
|
clientWindow.fakefull = null;
|
||||||
|
// Stops the client from crashing when fullscreen is requested
|
||||||
|
Object.defineProperty(Element.prototype, "requestFullscreen", {
|
||||||
|
value: function() {
|
||||||
|
clientWindow.fakefull = this
|
||||||
|
document.dispatchEvent(new Event('fullscreenchange'));
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(document, "fullscreenElement", {
|
||||||
|
get: function() {
|
||||||
|
return clientWindow.fakefull;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Document.prototype, "exitFullscreen", {
|
||||||
|
value: function() {
|
||||||
|
clientWindow.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) { // We set the ingore flag to true when we create the hiddenInput
|
||||||
|
document.querySelectorAll('#fileUpload').forEach(e => e.parentNode.removeChild(e)); // Get rid of any left over fileUpload inputs
|
||||||
|
element.id = "fileUpload";
|
||||||
|
element.addEventListener('change', function(e) {
|
||||||
|
element.hidden = true;
|
||||||
|
element.style.display = "none";
|
||||||
|
}, {passive: false, once: true});
|
||||||
|
clientWindow.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 and creates buttons
|
||||||
|
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);
|
||||||
|
touchButton.addEventListener("contextmenu", function(e){e.preventDefault()});
|
||||||
|
return touchButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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("touchstart", function(e) {
|
||||||
|
if(clientWindow.canvasTouchMode < 2) { // If a touch is initiated but not assigned
|
||||||
|
if(clientWindow.canvasPrimaryID == null) {
|
||||||
|
clientWindow.canvasTouchMode = 1;
|
||||||
|
const primaryTouch = e.changedTouches[0];
|
||||||
|
clientWindow.canvasPrimaryID = primaryTouch.identifier
|
||||||
|
canvasTouchStartX = primaryTouch.clientX;
|
||||||
|
canvasTouchStartY = primaryTouch.clientY;
|
||||||
|
canvasTouchPreviousX = canvasTouchStartX
|
||||||
|
canvasTouchPreviousY = canvasTouchStartY
|
||||||
|
|
||||||
|
clientWindow.touchTimer = setTimeout(function(e) {
|
||||||
|
// If our touch is still set to initiaited, set it to secondary touch
|
||||||
|
if(clientWindow.canvasTouchMode == 1) {
|
||||||
|
clientWindow.canvasTouchMode = 3;
|
||||||
|
mouseEvent(2, "mousedown", canvas, primaryTouch)
|
||||||
|
if(clientWindow.fakelock) { // We only dispatch mouseup inGame because we want to be able to click + drag items in GUI's
|
||||||
|
mouseEvent(2, "mouseup", canvas, primaryTouch)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 300);
|
||||||
|
} else if(clientWindow.canvasTouchMode == 1 && !clientWindow.fakelock) { // If we already have a primary touch, it means we're using two fingers
|
||||||
|
clientWindow.canvasTouchMode = 4;
|
||||||
|
clearTimeout(clientWindow.crouchTimer); // TODO: Find out why this isn't redudnant
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
canvas.addEventListener("touchmove", function(e) {
|
||||||
|
e.preventDefault() // Prevents window zoom when using two fingers
|
||||||
|
var primaryTouch;
|
||||||
|
for (let touchIndex = 0; touchIndex < e.targetTouches.length; touchIndex++) { // Iterate through our touches to find a touch event matching the primary touch ID
|
||||||
|
if(e.targetTouches[touchIndex].identifier == clientWindow.canvasPrimaryID) {
|
||||||
|
primaryTouch = e.targetTouches[touchIndex];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(primaryTouch) {
|
||||||
|
primaryTouch.distanceX = primaryTouch.clientX - canvasTouchStartX;
|
||||||
|
primaryTouch.distanceY = primaryTouch.clientY - canvasTouchStartY;
|
||||||
|
primaryTouch.squaredNorm = (primaryTouch.distanceX * primaryTouch.distanceX) + (primaryTouch.distanceY * primaryTouch.distanceY);
|
||||||
|
primaryTouch.movementX = primaryTouch.clientX - canvasTouchPreviousX;
|
||||||
|
primaryTouch.movementY = primaryTouch.clientY - canvasTouchPreviousY;
|
||||||
|
if(clientWindow.canvasTouchMode == 1) { // If the primary touch is still only initiated
|
||||||
|
if (primaryTouch.squaredNorm > 25) { // If our touch becomes a touch + drag
|
||||||
|
clearTimeout(clientWindow.crouchTimer);
|
||||||
|
clientWindow.canvasTouchMode = 2;
|
||||||
|
if(!clientWindow.fakelock) { // When we're inGame, we don't want to be placing blocks when we are moving the camera around
|
||||||
|
mouseEvent(1, "mousedown", canvas, primaryTouch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else { // If our touch is primary, secondary, scroll or finished
|
||||||
|
if(clientWindow.canvasTouchMode == 4) { // If our touch is scrolling
|
||||||
|
wheelEvent(canvas, primaryTouch.movementY)
|
||||||
|
} else {
|
||||||
|
canvas.dispatchEvent(new MouseEvent("mousemove", {
|
||||||
|
"clientX": primaryTouch.clientX,
|
||||||
|
"clientY": primaryTouch.clientY,
|
||||||
|
"screenX": primaryTouch.screenX,
|
||||||
|
"screenY": primaryTouch.screenY, // The top four are used for item position when in GUI's, the bottom two are for moving the camera inGame
|
||||||
|
"movementX": primaryTouch.movementX,
|
||||||
|
"movementY": primaryTouch.movementY
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
canvasTouchPreviousX = primaryTouch.clientX
|
||||||
|
canvasTouchPreviousY = primaryTouch.clientY
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
function canvasTouchEnd(e) {
|
||||||
|
for(let touchIndex = 0; touchIndex < e.changedTouches.length; touchIndex++) { // Iterate through changed touches to find primary touch
|
||||||
|
if(e.changedTouches[touchIndex].identifier == clientWindow.canvasPrimaryID) {
|
||||||
|
let primaryTouch = e.changedTouches[touchIndex]
|
||||||
|
// When any of the controlling fingers go away, we want to wait until we aren't receiving any other touch events
|
||||||
|
if(clientWindow.canvasTouchMode == 2) {
|
||||||
|
mouseEvent(1, "mouseup", canvas, primaryTouch)
|
||||||
|
} else if (clientWindow.canvasTouchMode == 3) {
|
||||||
|
e.preventDefault(); // This prevents some mobile devices from dispatching a mousedown + mouseup event after a touch is ended
|
||||||
|
mouseEvent(2, "mouseup", canvas, primaryTouch)
|
||||||
|
}
|
||||||
|
clientWindow.canvasTouchMode = 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(e.targetTouches.length == 0) { // We want to wait until all fingers are off the canvas before we reset for the next cycle
|
||||||
|
clientWindow.canvasTouchMode = 0;
|
||||||
|
clientWindow.canvasPrimaryID = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
canvas.addEventListener("touchend", canvasTouchEnd, false);
|
||||||
|
canvas.addEventListener("touchcancel", canvasTouchEnd, false); // TODO: Find out why this is different than touchend
|
||||||
|
setButtonVisibility(clientWindow.fakelock != null); //Updates our mobile controls when the canvas finally loads
|
||||||
|
// All of the touch buttons
|
||||||
|
|
||||||
|
let controllerIndex = null;
|
||||||
|
|
||||||
|
let jleftPressed = false;
|
||||||
|
let jrightPressed = false;
|
||||||
|
let jupPressed = false;
|
||||||
|
let jdownPressed = false;
|
||||||
|
|
||||||
|
let leftPressed = false;
|
||||||
|
let rightPressed = false;
|
||||||
|
let upPressed = false;
|
||||||
|
let downPressed = false;
|
||||||
|
|
||||||
|
let bluePressed = false;
|
||||||
|
let yellowPressed = false;
|
||||||
|
let redPressed = false;
|
||||||
|
let greenPressed = false;
|
||||||
|
|
||||||
|
let pausePressed = false;
|
||||||
|
let selectPressed = false;
|
||||||
|
let lbPressed = false;
|
||||||
|
let rbPressed = false;
|
||||||
|
let ltPressed = false;
|
||||||
|
let rtPressed = false;
|
||||||
|
let ljsPressed = false;
|
||||||
|
let rjsPressed = false;
|
||||||
|
|
||||||
|
let perspective=false;
|
||||||
|
let debug=false;
|
||||||
|
let drop=false;
|
||||||
|
let chat=false;
|
||||||
|
let jump=false;
|
||||||
|
let inventory1=false;
|
||||||
|
let inventory2=false;
|
||||||
|
let lefthotbar=false;
|
||||||
|
let righthotbar=false;
|
||||||
|
let pause=false;
|
||||||
|
let players=false;
|
||||||
|
|
||||||
|
let rHorizontalValue = 0;
|
||||||
|
let rVerticalValue = 0;
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener("gamepadconnected", (event) => {
|
||||||
|
controllerIndex = event.gamepad.index;
|
||||||
|
console.log("Controller Connected!");
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener("gamepaddisconnected", (event) => {
|
||||||
|
console.log("Controller Disconnected!");
|
||||||
|
controllerIndex = null;
|
||||||
|
});
|
||||||
|
|
||||||
|
function controllerInput() {
|
||||||
|
if (controllerIndex !== null) {
|
||||||
|
const gamepad = navigator.getGamepads()[controllerIndex];
|
||||||
|
const buttons = gamepad.buttons;
|
||||||
|
|
||||||
|
const stickDeadZone = 0.4;
|
||||||
|
|
||||||
|
// Left joystick axes (used for player movement)
|
||||||
|
const leftRightValue = gamepad.axes[0];
|
||||||
|
const upDownValue = gamepad.axes[1];
|
||||||
|
|
||||||
|
// Right joystick axes (used for camera rotation)
|
||||||
|
rHorizontalValue = gamepad.axes[2]; // Horizontal movement of right joystick
|
||||||
|
rVerticalValue = gamepad.axes[3]; // Vertical movement of right joystick
|
||||||
|
|
||||||
|
// Handle left joystick
|
||||||
|
if (leftRightValue >= stickDeadZone) {
|
||||||
|
jrightPressed = true;
|
||||||
|
} else if (leftRightValue <= stickDeadZone) {
|
||||||
|
jrightPressed = false;
|
||||||
|
}
|
||||||
|
if (leftRightValue <= -stickDeadZone) {
|
||||||
|
jleftPressed = true;
|
||||||
|
} else if (leftRightValue >= -stickDeadZone) {
|
||||||
|
jleftPressed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (upDownValue >= stickDeadZone) {
|
||||||
|
jdownPressed = true;
|
||||||
|
} else if (upDownValue <= stickDeadZone) {
|
||||||
|
jdownPressed = false;
|
||||||
|
}
|
||||||
|
if (upDownValue <= -stickDeadZone) {
|
||||||
|
jupPressed = true;
|
||||||
|
} else if (upDownValue >= -stickDeadZone) {
|
||||||
|
jupPressed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle button presses
|
||||||
|
greenPressed = buttons[0].pressed;
|
||||||
|
redPressed = buttons[1].pressed;
|
||||||
|
bluePressed = buttons[2].pressed;
|
||||||
|
yellowPressed = buttons[3].pressed;
|
||||||
|
|
||||||
|
lbPressed = buttons[4].pressed;
|
||||||
|
rbPressed = buttons[5].pressed;
|
||||||
|
ltPressed = buttons[6].pressed;
|
||||||
|
rtPressed = buttons[7].pressed;
|
||||||
|
|
||||||
|
selectPressed = buttons[8].pressed;
|
||||||
|
pausePressed = buttons[9].pressed;
|
||||||
|
|
||||||
|
ljsPressed = buttons[10].pressed;
|
||||||
|
rjsPressed = buttons[11].pressed;
|
||||||
|
|
||||||
|
upPressed = buttons[12].pressed;
|
||||||
|
downPressed = buttons[13].pressed;
|
||||||
|
leftPressed = buttons[14].pressed;
|
||||||
|
rightPressed = buttons[15].pressed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function rotateCamera() {
|
||||||
|
const sensitivity = 25;
|
||||||
|
if (rHorizontalValue !== 0 || rVerticalValue !== 0) {
|
||||||
|
let movementX = rHorizontalValue * sensitivity;
|
||||||
|
let movementY = rVerticalValue * sensitivity;
|
||||||
|
|
||||||
|
let canvas = document.querySelector('canvas');
|
||||||
|
canvas.dispatchEvent(new MouseEvent("mousemove", {
|
||||||
|
"movementX": movementX,
|
||||||
|
"movementY": movementY
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function movePlayer() {
|
||||||
|
if (jupPressed) {console.log("W");keyEvent("w", "keydown");}
|
||||||
|
else if (!jupPressed) {keyEvent("w", "keyup");}
|
||||||
|
if (jleftPressed) {console.log("A");keyEvent("a", "keydown");}
|
||||||
|
else if (!jleftPressed) {keyEvent("a", "keyup");}
|
||||||
|
if (jdownPressed) {console.log("S");keyEvent("s", "keydown");}
|
||||||
|
else if (!jdownPressed) {keyEvent("s", "keyup");}
|
||||||
|
if (jrightPressed) {console.log("D");keyEvent("d", "keydown");}
|
||||||
|
else if (!jrightPressed) {keyEvent("d", "keyup");}
|
||||||
|
|
||||||
|
if (greenPressed && jump) {console.log("Spacebar");keyEvent(" ", "keydown");jump=false;}
|
||||||
|
else if (!greenPressed) {keyEvent(" ", "keyup");jump=true;}
|
||||||
|
if (redPressed) {console.log("Crouch1");keyEvent("shift", "keydown");}
|
||||||
|
else if (!redPressed) {keyEvent("shift", "keyup");}
|
||||||
|
if (bluePressed && inventory1) {console.log("Inventory1");keyEvent("e", "keydown");inventory1=false;}
|
||||||
|
else if (!bluePressed) {keyEvent("e", "keyup");inventory1=true;}
|
||||||
|
if (yellowPressed && inventory2) {console.log("Inventory2");keyEvent("e", "keydown");inventory2=false;}
|
||||||
|
else if (!yellowPressed) {keyEvent("e", "keyup");inventory2=true;}
|
||||||
|
|
||||||
|
if (lbPressed && lefthotbar) {console.log("Left1");wheelEvent(canvas, 10);lefthotbar=false;}
|
||||||
|
else if (!lbPressed) {lefthotbar=true;}
|
||||||
|
if (rbPressed && righthotbar) {console.log("Right1");wheelEvent(canvas, -10);righthotbar=false;}
|
||||||
|
else if (!rbPressed) {righthotbar=true;}
|
||||||
|
if (ltPressed) {console.log("Place");mouseEvent(2, "mousedown", canvas)}
|
||||||
|
else if (!ltPressed) {mouseEvent(2, "mouseup", canvas)}
|
||||||
|
if (rtPressed) {console.log("Break");mouseEvent(0, "mousedown", canvas)}
|
||||||
|
else if (!rtPressed) {mouseEvent(0, "mouseup", canvas)}
|
||||||
|
|
||||||
|
if (pausePressed && pause) {console.log("Pause");keyEvent("`", "keydown");pause=false;}
|
||||||
|
else if (!pausePressed) {keyEvent("`", "keyup");pause=true;}
|
||||||
|
if (selectPressed && players) {console.log("Tab");keyEvent("tab", "keydown");players=false;}
|
||||||
|
else if (!selectPressed) {keyEvent("Tab", "keyup");players=true;}
|
||||||
|
if (ljsPressed) {console.log("Sprint");keyEvent("r", "keydown");}
|
||||||
|
else if (!ljsPressed) {keyEvent("r", "keyup");}
|
||||||
|
if (rjsPressed) {console.log("Crouch2");keyEvent("shift", "keydown");}
|
||||||
|
else if (!rjsPressed) {keyEvent("shift", "keyup");}
|
||||||
|
|
||||||
|
if (upPressed && perspective) {console.log("Perspective");keyEvent("f5", "keydown");perspective=false;}
|
||||||
|
else if (!upPressed && !perspective) {keyEvent("f5", "keyup");perspective=true;}
|
||||||
|
if (leftPressed && debug) {console.log("Debug");keyEvent("f3", "keydown");debug=false;}
|
||||||
|
else if (!leftPressed) {keyEvent("f3", "keyup");debug=true;}
|
||||||
|
if (downPressed && drop) {console.log("Drop");keyEvent("q", "keydown");drop=false;}
|
||||||
|
else if (!downPressed) {keyEvent("q", "keyup");drop=true;}
|
||||||
|
if (rightPressed && chat) {console.log("Chat");keyEvent("t", "keydown");chat=false;}
|
||||||
|
else if (!rightPressed) {keyEvent("t", "keyup");chat=true;}
|
||||||
|
}
|
||||||
|
|
||||||
|
function gameLoop() {
|
||||||
|
rotateCamera();
|
||||||
|
controllerInput();
|
||||||
|
movePlayer();
|
||||||
|
requestAnimationFrame(gameLoop);
|
||||||
|
}
|
||||||
|
|
||||||
|
gameLoop();
|
||||||
|
}
|
||||||
|
// 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 = `
|
||||||
|
html, body, canvas {
|
||||||
|
height: 100svh !important;
|
||||||
|
height: -webkit-fill-available !important;
|
||||||
|
touch-action: pan-x pan-y;
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
outline: none;
|
||||||
|
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
document.documentElement.appendChild(customStyle);
|
Loading…
x
Reference in New Issue
Block a user