the whole game

This commit is contained in:
2026-03-02 22:04:18 +03:00
parent 816e9060b4
commit f0617a5d22
2069 changed files with 581500 additions and 0 deletions

8
project/android/.classpath Executable file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="com/mojang/minecraftpe/Minecraft_Verizon.java|com/mojang/minecraftpe/stats/|com/mojang/minecraftpe/Receiver.java|com/mojang/minecraftpe/Minecraft_Market.java" kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

33
project/android/.project Executable file
View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MinecraftPocketEdition</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mojang.minecraftpe"
android:versionCode="6006"
android:versionName="0.6.0"
android:installLocation="preferExternal">
<!-- This is the platform API where NativeActivity was introduced. -->
<uses-sdk android:minSdkVersion="9"
android:targetSdkVersion="9" />
<!-- uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="true"/ -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<application android:icon="@drawable/icon"
android:label="@string/app_name"
>
<activity android:name="com.mojang.minecraftpe.MainActivity"
android:label="@string/app_name_short"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:launchMode="singleTop">
<meta-data android:name="android.app.lib_name"
android:value="minecraftpe" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.mojang.minecraftpe.MainMenuOptionsActivity"></activity>
<meta-data android:name="xperiaplayoptimized_content" android:resource="@string/xperiaplayoptimized_content" />
<meta-data android:name="game_display_name" android:resource="@string/app_name" />
<meta-data android:name="game_icon" android:resource="@drawable/iconx" />
<uses-library android:name="xperiaplaycertified" android:required="false"/>
</application>
</manifest>

View File

@@ -0,0 +1,19 @@
<!-- Verizon VCAST -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.START_BACKGROUND_SERVICE"/>
<uses-permission android:name="com.verizon.vcast.apps.VCAST_APPS_LICENSE_SERVICE"/>
android:debuggable="true"
<!-- Android MARKET -->
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-library android:name="xperiaplaycertified" android:required="false"/>
<receiver android:name="com.mojang.minecraftpe.Receiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B

