some ui stuff

This commit is contained in:
Toru the Red Fox 2026-03-03 19:39:40 +00:00
parent ca7615d77d
commit 1e198a5ee3
19 changed files with 1133 additions and 141 deletions

View file

@ -307,7 +307,7 @@ void UIController::postInit()
IggyInstallPerfmon(iggy_perfmon);
#endif
NavigateToScene(0, eUIScene_Intro);
//NavigateToScene(0, eUIScene_Intro);
}

View file

@ -0,0 +1,569 @@
gui.done=Done
gui.cancel=Cancel
gui.toMenu=Back to title screen
gui.up=Up
gui.down=Down
gui.yes=Yes
gui.no=No
menu.singleplayer=Singleplayer
menu.multiplayer=Multiplayer
menu.mods=Mods and Texture Packs
menu.options=Options...
menu.quit=Quit Game
selectWorld.title=Select World
selectWorld.empty=empty
selectWorld.world=World
selectWorld.select=Play Selected World
selectWorld.create=Create New World
selectWorld.createDemo=Play New Demo World
selectWorld.delete=Delete
selectWorld.rename=Rename
selectWorld.deleteQuestion=Are you sure you want to delete this world?
selectWorld.deleteWarning=will be lost forever! (A long time!)
selectWorld.deleteButton=Delete
selectWorld.renameButton=Rename
selectWorld.renameTitle=Rename World
selectWorld.conversion=Must be converted!
selectWorld.newWorld=New World
selectWorld.enterName=World Name
selectWorld.resultFolder=Will be saved in:
selectWorld.enterSeed=Seed for the World Generator
selectWorld.seedInfo=Leave blank for a random seed
multiplayer.title=Play Multiplayer
multiplayer.connect=Connect
multiplayer.info1=Minecraft Multiplayer is currently not finished, but there
multiplayer.info2=is some buggy early testing going on.
multiplayer.ipinfo=Enter the IP of a server to connect to it:
multiplayer.downloadingTerrain=Downloading terrain
multiplayer.stopSleeping=Leave Bed
demo.day.1=This demo will last five game days, do your best!
demo.day.2=Day Two
demo.day.3=Day Three
demo.day.4=Day Four
demo.day.5=This is your last day!
demo.day.warning=Your time is almost up!
demo.day.6=You have passed your fifth day, use F2 to save a screenshot of your creation
demo.reminder=The demo time has expired, buy the game to continue or start a new world!
demo.help.movement=Use %1$s, %2$s, %3$s, %4$s and the mouse to move around
demo.help.jump=Jump by pressing %1$s
demo.help.inventory=Use %1$s to open your inventory
connect.connecting=Connecting to the server...
connect.authorizing=Logging in...
connect.failed=Failed to connect to the server
disconnect.genericReason=%s
disconnect.disconnected=Disconnected by Server
disconnect.lost=Connection Lost
disconnect.kicked=Was kicked from the game
disconnect.timeout=Timed out
disconnect.closed=Connection closed
disconnect.loginFailed=Failed to login
disconnect.loginFailedInfo=Failed to login: %s
disconnect.quitting=Quitting
disconnect.endOfStream=End of stream
disconnect.overflow=Buffer overflow
options.off=OFF
options.on=ON
options.title=Options
options.controls=Controls...
options.video=Video Settings...
options.videoTitle=Video Settings
options.music=Music
options.sound=Sound
options.invertMouse=Invert Mouse
options.sensitivity=Sensitivity
options.sensitivity.min=*yawn*
options.sensitivity.max=HYPERSPEED!!!
options.renderDistance=Render Distance
options.renderDistance.tiny=Tiny
options.renderDistance.short=Short
options.renderDistance.normal=Normal
options.renderDistance.far=Far
options.viewBobbing=View Bobbing
options.ao=Smooth Lighting
options.anaglyph=3D Anaglyph
options.framerateLimit=Performance
options.difficulty=Difficulty
options.difficulty.peaceful=Peaceful
options.difficulty.easy=Easy
options.difficulty.normal=Normal
options.difficulty.hard=Hard
options.graphics=Graphics
options.graphics.fancy=Fancy
options.graphics.fast=Fast
options.guiScale=GUI Scale
options.guiScale.auto=Auto
options.guiScale.small=Small
options.guiScale.normal=Normal
options.guiScale.large=Large
options.advancedOpengl=Advanced OpenGL
performance.max=Max FPS
performance.balanced=Balanced
performance.powersaver=Power saver
controls.title=Controls
key.forward=Forward
key.left=Left
key.back=Back
key.right=Right
key.jump=Jump
key.inventory=Inventory
key.drop=Drop
key.chat=Chat
key.fog=Toggle Fog
key.sneak=Sneak
key.playerlist=List players
texturePack.openFolder=Open texture pack folder
texturePack.title=Select Texture Pack
texturePack.folderInfo=(Place texture pack files here)
tile.stone.name=Stone
tile.stone.desc=
tile.grass.name=Grass
tile.grass.desc=
tile.dirt.name=Dirt
tile.dirt.desc=
tile.stonebrick.name=Cobblestone
tile.stonebrick.desc=
tile.wood.name=Wooden Planks
tile.wood.desc=
tile.sapling.name=Sapling
tile.sapling.desc=
tile.bedrock.name=Bedrock
tile.bedrock.desc=
tile.water.name=Water
tile.water.desc=
tile.lava.name=Lava
tile.lava.desc=
tile.sand.name=Sand
tile.sand.desc=
tile.sandStone.name=Sandstone
tile.sand.desc=
tile.gravel.name=Gravel
tile.gravel.desc=
tile.oreGold.name=Gold Ore
tile.oreGold.desc=
tile.oreIron.name=Iron Ore
tile.oreIron.desc=
tile.oreCoal.name=Coal Ore
tile.oreCoal.desc=
tile.log.name=Wood
tile.log.desc=
tile.leaves.name=Leaves
tile.leaves.desc=
tile.sponge.name=Sponge
tile.sponge.desc=
tile.glass.name=Glass
tile.glass.desc=
tile.cloth.name=Wool
tile.cloth.desc=
tile.flower.name=Flower
tile.flower.desc=
tile.rose.name=Rose
tile.rose.desc=
tile.mushroom.name=Mushroom
tile.mushroom.desc=
tile.blockGold.name=Block of Gold
tile.blockGold.desc=
tile.blockIron.name=Block of Iron
tile.blockIron.desc=
tile.stoneSlab.stone.name=Stone Slab
tile.stoneSlab.stone.desc=
tile.stoneSlab.sand.name=Sandstone Slab
tile.stoneSlab.sand.desc=
tile.stoneSlab.wood.name=Wooden Slab
tile.stoneSlab.wood.desc=
tile.stoneSlab.cobble.name=Stone Slab
tile.stoneSlab.cobble.desc=
tile.brick.name=Bricks
tile.brick.desc=
tile.tnt.name=TNT
tile.tnt.desc=
tile.bookshelf.name=Bookshelf
tile.bookshelf.desc=
tile.stoneMoss.name=Moss Stone
tile.stoneMoss.desc=
tile.obsidian.name=Obsidian
tile.obsidian.desc=
tile.torch.name=Torch
tile.torch.desc=
tile.fire.name=Fire
tile.fire.desc=
tile.mobSpawner.name=Monster Spawner
tile.mobSpawner.desc=
tile.stairsWood.name=Wooden Stairs
tile.stairsWood.desc=
tile.chest.name=Chest
tile.chest.desc=
tile.redstoneDust.name=Redstone Dust
tile.redstoneDust.desc=
tile.oreDiamond.name=Diamond Ore
tile.oreDiamond.desc=
tile.blockDiamond.name=Block of Diamond
tile.blockDiamond.desc=
tile.workbench.name=Crafting Table
tile.workbench.desc=
tile.crops.name=Crops
tile.crops.desc=
tile.farmland.name=Farmland
tile.farmland.desc=
tile.furnace.name=Furnace
tile.furnace.desc=
tile.sign.name=Sign
tile.sign.desc=
tile.doorWood.name=Wooden Door
tile.doorWood.desc=
tile.ladder.name=Ladder
tile.ladder.desc=
tile.rail.name=Rail
tile.rail.desc=
tile.goldenRail.name=Powered Rail
tile.goldenRail.desc=
tile.detectorRail.name=Detector Rail
tile.detectorRail.desc=
tile.stairsStone.name=Stone Stairs
tile.stairsStone.desc=
tile.lever.name=Lever
tile.lever.desc=
tile.pressurePlate.name=Pressure Plate
tile.pressurePlate.desc=
tile.doorIron.name=Iron Door
tile.doorIron.desc=
tile.oreRedstone.name=Redstone Ore
tile.oreRedstone.desc=
tile.notGate.name=Redstone Torch
tile.notGate.desc=
tile.button.name=Button
tile.button.desc=
tile.snow.name=Snow
tile.snow.desc=
tile.ice.name=Ice
tile.ice.desc=
tile.cactus.name=Cactus
tile.cactus.desc=
tile.clay.name=Clay
tile.clay.desc=
tile.reeds.name=Sugar cane
tile.reeds.desc=
tile.jukebox.name=Jukebox
tile.jukebox.desc=
tile.fence.name=Fence
tile.fence.desc=
tile.pumpkin.name=Pumpkin
tile.pumpkin.desc=
tile.litpumpkin.name=Jack 'o' Lantern
tile.litpumpkin.desc=
tile.hellrock.name=Netherrack
tile.hellrock.desc=
tile.hellsand.name=Soul Sand
tile.hellsand.desc=
tile.lightgem.name=Glowstone
tile.lightgem.desc=
tile.portal.name=Portal
tile.portal.desc=
tile.cloth.black.name=Black Wool
tile.cloth.black.desc=
tile.cloth.red.name=Red Wool
tile.cloth.red.desc=
tile.cloth.green.name=Green Wool
tile.cloth.green.desc=
tile.cloth.brown.name=Brown Wool
tile.cloth.brown.desc=
tile.cloth.blue.name=Blue Wool
tile.cloth.blue.desc=
tile.cloth.purple.name=Purple Wool
tile.cloth.purple.desc=
tile.cloth.cyan.name=Cyan Wool
tile.cloth.cyan.desc=
tile.cloth.silver.name=Light Gray Wool
tile.cloth.silver.desc=
tile.cloth.gray.name=Gray Wool
tile.cloth.gray.desc=
tile.cloth.pink.name=Pink Wool
tile.cloth.pink.desc=
tile.cloth.lime.name=Lime Wool
tile.cloth.lime.desc=
tile.cloth.yellow.name=Yellow Wool
tile.cloth.yellow.desc=
tile.cloth.lightBlue.name=Light Blue Wool
tile.cloth.lightBlue.desc=
tile.cloth.magenta.name=Magenta Wool
tile.cloth.magenta.desc=
tile.cloth.orange.name=Orange Wool
tile.cloth.orange.desc=
tile.cloth.white.name=Wool
tile.cloth.white.desc=
tile.oreLapis.name=Lapis Lazuli Ore
tile.oreLapis.desc=
tile.blockLapis.name=Lapis Lazuli Block
tile.blockLapis.desc=
tile.dispenser.name=Dispenser
tile.dispenser.desc=
tile.musicBlock.name=Note Block
tile.musicBlock.desc=
tile.cake.name=Cake
tile.cake.desc=
tile.bed.name=Bed
tile.bed.desc=
tile.bed.occupied=This bed is occupied
tile.bed.noSleep=You can only sleep at night
tile.bed.notValid=Your home bed was missing or obstructed
tile.lockedchest.name=Locked chest
tile.lockedchest.desc=
tile.trapdoor.name=Trapdoor
tile.trapdoor.desc=
tile.web.name=Cobweb
tile.web.desc=
item.shovelIron.name=Iron Shovel
item.shovelIron.desc=
item.pickaxeIron.name=Iron Pickaxe
item.pickaxeIron.desc=
item.hatchetIron.name=Iron Axe
item.hatchetIron.desc=
item.flintAndSteel.name=Flint and Steel
item.flintAndSteel.desc=
item.apple.name=Apple
item.apple.desc=
item.cookie.name=Cookie
item.cookie.desc=
item.bow.name=Bow
item.bow.desc=
item.arrow.name=Arrow
item.arrow.desc=
item.coal.name=Coal
item.coal.desc=
item.charcoal.name=Charcoal
item.charcoal.desc=
item.emerald.name=Diamond
item.emerald.desc=
item.ingotIron.name=Iron Ingot
item.ingotIron.desc=
item.ingotGold.name=Gold Ingot
item.ingotGold.desc=
item.swordIron.name=Iron Sword
item.swordIron.desc=
item.swordWood.name=Wooden Sword
item.swordWood.desc=
item.shovelWood.name=Wooden Shovel
item.shovelWood.desc=
item.pickaxeWood.name=Wooden Pickaxe
item.pickaxeWood.desc=
item.hatchetWood.name=Wooden Axe
item.hatchetWood.desc=
item.swordStone.name=Stone Sword
item.swordStone.desc=
item.shovelStone.name=Stone Shovel
item.shovelStone.desc=
item.pickaxeStone.name=Stone Pickaxe
item.pickaxeStone.desc=
item.hatchetStone.name=Stone Axe
item.hatchetStone.desc=
item.swordDiamond.name=Diamond Sword
item.swordDiamond.desc=
item.shovelDiamond.name=Diamond Shovel
item.shovelDiamond.desc=
item.pickaxeDiamond.name=Diamond Pickaxe
item.pickaxeDiamond.desc=
item.hatchetDiamond.name=Diamond Axe
item.hatchetDiamond.desc=
item.stick.name=Stick
item.stick.desc=
item.bowl.name=Bowl
item.bowl.desc=
item.mushroomStew.name=Mushroom Stew
item.mushroomStew.desc=
item.swordGold.name=Golden Sword
item.swordGold.desc=
item.shovelGold.name=Golden Shovel
item.shovelGold.desc=
item.pickaxeGold.name=Golden Pickaxe
item.pickaxeGold.desc=
item.hatchetGold.name=Golden Axe
item.hatchetGold.desc=
item.string.name=String
item.string.desc=
item.feather.name=Feather
item.feather.desc=
item.sulphur.name=Gunpowder
item.sulphur.desc=
item.hoeWood.name=Wooden Hoe
item.hoeWood.desc=
item.hoeStone.name=Stone Hoe
item.hoeStone.desc=
item.hoeIron.name=Iron Hoe
item.hoeIron.desc=
item.hoeDiamond.name=Diamond Hoe
item.hoeDiamond.desc=
item.hoeGold.name=Golden Hoe
item.hoeGold.desc=
item.seeds.name=Seeds
item.seeds.desc=
item.wheat.name=Wheat
item.wheat.desc=
item.bread.name=Bread
item.bread.desc=
item.helmetCloth.name=Leather Cap
item.helmetCloth.desc=
item.chestplateCloth.name=Leather Tunic
item.chestplateCloth.desc=
item.leggingsCloth.name=Leather Pants
item.leggingsCloth.desc=
item.bootsCloth.name=Leather Boots
item.bootsCloth.desc=
item.helmetChain.name=Chain Helmet
item.helmetChain.desc=
item.chestplateChain.name=Chain Chestplate
item.chestplateChain.desc=
item.leggingsChain.name=Chain Leggings
item.leggingsChain.desc=
item.bootsChain.name=Chain Boots
item.bootsChain.desc=
item.helmetIron.name=Iron Helmet
item.helmetIron.desc=
item.chestplateIron.name=Iron Chestplate
item.chestplateIron.desc=
item.leggingsIron.name=Iron Leggings
item.leggingsIron.desc=
item.bootsIron.name=Iron Boots
item.bootsIron.desc=
item.helmetDiamond.name=Diamond Helmet
item.helmetDiamond.desc=
item.chestplateDiamond.name=Diamond Chestplate
item.chestplateDiamond.desc=
item.leggingsDiamond.name=Diamond Leggings
item.leggingsDiamond.desc=
item.bootsDiamond.name=Diamond Boots
item.bootsDiamond.desc=
item.helmetGold.name=Golden Helmet
item.helmetGold.desc=
item.chestplateGold.name=Golden Chestplate
item.chestplateGold.desc=
item.leggingsGold.name=Golden Leggings
item.leggingsGold.desc=
item.bootsGold.name=Golden boots
item.bootsGold.desc=
item.flint.name=Flint
item.flint.desc=
item.porkchopRaw.name=Raw Porkchop
item.porkchopRaw.desc=
item.porkchopCooked.name=Cooked Porkchop
item.porkchopCooked.desc=
item.painting.name=Painting
item.painting.desc=
item.appleGold.name=Golden Apple
item.appleGold.desc=
item.sign.name=Sign
item.sign.desc=
item.doorWood.name=Wooden Door
item.doorWood.desc=
item.bucket.name=Bucket
item.bucket.desc=
item.bucketWater.name=Water Bucket
item.bucketWater.desc=
item.bucketLava.name=Lava bucket
item.bucketLava.desc=
item.minecart.name=Minecart
item.minecart.desc=
item.saddle.name=Saddle
item.saddle.desc=
item.doorIron.name=Iron Door
item.doorIron.desc=
item.redstone.name=Redstone
item.redstone.desc=
item.snowball.name=Snowball
item.snowball.desc=
item.boat.name=Boat
item.boat.desc=
item.leather.name=Leather
item.leather.desc=
item.milk.name=Milk
item.milk.desc=
item.brick.name=Brick
item.brick.desc=
item.clay.name=Clay
item.clay.desc=
item.reeds.name=Sugar Canes
item.reeds.desc=
item.paper.name=Paper
item.paper.desc=
item.book.name=Book
item.book.desc=
item.slimeball.name=Slimeball
item.slimeball.desc=
item.minecartChest.name=Minecart with Chest
item.minecartChest.desc=
item.minecartFurnace.name=Minecart with Furnace
item.minecartFurnace.desc=
item.egg.name=Egg
item.egg.desc=
item.compass.name=Compass
item.compass.desc=
item.fishingRod.name=Fishing Rod
item.fishingRod.desc=
item.clock.name=Clock
item.clock.desc=
item.yellowDust.name=Glowstone Dust
item.yellowDust.desc=
item.fishRaw.name=Raw Fish
item.fishRaw.desc=
item.fishCooked.name=Cooked Fish
item.fishCooked.desc=
item.record.name=Music Disc
item.record.desc=
item.bone.name=Bone
item.bone.desc=
item.dyePowder.black.name=Ink Sac
item.dyePowder.black.desc=
item.dyePowder.red.name=Rose Red
item.dyePowder.red.desc=
item.dyePowder.green.name=Cactus Green
item.dyePowder.green.desc=
item.dyePowder.brown.name=Cocoa Beans
item.dyePowder.brown.desc=
item.dyePowder.blue.name=Lapis Lazuli
item.dyePowder.blue.desc=
item.dyePowder.purple.name=Purple Dye
item.dyePowder.purple.desc=
item.dyePowder.cyan.name=Cyan Dye
item.dyePowder.cyan.desc=
item.dyePowder.silver.name=Light Gray Dye
item.dyePowder.silver.desc=
item.dyePowder.gray.name=Gray Dye
item.dyePowder.gray.desc=
item.dyePowder.pink.name=Pink Dye
item.dyePowder.pink.desc=
item.dyePowder.lime.name=Lime Dye
item.dyePowder.lime.desc=
item.dyePowder.yellow.name=Dandelion Yellow
item.dyePowder.yellow.desc=
item.dyePowder.lightBlue.name=Light Blue Dye
item.dyePowder.lightBlue.desc=
item.dyePowder.magenta.name=Magenta Dye
item.dyePowder.magenta.desc=
item.dyePowder.orange.name=Orange Dye
item.dyePowder.orange.desc=
item.dyePowder.white.name=Bone Meal
item.dyePowder.white.desc=
item.sugar.name=Sugar
item.sugar.desc=
item.cake.name=Cake
item.cake.desc=
item.bed.name=Bed
item.bed.desc=
item.diode.name=Redstone Repeater
item.diode.desc=
item.map.name=Map
item.map.desc=

