From 5f4e5affd17b20943362a1eea710435a47f2d0c5 Mon Sep 17 00:00:00 2001 From: arpruss Date: Sat, 9 Jul 2016 17:21:20 -0500 Subject: [PATCH] foo --- raspberryjammod/TODO | 1 + raspberryjammod/mcpipy/NeuroPy/NeuroPy.py | 0 raspberryjammod/mcpipy/NeuroPy/README.txt | 0 raspberryjammod/mcpipy/NeuroPy/__init__.py | 0 raspberryjammod/mcpipy/bridge.py | 0 raspberryjammod/mcpipy/brooksc_findpos.py | 0 raspberryjammod/mcpipy/brooksc_flatmap50.py | 21 - .../mcpipy/brooksc_teleport_pad.py | 27 - raspberryjammod/mcpipy/brooksc_template.py | 17 - raspberryjammod/mcpipy/brooksc_tntsnake.py | 0 .../mcpipy/burnaron_bunkermatic.py | 106 ---- .../mcpipy/burnaron_bunkermatic2.py | 95 ---- raspberryjammod/mcpipy/castle.py | 6 + raspberryjammod/mcpipy/chess.py | 25 +- raspberryjammod/mcpipy/clock.py | 0 raspberryjammod/mcpipy/console.py | 6 + .../mcpipy/danielbates_minecraft_basic.py | 114 ----- .../mcpipy/danielbates_setblockdemo.py | 76 +-- raspberryjammod/mcpipy/davef21370_maze.py | 0 .../mcpipy/daviewales_minesweeper.py | 261 ---------- raspberryjammod/mcpipy/dragoncurve.py | 0 raspberryjammod/mcpipy/drawing.py | 2 +- raspberryjammod/mcpipy/fancytree.py | 0 raspberryjammod/mcpipy/fleap_railgen.py | 0 raspberryjammod/mcpipy/gf_clearZone.py | 17 - raspberryjammod/mcpipy/gf_drawbuilding.py | 0 raspberryjammod/mcpipy/glasscube.py | 0 raspberryjammod/mcpipy/globe.py | 39 ++ raspberryjammod/mcpipy/grenade.py | 4 +- raspberryjammod/mcpipy/helloworld.py | 2 +- raspberryjammod/mcpipy/hilbert.py | 0 raspberryjammod/mcpipy/input.py | 148 ++++++ raspberryjammod/mcpipy/interpreter.py | 0 .../mcpipy/jjinux_sierpinski_triangle.py | 0 raspberryjammod/mcpipy/knot.py | 2 +- raspberryjammod/mcpipy/lforest.py | 0 raspberryjammod/mcpipy/lsystem.py | 0 raspberryjammod/mcpipy/ltree.py | 0 raspberryjammod/mcpipy/mandelbrot.py | 0 raspberryjammod/mcpipy/mandelbulb.py | 0 raspberryjammod/mcpipy/mc.py | 0 raspberryjammod/mcpipy/mcdragoncurve.py | 0 raspberryjammod/mcpipy/mcpi/block.py | 5 +- raspberryjammod/mcpipy/mcpi/connection.py | 23 +- raspberryjammod/mcpipy/mcpi/entity.py | 0 .../mcpi/minecraft-pi-edition-LICENSE.txt | 0 raspberryjammod/mcpipy/mcpi/minecraft.py | 31 +- raspberryjammod/mcpipy/mcpi/security.py | 2 + raspberryjammod/mcpipy/mcpi/settings.py | 0 raspberryjammod/mcpipy/mcpipy.pyproj | 0 raspberryjammod/mcpipy/mcpipy.sln | 0 raspberryjammod/mcpipy/mcturtle.py | 0 raspberryjammod/mcpipy/mengersponge.py | 0 raspberryjammod/mcpipy/minetris.py | 480 ++++++++++++------ raspberryjammod/mcpipy/models/dragon.txt | 0 raspberryjammod/mcpipy/models/knight.txt | 17 + raspberryjammod/mcpipy/nt7s_sphere.py | 0 raspberryjammod/mcpipy/obsidz_teleport.py | 86 ---- raspberryjammod/mcpipy/ovalegg.png | Bin 0 -> 267550 bytes raspberryjammod/mcpipy/polyhedron.py | 0 raspberryjammod/mcpipy/randomnodes.py | 12 - raspberryjammod/mcpipy/render.py | 166 +++--- raspberryjammod/mcpipy/sierpinski3d.py | 0 raspberryjammod/mcpipy/simplefractaltree.py | 0 raspberryjammod/mcpipy/simpletree.py | 0 raspberryjammod/mcpipy/snowbound_flatmap.py | 24 - raspberryjammod/mcpipy/snowflake.py | 0 raspberryjammod/mcpipy/spacefill.py | 0 raspberryjammod/mcpipy/spiral.py | 2 +- raspberryjammod/mcpipy/squarecurve.py | 0 .../mcpipy/stuffaboutcode_basics.py | 0 .../mcpipy/stuffaboutcode_bridge.py | 0 .../mcpipy/stuffaboutcode_clock.py | 0 .../mcpipy/stuffaboutcode_hideandseek.py | 0 raspberryjammod/mcpipy/teleport.py | 0 raspberryjammod/mcpipy/test.py | 0 raspberryjammod/mcpipy/text.py | 60 ++- raspberryjammod/mcpipy/top.py | 6 + raspberryjammod/mcpipy/toschematic.py | 84 +++ raspberryjammod/mcpipy/trefoil.py | 0 raspberryjammod/mcpipy/trefoil2.py | 0 raspberryjammod/mcpipy/turtleconsole.py | 6 + raspberryjammod/mcpipy/turtledonut.py | 0 raspberryjammod/mcpipy/vehicle.py | 0 raspberryjammod/mcpipy/win32move.py | 67 +++ raspberryjammod/mcpipy/zhuowei_rainbow.py | 0 86 files changed, 958 insertions(+), 1082 deletions(-) create mode 100755 raspberryjammod/TODO mode change 100644 => 100755 raspberryjammod/mcpipy/NeuroPy/NeuroPy.py mode change 100644 => 100755 raspberryjammod/mcpipy/NeuroPy/README.txt mode change 100644 => 100755 raspberryjammod/mcpipy/NeuroPy/__init__.py mode change 100644 => 100755 raspberryjammod/mcpipy/bridge.py mode change 100755 => 100644 raspberryjammod/mcpipy/brooksc_findpos.py delete mode 100755 raspberryjammod/mcpipy/brooksc_flatmap50.py delete mode 100755 raspberryjammod/mcpipy/brooksc_teleport_pad.py delete mode 100755 raspberryjammod/mcpipy/brooksc_template.py mode change 100755 => 100644 raspberryjammod/mcpipy/brooksc_tntsnake.py delete mode 100755 raspberryjammod/mcpipy/burnaron_bunkermatic.py delete mode 100755 raspberryjammod/mcpipy/burnaron_bunkermatic2.py mode change 100644 => 100755 raspberryjammod/mcpipy/chess.py mode change 100644 => 100755 raspberryjammod/mcpipy/clock.py mode change 100644 => 100755 raspberryjammod/mcpipy/console.py delete mode 100644 raspberryjammod/mcpipy/danielbates_minecraft_basic.py mode change 100755 => 100644 raspberryjammod/mcpipy/danielbates_setblockdemo.py mode change 100755 => 100644 raspberryjammod/mcpipy/davef21370_maze.py delete mode 100755 raspberryjammod/mcpipy/daviewales_minesweeper.py mode change 100644 => 100755 raspberryjammod/mcpipy/dragoncurve.py mode change 100644 => 100755 raspberryjammod/mcpipy/drawing.py mode change 100644 => 100755 raspberryjammod/mcpipy/fancytree.py mode change 100755 => 100644 raspberryjammod/mcpipy/fleap_railgen.py delete mode 100755 raspberryjammod/mcpipy/gf_clearZone.py mode change 100755 => 100644 raspberryjammod/mcpipy/gf_drawbuilding.py mode change 100644 => 100755 raspberryjammod/mcpipy/glasscube.py create mode 100644 raspberryjammod/mcpipy/globe.py mode change 100644 => 100755 raspberryjammod/mcpipy/grenade.py mode change 100644 => 100755 raspberryjammod/mcpipy/hilbert.py create mode 100755 raspberryjammod/mcpipy/input.py mode change 100644 => 100755 raspberryjammod/mcpipy/interpreter.py mode change 100755 => 100644 raspberryjammod/mcpipy/jjinux_sierpinski_triangle.py mode change 100644 => 100755 raspberryjammod/mcpipy/lforest.py mode change 100644 => 100755 raspberryjammod/mcpipy/lsystem.py mode change 100644 => 100755 raspberryjammod/mcpipy/ltree.py mode change 100644 => 100755 raspberryjammod/mcpipy/mandelbrot.py mode change 100644 => 100755 raspberryjammod/mcpipy/mandelbulb.py mode change 100644 => 100755 raspberryjammod/mcpipy/mc.py mode change 100644 => 100755 raspberryjammod/mcpipy/mcdragoncurve.py mode change 100644 => 100755 raspberryjammod/mcpipy/mcpi/entity.py mode change 100644 => 100755 raspberryjammod/mcpipy/mcpi/minecraft-pi-edition-LICENSE.txt create mode 100644 raspberryjammod/mcpipy/mcpi/security.py mode change 100644 => 100755 raspberryjammod/mcpipy/mcpi/settings.py mode change 100644 => 100755 raspberryjammod/mcpipy/mcpipy.pyproj mode change 100644 => 100755 raspberryjammod/mcpipy/mcpipy.sln mode change 100644 => 100755 raspberryjammod/mcpipy/mcturtle.py mode change 100644 => 100755 raspberryjammod/mcpipy/mengersponge.py mode change 100644 => 100755 raspberryjammod/mcpipy/models/dragon.txt create mode 100644 raspberryjammod/mcpipy/models/knight.txt mode change 100755 => 100644 raspberryjammod/mcpipy/nt7s_sphere.py delete mode 100755 raspberryjammod/mcpipy/obsidz_teleport.py create mode 100644 raspberryjammod/mcpipy/ovalegg.png mode change 100644 => 100755 raspberryjammod/mcpipy/polyhedron.py delete mode 100755 raspberryjammod/mcpipy/randomnodes.py mode change 100644 => 100755 raspberryjammod/mcpipy/render.py mode change 100644 => 100755 raspberryjammod/mcpipy/sierpinski3d.py mode change 100644 => 100755 raspberryjammod/mcpipy/simplefractaltree.py mode change 100644 => 100755 raspberryjammod/mcpipy/simpletree.py delete mode 100755 raspberryjammod/mcpipy/snowbound_flatmap.py mode change 100644 => 100755 raspberryjammod/mcpipy/snowflake.py mode change 100644 => 100755 raspberryjammod/mcpipy/spacefill.py mode change 100755 => 100644 raspberryjammod/mcpipy/spiral.py mode change 100644 => 100755 raspberryjammod/mcpipy/squarecurve.py mode change 100755 => 100644 raspberryjammod/mcpipy/stuffaboutcode_basics.py mode change 100755 => 100644 raspberryjammod/mcpipy/stuffaboutcode_bridge.py mode change 100755 => 100644 raspberryjammod/mcpipy/stuffaboutcode_clock.py mode change 100755 => 100644 raspberryjammod/mcpipy/stuffaboutcode_hideandseek.py mode change 100644 => 100755 raspberryjammod/mcpipy/teleport.py mode change 100755 => 100644 raspberryjammod/mcpipy/test.py create mode 100644 raspberryjammod/mcpipy/top.py create mode 100644 raspberryjammod/mcpipy/toschematic.py mode change 100755 => 100644 raspberryjammod/mcpipy/trefoil.py mode change 100755 => 100644 raspberryjammod/mcpipy/trefoil2.py mode change 100644 => 100755 raspberryjammod/mcpipy/turtleconsole.py mode change 100644 => 100755 raspberryjammod/mcpipy/turtledonut.py mode change 100644 => 100755 raspberryjammod/mcpipy/vehicle.py create mode 100644 raspberryjammod/mcpipy/win32move.py mode change 100755 => 100644 raspberryjammod/mcpipy/zhuowei_rainbow.py diff --git a/raspberryjammod/TODO b/raspberryjammod/TODO new file mode 100755 index 0000000..9bd75d6 --- /dev/null +++ b/raspberryjammod/TODO @@ -0,0 +1 @@ +win32move doesn't work \ No newline at end of file diff --git a/raspberryjammod/mcpipy/NeuroPy/NeuroPy.py b/raspberryjammod/mcpipy/NeuroPy/NeuroPy.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/NeuroPy/README.txt b/raspberryjammod/mcpipy/NeuroPy/README.txt old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/NeuroPy/__init__.py b/raspberryjammod/mcpipy/NeuroPy/__init__.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/bridge.py b/raspberryjammod/mcpipy/bridge.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/brooksc_findpos.py b/raspberryjammod/mcpipy/brooksc_findpos.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/brooksc_flatmap50.py b/raspberryjammod/mcpipy/brooksc_flatmap50.py deleted file mode 100755 index 103b89a..0000000 --- a/raspberryjammod/mcpipy/brooksc_flatmap50.py +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env python - -#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 server - -def main(): - mc = minecraft.Minecraft.create(server.address) - # write the rest of your code here... - mc.postToChat("Erasing a 50x50 block...") - mc.setBlocks(-50,-10,-50,50,10,50,block.AIR.id) - mc.setBlocks(-50,0,-50,50,-10,50,block.GRASS.id) - mc.postToChat("Done Erasing a 50x50 block!") - - - -if __name__ == "__main__": - main() diff --git a/raspberryjammod/mcpipy/brooksc_teleport_pad.py b/raspberryjammod/mcpipy/brooksc_teleport_pad.py deleted file mode 100755 index fa8eed9..0000000 --- a/raspberryjammod/mcpipy/brooksc_teleport_pad.py +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env python - -# as shared on mcpipy.com - -import mcpi.minecraft as minecraft -import mcpi.block as block -import time -import server - - -# If you are running this script with the bukkit mod, then use a diamond block as the magic center block for teleporting -# comment/uncomment below as appropriate -magic_block = block.DIAMOND_BLOCK # for bukkit server -#magic_block = block.NETHER_REACTOR_CORE # for raspberry pi - -if __name__ == "__main__": # The script - mc = minecraft.Minecraft.create(server.address) - loc = mc.player.getPos() - x = loc.x - y = loc.y - 1 - z = loc.z - for z_z in range (int(z-1), int(z+2)): - for x_x in range(int(x-1), int(x+2)): - mc.setBlock(x_x,y,z_z, block.COBBLESTONE) - mc.setBlock(x_x,y+1,z_z, block.AIR) - -mc.setBlock(x,y,z, magic_block) diff --git a/raspberryjammod/mcpipy/brooksc_template.py b/raspberryjammod/mcpipy/brooksc_template.py deleted file mode 100755 index c734baf..0000000 --- a/raspberryjammod/mcpipy/brooksc_template.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env python - -#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 server - -def main(): - mc = minecraft.Minecraft.create(server.address) - # write the rest of your code here... - mc.postToChat("Hello MCPIPY World!") - - -if __name__ == "__main__": - main() diff --git a/raspberryjammod/mcpipy/brooksc_tntsnake.py b/raspberryjammod/mcpipy/brooksc_tntsnake.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/burnaron_bunkermatic.py b/raspberryjammod/mcpipy/burnaron_bunkermatic.py deleted file mode 100755 index 1902988..0000000 --- a/raspberryjammod/mcpipy/burnaron_bunkermatic.py +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env python - -# mcpipy.com retrieved from URL below, written by burnaron -# http://www.minecraftforum.net/topic/1689199-my-first-script-bunkermaticpy/ - -import mcpi.minecraft as minecraft -import mcpi.block as block -from math import * -import server - -mc = minecraft.Minecraft.create(server.address) -x1 = 0 -y1 = 0 -z1 = 0 -# FASE 1: cleaning zone -mc.setBlocks(x1-2,y1,z1-2,x1+2,y1+20,z1+2,0) -mc.setBlocks(x1-51,y1-61,z1-51,x1+51,y1-19,z1+51,1) -# FASE 2: establishing access -mc.setBlocks(x1-1.5,y1+2,z1-1.5,x1+1.5,y1-60,z1+1.5,1) -mc.setBlocks(x1-1,y1+2,z1-1,x1-1,y1-60,z1-1,0) -# FASE 3: establishing main tunnels -mc.setBlocks(x1-1,y1-60,z1-1,x1+1,y1-56,z1+1,0) -mc.setBlocks(x1-50,y1-60,z1,x1+50,y1-58,z1,0) -mc.setBlocks(x1,y1-60,z1-50,x1,y1-58,z1+50,0) -mc.setBlocks(x1-1,y1+2,z1-1,x1-1,y1-60,z1-1,65,3) -# FASE 4: establishing main chambers -for pos in range(0,8): - mc.setBlocks(x1+10+pos,y1-60,z1-pos,x1+10+pos,y1-58+pos,z1+pos,0) - mc.setBlocks(x1-10-pos,y1-60,z1-pos,x1-10-pos,y1-58+pos,z1+pos,0) - mc.setBlocks(x1-pos,y1-60,z1+10+pos,x1+pos,y1-58+pos,z1+10+pos,0) - mc.setBlocks(x1-pos,y1-60,z1-10-pos,x1+pos,y1-58+pos,z1-10-pos,0) - -mc.setBlocks(x1+18,y1-60,z1-8,x1+18+24,y1-50,z1+8,0) -mc.setBlocks(x1-18,y1-60,z1-8,x1-18-24,y1-50,z1+8,0) -mc.setBlocks(x1-8,y1-60,z1+18,x1+8,y1-50,z1+18+24,0) -mc.setBlocks(x1-8,y1-60,z1-18,x1+8,y1-50,z1-18-24,0) - -for pos in range(0,8): - mc.setBlocks(x1+18+24+pos,y1-60,z1-8+pos,x1+18+24+pos,y1-50-pos,z1+8-pos,0) - mc.setBlocks(x1-18-24-pos,y1-60,z1-8+pos,x1-18-24-pos,y1-50-pos,z1+8-pos,0) - mc.setBlocks(x1-8+pos,y1-60,z1+18+24+pos,x1+8-pos,y1-50-pos,z1+18+24+pos,0) - mc.setBlocks(x1-8+pos,y1-60,z1-18-24-pos,x1+8-pos,y1-50-pos,z1-18-24-pos,0) - -# FASE 5: establishing lights & doors: -# FASE 5.1: central chamber lights: -mc.setBlock(0,-57,1,50) -mc.setBlock(1,-57,0,50) -mc.setBlock(0,-57,-1,50) -mc.setBlock(-1,-57,0,50) -# FASE 5.2: main chambers lights -for pos in range(2,8): - mc.setBlock(x1+pos,y1-58,z1+10+pos,50) - mc.setBlock(x1-pos,y1-58,z1+10+pos,50) - mc.setBlock(x1+pos,y1-58,z1-10-pos,50) - mc.setBlock(x1-pos,y1-58,z1-10-pos,50) - mc.setBlock(x1+10+pos,y1-58,z1+pos,50) - mc.setBlock(x1+10+pos,y1-58,z1-pos,50) - mc.setBlock(x1-10-pos,y1-58,z1+pos,50) - mc.setBlock(x1-10-pos,y1-58,z1-pos,50) - -for pos in range(0,24,2): - mc.setBlock(x1+8,y1-58,z1+18+pos,50) - mc.setBlock(x1-8,y1-58,z1+18+pos,50) - mc.setBlock(x1+8,y1-58,z1-18-pos,50) - mc.setBlock(x1-8,y1-58,z1-18-pos,50) - mc.setBlock(x1+18+pos,y1-58,z1+8,50) - mc.setBlock(x1+18+pos,y1-58,z1-8,50) - mc.setBlock(x1-18-pos,y1-58,z1+8,50) - mc.setBlock(x1-18-pos,y1-58,z1-8,50) - -for pos in range(0,7): - mc.setBlock(x1+8-pos,y1-58,z1+18+24+pos,50) - mc.setBlock(x1-8+pos,y1-58,z1+18+24+pos,50) - mc.setBlock(x1+8-pos,y1-58,z1-18-24-pos,50) - mc.setBlock(x1-8+pos,y1-58,z1-18-24-pos,50) - mc.setBlock(x1+18+24+pos,y1-58,z1+8-pos,50) - mc.setBlock(x1+18+24+pos,y1-58,z1-8+pos,50) - mc.setBlock(x1-18-24-pos,y1-58,z1+8-pos,50) - mc.setBlock(x1-18-24-pos,y1-58,z1-8+pos,50) -# FASE 5.3: doors -mc.setBlock(x1,y1-60,z1+2,64,1) -mc.setBlock(x1,y1-59,z1+2,64,8) -mc.setBlock(x1,y1-58,z1+2,1) -mc.setBlock(x1,y1-60,z1+10,64,3) -mc.setBlock(x1,y1-59,z1+10,64,8) -mc.setBlock(x1,y1-58,z1+10,1) - -mc.setBlock(x1,y1-60,z1-2,64,3) -mc.setBlock(x1,y1-59,z1-2,64,8) -mc.setBlock(x1,y1-58,z1-2,1) -mc.setBlock(x1,y1-60,z1-10,64,1) -mc.setBlock(x1,y1-59,z1-10,64,8) -mc.setBlock(x1,y1-58,z1-10,1) - -mc.setBlock(x1+2,y1-60,z1,64,4) -mc.setBlock(x1+2,y1-59,z1,64,8) -mc.setBlock(x1+2,y1-58,z1,1) -mc.setBlock(x1+10,y1-60,z1,64,2) -mc.setBlock(x1+10,y1-59,z1,64,8) -mc.setBlock(x1+10,y1-58,z1,1) -mc.setBlock(x1-2,y1-60,z1,64,2) -mc.setBlock(x1-2,y1-59,z1,64,8) -mc.setBlock(x1-2,y1-58,z1,1) -mc.setBlock(x1-10,y1-60,z1,64,4) -mc.setBlock(x1-10,y1-59,z1,64,8) -mc.setBlock(x1-10,y1-58,z1,1) \ No newline at end of file diff --git a/raspberryjammod/mcpipy/burnaron_bunkermatic2.py b/raspberryjammod/mcpipy/burnaron_bunkermatic2.py deleted file mode 100755 index fd7c61e..0000000 --- a/raspberryjammod/mcpipy/burnaron_bunkermatic2.py +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env python - -# mcpipy.com retrieved from URL below, written by burnaron -# http://www.minecraftforum.net/topic/1689199-my-first-script-bunkermaticpy/ - -import mcpi.minecraft as minecraft -import mcpi.block as block -from math import * -import server - -mc = minecraft.Minecraft.create(server.address) -x1 = -4 -y1 = 3 -z1 = 9 -long_tun = 10 -long_arc_ch = 8 -long_ch = 26 -long_m_ch = long_ch - 2 * long_arc_ch -deepness = 60 -high_c_ch = 3 - -# FASE 1: cleaning zone -mc.setBlocks(x1-2,y1,z1-2,x1+2,y1+20,z1+2,0) -mc.setBlocks(x1-(long_tun+long_ch+1),y1-(deepness+1),z1-(long_tun+long_ch+1),x1+long_tun+long_ch+1,y1-(deepness-long_arc_ch-2-1),z1+long_tun+long_ch+1,1) - -# FASE 2: establishing access -mc.setBlocks(x1-1.5,y1+2,z1-1.5,x1+1.5,y1-deepness,z1+1.5,1) -mc.setBlocks(x1-1,y1+2,z1-1,x1-1,y1-deepness,z1-1,0) - -# FASE 3: establishing main tunnels, central chamber & and access stairs -# FASE 3.1: establishing central chamber -mc.setBlocks(x1-1,y1-deepness,z1-1,x1+1,y1-(deepness-high_c_ch),z1+1,0) - -# FASE 3.2: establishing main tunnels -mc.setBlocks(x1-(long_tun+long_ch),y1-deepness,z1,x1+long_tun+long_ch,y1-(deepness-1),z1,0) -mc.setBlocks(x1,y1-deepness,z1-(long_tun+long_ch),x1,y1-(deepness-1),z1+long_tun+long_ch,0) - -# FASE 3.3: establishing access stairs -mc.setBlocks(x1-1,y1+2,z1-1,x1-1,y1-deepness,z1-1,65,3) - -# FASE 4: establishing main chambers -for pos in range(0,long_arc_ch): - mc.setBlocks(x1+long_tun+pos,y1-deepness,z1-pos,x1+long_tun+pos,y1-(deepness-2)+pos,z1+pos,0) - mc.setBlocks(x1-long_tun-pos,y1-deepness,z1-pos,x1-long_tun-pos,y1-(deepness-2)+pos,z1+pos,0) - mc.setBlocks(x1-pos,y1-deepness,z1+long_tun+pos,x1+pos,y1-(deepness-2)+pos,z1+long_tun+pos,0) - mc.setBlocks(x1-pos,y1-deepness,z1-long_tun-pos,x1+pos,y1-(deepness-2)+pos,z1-long_tun-pos,0) - -mc.setBlocks(x1+long_tun+long_arc_ch,y1-deepness,z1-long_arc_ch,x1+long_tun+long_arc_ch+long_m_ch,y1-(deepness-2)+long_arc_ch,z1+long_arc_ch,0) -mc.setBlocks(x1-(long_tun+long_arc_ch),y1-deepness,z1-long_arc_ch,x1-(long_tun+long_arc_ch)-long_m_ch,y1-(deepness-2)+long_arc_ch,z1+long_arc_ch,0) -mc.setBlocks(x1-long_arc_ch,y1-deepness,z1+long_tun+long_arc_ch,x1+long_arc_ch,y1-(deepness-2)+long_arc_ch,z1+long_tun+long_arc_ch+long_m_ch,0) -mc.setBlocks(x1-long_arc_ch,y1-deepness,z1-(long_tun+long_arc_ch),x1+long_arc_ch,y1-(deepness-2)+long_arc_ch,z1-(long_tun+long_arc_ch)-(long_m_ch),0) - -for pos in range(0,long_arc_ch): - mc.setBlocks(x1+long_tun+long_arc_ch+long_m_ch+pos,y1-deepness,z1-long_arc_ch+pos,x1+long_tun+long_arc_ch+long_m_ch+pos,y1-(deepness-2)+long_arc_ch-pos,z1+long_arc_ch-pos,0) - mc.setBlocks(x1-(long_tun+long_arc_ch)-long_m_ch-pos,y1-deepness,z1-long_arc_ch+pos,x1-(long_tun+long_arc_ch)-long_m_ch-pos,y1-(deepness-2)+long_arc_ch-pos,z1+long_arc_ch-pos,0) - mc.setBlocks(x1-long_arc_ch+pos,y1-deepness,z1+long_tun+long_arc_ch+long_m_ch+pos,x1+long_arc_ch-pos,y1-(deepness-2)+long_arc_ch-pos,z1+long_tun+long_arc_ch+long_m_ch+pos,0) - mc.setBlocks(x1-long_arc_ch+pos,y1-deepness,z1-(long_tun+long_arc_ch)-long_m_ch-pos,x1+long_arc_ch-pos,y1-(deepness-2)+long_arc_ch-pos,z1-(long_tun+long_arc_ch)-long_m_ch-pos,0) - -# FASE 5: establishing lights & doors: -# FASE 5.1: central chamber lights: -mc.setBlock(x1,y1-(deepness-2),z1+1,50) -mc.setBlock(x1+1,y1-(deepness-2),z1,50) -mc.setBlock(x1,y1-(deepness-2),z1-1,50) -mc.setBlock(x1-1,y1-(deepness-2),z1,50) - -# FASE 5.2: main chambers lights -for pos in range(2,long_arc_ch): - mc.setBlock(x1+pos,y1-(deepness-2),z1+long_tun+pos,50) - mc.setBlock(x1-pos,y1-(deepness-2),z1+long_tun+pos,50) - mc.setBlock(x1+pos,y1-(deepness-2),z1-long_tun-pos,50) - mc.setBlock(x1-pos,y1-(deepness-2),z1-long_tun-pos,50) - mc.setBlock(x1+long_tun+pos,y1-(deepness-2),z1+pos,50) - mc.setBlock(x1+long_tun+pos,y1-(deepness-2),z1-pos,50) - mc.setBlock(x1-long_tun-pos,y1-(deepness-2),z1+pos,50) - mc.setBlock(x1-long_tun-pos,y1-(deepness-2),z1-pos,50) - -for pos in range(0,long_m_ch,2): - mc.setBlock(x1+long_arc_ch,y1-(deepness-2),z1+long_tun+long_arc_ch+pos,50) - mc.setBlock(x1-long_arc_ch,y1-(deepness-2),z1+long_tun+long_arc_ch+pos,50) - mc.setBlock(x1+long_arc_ch,y1-(deepness-2),z1-(long_tun+long_arc_ch)-pos,50) - mc.setBlock(x1-long_arc_ch,y1-(deepness-2),z1-(long_tun+long_arc_ch)-pos,50) - mc.setBlock(x1+long_tun+long_arc_ch+pos,y1-(deepness-2),z1+long_arc_ch,50) - mc.setBlock(x1+long_tun+long_arc_ch+pos,y1-(deepness-2),z1-long_arc_ch,50) - mc.setBlock(x1-(long_tun+long_arc_ch)-pos,y1-(deepness-2),z1+long_arc_ch,50) - mc.setBlock(x1-(long_tun+long_arc_ch)-pos,y1-(deepness-2),z1-long_arc_ch,50) - -for pos in range(0,7): - mc.setBlock(x1+long_arc_ch-pos,y1-(deepness-2),z1+long_tun+long_arc_ch+long_m_ch+pos,50) - mc.setBlock(x1-long_arc_ch+pos,y1-(deepness-2),z1+long_tun+long_arc_ch+long_m_ch+pos,50) - mc.setBlock(x1+long_arc_ch-pos,y1-(deepness-2),z1-(long_tun+long_arc_ch)-long_m_ch-pos,50) - mc.setBlock(x1-long_arc_ch+pos,y1-(deepness-2),z1-(long_tun+long_arc_ch)-long_m_ch-pos,50) - mc.setBlock(x1+long_tun+long_arc_ch+long_m_ch+pos,y1-(deepness-2),z1+long_arc_ch-pos,50) - mc.setBlock(x1+long_tun+long_arc_ch+long_m_ch+pos,y1-(deepness-2),z1-long_arc_ch+pos,50) - mc.setBlock(x1-(long_tun+long_arc_ch)-long_m_ch-pos,y1-(deepness-2),z1+long_arc_ch-pos,50) - mc.setBlock(x1-(long_tun+long_arc_ch)-long_m_ch-pos,y1-(deepness-2),z1-long_arc_ch+pos,50) \ No newline at end of file diff --git a/raspberryjammod/mcpipy/castle.py b/raspberryjammod/mcpipy/castle.py index 7e62bef..fd92f17 100644 --- a/raspberryjammod/mcpipy/castle.py +++ b/raspberryjammod/mcpipy/castle.py @@ -18,6 +18,12 @@ def getHeightBelow(x,y,z): return min(mc.getHeight(x,z),y) def rectangularPrism(x1,y1,z1, x2,y2,z2, distribution): + x1 = int(round(x1)) + y1 = int(round(y1)) + z1 = int(round(z1)) + x2 = int(round(x2)) + y2 = int(round(y2)) + z2 = int(round(z2)) for x in range(min(x1,x2),max(x1,x2)+1): for y in range(min(y1,y2),max(y1,y2)+1): for z in range(min(z1,z2),max(z1,z2)+1): diff --git a/raspberryjammod/mcpipy/chess.py b/raspberryjammod/mcpipy/chess.py old mode 100644 new mode 100755 index 3be0e31..b00442b --- a/raspberryjammod/mcpipy/chess.py +++ b/raspberryjammod/mcpipy/chess.py @@ -21,19 +21,24 @@ LABEL_BLOCK = REDSTONE_BLOCK try: import _sunfish as sunfish except: + import urllib2 + import os.path + import os + content = urllib2.urlopen("https://raw.githubusercontent.com/thomasahle/sunfish/master/sunfish.py").read() + filename = os.path.join(os.path.dirname(sys.argv[0]),"_sunfish.py") try: - import urllib2 - import os.path - content = urllib2.urlopen("https://raw.githubusercontent.com/thomasahle/sunfish/master/sunfish.py").read() - f=open(os.path.join(os.path.dirname(sys.argv[0]),"_sunfish.py"),"w") - f.write("# From: https://raw.githubusercontent.com/thomasahle/sunfish/master/sunfish.py\n") - f.write("# Covered by the GPL 2 license\n") - f.write(content) + f=open(filename,"wb") + f.write(b"# -*- coding: utf-8 -*-") + f.write(b"# From: https://raw.githubusercontent.com/thomasahle/sunfish/master/sunfish.py\n") + f.write(b"# Covered by the GPL 2 license\n") + f.write(bytearray(content)) f.close() import _sunfish as sunfish except: - print "Failed download: You need sunfish.py for this script." - + os.remove(filename) + print("Error creating _sunfish.py") + sys.exit(0) + def getCoords(row,col): return (corner.x+8*row+4,corner.y,corner.z+8*col+4) @@ -390,7 +395,7 @@ while True: sunfish.tp = OrderedDict() move,score = sunfish.search(pos) else: - moves = tuple(pos.genMoves()) + moves = tuple(pos.gen_moves()) move = None while move not in moves: if move is not None: diff --git a/raspberryjammod/mcpipy/clock.py b/raspberryjammod/mcpipy/clock.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/console.py b/raspberryjammod/mcpipy/console.py old mode 100644 new mode 100755 index 3d09fdb..374f70f --- a/raspberryjammod/mcpipy/console.py +++ b/raspberryjammod/mcpipy/console.py @@ -1,3 +1,7 @@ +# +# WARNING: If you're running RJM on a server, do NOT include this script server-side for security reasons. +# + # # Code under the MIT license by Alexander Pruss # @@ -26,6 +30,8 @@ def inputLine(prompt): return 'quit()' elif c.message == ' ': return '' + elif "__" in c.message: + sys.exit(); else: return c.message time.sleep(0.2) diff --git a/raspberryjammod/mcpipy/danielbates_minecraft_basic.py b/raspberryjammod/mcpipy/danielbates_minecraft_basic.py deleted file mode 100644 index d48fd3c..0000000 --- a/raspberryjammod/mcpipy/danielbates_minecraft_basic.py +++ /dev/null @@ -1,114 +0,0 @@ -# Don't execute this directory -- this is a support script for danielbates_setblockdemo.py - -import sys - -# Add some common locations where the main API might be. Feel free to add/change -# these to suit you. -sys.path.append("mcpi") -sys.path.append("api/python/mcpi") -sys.path.append("mcpi/api/python/mcpi") - -# Attempt to import Mojang's API. -try: - import connection - import minecraft -except ImportError: - print "Unable to find Minecraft API. Please place minecraft_basic.py in the mcpi directory." - exit() - -_server = None -_blockedit = None -_playeredit = None - -def connect(ip="127.0.0.1", port=4711): - global _server, _blockedit, _playeredit - - try: - _server = connection.Connection(ip, port) - _blockedit = minecraft.Minecraft(_server) - _playeredit = _blockedit.player - except Exception: - print "Unable to connect to Minecraft server at {0}:{1}".format(ip,port) - return - - print "Connected to Minecraft server at {0}:{1}".format(ip,port) - -def setblock(x,y,z,*typedata): - _blockedit.setBlock(x,y,z,typedata) - -def getblock(x,y,z): - return _blockedit.getBlock(x,y,z) - -def moveplayer(x,y,z): - _playeredit.setPos(x,y,z) - -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 \ No newline at end of file diff --git a/raspberryjammod/mcpipy/danielbates_setblockdemo.py b/raspberryjammod/mcpipy/danielbates_setblockdemo.py old mode 100755 new mode 100644 index 4bfa02f..2ac5827 --- a/raspberryjammod/mcpipy/danielbates_setblockdemo.py +++ b/raspberryjammod/mcpipy/danielbates_setblockdemo.py @@ -1,7 +1,10 @@ #!/usr/bin/env python # -from math import sin, cos, radians -import danielbates_minecraft_basic as mc +# +# By Daniel Bates, with minor adaptations by Alexander Pruss +# + +from mc import * #import pygame.image # comment this out if not using images - it's slow to import. If you uncomment, uncomment the image reference below. import random import server @@ -283,7 +286,7 @@ def officeblock(wallmaterial): goody = (point.y%5 == 1) or (point.y%5 == 2) goodz = (point.z%5 == 1) or (point.z%5 == 2) if (goodx and goody) or (goodz and goody): - return mc.GLASS + return GLASS else: return wallmaterial return f @@ -313,13 +316,13 @@ def tomaterial(r,g,b): # Just a quick hack for now - could of course add more colours # and a way of finding the nearest supported colour. if (r,g,b) == (255,255,255): # white - return mc.AIR + return AIR elif (r,g,b) == (0,0,0): # black - return mc.OBSIDIAN + return OBSIDIAN elif (r,g,b) == (188,17,66): # pink - return mc.REDSTONE_ORE + return REDSTONE_ORE elif (r,g,b) == (117,169,40): # green - return mc.MELON + return MELON else: return None @@ -374,61 +377,62 @@ by multiplying them together. fillfunc = solid(material) for point in shape: point2 = transform * point - mc.setblock(int(point2.x), int(point2.y), int(point2.z), fillfunc(point)) + mc.setBlock(int(point2.x), int(point2.y), int(point2.z), fillfunc(point)) def clear(shape, transform=identity()): """Remove any non-air blocks in the given shape.""" - fillshape(shape,transform,mc.AIR) + fillshape(shape,transform,AIR) def main(): + global mc """Function used to build my demo world. Extra clearing may be required for hilly worlds.""" - mc.connect(server.address) + mc = Minecraft() # Create a large empty space with a neat, grassy floor. Takes a long time! clear(cuboid(100,10,120)) - fillshape(floor(100,120), shift(0,-1,0), material=mc.GRASS) + fillshape(floor(100,120), shift(0,-1,0), material=GRASS) # Introduce basic shapes/transformations/fill functions. - fillshape(arrow, material=mc.STONE) - fillshape(arrow, shift(6,0,0), mc.STONE) - fillshape(arrow, shift(12,0,0)*rotationx(90), mc.STONE) - fillshape(arrow, shift(18,0,0)*rotationx(45), mc.STONE) - fillshape(arrow, shift(24,0,0), fillfunc=chequers(mc.WOOD, mc.STONE)) + fillshape(arrow, material=STONE) + fillshape(arrow, shift(6,0,0), STONE) + fillshape(arrow, shift(12,0,0)*rotationx(90), STONE) + fillshape(arrow, shift(18,0,0)*rotationx(45), STONE) + fillshape(arrow, shift(24,0,0), fillfunc=chequers(WOOD, STONE)) # Introduce generator functions. - fillshape(cuboid(4,4,4), shift(30,0,0), mc.STONE) - fillshape(cuboid(3,8,2), shift(36,0,0), mc.STONE) + fillshape(cuboid(4,4,4), shift(30,0,0), STONE) + fillshape(cuboid(3,8,2), shift(36,0,0), STONE) # Show other simple shapes. - fillshape(sphere(5), shift(45,5,0), mc.STONE) - fillshape(pyramid(5), shift(50,0,0), mc.STONE) - fillshape(cylinder(5,4), shift(65,0,0), mc.STONE) - fillshape(cone(5,5), shift(75,0,0), mc.STONE) + fillshape(sphere(5), shift(45,5,0), STONE) + fillshape(pyramid(5), shift(50,0,0), STONE) + fillshape(cylinder(5,4), shift(65,0,0), STONE) + fillshape(cone(5,5), shift(75,0,0), STONE) # Show some fill functions. - fillshape(cuboid(4,4,4), shift(80,0,5), fillfunc=chequers(mc.GOLD, mc.IRON)) - fillshape(pyramid(5), shift(80,0,10), fillfunc=randomfill([mc.SAND, mc.SANDSTONE])) - fillshape(hollowcuboid(4,6,4), shift(80,0,22), mc.WOOD_PLANK) - fillshape(building(2,6,2), shift(80,0,30), fillfunc=officeblock(mc.COBBLESTONE)) + fillshape(cuboid(4,4,4), shift(80,0,5), fillfunc=chequers(GOLD_BLOCK, IRON_BLOCK)) + fillshape(pyramid(5), shift(80,0,10), fillfunc=randomfill([SAND, SANDSTONE])) + fillshape(hollowcuboid(4,6,4), shift(80,0,22), WOOD) + fillshape(building(2,6,2), shift(80,0,30), fillfunc=officeblock(COBBLESTONE)) # Line drawing. - fillshape(line(80,0,40,85,5,45), material=mc.WOOL) - fillshape(line(80,0,40,80,2,50), material=mc.WOOL) - fillshape(line(80,2,50,85,5,45), material=mc.WOOL) + fillshape(line(80,0,40,85,5,45), material=WOOL) + fillshape(line(80,0,40,80,2,50), material=WOOL) + fillshape(line(80,2,50,85,5,45), material=WOOL) # Fun lava sphere. - fillshape(sphere(10), shift(80,10,60), mc.GLASS) - fillshape(sphere(9), shift(80,10,60), mc.LAVA) + fillshape(sphere(10), shift(80,10,60), GLASS) + fillshape(sphere(9), shift(80,10,60), LAVA) # Fractals - far easier to code than to build by hand. - fillshape(mengersponge(0), shift(70,0,75), mc.IRON) - fillshape(mengersponge(1), shift(66,0,75), mc.IRON) - fillshape(mengersponge(2), shift(56,0,75), mc.IRON) - fillshape(mengersponge(3), shift(28,0,75), mc.IRON) + fillshape(mengersponge(0), shift(70,0,75), IRON_BLOCK) + fillshape(mengersponge(1), shift(66,0,75), IRON_BLOCK) + fillshape(mengersponge(2), shift(56,0,75), IRON_BLOCK) + fillshape(mengersponge(3), shift(28,0,75), IRON_BLOCK) # Maze. - fillshape(maze(25,25), shift(0,0,75), mc.STONE) + fillshape(maze(25,25), shift(0,0,75), STONE) # Picture - can use the same technique to draw text. # fillshape(cuboid(24,30,1), shift(0,0,30), fillfunc=image("pi.png",24,30)) diff --git a/raspberryjammod/mcpipy/davef21370_maze.py b/raspberryjammod/mcpipy/davef21370_maze.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/daviewales_minesweeper.py b/raspberryjammod/mcpipy/daviewales_minesweeper.py deleted file mode 100755 index 8c43f31..0000000 --- a/raspberryjammod/mcpipy/daviewales_minesweeper.py +++ /dev/null @@ -1,261 +0,0 @@ -#!/usr/bin/env python - -# mcpipy.com retrieved from URL below, written by Davie Wales -# https://bitbucket.org/dwales/minesweeper-for-minecraft-pi-edition/src - - -import sys -import random -import threading -import mcpi.minecraft as minecraft -import server - - -defaultDifficulty = 0.1 -setDifficulty = defaultDifficulty - -class board: - """ The cartesian grid can be done as follows: - board = [["?", "*", "?", "?", "*", "?", "?", "?", "?", "*",], - ["?", "?", "*", "?", "?", "?", "?", "?", "?", "?",], - ["?", "*", "*", "?", "*", "?", "?", "*", "*", "?",], - ["?", "?", "?", "?", "?", "?", "*", "?", "*", "?",], - ["*", "?", "?", "?", "?", "*", "?", "?", "?", "?",], - ["?", "?", "?", "?", "?", "?", "?", "?", "?", "?",], - ["?", "*", "?", "*", "?", "?", "?", "*", "?", "*",], - ["?", "?", "?", "?", "?", "?", "?", "?", "?", "?",], - ["?", "*", "?", "?", "*", "*", "?", "?", "*", "?",], - ["?", "?", "*", "?", "?", "?", "?", "*", "?", "?",]] - - Obviously the grid will be randomly generated on run to fit - within the bounds of the terminal window. - Notice that you can access the state of any tile on the grid with - the simple command "board[x][y]" - i.e. a = board[0][0] makes a == "?", a = board[0][9] makes a == "*" - NOTE: I subsequently changed the code to use nested dictionaries, - rather than lists to represent the board. The general idea is - still the same... - If we use a dictionary rather than a list in the following - function, we will get a KeyError if we try to access a - negative index, assuming we construct the dictionary such - that it has identical indexes to the list equivalent. - i.e. dictionary = {0:{0:" ", 1:" ", 2"*"}, 1:{0:"*", 1:" ", 2:" "}} - This will be helpful, as it will negate the need to explicitly - check whether a particular coordinate is legitimate. i.e. a - dictionary won't match negative values for x, y, but a list will...""" - - """ At the moment we are getting the window size before curses is - initialised, which means that we have to use "stty size". If - we can move this code into the curses section, we can use the - built in window.getmaxyx(). This will make it easier to use - windows smaller than the size of the terminal for the game, - which will in turn allow us to add timers and minecounts.""" - - def __init__(self): - global width, height - width = 10 - height = 10 - - def options(self): - totalTiles = width * height - - #possible choices of tile: either "*" or " " - self.mineNumber = int(setDifficulty * totalTiles) - choices = list(self.mineNumber * "*") - choices.extend(list((totalTiles-len(choices))*" ")) - return choices - - # For every x and y, check all the squares around to see if there is a mine, - # add together the number of mines touching the original square and replace - # the original square with the final count. - def numberise(self, board): - for x in xrange(width): - for y in xrange(height): - count = 0 - if board[x][y] != "*": - for i in xrange(-1, 2): - for n in xrange(-1, 2): - try: - if board[x+i][y+n] == "*": - count += 1 - except KeyError: - pass - if count != 0: - board[x][y] = str(count) - - def create(self): - self.mineCoords = [] - choices = self.options() - board = {} - for i in xrange(0, width): - board[i] = {} - for n in xrange(0, height): - board[i][n] = choices.pop(choices.index(random.choice(choices))) - if board[i][n] == "*": - self.mineCoords.append([i,n]) - - self.numberise(board) - for i in xrange(width): - for n in xrange(height): - minecraftAddBlock(i, n, 1, board[i][n]) - - return board - - def visibleScreen(self): - board = {} - for i in xrange(0, width): - board[i] = {} - for n in xrange(0, height): - board[i][n] = " " - return board - -def minecraftAddBlock(X, Y, Z, mineAttribute): - # This equates values passed through mineAttribute with the actual - # block IDs from Minecraft. - # 0 is Air, 5 is Wood Planks, 4 is cobblestone, coal is 16 - # Iron is 15, Gold is 14, Diamond is 56, Gold Block is 41, - # Diamond Block is 57 - mineDict = {"dirt":3, "*":46, " ":20, 0:0, "1":5, "2":4, "3":16, "4":15, "5":14, "6":56, "7":41, "8":57} - mc.setBlock(X, Y, Z, mineDict[mineAttribute]) - -def explore(x, y, Z): # Z is capitalised because it doesn't - # need to be changed by the function. - """ This is the bit that happens when you click on a blank square - First it checks the squares directly around the clicked square - If the square it checks is a number, it will display it, and - if the square it checks is blank, it will add the blank square's - coordinates to a list or dictionary, then it will keep doing the - same process to all the coordinates in the list, deleting squares - that have been checked, and adding new squares, until the list is - empty. At that point, the area around the original square will be - revealed, as you would expect to happen in minesweeper.""" - - checked = [[x,y]] # Has been checked and contains either a number or ' ' - toBeCentre = [[x, y]] # Each point in this list will be checked on all sides for the above conditions - centred = [] # These points have already been checked on all sides - global cleared - cleared = [] - - while len(toBeCentre) > 0: - X, Y = toBeCentre.pop(0) - centred.append([X,Y]) - minecraftAddBlock(X, Y, Z, 0) - if [X,Y] not in cleared: - cleared.append([X,Y]) - for i in xrange(-1, 2): - for n in xrange(-1, 2): - - # When I was writing this section, it wouldn't work, and wouldn't work - # and then after changing it around a million times, suddenly it started working... - # The only problem is that I don't actually know what I did to make it work... =P - try: - if ((newBoard[X+i][Y+n] in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])and ([X+i, Y+n] not in checked)): - minecraftAddBlock(X+i, Y+n, Z, 0) #newBoard[X+i][Y+n]) - checked.append([X+i, Y+n]) - if [X+i,Y+n] not in cleared: - cleared.append([X+i,Y+n]) - - elif newBoard[X+i][Y+n] == " ": - if (([X+i, Y+n] not in checked) and ([X+i, Y+n] not in toBeCentre)): - toBeCentre.append([X+i, Y+n]) - checked.append([X+i, Y+n]) - except KeyError: - pass - -class WinningCheckThread (threading.Thread): - - def __init__(self, mineCoords, mineNumber, z): - self.mineCoords = mineCoords - self.mineNumber = mineNumber - self.z = z - threading.Thread.__init__(self) - - def run(self): - global running - running = True - mc = minecraft.Minecraft.create() - while running: - ### This is the winning condition... ### - flagCount = 0 - correctFlagCount = 0 - - for x in xrange(width): - for y in xrange(height): - if mc.getBlock(x, y, 0-1) == 50: - flagCount += 1 - if [x,y] in self.mineCoords: - correctFlagCount += 1 - - if (self.mineNumber == correctFlagCount) and (self.mineNumber == flagCount): - for x in xrange(width): - for y in xrange(height): - mc.setBlock(x, y, self.z, 20) - - mc.postToChat("You Win!!!") - running = False - sys.exit() - -class BlockCheckThread(threading.Thread): - - def __init__(self): - - threading.Thread.__init__(self) - def run(self): - global running - running = True - mc = minecraft.Minecraft.create() - while running: - - event = mc.events.pollBlockHits() - - if event: -# mc.postToChat("Hit detected") - eventSplit = str(event[0]).split() - eventSplit = [eventSplit[1][0], eventSplit[2][0], eventSplit[3][0]] - cursorX, cursorY, cursorZ = eventSplit - cursorX = int(cursorX) - cursorY = int(cursorY) - cursorZ = int(cursorZ) - if newBoard[cursorX][cursorY] == "*": - for y in xrange(height): - for x in xrange(width): - # This bit of code's dodgy, because it relies on the - # creation of "newBoard" external to the function... - mc.setBlock(x, y, z, 0) # (If you hit a mine it clears the board.) - mc.postToChat("You Lose!") - running = False - sys.exit() - - if newBoard[cursorX][cursorY] in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']: - #visibleScreen[x][y] = newBoard[x][y] - mc.setBlock(cursorX, cursorY, cursorZ, 0) # We just remove the top layer. - - if newBoard[cursorX][cursorY] == " ": - explore(cursorX, cursorY, cursorZ) - -#def main(): -global running -running = True -mc = minecraft.Minecraft.create(server.address) -board = board() -newBoard = board.create() -visibleScreen = board.visibleScreen() - -for x in xrange(width): - for y in xrange(height): - mc.setBlock(x,y,-1,0) - -z = 0 # For now... We can make this dynamic later. -for y in xrange(height): - for x in xrange(width): - # This bit of code's dodgy, because it relies on the - # creation of "visibleScreen" external to the function... - minecraftAddBlock(x, y, z, "dirt") - -WinningCheck = WinningCheckThread(board.mineCoords, board.mineNumber, z) -BlockCheck = BlockCheckThread() -BlockCheck.daemon -WinningCheck.start() -BlockCheck.start() - -#main() \ No newline at end of file diff --git a/raspberryjammod/mcpipy/dragoncurve.py b/raspberryjammod/mcpipy/dragoncurve.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/drawing.py b/raspberryjammod/mcpipy/drawing.py old mode 100644 new mode 100755 index f97df29..dd763b2 --- a/raspberryjammod/mcpipy/drawing.py +++ b/raspberryjammod/mcpipy/drawing.py @@ -501,7 +501,7 @@ class Drawing: x0 = p[0]+point[0] y0 = p[1]+point[1] z0 = p[2]+point[2] - if (x0,y0,z0) not in self.done: + if (x0,y0,z0) not in done: self.mc.setBlock(x0,y0,z0,block) done.add((x0,y0,z0)) diff --git a/raspberryjammod/mcpipy/fancytree.py b/raspberryjammod/mcpipy/fancytree.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/fleap_railgen.py b/raspberryjammod/mcpipy/fleap_railgen.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/gf_clearZone.py b/raspberryjammod/mcpipy/gf_clearZone.py deleted file mode 100755 index a597cc3..0000000 --- a/raspberryjammod/mcpipy/gf_clearZone.py +++ /dev/null @@ -1,17 +0,0 @@ -#! /usr/bin/python -import mcpi.minecraft as minecraft -import mcpi.block as block -import server - -""" clearZone clears an area and sets a stone floor - takes two x,z pairs clears everything above 0y and then sets - a stone floor at -1y - @author: goldfish""" - -def clearZone( alocx, alocz, blocx, blocz ): - mc.setBlocks( alocx, 0, alocz, blocx, 64, blocz, block.AIR ) - mc.setBlocks( alocx, -1, alocz, blocx, -1, blocz, block.STONE ) - -if __name__ == "__main__": - mc = minecraft.Minecraft.create( server.address ) - clearZone( -20, -20, 20, 20 ) diff --git a/raspberryjammod/mcpipy/gf_drawbuilding.py b/raspberryjammod/mcpipy/gf_drawbuilding.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/glasscube.py b/raspberryjammod/mcpipy/glasscube.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/globe.py b/raspberryjammod/mcpipy/globe.py new file mode 100644 index 0000000..ecf3ee3 --- /dev/null +++ b/raspberryjammod/mcpipy/globe.py @@ -0,0 +1,39 @@ +from mc import * + +def globe(center, radius=40, spacing_degrees=10, block=STAINED_GLASS_YELLOW): + quality = int(radius * 2*pi * 2) + + # longitude lines + longitude_degrees = 0 + while longitude_degrees < 360: + theta = longitude_degrees * 2 * pi / 360 + xmult = radius * cos(theta) + zmult = radius * sin(theta) + for i in range(quality): + phi = 2 * pi * i / quality + y = radius * sin(phi) + x = xmult * cos(phi) + z = zmult * cos(phi) + mc.setBlock(center[0]+x,center[1]+y,center[2]+z,block) + longitude_degrees += spacing_degrees + + # latitude lines + latitude_degrees = -90 + while latitude_degrees <= 90: + phi = latitude_degrees * 2 * pi / 360 + y = radius * sin(phi) + r = radius * cos(phi) + for i in range(quality): + theta = 2 * pi * i / quality + x = r * cos(theta) + z = r * sin(theta) + mc.setBlock(center[0]+x,center[1]+y,center[2]+z,block) + latitude_degrees += spacing_degrees + +if __name__ == "__main__": + mc = Minecraft() + center = mc.player.getPos() + radius = 40 + globe((center.x,center.y+radius,center.z), radius-1, 360./(2*pi*2*radius), STAINED_GLASS_BLUE) + globe((center.x,center.y+radius,center.z), radius, 10, STAINED_GLASS_YELLOW) + \ No newline at end of file diff --git a/raspberryjammod/mcpipy/grenade.py b/raspberryjammod/mcpipy/grenade.py old mode 100644 new mode 100755 index a6811a7..e5707d5 --- a/raspberryjammod/mcpipy/grenade.py +++ b/raspberryjammod/mcpipy/grenade.py @@ -1,4 +1,4 @@ -# +# # Code under the MIT license by Alexander Pruss # @@ -105,4 +105,4 @@ while True: if t > path[-1][0]: break -mc.setBlock(path[-1][1],REDSTONE_BLOCK) +mc.setBlock(path[-1][1],FIRE) diff --git a/raspberryjammod/mcpipy/helloworld.py b/raspberryjammod/mcpipy/helloworld.py index 7ac612b..b21c4fb 100644 --- a/raspberryjammod/mcpipy/helloworld.py +++ b/raspberryjammod/mcpipy/helloworld.py @@ -2,7 +2,7 @@ import mcpi.minecraft as minecraft import mcpi.block as block import server import sys -mc = minecraft.Minecraft.create(server.address) +mc = minecraft.Minecraft() mc.postToChat("Hello world!") playerPos = mc.player.getPos() mc.setBlock(playerPos.x,playerPos.y-1,playerPos.z,block.DIAMOND_ORE) diff --git a/raspberryjammod/mcpipy/hilbert.py b/raspberryjammod/mcpipy/hilbert.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/input.py b/raspberryjammod/mcpipy/input.py new file mode 100755 index 0000000..8a34c46 --- /dev/null +++ b/raspberryjammod/mcpipy/input.py @@ -0,0 +1,148 @@ +# +# Windows-only (right now) +# Copyright (c) 2016 Alexander Pruss. MIT License +# + +from platform import system + +if system() == 'Windows': + from ctypes import windll + + LBUTTON = 1 + RBUTTON = 2 + CANCEL = 3 + MBUTTON = 4 + BACK = 8 + TAB = 9 + CLEAR = 12 + RETURN = 13 + SHIFT = 16 + CONTROL = 17 + MENU = 18 + PAUSE = 19 + CAPITAL = 20 + KANA = 21 + HANGUL = 21 + JUNJA = 23 + FINAL = 24 + HANJA = 25 + KANJI = 25 + ESCAPE = 27 + CONVERT = 28 + NONCONVERT = 29 + ACCEPT = 30 + MODECHANGE = 31 + SPACE = 32 + PRIOR = 33 + NEXT = 34 + END = 35 + HOME = 36 + LEFT = 37 + UP = 38 + RIGHT = 39 + DOWN = 40 + SELECT = 41 + PRINT = 42 + EXECUTE = 43 + SNAPSHOT = 44 + INSERT = 45 + DELETE = 46 + HELP = 47 + LWIN = 91 + RWIN = 92 + APPS = 93 + NUMPAD0 = 96 + NUMPAD1 = 97 + NUMPAD2 = 98 + NUMPAD3 = 99 + NUMPAD4 = 100 + NUMPAD5 = 101 + NUMPAD6 = 102 + NUMPAD7 = 103 + NUMPAD8 = 104 + NUMPAD9 = 105 + MULTIPLY = 106 + ADD = 107 + SEPARATOR = 108 + SUBTRACT = 109 + DECIMAL = 110 + DIVIDE = 111 + F1 = 112 + F2 = 113 + F3 = 114 + F4 = 115 + F5 = 116 + F6 = 117 + F7 = 118 + F8 = 119 + F9 = 120 + F10 = 121 + F11 = 122 + F12 = 123 + F13 = 124 + F14 = 125 + F15 = 126 + F16 = 127 + F17 = 128 + F18 = 129 + F19 = 130 + F20 = 131 + F21 = 132 + F22 = 133 + F23 = 134 + F24 = 135 + NUMLOCK = 144 + SCROLL = 145 + LSHIFT = 160 + RSHIFT = 161 + LCONTROL = 162 + RCONTROL = 163 + LMENU = 164 + RMENU = 165 + PROCESSKEY = 229 + ATTN = 246 + CRSEL = 247 + EXSEL = 248 + EREOF = 249 + PLAY = 250 + ZOOM = 251 + NONAME = 252 + PA1 = 253 + OEM_CLEAR = 254 + XBUTTON1 = 0x05 + XBUTTON2 = 0x06 + VOLUME_MUTE = 0xAD + VOLUME_DOWN = 0xAE + VOLUME_UP = 0xAF + MEDIA_NEXT_TRACK = 0xB0 + MEDIA_PREV_TRACK = 0xB1 + MEDIA_PLAY_PAUSE = 0xB3 + BROWSER_BACK = 0xA6 + BROWSER_FORWARD = 0xA7 + + def getPressState(key): + v = windll.user32.GetAsyncKeyState(int(key)) + return bool(0x8000 & v), bool(0x0001 & v) + + def isPressedNow(key): + return bool(0x8000 & windll.user32.GetAsyncKeyState(int(key))) + + def wasPressedSinceLast(key): + return bool(0x0001 & windll.user32.GetAsyncKeyState(int(key))) + + def clearPressBuffer(key): + while wasPressedSinceLast(key): + pass + +if __name__ == '__main__': + from time import sleep + print("Press ESC to exit. Testing spacebar.") + while True: + if wasPressedSinceLast(ESCAPE): + print("Done") + break + now,last = getPressState(ord(' ')) + if now or last: + print now, last + sleep(0.01) + \ No newline at end of file diff --git a/raspberryjammod/mcpipy/interpreter.py b/raspberryjammod/mcpipy/interpreter.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/jjinux_sierpinski_triangle.py b/raspberryjammod/mcpipy/jjinux_sierpinski_triangle.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/knot.py b/raspberryjammod/mcpipy/knot.py index 48771ea..e69b774 100644 --- a/raspberryjammod/mcpipy/knot.py +++ b/raspberryjammod/mcpipy/knot.py @@ -23,5 +23,5 @@ while t < 2*pi: z = z0+int( scale * sin(5*t) ) if (x,y,z) not in done: mc.setBlock(x,y,z,GOLD_BLOCK) - done[x,y,z] = GOLD_BLOCK + done.add((x,y,z)) t += 2*pi / 10000 diff --git a/raspberryjammod/mcpipy/lforest.py b/raspberryjammod/mcpipy/lforest.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/lsystem.py b/raspberryjammod/mcpipy/lsystem.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/ltree.py b/raspberryjammod/mcpipy/ltree.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mandelbrot.py b/raspberryjammod/mcpipy/mandelbrot.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mandelbulb.py b/raspberryjammod/mcpipy/mandelbulb.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mc.py b/raspberryjammod/mcpipy/mc.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mcdragoncurve.py b/raspberryjammod/mcpipy/mcdragoncurve.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mcpi/block.py b/raspberryjammod/mcpipy/mcpi/block.py index dd5666d..6ab2b0c 100644 --- a/raspberryjammod/mcpipy/mcpi/block.py +++ b/raspberryjammod/mcpipy/mcpi/block.py @@ -11,7 +11,10 @@ class Block: self.nbt = nbt def __eq__(self, rhs): - return self.id == rhs.id and self.data == rhs.data and self.nbt == rhs.nbt + try: + return self.id == rhs.id and self.data == rhs.data and self.nbt == rhs.nbt + except: + return self.data == 0 and self.nbt is None and self.id == rhs def __ne__(self, rhs): return not self.__eq__(rhs) diff --git a/raspberryjammod/mcpipy/mcpi/connection.py b/raspberryjammod/mcpipy/mcpi/connection.py index 1729984..299b549 100644 --- a/raspberryjammod/mcpipy/mcpi/connection.py +++ b/raspberryjammod/mcpipy/mcpi/connection.py @@ -1,9 +1,12 @@ + import socket import select import sys import atexit import os import platform +import base64 +from hashlib import md5 from util import flatten_parameters_to_string """ @author: Aron Nieminen, Mojang AB""" @@ -16,6 +19,7 @@ class Connection: RequestFailed = "Fail" def __init__(self, address=None, port=None): + self.windows = (platform.system() == "Windows" or platform.system().startswith("CYGWIN_NT")) if address==None: try: address = os.environ['MINECRAFT_API_HOST'] @@ -33,11 +37,11 @@ class Connection: self.socket.connect((address, port)) self.readFile = self.socket.makefile("r") self.lastSent = "" - if platform.system() == "Windows": + if self.windows: atexit.register(self.close) def __del__(self): - if platform.system() == "Windows": + if self.windows: self.close() try: atexit.unregister(self.close) @@ -46,13 +50,26 @@ class Connection: def close(self): try: - self.readFile.close() + if self.windows: + # ugly hack to block until all sending is completed + self.sendReceive("world.getBlock",0,0,0) except: pass try: self.socket.close() except: pass + + @staticmethod + def tohex(data): + return "".join((hex(b) for b in data)) + + def authenticate(self, username, password): + challenge = self.sendReceive("world.getBlock",0,0,0) + if challenge.startswith("security.challenge "): + salt = challenge[19:].rstrip() + auth = md5(salt+":"+username+":"+password).hexdigest() + self.send("security.authenticate", auth) def drain(self): """Drains the socket of incoming data""" diff --git a/raspberryjammod/mcpipy/mcpi/entity.py b/raspberryjammod/mcpipy/mcpi/entity.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mcpi/minecraft-pi-edition-LICENSE.txt b/raspberryjammod/mcpipy/mcpi/minecraft-pi-edition-LICENSE.txt old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mcpi/minecraft.py b/raspberryjammod/mcpipy/mcpi/minecraft.py index 96d141c..9759517 100644 --- a/raspberryjammod/mcpipy/mcpi/minecraft.py +++ b/raspberryjammod/mcpipy/mcpi/minecraft.py @@ -5,6 +5,7 @@ from block import Block import math from os import environ from util import flatten,floorFlatten +import security """ Minecraft PI low level api v0.1_1 @@ -185,16 +186,34 @@ class Minecraft: else: self.conn = Connection() + if security.AUTHENTICATION_USERNAME and security.AUTHENTICATION_PASSWORD: + self.conn.authenticate(security.AUTHENTICATION_USERNAME, security.AUTHENTICATION_PASSWORD) + self.camera = CmdCamera(self.conn) self.entity = CmdEntity(self.conn) + + self.playerId = None + if autoId: try: - playerId = int(environ['MINECRAFT_PLAYER_ID']) - self.player = CmdPlayer(self.conn,playerId=playerId) + self.playerId = int(environ['MINECRAFT_PLAYER_ID']) + self.player = CmdPlayer(self.conn,playerId=self.playerId) except: - self.player = CmdPlayer(self.conn) + try: + self.playerId = self.getPlayerId(environ['MINECRAFT_PLAYER_NAME']) + self.player = CmdPlayer(self.conn,playerId=self.playerId) + except: + if security.AUTHENTICATION_USERNAME: + try: + self.playerId = self.getPlayerId(security.AUTHENTICATION_USERNAME) + self.player = CmdPlayer(self.conn,playerId=self.playerId) + except: + self.player = CmdPlayer(self.conn) + else: + self.player = CmdPlayer(self.conn) else: self.player = CmdPlayer(self.conn) + self.events = CmdEvents(self.conn) self.enabledNBT = False @@ -320,7 +339,11 @@ class Minecraft: def getPlayerId(self, *args): """Get the id of the current player""" - return int(self.conn.sendReceive_flat("world.getPlayerId", floorFlatten(args))) + a = tuple(flatten(args)) + if self.playerId is not None and len(a) == 0: + return self.playerId + else: + return int(self.conn.sendReceive_flat("world.getPlayerId", flatten(args))) def getPlayerEntityIds(self): """Get the entity ids of the connected players => [id:int]""" diff --git a/raspberryjammod/mcpipy/mcpi/security.py b/raspberryjammod/mcpipy/mcpi/security.py new file mode 100644 index 0000000..2420ae1 --- /dev/null +++ b/raspberryjammod/mcpipy/mcpi/security.py @@ -0,0 +1,2 @@ +AUTHENTICATION_USERNAME=None +AUTHENTICATION_PASSWORD=None diff --git a/raspberryjammod/mcpipy/mcpi/settings.py b/raspberryjammod/mcpipy/mcpi/settings.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mcpipy.pyproj b/raspberryjammod/mcpipy/mcpipy.pyproj old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mcpipy.sln b/raspberryjammod/mcpipy/mcpipy.sln old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mcturtle.py b/raspberryjammod/mcpipy/mcturtle.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/mengersponge.py b/raspberryjammod/mcpipy/mengersponge.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/minetris.py b/raspberryjammod/mcpipy/minetris.py index 2eedf88..8595e34 100755 --- a/raspberryjammod/mcpipy/minetris.py +++ b/raspberryjammod/mcpipy/minetris.py @@ -1,190 +1,356 @@ # -# requires Windows and pywin32 +# requires Windows (for input.py to work) +# Copyright (c) 2016 Alexander Pruss. MIT License. # + +# +# Make sure to have input.py and text.py in the same directory. +# + + from mc import * from time import sleep,time from random import randint -import win32con,win32api +import input +import text +from fonts import FONTS -HEIGHT = 22 -WIDTH = 9 +FONT = 'thin9pt' #metrix7pt +HEIGHT = 20 +WIDTH = 10 BORDER = WOOL_BLACK BACKGROUND = STAINED_GLASS_BLACK +DELAYS = ( 0.5, 0.45, 0.4, 0.35, 0.3, 0.25, 0.2, 0.15, 0.1, 0.05) + PIECES = ( (('XXXX',), ('.X','.X','.X','.X')), - (('XX','XX'),), - (('XXX', '..X'), ('.X', '.X', 'XX'), ('X','XXX'), ('XX', 'X', 'X')), - (('XXX', 'X'), ('XX', '.X', '.X'), ('..X', 'XXX'), ('X.', 'X.', 'XX')), - (('XX', '.XX'), ('.X','XX', 'X.')), - (('.XX', 'XX'), ('X.', 'XX', '.X')) ) + (('XX','XX'),), + (('XXX', '..X'), ('.X', '.X', 'XX'), ('X','XXX'), ('XX', 'X', 'X')), + (('XXX', 'X'), ('XX', '.X', '.X'), ('..X', 'XXX'), ('X.', 'X.', 'XX')), + (('XX', '.XX'), ('.X','XX', 'X.')), + (('.XX', 'XX'), ('X.', 'XX', '.X')) ) +def inputMoveDown(): + return input.wasPressedSinceLast(input.DOWN) + +def inputMoveLeft(): + return input.wasPressedSinceLast(input.LEFT) + +def inputMoveRight(): + return input.wasPressedSinceLast(input.RIGHT) + +def inputRotateLeft(): + return input.wasPressedSinceLast(input.PRIOR) + +def inputRotateRight(): + return input.wasPressedSinceLast(input.NEXT) + +def inputNext(): + return input.wasPressedSinceLast(ord('N')) + +def inputLevelUp(): + return input.wasPressedSinceLast(ord('L')) + +def inputPause(): + return input.wasPressedSinceLast(ord('P')) + +def answerYes(): + input.clearPressBuffer(ord('Y')) + input.clearPressBuffer(ord('N')) + while True: + if input.wasPressedSinceLast(ord('Y')): + return True + if input.wasPressedSinceLast(ord('N')): + return False + sleep(0.1) + +def clearInput(): + for k in (input.DOWN, input.LEFT, input.RIGHT, + input.PRIOR, input.NEXT, input.UP, + ord('N'), ord('L'), ord('P'), ord('Y')): + input.clearPressBuffer(k) + def drawBoard(): - mc.setBlocks(left-1, bottom-1, plane, left+WIDTH, bottom-1, plane, BORDER) - mc.setBlocks(left-1, bottom+HEIGHT, plane, left+WIDTH, bottom+HEIGHT, plane, BORDER) - mc.setBlocks(left-1, bottom, plane, left, bottom+HEIGHT-1, plane, BORDER) - mc.setBlocks(left+WIDTH, bottom, plane, left+WIDTH, bottom+HEIGHT-1, plane, BORDER) - mc.setBlocks(left-1, bottom-1, plane-1, left+WIDTH, bottom+HEIGHT, plane-1, BACKGROUND) - mc.setBlocks(left, bottom, plane, left+WIDTH-1, bottom+HEIGHT-1, plane, AIR) - + mc.setBlocks(left-1, bottom-1, plane, left+WIDTH, bottom-1, plane, BORDER) + mc.setBlocks(left-1, bottom+HEIGHT, plane, left+WIDTH, bottom+HEIGHT, plane, BORDER) + mc.setBlocks(left-1, bottom, plane, left, bottom+HEIGHT-1, plane, BORDER) + mc.setBlocks(left+WIDTH, bottom, plane, left+WIDTH, bottom+HEIGHT-1, plane, BORDER) + mc.setBlocks(left-1, bottom-1, plane-1, left+WIDTH, bottom+HEIGHT, plane-1, BACKGROUND) + mc.setBlocks(left, bottom, plane, left+WIDTH-1, bottom+HEIGHT-1, plane, AIR) + def pieceWidth(piece): - return max((len(a) for a in piece[orientation])) - + return max((len(a) for a in piece)) + def enumeratePiece(x, y, piece): - for row in range(len(piece)): - for col in range(len(piece[row])): - if piece[row][col] == 'X': - yield (x+col,y-row) - -def erasePiece(buffer, x, y, piece): - for (xx,yy) in enumeratePiece(x,y, piece): - buffer[(left+xx,bottom+yy)] = AIR + for row in range(len(piece)): + if y-row < HEIGHT: + for col in range(len(piece[row])): + if piece[row][col] == 'X': + yield (x+col,y-row) -def drawPiece(buffer, x, y, piece, color): - for (xx,yy) in enumeratePiece(x,y, piece): - if (left+xx,bottom+yy) in buffer and buffer[(left+xx,bottom+yy)] == AIR: - del buffer[(left+xx,bottom+yy)] - else: - buffer[(left+xx,bottom+yy)] = color - +def movePiece(oldX, oldY, oldPiece, x, y, piece, color): + new = set(enumeratePiece(x, y, piece)) + if oldPiece: + old = set(enumeratePiece(oldX, oldY, oldPiece)) + + for (x,y) in old-new: + mc.setBlock(x+left, y+bottom, plane, AIR) + + new = new - old + + for (x,y) in new: + mc.setBlock(x+left, y+bottom, plane, color) + +def eraseNext(): + mc.setBlocks(left+WIDTH+2,bottom+3,plane,left+WIDTH+2+3,bottom+6,plane,AIR) + +def drawNext(): + eraseNext() + for (x,y) in enumeratePiece(WIDTH+2, 6, nextFamily[nextOrientation]): + mc.setBlock(x+left, y+bottom, plane, nextColor) + def drawBuffer(buffer): - for x,y in buffer: - mc.setBlock(x,y,plane,buffer[(x,y)]) + for x,y in buffer: + mc.setBlock(x,y,plane,buffer[(x,y)]) +def makeNext(): + global nextFamily, nextColor, nextOrientation + n = randint(0, len(PIECES)-1) + nextFamily = PIECES[n] + nextColor = Block(WOOL.id, (n+1) % 16) + nextOrientation = randint(0, len(nextFamily)-1) + def placePiece(): - global pieceNum, color, family, orientation, x, y, fall, descendDelay - pieceNum = randint(0, len(PIECES)-1) - color = Block(WOOL.id, (pieceNum+1) % 16) - family = PIECES[pieceNum] - orientation = 0 - x = WIDTH // 2 - pieceWidth(family[orientation]) - y = HEIGHT - 1 - descendDelay = currentDescendDelay - fall = False - + global color, family, orientation, descendDelay, droppedFrom, didShowNext + family = nextFamily + orientation = nextOrientation + color = nextColor + makeNext() + piece = family[orientation] + x = WIDTH // 2 - pieceWidth(piece) + y = HEIGHT + len(piece) - 2 + descendDelay = currentDescendDelay + droppedFrom = None + didShowNext = showNext + if showNext: + drawNext() + return (x,y) + def fit(x, y, piece): - for (xx,yy) in enumeratePiece(x, y, piece): - if yy >= HEIGHT or yy < 0 or xx >= WIDTH or xx < 0 or board[xx][yy] is not None: - return False - return True - - + for (xx,yy) in enumeratePiece(x, y, piece): + if yy < 0 or xx >= WIDTH or xx < 0 or board[xx][yy] is not None: + return False + return True + def descend(): - global descendTimer - if descendTimer + descendDelay <= time(): - descendTimer += descendDelay - return True - return False - -def moveDown(): - return (win32api.GetAsyncKeyState(win32con.VK_DOWN)&1) - -def moveLeft(): - return (win32api.GetAsyncKeyState(win32con.VK_LEFT)&1) - -def moveRight(): - return (win32api.GetAsyncKeyState(win32con.VK_RIGHT)&1) + global descendTimer + if descendTimer + descendDelay <= time(): + descendTimer += descendDelay + return True + return False -def rotateLeft(): - return (win32api.GetAsyncKeyState(win32con.VK_PRIOR)&1) - -def rotateRight(): - return (win32api.GetAsyncKeyState(win32con.VK_NEXT)&1) or (win32api.GetAsyncKeyState(win32con.VK_UP)&1) - +def hide(): + mc.setBlocks(left, bottom, plane, left+WIDTH-1, bottom+HEIGHT-1, plane, GLASS) + text.drawText(mc, FONTS['nicefontbold'], + Vec3(left+WIDTH//2,bottom+5,plane), + Vec3(1,0,0), Vec3(0,1,0), + "P", SEA_LANTERN, align=text.ALIGN_CENTER) + + +def restore(x, y): + for xx in range(WIDTH): + for yy in range(HEIGHT): + mc.setBlock(xx+left,yy+bottom,plane,board[xx][yy] or AIR) + movePiece(None, None, None, x, y, family[orientation], color) + def addPiece(x, y, piece, color): - for (xx,yy) in enumeratePiece(x, y, piece): - board[xx][yy] = color - while True: - foundRow = False - for y in range(HEIGHT): - full = True - for x in range(WIDTH): - if board[x][y] is None: - full = False - break - if full: - foundRow = True - for y2 in range(y, HEIGHT-1): - for x in range(WIDTH): - b = board[x][y2+1] - board[x][y2] = b - mc.setBlock(left+x,bottom+y2,plane,b if b is not None else AIR) - for x in range(WIDTH): - board[x][HEIGHT-1] = None - mc.setBlock(left+x,bottom+HEIGHT-1,plane,AIR) - - if not foundRow: - break + global score,level,totalDropped + + for (xx,yy) in enumeratePiece(x, y, piece): + board[xx][yy] = color + + dropCount = 0 + while True: + foundRow = False + for y in range(HEIGHT): + full = True + for x in range(WIDTH): + if board[x][y] is None: + full = False + break + if full: + dropCount += 1 + foundRow = True + for y2 in range(y, HEIGHT-1): + for x in range(WIDTH): + b = board[x][y2+1] + board[x][y2] = b + mc.setBlock(left+x,bottom+y2,plane,b if b is not None else AIR) + for x in range(WIDTH): + board[x][HEIGHT-1] = None + mc.setBlock(left+x,bottom+HEIGHT-1,plane,AIR) + + if not foundRow: + break + + if didShowNext: + score += 3 + (3*(level-1))//2 + droppedFrom + else: + score += 5 + 2*(level-1) + droppedFrom + if dropCount: + totalDropped += dropCount + level = 1 + totalDropped // 10 + extraLevels + updateScoreAndLevel() +def updateText(buffer,x,y,s,align): + newBuffer = {} + if s is not None: + text.drawText(mc, FONTS['thin9pt'], + Vec3(x,y,plane), + Vec3(1,0,0), Vec3(0,1,0), + s, SEA_LANTERN, background=None, align=align, buffer=newBuffer) + for pos in buffer: + if pos not in newBuffer: + mc.setBlock(pos, AIR) + for pos in newBuffer: + if pos not in buffer: + mc.setBlock(pos, SEA_LANTERN) + return newBuffer + +def updateScoreAndLevel(): + global scoreBuffer, levelBuffer, currentDescendDelay, level + if level > 10: + level = 10 + scoreBuffer = updateText(scoreBuffer,left+WIDTH+2,bottom+HEIGHT-10,str(score),text.ALIGN_LEFT) + levelBuffer = updateText(levelBuffer,left-1,bottom+HEIGHT-10,str(level),text.ALIGN_RIGHT) + currentDescendDelay = DELAYS[level-1] +def clearScoreAndLevel(): + global scoreBuffer, levelBuffer, currentDescendDelay, level + scoreBuffer = updateText(scoreBuffer,left+WIDTH+2,bottom+HEIGHT-10,None,text.ALIGN_LEFT) + levelBuffer = updateText(levelBuffer,left-1,bottom+HEIGHT-10,None,text.ALIGN_RIGHT) + +def game(): + global score, level, extraLevels, totalDropped, scoreBuffer, levelBuffer, showNext, didShowNext + global orientation, board, descendTimer, droppedFrom, descendDelay + + board = [[None for i in range(HEIGHT)] for j in range(WIDTH)] + + drawBoard() + score = 0 + level = 1 + extraLevels = 0 + totalDropped = 0 + scoreBuffer = {} + levelBuffer = {} + showNext = False + updateScoreAndLevel() + makeNext() + + newPiece = True + + while True: + if newPiece: + x,y = placePiece() + oldPiece = None + if not fit(x, y, family[orientation]): + break + draw = True + newPiece = False + fall = False + clearInput() + descendTimer = time() + else: + oldPiece = family[orientation] + draw = False + oldX = x + oldY = y + + if inputPause(): + t0 = time() + hide() + while not inputPause(): + sleep(0.025) + clearInput() + restore(x, y) + descendTimer += time() - t0 + + if not fall: + if inputLevelUp(): + extraLevels += 1 + level += 1 + updateScoreAndLevel() + descendDelay = currentDescendDelay + + if inputMoveLeft() and fit(x-1, y, family[orientation]): + x -= 1 + draw = True + + if inputMoveRight() and fit(x+1, y, family[orientation]): + x += 1 + draw = True + + if inputRotateLeft() and fit(x, y, family[(orientation-1)%len(family)]): + orientation = (orientation-1)%len(family) + draw = True + + if inputRotateRight() and fit(x, y, family[(orientation+1)%len(family)]): + orientation = (orientation+1)%len(family) + draw = True + + if inputMoveDown(): + fall = True + droppedFrom = y+1-len(family[orientation]) + descendDelay = 0.05 + + if inputNext(): + showNext = not showNext + if showNext: + didShowNext = True + drawNext() + else: + eraseNext() + + if descend(): + if not fit(x, y-1, family[orientation]): + if droppedFrom is None: + droppedFrom = y+1-len(family[orientation]) + addPiece(x, y, family[orientation], color) + newPiece = True + else: + draw = True + y -= 1 + + if draw: + movePiece(oldX, oldY, oldPiece, x, y, family[orientation], color) + + sleep(0.025) + + return score + mc = Minecraft() +mc.postToChat("Left/Right arrow: move") +mc.postToChat("Up: rotate right") +mc.postToChat("PageUp/PageDown: rotate left/right") +mc.postToChat("N: toggle view next") +mc.postToChat("P: pause") +mc.postToChat("L: next level") + playerPos = mc.player.getTilePos() mc.player.setRotation(180) -mc.player.setPitch(-30) -mc.player.setTilePos(playerPos.x, playerPos.y, playerPos.z + 10) +mc.player.setPitch(-26) +mc.player.setTilePos(playerPos.x, playerPos.y, playerPos.z + 14) + left = playerPos.x - WIDTH // 2 plane = playerPos.z bottom = playerPos.y + 1 -board = [[None for i in range(HEIGHT)] for j in range(WIDTH)] -currentDescendDelay = 0.5 - -drawBoard() - -newPiece = True while True: - if newPiece: - placePiece() - oldPiece = None - if not fit(x, y, family[orientation]): - mc.postToChat("Doesn't fit: End of game") - print "no fit" - break - draw = True - newPiece = False - descendTimer = time() - else: - oldPiece = family[orientation] - draw = False - oldX = x - oldY = y - - if not fall: - if moveLeft() and fit(x-1, y, family[orientation]): - x -= 1 - draw = True - - if moveRight() and fit(x+1, y, family[orientation]): - x += 1 - draw = True - - if rotateLeft() and fit(x, y, family[(orientation-1)%len(family)]): - orientation = (orientation-1)%len(family) - draw = True - - if rotateRight() and fit(x, y, family[(orientation+1)%len(family)]): - orientation = (orientation+1)%len(family) - draw = True - - if moveDown(): - fall = True - descendDelay = 0.05 - - if descend(): - if not fit(x, y-1, family[orientation]): - addPiece(x, y, family[orientation], color) - newPiece = True - else: - draw = True - y -= 1 - - if draw: - buffer = {} - if oldPiece: - erasePiece(buffer, oldX, oldY, oldPiece) - drawPiece(buffer, x, y, family[orientation], color) - drawBuffer(buffer) - - sleep(0.1) - -print "done" + s = game() + mc.postToChat("Game Over: You got %d points" % s) + mc.postToChat("Play again? (Y/N)") + if not answerYes(): + mc.postToChat("Goodbye!") + break + clearScoreAndLevel() \ No newline at end of file diff --git a/raspberryjammod/mcpipy/models/dragon.txt b/raspberryjammod/mcpipy/models/dragon.txt old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/models/knight.txt b/raspberryjammod/mcpipy/models/knight.txt new file mode 100644 index 0000000..68a4089 --- /dev/null +++ b/raspberryjammod/mcpipy/models/knight.txt @@ -0,0 +1,17 @@ +file 'knight.stl' +swapyz 1 +urlgz https://raw.githubusercontent.com/arpruss/raspberryjammod/master/models/knight.stl.gz +credits Knight from Chess - Classic Set by SteedMaker. CC Attribution Share Alike 3.0 +yaw 0 +pitch 0 +roll 0 +size 100 +default STAINED_GLASS_BLUE +#order material position +materials +end + +Knight from Chess - Classic Set by SteedMaker. +http://www.thingiverse.com/thing:34017 +licensed under the Creative Commons - Attribution - Share Alike license 3.0 +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/raspberryjammod/mcpipy/nt7s_sphere.py b/raspberryjammod/mcpipy/nt7s_sphere.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/obsidz_teleport.py b/raspberryjammod/mcpipy/obsidz_teleport.py deleted file mode 100755 index 7ec7910..0000000 --- a/raspberryjammod/mcpipy/obsidz_teleport.py +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env python - -import mcpi.minecraft as minecraft -import mcpi.block as block -import time -import server - - -#Author: Obsidz -# -#Description: This is a teleport pad script. -# To create a pad, place a nether reactor core onto a location and ring with cobbledtone blocks -# To add to locations list walk over it -# -#Notes: Pads added to list by walking over them -# Pads not removed if destroyed but can be teleported to but not from -# You cannot teleport to the same pad without modifying script -# Pads need to be added each time the script is run - -# modified version - as shared on mcpipy.com -# original post @ http://www.minecraftforum.net/topic/1691618-teleportation-python-script/ - -LPLoc = list() - -Pads = 0 -Cpad = 0 - -# If you are running this script with the bukkit mod, then use a diamond block as the magic center block for teleporting -# comment/uncomment below as appropriate -magic_block = block.DIAMOND_BLOCK.id # for bukkit server -#magic_block = block.NETHER_REACTOR_CORE.id # for raspberry pi - -def isLaunchPad(): #checks if the the location below the player is a teleporting pad - loc = mc.player.getPos() - if ((mc.getBlock(loc.x,loc.y-1,loc.z) == magic_block) and - (mc.getBlock(loc.x-1,loc.y-1,loc.z-1) == block.COBBLESTONE.id) and - (mc.getBlock(loc.x-1,loc.y-1,loc.z) == block.COBBLESTONE.id) and - (mc.getBlock(loc.x-1,loc.y-1,loc.z+1) == block.COBBLESTONE.id) and - (mc.getBlock(loc.x,loc.y-1,loc.z+1) == block.COBBLESTONE.id) and - (mc.getBlock(loc.x,loc.y-1,loc.z-1) == block.COBBLESTONE.id) and - (mc.getBlock(loc.x+1,loc.y-1,loc.z-1) == block.COBBLESTONE.id) and - (mc.getBlock(loc.x+1,loc.y-1,loc.z) == block.COBBLESTONE.id) and - (mc.getBlock(loc.x+1,loc.y-1,loc.z+1) == block.COBBLESTONE.id)): - addLPLoc(loc) - return True - else: - return False -def addLPLoc(Vec3): #Loggs the location of the pad for future use - global Pads - global LPLoc - - inList = False - if Pads > 0: - for loc in LPLoc: - if (loc.x == Vec3.x and loc.y == Vec3.y and loc.z == Vec3.z): - inList = True - - if not inList: - LPLoc.append(Vec3) - mc.postToChat("I'll remember this pad location!") - Pads = len(LPLoc) -def locCheck(): #Checks that you are not teleporting to the same pad - - global Cpad - global LPLoc - loc = mc.player.getPos() - if (loc.x == LPLoc[Cpad].x and loc.y == LPLoc[Cpad].y and loc.z == LPLoc[Cpad].z): - Cpad = Cpad + 1 -def TPChar(): #sends the character to the next pad - global Pads - global Cpad - global LPLoc - - if Pads > 1: - mc.player.setPos(LPLoc[Cpad].x,LPLoc[Cpad].y + 1,LPLoc[Cpad].z) - Cpad = ( Cpad + 1) % Pads - time.sleep(3.0) - -if __name__ == "__main__": # The script - - mc = minecraft.Minecraft.create(server.address) - while True: - if isLaunchPad(): - TPChar() - - time.sleep(0.1) \ No newline at end of file diff --git a/raspberryjammod/mcpipy/ovalegg.png b/raspberryjammod/mcpipy/ovalegg.png new file mode 100644 index 0000000000000000000000000000000000000000..684642e511f8edf403fc4e4ac4330abad0ed1536 GIT binary patch literal 267550 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
?{yHTO*10_{ra)gQ* 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�k9^WNerD#1cVyz_bM9nPK&{ByS2{E+L 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ÐiadLOGm|Jv(UKnJw)4QR4S4x$F@e^dc5#;w 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: + if len(tokens) > 1: b.data = int(eval(tokens[1])) return Block(b.id,b.data) @@ -122,6 +122,33 @@ class MeshFile(object): self.objectData = {} self.objects = [] +class MeshSTLBinary(MeshFile): + def __init__(self, filename, myopen=open, swapYZ=False): + super(MeshSTLBinary,self).__init__() + + with myopen(filename, "rb") as f: + header = f.read(80) + assert not header.startswith("solid") + assert len(header) == 80 + + vertexCount = 0 + + numTriangles = struct.unpack("=3 and args[0]=='element': + if len(args) >= 3 and args[0] == 'element': elementCounts.append((args[1],int(args[2]))) assert len(elementCounts) >= 2 for element,count in elementCounts: @@ -333,8 +360,8 @@ class Mesh3DS(MeshFile): self.skip(lengthRemaining) def handle_KEYF_PIVOT(self,lengthRemaining): - self.object_pivot = V3(struct.unpack(" 0: @@ -403,7 +430,7 @@ class Mesh3DS(MeshFile): lengthRemaining -= chunkLength - 6 def handle_TRI_LOCAL(self,lengthRemaining): - m = [ [1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1] ] + m = [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]] for i in xrange(4): for j in xrange(3): m[j][i] = struct.unpack(" maximum[i]: maximum[i] = vertex[i] - center = [(maximum[i] + minimum[i])/2 for i in range(3)] + center = [(maximum[i] + minimum[i]) / 2 for i in range(3)] - maxsize = max( ( maximum[i]-minimum[i] for i in range(3) ) ) + maxsize = max(( maximum[i] - minimum[i] for i in range(3) )) scale = self.size / maxsize - translate = V3(bottomCenter.x-scale*center[0], bottomCenter.y-scale*minimum[1], bottomCenter.z-scale*center[2]) + translate = V3(bottomCenter.x - scale * center[0], bottomCenter.y - scale * minimum[1], bottomCenter.z - scale * center[2]) for i in range(len(self.vertices)): self.vertices[i] = self.vertices[i] * scale + translate @@ -801,12 +835,12 @@ def go(filename, args=[]): # main program if __name__ == "__main__": - if len(sys.argv)<2: + if len(sys.argv) < 2: if settings.isPE: go("models/RaspberryPi.txt") else: - from Tkinter import * from tkFileDialog import askopenfilename + from Tkinter import * master = Tk() master.wm_title("render") master.attributes("-topmost", True) @@ -835,7 +869,7 @@ if __name__ == "__main__": c.select() def selectFileAndGo(): - name=askopenfilename(initialdir='models',filetypes=['controlfile {*.txt}']) + name = askopenfilename(initialdir='models',filetypes=['controlfile {*.txt}', 'all {*}']) if name: options = '-' if not clearing: diff --git a/raspberryjammod/mcpipy/sierpinski3d.py b/raspberryjammod/mcpipy/sierpinski3d.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/simplefractaltree.py b/raspberryjammod/mcpipy/simplefractaltree.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/simpletree.py b/raspberryjammod/mcpipy/simpletree.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/snowbound_flatmap.py b/raspberryjammod/mcpipy/snowbound_flatmap.py deleted file mode 100755 index fcce183..0000000 --- a/raspberryjammod/mcpipy/snowbound_flatmap.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python - - -# mcpipy.com retrieved from URL below, written by snowbound -# http://www.minecraftforum.net/topic/1680160-simple-flatmap-script/ - - -import sys -import mcpi.minecraft as minecraft -import mcpi.block as block -import server - - -mc = minecraft.Minecraft.create(server.address) -mc.setBlocks(-128,0,-128,128,64,128,0) -if(len(sys.argv) > 1): - bid = int(sys.argv[1]) -else: - bid = block.SANDSTONE.id - -if bid < 0 or bid > 108: - bid = block.SANDSTONE.id - -mc.setBlocks(-128,0,-128,128,-64,128,bid) diff --git a/raspberryjammod/mcpipy/snowflake.py b/raspberryjammod/mcpipy/snowflake.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/spacefill.py b/raspberryjammod/mcpipy/spacefill.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/spiral.py b/raspberryjammod/mcpipy/spiral.py old mode 100755 new mode 100644 index e20f526..f988e7a --- a/raspberryjammod/mcpipy/spiral.py +++ b/raspberryjammod/mcpipy/spiral.py @@ -8,7 +8,7 @@ import math def draw_horizontal_disc(cx, cy, cz, radius, block_type, meta): for x in range(-radius, radius): for z in range(-radius, radius): - if (x**2 + z**2 <= radius): + if (x**2 + z**2 <= radius**2): mc.setBlock(cx + x, cy, cz + z, block_type, meta) def draw_spiral(mcx,mcy,mcz,major_radius,minor_radius,height,period,phase,block_type,meta): diff --git a/raspberryjammod/mcpipy/squarecurve.py b/raspberryjammod/mcpipy/squarecurve.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/stuffaboutcode_basics.py b/raspberryjammod/mcpipy/stuffaboutcode_basics.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/stuffaboutcode_bridge.py b/raspberryjammod/mcpipy/stuffaboutcode_bridge.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/stuffaboutcode_clock.py b/raspberryjammod/mcpipy/stuffaboutcode_clock.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/stuffaboutcode_hideandseek.py b/raspberryjammod/mcpipy/stuffaboutcode_hideandseek.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/teleport.py b/raspberryjammod/mcpipy/teleport.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/test.py b/raspberryjammod/mcpipy/test.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/text.py b/raspberryjammod/mcpipy/text.py index 67419de..fd69baa 100644 --- a/raspberryjammod/mcpipy/text.py +++ b/raspberryjammod/mcpipy/text.py @@ -6,8 +6,12 @@ import sys import time import mcpi.minecraft as minecraft +ALIGN_LEFT = 0 +ALIGN_RIGHT = 1 +ALIGN_CENTER = 2 + # vectors must be minecraft.Vec3 -def drawGlyph(mc, pos, forwardVec, upVec, glyph, foreground, background=None): +def drawGlyph(mc, pos, forwardVec, upVec, glyph, foreground, background=None, buffer=None): bitmap = glyph[3] height = len(bitmap) width = glyph[0] @@ -17,36 +21,54 @@ def drawGlyph(mc, pos, forwardVec, upVec, glyph, foreground, background=None): for i in range(height): pixelPos = pos + upVec*(height-1-i) + forwardVec*offset for j in range(width): - if not foreground is None and 0 != bitmap[i] & (1 << (width-1-j)): - mc.setBlock(pixelPos, foreground) - elif not background is None and 0 == bitmap[i] & (1 << (width-1-j)): - mc.setBlock(pixelPos, background) + if foreground is not None and 0 != bitmap[i] & (1 << (width-1-j)): + if buffer is not None: + buffer[(pixelPos.x,pixelPos.y,pixelPos.z)] = foreground + else: + mc.setBlock(pixelPos, foreground) + elif background is not None and 0 == bitmap[i] & (1 << (width-1-j)): + if buffer is not None: + buffer[(pixelPos.x,pixelPos.y,pixelPos.z)] = background + else: + mc.setBlock(pixelPos, background) pixelPos += forwardVec return pos + forwardVec*delta +def textLength(font, text): + l = 0 + for value in text: + try: + glyph = font[value] + except: + glyph = font[32] + l += glyph[2] + return l -def drawText(mc, font, pos, forwardVec, upVec, text, foreground, background=None): +def drawText(mc, font, pos, forwardVec, upVec, text, foreground=None, background=None, align=ALIGN_LEFT, buffer=None): try: - text = text.decode("cp1252") + text = bytearray(text.encode("cp1252")) except: - text = text.decode("iso8859_1") + text = bytearray(text.encode("iso8859_1")) pixelPos = pos.clone() height = len(font[32][3]) - numLines = text.count("\n")+1 - pixelPos += upVec * ((numLines-1) * height) + lines = text.split(b'\n') + pixelPos += upVec * ((len(lines)-1)* height) lineStart = pixelPos.clone() - for c in text: - value = ord(c) - - if value == 10: - lineStart += upVec * (-height) - pixelPos = lineStart.clone() - else: + for line in lines: + pixelPos = lineStart.clone() + if align == ALIGN_RIGHT: + pixelPos -= forwardVec * textLength(font, line) + elif align == ALIGN_CENTER: + pixelPos -= forwardVec * (0.5 * textLength(font, line)) + + for value in line: try: glyph = font[value] except: glyph = font[32] - pixelPos = drawGlyph(mc, pixelPos, forwardVec, upVec, glyph, foreground, background) + pixelPos = drawGlyph(mc, pixelPos, forwardVec, upVec, glyph, foreground, background, buffer) + + lineStart += upVec * (-height) return pixelPos def angleToTextDirectionCardinal(angle): @@ -87,4 +109,4 @@ if __name__ == '__main__': del sys.argv[0] text = " ".join(sys.argv) - drawText(mc, fonts.FONTS['tallfont'], pos, forward, minecraft.Vec3(0,1,0), text, foreground, background) + drawText(mc, fonts.FONTS['metrix7pt'], pos, forward, minecraft.Vec3(0,1,0), text, foreground, background, align=ALIGN_RIGHT) diff --git a/raspberryjammod/mcpipy/top.py b/raspberryjammod/mcpipy/top.py new file mode 100644 index 0000000..cdbfce9 --- /dev/null +++ b/raspberryjammod/mcpipy/top.py @@ -0,0 +1,6 @@ +from mc import * + +mc = Minecraft() + +playerPos = mc.player.getTilePos() +mc.player.setPos(playerPos.x, mc.getHeight(playerPos.x, playerPos.z)+1, playerPos.z) diff --git a/raspberryjammod/mcpipy/toschematic.py b/raspberryjammod/mcpipy/toschematic.py new file mode 100644 index 0000000..ebd41e4 --- /dev/null +++ b/raspberryjammod/mcpipy/toschematic.py @@ -0,0 +1,84 @@ +from mc import * +from ast import literal_eval +import os +import sys +import re +import mcpi.nbt as nbt +from struct import pack +from vehicle import getLoadPath + +def load(filename): + with open(filename) as f: + data = ''.join(f.readlines()) + result = re.search("=\\s*(.*)",data) + if result is None: + raise ValueError + + # Check to ensure only function called is Block() by getting literal_eval to + # raise an exception when "Block" is removed and the result isn't a literal. + # This SHOULD make the eval call safe, though USE AT YOUR OWN RISK. Ideally, + # one would walk the ast parse tree and use a whitelist. + literal_eval(result.group(1).replace("Block","")) + + return eval(result.group(1)) + +def toSchematic(vehicle): + x0 = min(x for (x,y,z) in vehicle) + y0 = min(y for (x,y,z) in vehicle) + z0 = min(z for (x,y,z) in vehicle) + x1 = max(x for (x,y,z) in vehicle) + y1 = max(y for (x,y,z) in vehicle) + z1 = max(z for (x,y,z) in vehicle) + schematic = nbt.NBTFile() + schematic.name = "Schematic" + schematic.tags.append(nbt.TAG_Short(name="Width", value = x1-x0+1)) + schematic.tags.append(nbt.TAG_Short(name="Height", value = y1-y0+1)) + schematic.tags.append(nbt.TAG_Short(name="Length", value = z1-z0+1)) + schematic.tags.append(nbt.TAG_String(name="Materials", value="Alpha")) + ids = b'' + metas = b'' + + for y in range(y0,y1+1): + for z in range(z0,z1+1): + for x in range(x0,x1+1): + try: + b = vehicle[(x,y,z)] + except: + b = Block(0) + ids += pack("B", b.id) + metas += pack("B", b.data) + + blocks = nbt.TAG_Byte_Array(name="Blocks") + blocks.value = ids + schematic.tags.append(blocks) + data = nbt.TAG_Byte_Array(name="Data") + data.value = metas + schematic.tags.append(data) + schematic.tags.append(nbt.TAG_List(name="Entities", type=nbt.TAG_Compound)) + schematic.tags.append(nbt.TAG_List(name="TileEntities", type=nbt.TAG_Compound)) + + return schematic + +def vehicleToSchematic(vehiclePath, schematicPath): + angle,highWater,vehicle = load(vehiclePath) + nbt = toSchematic(vehicle) + nbt.write_file(schematicPath) + +if __name__ == '__main__': + directory = os.path.join(os.path.dirname(sys.argv[0]),"vehicles") + if len(sys.argv) >= 2: + if sys.argv[1].endswith(".py"): + name = directory + "/" + sys.argv[1] + else: + name = directory + "/" + sys.argv[1] + ".py" + else: + name = getLoadPath(directory, "py") + + out = name + + if out.endswith(".py"): + out = name[:-2] + "schematic" + else: + out += ".schematic" + + vehicleToSchematic(name, out) diff --git a/raspberryjammod/mcpipy/trefoil.py b/raspberryjammod/mcpipy/trefoil.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/trefoil2.py b/raspberryjammod/mcpipy/trefoil2.py old mode 100755 new mode 100644 diff --git a/raspberryjammod/mcpipy/turtleconsole.py b/raspberryjammod/mcpipy/turtleconsole.py old mode 100644 new mode 100755 index a5b2b32..0d4cf49 --- a/raspberryjammod/mcpipy/turtleconsole.py +++ b/raspberryjammod/mcpipy/turtleconsole.py @@ -1,3 +1,7 @@ +# +# WARNING: If you're running RJM on a server, do NOT include this script server-side for security reasons. +# + # # Code under the MIT license by Alexander Pruss # @@ -28,6 +32,8 @@ def inputLine(prompt): return 'quit()' elif c.message == ' ': return '' + elif "__" in c.message: + sys.exit(); else: return c.message time.sleep(0.2) diff --git a/raspberryjammod/mcpipy/turtledonut.py b/raspberryjammod/mcpipy/turtledonut.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/vehicle.py b/raspberryjammod/mcpipy/vehicle.py old mode 100644 new mode 100755 diff --git a/raspberryjammod/mcpipy/win32move.py b/raspberryjammod/mcpipy/win32move.py new file mode 100644 index 0000000..0fcc670 --- /dev/null +++ b/raspberryjammod/mcpipy/win32move.py @@ -0,0 +1,67 @@ +from mc import * +from time import sleep +from sys import argv +import input + +mc = Minecraft() + +player = True + +if len(argv)>=2 and argv[1] != "me": + playerPos = mc.player.getPos() + playerYaw = mc.player.getRotation() + entity = mc.spawnEntity(argv[1], playerPos.x - sin(radians(playerYaw)), playerPos.z, + playerPos.z + cos(radians(playerYaw)), "{NoAI:1}") + player = False +else: + entity = mc.getPlayerId() + +lastPlatform = None +lastPlatformBlock = None + +UNSOLID = set([WATER_FLOWING.id,WATER_STATIONARY.id,AIR.id,LAVA_FLOWING.id,LAVA_STATIONARY.id]) + +while True: + pos = mc.entity.getPos(entity) + yaw = mc.entity.getRotation(entity) + move = False + if input.wasPressedSinceLast(input.NEXT): + pos.y -= 1 + move = True + if input.wasPressedSinceLast(input.PRIOR): + pos.y += 1 + move = True + if input.wasPressedSinceLast(input.LEFT): + yaw -= 15 + mc.entity.setRotation(entity,yaw) + if input.wasPressedSinceLast(input.RIGHT): + yaw += 15 + mc.entity.setRotation(entity,yaw) + if input.wasPressedSinceLast(input.UP): + pos.x += .5 * -sin(radians(yaw)) + pos.z += .5 * cos(radians(yaw)) + move = True + if input.wasPressedSinceLast(input.DOWN): + pos.x -= .5 * -sin(radians(yaw)) + pos.z -= .5 * cos(radians(yaw)) + move = True + if move: + if player: + under = (int(floor(pos.x)),int(floor(pos.y))-1,int(floor(pos.z))) + block = mc.getBlock(under) + if block in UNSOLID: + drew = under + mc.setBlock(drew,GLASS) + else: + drew = None + mc.entity.setPos(entity,pos) + if lastPlatform != under: + mc.setBlock(lastPlatform,AIR) + lastPlatform = None + if drew: + lastPlatform = drew + lastPlatformBlock = block + else: + mc.entity.setPos(entity,pos) + sleep(0.2) + \ No newline at end of file diff --git a/raspberryjammod/mcpipy/zhuowei_rainbow.py b/raspberryjammod/mcpipy/zhuowei_rainbow.py old mode 100755 new mode 100644