Create/Update assets for version 1.7.10

This commit is contained in:
InventiveBot 2017-02-18 13:36:40 +00:00
parent edd2521bab
commit 4a457a311d
1726 changed files with 130288 additions and 0 deletions

BIN
assets/icons/icon_16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
assets/icons/icon_32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
assets/icons/minecraft.icns Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,469 @@
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
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.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.aoDesc0=Whakahohe i occlusion ambient faux i runga i ngā poraka.
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.fboEnableDesc1=E tika ana hoki etahi āhuatanga Minecraft.
options.fov=FOV
options.fov.max=Quake PROV
options.fov.min=Pūnoa
options.framerateLimit=Mokatere tāpare Max
options.framerateLimit.max=Unlimited
options.framerateLimitDesc0=Ka tīpako i te auau anga mōrahi:
options.gamma=Gile
options.gamma.max=Kanapa
options.gamma.min=Moody
options.graphics=Whakairoiro
options.graphics.fancy=Fancy
options.graphics.fast=Nohopuku
options.graphicsDesc0='Pōturi': Ka whakahohe i anō mārama.
options.graphicsDesc1='Nohopuku': Ko ētahi atu hoki raro-mutunga pūmārō.
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.postProcessEnableDesc0=E taea ai te tukatuka-pou. Mono i pai ai
options.postProcessEnableDesc1=hua i roto i te hāora i roto i Awesome Taumata.
options.postVideoTitle=Settings Post-Processing
options.qualityButton=Settings Kounga Ataata...
options.qualityVideoTitle=Settings Kounga Ataata
options.renderClouds=Kapua
options.renderCloudsDesc0=Whakahohe i te tāhuahua o 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.showCape=Whakaatu kahu
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.viewBobbingDesc0=Ka whakahohe i te tirohanga-tautau, ka neke.
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.pressurePlate.name=Pressure Plate
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.roofed_oak.name=Dark Oak Māhuri
tile.sapling.spruce.name=te puruhi mo Māhuri
tile.sign.name=Tohu
tile.snow.name=Huka
tile.sponge.name=hautai
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.stone.name=Stone
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

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

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "antialias",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,64 @@
{
"targets": [
"0",
"1"
],
"passes": [
{
"name": "blobs2",
"intarget": "minecraft:main",
"outtarget": "0"
},
{
"name": "outline_watercolor",
"intarget": "0",
"outtarget": "minecraft:main"
},
{
"name": "blur",
"intarget": "minecraft:main",
"outtarget": "1",
"uniforms": [
{
"name": "BlurDir",
"values": [ 0.8, 0.0 ]
},
{
"name": "Radius",
"values": [ 20.0 ]
}
]
},
{
"name": "blur",
"intarget": "1",
"outtarget": "minecraft:main",
"uniforms": [
{
"name": "BlurDir",
"values": [ 0.0, 0.8 ]
},
{
"name": "Radius",
"values": [ 20.0 ]
}
]
},
{
"name": "outline_combine",
"intarget": "0",
"outtarget": "1",
"auxtargets": [
{
"name": "OutlineSampler",
"id": "minecraft:main"
}
]
},
{
"name": "blit",
"intarget": "1",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "bits",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "blobs",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "blobs2",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,37 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "blur",
"intarget": "minecraft:main",
"outtarget": "swap",
"uniforms": [
{
"name": "BlurDir",
"values": [ 1.0, 0.0 ]
},
{
"name": "Radius",
"values": [ 20.0 ]
}
]
},
{
"name": "blur",
"intarget": "swap",
"outtarget": "minecraft:main",
"uniforms": [
{
"name": "BlurDir",
"values": [ 0.0, 1.0 ]
},
{
"name": "Radius",
"values": [ 20.0 ]
}
]
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "bumpy",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,20 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "color_convolve",
"intarget": "minecraft:main",
"outtarget": "swap",
"uniforms": [
{ "name": "Saturation", "values": [ 1.4 ] }
]
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "deconverge",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,23 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "color_convolve",
"intarget": "minecraft:main",
"outtarget": "swap",
"uniforms": [
{
"name": "Saturation",
"values": [ 0.2 ]
}
]
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "flip",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "fxaa",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,41 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "color_convolve",
"intarget": "minecraft:main",
"outtarget": "swap",
"uniforms": [
{
"name": "RedMatrix",
"values": [ 0.0, 0.0, 0.0 ]
},
{
"name": "GreenMatrix",
"values": [ 0.3, 0.59, 0.11 ]
},
{
"name": "BlueMatrix",
"values": [ 0.0, 0.0, 0.0 ]
}
]
},
{
"name": "bits",
"intarget": "swap",
"outtarget": "minecraft:main"
},
{
"name": "scan_pincushion",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,23 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "invert",
"intarget": "minecraft:main",
"outtarget": "swap",
"uniforms": [
{
"name": "InverseAmount",
"values": [ 0.8 ]
}
]
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,26 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "notch",
"intarget": "minecraft:main",
"outtarget": "swap",
"auxtargets": [
{
"name": "DitherSampler",
"id": "dither",
"width": 4,
"height": 4,
"bilinear": false
}
]
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,92 @@
{
"targets": [
"swap",
"swap2",
"previous"
],
"passes": [
{
"name": "ntsc_encode",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "ntsc_decode",
"intarget": "swap",
"outtarget": "swap2",
"auxtargets": [
{
"name": "BaseSampler",
"id": "minecraft:main"
}
]
},
{
"name": "color_convolve",
"intarget": "swap2",
"outtarget": "swap"
},
{
"name": "deconverge",
"intarget": "swap",
"outtarget": "minecraft:main"
},
{
"name": "blur",
"intarget": "minecraft:main",
"outtarget": "swap",
"uniforms": [
{
"name": "BlurDir",
"values": [ 1.0, 0.0 ]
},
{
"name": "Radius",
"values": [ 10.0 ]
}
]
},
{
"name": "blur",
"intarget": "swap",
"outtarget": "minecraft:main",
"uniforms": [
{
"name": "BlurDir",
"values": [ 0.0, 1.0 ]
},
{
"name": "Radius",
"values": [ 10.0 ]
}
]
},
{
"name": "scan_pincushion",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "phosphor",
"intarget": "swap",
"outtarget": "minecraft:main",
"auxtargets": [
{
"name": "PrevSampler",
"id": "previous"
}
],
"uniforms": [
{
"name": "Phosphor",
"values": [ 0.4, 0.4, 0.4 ]
}
]
},
{
"name": "blit",
"intarget": "minecraft:main",
"outtarget": "previous"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "outline",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "outline_soft",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,35 @@
{
"targets": [
"swap",
"previous"
],
"passes": [
{
"name": "phosphor",
"intarget": "minecraft:main",
"outtarget": "swap",
"auxtargets": [
{
"name": "PrevSampler",
"id": "previous"
}
],
"uniforms": [
{
"name": "Phosphor",
"values": [ 0.95, 0.95, 0.95 ]
}
]
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "previous"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "scan_pincushion",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "sobel",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,17 @@
{
"targets": [
"swap"
],
"passes": [
{
"name": "wobble",
"intarget": "minecraft:main",
"outtarget": "swap"
},
{
"name": "blit",
"intarget": "swap",
"outtarget": "minecraft:main"
}
]
}

View File

@ -0,0 +1,29 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 c = texture2D (DiffuseSampler, texCoord);
vec4 u1 = texture2D (DiffuseSampler, texCoord + vec2 ( 0.0, -oneTexel.y ));
vec4 u2 = texture2D (DiffuseSampler, texCoord + vec2 ( 0.0, -oneTexel.y * 2.0));
vec4 d1 = texture2D (DiffuseSampler, texCoord + vec2 ( 0.0, oneTexel.y ));
vec4 d2 = texture2D (DiffuseSampler, texCoord + vec2 ( 0.0, oneTexel.y * 2.0));
vec4 l1 = texture2D (DiffuseSampler, texCoord + vec2 (-oneTexel.x, 0.0));
vec4 l2 = texture2D (DiffuseSampler, texCoord + vec2 (-oneTexel.x * 2.0, 0.0));
vec4 r1 = texture2D (DiffuseSampler, texCoord + vec2 ( oneTexel.x, 0.0));
vec4 r2 = texture2D (DiffuseSampler, texCoord + vec2 ( oneTexel.x * 2.0, 0.0));
vec4 v1 = mix (c, mix (l1, l2, 0.667), 0.75);
vec4 v2 = mix (c, mix (r1, r2, 0.667), 0.75);
vec4 v3 = mix (c, mix (u1, u2, 0.667), 0.75);
vec4 v4 = mix (c, mix (d1, d2, 0.667), 0.75);
vec4 v5 = mix (v1, v2, 0.5);
vec4 v6 = mix (v3, v4, 0.5);
vec4 color = mix (v5, v6, 0.5);
gl_FragColor = vec4(color.rgb, c.a);
}

View File

@ -0,0 +1,18 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "blobs",
"fragment": "antialias",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,26 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
uniform float Resolution = 4.0;
uniform float Saturation = 1.5;
uniform float MosaicSize = 8.0;
void main() {
vec2 mosaicInSize = InSize / MosaicSize;
vec2 fractPix = fract(texCoord * mosaicInSize) / mosaicInSize;
vec4 baseTexel = texture2D(DiffuseSampler, texCoord - fractPix);
baseTexel = baseTexel - fract(baseTexel * Resolution) / Resolution;
float luma = dot(baseTexel.rgb, vec3(0.3, 0.59, 0.11));
vec3 chroma = (baseTexel.rgb - luma) * Saturation;
baseTexel = vec4(luma + chroma, baseTexel.a);
gl_FragColor = baseTexel;
}

View File

@ -0,0 +1,21 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "bits",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "Resolution", "type": "float", "count": 1, "values": [ 4.0 ] },
{ "name": "Saturation", "type": "float", "count": 1, "values": [ 1.5 ] },
{ "name": "MosaicSize", "type": "float", "count": 1, "values": [ 8.0 ] }
]
}

View File

@ -0,0 +1,9 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
void main(){
gl_FragColor = texture2D(DiffuseSampler, texCoord);
}

View File

@ -0,0 +1,17 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "blit",
"fragment": "blit",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,16 @@
#version 120
attribute vec4 Position;
uniform mat4 ProjMat;
uniform vec2 OutSize;
varying vec2 texCoord;
void main(){
vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0);
gl_Position = vec4(outPos.xy, 0.2, 1.0);
texCoord = Position.xy / OutSize;
texCoord.y = 1.0 - texCoord.y;
}

View File

@ -0,0 +1,43 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 u = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y));
vec4 d = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y));
vec4 l = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, 0.0));
vec4 r = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, 0.0));
vec4 v1 = min(l, r);
vec4 v2 = min(u, d);
vec4 v3 = min(v1, v2);
vec4 ul = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, -oneTexel.y));
vec4 dr = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, oneTexel.y));
vec4 dl = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, oneTexel.y));
vec4 ur = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, -oneTexel.y));
vec4 v4 = min(ul, dr);
vec4 v5 = min(ur, dl);
vec4 v6 = min(v4, v5);
vec4 v7 = min(v3, v6);
vec4 uu = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y * 2.0));
vec4 dd = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y * 2.0));
vec4 ll = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x * 2.0, 0.0));
vec4 rr = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x * 2.0, 0.0));
vec4 v8 = min(uu, dd);
vec4 v9 = min(ll, rr);
vec4 v10 = min(v8, v9);
vec4 v11 = min(v7, v10);
vec4 c = texture2D(DiffuseSampler, texCoord);
vec4 color = min(c, v11);
gl_FragColor = vec4(color.rgb, c.a);
}

View File

@ -0,0 +1,18 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "blobs",
"fragment": "blobs",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,17 @@
#version 120
attribute vec4 Position;
uniform mat4 ProjMat;
uniform vec2 InSize;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0);
gl_Position = vec4(outPos.xy, 0.2, 1.0);
oneTexel = 1.0 / InSize;
texCoord = outPos.xy * 0.5 + 0.5;
}

View File

@ -0,0 +1,30 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform float Radius;
void main(){
vec4 c = texture2D(DiffuseSampler, texCoord);
vec4 maxVal = c;
for(float u = 0.0; u <= Radius; u += 1.0) {
for(float v = 0.0; v <= Radius; v += 1.0) {
float weight = (((sqrt(u * u + v * v) / (Radius)) > 1.0) ? 0.0 : 1.0);
vec4 s0 = texture2D(DiffuseSampler, texCoord + vec2(-u * oneTexel.x, -v * oneTexel.y));
vec4 s1 = texture2D(DiffuseSampler, texCoord + vec2( u * oneTexel.x, v * oneTexel.y));
vec4 s2 = texture2D(DiffuseSampler, texCoord + vec2(-u * oneTexel.x, v * oneTexel.y));
vec4 s3 = texture2D(DiffuseSampler, texCoord + vec2( u * oneTexel.x, -v * oneTexel.y));
vec4 o0 = max(s0, s1);
vec4 o1 = max(s2, s3);
vec4 tempMax = max(o0, o1);
maxVal = mix(maxVal, max(maxVal, tempMax), weight);
}
}
gl_FragColor = vec4(maxVal.rgb, c.a);
}

View File

@ -0,0 +1,18 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "blobs",
"fragment": "blobs2",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "Radius", "type": "float", "count": 1, "values": [ 7.0 ] }
]
}

View File

@ -0,0 +1,19 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "phosphor",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" },
{ "name": "CycleSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,23 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
uniform vec2 BlurDir;
uniform float Radius;
void main() {
vec4 blurred = vec4(0.0);
float totalStrength = 0.0;
for(float r = -Radius; r <= Radius; r += 1.0) {
float strength = abs(1.0 - r / Radius);
strength = strength * strength;
totalStrength = totalStrength + strength;
blurred = blurred + texture2D(DiffuseSampler, texCoord + oneTexel * r * BlurDir) * strength;
}
gl_FragColor = vec4(blurred.rgb / totalStrength, texture2D(DiffuseSampler, texCoord).a);
}

View File

@ -0,0 +1,20 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "blur",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "BlurDir", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "Radius", "type": "float", "count": 1, "values": [ 5.0 ] }
]
}

View File

@ -0,0 +1,34 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 c = texture2D(DiffuseSampler, texCoord);
vec4 u = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y));
vec4 d = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y));
vec4 l = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, 0.0));
vec4 r = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, 0.0));
vec4 nc = normalize(c);
vec4 nu = normalize(u);
vec4 nd = normalize(d);
vec4 nl = normalize(l);
vec4 nr = normalize(r);
float du = dot(nc, nu);
float dd = dot(nc, nd);
float dl = dot(nc, nl);
float dr = dot(nc, nr);
float i = 64.0;
float f = 1.0;
f += (du * i) - (dd * i);
f += (dr * i) - (dl * i);
vec4 color = c * clamp(f, 0.5, 2);
gl_FragColor = vec4(color.rgb, c.a);
}

View File

@ -0,0 +1,18 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "bumpy",
"fragment": "bumpy",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,17 @@
#version 120
attribute vec4 Position;
uniform mat4 ProjMat;
uniform vec2 InSize;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0);
gl_Position = vec4(outPos.xy, 0.2, 1.0);
oneTexel = 1.0 / InSize;
texCoord = outPos.xy * 0.5 + 0.5;
}

View File

@ -0,0 +1,36 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
uniform vec3 Gray = vec3(0.3, 0.59, 0.11);
uniform vec3 RedMatrix = vec3(1.0, 0.0, 0.0);
uniform vec3 GreenMatrix = vec3(0.0, 1.0, 0.0);
uniform vec3 BlueMatrix = vec3(0.0, 0.0, 1.0);
uniform vec3 Offset = vec3(0.0, 0.0, 0.0);
uniform vec3 ColorScale = vec3(1.0, 1.0, 1.0);
uniform float Saturation = 1.8;
void main() {
vec4 InTexel = texture2D(DiffuseSampler, texCoord);
// Color Matrix
float RedValue = dot(InTexel.rgb, RedMatrix);
float GreenValue = dot(InTexel.rgb, GreenMatrix);
float BlueValue = dot(InTexel.rgb, BlueMatrix);
vec3 OutColor = vec3(RedValue, GreenValue, BlueValue);
// Offset & Scale
OutColor = (OutColor * ColorScale) + Offset;
// Saturation
float Luma = dot(OutColor, Gray);
vec3 Chroma = OutColor - Luma;
OutColor = (Chroma * Saturation) + Luma;
gl_FragColor = vec4(OutColor, InTexel.a);
}

View File

