|
1 | | -import RPi.GPIO as GPIO |
2 | 1 | import time |
| 2 | +import board |
3 | 3 | import mcpi.minecraft as minecraft |
| 4 | +from digitalio import DigitalInOut, Direction |
4 | 5 | mc = minecraft.Minecraft.create() |
5 | 6 |
|
6 | | -GPIO.setmode(GPIO.BCM) |
| 7 | +# set the GPIO input pins |
| 8 | +pad0_pin = board.D22 |
| 9 | +pad1_pin = board.D21 |
| 10 | +pad2_pin = board.D17 |
| 11 | +pad3_pin = board.D24 |
| 12 | +pad4_pin = board.D23 |
7 | 13 |
|
8 | | -#set the GPIO input pins |
9 | | -pad0 = 22 |
10 | | -pad1 = 27 |
11 | | -pad2 = 17 |
12 | | -pad3 = 24 |
13 | | -pad4 = 23 |
| 14 | +pad0 = DigitalInOut(pad0_pin) |
| 15 | +pad1 = DigitalInOut(pad1_pin) |
| 16 | +pad2 = DigitalInOut(pad2_pin) |
| 17 | +pad3 = DigitalInOut(pad3_pin) |
| 18 | +pad4 = DigitalInOut(pad4_pin) |
14 | 19 |
|
15 | | -GPIO.setup(pad0, GPIO.IN) |
16 | | -GPIO.setup(pad1, GPIO.IN) |
17 | | -GPIO.setup(pad2, GPIO.IN) |
18 | | -GPIO.setup(pad3, GPIO.IN) |
19 | | -GPIO.setup(pad4, GPIO.IN) |
| 20 | +pad0.direction = Direction.INPUT |
| 21 | +pad1.direction = Direction.INPUT |
| 22 | +pad2.direction = Direction.INPUT |
| 23 | +pad3.direction = Direction.INPUT |
| 24 | +pad4.direction = Direction.INPUT |
20 | 25 |
|
21 | | -pad0alreadyPressed = False |
22 | | -pad3alreadyPressed = False |
23 | | -pad4alreadyPressed = False |
| 26 | +pad0_already_pressed = False |
| 27 | +pad3_already_pressed = False |
| 28 | +pad4_already_pressed = False |
24 | 29 |
|
25 | 30 | immutable = False |
| 31 | + |
26 | 32 | tnt = 46 |
27 | 33 | water = 9 |
28 | 34 | flowers = 38 |
29 | 35 |
|
30 | 36 | while True: |
31 | | - pad0pressed = not GPIO.input(pad0) |
32 | | - pad1pressed = not GPIO.input(pad1) |
33 | | - pad2pressed = not GPIO.input(pad2) |
34 | | - pad3pressed = not GPIO.input(pad3) |
35 | | - pad4pressed = not GPIO.input(pad4) |
| 37 | + pad0_pressed = not pad0.value |
| 38 | + pad1_pressed = not pad1.value |
| 39 | + pad2_pressed = not pad2.value |
| 40 | + pad3_pressed = not pad3.value |
| 41 | + pad4_pressed = not pad4.value |
36 | 42 |
|
37 | | - if pad0pressed and not pad0alreadyPressed: |
| 43 | + if pad0_pressed and not pad0_already_pressed: |
38 | 44 | #teleport |
39 | 45 | x = 0 |
40 | 46 | y = 0 |
41 | 47 | z = 0 |
42 | 48 | mc.player.setPos(x, y, z) |
43 | | - pad0alreadyPressed = pad0pressed |
| 49 | + pad0_already_pressed = pad0_pressed |
44 | 50 |
|
45 | | - if pad1pressed: |
| 51 | + if pad1_pressed: |
46 | 52 | #Flowers |
47 | 53 | pos = mc.player.getPos() |
48 | 54 | x = pos.x |
49 | 55 | y = pos.y |
50 | 56 | z = pos.z |
51 | 57 | mc.setBlock(x, y, z, flowers) |
52 | 58 |
|
53 | | - if pad2pressed: |
| 59 | + if pad2_pressed: |
54 | 60 | #TNT |
55 | 61 | pos = mc.player.getPos() |
56 | 62 | x = pos.x |
57 | 63 | y = pos.y |
58 | 64 | z = pos.z |
59 | 65 | mc.setBlock(x, y, z, tnt, 1) |
60 | 66 |
|
61 | | - if pad3pressed and not pad3alreadyPressed: |
| 67 | + if pad3_pressed and not pad3_already_pressed: |
62 | 68 | #Chat message: Are in water? |
63 | 69 | pos = mc.player.getPos() |
64 | 70 | block = mc.getBlock(pos.x, pos.y, pos.z) |
65 | 71 | inWater = block == water |
66 | 72 | mc.postToChat("In water: " + str(inWater)) |
67 | | - pad3alreadyPressed = pad3pressed |
| 73 | + pad3_already_pressed = pad3_pressed |
68 | 74 |
|
69 | | - if pad4pressed and not pad4alreadyPressed: |
| 75 | + if pad4_pressed and not pad4_already_pressed: |
70 | 76 | #Immutable |
71 | 77 | immutable = not immutable |
72 | 78 | mc.setting("world_immutable", immutable) |
73 | 79 | mc.postToChat("Immutable: " + str(immutable)) |
74 | | - pad4alreadyPressed = pad4pressed |
| 80 | + pad4_already_pressed = pad4_pressed |
75 | 81 |
|
76 | 82 | time.sleep(0.1) |
0 commit comments