View file

@ -0,0 +1,81 @@
gui.achievements=Achievements
gui.stats=Statistics
stat.generalButton=General
stat.blocksButton=Blocks
stat.itemsButton=Items
stat.used=Times Used
stat.mined=Times Mined
stat.depleted=Times Depleted
stat.crafted=Times Crafted
stat.startGame=Times played
stat.createWorld=Worlds played
stat.loadWorld=Saves loaded
stat.joinMultiplayer=Multiplayer joins
stat.leaveGame=Games quit
stat.playOneMinute=Minutes Played
stat.walkOneCm=Distance Walked
stat.fallOneCm=Distance Fallen
stat.swimOneCm=Distance Swum
stat.flyOneCm=Distance Flown
stat.climbOneCm=Distance Climbed
stat.diveOneCm=Distance Dove
stat.minecartOneCm=Distance by Minecart
stat.boatOneCm=Distance by Boat
stat.pigOneCm=Distance by Pig
stat.jump=Jumps
stat.drop=Items Dropped
stat.damageDealt=Damage Dealt
stat.damageTaken=Damage Taken
stat.deaths=Number of Deaths
stat.mobKills=Mob Kills
stat.playerKills=Player Kills
stat.fishCaught=Fish Caught
stat.mineBlock=%1$s Mined
stat.craftItem=%1$s Crafted
stat.useItem=%1$s Used
stat.breakItem=%1$s Depleted
achievement.get=Achievement get!
achievement.taken=Taken!
achievement.requires=Requires '%1$s'
achievement.openInventory=Taking Inventory
achievement.openInventory.desc=Press '%1$s' to open your inventory.
achievement.mineWood=Getting Wood
achievement.mineWood.desc=Attack a tree until a block of wood pops out
achievement.buildWorkBench=Benchmarking
achievement.buildWorkBench.desc=Craft a workbench with four blocks of planks
achievement.buildPickaxe=Time to Mine!
achievement.buildPickaxe.desc=Use planks and sticks to make a pickaxe
achievement.buildFurnace=Hot Topic
achievement.buildFurnace.desc=Construct a furnace out of eight stone blocks
achievement.acquireIron=Acquire Hardware
achievement.acquireIron.desc=Smelt an iron ingot
achievement.buildHoe=Time to Farm!
achievement.buildHoe.desc=Use planks and sticks to make a hoe
achievement.makeBread=Bake Bread
achievement.makeBread.desc=Turn wheat into bread
achievement.bakeCake=The Lie
achievement.bakeCake.desc=Wheat, sugar, milk and eggs!
achievement.buildBetterPickaxe=Getting an Upgrade
achievement.buildBetterPickaxe.desc=Construct a better pickaxe
achievement.cookFish=Delicious Fish
achievement.cookFish.desc=Catch and cook fish!
achievement.onARail=On A Rail
achievement.onARail.desc=Travel by minecart at least 1 km from where you started
achievement.buildSword=Time to Strike!
achievement.buildSword.desc=Use planks and sticks to make a sword
achievement.killEnemy=Monster Hunter
achievement.killEnemy.desc=Attack and destroy a monster
achievement.killCow=Cow Tipper
achievement.killCow.desc=Harvest some leather
achievement.flyPig=When Pigs Fly
achievement.flyPig.desc=Fly a pig off a cliff

