Skip to content

Commit 7e04ea4

Browse files
0.31 20100130 (0.31.20100130)
1 parent 16b1426 commit 7e04ea4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+1035
-816
lines changed

MANIFEST.in

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@ include setup.py
44
include Makefile
55
include requirements.txt
66
include screenshot.png
7+
include mc/resources/icon/minecraft.png
8+
graft mc/resources/icon
79
include LICENSE
810
include README.md
911

10-
recursive-include mc *.pyx *.pxd *.ogg *.png *.md3 *.MD3 *.dll
12+
recursive-include mc *.pyx *.pxd *.ogg *.md3 *.MD3 *.dll
13+
recursive-exclude mc/resources/texture *
1114
recursive-exclude * *.pyc
1215
recursive-exclude * *.pyd
16+
recursive-exclude * *.gif
1317
recursive-exclude * *.html
1418
recursive-exclude * *.c

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ install:
1212
CYTHONIZE=1 pip install .
1313

1414
install-from-source: dist
15-
pip install dist/minecraft-python-0.31.20100129.tar.gz
15+
pip install dist/minecraft-python-0.31.20100130.tar.gz
1616

1717
clean:
1818
$(RM) -r build dist src/*.egg-info

README.md

+9-10
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,16 @@
55
_**Minecraft: Python Edition**_ is a project that strives to recreate each and every old Minecraft version in Python 3 using the **Pyglet** multimedia library and **Cython** for performance.
66

77
The project is currently working on the Indev versions of Minecraft.
8-
The latest version is **Indev 0.31 20100129** as released on _**January 29, 2010**_.
8+
The latest version is **Indev 0.31 20100130** as released on _**January 30, 2010**_.
99

10-
This version adds functional crafting, sticks, the "Steve" and "Black Steve" MD3 mobs, and rudimentary smelting to the game.
11-
This is the first version where items must be gathered and crafted yourself, as opposed to them being provided in the chests at spawn.
10+
This version adds workbench crafting, gold tools, the "Beast Boy" MD3 mob, mob item drops, and soup to the game.
1211

1312
Features from previous Indev versions include the Indev mossy cobblestone spawn house, NBT level file saving,
14-
most tools, torches, advanced liquid spread, TNT explosives, and passive MD3 mobs.
13+
tools, torches, advanced liquid spread, TNT explosives, chests, and passive MD3 mobs.
1514

16-
To easily install this version of *Minecraft: Python Edition*, just run `python -m pip install minecraft-python==0.31.20100129`.
15+
To easily install this version of *Minecraft: Python Edition*, just run `python -m pip install minecraft-python==0.31.20100130`.
1716

18-
You can learn more about this version [on the Minecraft wiki.](https://minecraft.wiki/w/Java_Edition_Indev_0.31_20100129)
17+
You can learn more about this version [on the Minecraft wiki.](https://minecraft.wiki/w/Java_Edition_Indev_0.31_20100130)
1918

2019
### Organization
2120

@@ -43,8 +42,7 @@ The argument `-creative` will force the game to be in creative mode.
4342
### Gameplay
4443

4544
All controls are as you would expect for the game and they can be configured in the options menu.
46-
Press I to open your inventory, B to craft (I to exit the crafting screen),
47-
F5 to toggle rain and F7 to take a cool isometric screenshot.
45+
Press I to open your inventory, F5 to toggle rain and F7 to take a cool isometric screenshot.
4846

4947
Smelting is unique in early Indev: to get iron or gold ingots, light the dropped ores on fire or throw them in lava.
5048

@@ -53,8 +51,9 @@ You can specify the world theme as *Normal* or *Hell* (lava and dirt instead of
5351

5452
Levels can be saved to a single *.mclevel* NBT file in the pause menu. The level files are perfectly compatible with Java and vice versa.
5553

56-
The only mobs around are the Steves and Black Steves, which don't drop anything when killed.
57-
Apples will restore health.
54+
MD3 Steves may drop string on death, Black Steves may drop gunpowder, and Beast Boys may drop feathers.
55+
56+
Crafted mushroom bowl soup will restore health. Check the Wiki for crafting recipes added in this version.
5857

5958
![Isometric screenshot](/map.png?raw=true)
6059

mc/Resources.py

+5-4
Large diffs are not rendered by default.

mc/net/minecraft/client/Minecraft.py

+10-18
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,11 @@ def load_library(*names, **kwargs):
2828
from mc.net.minecraft.client import MinecraftError
2929
from mc.net.minecraft.client.Timer import Timer
3030
from mc.net.minecraft.client.GameSettings import GameSettings
31-
from mc.net.minecraft.client.RenderHelper import RenderHelper
31+
from mc.net.minecraft.client.OpenGlCapsChecker import OpenGlCapsChecker
3232
from mc.net.minecraft.client.LoadingScreenRenderer import LoadingScreenRenderer
33-
from mc.net.minecraft.game.physics.Vec3D import Vec3D
3433
from mc.net.minecraft.game.level.World import World
35-
from mc.net.minecraft.game.level.block.Block import Block
3634
from mc.net.minecraft.game.level.block.Blocks import blocks
37-
from mc.net.minecraft.game.level.material.Material import Material
3835
from mc.net.minecraft.game.level.generator.LevelGenerator import LevelGenerator
39-
from mc.net.minecraft.game.entity.EntityLiving import EntityLiving
4036
from mc.net.minecraft.client.model.ModelBiped import ModelBiped
4137
from mc.net.minecraft.client.player.EntityPlayerSP import EntityPlayerSP
4238
from mc.net.minecraft.client.player.MovementInputFromOptions import MovementInputFromOptions
@@ -45,20 +41,17 @@ def load_library(*names, **kwargs):
4541
from mc.net.minecraft.client.gui.GuiErrorScreen import GuiErrorScreen
4642
from mc.net.minecraft.client.gui.GuiIngameMenu import GuiIngameMenu
4743
from mc.net.minecraft.client.gui.GuiGameOver import GuiGameOver
48-
from mc.net.minecraft.client.gui.GuiInventory import GuiInventory
4944
from mc.net.minecraft.client.gui.GuiIngame import GuiIngame
50-
from mc.net.minecraft.client.gui.GuiCrafting import GuiCrafting
45+
from mc.net.minecraft.client.gui.container.GuiInventory import GuiInventory
5146
from mc.net.minecraft.client.effect.EffectRenderer import EffectRenderer
5247
from mc.net.minecraft.client.render.texture.TextureFlamesFX import TextureFlamesFX
5348
from mc.net.minecraft.client.render.texture.TextureWaterFlowFX import TextureWaterFlowFX
5449
from mc.net.minecraft.client.render.texture.TextureWaterFX import TextureWaterFX
5550
from mc.net.minecraft.client.render.texture.TextureLavaFX import TextureLavaFX
5651
from mc.net.minecraft.client.render.texture.TextureGearsFX import TextureGearsFX
57-
from mc.net.minecraft.client.render.RenderBlocks import RenderBlocks
5852
from mc.net.minecraft.client.render.RenderGlobal import RenderGlobal
5953
from mc.net.minecraft.client.render.EntityRenderer import EntityRenderer
6054
from mc.net.minecraft.client.render.RenderEngine import RenderEngine
61-
from mc.net.minecraft.client.render.Tessellator import tessellator
6255
from mc.net.minecraft.client.render.WorldRenderer import WorldRenderer
6356
from mc.net.minecraft.client.controller.PlayerControllerCreative import PlayerControllerCreative
6457
from mc.net.minecraft.client.controller.PlayerControllerSP import PlayerControllerSP
@@ -271,8 +264,6 @@ def on_key_press(self, symbol, modifiers):
271264
self.renderRain = not self.renderRain
272265
elif symbol == self.options.keyBindInventory.keyCode:
273266
self.displayGuiScreen(GuiInventory(self.thePlayer.inventory))
274-
elif symbol == window.key.B:
275-
self.displayGuiScreen(GuiCrafting(self.thePlayer.inventory))
276267
elif symbol == self.options.keyBindDrop.keyCode:
277268
self.thePlayer.dropPlayerItemWithRandomChoice(
278269
self.thePlayer.inventory.decrStackSize(
@@ -383,6 +374,8 @@ def run(self):
383374
gl.glLoadIdentity()
384375
gl.glMatrixMode(gl.GL_MODELVIEW)
385376

377+
self.__glCapabilities = OpenGlCapsChecker()
378+
386379
name = 'minecraft'
387380
home = os.path.expanduser('~') or '.'
388381
if 'unix' in sys.platform or 'linux' in sys.platform or \
@@ -429,7 +422,7 @@ def run(self):
429422
world.setLevel(8, 8, 8, bytearray(512))
430423
self.setLevel(level)
431424
elif not self.theWorld:
432-
self.generateLevel(1, 0, 1, 0)
425+
self.generateNewLevel(1, 0, 1, 0)
433426

434427
self.effectRenderer = EffectRenderer(self.theWorld, self.renderEngine)
435428

@@ -477,7 +470,7 @@ def __releaseMouse(self):
477470
self.set_mouse_position(self.width // 2, self.height // 2)
478471

479472
def displayInGameMenu(self):
480-
if not isinstance(self.currentScreen, GuiIngameMenu):
473+
if not self.currentScreen:
481474
self.displayGuiScreen(GuiIngameMenu())
482475

483476
def __clickMouse(self, editMode):
@@ -489,10 +482,9 @@ def __clickMouse(self, editMode):
489482
self.entityRenderer.itemRenderer.swingItem()
490483
self.entityRenderer.updateRenderer()
491484
elif editMode == 1 and item:
492-
if item.getItem().onItemRightClick(item, self.theWorld, self.thePlayer):
493-
if item.stackSize == 0:
494-
self.thePlayer.inventory.mainInventory[self.thePlayer.inventory.currentItem] = None
495-
485+
stack = item.getItem().onItemRightClick(item, self.theWorld, self.thePlayer)
486+
if stack != item or stack and stack.stackSize != item.stackSize:
487+
self.thePlayer.inventory.mainInventory[self.thePlayer.inventory.currentItem] = stack
496488
self.entityRenderer.itemRenderer.resetEquippedProgress()
497489

498490
if not self.objectMouseOver:
@@ -614,7 +606,7 @@ def __runTick(self):
614606
int(self.thePlayer.posZ))
615607
self.effectRenderer.updateEffects()
616608

617-
def generateLevel(self, size, shape, levelType, theme):
609+
def generateNewLevel(self, size, shape, levelType, theme):
618610
name = self.session.username if self.session else 'anonymous'
619611
levelGen = LevelGenerator(self.loadingScreen)
620612
levelGen.islandGen = levelType == 1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class OpenGlCapsChecker:
2+
cap = False

mc/net/minecraft/client/controller/PlayerControllerSP.py

+1-7
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def __init__(self, mc):
1717
self.__blockHitWait = 0
1818
self.__mobSpawner = None
1919

20-
def flipPlayer(self, player):
20+
def onRespawn(self, player):
2121
x = int(player.posX)
2222
y = int(player.posY)
2323
z = int(player.posZ)
@@ -36,12 +36,6 @@ def flipPlayer(self, player):
3636

3737
self._mc.theWorld.setBlockWithNotify(xx, yy, zz, blockId)
3838

39-
self._mc.theWorld.setBlockWithNotify(x - 2, y - 1, z - 2, blocks.chest.blockID)
40-
self._mc.theWorld.getBlockTileEntity(x - 2, y - 1, z - 2)
41-
self._mc.theWorld.setBlockWithNotify(x + 2, y - 1, z - 2, blocks.chest.blockID)
42-
self._mc.theWorld.getBlockTileEntity(x + 2, y - 1, z - 2)
43-
self._mc.theWorld.setBlockWithNotify(x + 2, y - 1, z - 1, blocks.chest.blockID)
44-
self._mc.theWorld.getBlockTileEntity(x + 2, y - 1, z - 1)
4539
player.inventory.mainInventory[8] = ItemStack(items.flintSteel)
4640

4741
def sendBlockRemoved(self, x, y, z):

mc/net/minecraft/client/gui/GuiCrafting.py

-57
This file was deleted.

0 commit comments

Comments
 (0)