BIN
project/android/assets/art/kz.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1011 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,967 @@
language.name=English
language.region=US
language.code=en_US
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=Texture Packs
menu.options=Options...
menu.quit=Quit Game
menu.returnToMenu=Save and Quit to Title
menu.disconnect=Disconnect
menu.returnToGame=Back to Game
menu.switchingLevel=Switching level
menu.generatingLevel=Generating level
menu.loadingLevel=Loading level
menu.generatingTerrain=Building terrain
menu.simulating=Simulating the world for a bit
menu.respawning=Respawning
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
gameMode.survival=Survival Mode
gameMode.creative=Creative Mode
gameMode.hardcore=Hardcore Mode!
gameMode.changed=Your game mode has been changed
selectWorld.gameMode=Game Mode:
selectWorld.gameMode.survival=Survival
selectWorld.gameMode.survival.line1=Search for resources, crafting, gain
selectWorld.gameMode.survival.line2=levels, health and hunger
selectWorld.gameMode.creative=Creative
selectWorld.gameMode.creative.line1=Unlimited resources, free flying and
selectWorld.gameMode.creative.line2=destroy blocks instantly
selectWorld.gameMode.hardcore=Hardcore
selectWorld.gameMode.hardcore.line1=Same as survival mode, locked at hardest
selectWorld.gameMode.hardcore.line2=difficulty, and one life only
selectWorld.moreWorldOptions=More World Options...
selectWorld.mapFeatures=Generate Structures:
selectWorld.mapFeatures.info=Villages, dungeons etc
selectWorld.mapType=World Type:
selectWorld.mapType.normal=Normal
selectWorld.hardcoreMode=Hardcore:
selectWorld.hardcoreMode.info=World is deleted upon death
generator.default=Default
generator.flat=Superflat
selectServer.title=Select Server
selectServer.empty=empty
selectServer.select=Join Server
selectServer.direct=Direct Connect
selectServer.edit=Edit
selectServer.delete=Delete
selectServer.add=Add server
selectServer.defaultName=Minecraft Server
selectServer.deleteQuestion=Are you sure you want to remove this server?
selectServer.deleteWarning=will be lost forever! (A long time!)
selectServer.deleteButton=Delete
selectServer.refresh=Refresh
addServer.title=Edit Server Info
addServer.enterName=Server Name
addServer.enterIp=Server Address
addServer.add=Done
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.language=Language...
options.languageWarning=Language translations may not be 100% accurate
options.videoTitle=Video Settings
options.music=Music
options.sound=Sound
options.invertMouse=Invert Mouse
options.fov=FOV
options.fov.min=Normal
options.fov.max=Quake Pro
options.gamma=Brightness
options.gamma.min=Moody
options.gamma.max=Bright
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.difficulty.hardcore=Hardcore
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
options.renderClouds=Clouds
options.farWarning1=A 64 bit Java installation is recommended
options.farWarning2=for 'Far' render distance (you have 32 bit)
options.particles=Particles
options.particles.all=All
options.particles.decreased=Decreased
options.particles.minimal=Minimal
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
key.attack=Attack
key.use=Use Item
key.pickItem=Pick Block
key.mouseButton=Button %1$s
texturePack.openFolder=Open texture pack folder
texturePack.title=Select Texture Pack
texturePack.folderInfo=(Place texture pack files here)
tile.stone.name=Stone
tile.grass.name=Grass Block
tile.dirt.name=Dirt
tile.stonebrick.name=Cobblestone
tile.wood.name=Wooden Planks
tile.sapling.name=Sapling
tile.deadbush.name=Dead Bush
tile.bedrock.name=Bedrock
tile.water.name=Water
tile.lava.name=Lava
tile.sand.name=Sand
tile.sandStone.name=Sandstone
tile.gravel.name=Gravel
tile.oreGold.name=Gold Ore
tile.oreIron.name=Iron Ore
tile.oreCoal.name=Coal Ore
tile.log.name=Wood
tile.leaves.name=Leaves
tile.tallgrass.name=Grass
tile.tallgrass.shrub.name=Shrub
tile.tallgrass.grass.name=Grass
tile.tallgrass.fern.name=Fern
tile.sponge.name=Sponge
tile.glass.name=Glass
tile.thinGlass.name=Glass Pane
tile.cloth.name=Wool
tile.flower.name=Flower
tile.rose.name=Rose
tile.mushroom.name=Mushroom
tile.blockGold.name=Block of Gold
tile.blockIron.name=Block of Iron
tile.stoneSlab.stone.name=Stone Slab
tile.stoneSlab.sand.name=Sandstone Slab
tile.stoneSlab.wood.name=Wooden Slab
tile.stoneSlab.cobble.name=Cobblestone Slab
tile.stoneSlab.brick.name=Bricks Slab
tile.stoneSlab.smoothStoneBrick.name=Stone Bricks Slab
tile.brick.name=Bricks
tile.tnt.name=TNT
tile.bookshelf.name=Bookshelf
tile.stoneMoss.name=Moss Stone
tile.obsidian.name=Obsidian
tile.torch.name=Torch
tile.fire.name=Fire
tile.mobSpawner.name=Monster Spawner
tile.stairsWood.name=Wooden Stairs
tile.chest.name=Chest
tile.redstoneDust.name=Redstone Dust
tile.oreDiamond.name=Diamond Ore
tile.blockDiamond.name=Block of Diamond
tile.workbench.name=Crafting Table
tile.crops.name=Crops
tile.farmland.name=Farmland
tile.furnace.name=Furnace
tile.sign.name=Sign
tile.doorWood.name=Wooden Door
tile.ladder.name=Ladder
tile.rail.name=Rail
tile.goldenRail.name=Powered Rail
tile.detectorRail.name=Detector Rail
tile.stairsStone.name=Stone Stairs
tile.lever.name=Lever
tile.pressurePlate.name=Pressure Plate
tile.doorIron.name=Iron Door
tile.oreRedstone.name=Redstone Ore
tile.notGate.name=Redstone Torch
tile.button.name=Button
tile.snow.name=Snow
tile.ice.name=Ice
tile.cactus.name=Cactus
tile.clay.name=Clay
tile.reeds.name=Sugar cane
tile.jukebox.name=Jukebox
tile.fence.name=Fence
tile.fenceGate.name=Fence Gate
tile.pumpkin.name=Pumpkin
tile.litpumpkin.name=Jack 'o' Lantern
tile.hellrock.name=Netherrack
tile.hellsand.name=Soul Sand
tile.lightgem.name=Glowstone
tile.portal.name=Portal
tile.cloth.black.name=Black Wool
tile.cloth.red.name=Red Wool
tile.cloth.green.name=Green Wool
tile.cloth.brown.name=Brown Wool
tile.cloth.blue.name=Blue Wool
tile.cloth.purple.name=Purple Wool
tile.cloth.cyan.name=Cyan Wool
tile.cloth.silver.name=Light Gray Wool
tile.cloth.gray.name=Gray Wool
tile.cloth.pink.name=Pink Wool
tile.cloth.lime.name=Lime Wool
tile.cloth.yellow.name=Yellow Wool
tile.cloth.lightBlue.name=Blue Light Wool
tile.cloth.magenta.name=Magenta Wool
tile.cloth.orange.name=Orange Wool
tile.cloth.white.name=Wool
tile.oreLapis.name=Lapis Lazuli Ore
tile.blockLapis.name=Lapis Lazuli Block
tile.dispenser.name=Dispenser
tile.musicBlock.name=Note Block
tile.cake.name=Cake
tile.bed.name=Bed
tile.bed.occupied=This bed is occupied
tile.bed.noSleep=You can only sleep at night
tile.bed.notSafe=You may not rest now, there are monsters nearby
tile.bed.notValid=Your home bed was missing or obstructed
tile.lockedchest.name=Locked chest
tile.trapdoor.name=Trapdoor
tile.web.name=Cobweb
tile.stonebricksmooth.name=Stone Bricks
tile.pistonBase.name=Piston
tile.pistonStickyBase.name=Sticky Piston
tile.fenceIron.name=Iron Bars
tile.melon.name=Melon
tile.stairsBrick.name=Brick Stairs
tile.stairsStoneBrickSmooth.name=Stone Brick Stairs
tile.vine.name=Vines
tile.netherBrick.name=Nether Brick
tile.netherFence.name=Nether Brick Fence
tile.stairsNetherBrick.name=Nether Brick Stairs
tile.netherStalk.name=Nether Wart
tile.cauldron.name=Cauldron
tile.enchantmentTable.name=Enchantment Table
tile.whiteStone.name=End Stone
tile.mycel.name=Mycelium
tile.waterlily.name=Lily Pad
tile.dragonEgg.name=Dragon Egg
tile.redstoneLight.name=Redstone Lamp
tile.glowingobsidian.name=Glowing Obsidian
tile.netherreactor.name=Nether Reactor Core
tile.quartzBlock.name=Block of Quartz
tile.stairsQuartz.name=Quartz Stairs
tile.stairsSandStone.name=Sand Stone Stairs
tile.stonecutter.name=Stonecutter
item.shovelIron.name=Iron Shovel
item.pickaxeIron.name=Iron Pickaxe
item.hatchetIron.name=Iron Axe
item.flintAndSteel.name=Flint and Steel
item.apple.name=Apple
item.cookie.name=Cookie
item.bow.name=Bow
item.arrow.name=Arrow
item.coal.name=Coal
item.charcoal.name=Charcoal
item.emerald.name=Diamond
item.ingotIron.name=Iron Ingot
item.ingotGold.name=Gold Ingot
item.swordIron.name=Iron Sword
item.swordWood.name=Wooden Sword
item.shovelWood.name=Wooden Shovel
item.pickaxeWood.name=Wooden Pickaxe
item.hatchetWood.name=Wooden Axe
item.swordStone.name=Stone Sword
item.shovelStone.name=Stone Shovel
item.pickaxeStone.name=Stone Pickaxe
item.hatchetStone.name=Stone Axe
item.swordDiamond.name=Diamond Sword
item.shovelDiamond.name=Diamond Shovel
item.pickaxeDiamond.name=Diamond Pickaxe
item.hatchetDiamond.name=Diamond Axe
item.stick.name=Stick
item.bowl.name=Bowl
item.mushroomStew.name=Mushroom Stew
item.swordGold.name=Golden Sword
item.shovelGold.name=Golden Shovel
item.pickaxeGold.name=Golden Pickaxe
item.hatchetGold.name=Golden Axe
item.string.name=String
item.feather.name=Feather
item.sulphur.name=Gunpowder
item.hoeWood.name=Wooden Hoe
item.hoeStone.name=Stone Hoe
item.hoeIron.name=Iron Hoe
item.hoeDiamond.name=Diamond Hoe
item.hoeGold.name=Golden Hoe
item.seeds.name=Seeds
item.seeds_pumpkin.name=Pumpkin Seeds
item.seeds_melon.name=Melon Seeds
item.melon.name=Melon
item.wheat.name=Wheat
item.bread.name=Bread
item.helmetCloth.name=Leather Cap
item.chestplateCloth.name=Leather Tunic
item.leggingsCloth.name=Leather Pants
item.bootsCloth.name=Leather Boots
item.helmetChain.name=Chain Helmet
item.chestplateChain.name=Chain Chestplate
item.leggingsChain.name=Chain Leggings
item.bootsChain.name=Chain Boots
item.helmetIron.name=Iron Helmet
item.chestplateIron.name=Iron Chestplate
item.leggingsIron.name=Iron Leggings
item.bootsIron.name=Iron Boots
item.helmetDiamond.name=Diamond Helmet
item.chestplateDiamond.name=Diamond Chestplate
item.leggingsDiamond.name=Diamond Leggings
item.bootsDiamond.name=Diamond Boots
item.helmetGold.name=Golden Helmet
item.chestplateGold.name=Golden Chestplate
item.leggingsGold.name=Golden Leggings
item.bootsGold.name=Golden Boots
item.flint.name=Flint
item.porkchopRaw.name=Raw Porkchop
item.porkchopCooked.name=Cooked Porkchop
item.chickenRaw.name=Raw Chicken
item.chickenCooked.name=Cooked Chicken
item.beefRaw.name=Raw Beef
item.beefCooked.name=Steak
item.painting.name=Painting
item.appleGold.name=Golden Apple
item.sign.name=Sign
item.doorWood.name=Wooden Door
item.bucket.name=Bucket
item.bucketWater.name=Water Bucket
item.bucketLava.name=Lava Bucket
item.minecart.name=Minecart
item.saddle.name=Saddle
item.doorIron.name=Iron Door
item.redstone.name=Redstone
item.snowball.name=Snowball
item.boat.name=Boat
item.leather.name=Leather
item.milk.name=Milk
item.brick.name=Brick
item.clay.name=Clay
item.reeds.name=Sugar Canes
item.paper.name=Paper
item.book.name=Book
item.slimeball.name=Slimeball
item.minecartChest.name=Minecart with Chest
item.minecartFurnace.name=Minecart with Furnace
item.egg.name=Egg
item.compass.name=Compass
item.fishingRod.name=Fishing Rod
item.clock.name=Clock
item.yellowDust.name=Glowstone Dust
item.fishRaw.name=Raw Fish
item.fishCooked.name=Cooked Fish
item.record.name=Music Disc
item.bone.name=Bone
item.dyePowder.black.name=Ink Sac
item.dyePowder.red.name=Rose Red
item.dyePowder.green.name=Cactus Green
item.dyePowder.brown.name=Cocoa Beans
item.dyePowder.blue.name=Lapis Lazuli
item.dyePowder.purple.name=Purple Dye
item.dyePowder.cyan.name=Cyan Dye
item.dyePowder.silver.name=Light Gray Dye
item.dyePowder.gray.name=Gray Dye
item.dyePowder.pink.name=Pink Dye
item.dyePowder.lime.name=Lime Dye
item.dyePowder.yellow.name=Dandelion Yellow
item.dyePowder.lightBlue.name=Light Blue Dye
item.dyePowder.magenta.name=Magenta Dye
item.dyePowder.orange.name=Orange Dye
item.dyePowder.white.name=Bone Meal
item.sugar.name=Sugar
item.cake.name=Cake
item.bed.name=Bed
item.diode.name=Redstone Repeater
item.map.name=Map
item.leaves.name=Leaves
item.shears.name=Shears
item.rottenFlesh.name=Rotten Flesh
item.enderPearl.name=Ender Pearl
item.blazeRod.name=Blaze Rod
item.ghastTear.name=Ghast Tear
item.netherStalkSeeds.name=Nether Wart
item.potion.name=Potion
item.emptyPotion.name=Water Bottle
item.goldNugget.name=Gold Nugget
item.glassBottle.name=Glass Bottle
item.spiderEye.name=Spider Eye
item.fermentedSpiderEye.name=Fermented Spider Eye
item.blazePowder.name=Blaze Powder
item.magmaCream.name=Magma Cream
item.cauldron.name=Cauldron
item.brewingStand.name=Brewing Stand
item.eyeOfEnder.name=Eye of Ender
item.speckledMelon.name=Glistering Melon
item.monsterPlacer.name=Spawn
item.expBottle.name=Bottle o' Enchanting
item.fireball.name=Fire Charge
item.netherbrickItem.name=Nether Brick
item.netherquartz.name=Nether Quartz
container.inventory=Inventory
container.crafting=Crafting
container.dispenser=Dispenser
container.furnace=Furnace
container.enchant=Enchant
container.creative=Item Selection
container.brewing=Brewing Stand
container.chest=Chest
container.minecart=Minecart
entity.Item.name=Item
entity.XPOrb.name=Experience Orb
entity.Arrow.name=Arrow
entity.Snowball.name=Snowball
entity.Painting.name=Painting
entity.Mob.name=Mob
entity.Monster.name=Monster
entity.Creeper.name=Creeper
entity.Skeleton.name=Skeleton
entity.Spider.name=Spider
entity.Giant.name=Giant
entity.Zombie.name=Zombie
entity.Slime.name=Slime
entity.Ghast.name=Ghast
entity.PigZombie.name=Zombie Pigman
entity.Enderman.name=Enderman
entity.Silverfish.name=Silverfish
entity.CaveSpider.name=Cave Spider
entity.Blaze.name=Blaze
entity.LavaSlime.name=Magma Cube
entity.MushroomCow.name=Mooshroom
entity.Villager.name=Villager
entity.VillagerGolem.name=Iron Golem
entity.SnowMan.name=Snow Golem
entity.EnderDragon.name=Ender Dragon
entity.Pig.name=Pig
entity.Sheep.name=Sheep
entity.Cow.name=Cow
entity.Chicken.name=Chicken
entity.Squid.name=Squid
entity.Wolf.name=Wolf
entity.Ozelot.name=Ocelot
entity.Cat.name=Cat
entity.PrimedTnt.name=Block of TNT
entity.FallingSand.name=Falling Block
entity.Minecart.name=Minecart
entity.Boat.name=Boat
entity.Arrow.name=arrow
entity.generic.name=unknown
death.inFire=%1$s went up in flames
death.onFire=%1$s burned to death
death.lava=%1$s tried to swim in lava
death.inWall=%1$s suffocated in a wall
death.drown=%1$s drowned
death.starve=%1$s starved to death
death.cactus=%1$s was pricked to death
death.fall=%1$s hit the ground too hard
death.outOfWorld=%1$s fell out of the world
death.generic=%1$s died
death.explosion=%1$s blew up
death.magic=%1$s was killed by magic
death.mob=%1$s was slain by %2$s
death.player=%1$s was slain by %2$s
death.arrow=%1$s was shot by %2$s
death.fireball=%1$s was fireballed by %2$s
death.thrown=%1$s was pummeled by %2$s
death.indirectMagic=%1$s was killed by %2$s
deathScreen.respawn=Respawn
deathScreen.deleteWorld=Delete world
deathScreen.titleScreen=Title screen
deathScreen.score=Score
deathScreen.title.hardcore=Game over!
deathScreen.hardcoreInfo=You cannot respawn in hardcore mode!
deathScreen.title=You died!
potion.empty=No Effects
potion.moveSpeed=Speed
potion.moveSlowdown=Slowness
potion.digSpeed=Haste
potion.digSlowDown=Mining Fatigue
potion.damageBoost=Strength
potion.weakness=Weakness
potion.heal=Instant Health
potion.harm=Instant Damage
potion.jump=Jump Boost
potion.confusion=Nausea
potion.regeneration=Regeneration
potion.resistance=Resistance
potion.fireResistance=Fire Resistance
potion.waterBreathing=Water Breathing
potion.invisibility=Invisibility
potion.blindness=Blindness
potion.nightVision=Night Vision
potion.hunger=Hunger
potion.poison=Poison
potion.moveSpeed.postfix=Potion of Swiftness
potion.moveSlowdown.postfix=Potion of Slowness
potion.digSpeed.postfix=Potion of Haste
potion.digSlowDown.postfix=Potion of Dullness
potion.damageBoost.postfix=Potion of Strength
potion.weakness.postfix=Potion of Weakness
potion.heal.postfix=Potion of Healing
potion.harm.postfix=Potion of Harming
potion.jump.postfix=Potion of Leaping
potion.confusion.postfix=Potion of Nausea
potion.regeneration.postfix=Potion of Regeneration
potion.resistance.postfix=Potion of Resistance
potion.fireResistance.postfix=Potion of Fire Resistance
potion.waterBreathing.postfix=Potion of Water Breathing
potion.invisibility.postfix=Potion of Invisibility
potion.blindness.postfix=Potion of Blindness
potion.nightVision.postfix=Potion of Night Vision
potion.hunger.postfix=Potion of Hunger
potion.poison.postfix=Potion of Poison
potion.potency.0=
potion.potency.1=II
potion.potency.2=III
potion.potency.3=IV
potion.prefix.grenade=Splash
potion.prefix.mundane=Mundane
potion.prefix.uninteresting=Uninteresting
potion.prefix.bland=Bland
potion.prefix.clear=Clear
potion.prefix.milky=Milky
potion.prefix.diffuse=Diffuse
potion.prefix.artless=Artless
potion.prefix.thin=Thin
potion.prefix.awkward=Awkward
potion.prefix.flat=Flat
potion.prefix.bulky=Bulky
potion.prefix.bungling=Bungling
potion.prefix.buttered=Buttered
potion.prefix.smooth=Smooth
potion.prefix.suave=Suave
potion.prefix.debonair=Debonair
potion.prefix.thick=Thick
potion.prefix.elegant=Elegant
potion.prefix.fancy=Fancy
potion.prefix.charming=Charming
potion.prefix.dashing=Dashing
potion.prefix.refined=Refined
potion.prefix.cordial=Cordial
potion.prefix.sparkling=Sparkling
potion.prefix.potent=Potent
potion.prefix.foul=Foul
potion.prefix.odorless=Odorless
potion.prefix.rank=Rank
potion.prefix.harsh=Harsh
potion.prefix.acrid=Acrid
potion.prefix.gross=Gross
potion.prefix.stinky=Stinky
enchantment.damage.all=Sharpness
enchantment.damage.undead=Smite
enchantment.damage.arthropods=Bane of Arthropods
enchantment.knockback=Knockback
enchantment.fire=Fire Aspect
enchantment.protect.all=Protection
enchantment.protect.fire=Fire Protection
enchantment.protect.fall=Feather Falling
enchantment.protect.explosion=Blast Protection
enchantment.protect.projectile=Projectile Protection
enchantment.oxygen=Respiration
enchantment.waterWorker=Aqua Affinity
enchantment.digging=Efficiency
enchantment.untouching=Silk Touch
enchantment.durability=Unbreaking
enchantment.lootBonus=Looting
enchantment.lootBonusDigger=Fortune
enchantment.arrowDamage=Power
enchantment.arrowFire=Flame
enchantment.arrowKnockback=Punch
enchantment.arrowInfinite=Infinity
enchantment.level.1=I
enchantment.level.2=II
enchantment.level.3=III
enchantment.level.4=IV
enchantment.level.5=V
enchantment.level.6=VI
enchantment.level.7=VII
enchantment.level.8=VIII
enchantment.level.9=IX
enchantment.level.10=X
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
achievement.snipeSkeleton=Sniper Duel
achievement.snipeSkeleton.desc=Kill a skeleton with an arrow from more than 50 meters
achievement.diamonds=DIAMONDS!
achievement.diamonds.desc=Acquire diamonds with your iron tools
achievement.portal=We Need to Go Deeper
achievement.portal.desc=Build a portal to the Nether
achievement.ghast=Return to Sender
achievement.ghast.desc=Destroy a Ghast with a fireball
achievement.blazeRod=Into Fire
achievement.blazeRod.desc=Relieve a Blaze of its rod
achievement.potion=Local Brewery
achievement.potion.desc=Brew a potion
achievement.theEnd=The End?
achievement.theEnd.desc=Locate the End
achievement.theEnd2=The End.
achievement.theEnd2.desc=Defeat the Ender Dragon
achievement.enchantments=Enchanter
achievement.enchantments.desc=Use a book, obsidian and diamonds to construct an enchantment table
achievement.overkill=Overkill
achievement.overkill.desc=Deal eight hearts of damage in a single hit
achievement.bookcase=Librarian
achievement.bookcase.desc=Build some bookshelves to improve your enchantment table
desc.sword=Deals more damage than by hand.
desc.shovel=Used to dig dirt, grass, sand, gravel and snow faster than by hand.
desc.pickaxe=Required to mine stone-related blocks and ore.
desc.hatchet=Used to chop wood-related blocks faster than by hand.
desc.hoe=Used to till dirt and grass blocks to prepare for crops.
desc.doorwood=Wooden doors are activated by using, hitting them or with Redstone.
desc.dooriron=Iron doors can only be opened by Redstone, buttons or switches.
desc.helmet=Gives the user 1.5 Armor when worn.
desc.chestplate=Gives the user 4 Armor when worn.
desc.leggings=Gives the user 3 Armor when worn.
desc.boots=Gives the user 1.5 Armor when worn.
desc.ingot=A shiny ingot which can be used to craft tools made from this material.
desc.block=Used as an expensive building block or compact storage of the ore.
desc.pressureplate=Used to send an electrical charge when stepped on by a player, an animal, or a monster. Wooden Pressure Plates can also be activated by dropping something on them.
desc.stairs=Used for compact staircases.
desc.stairsstonebricksmooth=Used for compact staircases.
desc.stairsnetherbrick=Used for compact staircases.
desc.stairssandstone=Used for compact staircases.
desc.stairsquartzblock=Used for compact staircases.
desc.slab=Used for making long staircases.
desc.halfslab=Used for compact staircases.
desc.torch=Used to create light. Torches also melt snow and ice.
desc.wood=Used as a building material and can be crafted into many things. Can be crafted from any wood.
desc.sandstone=Used as a building material.
desc.sandstone.addon=Is not influenced by gravity like normal Sand.
desc.structblock=Used as a building material.
desc.stick=Used to craft torches, arrows, signs, ladders, fences and as handles for tools and weapons.
desc.bed=Used to sleep until dawn. Changes your spawn point to the bed's position.
desc.craftingtable=Allows you to craft a more varied selection of items than the normal crafting.
desc.furnace=Allows you to smelt ore, create charcoal and glass, and cook fish and porkchops.
desc.chest=Stores blocks and items inside.
desc.fence=Used as a barrier that cannot be jumped over.
desc.ladder=Used to climb vertically.
desc.trapdoor=Work like normal doors, but are a one by one block and lay flat on the ground.
desc.sign=Shows text entered by you or other players.
desc.glowstone=Used to create brighter light than torches. Melts snow/ice and can be used underwater.
desc.tnt=Used to cause explosions. Activated after placing by hitting, or with an electrical charge.
desc.bowl=Used to hold mushroom stew. You keep the bowl when the stew has been eaten.
desc.bucket=Used to hold and transport water, lava and milk.
desc.flintandsteel=Used to detonate TNT.
desc.fishingrod=Used to catch fish.
desc.clock=Displays positions of the Sun and Moon.
desc.compass=Points to your start point.
desc.map=Will create an image of an area explored while held. This can be used for path-finding.
desc.bow=Allows for ranged attacks by using arrows.
desc.arrow=Used as ammunition for bows.
desc.mushroomstew=Restores 5 hearts.
desc.cookie=Restores 0.5 Hearts. Can be stacked up to 8 times.
desc.cake=Restores 1.5 Hearts. Can be used 6 times.
desc.sugar=Used in the cake recipe.
desc.bread=Restores 2.5 Hearts.
desc.goldenapple=Restores 10 Hearts.
desc.lever=Used to send an electrical charge by being turned on or off. Stays in the on or off state until pressed again.
desc.redstonetorch=Constantly sends an electrical charge, or can be used as a receiver/transmitter when connected to the side of a block.
Can also be used for low-level lighting.
desc.redstonerepeater=Used in Redstone circuits as repeater, a delayer, and/or a diode
desc.button=Used to send an electrical charge by being pressed. Stays activated for approximately a second before shutting off again.
desc.dispenser=Used to hold and shoot out items in a random order when given a Redstone charge.
desc.noteblock=Plays a note when triggered. Hit it to change the pitch of the note. Placing this on top of different blocks will change the type of instrument.
desc.rail=Used to guide minecarts.
desc.poweredrail=When powered, accelerates minecarts that pass over it. When unpowered, causes minecarts to stop on it.
desc.detectorrail=Functions like a Pressure Plate (sends a Redstone signal when powered) but can only be activated by a minecart.
desc.minecart=Used to transport you, an animal, or a monster along rails.
desc.minecartwithchest=Used to transport goods along rails.
desc.minecartwithfurnace=Will move along rails and can push other minecarts when coal is put in it.
desc.boat=Used to travel in water more quickly than swimming.
desc.wool=Collected from sheep, and can be colored with dyes.
desc.woolstring=Used as a building material and can be colored with dyes. Can be easily obtained from Sheep.
desc.dyepowder.black=Used as a dye to create black wool.
desc.dyepowder.green=Used as a dye to create green wool.
desc.dyepowder.brown=Used as a dye to create brown wool.
desc.dyepowder.silver=Used as a dye to create silver wool.
desc.dyepowder.yellow=Used as a dye to create yellow wool.
desc.dyepowder.red=Used as a dye to create red wool.
desc.dyepowder.white=Used to instantly grow crops and flowers. Can be used in dye recipes.
desc.dyepowder.pink=Used as a dye to create pink wool.
desc.dyepowder.orange=Used as a dye to create orange wool.
desc.dyepowder.lime=Used as a dye to create lime wool.
desc.dyepowder.gray=Used as a dye to create gray wool.
desc.dyepowder.lightgray=Used as a dye to create light gray wool.
(Note: light gray dye can also be made by combining gray dye with bone meal, letting you make four light gray dyes from every ink sac instead of three.)
desc.dyepowder.lightblue=Used as a dye to create light blue wool.
desc.dyepowder.cyan=Used as a dye to create cyan wool.
desc.dyepowder.purple=Used as a dye to create purple wool.
desc.dyepowder.magenta=Used as a dye to create magenta wool.
desc.dyepowder.blue=Used as dye to create Blue Wool.
desc.jukebox=Plays Music Discs.
desc.diamonds=Use these to create very strong tools, weapons or armor
desc.emerald=Use these to create very strong tools, weapons or armor
desc.jackolantern=Used to create brighter light than torches. Melts snow/ice and can be used underwater.
desc.paper=Used to create books and maps.
desc.book=Used to create a bookshelf.
desc.bookshelf=Used as decoration.
desc.picture=Used as decoration.
desc.ore_gold=Can be mined with an iron pickaxe or better, then smelted in a furnace to produce gold ingots.
desc.ore_iron=Can be mined with a stone pickaxe or better, then smelted in a furnace to produce iron ingots.
desc.ore_coal=Can be mined with a pickaxe to collect coal.
desc.ore_lapis=Can be mined with a stone pickaxe or better to collect lapis lazuli.
desc.ore_diamond=Can be mined with an iron pickaxe or better to collect diamonds.
desc.ore_redstone=Can be mined with an iron pickaxe or better to collect redstone dust.
desc.stone=Can be mined with a pickaxe to collect cobblestone.
desc.dirt=Collected using a shovel. Can be used for construction.
desc.sapling=Can be planted and it will eventually grow into a tree.
desc.bedrock=This cannot be broken.
desc.lava=Sets fire to anything that touches it. Can be collected in a bucket.
desc.sand=Collected using a shovel. Can be smelted into glass using the furnace. Is affected by gravity if there is no other tile underneath it.
desc.gravel=Collected using a shovel. Sometimes produces flint when dug up. Is affected by gravity if there is no other tile underneath it.
desc.log=Chopped using an axe, and can be crafted into planks or used as a fuel.
desc.glass=Created in a furnace by smelting sand. Will break if you try to mine it.
desc.thinglass=Will break if you try to mine it.
desc.stone_brick=Mined from stone using a pickaxe. Can be used to construct a furnace or stone tools.
desc.brick=Baked from clay in a furnace.
desc.clay=Can be baked into bricks in a furnace.
desc.snow=A compact way to store snowballs.
desc.top_snow=Can be dug with a shovel to create snowballs.
desc.tall_grass=Sometimes produces seeds when broken.
desc.flower=Can be crafted into a dye.
desc.mushroom=Can be crafted with a bowl to make stew.
desc.obsidian=Can only be mined with a diamond pickaxe. Is produced by the meeting of water and still lava, and is used to build a portal.
desc.mob_spawner=Spawns monsters into the world.
desc.redstone_dust=Is placed on the ground to carry an electrical charge.
desc.crops=When fully grown, crops can be harvested to collect wheat.
desc.farmland=Ground that has been prepared ready to plant seeds.
desc.cactus=Can be crafted to create a dye.
desc.reeds=Can be crafted to create sugar.
desc.pumpkin=Can be worn as a helmet or crafted with a torch to create a Jack-O-Lantern.
desc.hell_rock=Burns forever if set alight.
desc.hell_sand=Slows the movement of anything walking over it.
desc.portal=Standing in the portal allows you to pass between the overworld and the nether.
desc.apple=Restores health, and can be crafted into a golden apple.
desc.melon=Can be broken into melon slices.
desc.coal=Used as a fuel in a furnace, or crafted to make a torch.
desc.string=Collected by killing a spider, and can be crafted into a bow.
desc.feather=Collected by killing a chicken, and can be crafted into an arrow.
desc.sulphur=Collected by killing a creeper, and can be crafted into TNT.
desc.shears=Used to obtain wool from sheep and to harvest placeable Leaf blocks.
desc.seeds=Can be planted in farmland to grow crops.
desc.wheat=Harvested from crops, and can be used to craft food items.
desc.flint=Collected by digging gravel, and can be used to craft a flint and steel.
desc.porkchopraw=Collected by killing a pig, and can be cooked in a furnace. Restores health.
desc.porkchopcooked=Created by cooking a porkchop in a furnace. Restores health.
desc.beefraw=Collected by killing a cow, and can be cooked in a furnace. Restores health.
desc.beefcooked=Created by cooking a beef in a furnace. Restores health.
desc.chickenraw=Collected by killing a chicken, and can be cooked in a furnace. Restores health.
desc.chickencooked=Created by cooking a chicken in a furnace. Restores health.
desc.saddle=When used on a pig it allows you to ride the pig.
desc.snowball=Collected by digging snow, and can be thrown.
desc.leather=Collected by killing a cow, and can be crafted into armor.
desc.slimeball=Collected by killing a slime.
desc.egg=Dropped randomly by chickens, and can be crafted into food items.
desc.yellow_dust=Collected by mining Glowstone, and can be crafted to make Glowstone blocks again.
desc.fish_raw=Can be eaten to restore health, or cooked in a furnace.
desc.fish_cooked=Created by cooking a raw fish in a furnace. Can be eaten to restore health.
desc.bone=Collected by killing a skeleton. Can be crafted into bone meal.
desc.record=Collected by getting a skeleton to kill a creeper. Can be played in a jukebox.
desc.water=Extinguishes fire and helps crops grow. Can be collected in a bucket.
desc.leaves=When broken sometimes drops a sapling which can then be replanted to grow into a tree.
desc.moss_stone=Can be used for construction and decoration.
desc.stonebricksmooth=Used as building material.
desc.netherreactor=Core of the Nether Reactor
desc.glowingobsidian=Obsidion activated by external source.
desc.lightgem=Used for illumination.
desc.painting=Used as decoration.
desc.hellrock=Is a stone material from the Nether.
desc.netherbrick=Construction block made from Nether bricks.
desc.netherbrickitem=Used to form blocks of Nether bricks.
desc.netherquartz=Quartz from the Nether, used to create Blocks of Quartz.
desc.quartzblock=Decorative block, used to create other kinds of Quartz blocks.
desc.stonecutter=For crafting stoneblocks.
desc.seedsmelon=Allows for more melons.
desc.tile.melon=Can be cut up and eaten.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

View File

@@ -0,0 +1,14 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-9
android.library=false
proguard.config=proguard.cfg
android.library.reference.1=../lib_projects/market_licensing/library

267
project/android/jni/Android.mk Executable file
View File

@@ -0,0 +1,267 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := minecraftpe
LOCAL_SRC_FILES := ../../../src/main.cpp \
../../../src/main_android.cpp \
../../../src/platform/audio/SoundSystemSL.cpp \
../../../src/platform/input/Controller.cpp \
../../../src/platform/input/Keyboard.cpp \
../../../src/platform/input/Mouse.cpp \
../../../src/platform/input/Multitouch.cpp \
../../../src/platform/time.cpp \
../../../src/platform/CThread.cpp \
../../../src/NinecraftApp.cpp \
../../../src/Performance.cpp \
../../../src/SharedConstants.cpp \
../../../src/client/IConfigListener.cpp \
../../../src/client/Minecraft.cpp \
../../../src/client/MouseHandler.cpp \
../../../src/client/Options.cpp \
../../../src/client/OptionsFile.cpp \
../../../src/client/OptionStrings.cpp \
../../../src/client/gamemode/GameMode.cpp \
../../../src/client/gamemode/CreativeMode.cpp \
../../../src/client/gamemode/SurvivalMode.cpp \
../../../src/client/gui/components/Button.cpp \
../../../src/client/gui/components/GuiElement.cpp \
../../../src/client/gui/components/GuiElementContainer.cpp \
../../../src/client/gui/components/ImageButton.cpp \
../../../src/client/gui/components/ItemPane.cpp \
../../../src/client/gui/components/InventoryPane.cpp \
../../../src/client/gui/components/LargeImageButton.cpp \
../../../src/client/gui/components/NinePatch.cpp \
../../../src/client/gui/components/OptionsGroup.cpp \
../../../src/client/gui/components/OptionsItem.cpp \
../../../src/client/gui/components/OptionsPane.cpp \
../../../src/client/gui/components/RolledSelectionListH.cpp \
../../../src/client/gui/components/RolledSelectionListV.cpp \
../../../src/client/gui/components/ScrolledSelectionList.cpp \
../../../src/client/gui/components/ScrollingPane.cpp \
../../../src/client/gui/components/Slider.cpp \
../../../src/client/gui/components/SmallButton.cpp \
../../../src/client/gui/Font.cpp \
../../../src/client/gui/Gui.cpp \
../../../src/client/gui/GuiComponent.cpp \
../../../src/client/gui/Screen.cpp \
../../../src/client/gui/screens/ScreenChooser.cpp \
../../../src/client/gui/screens/ArmorScreen.cpp \
../../../src/client/gui/screens/ChatScreen.cpp \
../../../src/client/gui/screens/ConfirmScreen.cpp \
../../../src/client/gui/screens/ChestScreen.cpp \
../../../src/client/gui/screens/DeathScreen.cpp \
../../../src/client/gui/screens/FurnaceScreen.cpp \
../../../src/client/gui/screens/InBedScreen.cpp \
../../../src/client/gui/screens/IngameBlockSelectionScreen.cpp \
../../../src/client/gui/screens/JoinGameScreen.cpp \
../../../src/client/gui/screens/OptionsScreen.cpp \
../../../src/client/gui/screens/PauseScreen.cpp \
../../../src/client/gui/screens/ProgressScreen.cpp \
../../../src/client/gui/screens/RenameMPLevelScreen.cpp \
../../../src/client/gui/screens/SelectWorldScreen.cpp \
../../../src/client/gui/screens/StartMenuScreen.cpp \
../../../src/client/gui/screens/TextEditScreen.cpp \
../../../src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.cpp \
../../../src/client/gui/screens/touch/TouchJoinGameScreen.cpp \
../../../src/client/gui/screens/touch/TouchSelectWorldScreen.cpp \
../../../src/client/gui/screens/touch/TouchStartMenuScreen.cpp \
../../../src/client/gui/screens/UploadPhotoScreen.cpp \
../../../src/client/gui/screens/crafting/CraftingFilters.cpp \
../../../src/client/gui/screens/crafting/PaneCraftingScreen.cpp \
../../../src/client/gui/screens/crafting/StonecutterScreen.cpp \
../../../src/client/gui/screens/crafting/WorkbenchScreen.cpp \
../../../src/client/model/ChickenModel.cpp \
../../../src/client/model/CowModel.cpp \
../../../src/client/model/HumanoidModel.cpp \
../../../src/client/model/PigModel.cpp \
../../../src/client/model/SheepFurModel.cpp \
../../../src/client/model/SheepModel.cpp \
../../../src/client/model/QuadrupedModel.cpp \
../../../src/client/model/geom/Cube.cpp \
../../../src/client/model/geom/ModelPart.cpp \
../../../src/client/model/geom/Polygon.cpp \
../../../src/client/particle/Particle.cpp \
../../../src/client/particle/ParticleEngine.cpp \
../../../src/client/player/LocalPlayer.cpp \
../../../src/client/player/RemotePlayer.cpp \
../../../src/client/player/input/KeyboardInput.cpp \
../../../src/client/player/input/touchscreen/TouchscreenInput.cpp \
../../../src/client/renderer/Chunk.cpp \
../../../src/client/renderer/EntityTileRenderer.cpp \
../../../src/client/renderer/GameRenderer.cpp \
../../../src/client/renderer/ItemInHandRenderer.cpp \
../../../src/client/renderer/LevelRenderer.cpp \
../../../src/client/renderer/RenderChunk.cpp \
../../../src/client/renderer/RenderList.cpp \
../../../src/client/renderer/Tesselator.cpp \
../../../src/client/renderer/Textures.cpp \
../../../src/client/renderer/TileRenderer.cpp \
../../../src/client/renderer/gles.cpp \
../../../src/client/renderer/culling/Frustum.cpp \
../../../src/client/renderer/entity/ArrowRenderer.cpp \
../../../src/client/renderer/entity/ChickenRenderer.cpp \
../../../src/client/renderer/entity/EntityRenderDispatcher.cpp \
../../../src/client/renderer/entity/EntityRenderer.cpp \
../../../src/client/renderer/entity/FallingTileRenderer.cpp \
../../../src/client/renderer/entity/HumanoidMobRenderer.cpp \
../../../src/client/renderer/entity/ItemRenderer.cpp \
../../../src/client/renderer/entity/ItemSpriteRenderer.cpp \
../../../src/client/renderer/entity/MobRenderer.cpp \
../../../src/client/renderer/entity/PaintingRenderer.cpp \
../../../src/client/renderer/entity/PlayerRenderer.cpp \
../../../src/client/renderer/entity/SheepRenderer.cpp \
../../../src/client/renderer/entity/TntRenderer.cpp \
../../../src/client/renderer/entity/TripodCameraRenderer.cpp \
../../../src/client/renderer/ptexture/DynamicTexture.cpp \
../../../src/client/renderer/tileentity/ChestRenderer.cpp \
../../../src/client/renderer/tileentity/SignRenderer.cpp \
../../../src/client/renderer/tileentity/TileEntityRenderDispatcher.cpp \
../../../src/client/renderer/tileentity/TileEntityRenderer.cpp \
../../../src/client/sound/Sound.cpp \
../../../src/client/sound/SoundEngine.cpp \
../../../src/locale/I18n.cpp \
../../../src/nbt/Tag.cpp \
../../../src/network/command/CommandServer.cpp \
../../../src/network/ClientSideNetworkHandler.cpp \
../../../src/network/NetEventCallback.cpp \
../../../src/network/Packet.cpp \
../../../src/network/RakNetInstance.cpp \
../../../src/network/ServerSideNetworkHandler.cpp \
../../../src/server/ServerLevel.cpp \
../../../src/server/ServerPlayer.cpp \
../../../src/util/DataIO.cpp \
../../../src/util/Mth.cpp \
../../../src/util/StringUtils.cpp \
../../../src/util/PerfTimer.cpp \
../../../src/util/PerfRenderer.cpp \
../../../src/world/Direction.cpp \
../../../src/world/entity/AgableMob.cpp \
../../../src/world/entity/Entity.cpp \
../../../src/world/entity/EntityFactory.cpp \
../../../src/world/entity/FlyingMob.cpp \
../../../src/world/entity/HangingEntity.cpp \
../../../src/world/entity/Mob.cpp \
../../../src/world/entity/MobCategory.cpp \
../../../src/world/entity/Motive.cpp \
../../../src/world/entity/Painting.cpp \
../../../src/world/entity/PathfinderMob.cpp \
../../../src/world/entity/SynchedEntityData.cpp \
../../../src/world/entity/ai/control/MoveControl.cpp \
../../../src/world/entity/animal/Animal.cpp \
../../../src/world/entity/animal/Chicken.cpp \
../../../src/world/entity/animal/Cow.cpp \
../../../src/world/entity/animal/Pig.cpp \
../../../src/world/entity/animal/Sheep.cpp \
../../../src/world/entity/animal/WaterAnimal.cpp \
../../../src/world/entity/item/FallingTile.cpp \
../../../src/world/entity/item/ItemEntity.cpp \
../../../src/world/entity/item/PrimedTnt.cpp \
../../../src/world/entity/item/TripodCamera.cpp \
../../../src/world/entity/monster/Creeper.cpp \
../../../src/world/entity/monster/Monster.cpp \
../../../src/world/entity/monster/PigZombie.cpp \
../../../src/world/entity/monster/Skeleton.cpp \
../../../src/world/entity/monster/Spider.cpp \
../../../src/world/entity/monster/Zombie.cpp \
../../../src/world/entity/projectile/Arrow.cpp \
../../../src/world/entity/projectile/Throwable.cpp \
../../../src/world/entity/player/Inventory.cpp \
../../../src/world/entity/player/Player.cpp \
../../../src/world/food/SimpleFoodData.cpp \
../../../src/world/inventory/BaseContainerMenu.cpp \
../../../src/world/inventory/ContainerMenu.cpp \
../../../src/world/inventory/FillingContainer.cpp \
../../../src/world/inventory/FurnaceMenu.cpp \
../../../src/world/item/ArmorItem.cpp \
../../../src/world/item/BedItem.cpp \
../../../src/world/item/DyePowderItem.cpp \
../../../src/world/item/Item.cpp \
../../../src/world/item/ItemInstance.cpp \
../../../src/world/item/HangingEntityItem.cpp \
../../../src/world/item/HatchetItem.cpp \
../../../src/world/item/HoeItem.cpp \
../../../src/world/item/PickaxeItem.cpp \
../../../src/world/item/ShovelItem.cpp \
../../../src/world/item/crafting/ArmorRecipes.cpp \
../../../src/world/item/crafting/Recipe.cpp \
../../../src/world/item/crafting/Recipes.cpp \
../../../src/world/item/crafting/FurnaceRecipes.cpp \
../../../src/world/item/crafting/OreRecipes.cpp \
../../../src/world/item/crafting/StructureRecipes.cpp \
../../../src/world/item/crafting/ToolRecipes.cpp \
../../../src/world/item/crafting/WeaponRecipes.cpp \
../../../src/world/level/Explosion.cpp \
../../../src/world/level/Level.cpp \
../../../src/world/level/LightLayer.cpp \
../../../src/world/level/LightUpdate.cpp \
../../../src/world/level/MobSpawner.cpp \
../../../src/world/level/Region.cpp \
../../../src/world/level/TickNextTickData.cpp \
../../../src/world/level/biome/Biome.cpp \
../../../src/world/level/biome/BiomeSource.cpp \
../../../src/world/level/chunk/LevelChunk.cpp \
../../../src/world/level/dimension/Dimension.cpp \
../../../src/world/level/levelgen/CanyonFeature.cpp \
../../../src/world/level/levelgen/DungeonFeature.cpp \
../../../src/world/level/levelgen/LargeCaveFeature.cpp \
../../../src/world/level/levelgen/LargeFeature.cpp \
../../../src/world/level/levelgen/RandomLevelSource.cpp \
../../../src/world/level/levelgen/feature/Feature.cpp \
../../../src/world/level/levelgen/synth/ImprovedNoise.cpp \
../../../src/world/level/levelgen/synth/PerlinNoise.cpp \
../../../src/world/level/levelgen/synth/Synth.cpp \
../../../src/world/level/material/Material.cpp \
../../../src/world/level/pathfinder/Path.cpp \
../../../src/world/level/storage/ExternalFileLevelStorage.cpp \
../../../src/world/level/storage/ExternalFileLevelStorageSource.cpp \
../../../src/world/level/storage/FolderMethods.cpp \
../../../src/world/level/storage/LevelData.cpp \
../../../src/world/level/storage/LevelStorageSource.cpp \
../../../src/world/level/storage/RegionFile.cpp \
../../../src/world/level/tile/BedTile.cpp \
../../../src/world/level/tile/ChestTile.cpp \
../../../src/world/level/tile/CropTile.cpp \
../../../src/world/level/tile/DoorTile.cpp \
../../../src/world/level/tile/EntityTile.cpp \
../../../src/world/level/tile/FurnaceTile.cpp \
../../../src/world/level/tile/GrassTile.cpp \
../../../src/world/level/tile/HeavyTile.cpp \
../../../src/world/level/tile/LightGemTile.cpp \
../../../src/world/level/tile/MelonTile.cpp \
../../../src/world/level/tile/Mushroom.cpp \
../../../src/world/level/tile/NetherReactor.cpp \
../../../src/world/level/tile/NetherReactorPattern.cpp \
../../../src/world/level/tile/StairTile.cpp \
../../../src/world/level/tile/StemTile.cpp \
../../../src/world/level/tile/StoneSlabTile.cpp \
../../../src/world/level/tile/TallGrass.cpp \
../../../src/world/level/tile/Tile.cpp \
../../../src/world/level/tile/TrapDoorTile.cpp \
../../../src/world/level/tile/entity/ChestTileEntity.cpp \
../../../src/world/level/tile/entity/NetherReactorTileEntity.cpp \
../../../src/world/level/tile/entity/SignTileEntity.cpp \
../../../src/world/level/tile/entity/TileEntity.cpp \
../../../src/world/level/tile/entity/FurnaceTileEntity.cpp \
../../../src/world/phys/HitResult.cpp
LOCAL_CFLAGS := -Wno-psabi $(LOCAL_CFLAGS)
#LOCAL_CFLAGS := -DANDROID_PUBLISH -DDEMO_MODE $(LOCAL_CFLAGS)
#LOCAL_CFLAGS := -DANDROID_PUBLISH $(LOCAL_CFLAGS)
#LOCAL_CFLAGS := -DDEMO_MODE -DGLDEBUG $(LOCAL_CFLAGS)
#LOCAL_CFLAGS := -DGLDEBUG $(LOCAL_CFLAGS)
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM -lOpenSLES
LOCAL_STATIC_LIBRARIES := android_native_app_glue RakNet
#LOCAL_CPP_FEATURES := exceptions
TARGET_ARCH_ABI := armeabi-v7a
include $(BUILD_SHARED_LIBRARY)
# NOTE: environment var NDK_MODULE_PATH needs to point to lib_projects folder
$(call import-module,android/native_app_glue)
$(call import-module, raknet/jni)