View file

@ -0,0 +1,226 @@
As seen on TV!
Awesome!
100% pure!
May contain nuts!
Better than Prey!
More polygons!
Sexy!
Limited edition!
Flashing letters!
Made by Notch!
Coming soon!
Best in class!
When it's finished!
Absolutely 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 not a moon!
l33t!
Create!
Survive!
Dungeon!
Exclusive!
The bee's knees!
Down with O.P.P.!
Closed source!
Classy!
Wow!
Not on steam!
Oh man!
Check it out!
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.1!
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!
Superfragilisticexpialidocious!
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!
"Noun" is an autonym!
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!

View file

@ -739,7 +739,8 @@ void GameRenderer::renderItemInHand(float a, int eye)
{
turnOnLightLayer(a);
PIXBeginNamedEvent(0,"Item in hand render");
itemInHandRenderer->render(a);
if (itemInHandRenderer)
itemInHandRenderer->render(a);
PIXEndNamedEvent();
turnOffLightLayer(a);
}
@ -751,7 +752,8 @@ void GameRenderer::renderItemInHand(float a, int eye)
//if (!mc->options->thirdPersonView && !mc->cameraTargetPlayer->isSleeping())
if (!localplayer->ThirdPersonView() && !mc->cameraTargetPlayer->isSleeping())
{
itemInHandRenderer->renderScreenEffect(a);
if (itemInHandRenderer)
itemInHandRenderer->renderScreenEffect(a);
bobHurt(a);
}

