Skip to content

Commit 22943c6

Browse files
author
Mikey Sklar
committed
MC-5pad.py ported to CP, python3 tested and linted
1 parent 99da7d0 commit 22943c6

3 files changed

Lines changed: 111 additions & 29 deletions

File tree

12 KB
Binary file not shown.
Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,82 @@
1-
import RPi.GPIO as GPIO
21
import time
2+
import board
33
import mcpi.minecraft as minecraft
4+
from digitalio import DigitalInOut, Direction
45
mc = minecraft.Minecraft.create()
56

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
713

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)
1419

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
2025

21-
pad0alreadyPressed = False
22-
pad3alreadyPressed = False
23-
pad4alreadyPressed = False
26+
pad0_already_pressed = False
27+
pad3_already_pressed = False
28+
pad4_already_pressed = False
2429

2530
immutable = False
31+
2632
tnt = 46
2733
water = 9
2834
flowers = 38
2935

3036
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
3642

37-
if pad0pressed and not pad0alreadyPressed:
43+
if pad0_pressed and not pad0_already_pressed:
3844
#teleport
3945
x = 0
4046
y = 0
4147
z = 0
4248
mc.player.setPos(x, y, z)
43-
pad0alreadyPressed = pad0pressed
49+
pad0_already_pressed = pad0_pressed
4450

45-
if pad1pressed:
51+
if pad1_pressed:
4652
#Flowers
4753
pos = mc.player.getPos()
4854
x = pos.x
4955
y = pos.y
5056
z = pos.z
5157
mc.setBlock(x, y, z, flowers)
5258

53-
if pad2pressed:
59+
if pad2_pressed:
5460
#TNT
5561
pos = mc.player.getPos()
5662
x = pos.x
5763
y = pos.y
5864
z = pos.z
5965
mc.setBlock(x, y, z, tnt, 1)
6066

61-
if pad3pressed and not pad3alreadyPressed:
67+
if pad3_pressed and not pad3_already_pressed:
6268
#Chat message: Are in water?
6369
pos = mc.player.getPos()
6470
block = mc.getBlock(pos.x, pos.y, pos.z)
6571
inWater = block == water
6672
mc.postToChat("In water: " + str(inWater))
67-
pad3alreadyPressed = pad3pressed
73+
pad3_already_pressed = pad3_pressed
6874

69-
if pad4pressed and not pad4alreadyPressed:
75+
if pad4_pressed and not pad4_already_pressed:
7076
#Immutable
7177
immutable = not immutable
7278
mc.setting("world_immutable", immutable)
7379
mc.postToChat("Immutable: " + str(immutable))
74-
pad4alreadyPressed = pad4pressed
80+
pad4_already_pressed = pad4_pressed
7581

7682
time.sleep(0.1)
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import RPi.GPIO as GPIO
2+
import time
3+
import mcpi.minecraft as minecraft
4+
mc = minecraft.Minecraft.create()
5+
6+
GPIO.setmode(GPIO.BCM)
7+
8+
#set the GPIO input pins
9+
pad0 = 22
10+
pad1 = 27
11+
pad2 = 17
12+
pad3 = 24
13+
pad4 = 23
14+
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+
21+
pad0alreadyPressed = False
22+
pad3alreadyPressed = False
23+
pad4alreadyPressed = False
24+
25+
immutable = False
26+
tnt = 46
27+
water = 9
28+
flowers = 38
29+
30+
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)
36+
37+
if pad0pressed and not pad0alreadyPressed:
38+
#teleport
39+
x = 0
40+
y = 0
41+
z = 0
42+
mc.player.setPos(x, y, z)
43+
pad0alreadyPressed = pad0pressed
44+
45+
if pad1pressed:
46+
#Flowers
47+
pos = mc.player.getPos()
48+
x = pos.x
49+
y = pos.y
50+
z = pos.z
51+
mc.setBlock(x, y, z, flowers)
52+
53+
if pad2pressed:
54+
#TNT
55+
pos = mc.player.getPos()
56+
x = pos.x
57+
y = pos.y
58+
z = pos.z
59+
mc.setBlock(x, y, z, tnt, 1)
60+
61+
if pad3pressed and not pad3alreadyPressed:
62+
#Chat message: Are in water?
63+
pos = mc.player.getPos()
64+
block = mc.getBlock(pos.x, pos.y, pos.z)
65+
inWater = block == water
66+
mc.postToChat("In water: " + str(inWater))
67+
pad3alreadyPressed = pad3pressed
68+
69+
if pad4pressed and not pad4alreadyPressed:
70+
#Immutable
71+
immutable = not immutable
72+
mc.setting("world_immutable", immutable)
73+
mc.postToChat("Immutable: " + str(immutable))
74+
pad4alreadyPressed = pad4pressed
75+
76+
time.sleep(0.1)

0 commit comments

Comments
 (0)