View File

@@ -0,0 +1,5 @@
APP_PLATFORM := android-9
APP_STL := stlport_static
APP_OPTIM := release
APP_ABI := armeabi-v7a
#APP_ABI := armeabi-v7a x86

68
project/android/proguard.cfg Executable file
View File

@@ -0,0 +1,68 @@
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-printseeds
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class com.mojang.minecraftpe.GameModeButton
-keep public class com.mojang.android.StringValue
-keep public class * extends android.app.Activity
-keep public class * extends com.mojang.minecraftpe.MainActivity
-keep public class * extends MainActivity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService
-keep,allowobfuscation class com.mojang.** { *** *(...); }
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * extends android.app.Activity {
static public void saveScreenshot(java.lang.String, int, int, int[]);
public int[] getImageData(java.lang.String);
public byte[] getFileDataBytes(java.lang.String);
public java.lang.String getPlatformStringVar(int);
public int getScreenWidth();
public int getScreenHeight();
public float getPixelsPerMillimeter();
public int checkLicense();
public boolean isNetworkEnabled(boolean);
public java.lang.String getDateString(int);
public boolean hasBuyButtonWhenInvalidLicense();
public void postScreenshotToFacebook(java.lang.String, int, int, int[]);
public int getKeyFromKeyCode(int, int, int);
public void quit();
public void displayDialog(int);
public void tick();
public java.lang.String[] getOptionStrings();
public void buyGame();
public boolean isTouchscreen();
public void setIsPowerVR(boolean);
public void initiateUserInput(int);
public int getUserInputStatus();
public java.lang.String[] getUserInputString();
public void vibrate(int);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

View File

@@ -0,0 +1,4 @@
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/bg32"
android:tileMode="repeat"
android:dither="false" />

View File

@@ -0,0 +1,5 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/cancel_1_3"
android:state_pressed="true" />
<item android:drawable="@drawable/cancel_0_3" />
</selector>

View File

@@ -0,0 +1,5 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/create_1_3"
android:state_pressed="true" />
<item android:drawable="@drawable/create_0_3" />
</selector>

View File

@@ -0,0 +1,5 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/survival_3" />
<item android:drawable="@drawable/creative_3" />
</selector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" android:background="@drawable/bgtiled">
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="18"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="0" >
<ImageButton
android:id="@+id/button_createworld_cancel"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="@drawable/btn_nw_cancel" />
<ImageButton
android:id="@+id/header_createworld_worldname"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="7"
android:background="@drawable/worldname_3" />
<ImageButton
android:id="@+id/button_createworld_create"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="@drawable/btn_nw_create" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" android:layout_marginBottom="20dp">
<View
android:id="@+id/View01"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25" />
<com.mojang.android.EditTextAscii
android:id="@+id/editText_worldName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.50"
android:gravity="center_horizontal"
android:text="@string/createworld_new_world"
android:typeface="monospace" >
<requestFocus />
</com.mojang.android.EditTextAscii>
<View
android:id="@+id/view1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout4"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_horizontal">
<com.mojang.minecraftpe.GameModeButton
android:id="@+id/button_gameMode"
android:layout_width="173dp"
android:layout_height="46dp"
android:background="@drawable/btngamemode"
android:text="Button" android:textOff=" " android:textOn=" "/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:paddingBottom="20dp" >
<TextView
android:id="@+id/labelGameModeDesc"
android:text="@string/gamemode_survival_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:typeface="monospace"/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/createworld_seed" android:typeface="monospace"/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<View
android:id="@+id/View03"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25" />
<EditText
android:id="@+id/editText_worldSeed"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:singleLine="true"
android:typeface="monospace" android:gravity="center_horizontal"/>
<View
android:id="@+id/View02"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="0dp"
>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageButton
android:id="@+id/ImageButton1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="3"
android:src="@drawable/btn_nw_cancel" />
<ImageButton
android:id="@+id/ImageButton1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:layout_margin="0dp"
android:layout_weight="7"
/>
<ImageButton
android:id="@+id/ImageButton1"

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="500px"
android:layout_height="fill_parent"
>
<EditText android:id="@+id/editText1"
android:text=""
android:layout_width="fill_parent"
android:layout_height="60dp"
android:singleLine="true">
</EditText>
<View
android:layout_width="fill_parent"
android:layout_height="10px">
</View>
<LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/linearLayout1">
<Button android:layout_height="wrap_content"
android:layout_width="0px"
android:id="@+id/button2"
android:text="OK"
android:layout_weight=".5">
</Button>
<Button android:layout_height="wrap_content"
android:layout_width="0px"
android:id="@+id/button1"
android:text="Cancel"
android:layout_weight=".5">
</Button>
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bgtiled"
android:tileMode="repeat" >
<TextView android:text="Multiplayer username"
android:layout_width="540px"
android:layout_height="24dp" />
<EditText android:id="@+id/editText_options_mpusername"
android:text=""
android:layout_width="fill_parent"
android:layout_height="48dp"
android:singleLine="true"
android:inputType="textNoSuggestions"
>
</EditText>
</LinearLayout>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bgtiled"
android:tileMode="repeat"
android:gravity="center_horizontal"
>
<TextView android:text = "@string/renameworld_title"
android:layout_width="360dp"
android:layout_height="24dp"
android:typeface="monospace"
/>
<com.mojang.android.EditTextAscii
android:id="@+id/editText_worldNameRename"
android:text="@string/renameworld_saved_world"
android:layout_width="360dp"
android:layout_height="48dp"
android:singleLine="true"
android:typeface="monospace"
android:maxLength="64"
android:imeActionLabel="Ok"
android:inputType="textNoSuggestions"
android:imeOptions="actionDone" />
<View
android:layout_width="360dp"
android:layout_height="10px" />
</LinearLayout>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Minecraft - Pocket Edition</string>
<string name="app_name_demo">Minecraft - Pocket Edition Demo</string>
<string name="xperiaplayoptimized_content">true</string>
<string name="app_name_short">Minecraft PE</string>
<string name="app_name_short_demo">Minecraft PE Demo</string>
<!-- CREATE NEW WORLD -->
<string name="createworld_name">World name</string>
<string name="createworld_new_world">Unnamed world</string>
<string name="createworld_seed">World Generator seed. Leave blank for random.</string>
<string name="createworld_seed_info">Leave blank for random seed</string>
<string name="gamemode_survival_summary">Mobs, health and gather resources</string>
<string name="gamemode_creative_summary">Unlimited resources and flying</string>
<!-- RENAME WORLD -->
<string name="renameworld_title">Save world as</string>
<string name="renameworld_saved_world">Saved World</string>
<!-- MAIN MENU OPTIONS -->
<string name="mmoptions_mp_username_title">Username</string>
<string name="mmoptions_mp_username_dialog">Enter your username</string>
<string name="mmoptions_mp_server_visible_default_title">Server visible by default</string>
<string name="mmoptions_ctrl_sensitivity_title">Sensitivity</string>
<string name="mmoptions_ctrl_invertmouse_title">Invert Y-axis</string>
<string name="mmoptions_ctrl_islefthanded_title">Lefty</string>
<string name="mmoptions_ctrl_usetouchscreen_title">Use touch screen</string>
<string name="mmoptions_ctrl_usetouchjoypad_title">Split touch controls</string>
<string name="mmoptions_feedback_vibration_title">Vibration</string>
<string name="mmoptions_feedback_vibration_summary">Slight vibration when blocks are destroyed</string>
<string name="mmoptions_gfx_fancygraphics_title">Fancy graphics</string>
<string name="mmoptions_gfx_fancygraphics_summary"></string>
<string name="mmoptions_gfx_fancygraphics_summary_powervr"></string>
<string name="mmoptions_gfx_lowquality_title">Lower graphics quality</string>
<string name="mmoptions_gfx_lowquality_summary">Shorter view distance and disables fancy rendering</string>
<string name="mmoptions_game_difficultypeaceful_title">Peaceful mode</string>
<string name="mmoptions_game_difficultypeaceful_summary">No hostile mobs, heal automatically</string>
</resources>

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="Multiplayer">
<EditTextPreference
android:key="mp_username"
android:title="@string/mmoptions_mp_username_title"
android:summary=""
android:dialogTitle="@string/mmoptions_mp_username_dialog"
android:defaultValue="Steve"
android:singleLine="true" />
<CheckBoxPreference
android:key="mp_server_visible_default"
android:title="@string/mmoptions_mp_server_visible_default_title"
android:summary=""
android:defaultValue="true"
/>
</PreferenceCategory>
<PreferenceCategory
android:key="category_graphics"
android:title="Graphics">
<CheckBoxPreference
android:key="gfx_fancygraphics"
android:title="@string/mmoptions_gfx_fancygraphics_title"
android:summary="@string/mmoptions_gfx_fancygraphics_summary"
android:defaultValue="false"
/>
<CheckBoxPreference
android:key="gfx_lowquality"
android:title="@string/mmoptions_gfx_lowquality_title"
android:summary="@string/mmoptions_gfx_lowquality_summary"
android:defaultValue="false"
/>
</PreferenceCategory>
<PreferenceCategory
android:title="Controls">
<com.mojang.android.preferences.SliderPreference
android:key="ctrl_sensitivity"
android:title="@string/mmoptions_ctrl_sensitivity_title"
android:max="100"
android:summary=""
android:defaultValue="50"
android:enabled="true"
/>
<CheckBoxPreference
android:key="ctrl_invertmouse"
android:title="@string/mmoptions_ctrl_invertmouse_title"
android:summary=""
android:defaultValue="false"
android:enabled="true"
/>
<CheckBoxPreference
android:key="ctrl_islefthanded"
android:title="@string/mmoptions_ctrl_islefthanded_title"
android:summary=""
android:defaultValue="false"
android:enabled="true"
/>
<CheckBoxPreference
android:key="ctrl_usetouchscreen"
android:title="@string/mmoptions_ctrl_usetouchscreen_title"
android:summary=""
android:defaultValue="true"
android:enabled="false"
/>
<CheckBoxPreference
android:key="ctrl_usetouchjoypad"
android:title="@string/mmoptions_ctrl_usetouchjoypad_title"
android:summary=""
android:defaultValue="false"
android:enabled="true"
/>
</PreferenceCategory>
<PreferenceCategory
android:title="Feedback">
<CheckBoxPreference
android:key="feedback_vibration"
android:title="@string/mmoptions_feedback_vibration_title"
android:summary="@string/mmoptions_feedback_vibration_summary"
android:defaultValue="true"
android:enabled="true"
/>
</PreferenceCategory>
<PreferenceCategory
android:title="Game">
<CheckBoxPreference
android:key="game_difficultypeaceful"
android:title="@string/mmoptions_game_difficultypeaceful_title"
android:summary="@string/mmoptions_game_difficultypeaceful_summary"
android:defaultValue="false"
/>
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -0,0 +1,58 @@
package com.mojang.android;
import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.widget.EditText;
public class EditTextAscii extends EditText
implements TextWatcher {
public EditTextAscii(Context context) {
super(context);
_init();
}
public EditTextAscii(Context context, AttributeSet attrs) {
super(context, attrs);
_init();
}
public EditTextAscii(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
_init();
}
private void _init() {
this.addTextChangedListener(this);
}
//
// TextWatcher
//
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
//@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
//@Override
public void afterTextChanged(Editable e) {
String s = e.toString();
String sanitized = sanitize(s);
if (!s.equals(sanitized)) {
e.replace(0, e.length(), sanitized);
}
}
static public String sanitize(String s) {
StringBuilder sb = new StringBuilder(s.length());
for (int i = 0; i < s.length(); ++i) {
char ch = s.charAt(i);
if (ch < 128)
sb.append(ch);
}
return sb.toString();
}
}

View File

@@ -0,0 +1,5 @@
package com.mojang.android;
public interface StringValue {
public String getStringValue();
}

View File

@@ -0,0 +1,29 @@
package com.mojang.android.licensing;
///see LicenseResult.h in C++ project
public class LicenseCodes {
// Something's not ready, call again later
public static final int WAIT_PLATFORM_NOT_READY = -2; // Note used from java
public static final int WAIT_SERVER_NOT_READY = -1;
// License is ok
public static final int LICENSE_OK = 0;
public static final int LICENSE_TRIAL_OK = 1;
// License is not working in one way or another
public static final int LICENSE_VALIDATION_FAILED = 50;
public static final int ITEM_NOT_FOUND = 51;
public static final int LICENSE_NOT_FOUND = 52;
public static final int ERROR_CONTENT_HANDLER = 100;
public static final int ERROR_ILLEGAL_ARGUMENT = 101;
public static final int ERROR_SECURITY = 102;
public static final int ERROR_INPUT_OUTPUT = 103;
public static final int ERROR_ILLEGAL_STATE = 104;
public static final int ERROR_NULL_POINTER = 105;
public static final int ERROR_GENERAL = 106;
public static final int ERROR_UNABLE_TO_CONNECT_TO_CDS = 107;
// The call went wrong so we didn't get a license value at all
public static final int LICENSE_CHECK_EXCEPTION = 200;
}

View File

@@ -0,0 +1,233 @@
package com.mojang.android.preferences;
import android.content.Context;
import android.content.res.Resources;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
public class SliderPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener {
private static final String androidns = "http://schemas.android.com/apk/res/android";
private Context _context;
//private TextView _minValueTextView;
private TextView _valueTextView;
//private TextView _maxValueTextView;
private SeekBar _seekBar;
private String _valueSuffix;
private int _defaultValue; // Stores the default preference value when none has been set
private int _maxValue; // Stores the upper preference value bound
private int _value; // Stores the value of the preference
private int _minValue; // Stores the minimum preference value bound
public SliderPreference(Context context, AttributeSet attrs) {
super(context, attrs);
_context = context;
_valueSuffix = getResourceValueFromAttribute(attrs, androidns, "text", "");
_defaultValue = getResourceValueFromAttribute(attrs, androidns, "defaultValue", 0);
_maxValue = getResourceValueFromAttribute(attrs, androidns, "max", 100);
_minValue = getResourceValueFromAttribute(attrs, null, "min", 0);
// Set the default value of the preference to the default value found in attribute
setDefaultValue((Integer) _defaultValue);
}
//public SliderPreference(Context context, AttributeSet attrs, int)
@Override
protected View onCreateDialogView() {
LinearLayout.LayoutParams params;
LinearLayout layout = new LinearLayout(getContext());
layout.setOrientation(LinearLayout.VERTICAL);
layout.setPadding(6,6,6,6);
// mSplashText = new TextView(_context);
// if (mDialogMessage != null)
// mSplashText.setText(mDialogMessage);
// layout.addView(mSplashText);
_valueTextView = new TextView(_context);
_valueTextView.setGravity(Gravity.CENTER_HORIZONTAL);
_valueTextView.setTextSize(32);
params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
layout.addView(_valueTextView, params);
_seekBar = new SeekBar(_context);
_seekBar.setOnSeekBarChangeListener(this);
layout.addView(_seekBar, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
if (shouldPersist())
_value = getPersistedInt(_defaultValue);
_seekBar.setMax(_maxValue);
_seekBar.setProgress(_value);
return layout;
}
@Override
protected void onSetInitialValue(boolean restore, Object defaultValue) {
super.onSetInitialValue(restore, defaultValue);
if (restore)
_value = shouldPersist() ? getPersistedInt(_defaultValue) : 0;
else
_value = (Integer) defaultValue;
}
/*
@Override
protected void onBindView(View view) {
super.onBindView(view);
// Bind _seekBar to the layout's internal view
_seekBar = (SeekBar) view.findViewById(R.id.slider_preference_seekbar);
// Setup it's listeners and parameters
_seekBar.setMax(translateValueToSeekBar(_maxValue));
_seekBar.setProgress(translateValueToSeekBar(_value));
_seekBar.setOnSeekBarChangeListener(this);
// Bind mTextView to the layout's internal view
_valueTextView = (TextView) view.findViewById(R.id.slider_preference_value);
// Setup it's parameters
_valueTextView.setText(getValueText(_value));
// Setup min and max value text views
_minValueTextView = (TextView) view.findViewById(R.id.slider_preference_min_value);
_minValueTextView.setText(getValueText(_minValue));
_maxValueTextView = (TextView) view.findViewById(R.id.slider_preference_max_value);
_maxValueTextView.setText(getValueText(_maxValue));
}
*/
//@Override
public void onProgressChanged(SeekBar seekBar, int value, boolean fromUser) {
// Change mTextView and _value to the current seekbar value
_value = translateValueFro_seekBar(value);
_valueTextView.setText(getValueText(_value));
if (shouldPersist())
persistInt(translateValueFro_seekBar(value));
callChangeListener(new Integer(_value));
}
//@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// Not used
}
//@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// Not used
}
private String getValueText(int value) {
String t = String.valueOf(value);
return t.concat(_valueSuffix);
}
/**
* Retrieves a value from the resources of this slider preference's context
* based on an attribute pointing to that resource.
*
* @param attrs
* The attribute set to search
*
* @param namespace
* The namespace of the attribute
*
* @param name
* The name of the attribute
*
* @param defaultValue
* The default value returned if no resource is found
*
* @return
* The resource value
*/
private int getResourceValueFromAttribute(AttributeSet attrs, String namespace, String name, int defaultValue) {
Resources res = getContext().getResources();
int valueID = attrs.getAttributeResourceValue(namespace, name, 0);
if (valueID != 0) {
return res.getInteger(valueID);
}
else {
return attrs.getAttributeIntValue(namespace, name, defaultValue);
}
}
/**
* Retrieves a value from the resources of this slider preference's context
* based on an attribute pointing to that resource.
*
* @param attrs
* The attribute set to search
*
* @param namespace
* The namespace of the attribute
*
* @param name
* The name of the attribute
*
* @param defaultValue
* The default value returned if no resource is found
*
* @return
* The resource value
*/
private String getResourceValueFromAttribute(AttributeSet attrs, String namespace, String name, String defaultValue) {
Resources res = getContext().getResources();
int valueID = attrs.getAttributeResourceValue(namespace, name, 0);
if (valueID != 0) {
return res.getString(valueID);
}
else {
String value = attrs.getAttributeValue(namespace, name);
if (value != null) {
return value;
}
else {
return defaultValue;
}
}
}
/**
* Translates a value from this slider preference's seekbar by
* adjusting it for a set perceived minimum value.
*
* @param value
* The value to be translated from the seekbar
*
* @return
* A value equal to the value passed plus the currently set minimum value.
*/
private int translateValueFro_seekBar(int value) {
return value + _minValue;
}
/**
* Translates a value for when setting this slider preference's seekbar by
* adjusting it for a set perceived minimum value.
*
* @param value
* The value to be translated for use
*
* @return
* A value equal to the value passed minus the currently set minimum value.
*/
private int translateValueToSeekBar(int value) {
return value - _minValue;
}
}