View file

@ -28,13 +28,15 @@
#include "..\Minecraft.World\net.minecraft.world.h"
#include "..\Minecraft.World\LevelChunk.h"
#include "..\Minecraft.World\Biome.h"
#include "../Minecraft.World/SharedMonsterAttributes.h"
#include "../Minecraft.World/AttributeInstance.h"
ResourceLocation Gui::PUMPKIN_BLUR_LOCATION = ResourceLocation(TN__BLUR__MISC_PUMPKINBLUR);
#define RENDER_HUD 0
//#define RENDER_HUD 0
//#ifndef _XBOX
//#undef RENDER_HUD
//#define RENDER_HUD 1
#define RENDER_HUD 1
//#endif
float Gui::currentGuiBlendFactor = 1.0f; // 4J added
@ -311,7 +313,7 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse)
if(bDisplayGui)
{
MemSect(31);
minecraft->textures->bindTexture(TN_GUI_GUI); // 4J was L"/gui/gui.png"
glBindTexture(GL_TEXTURE_2D, minecraft->textures->loadTexture(TN_GUI_GUI)); // 4J was L"/gui/gui.png"
MemSect(0);
shared_ptr<Inventory> inventory = minecraft->player->inventory;
@ -335,7 +337,7 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse)
MemSect(31);
minecraft->textures->bindTexture(TN_GUI_ICONS);//L"/gui/icons.png"));
minecraft->textures->bindTexture(&ResourceLocation(TN_GUI_ICONS));//L"/gui/icons.png"));
MemSect(0);
glEnable(GL_BLEND);
RenderManager.StateSetBlendFactor(0xffffff |(((unsigned int)fVal)<<24));
@ -433,12 +435,18 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse)
yLine2 = yLine1 - 10;
}
double maxHealth = minecraft->localplayers[iPad]->getAttribute(SharedMonsterAttributes.MAX_HEALTH);
const int NUM_HEARTS_PER_ROW = 10;
double maxHealth = minecraft->localplayers[iPad]->getAttribute(SharedMonsterAttributes::MAX_HEALTH)->getValue();
double oldHealth = minecraft->localplayers[iPad]->lastHealth;
double currentHealth = minecraft->localplayers[iPad]->getHealth();
double absorption;
double totalAbsorption = minecraft->localplayers[iPad]->getAbsorptionAmount();
int numHealthRows = Mth.ceil((maxHealth + totalAbsorption) / 2 / (float) NUM_HEARTS_PER_ROW);
int healthRowHeight = Math.max(10 - (numHealthRows - 2), 3);
int yLine2 = yLine1 - (numHealthRows - 1) * healthRowHeight - 10;
int numHealthRows = Mth::ceil((maxHealth + totalAbsorption) / 2 / (float) NUM_HEARTS_PER_ROW);
int healthRowHeight = max(10 - (numHealthRows - 2), 3);
//int yLine2 = yLine1 - (numHealthRows - 1) * healthRowHeight - 10;
absorption = totalAbsorption;
int armor = minecraft->player->getArmorValue();
@ -462,51 +470,51 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse)
}
//minecraft.profiler.popPush("health");
for (int i = Mth.ceil((maxHealth + totalAbsorption) / 2) - 1; i >= 0; i--)
for (int i = Mth::ceil((maxHealth + totalAbsorption) / 2) - 1; i >= 0; i--)
{
int healthTexBaseX = 16;
if (minecraft.player.hasEffect(MobEffect.poison))
if (minecraft->player->hasEffect(MobEffect::poison))
{
healthTexBaseX += 4 * 9;
}
else if (minecraft.player.hasEffect(MobEffect.wither))
else if (minecraft->player->hasEffect(MobEffect::wither))
{
healthTexBaseX += 8 * 9;
}
int bg = 0;
if (blink) bg = 1;
int rowIndex = Mth.ceil((i + 1) / (float) NUM_HEARTS_PER_ROW) - 1;
int rowIndex = Mth::ceil((i + 1) / (float) NUM_HEARTS_PER_ROW) - 1;
int xo = xLeft + (i % NUM_HEARTS_PER_ROW) * 8;
int yo = yLine1 - rowIndex * healthRowHeight;
if (currentHealth <= 4)
{
yo += random.nextInt(2);
yo += random->nextInt(2);
}
if (i == heartOffsetIndex)
{
yo -= 2;
}
int y0 = 0;
// No hardcore on console
/*if (minecraft->level.getLevelData().isHardcore())
{
y0 = 5;
}*/
blit(xo, yo, 16 + bg * 9, 9 * y0, 9, 9);
if (blink)
{
if (i * 2 + 1 < oldHealth) blit(xo, yo, healthTexBaseX + 6 * 9, 9 * y0, 9, 9);
if (i * 2 + 1 == oldHealth) blit(xo, yo, healthTexBaseX + 7 * 9, 9 * y0, 9, 9);
}
if (absorption > 0)
{
if (absorption == totalAbsorption && totalAbsorption % 2 == 1)
if (absorption == totalAbsorption && fmodf(totalAbsorption, 2) == 1)
{
blit(xo, yo, healthTexBaseX + 17 * 9, 9 * y0, 9, 9);
}
@ -565,36 +573,36 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse)
{
// Render mount health
int riderCurrentHealth = (int) ceil(living.get()->GetHealth());
float maxRiderHealth = living->GetMaxHealth();
int hearts = (int) (maxRiderHealth + .5f) / 2;
if (hearts > 30)
{
hearts = 30;
}
int yo = yLine1;
int baseHealth = 0;
while (hearts > 0)
{
int rowHearts = min(hearts, 10);
hearts -= rowHearts;
for (int i = 0; i < rowHearts; i++)
{
int texBaseX = 52;
int bg = 0;
if (foodBlink) bg = 1;
int xo = xRight - i * 8 - 9;
blit(xo, yo, texBaseX + bg * 9, 9 * 1, 9, 9);
if (i * 2 + 1 + baseHealth < riderCurrentHealth) blit(xo, yo, texBaseX + 4 * 9, 9 * 1, 9, 9);
if (i * 2 + 1 + baseHealth == riderCurrentHealth) blit(xo, yo, texBaseX + 5 * 9, 9 * 1, 9, 9);
}
yo -= 10;
baseHealth += 20;
}
//int riderCurrentHealth = (int) ceil(living.get()->GetHealth());
//float maxRiderHealth = living->GetMaxHealth();
//int hearts = (int) (maxRiderHealth + .5f) / 2;
//if (hearts > 30)
//{
// hearts = 30;
//}
//
//int yo = yLine1;
//int baseHealth = 0;
//
//while (hearts > 0)
//{
// int rowHearts = min(hearts, 10);
// hearts -= rowHearts;
//
// for (int i = 0; i < rowHearts; i++)
// {
// int texBaseX = 52;
// int bg = 0;
//
// if (foodBlink) bg = 1;
// int xo = xRight - i * 8 - 9;
// blit(xo, yo, texBaseX + bg * 9, 9 * 1, 9, 9);
// if (i * 2 + 1 + baseHealth < riderCurrentHealth) blit(xo, yo, texBaseX + 4 * 9, 9 * 1, 9, 9);
// if (i * 2 + 1 + baseHealth == riderCurrentHealth) blit(xo, yo, texBaseX + 5 * 9, 9 * 1, 9, 9);
// }
// yo -= 10;
// baseHealth += 20;
//}
}
// render air bubbles

View file

@ -396,8 +396,11 @@ void LevelRenderer::AddDLCSkinsToMemTextures()
void LevelRenderer::allChanged()
{
int playerIndex = mc->player->GetXboxPad(); // 4J added
allChanged(playerIndex);
if (mc->player)
{
int playerIndex = mc->player->GetXboxPad(); // 4J added
allChanged(playerIndex);
}
}
int LevelRenderer::activePlayers()

View file

@ -1532,7 +1532,7 @@ if not exist "$(TargetDir)\savedata" mkdir "$(TargetDir)\savedata"</Command>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>Sync</ExceptionHandling>
<BufferSecurityCheck>false</BufferSecurityCheck>
@ -1624,7 +1624,7 @@ if not exist "$(TargetDir)\savedata" mkdir "$(TargetDir)\savedata"</Command>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>Sync</ExceptionHandling>
<BufferSecurityCheck>false</BufferSecurityCheck>

View file

@ -27,6 +27,7 @@
#include "DeathScreen.h"
#include "ErrorScreen.h"
#include "TitleScreen.h"
#include "PauseScreen.h"
#include "InventoryScreen.h"
#include "InBedChatScreen.h"
#include "AchievementPopup.h"
@ -363,7 +364,7 @@ void Minecraft::init()
// 4J-PB - We'll do this in a xui intro
//renderLoadingScreen();
//Keyboard::create();
Keyboard::create();
Mouse::create();
#if 0 // 4J - removed
mouseHandler = new MouseHandler(parent);
@ -515,19 +516,19 @@ void Minecraft::setScreen(Screen *screen)
}
else if (player != NULL && !ui.GetMenuDisplayed(player->GetXboxPad()) && player->getHealth() <= 0)
{
//screen = new DeathScreen();
screen = new DeathScreen();
// 4J Stu - If we exit from the death screen then we are saved as being dead. In the Java
// game when you load the game you are still dead, but this is silly so only show the dead
// screen if we have died during gameplay
if(ticks==0)
{
player->respawn();
}
else
{
ui.NavigateToScene(player->GetXboxPad(),eUIScene_DeathMenu,NULL);
}
//if(ticks==0)
//{
// player->respawn();
//}
//else
//{
// ui.NavigateToScene(player->GetXboxPad(),eUIScene_DeathMenu,NULL);
//}
}
if (dynamic_cast<TitleScreen *>(screen)!=NULL)
@ -1757,6 +1758,7 @@ void Minecraft::run_middle()
ticks++;
// try { // 4J - try/catch removed
bool bFirst = true;
bool bSet = false;
for( int idx = 0; idx < XUSER_MAX_COUNT; idx++ )
{
// 4J - If we are waiting for this connection to do something, then tick it here.
@ -1799,13 +1801,20 @@ void Minecraft::run_middle()
if( setLocalPlayerIdx(idx) )
{
bSet = true;
tick(bFirst, bLastTimerTick);
bFirst = false;
// clear the stored button downs since the tick for this player will now have actioned them
player->ullButtonsPressed=0LL;
if (player)
player->ullButtonsPressed=0LL;
}
}
if (!bSet) // tick anyway
{
tick(bFirst, bLastTimerTick);
}
ui.HandleGameTick();
setLocalPlayerIdx(ProfileManager.GetPrimaryPad());
@ -1858,10 +1867,12 @@ void Minecraft::run_middle()
{
bool bFirst = true;
int iPrimaryPad=ProfileManager.GetPrimaryPad();
bool bSet = false;
for( int i = 0; i < XUSER_MAX_COUNT; i++ )
{
if( setLocalPlayerIdx(i) )
{
bSet = true;
PIXBeginNamedEvent(0,"Game render player idx %d",i);
RenderManager.StateSetViewport((C4JRender::eViewportType)player->m_iScreenSection);
gameRenderer->render(timer->a, bFirst);
@ -1887,6 +1898,10 @@ void Minecraft::run_middle()
}
}
}
if (!bSet)
gameRenderer->render(timer->a, bFirst); // render anyway
// If there's an unoccupied quadrant, then clear that to black
if( unoccupiedQuadrant > -1 )
{
@ -1979,7 +1994,7 @@ void Minecraft::run_middle()
checkGlError(L"Post render");
MemSect(0);
frames++;
//pause = !isClientSide() && screen != NULL && screen->isPauseScreen();
pause = !isClientSide() && screen != NULL && screen->isPauseScreen();
//pause = g_NetworkManager.IsLocalGame() && g_NetworkManager.GetPlayerCount() == 1 && app.IsPauseMenuDisplayed(ProfileManager.GetPrimaryPad());
pause = app.IsAppPaused();
@ -2132,7 +2147,7 @@ void Minecraft::pauseGame()
{
if (screen != NULL) return;
// setScreen(new PauseScreen()); // 4J - TODO put back in
setScreen(new PauseScreen()); // 4J - TODO put back in
}
void Minecraft::resize(int width, int height)
@ -2193,14 +2208,18 @@ void Minecraft::levelTickThreadInitFunc()
// 4J - added bUpdateTextures, which is true if the actual renderer textures are to be updated - this will be true for the last time this tick runs with bFirst true
void Minecraft::tick(bool bFirst, bool bUpdateTextures)
{
int iPad=player->GetXboxPad();
//OutputDebugString("Minecraft::tick\n");
int iPad = -1;
if (player)
{
iPad = player->GetXboxPad();
//OutputDebugString("Minecraft::tick\n");
//4J-PB - only tick this player's stats
stats[iPad]->tick(iPad);
//4J-PB - only tick this player's stats
stats[iPad]->tick(iPad);
// Tick the opacity timer (to display the interface at default opacity for a certain time if the user has been navigating it)
app.TickOpacityTimer(iPad);
// Tick the opacity timer (to display the interface at default opacity for a certain time if the user has been navigating it)
app.TickOpacityTimer(iPad);
}
// 4J added
if( bFirst ) levelRenderer->destroyedTileManager->tick();
@ -2254,19 +2273,16 @@ void Minecraft::tick(bool bFirst, bool bUpdateTextures)
{
// setScreen(new InBedChatScreen()); // 4J - TODO put back in
}
player->missTime = 10000;
player->lastClickTick[0] = ticks + 10000;
player->lastClickTick[1] = ticks + 10000;
}
else if (screen != NULL && (dynamic_cast<InBedChatScreen *>(screen)!=NULL) && !player->isSleeping())
{
setScreen(NULL);
}
if (screen != NULL)
{
player->missTime = 10000;
player->lastClickTick[0] = ticks + 10000;
player->lastClickTick[1] = ticks + 10000;
}
if (screen != NULL)
{
screen->updateEvents();
@ -2277,7 +2293,7 @@ void Minecraft::tick(bool bFirst, bool bUpdateTextures)
}
}
if (screen == NULL && !ui.GetMenuDisplayed(iPad) )
if (screen == NULL && (player && !ui.GetMenuDisplayed(iPad)) )
{
// 4J-PB - add some tooltips if required
int iA=-1, iB=-1, iX, iY=IDS_CONTROLS_INVENTORY, iLT=-1, iRT=-1, iLB=-1, iRB=-1, iLS=-1, iRS=-1;
@ -3710,9 +3726,12 @@ void Minecraft::tick(bool bFirst, bool bUpdateTextures)
#endif
)
{
app.DebugPrintf("PAUSE PRESS PROCESSING - ipad = %d, NavigateToScene\n",player->GetXboxPad());
ui.PlayUISFX(eSFX_Press);
ui.NavigateToScene(iPad, eUIScene_PauseMenu, NULL, eUILayer_Scene);
//app.DebugPrintf("PAUSE PRESS PROCESSING - ipad = %d, NavigateToScene\n",player->GetXboxPad());
//ui.PlayUISFX(eSFX_Press);
//ui.NavigateToScene(iPad, eUIScene_PauseMenu, NULL, eUILayer_Scene);
ui.CloseUIScenes(iPad);
ui.CloseAllPlayersScenes();
pauseGame();
}
if((player->ullButtonsPressed&(1LL<<MINECRAFT_ACTION_DROP)) && gameMode->isInputAllowed(MINECRAFT_ACTION_DROP))
@ -3758,7 +3777,7 @@ void Minecraft::tick(bool bFirst, bool bUpdateTextures)
else
{
// 4J-PB
if (InputManager.GetValue(iPad, ACTION_MENU_CANCEL) > 0 && gameMode->isInputAllowed(ACTION_MENU_CANCEL))
if (gameMode && InputManager.GetValue(iPad, ACTION_MENU_CANCEL) > 0 && gameMode->isInputAllowed(ACTION_MENU_CANCEL))
{
setScreen(NULL);
}

View file

@ -9,6 +9,7 @@
#include "..\Minecraft.World\net.minecraft.world.level.h"
#include "..\Minecraft.World\net.minecraft.stats.h"
#include "..\Minecraft.Client\LocalPlayer.h"
#include <MinecraftServer.h>
PauseScreen::PauseScreen()
{
@ -41,33 +42,35 @@ void PauseScreen::init()
}
void PauseScreen::buttonClicked(Button button)
void PauseScreen::buttonClicked(Button* button)
{
if (button.id == 0)
if (button->id == 0)
{
minecraft->setScreen(new OptionsScreen(this, minecraft->options));
}
if (button.id == 1)
if (button->id == 1)
{
if (minecraft->isClientSide())
{
minecraft->level->disconnect();
MinecraftServer::HaltServer();
g_NetworkManager.LeaveGame(FALSE);
}
minecraft->setLevel(NULL);
minecraft->setScreen(new TitleScreen());
}
if (button.id == 4)
if (button->id == 4)
{
minecraft->setScreen(NULL);
// minecraft->grabMouse(); // 4J - removed
}
if (button.id == 5)
if (button->id == 5)
{
// minecraft->setScreen(new AchievementScreen(minecraft->stats)); // 4J TODO - put back
}
if (button.id == 6)
if (button->id == 6)
{
// minecraft->setScreen(new StatsScreen(this, minecraft->stats)); // 4J TODO - put back
}

View file

@ -11,7 +11,7 @@ public:
virtual void init();
protected:using Screen::buttonClicked;
virtual void buttonClicked(Button button);
virtual void buttonClicked(Button* button);
public:
virtual void tick();
virtual void render(int xm, int ym, float a);

View file

@ -65,6 +65,7 @@ void Screen::mouseClicked(int x, int y, int buttonNum)
clickedButton = button;
minecraft->soundEngine->playUI(eSoundType_RANDOM_CLICK, 1, 1);
buttonClicked(button);
break; // we don't want this loop to continue
}
}
}
@ -226,11 +227,12 @@ void Screen::renderBackground(int vo)
void Screen::renderDirtBackground(int vo)
{
// 4J Unused
#if 0
//#if 0
glDisable(GL_LIGHTING);
glDisable(GL_FOG);
Tesselator *t = Tesselator::getInstance();
glBindTexture(GL_TEXTURE_2D, minecraft->textures->loadTexture(L"/gui/background.png"));
//glBindTexture(GL_TEXTURE_2D, minecraft->textures->loadTexture(L"/gui/background.png"));
glBindTexture(GL_TEXTURE_2D, minecraft->textures->loadTexture(TN_GUI_BACKGROUND));
glColor4f(1, 1, 1, 1);
float s = 32;
t->begin();
@ -240,7 +242,7 @@ void Screen::renderDirtBackground(int vo)
t->vertexUV((float)(width), (float)( 0), (float)( 0), (float)( width / s), (float)( 0 + vo));
t->vertexUV((float)(0), (float)( 0), (float)( 0), (float)( 0), (float)( 0 + vo));
t->end();
#endif
//#endif
}
bool Screen::isPauseScreen()