@ -0,0 +1,25 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "color_convolve",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "Gray", "type": "float", "count": 3, "values": [ 0.3, 0.59, 0.11 ] },
{ "name": "RedMatrix", "type": "float", "count": 3, "values": [ 1.0, 0.0, 0.0 ] },
{ "name": "GreenMatrix", "type": "float", "count": 3, "values": [ 0.0, 1.0, 0.0 ] },
{ "name": "BlueMatrix", "type": "float", "count": 3, "values": [ 0.0, 0.0, 1.0 ] },
{ "name": "Offset", "type": "float", "count": 3, "values": [ 0.0, 0.0, 0.0 ] },
{ "name": "ColorScale", "type": "float", "count": 3, "values": [ 1.0, 1.0, 1.0 ] },
{ "name": "Saturation", "type": "float", "count": 1, "values": [ 1.8 ] }
]
}

View File

@ -0,0 +1,28 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
uniform vec3 ConvergeX = vec3(-1.0, 0.0, 0.5);
uniform vec3 ConvergeY = vec3( 0.0, -1.0, 0.5);
uniform vec3 RadialConvergeX = vec3(1.0, 1.0, 1.0);
uniform vec3 RadialConvergeY = vec3(1.0, 1.0, 1.0);
void main() {
vec3 CoordX = texCoord.x * RadialConvergeX;
vec3 CoordY = texCoord.y * RadialConvergeY;
CoordX += ConvergeX * oneTexel.x - (RadialConvergeX - 1.0) * 0.5;
CoordY += ConvergeY * oneTexel.y - (RadialConvergeY - 1.0) * 0.5;
float RedValue = texture2D(DiffuseSampler, vec2(CoordX.x, CoordY.x)).r;
float GreenValue = texture2D(DiffuseSampler, vec2(CoordX.y, CoordY.y)).g;
float BlueValue = texture2D(DiffuseSampler, vec2(CoordX.z, CoordY.z)).b;
float AlphaValue = texture2D(DiffuseSampler, texCoord).a;
gl_FragColor = vec4(RedValue, GreenValue, BlueValue, AlphaValue);
}

View File

@ -0,0 +1,22 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "deconverge",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "ConvergeX", "type": "float", "count": 3, "values": [ -4.0, 0.0, 2.0 ] },
{ "name": "ConvergeY", "type": "float", "count": 3, "values": [ 0.0, -4.0, 2.0 ] },
{ "name": "RadialConvergeX", "type": "float", "count": 3, "values": [ 1.0, 1.0, 1.0 ] },
{ "name": "RadialConvergeY", "type": "float", "count": 3, "values": [ 1.0, 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,17 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
void main() {
vec3 Texel0 = texture2D(DiffuseSampler, texCoord).rgb;
vec3 Texel1 = texture2D(DiffuseSampler, texCoord + vec2(oneTexel.x, 0.0)).rgb;
vec3 Texel2 = texture2D(DiffuseSampler, texCoord + vec2(0.0, oneTexel.y)).rgb;
vec3 Texel3 = texture2D(DiffuseSampler, texCoord + oneTexel).rgb;
gl_FragColor = vec4((Texel0 + Texel1 + Texel2 + Texel3) * 0.25, Texel0.a);
}

View File

@ -0,0 +1,18 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "downscale",
"fragment": "downscale",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,19 @@
#version 120
attribute vec4 Position;
uniform mat4 ProjMat;
uniform vec2 InSize;
uniform vec2 OutSize;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0);
gl_Position = vec4(outPos.xy, 0.2, 1.0);
oneTexel = 1.0 / InSize;
texCoord = outPos.xy * 0.5 + 0.5;
texCoord.y = 1.0 - texCoord.y;
}

View File

@ -0,0 +1,19 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "flip",
"fragment": "blit",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "ScreenSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,22 @@
#version 120
attribute vec4 Position;
uniform mat4 ProjMat;
uniform vec2 InSize;
uniform vec2 OutSize;
uniform vec2 ScreenSize;
varying vec2 texCoord;
void main(){
vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0);
gl_Position = vec4(outPos.xy, 0.2, 1.0);
vec2 inOutRatio = OutSize / InSize;
vec2 inScreenRatio = ScreenSize / InSize;
texCoord = Position.xy / OutSize;
texCoord.x = texCoord.x * inOutRatio.x;
texCoord.y = texCoord.y * inOutRatio.y;
texCoord.y -= 1.0 - inScreenRatio.y;
}

View File

@ -0,0 +1,84 @@
#extension GL_EXT_gpu_shader4 : enable
uniform sampler2D DiffuseSampler;
uniform vec2 OutSize;
uniform float VxOffset;
uniform float SpanMax;
uniform float ReduceMul;
varying vec2 texCoord;
varying vec4 posPos;
#define FxaaTex(t, p) texture2D(t, p)
#if __VERSION__ >= 130
#define OffsetVec(a, b) ivec2(a, b)
#define FxaaTexOff(t, p, o, r) textureOffset(t, p, o)
#elif defined(GL_EXT_gpu_shader4)
#define OffsetVec(a, b) ivec2(a, b)
#define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o)
#else
#define OffsetVec(a, b) vec2(a, b)
#define FxaaTexOff(t, p, o, r) texture2D(t, p + o * r)
#endif
vec3 FxaaPixelShader(
vec4 posPos, // Output of FxaaVertexShader interpolated across screen.
sampler2D tex, // Input texture.
vec2 rcpFrame) // Constant {1.0/frameWidth, 1.0/frameHeight}.
{
#define FXAA_REDUCE_MIN (1.0/128.0)
//#define FXAA_REDUCE_MUL (1.0/8.0)
//#define FXAA_SPAN_MAX 8.0
vec3 rgbNW = FxaaTex(tex, posPos.zw).xyz;
vec3 rgbNE = FxaaTexOff(tex, posPos.zw, OffsetVec(1,0), rcpFrame.xy).xyz;
vec3 rgbSW = FxaaTexOff(tex, posPos.zw, OffsetVec(0,1), rcpFrame.xy).xyz;
vec3 rgbSE = FxaaTexOff(tex, posPos.zw, OffsetVec(1,1), rcpFrame.xy).xyz;
vec3 rgbM = FxaaTex(tex, posPos.xy).xyz;
vec3 luma = vec3(0.299, 0.587, 0.114);
float lumaNW = dot(rgbNW, luma);
float lumaNE = dot(rgbNE, luma);
float lumaSW = dot(rgbSW, luma);
float lumaSE = dot(rgbSE, luma);
float lumaM = dot(rgbM, luma);
float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
vec2 dir;
dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));
float dirReduce = max(
(lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * ReduceMul),
FXAA_REDUCE_MIN);
float rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce);
dir = min(vec2( SpanMax, SpanMax),
max(vec2(-SpanMax, -SpanMax),
dir * rcpDirMin)) * rcpFrame.xy;
vec3 rgbA = (1.0/2.0) * (
FxaaTex(tex, posPos.xy + dir * vec2(1.0/3.0 - 0.5)).xyz +
FxaaTex(tex, posPos.xy + dir * vec2(2.0/3.0 - 0.5)).xyz);
vec3 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (
FxaaTex(tex, posPos.xy + dir * vec2(0.0/3.0 - 0.5)).xyz +
FxaaTex(tex, posPos.xy + dir * vec2(3.0/3.0 - 0.5)).xyz);
float lumaB = dot(rgbB, luma);
if ((lumaB < lumaMin) || (lumaB > lumaMax)) {
return rgbA;
} else {
return rgbB;
}
}
void main() {
vec4 baseTexel = texture2D(DiffuseSampler, posPos.xy);
gl_FragColor = vec4(FxaaPixelShader(posPos, DiffuseSampler, 1.0 / OutSize), baseTexel.a);
}

View File

@ -0,0 +1,20 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "fxaa",
"fragment": "fxaa",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "SpanMax", "type": "float", "count": 1, "values": [ 8.0 ] },
{ "name": "SubPixelShift", "type": "float", "count": 1, "values": [ 0.25 ] },
{ "name": "ReduceMul", "type": "float", "count": 1, "values": [ 0.125 ] }
]
}

View File

@ -0,0 +1,21 @@
#version 120
attribute vec4 Position;
uniform mat4 ProjMat;
uniform vec2 OutSize;
uniform float SubPixelShift;
varying vec2 texCoord;
varying vec4 posPos;
void main() {
vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0);
gl_Position = vec4(outPos.xy, 0.2, 1.0);
texCoord = Position.xy / OutSize;
texCoord.y = 1.0 - texCoord.y;
posPos.xy = texCoord.xy;
posPos.zw = texCoord.xy - (1.0/OutSize * vec2(0.5 + SubPixelShift));
}