View File

@@ -0,0 +1,77 @@
package com.mojang.minecraftpe;
import com.mojang.android.StringValue;
import com.mojang.minecraftpe.R;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.ToggleButton;
public class GameModeButton extends ToggleButton implements OnClickListener, StringValue {
public GameModeButton(Context context, AttributeSet attrs) {
super(context, attrs);
_init();
}
//@Override
public void onClick(View v) {
_update();
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
_update();
}
@Override
protected void onAttachedToWindow() {
if (!_attached) {
_update();
_attached = true;
}
}
private boolean _attached = false;
private void _init() {
setOnClickListener(this);
}
private void _update() {
_setGameType(isChecked()?Survival:Creative);
}
private void _setGameType(int i) {
_type = _clamp(i);
int id = R.string.gamemode_creative_summary;
if (_type == Survival)
id = R.string.gamemode_survival_summary;
String desc = getContext().getString(id);
View v = getRootView().findViewById(R.id.labelGameModeDesc);
System.out.println("Mode: " + _type + ", view? " + (v!=null));
if (desc != null && v != null && v instanceof TextView) {
((TextView)v).setText(desc);
}
}
static private int _clamp(int i) {
if (i > Survival) return Survival;
if (i < Creative) return Creative;
return i;
}
public String getStringValue() {
return getStringForType(_type);
}
static public String getStringForType(int i) {
return new String[] {
"creative",
"survival"
} [_clamp(i)];
}
private int _type = 0;
static final int Creative = 0;
static final int Survival = 1;
}

