I did a presentation about Minecraft on the Raspberry Pi and why I think its a good thing.
I also ran a Hacking Minecraft workshop, which you can download here.
You can find more information and code listings for the demos below:
A tutorial on using the Minecraft: Pi edition API.
Minecraft Music Visualiser.
Minecraft Auto Bridge.
Minecraft Snake Game.
Minecraft Cannon.
I also demo'd a program to built a house which then follows you wherever you go.
Download and Run
You can download the code direct from github, https://github.com/martinohanlon/minecraft-houses, so run minecraft, open/create a world and follow the instructions:
sudo apt-get install git-core cd ~ git clone https://github.com/martinohanlon/minecraft-houses.git cd minecraft-houses python minecraft-house-follow.py
Code
#www.stuffaboutcode.com #Raspberry Pi, Minecraft Snake #import the minecraft.py module from the minecraft directory import minecraft #import minecraft block module import block #import time, so delays can be used import time #import random module to create random number import random HOUSEWIDTH=6 HOUSEHEIGHT=2 def buildHouse(mc, x, y, z): #draw floor mc.setBlocks(x,y-1,z,x+HOUSEWIDTH,y-1,z+HOUSEWIDTH,block.GRASS.id) #draw walls mc.setBlocks(x, y, z, x+HOUSEWIDTH, y+HOUSEHEIGHT, z, block.STONE.id) mc.setBlocks(x+HOUSEWIDTH, y, z, x+HOUSEWIDTH, y+HOUSEHEIGHT, z+HOUSEWIDTH, block.STONE.id) mc.setBlocks(x+HOUSEWIDTH, y, z+HOUSEWIDTH, x, y+HOUSEHEIGHT, z+HOUSEWIDTH, block.STONE.id) mc.setBlocks(x, y, z+HOUSEWIDTH, x, y+HOUSEHEIGHT, z, block.STONE.id) #draw windows mc.setBlocks(x+(HOUSEWIDTH/2)-2,y+1,z,x+(HOUSEWIDTH/2)-2,y+2,z,block.GLASS.id) mc.setBlocks(x+(HOUSEWIDTH/2)+2,y+1,z,x+(HOUSEWIDTH/2)+2,y+2,z,block.GLASS.id) #draw door #cobble arch mc.setBlocks(x+(HOUSEWIDTH/2)-1,y,z,x+(HOUSEWIDTH/2)+1,y+2,z,block.COBBLESTONE.id) # clear space for door mc.setBlocks(x+(HOUSEWIDTH/2),y,z,x+(HOUSEWIDTH/2),y+1,z,block.AIR.id) #draw torches mc.setBlock(x+(HOUSEWIDTH/2)-1,y+2,z-1,block.TORCH.id,1) mc.setBlock(x+(HOUSEWIDTH/2)+1,y+2,z-1,block.TORCH.id,1) #draw roof mc.setBlocks(x,y+HOUSEHEIGHT+1,z,x+HOUSEWIDTH,y+HOUSEHEIGHT+1,z+HOUSEWIDTH,block.WOOD_PLANKS.id) def clearHouse(mc, x, y, z): mc.setBlocks(x,y-1,z,x+HOUSEWIDTH,y+HOUSEHEIGHT+1,z+HOUSEWIDTH,block.AIR.id) #main program if __name__ == "__main__": time.sleep(3) #Connect to minecraft by creating the minecraft object # - minecraft needs to be running and in a game mc = minecraft.Minecraft.create() playersPath = [] lastPlayerPos = mc.player.getTilePos() playersPath.append(lastPlayerPos) lastHousePos = None while(True): playerPos = mc.player.getTilePos() if playerPos != lastPlayerPos: playersPath.append(playerPos) lastPlayerPos = playerPos #when a player has moved 15 blocks, moved their house and reset the path if len(playersPath) == 15: #clear the old house (if there was one) if lastHousePos is not None: clearHouse(mc, lastHousePos.x, lastHousePos.y, lastHousePos.z) #create house 10 blocks back, we dont want the house on top of us! lastHousePos = playersPath[5] lastHousePos.y = mc.getHeight(lastHousePos.x,lastHousePos.z) buildHouse(mc,lastHousePos.x, lastHousePos.y, lastHousePos.z) #clear list playersPath[:] = []
Thanks for the mention about me :)
ReplyDelete