Skip to content

Turtles in Minecraft to help you learn programming

Notifications You must be signed in to change notification settings

Cloudxtreme/mc-turtles

 
 

Repository files navigation

Build Status

#Minecraft Turtles 3D

Screenshot

We've been using the Raspberry Pi edition of Minecraft in our Code Club and trying out the the MCPiPy API.

This is an attempt to recreate LOGO Turtle movements in Minecraft, by placing blocks along their paths. Still very basic.

(Not to be mixed up with the Turtles of the Computercraft Mod: http://computercraft.info/wiki/Turtle)

MCPiPy, and therefore Minecraft Turtles, can also be used with the standard PC version of Minecraft. You will need a CraftBukkit server running the Raspberry Juice plugin. There is a good blog post on the MCPiPy website describing the steps to do this.

##Installation

git clone --recursive git@github.com:tombh/mc-turtles.git

If your Minecraft server is a different machine from where you are using this code then you can set custom values for the server's address and port in settings.py. You can copy settings.py.sample as a starting point.

To draw a flower in your Minecraft world simply issue: python flowers.py

##Examples

Hello World

from turtlecraft import Turtlecraft
T = Turtlecraft()
T.chat("Hello World")

Basic Commands

# Move the turtle forward
T.fd(steps)
# Rotate the turtle right or left
T.rt(angle)
T.lt(angle)
# Tilt the turtle forwards and backwards
T.tilt_fd(angle)
T.tilt_bk(angle)

# Set an area the size of <square_length>^3 to the AIR block
T.clear(cubic_length)

# Set the current block type. Similar to traditional turtle's pencolor()
# There are hundreds of block types, but for now just added a list of possible blocks:  
#['GRASS','AIR','DIRT','STONE','TNT','GOLD_ORE','LAVA','MELON'] 
# Default is Grass
T.setBT(blocktype)

# Pen up / pen down - While moving the turtle leaves a trail of blocks or not
T.pu()
T.pd()

Accessing the turtle's properties

# It can be useful to find out where your turtle is (it's invisible so far!)
T.Turtle.getTilePos() 
#You can also set its position
T.Turtle.setPos(x,y,z)
# What block type is set at the moment?
T.Turtle.getBlockType()
# Which direction is the turtle facing?
T.Turtle.getDir()

##Contributing

Feedback and PRs are very welcome.

To run tests you will need some dependencies, so Virtualenv can be useful for that:

# In the project root:
virtuaenv venv
source venv/bin/activate
pip install -r requirements.txt
# To run tests:
nosetests spec/*

Some more Block Types

AIR = 0
STONE = 1
GRASS = 2
DIRT = 3
COBBLESTONE = 4
WOOD_PLANK = 5
SAPLING = 6
BEDROCK = 7
WATER_FLOWING = 8
WATER = 9
LAVA_FLOWING = 10
LAVA = 11
SAND = 12
GRAVEL = 13
GOLD_ORE = 14
IRON_ORE = 15
COAL_ORE = 16
WOOD = 17
LEAVES = 18
GLASS = 20
LAPIS_ORE = 21
LAPIS = 22
SANDSTONE = 24
BED = 26
COBWEB = 30
TALL_GRASS = 31
WOOL = 35
FLOWER_YELLOW = 37
FLOWER_RED = 38
MUSHROOM_BROWN = 39
MUSHROOM_RED = 40
GOLD = 41
IRON = 42
STONE_SLAB_DOUBLE = 43
STONE_SLAB = 44
BRICK = 45
TNT = 46
BOOKSHELF = 47
MOSSY_STONE = 48
TORCH = 50
FIRE = 51
WOOD_STAIRS = 53
CHEST = 54
DIAMOND_ORE = 56
DIAMOND = 57
CRAFTING_TABLE = 58
FARMLAND = 60
FURNACE = 61
FURNACE_ACTIVE = 62
WOOD_DOOR = 64
LADDER = 65
COBBLESTONE_STAIRS = 67
IRON_DOOR = 71
REDSTONE_ORE = 73
SNOW_COVER = 78
ICE = 79
SNOW = 80
CACTUS = 81
CLAY = 82
SUGAR_CANE = 83
FENCE = 85
GLOWSTONE = 89
INVISIBLE_BEDROCK = 95
STONE_BRICK = 98
GLASS_PANE = 102
MELON = 103
FENCE_GATE = 107
GLOWING_OBSIDIAN = 246
NETHER_REACTOR_CORE = 247
UPDATE_GAME_BLOCK = 249

About

Turtles in Minecraft to help you learn programming

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%