View File

@ -0,0 +1,14 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
uniform float InverseAmount;
void main(){
vec4 diffuseColor = texture2D(DiffuseSampler, texCoord);
vec4 invertColor = 1.0 - diffuseColor;
vec4 outColor = mix(diffuseColor, invertColor, InverseAmount);
gl_FragColor = vec4(outColor.rgb, diffuseColor.a);
}

View File

@ -0,0 +1,19 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "blit",
"fragment": "invert",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "InverseAmount", "type": "float", "count": 1, "values": [ 0.0 ] }
]
}

View File

@ -0,0 +1,20 @@
#version 120
attribute vec4 Position;
uniform mat4 ProjMat;
uniform vec2 InSize;
uniform vec2 OutSize;
varying vec2 texCoord;
void main(){
vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0);
gl_Position = vec4(outPos.xy, 0.2, 1.0);
vec2 sizeRatio = OutSize / InSize;
texCoord = Position.xy / OutSize;
texCoord.x = texCoord.x * sizeRatio.x;
texCoord.y = texCoord.y * sizeRatio.y;
texCoord.y = sizeRatio.y - texCoord.y;
}

View File

@ -0,0 +1,23 @@
#version 120
uniform sampler2D DiffuseSampler;
uniform sampler2D DitherSampler;
varying vec2 texCoord;
uniform vec2 InSize;
void main() {
vec2 halfSize = InSize * 0.5;
vec2 steppedCoord = texCoord;
steppedCoord.x = float(int(steppedCoord.x*halfSize.x)) / halfSize.x;
steppedCoord.y = float(int(steppedCoord.y*halfSize.y)) / halfSize.y;
vec4 noise = texture2D(DitherSampler, steppedCoord * halfSize / 4.0);
vec4 col = texture2D(DiffuseSampler, steppedCoord) + noise * vec4(1.0/12.0, 1.0/12.0, 1.0/6.0, 1.0);
float r = float(int(col.r*8.0))/8.0;
float g = float(int(col.g*8.0))/8.0;
float b = float(int(col.b*4.0))/4.0;
gl_FragColor = vec4(r, g, b, col.a);
}

View File

@ -0,0 +1,19 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "notch",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" },
{ "name": "DitherSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,132 @@
#version 120
uniform sampler2D DiffuseSampler;
uniform sampler2D BaseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
const vec4 Zero = vec4(0.0);
const vec4 One = vec4(1.0);
const float Pi = 3.1415926535;
const float Pi2 = 6.283185307;
const vec4 A2 = vec4(1.0);
const vec4 B = vec4(0.5);
const float P = 1.0;
const float CCFrequency = 3.59754545;
const float NotchWidth = 2.0;
const float NotchUpperFrequency = 3.59754545 + NotchWidth;
const float NotchLowerFrequency = 3.59754545 - NotchWidth;
const float YFrequency = 6.0;
const float IFrequency = 1.2;
const float QFrequency = 0.6;
const float ScanTime = 52.6;
const vec3 YIQ2R = vec3(1.0, 0.956, 0.621);
const vec3 YIQ2G = vec3(1.0, -0.272, -0.647);
const vec3 YIQ2B = vec3(1.0, -1.106, 1.703);
const vec4 MinC = vec4(-1.1183);
const vec4 CRange = vec4(3.2366);
const float Pi2Length = Pi2 / 83.0;
const vec4 NotchOffset = vec4(0.0, 1.0, 2.0, 3.0);
const vec4 W = vec4(Pi2 * CCFrequency * ScanTime);
void main() {
vec4 YAccum = Zero;
vec4 IAccum = Zero;
vec4 QAccum = Zero;
float QuadXSize = InSize.x * 4.0;
float TimePerSample = ScanTime / QuadXSize;
// Frequency cutoffs for the individual portions of the signal that we extract.
// Y1 and Y2 are the positive and negative frequency limits of the notch filter on Y.
// Y3 is the center of the frequency response of the Y filter.
// I is the center of the frequency response of the I filter.
// Q is the center of the frequency response of the Q filter.
float Fc_y1 = NotchLowerFrequency * TimePerSample;
float Fc_y2 = NotchUpperFrequency * TimePerSample;
float Fc_y3 = YFrequency * TimePerSample;
float Fc_i = IFrequency * TimePerSample;
float Fc_q = QFrequency * TimePerSample;
float Pi2Fc_y1 = Fc_y1 * Pi2;
float Pi2Fc_y2 = Fc_y2 * Pi2;
float Pi2Fc_y3 = Fc_y3 * Pi2;
float Pi2Fc_i = Fc_i * Pi2;
float Pi2Fc_q = Fc_q * Pi2;
float Fc_y1_2 = Fc_y1 * 2.0;
float Fc_y2_2 = Fc_y2 * 2.0;
float Fc_y3_2 = Fc_y3 * 2.0;
float Fc_i_2 = Fc_i * 2.0;
float Fc_q_2 = Fc_q * 2.0;
vec4 CoordY = vec4(texCoord.y);
vec4 BaseTexel = texture2D(DiffuseSampler, texCoord);
// 83 composite samples wide, 4 composite pixels per texel
for (float n = -41.0; n < 42.0; n += 4.0)
{
vec4 n4 = n + NotchOffset;
vec4 CoordX = texCoord.x + oneTexel.x * n4 * 0.25;
vec2 TexCoord = vec2(CoordX.x, CoordY.y);
vec4 C = texture2D(DiffuseSampler, TexCoord) * CRange + MinC;
vec4 WT = W * (CoordX + A2 * CoordY * InSize.y + B);
vec4 Cosine = 0.54 + 0.46 * cos(Pi2Length * n4);
vec4 SincYIn1 = Pi2Fc_y1 * n4;
vec4 SincYIn2 = Pi2Fc_y2 * n4;
vec4 SincYIn3 = Pi2Fc_y3 * n4;
vec4 SincY1 = sin(SincYIn1) / SincYIn1;
vec4 SincY2 = sin(SincYIn2) / SincYIn2;
vec4 SincY3 = sin(SincYIn3) / SincYIn3;
// These zero-checks could be made more efficient, but we are trying to support
// downlevel GLSL
if(SincYIn1.x == 0.0) SincY1.x = 1.0;
if(SincYIn1.y == 0.0) SincY1.y = 1.0;
if(SincYIn1.z == 0.0) SincY1.z = 1.0;
if(SincYIn1.w == 0.0) SincY1.w = 1.0;
if(SincYIn2.x == 0.0) SincY2.x = 1.0;
if(SincYIn2.y == 0.0) SincY2.y = 1.0;
if(SincYIn2.z == 0.0) SincY2.z = 1.0;
if(SincYIn2.w == 0.0) SincY2.w = 1.0;
if(SincYIn3.x == 0.0) SincY3.x = 1.0;
if(SincYIn3.y == 0.0) SincY3.y = 1.0;
if(SincYIn3.z == 0.0) SincY3.z = 1.0;
if(SincYIn3.w == 0.0) SincY3.w = 1.0;
vec4 IdealY = (Fc_y1_2 * SincY1 - Fc_y2_2 * SincY2) + Fc_y3_2 * SincY3;
vec4 FilterY = Cosine * IdealY;
vec4 SincIIn = Pi2Fc_i * n4;
vec4 SincI = sin(SincIIn) / SincIIn;
if(SincIIn.x == 0.0) SincI.x = 1.0;
if(SincIIn.y == 0.0) SincI.y = 1.0;
if(SincIIn.z == 0.0) SincI.z = 1.0;
if(SincIIn.w == 0.0) SincI.w = 1.0;
vec4 IdealI = Fc_i_2 * SincI;
vec4 FilterI = Cosine * IdealI;
vec4 SincQIn = Pi2Fc_q * n4;
vec4 SincQ = sin(SincQIn) / SincQIn;
if(SincQIn.x == 0.0) SincQ.x = 1.0;
if(SincQIn.y == 0.0) SincQ.y = 1.0;
if(SincQIn.z == 0.0) SincQ.z = 1.0;
if(SincQIn.w == 0.0) SincQ.w = 1.0;
vec4 IdealQ = Fc_q_2 * SincQ;
vec4 FilterQ = Cosine * IdealQ;
YAccum += C * FilterY;
IAccum += C * cos(WT) * FilterI;
QAccum += C * sin(WT) * FilterQ;
}
float Y = dot(YAccum, One);
float I = dot(IAccum, One) * 2.0;
float Q = dot(QAccum, One) * 2.0;
vec3 YIQ = vec3(Y, I, Q);
vec3 OutRGB = vec3(dot(YIQ, YIQ2R), dot(YIQ, YIQ2G), dot(YIQ, YIQ2B));
gl_FragColor = vec4(OutRGB, BaseTexel.a);
}

View File

@ -0,0 +1,19 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "ntsc_decode",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" },
{ "name": "BaseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,50 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
const float Pi2 = 6.283185307;
const vec4 A2 = vec4(1.0);
const vec4 B = vec4(0.5);
const float P = 1.0;
const float CCFrequency = 3.59754545;
const float ScanTime = 52.6;
const float Pi2ScanTime = Pi2 * ScanTime;
const vec4 YTransform = vec4(0.299, 0.587, 0.114, 0.0);
const vec4 ITransform = vec4(0.595716, -0.274453, -0.321263, 0.0);
const vec4 QTransform = vec4(0.211456, -0.522591, 0.31135, 0.0);
const vec4 MinC = vec4(-1.1183);
const vec4 InvCRange = vec4(1.0 / 3.2366);
void main() {
vec2 InverseP = vec2(P, 0.0) * oneTexel;
// UVs for four linearly-interpolated samples spread 0.25 texels apart
vec2 C0 = texCoord;
vec2 C1 = texCoord + InverseP * 0.25;
vec2 C2 = texCoord + InverseP * 0.50;
vec2 C3 = texCoord + InverseP * 0.75;
vec4 Cx = vec4(C0.x, C1.x, C2.x, C3.x);
vec4 Cy = vec4(C0.y, C1.y, C2.y, C3.y);
vec4 Texel0 = texture2D(DiffuseSampler, C0);
vec4 Texel1 = texture2D(DiffuseSampler, C1);
vec4 Texel2 = texture2D(DiffuseSampler, C2);
vec4 Texel3 = texture2D(DiffuseSampler, C3);
// Calculate the expected time of the sample.
vec4 T = A2 * Cy * vec4(InSize.y) + B + Cx;
vec4 W = vec4(Pi2ScanTime * CCFrequency);
vec4 TW = T * W;
vec4 Y = vec4(dot(Texel0, YTransform), dot(Texel1, YTransform), dot(Texel2, YTransform), dot(Texel3, YTransform));
vec4 I = vec4(dot(Texel0, ITransform), dot(Texel1, ITransform), dot(Texel2, ITransform), dot(Texel3, ITransform));
vec4 Q = vec4(dot(Texel0, QTransform), dot(Texel1, QTransform), dot(Texel2, QTransform), dot(Texel3, QTransform));
vec4 Encoded = Y + I * cos(TW) + Q * sin(TW);
gl_FragColor = (Encoded - MinC) * InvCRange;
}

View File

@ -0,0 +1,18 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "ntsc_encode",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,21 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 center = texture2D(DiffuseSampler, texCoord);
vec4 up = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y));
vec4 down = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, 0.0));
vec4 left = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, 0.0));
vec4 right = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y));
vec4 uDiff = center - up;
vec4 dDiff = center - down;
vec4 lDiff = center - left;
vec4 rDiff = center - right;
vec4 sum = uDiff + dDiff + lDiff + rDiff;
vec3 clamped = clamp(center.rgb - sum.rgb, 0.0, 1.0);
gl_FragColor = vec4(clamped, center.a);
}

