mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-08-20 09:57:09 +00:00
some ui stuff
This commit is contained in:
parent
ca7615d77d
commit
1e198a5ee3
|
|
@ -307,7 +307,7 @@ void UIController::postInit()
|
|||
IggyInstallPerfmon(iggy_perfmon);
|
||||
#endif
|
||||
|
||||
NavigateToScene(0, eUIScene_Intro);
|
||||
//NavigateToScene(0, eUIScene_Intro);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
569
Minecraft.Client/Common/res/lang/en_US.lang
Normal file
569
Minecraft.Client/Common/res/lang/en_US.lang
Normal 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=
|
||||
81
Minecraft.Client/Common/res/lang/stats_US.lang
Normal file
81
Minecraft.Client/Common/res/lang/stats_US.lang
Normal 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
|
||||
226
Minecraft.Client/Common/res/title/splashes.txt
Normal file
226
Minecraft.Client/Common/res/title/splashes.txt
Normal 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!
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue