Compare commits
2 Commits
fc63625875
...
78518c6654
Author | SHA1 | Date | |
---|---|---|---|
|
78518c6654 | ||
|
f30fdaad7a |
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 1.2 KiB |
@ -1,61 +0,0 @@
|
||||
<!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>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,458 +0,0 @@
|
||||
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
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,436 +0,0 @@
|
||||
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
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -69,9 +69,6 @@
|
||||
<a class="version-link filter-button" href="./eagler-files/wasm/1.8/Main/index.html">
|
||||
<button>Main 1.8 Client [WASM]</button>
|
||||
</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">
|
||||
<button>Resent Client 4.0</button>
|
||||
</a>
|
||||
|
558
js/eag-ctrler.js
558
js/eag-ctrler.js
@ -1,558 +0,0 @@
|
||||
// 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