View File

@ -0,0 +1,18 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "outline",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,13 @@
#version 120
uniform sampler2D DiffuseSampler;
uniform sampler2D OutlineSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 diffuseTexel = texture2D(DiffuseSampler, texCoord);
vec4 outlineTexel = texture2D(OutlineSampler, texCoord);
gl_FragColor = vec4(diffuseTexel.rgb + diffuseTexel.rgb * outlineTexel.rgb * vec3(0.75), diffuseTexel.a);
}

View File

@ -0,0 +1,19 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "outline_combine",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" },
{ "name": "OutlineSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,46 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform float LumaRamp;
uniform float LumaLevel;
void main(){
vec4 center = texture2D(DiffuseSampler, texCoord);
vec4 up = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y));
vec4 up2 = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y) * 2.0);
vec4 down = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, 0.0));
vec4 down2 = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, 0.0) * 2.0);
vec4 left = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, 0.0));
vec4 left2 = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, 0.0) * 2.0);
vec4 right = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y));
vec4 right2 = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y) * 2.0);
vec4 uDiff = abs(center - up);
vec4 dDiff = abs(center - down);
vec4 lDiff = abs(center - left);
vec4 rDiff = abs(center - right);
vec4 u2Diff = abs(center - up2);
vec4 d2Diff = abs(center - down2);
vec4 l2Diff = abs(center - left2);
vec4 r2Diff = abs(center - right2);
vec4 sum = uDiff + dDiff + lDiff + rDiff + u2Diff + d2Diff + l2Diff + r2Diff;
vec4 gray = vec4(0.3, 0.59, 0.11, 0.0);
float sumLuma = 1.0 - dot(clamp(sum, 0.0, 1.0), gray);
// Get luminance of center pixel and adjust
float centerLuma = dot(center + (center - pow(center, vec4(LumaRamp))), gray);
// Quantize the luma value
centerLuma = centerLuma - fract(centerLuma * LumaLevel) / LumaLevel;
// Re-scale to full range
centerLuma = centerLuma * (LumaLevel / (LumaLevel - 1.0));
// Blend with outline
centerLuma = centerLuma * sumLuma;
gl_FragColor = vec4(centerLuma, centerLuma, centerLuma, center.a);
}

View File

@ -0,0 +1,20 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "outline_soft",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "LumaRamp", "type": "float", "count": 1, "values": [ 16.0 ] },
{ "name": "LumaLevel", "type": "float", "count": 1, "values": [ 4.0 ] }
]
}

View File

@ -0,0 +1,41 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform float LumaRamp;
void main(){
vec4 center = texture2D(DiffuseSampler, texCoord);
vec4 up = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y));
vec4 up2 = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y) * 2.0);
vec4 down = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, 0.0));
vec4 down2 = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, 0.0) * 2.0);
vec4 left = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, 0.0));
vec4 left2 = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, 0.0) * 2.0);
vec4 right = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y));
vec4 right2 = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y) * 2.0);
vec4 ul = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, -oneTexel.y));
vec4 ur = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, -oneTexel.y));
vec4 bl = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, oneTexel.y));
vec4 br = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, oneTexel.y));
vec4 gray = vec4(0.3, 0.59, 0.11, 0.0);
float uDiff = dot(abs(center - up), gray);
float dDiff = dot(abs(center - down), gray);
float lDiff = dot(abs(center - left), gray);
float rDiff = dot(abs(center - right), gray);
float u2Diff = dot(abs(center - up2), gray);
float d2Diff = dot(abs(center - down2), gray);
float l2Diff = dot(abs(center - left2), gray);
float r2Diff = dot(abs(center - right2), gray);
float ulDiff = dot(abs(center - ul), gray);
float urDiff = dot(abs(center - ur), gray);
float blDiff = dot(abs(center - bl), gray);
float brDiff = dot(abs(center - br), gray);
float sum = uDiff + dDiff + lDiff + rDiff + u2Diff + d2Diff + l2Diff + r2Diff + ulDiff + urDiff + blDiff + brDiff;
float sumLuma = clamp(sum, 0.0, 1.0);
gl_FragColor = vec4(sumLuma, sumLuma, sumLuma, center.a);
}

View File

@ -0,0 +1,19 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "outline_watercolor",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "LumaRamp", "type": "float", "count": 1, "values": [ 16.0 ] }
]
}

View File

