80 lines
2.6 KiB
Python
Executable File
80 lines
2.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
#www.stuffaboutcode.com
|
|
#Raspberry Pi, Minecraft API - the basics
|
|
|
|
# mcpipy.com retrieved from URL below, written by stuffaboutcode
|
|
# http://www.stuffaboutcode.com/2013/01/raspberry-pi-minecraft-api-basics.html
|
|
|
|
#import the minecraft.py module from the minecraft directory
|
|
import mcpi.minecraft as minecraft
|
|
#import minecraft block module
|
|
import mcpi.block as block
|
|
#import time, so delays can be used
|
|
import time
|
|
import server
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
time.sleep(2)
|
|
|
|
#Connect to minecraft by creating the minecraft object
|
|
# - minecraft needs to be running and in a game
|
|
mc = minecraft.Minecraft.create(server.address)
|
|
|
|
#Post a message to the minecraft chat window
|
|
mc.postToChat("Hi, Minecraft API, the basics, what can you do? ")
|
|
|
|
time.sleep(5)
|
|
|
|
#Find out your players position
|
|
playerPos = mc.player.getPos()
|
|
mc.postToChat("Find your position - its x=" + str(playerPos.x) + ", y=" + str(playerPos.y) + ", z=" + str(playerPos.z))
|
|
|
|
time.sleep(5)
|
|
|
|
#Using your players position
|
|
# - the players position is an x,y,z coordinate of floats (e.g. 23.59,12.00,-45.32)
|
|
# - in order to use the players position in other commands we need integers (e.g. 23,12,-45)
|
|
# - so round the players position
|
|
# - the Vec3 object is part of the minecraft class library
|
|
playerPos = minecraft.Vec3(int(playerPos.x), int(playerPos.y), int(playerPos.z))
|
|
|
|
#Changing your players position
|
|
mc.postToChat("Move your player - 30 blocks UP!")
|
|
time.sleep(2)
|
|
mc.player.setPos(playerPos.x,playerPos.y + 30,playerPos.z)
|
|
# - wait for you to fall!
|
|
time.sleep(5)
|
|
|
|
#Interacting with a block
|
|
# - get the type block directly below you
|
|
blockType = mc.getBlock(playerPos.x,playerPos.y - 1,playerPos.z)
|
|
mc.postToChat("Interact with blocks - the block below you is of type - " + str(blockType))
|
|
|
|
time.sleep(5)
|
|
|
|
# - change the block below you to wood planks
|
|
mc.setBlock(playerPos.x,playerPos.y-1,playerPos.z,block.WOOD_PLANKS)
|
|
mc.postToChat("Change blocks - the block below you is now wood planks")
|
|
|
|
time.sleep(5)
|
|
|
|
#Creating many blocks
|
|
mc.postToChat("Create blocks - making a diamond tower")
|
|
|
|
# - loop 20 times
|
|
for up in range(0, 20):
|
|
mc.setBlock(playerPos.x + 1, playerPos.y + up, playerPos.z, block.DIAMOND_BLOCK)
|
|
|
|
time.sleep(2)
|
|
|
|
# - put you on top of the tower
|
|
mc.postToChat("Dont look down, because Im putting you on top of it!")
|
|
time.sleep(1)
|
|
mc.player.setPos(playerPos.x + 1, playerPos.y + 20, playerPos.z)
|
|
|
|
time.sleep(5)
|
|
|
|
mc.postToChat("www.stuffaboutcode.com") |