View File

@@ -0,0 +1,531 @@
package com.mojang.minecraftpe;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Map;
import com.mojang.android.StringValue;
import com.mojang.android.licensing.LicenseCodes;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.NativeActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.media.AudioManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.preference.PreferenceManager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.view.inputmethod.*;
import com.mojang.minecraftpe.R;
public class MainActivity extends NativeActivity {
private boolean _isTouchscreen = true;
private int _viewDistance = 2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
getOptionStrings(); // Updates settings
setVolumeControlStream(AudioManager.STREAM_MUSIC);
super.onCreate(savedInstanceState);
nativeRegisterThis();
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
Log.w("MCPE", event.toString());
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
return false;
}
return super.dispatchKeyEvent(event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
public void onBackPressed() {
Log.w("MCPE", "Java - onBackPressed");
return;
}
private void createAlertDialog(boolean hasOkButton, boolean hasCancelButton, boolean preventBackKey) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("");
if (preventBackKey)
builder.setCancelable(false);
builder.setOnCancelListener(new OnCancelListener() {
//@Override
public void onCancel(DialogInterface dialog) {
onDialogCanceled();
}
});
if (hasOkButton)
builder.setPositiveButton("Ok", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) { onDialogCompleted(); }});
if (hasCancelButton)
builder.setNegativeButton("Cancel", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) { onDialogCanceled(); }});
mDialog = builder.create();
mDialog.setOwnerActivity(this);
}
static private boolean _isPowerVr = false;
public void setIsPowerVR(boolean status) { MainActivity._isPowerVr = status; }
static public boolean isPowerVR() { return _isPowerVr; }
public boolean supportsTouchscreen() {
return isXperiaPlay();
//if (isXperiaPlay()) return false;
//return true;
}
static public boolean isXperiaPlay() {
final String[] tags = { android.os.Build.MODEL,
android.os.Build.DEVICE,
android.os.Build.PRODUCT};
for (String tag : tags) {
tag = tag.toLowerCase();
if (tag.indexOf("r800") >= 0) return true;
if (tag.indexOf("so-01d") >= 0) return true;
if (tag.indexOf("xperia") >= 0 && tag.indexOf("play") >= 0) return true;
}
return false;
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
// TODO Auto-generated method stub
//System.out.println("Focus has changed. Has Focus? " + hasFocus);
super.onWindowFocusChanged(hasFocus);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
//System.out.println("KeyDown: " + keyCode);
Log.w("MCPE", "onKeyDown: " + keyCode);
return super.onKeyDown(keyCode, event);
}
public int getKeyFromKeyCode(int keyCode, int metaState, int deviceId) {
return InputDevice.getDevice(deviceId).getKeyCharacterMap().get(keyCode, metaState);
}
static public void saveScreenshot(String filename, int w, int h, int[] pixels) {
Bitmap bitmap = Bitmap.createBitmap(pixels, w, h, Bitmap.Config.ARGB_8888);
//System.out.println("Save screenshot: " + filename);
try {
FileOutputStream fos = new FileOutputStream(filename);
bitmap.compress(CompressFormat.JPEG, 85, fos);
//System.out.println("Compression completed!");
try {
fos.flush();
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
catch (FileNotFoundException e) {
System.err.println("Couldn't create file: " + filename);
e.printStackTrace();
}
}
public byte[] getFileDataBytes(String filename) {
AssetManager assets = getAssets();
BufferedInputStream bis;
try {
InputStream is = assets.open(filename);
bis = new BufferedInputStream(is);
} catch (IOException e) {
e.printStackTrace();
return null;
}
ByteArrayOutputStream s = new ByteArrayOutputStream(4096);
byte[] tmp = new byte[1024];
try {
while (true) {
int count = bis.read(tmp);
if (count <= 0) break;
s.write(tmp, 0, count);
}
} catch (IOException e) {
} finally {
try { bis.close(); }
catch (IOException e) {}
}
return s.toByteArray();
}
public int[] getImageData(String filename) {
AssetManager assets = getAssets();
try {
/*String[] filenames = */assets.list("images");
} catch (IOException e) {
System.err.println("getImageData: Could not list directory");
return null;
}
InputStream inputStream = null;
try {
inputStream = assets.open(filename);
} catch (IOException e) {
System.err.println("getImageData: Could not open image " + filename);
return null;
}
Bitmap bm = BitmapFactory.decodeStream(inputStream);
int w = bm.getWidth();
int h = bm.getHeight();
int[] pixels = new int[w * h + 2];
pixels[0] = w;
pixels[1] = h;
bm.getPixels(pixels, 2, w, 0, 0, w, h);
return pixels;
}
public int getScreenWidth() {
Display display = ((WindowManager)this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int out = Math.max(display.getWidth(), display.getHeight());
System.out.println("getwidth: " + out);
return out;
}
public int getScreenHeight() {
Display display = ((WindowManager)this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int out = Math.min(display.getWidth(), display.getHeight());
System.out.println("getheight: " + out);
return out;
}
public float getPixelsPerMillimeter() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
//System.err.println("metrics: " + metrics.xdpi + ", " + metrics.ydpi);
return (metrics.xdpi + metrics.ydpi) * 0.5f / 25.4f;
}
public int checkLicense() { return LicenseCodes.LICENSE_OK; }
public String getDateString(int s) {
return DateFormat.format(new Date(s * 1000L));
}
public boolean hasBuyButtonWhenInvalidLicense() { return true; }
public void postScreenshotToFacebook(String filename, int w, int h, int[] pixels) {
return;
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == DialogDefinitions.DIALOG_MAINMENU_OPTIONS) {
_userInputStatus = 1;
}
}
public void quit() {
runOnUiThread(new Runnable() {
public void run() { finish(); } });
}
public void displayDialog(int dialogId) {
if (dialogId == DialogDefinitions.DIALOG_CREATE_NEW_WORLD) {
chooseDialog(R.layout.create_new_world,
new int[] { R.id.editText_worldName,
R.id.editText_worldSeed,
R.id.button_gameMode},
false, // Don't prevent back key
R.id.button_createworld_create,
R.id.button_createworld_cancel
);
} else if (dialogId == DialogDefinitions.DIALOG_MAINMENU_OPTIONS) {
Intent intent = new Intent(this, MainMenuOptionsActivity.class);
intent.putExtra("preferenceId", R.xml.preferences);
startActivityForResult(intent, dialogId);
} else if (dialogId == DialogDefinitions.DIALOG_RENAME_MP_WORLD) {
chooseDialog(R.layout.rename_mp_world,
new int[] { R.id.editText_worldNameRename },
false
);
}
}
void chooseDialog(final int layoutId, final int[] viewIds) {
chooseDialog(layoutId, viewIds, true);
}
void chooseDialog(final int layoutId, final int[] viewIds, final boolean hasCancelButton) {
chooseDialog(layoutId, viewIds, hasCancelButton, true);
}
void chooseDialog(final int layoutId, final int[] viewIds, final boolean hasCancelButton, final boolean preventBackKey) {
chooseDialog(layoutId, viewIds, preventBackKey, 0, hasCancelButton? 0 : -1);
}
void chooseDialog(final int layoutId, final int[] viewIds, final boolean preventBackKey, final int okButtonId, final int cancelButtonId) {
_userInputValues.clear();
runOnUiThread(new Runnable() {
public void run() {
createAlertDialog(okButtonId==0, cancelButtonId==0, preventBackKey);
LayoutInflater li = LayoutInflater.from(MainActivity.this);
try {
View view = li.inflate(layoutId, null);
if (okButtonId != 0 && okButtonId != -1) {
View b = view.findViewById(okButtonId);
if (b != null)
b.setOnClickListener(new View.OnClickListener()
{ public void onClick(View v) { if (mDialog != null) mDialog.dismiss(); onDialogCompleted(); }});
}
if (cancelButtonId != 0 && cancelButtonId != -1) {
View b = view.findViewById(cancelButtonId);
if (b != null)
b.setOnClickListener(new View.OnClickListener()
{ public void onClick(View v) { if (mDialog != null) mDialog.cancel(); onDialogCanceled(); }});
}
//mDialog.setO
MainActivity.this.mDialog.setView(view);
if (viewIds != null)
for (int viewId : viewIds) {
View v = view.findViewById(viewId);
if (v instanceof StringValue)
_userInputValues.add( (StringValue) v );
else if (v instanceof TextView)
_userInputValues.add(new TextViewReader((TextView)v));
}
} catch (Error e) {
e.printStackTrace();
}
MainActivity.this.mDialog.show();
MainActivity.this.mDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
MainActivity.this.mDialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.MATCH_PARENT);
//MainActivity.this.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
}
});
}
public void tick() {}
public String[] getOptionStrings() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Map<String, ?> m = prefs.getAll();
String[] tmpOut = new String[m.size() * 2];
int n = 0;
for (Map.Entry<String, ?> e : m.entrySet()) {
// @todo: Would be nice if the disabled settings could be stripped out here
String key = e.getKey();
String value = e.getValue().toString();
//
// Feel free to modify key or value!
//
// This can be used to correct differences between the different
// platforms, such as Android not supporting floating point
// ranges for Sliders/SeekBars: {0..100} - TRANSFORM -> {0..1}
//
if (key.equals(MainMenuOptionsActivity.Controls_UseTouchscreen))
_isTouchscreen = !isXperiaPlay() || (Boolean) e.getValue();
if (key.equals(MainMenuOptionsActivity.Graphics_LowQuality))
_viewDistance = ((Boolean) e.getValue()) ? 3 : 2;
if (key.equals(MainMenuOptionsActivity.Internal_Game_DifficultyPeaceful)) {
key = MainMenuOptionsActivity.Game_DifficultyLevel;
value = ((Boolean) e.getValue()) ? "0" : "2";
}
try {
if (key.equals(MainMenuOptionsActivity.Controls_Sensitivity))
value = new Double( 0.01 * Integer.parseInt(value) ).toString();
} catch (Exception exc) {}
tmpOut[n++] = key;
tmpOut[n++] = value;
//System.out.println("Key: " + e.getKey());
//System.out.println("Val: " + e.getValue().toString() + " (" + e.getValue().getClass().getName() + ")\n");
}
// Copy over the enabled preferences
String[] out = new String[n];
for (int i = 0; i < n; ++i)
out[i] = tmpOut[i];
return out;
}
public void buyGame() {}
public String getPlatformStringVar(int id) {
if (id == 0) return android.os.Build.MODEL;
return null;
}
public boolean isNetworkEnabled(boolean onlyWifiAllowed) {
return true;
/*
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = onlyWifiAllowed? cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
: cm.getActiveNetworkInfo();
//(info.getState() == NetworkInfo.State.CONNECTED || info.getState() == NetworkInfo.State.CONNECTING));
return (info != null && info.isConnectedOrConnecting());
*/
}
private Bundle data;
private int _userInputStatus = -1;
private String[] _userInputText = null;
private ArrayList<StringValue> _userInputValues = new ArrayList<StringValue>();
public void initiateUserInput(int id) {
_userInputText = null;
_userInputStatus = -1;
}
public int getUserInputStatus() { return _userInputStatus; }
public String[] getUserInputString() { return _userInputText; }
private AlertDialog mDialog;
private final DateFormat DateFormat = new SimpleDateFormat();
// public EditText mTextInputWidget;
public void vibrate(int milliSeconds) {
Vibrator v = (Vibrator)this.getSystemService(VIBRATOR_SERVICE);
v.vibrate(milliSeconds);
}
private void onDialogCanceled() {
_userInputStatus = 0;
}
private void onDialogCompleted() {
int size = _userInputValues.size();
_userInputText = new String[size];
for (int i = 0; i < size; ++i) {
_userInputText[i] = _userInputValues.get(i).getStringValue();
}
for (String s : _userInputText) System.out.println("js: " + s);
_userInputStatus = 1;
InputMethodManager inputManager = (InputMethodManager)getSystemService("input_method");
boolean result = inputManager.showSoftInput(this.getCurrentFocus(), InputMethodManager.SHOW_IMPLICIT);
}
protected void onStart() {
//System.out.println("onStart");
super.onStart();
}
protected void onResume() {
//System.out.println("onResume");
super.onResume();
}
protected void onPause() {
//System.out.println("onPause");
super.onPause();
}
protected void onStop() {
//System.out.println("onStop");
nativeStopThis();
super.onStop();
}
protected void onDestroy() {
System.out.println("onDestroy");
nativeUnregisterThis();
super.onDestroy();
}
protected boolean isDemo() { return false; }
//
// Native interface
//
native void nativeRegisterThis();
native void nativeUnregisterThis();
native void nativeStopThis();
static {
System.loadLibrary("minecraftpe");
}
}
// see client/gui/screens/DialogDefinitions.h
class DialogDefinitions {
static final int DIALOG_CREATE_NEW_WORLD = 1;
static final int DIALOG_NEW_CHAT_MESSAGE = 2;
static final int DIALOG_MAINMENU_OPTIONS = 3;
static final int DIALOG_RENAME_MP_WORLD = 4;
}
class TextViewReader implements StringValue {
public TextViewReader(TextView view) {
_view = view;
}
public String getStringValue() {
return _view.getText().toString();
}
private TextView _view;
}