@ -0,0 +1,26 @@
#version 120
uniform sampler2D DiffuseSampler;
uniform sampler2D OverlaySampler;
uniform vec2 InSize;
varying vec2 texCoord;
uniform float MosaicSize = 1.0;
uniform vec3 RedMatrix = vec3(1.0, 0.0, 0.0);
uniform vec3 GreenMatrix = vec3(0.0, 1.0, 0.0);
uniform vec3 BlueMatrix = vec3(0.0, 0.0, 1.0);
void main(){
vec2 mosaicInSize = InSize / MosaicSize;
vec2 fractPix = fract(texCoord * mosaicInSize) / mosaicInSize;
vec4 baseTexel = texture2D(DiffuseSampler, texCoord - fractPix);
float red = dot(baseTexel.rgb, RedMatrix);
float green = dot(baseTexel.rgb, GreenMatrix);
float blue = dot(baseTexel.rgb, BlueMatrix);
vec4 overlayTexel = texture2D(OverlaySampler, vec2(texCoord.x, 1.0 - texCoord.y));
gl_FragColor = mix(vec4(red, green, blue, baseTexel.a), overlayTexel, overlayTexel.a);
}

View File

@ -0,0 +1,23 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "blit",
"fragment": "overlay",
"attributes": [ "Position" ],
"samplers": [
{ "name": "OverlaySampler" },
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "MosaicSize", "type": "float", "count": 1, "values": [ 1.0 ] },
{ "name": "RedMatrix", "type": "float", "count": 3, "values": [ 1.0, 0.0, 0.0 ] },
{ "name": "GreenMatrix", "type": "float", "count": 3, "values": [ 0.0, 1.0, 1.0 ] },
{ "name": "BlueMatrix", "type": "float", "count": 3, "values": [ 0.0, 0.0, 1.0 ] }
]
}

View File

@ -0,0 +1,19 @@
#version 120
uniform sampler2D DiffuseSampler;
uniform sampler2D PrevSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
uniform vec3 Phosphor = vec3(0.7, 0.7, 0.7);
uniform float LerpFactor = 1.0;
void main() {
vec4 CurrTexel = texture2D(DiffuseSampler, texCoord);
vec4 PrevTexel = texture2D(PrevSampler, texCoord);
gl_FragColor = vec4(max(PrevTexel.rgb * Phosphor, CurrTexel.rgb), CurrTexel.a);
}

View File

@ -0,0 +1,20 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "phosphor",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" },
{ "name": "PrevSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "Phosphor", "type": "float", "count": 3, "values": [ 0.3, 0.3, 0.3 ] }
]
}

View File

@ -0,0 +1,64 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
const vec4 Zero = vec4(0.0);
const vec4 Half = vec4(0.5);
const vec4 One = vec4(1.0);
const vec4 Two = vec4(2.0);
const float Pi = 3.1415926535;
const float PincushionAmount = 0.02;
const float CurvatureAmount = 0.02;
const float ScanlineAmount = 0.8;
const float ScanlineScale = 1.0;
const float ScanlineHeight = 1.0;
const float ScanlineBrightScale = 1.0;
const float ScanlineBrightOffset = 0.0;
const float ScanlineOffset = 0.0;
const vec3 Floor = vec3(0.05, 0.05, 0.05);
const vec3 Power = vec3(0.8, 0.8, 0.8);
void main() {
vec4 InTexel = texture2D(DiffuseSampler, texCoord);
vec2 PinUnitCoord = texCoord * Two.xy - One.xy;
float PincushionR2 = pow(length(PinUnitCoord), 2.0);
vec2 PincushionCurve = PinUnitCoord * PincushionAmount * PincushionR2;
vec2 ScanCoord = texCoord;
ScanCoord *= One.xy - PincushionAmount * 0.2;
ScanCoord += PincushionAmount * 0.1;
ScanCoord += PincushionCurve;
vec2 CurvatureClipCurve = PinUnitCoord * CurvatureAmount * PincushionR2;
vec2 ScreenClipCoord = texCoord;
ScreenClipCoord -= Half.xy;
ScreenClipCoord *= One.xy - CurvatureAmount * 0.2;
ScreenClipCoord += Half.xy;
ScreenClipCoord += CurvatureClipCurve;
// -- Alpha Clipping --
if (ScanCoord.x < 0.0) discard;
if (ScanCoord.y < 0.0) discard;
if (ScanCoord.x > 1.0) discard;
if (ScanCoord.y > 1.0) discard;
// -- Scanline Simulation --
float InnerSine = ScanCoord.y * InSize.y * ScanlineScale * 0.25;
float ScanBrightMod = sin(InnerSine * Pi + ScanlineOffset * InSize.y * 0.25);
float ScanBrightness = mix(1.0, (pow(ScanBrightMod * ScanBrightMod, ScanlineHeight) * ScanlineBrightScale + 1.0) * 0.5, ScanlineAmount);
vec3 ScanlineTexel = InTexel.rgb * ScanBrightness;
// -- Color Compression (increasing the floor of the signal without affecting the ceiling) --
ScanlineTexel = Floor + (One.xyz - Floor) * ScanlineTexel;
ScanlineTexel.rgb = pow(ScanlineTexel.rgb, Power);
gl_FragColor = vec4(ScanlineTexel.rgb, InTexel.a);
}

View File

@ -0,0 +1,18 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "scan_pincushion",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,20 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 center = texture2D(DiffuseSampler, texCoord);
vec4 left = texture2D(DiffuseSampler, texCoord - vec2(oneTexel.x, 0.0));
vec4 right = texture2D(DiffuseSampler, texCoord + vec2(oneTexel.x, 0.0));
vec4 up = texture2D(DiffuseSampler, texCoord - vec2(0.0, oneTexel.y));
vec4 down = texture2D(DiffuseSampler, texCoord + vec2(0.0, oneTexel.y));
vec4 leftDiff = center - left;
vec4 rightDiff = center - right;
vec4 upDiff = center - up;
vec4 downDiff = center - down;
vec4 total = clamp(leftDiff + rightDiff + upDiff + downDiff, 0.0, 1.0);
gl_FragColor = vec4(total.rgb, center.a);
}

View File

@ -0,0 +1,18 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "sobel",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }
]
}

View File

@ -0,0 +1,20 @@
#version 120
attribute vec4 Position;
uniform mat4 ProjMat;
uniform vec2 InSize;
uniform vec2 OutSize;
varying vec2 texCoord;
varying vec2 oneTexel;
void main(){
vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0);
gl_Position = vec4(outPos.xy, 0.2, 1.0);
oneTexel = 1.0 / InSize;
texCoord = Position.xy / OutSize;
texCoord.y = 1.0 - texCoord.y;
}

View File

@ -0,0 +1,58 @@
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
uniform float Time;
uniform vec2 Frequency;
uniform vec2 WobbleAmount;
vec3 hue(float h)
{
float r = abs(h * 6.0 - 3.0) - 1.0;
float g = 2 - abs(h * 6.0 - 2.0);
float b = 2 - abs(h * 6.0 - 4.0);
return clamp(vec3(r,g,b), 0.0, 1.0);
}
vec3 HSVtoRGB(vec3 hsv) {
return ((hue(hsv.x) - 1.0) * hsv.y + 1.0) * hsv.z;
}
vec3 RGBtoHSV(vec3 rgb) {
vec3 hsv = vec3(0.0);
hsv.z = max(rgb.r, max(rgb.g, rgb.b));
float min = min(rgb.r, min(rgb.g, rgb.b));
float c = hsv.z - min;
if (c != 0)
{
hsv.y = c / hsv.z;
vec3 delta = (hsv.z - rgb) / c;
delta.rgb -= delta.brg;
delta.rg += vec2(2.0, 4.0);
if (rgb.r >= hsv.z) {
hsv.x = delta.b;
} else if (rgb.g >= hsv.z) {
hsv.x = delta.r;
} else {
hsv.x = delta.g;
}
hsv.x = fract(hsv.x / 6.0);
}
return hsv;
}
void main() {
float xOffset = sin(texCoord.y * Frequency.x + Time * 3.1415926535 * 2.0) * WobbleAmount.x;
float yOffset = cos(texCoord.x * Frequency.y + Time * 3.1415926535 * 2.0) * WobbleAmount.y;
vec2 offset = vec2(xOffset, yOffset);
vec4 rgb = texture2D(DiffuseSampler, texCoord + offset);
vec3 hsv = RGBtoHSV(rgb.rgb);
hsv.x = fract(hsv.x + Time);
gl_FragColor = vec4(HSVtoRGB(hsv), rgb.a);
}

View File