View file

@ -35,7 +35,9 @@ wchar_t *Textures::preLoaded[TN_COUNT] =
L"environment/rain",
L"environment/snow",
L"gui/gui",
L"gui/background",
L"gui/icons",
L"title/mclogo",
L"item/arrows",
L"item/boat",
L"item/cart",

View file

@ -26,7 +26,9 @@ typedef enum _TEXTURE_NAME
TN_ENVIRONMENT_RAIN,
TN_ENVIRONMENT_SNOW,
TN_GUI_GUI,
TN_GUI_BACKGROUND,
TN_GUI_ICONS,
TN_TITLE_MCLOGO,
TN_ITEM_ARROWS,
TN_ITEM_BOAT,
TN_ITEM_CART,

View file

@ -4896,7 +4896,7 @@ bool TileRenderer::tesselateBlockInWorld( Tile* tt, int x, int y, int z )
b = cb;
}
if ( Tile::lightEmission[tt->id] == 0 )//4J - TODO/remove (Minecraft::useAmbientOcclusion())
if ( Tile::lightEmission[tt->id] == 0 && Minecraft::useAmbientOcclusion())
{
return tesselateBlockInWorldWithAmbienceOcclusionTexLighting(tt, x, y, z, r, g, b, 0, smoothShapeLighting);
}
@ -4925,7 +4925,7 @@ bool TileRenderer::tesselateBlockInWorld( Tile* tt, int x, int y, int z, int fac
b = cb;
}
if ( Tile::lightEmission[tt->id] == 0 )//4J - TODO/remove (Minecraft::useAmbientOcclusion())
if ( Tile::lightEmission[tt->id] == 0 && Minecraft::useAmbientOcclusion())
{
return tesselateBlockInWorldWithAmbienceOcclusionTexLighting( tt, x, y, z, r, g, b, faceFlags, smoothShapeLighting );
}