View File

@@ -0,0 +1,197 @@
package com.mojang.minecraftpe;
import java.util.ArrayList;
import com.mojang.android.EditTextAscii;
//import com.mojang.minecraftpe.R;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.preference.PreferenceGroup;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
public class MainMenuOptionsActivity extends PreferenceActivity implements
SharedPreferences.OnSharedPreferenceChangeListener
{
static public final String Multiplayer_Username = "mp_username";
static public final String Multiplayer_ServerVisible = "mp_server_visible_default";
static public final String Graphics_Fancy = "gfx_fancygraphics";
static public final String Graphics_LowQuality = "gfx_lowquality";
static public final String Controls_InvertMouse = "ctrl_invertmouse";
static public final String Controls_Sensitivity = "ctrl_sensitivity";
static public final String Controls_UseTouchscreen = "ctrl_usetouchscreen";
static public final String Controls_UseTouchJoypad = "ctrl_usetouchjoypad";
static public final String Controls_FeedbackVibration = "feedback_vibration";
static public final String Game_DifficultyLevel = "game_difficulty";
static public final String Internal_Game_DifficultyPeaceful = "game_difficultypeaceful";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
addPreferencesFromResource(extras.getInt("preferenceId"));//R.xml.preferences);
//getPreferenceManager().setSharedPreferencesMode(MODE_PRIVATE);
PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
PreferenceScreen s = getPreferenceScreen();
if (PreferenceManager.getDefaultSharedPreferences(this).contains(Multiplayer_Username)) {
previousName = PreferenceManager.getDefaultSharedPreferences(this).getString(Multiplayer_Username, null);
}
_validator = new PreferenceValidator(this);
readBackAll(s);
_validator.commit();
}
private void readBackAll(PreferenceGroup g) {
traversePreferences(g, new PreferenceTraverser() {
void onPreference(Preference p) { readBack(p); _validator.validate(p); }
});
}
private void traversePreferences(PreferenceGroup g, PreferenceTraverser pt) {
int size = g.getPreferenceCount();
for (int i = 0; i < size; ++i) {
Preference p = g.getPreference(i);
if (p instanceof PreferenceGroup) {
PreferenceGroup pg = (PreferenceGroup)p;
pt.onPreferenceGroup(pg);
traversePreferences(pg, pt);
}
else
pt.onPreference(p);
}
}
private void readBack(Preference p) {
if (p == null)
return;
//System.out.println("pref: " + p.toString());
if (p instanceof EditTextPreference) {
EditTextPreference e = (EditTextPreference) p;
p.setSummary("'" + e.getText() + "'");
}
}
//@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Preference p = findPreference(key);
_validator.validate(sharedPreferences, key);
if (p instanceof EditTextPreference) {
EditTextPreference e = (EditTextPreference) p;
Editor editor = sharedPreferences.edit();
String s = e.getText();
String sanitized = EditTextAscii.sanitize(s).trim();
if (key.equals(Multiplayer_Username) && sanitized == null || sanitized.length() == 0) {
sanitized = previousName;
if (sanitized == null || sanitized.equals("")) {
sanitized = "Steve";
previousName = sanitized;
}
}
if (!s.equals(sanitized)) {
editor.putString(key, sanitized);
editor.commit();
e.setText(sanitized);
}
}
readBack(p);
}
String previousName;
PreferenceValidator _validator;
}
class PreferenceValidator {
static private class Pref {
Pref(PreferenceGroup g, Preference p) {
this.g = g;
this.p = p;
}
PreferenceGroup g;
Preference p;
}
private PreferenceActivity _prefs;
private ArrayList<Pref> _arrayList = new ArrayList<Pref>();
public PreferenceValidator(PreferenceActivity prefs) {
_prefs = prefs;
}
public void commit() {
//System.err.println("ERR: " + _arrayList.size());
for (int i = 0; i < _arrayList.size(); ++i) {
PreferenceGroup g = _arrayList.get(i).g;
Preference p = _arrayList.get(i).p;
g.removePreference(p);
}
}
public void validate(Preference p) {
validate(PreferenceManager.getDefaultSharedPreferences(_prefs), p.getKey());
}
public void validate(SharedPreferences preferences, String key) {
Preference p = findPreference(key);
if (p instanceof CheckBoxPreference) {
//CheckBoxPreference e = (CheckBoxPreference) p;
if (key.equals(MainMenuOptionsActivity.Graphics_LowQuality)) {
boolean isShort = preferences.getBoolean(MainMenuOptionsActivity.Graphics_LowQuality, false);
CheckBoxPreference fancyPref = (CheckBoxPreference)findPreference(MainMenuOptionsActivity.Graphics_Fancy);
if (fancyPref != null) {
fancyPref.setEnabled(isShort == false);
if (isShort)
fancyPref.setChecked(false);
}
}
if (key.equals(MainMenuOptionsActivity.Graphics_Fancy)) {
CheckBoxPreference fancyPref = (CheckBoxPreference) p;
//System.err.println("Is PowerVR? : " + MainActivity.isPowerVR());
if (MainActivity.isPowerVR()) {
fancyPref.setSummary("Experimental on this device!");
}
}
if (p.getKey().equals(MainMenuOptionsActivity.Controls_UseTouchscreen)) {
boolean hasOtherPrimaryControls = MainActivity.isXperiaPlay();
if (!hasOtherPrimaryControls) {
PreferenceCategory mCategory = (PreferenceCategory) findPreference("category_graphics");
_arrayList.add(new Pref(mCategory, p));
}
p.setEnabled(hasOtherPrimaryControls);
p.setDefaultValue( !hasOtherPrimaryControls );
if (hasOtherPrimaryControls) {
CheckBoxPreference pp = (CheckBoxPreference) p;
CheckBoxPreference j = (CheckBoxPreference)findPreference(MainMenuOptionsActivity.Controls_UseTouchJoypad);
j.setEnabled(pp.isChecked());
}
}
}
}
private Preference findPreference(String key) {
return _prefs.findPreference(key);
}
}
abstract class PreferenceTraverser {
void onPreference(Preference p) {}
void onPreferenceGroup(PreferenceGroup p) {}
}