@ -0,0 +1,21 @@
{
"blend": {
"func": "add",
"srcrgb": "one",
"dstrgb": "zero"
},
"vertex": "sobel",
"fragment": "wobble",
"attributes": [ "Position" ],
"samplers": [
{ "name": "DiffuseSampler" }
],
"uniforms": [
{ "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
{ "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] },
{ "name": "Time", "type": "float", "count": 1, "values": [ 0.0 ] },
{ "name": "Frequency", "type": "float", "count": 2, "values": [ 512.0, 288.0 ] },
{ "name": "WobbleAmount", "type": "float", "count": 2, "values": [ 0.002, 0.002 ] }
]
}

1840
assets/minecraft/sounds.json Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,66 @@
[C]§f===============
[C]§eMinecraft Credits
[C]§f===============
§7Created by:
§f Markus Persson
§7Game design, programming and graphics:
§f Markus Persson
§f Jens Bergensten
§f Nathan Adams
§7Programming:
§f Erik Broes
§7Music and sound:
§f Daniel Rosenfeld
§7Ingame artwork and paintings:
§f Kristoffer Zetterstrand
§7End game narrative:
§f Julian Gough
§7Website development:
§f Tobias Möllstam
§f Daniel Frisk
§f Leonard Axelsson
§f Jens Bergensten
§f Markus Persson
§7Logo and promotional artwork:
§f Markus Toivonen
§7Business and administration:
§f Carl Manneh
§f Daniel Kaplan
§7Director of fun:
§f Lydia Winters
§7Number crunching and statistics:
§f Patrick Geuder
§7Additional programming:
§f Paul Spooner
§f Ryan 'Scaevolus' Hitchman
§f Elliot 'Hippoplatimus' Segal
§7Developers of Mo' Creatures (horses etc):
§f John Olarte (DrZhark)
§f Kent Christian Jensen
§f Dan Roque
§7Technologies used:
§f Java by Oracle
§f LWJGL by many talented people
§f "3d Sound System" by Paul Lamb
§f JOrbis by JCraft
§f"Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover." §7- Unknown

View File

@ -0,0 +1,151 @@
§3I see the player you mean.
§2PLAYERNAME?
§3Yes. Take care. It has reached a higher level now. It can read our thoughts.
§2That doesn't matter. It thinks we are part of the game.
§3I like this player. It played well. It did not give up.
§2It is reading our thoughts as though they were words on a screen.
§3That is how it chooses to imagine many things, when it is deep in the dream of a game.
§2Words make a wonderful interface. Very flexible. And less terrifying than staring at the reality behind the screen.
§3They used to hear voices. Before players could read. Back in the days when those who did not play called the players witches, and warlocks. And players dreamed they flew through the air, on sticks powered by demons.
§2What did this player dream?
§3This player dreamed of sunlight and trees. Of fire and water. It dreamed it created. And it dreamed it destroyed. It dreamed it hunted, and was hunted. It dreamed of shelter.
§2Hah, the original interface. A million years old, and it still works. But what true structure did this player create, in the reality behind the screen?
§3It worked, with a million others, to sculpt a true world in a fold of the §f§k§a§b§3, and created a §f§k§a§b§3 for §f§k§a§b§3, in the §f§k§a§b§3.
§2It cannot read that thought.
§3No. It has not yet achieved the highest level. That, it must achieve in the long dream of life, not the short dream of a game.
§2Does it know that we love it? That the universe is kind?
§3Sometimes, through the noise of its thoughts, it hears the universe, yes.
§2But there are times it is sad, in the long dream. It creates worlds that have no summer, and it shivers under a black sun, and it takes its sad creation for reality.
§3To cure it of sorrow would destroy it. The sorrow is part of its own private task. We cannot interfere.
§2Sometimes when they are deep in dreams, I want to tell them, they are building true worlds in reality. Sometimes I want to tell them of their importance to the universe. Sometimes, when they have not made a true connection in a while, I want to help them to speak the word they fear.
§3It reads our thoughts.
§2Sometimes I do not care. Sometimes I wish to tell them, this world you take for truth is merely §f§k§a§b§2 and §f§k§a§b§2, I wish to tell them that they are §f§k§a§b§2 in the §f§k§a§b§2. They see so little of reality, in their long dream.
§3And yet they play the game.
§2But it would be so easy to tell them...
§3Too strong for this dream. To tell them how to live is to prevent them living.
§2I will not tell the player how to live.
§3The player is growing restless.
§2I will tell the player a story.
§3But not the truth.
§2No. A story that contains the truth safely, in a cage of words. Not the naked truth that can burn over any distance.
§3Give it a body, again.
§2Yes. Player...
§3Use its name.
§2PLAYERNAME. Player of games.
§3Good.
§2Take a breath, now. Take another. Feel air in your lungs. Let your limbs return. Yes, move your fingers. Have a body again, under gravity, in air. Respawn in the long dream. There you are. Your body touching the universe again at every point, as though you were separate things. As though we were separate things.
§3Who are we? Once we were called the spirit of the mountain. Father sun, mother moon. Ancestral spirits, animal spirits. Jinn. Ghosts. The green man. Then gods, demons. Angels. Poltergeists. Aliens, extraterrestrials. Leptons, quarks. The words change. We do not change.
§2We are the universe. We are everything you think isn't you. You are looking at us now, through your skin and your eyes. And why does the universe touch your skin, and throw light on you? To see you, player. To know you. And to be known. I shall tell you a story.
§2Once upon a time, there was a player.
§3The player was you, PLAYERNAME.
§2Sometimes it thought itself human, on the thin crust of a spinning globe of molten rock. The ball of molten rock circled a ball of blazing gas that was three hundred and thirty thousand times more massive than it. They were so far apart that light took eight minutes to cross the gap. The light was information from a star, and it could burn your skin from a hundred and fifty million kilometres away.
§2Sometimes the player dreamed it was a miner, on the surface of a world that was flat, and infinite. The sun was a square of white. The days were short; there was much to do; and death was a temporary inconvenience.
§3Sometimes the player dreamed it was lost in a story.
§2Sometimes the player dreamed it was other things, in other places. Sometimes these dreams were disturbing. Sometimes very beautiful indeed. Sometimes the player woke from one dream into another, then woke from that into a third.
§3Sometimes the player dreamed it watched words on a screen.
§2Let's go back.
§2The atoms of the player were scattered in the grass, in the rivers, in the air, in the ground. A woman gathered the atoms; she drank and ate and inhaled; and the woman assembled the player, in her body.
§2And the player awoke, from the warm, dark world of its mother's body, into the long dream.
§2And the player was a new story, never told before, written in letters of DNA. And the player was a new program, never run before, generated by a sourcecode a billion years old. And the player was a new human, never alive before, made from nothing but milk and love.
§3You are the player. The story. The program. The human. Made from nothing but milk and love.
§2Let's go further back.
§2The seven billion billion billion atoms of the player's body were created, long before this game, in the heart of a star. So the player, too, is information from a star. And the player moves through a story, which is a forest of information planted by a man called Julian, on a flat, infinite world created by a man called Markus, that exists inside a small, private world created by the player, who inhabits a universe created by...
§3Shush. Sometimes the player created a small, private world that was soft and warm and simple. Sometimes hard, and cold, and complicated. Sometimes it built a model of the universe in its head; flecks of energy, moving through vast empty spaces. Sometimes it called those flecks "electrons" and "protons".
§2Sometimes it called them "planets" and "stars".
§2Sometimes it believed it was in a universe that was made of energy that was made of offs and ons; zeros and ones; lines of code. Sometimes it believed it was playing a game. Sometimes it believed it was reading words on a screen.
§3You are the player, reading words...
§2Shush... Sometimes the player read lines of code on a screen. Decoded them into words; decoded words into meaning; decoded meaning into feelings, emotions, theories, ideas, and the player started to breathe faster and deeper and realised it was alive, it was alive, those thousand deaths had not been real, the player was alive
§3You. You. You are alive.
§2and sometimes the player believed the universe had spoken to it through the sunlight that came through the shuffling leaves of the summer trees
§3and sometimes the player believed the universe had spoken to it through the light that fell from the crisp night sky of winter, where a fleck of light in the corner of the player's eye might be a star a million times as massive as the sun, boiling its planets to plasma in order to be visible for a moment to the player, walking home at the far side of the universe, suddenly smelling food, almost at the familiar door, about to dream again
§2and sometimes the player believed the universe had spoken to it through the zeros and ones, through the electricity of the world, through the scrolling words on a screen at the end of a dream
§3and the universe said I love you
§2and the universe said you have played the game well
§3and the universe said everything you need is within you
§2and the universe said you are stronger than you know
§3and the universe said you are the daylight
§2and the universe said you are the night
§3and the universe said the darkness you fight is within you
§2and the universe said the light you seek is within you
§3and the universe said you are not alone
§2and the universe said you are not separate from every other thing
§3and the universe said you are the universe tasting itself, talking to itself, reading its own code
§2and the universe said I love you because you are love.
§3And the game was over and the player woke up from the dream. And the player began a new dream. And the player dreamed again, dreamed better. And the player was the universe. And the player was love.
§3You are the player.
§2Wake up.

View File

@ -0,0 +1,322 @@
As seen on TV!
Awesome!
100% pure!
May contain nuts!
Better than Prey!
More polygons!
Sexy!
Limited edition!
Flashing letters!
Made by Notch!
It's here!
Best in class!
It's finished!
Kind of dragon free!
Excitement!
More than 500 sold!
One of a kind!
Heaps of hits on YouTube!
Indev!
Spiders everywhere!
Check it out!
Holy cow, man!
It's a game!
Made in Sweden!
Uses LWJGL!
Reticulating splines!
Minecraft!
Yaaay!
Singleplayer!
Keyboard compatible!
Undocumented!
Ingots!
Exploding creepers!
That's no moon!
l33t!
Create!
Survive!
Dungeon!
Exclusive!
The bee's knees!
Down with O.P.P.!
Closed source!
Classy!
Wow!
Not on steam!
Oh man!
Awesome community!
Pixels!
Teetsuuuuoooo!
Kaaneeeedaaaa!
Now with difficulty!
Enhanced!
90% bug free!
Pretty!
12 herbs and spices!
Fat free!
Absolutely no memes!
Free dental!
Ask your doctor!
Minors welcome!
Cloud computing!
Legal in Finland!
Hard to label!
Technically good!
Bringing home the bacon!
Indie!
GOTY!
Ceci n'est pas une title screen!
Euclidian!
Now in 3D!
Inspirational!
Herregud!
Complex cellular automata!
Yes, sir!
Played by cowboys!
OpenGL 1.2!
Thousands of colors!
Try it!
Age of Wonders is better!
Try the mushroom stew!
Sensational!
Hot tamale, hot hot tamale!
Play him off, keyboard cat!
Guaranteed!
Macroscopic!
Bring it on!
Random splash!
Call your mother!
Monster infighting!
Loved by millions!
Ultimate edition!
Freaky!
You've got a brand new key!
Water proof!
Uninflammable!
Whoa, dude!
All inclusive!
Tell your friends!
NP is not in P!
Notch <3 ez!
Music by C418!
Livestreamed!
Haunted!
Polynomial!
Terrestrial!
All is full of love!
Full of stars!
Scientific!
Cooler than Spock!
Collaborate and listen!
Never dig down!
Take frequent breaks!
Not linear!
Han shot first!
Nice to meet you!
Buckets of lava!
Ride the pig!
Larger than Earth!
sqrt(-1) love you!
Phobos anomaly!
Punching wood!
Falling off cliffs!
0% sugar!
150% hyperbole!
Synecdoche!
Let's danec!
Seecret Friday update!
Reference implementation!
Lewd with two dudes with food!
Kiss the sky!
20 GOTO 10!
Verlet intregration!
Peter Griffin!
Do not distribute!
Cogito ergo sum!
4815162342 lines of code!
A skeleton popped out!
The Work of Notch!
The sum of its parts!
BTAF used to be good!
I miss ADOM!
umop-apisdn!
OICU812!
Bring me Ray Cokes!
Finger-licking!
Thematic!
Pneumatic!
Sublime!
Octagonal!
Une baguette!
Gargamel plays it!
Rita is the new top dog!
SWM forever!
Representing Edsbyn!
Matt Damon!
Supercalifragilisticexpialidocious!
Consummate V's!
Cow Tools!
Double buffered!
Fan fiction!
Flaxkikare!
Jason! Jason! Jason!
Hotter than the sun!
Internet enabled!
Autonomous!
Engage!
Fantasy!
DRR! DRR! DRR!
Kick it root down!
Regional resources!
Woo, facepunch!
Woo, somethingawful!
Woo, /v/!
Woo, tigsource!
Woo, minecraftforum!
Woo, worldofminecraft!
Woo, reddit!
Woo, 2pp!
Google anlyticsed!
Now supports åäö!
Give us Gordon!
Tip your waiter!
Very fun!
12345 is a bad password!
Vote for net neutrality!
Lives in a pineapple under the sea!
MAP11 has two names!
Omnipotent!
Gasp!
...!
Bees, bees, bees, bees!
Jag känner en bot!
This text is hard to read if you play the game at the default resolution, but at 1080p it's fine!
Haha, LOL!
Hampsterdance!
Switches and ores!
Menger sponge!
idspispopd!
Eple (original edit)!
So fresh, so clean!
Slow acting portals!
Try the Nether!
Don't look directly at the bugs!
Oh, ok, Pigmen!
Finally with ladders!
Scary!
Play Minecraft, Watch Topgear, Get Pig!
Twittered about!
Jump up, jump up, and get down!
Joel is neat!
A riddle, wrapped in a mystery!
Huge tracts of land!
Welcome to your Doom!
Stay a while, stay forever!
Stay a while and listen!
Treatment for your rash!
"Autological" is!
Information wants to be free!
"Almost never" is an interesting concept!
Lots of truthiness!
The creeper is a spy!
Turing complete!
It's groundbreaking!
Let our battle's begin!
The sky is the limit!
Jeb has amazing hair!
Ryan also has amazing hair!
Casual gaming!
Undefeated!
Kinda like Lemmings!
Follow the train, CJ!
Leveraging synergy!
This message will never appear on the splash screen, isn't that weird?
DungeonQuest is unfair!
110813!
90210!
Check out the far lands!
Tyrion would love it!
Also try VVVVVV!
Also try Super Meat Boy!
Also try Terraria!
Also try Mount And Blade!
Also try Project Zomboid!
Also try World of Goo!
Also try Limbo!
Also try Pixeljunk Shooter!
Also try Braid!
That's super!
Bread is pain!
Read more books!
Khaaaaaaaaan!
Less addictive than TV Tropes!
More addictive than lemonade!
Bigger than a bread box!
Millions of peaches!
Fnord!
This is my true form!
Totally forgot about Dre!
Don't bother with the clones!
Pumpkinhead!
Hobo humping slobo babe!
Made by Jeb!
Has an ending!
Finally complete!
Feature packed!
Boots with the fur!
Stop, hammertime!
Testificates!
Conventional!
Homeomorphic to a 3-sphere!
Doesn't avoid double negatives!
Place ALL the blocks!
Does barrel rolls!
Meeting expectations!
PC gaming since 1873!
Ghoughpteighbteau tchoghs!
Déjà vu!
Déjà vu!
Got your nose!
Haley loves Elan!
Afraid of the big, black bat!
Doesn't use the U-word!
Child's play!
See you next Friday or so!
From the streets of Södermalm!
150 bpm for 400000 minutes!
Technologic!
Funk soul brother!
Pumpa kungen!
日本ハロー!
한국 안녕하세요!
Helo Cymru!
Cześć Polsko!
你好中国!
Привет Россия!
Γεια σου Ελλάδα!
My life for Aiur!
Lennart lennart = new Lennart();
I see your vocabulary has improved!
Who put it there?
You can't explain that!
if not ok then return end
§1C§2o§3l§4o§5r§6m§7a§8t§9i§ac
§kFUNKY LOL
SOPA means LOSER in Swedish!
Big Pointy Teeth!
Bekarton guards the gate!
Mmmph, mmph!
Don't feed avocados to parrots!
Swords for everyone!
Plz reply to my tweet!
.party()!
Take her pillow!
Put that cookie down!
Pretty scary!
I have a suggestion.
Now with extra hugs!
Now java 6!
Woah.
HURNERJSGER?
What's up, Doc?
Now contains 32 random daily cats!

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 813 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,38 @@
{
"animation": {
"frames": [
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,3 @@
{
"animation": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 3
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,45 @@
{
"animation": {
"frametime": 2,
"frames": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
18,
17,
16,
15,
14,
13,
12,
11,
10,
9,
8,
7,
6,
5,
4,
3,
2,
1
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,3 @@
{
"animation": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1018 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Some files were not shown because too many files have changed in this diff Show More