View file

@ -21,27 +21,30 @@ TitleScreen::TitleScreen()
multiplayerButton = NULL;
splash = L"missingno";
// try { // 4J - removed try/catch
// try { // 4J - removed try/catch
vector<wstring> splashes;
/*
BufferedReader *br = new BufferedReader(new InputStreamReader(InputStream::getResourceAsStream(L"res\\title\\splashes.txt"))); //, Charset.forName("UTF-8")
wstring line = L"";
while ( !(line = br->readLine()).empty() )
{
line = trimString( line );
if (line.length() > 0)
{
splashes.push_back(line);
}
}
br->close();
delete br;
*/
splash = L""; //splashes.at(random->nextInt(splashes.size()));
BufferedReader *br = new BufferedReader(new InputStreamReader(InputStream::getResourceAsStream(L"Common\\res\\title\\splashes.txt"))); //, Charset.forName("UTF-8")
if (br)
{
wstring line = L"";
while (!(line = br->readLine()).empty())
{
line = trimString(line);
if (line.length() > 0)
{
splashes.push_back(line);
}
}
br->close();
delete br;
}
splash = splashes.at(random->nextInt(splashes.size()));
// } catch (Exception e) {
// }
@ -108,7 +111,8 @@ void TitleScreen::buttonClicked(Button *button)
}
if (button->id == 1)
{
minecraft->setScreen(new SelectWorldScreen(this));
//minecraft->setScreen(new SelectWorldScreen(this));
ui.NavigateToScene(0, eUIScene_MainMenu);
}
if (button->id == 2)
{
@ -127,7 +131,7 @@ void TitleScreen::buttonClicked(Button *button)
void TitleScreen::render(int xm, int ym, float a)
{
// 4J Unused
#if 0
//#if 0
renderBackground();
Tesselator *t = Tesselator::getInstance();
@ -135,7 +139,8 @@ void TitleScreen::render(int xm, int ym, float a)
int logoX = width / 2 - logoWidth / 2;
int logoY = 30;
glBindTexture(GL_TEXTURE_2D, minecraft->textures->loadTexture(L"/title/mclogo.png"));
//glBindTexture(GL_TEXTURE_2D, minecraft->textures->loadTexture(L"/title/mclogo.png"));
glBindTexture(GL_TEXTURE_2D, minecraft->textures->loadTexture(TN_TITLE_MCLOGO));
glColor4f(1, 1, 1, 1);
blit(logoX + 0, logoY + 0, 0, 0, 155, 44);
blit(logoX + 155, logoY + 0, 0, 45, 155, 44);
@ -156,5 +161,5 @@ void TitleScreen::render(int xm, int ym, float a)
drawString(font, msg, width - font->width(msg) - 2, height - 10, 0xffffff);
Screen::render(xm, ym, a);
#endif
//#endif
}

View file

@ -1151,24 +1151,24 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
// LeaderboardManager::Instance()->Tick();
// Render game graphics.
if(app.GetGameStarted())
{
//if(app.GetGameStarted())
//{
pMinecraft->applyFrameMouseLook(); // Per-frame mouse look (before ticks + render)
pMinecraft->run_middle();
app.SetAppPaused( g_NetworkManager.IsLocalGame() && g_NetworkManager.GetPlayerCount() == 1 && ui.IsPauseMenuDisplayed(ProfileManager.GetPrimaryPad()) );
}
else
{
MemSect(28);
pMinecraft->soundEngine->tick(NULL, 0.0f);
MemSect(0);
pMinecraft->textures->tick(true,false);
IntCache::Reset();
if( app.GetReallyChangingSessionType() )
{
pMinecraft->tickAllConnections(); // Added to stop timing out when we are waiting after converting to an offline game
}
}
//}
//else
//{
// MemSect(28);
// pMinecraft->soundEngine->tick(NULL, 0.0f);
// MemSect(0);
// pMinecraft->textures->tick(true,false);
// IntCache::Reset();
// if( app.GetReallyChangingSessionType() )
// {
// pMinecraft->tickAllConnections(); // Added to stop timing out when we are waiting after converting to an offline game
// }
//}
pMinecraft->soundEngine->playMusicTick();

View file

@ -3,23 +3,86 @@
// 4J - TODO - properly implement
Language *Language::singleton = new Language();
Language *Language::singleton = NULL;
Language::Language()
{
BufferedReader* br = new BufferedReader(new InputStreamReader(InputStream::getResourceAsStream(L"Common\\res\\lang\\en_US.lang")));
if (br)
{
wstring prevLine = L"null";
wstring line = L"";
while (true)
{
line = br->readLine();
line = trimString(line);
if (line == prevLine)
break;
prevLine = line;
if (line.length() > 0)
{
std::wstring tag = line.substr(0, line.find('='));
if (localizationTable.count(tag) == 0)
{
std::wstring string = line.substr(line.find('=') + 1);
localizationTable.insert({ tag, string });
}
}
}
br->close();
delete br;
}
br = new BufferedReader(new InputStreamReader(InputStream::getResourceAsStream(L"Common\\res\\lang\\stats_US.lang")));
if (br)
{
wstring prevLine = L"null";
wstring line = L"";
while (true)
{
line = br->readLine();
line = trimString(line);
if (line == prevLine)
break;
prevLine = line;
if (line.length() > 0)
{
std::wstring tag = line.substr(0, line.find('='));
if (localizationTable.count(tag) == 0)
{
std::wstring string = line.substr(line.find('=') + 1);
localizationTable.insert({ tag, string });
}
}
}
br->close();
delete br;
}
}
Language *Language::getInstance()
{
if (!singleton)
singleton = new Language(); // construct
return singleton;
}
std::wstring Language::getElementName(const std::wstring& elementId)
{
return elementId;
if (localizationTable.count(elementId + L".name") > 0)
return localizationTable[elementId + L".name"];
else
return elementId;
}
std::wstring Language::getElementDescription(const std::wstring& elementId)
{
return elementId;
if (localizationTable.count(elementId + L".desc") > 0)
return localizationTable[elementId + L".desc"];
else
return elementId;
}

View file

@ -6,13 +6,20 @@ class Language
{
private:
static Language *singleton;
std::unordered_map<std::wstring, std::wstring> localizationTable;
public:
Language();
static Language *getInstance();
template<typename...Args>
inline std::wstring getElement(const std::wstring& elementId, Args...)
{
return elementId;
if (this)
{
if (localizationTable.count(elementId))
return localizationTable[elementId];
else
return elementId;
}
}
std::wstring getElementName(const std::wstring& elementId);
std::wstring getElementDescription(const std::wstring& elementId);