View File

@@ -0,0 +1,14 @@
package com.mojang.minecraftpe;
import android.content.Intent;
import android.net.Uri;
import com.mojang.minecraftpe.MainActivity;
public class Minecraft_Market extends MainActivity {
@Override
public void buyGame() {
final Uri buyLink = Uri.parse("market://details?id=com.mojang.minecraftpe");
Intent marketIntent = new Intent( Intent.ACTION_VIEW, buyLink );
startActivity(marketIntent);
}
}

View File

@@ -0,0 +1,17 @@
package com.mojang.minecraftpe;
import android.content.Intent;
import android.net.Uri;
import com.mojang.android.licensing.LicenseCodes;
public class Minecraft_Market_Demo extends MainActivity {
@Override
public void buyGame() {
final Uri buyLink = Uri.parse("market://details?id=com.mojang.minecraftpe");
Intent marketIntent = new Intent( Intent.ACTION_VIEW, buyLink );
startActivity(marketIntent);
}
@Override
protected boolean isDemo() { return true; }
}

View File

@@ -0,0 +1,89 @@
package com.mojang.minecraftpe;
import android.os.Bundle;
import com.mojang.android.licensing.LicenseCodes;
import com.verizon.vcast.apps.LicenseAuthenticator;
public class Minecraft_Verizon extends MainActivity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
_licenseLib = new LicenseAuthenticator(this);
_verizonThread = new VerizonLicenseThread(_licenseLib, VCastMarketKeyword, false);
_verizonThread.start();
}
@Override
public int checkLicense() {
if (_verizonThread == null)
return _licenseCode;
if (!_verizonThread.hasCode)
return -1;
_licenseCode = _verizonThread.returnCode;
_verizonThread = null;
return _licenseCode;
}
@Override
public boolean hasBuyButtonWhenInvalidLicense() { return false; }
private LicenseAuthenticator _licenseLib;
private VerizonLicenseThread _verizonThread;
private int _licenseCode;
static private final String VCastMarketKeyword = "Minecraft";
}
//
// Requests license code from the Verizon VCAST application on the phone
//
class VerizonLicenseThread extends Thread
{
public VerizonLicenseThread(LicenseAuthenticator licenseLib, String keyword, boolean isTest) {
_keyword = keyword;
_isTest = isTest;
_licenseLib = licenseLib;
}
public void run() {
if (_isTest)
validateTestLicense();
else
validateLicense();
}
void validateTestLicense() {
try {
//final int status = LicenseAuthenticator.LICENSE_NOT_FOUND;
final int status = LicenseAuthenticator.LICENSE_OK;
returnCode = _licenseLib.checkTestLicense( _keyword, status );
}
catch (Throwable e) {
returnCode = LicenseCodes.LICENSE_CHECK_EXCEPTION;
}
hasCode = true;
}
void validateLicense() {
try {
returnCode = _licenseLib.checkLicense( _keyword );
}
catch (Throwable e) {
returnCode = LicenseCodes.LICENSE_CHECK_EXCEPTION;
//e.printStackTrace();
}
hasCode = true;
}
public volatile boolean hasCode = false;
public volatile int returnCode = -1;
private String _keyword;
private boolean _isTest;
private LicenseAuthenticator _licenseLib;
}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="src" path="gen"/>
<classpathentry excluding="*.svn|.svn|com/mojang/minecraftpe/MainActivity.java|com/mojang/minecraftpe/Minecraft_Verizon.java" kind="src" path="src_linked"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

40
project/android_java/.project Executable file
View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MinecraftPocketEdition_java</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
<linkedResources>
<link>
<name>src_linked</name>
<type>2</type>
<location>C:/dev/subversion/mojang/minecraftcpp/trunk/handheld/project/android/src</location>
</link>
</linkedResources>
</projectDescription>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mojang.minecraftpe"
android:versionCode="4000"
android:versionName="0.4.0"
>
<!-- android:installLocation="preferExternal" -->
<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="7"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="true"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<application android:icon="@drawable/icon"
android:label="@string/app_name"
>
<activity android:name="com.mojang.minecraftpe.Minecraft_Market"
android:label="@string/app_name_short"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<meta-data android:name="android.app.lib_name"
android:value="minecraftpe" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.mojang.minecraftpe.MainMenuOptionsActivity"></activity>
<meta-data android:name="xperiaplayoptimized_content" android:resource="@string/xperiaplayoptimized_content" />
<meta-data android:name="game_display_name" android:resource="@string/app_name" />
<meta-data android:name="game_icon" android:resource="@drawable/iconx" />
<uses-library android:name="xperiaplaycertified" android:required="false"/>
</application>
</manifest>

View File

@@ -0,0 +1,13 @@
<!-- Verizon VCAST -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.START_BACKGROUND_SERVICE"/>
<uses-permission android:name="com.verizon.vcast.apps.VCAST_APPS_LICENSE_SERVICE"/>
android:debuggable="true"
<!-- Android MARKET -->
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<!-- Google Analytics -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

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