Python coding for Minecraft (9 / 17 steg)
Steg 9: Kartesiska ritning
Jag gjorde också en enkel klass för ritning med kartesiska koordinater. Du kan initiera med:
från ritning import *
d = Drawing()
(Detta initierar Minecraft anslutningen och ger matte och blockera namn i namnområdet.) Då har du flera bekvämlighet metoder:
- d.penwidth(x): anger tjockleken på poäng/linjer/ansikten
- d.line(x1,x2,x3,Y1,Y2,Y3,block): ritar linje från (x1, x2, x3) till (y1, y2, y3) tillverkad av block materialet
- d.Face(vertexlist,block): drar ett ansikte med hörnen i vertexlist i block material
Till exempel kan du göra en rektangel sluttande vid 45 grader av glas på nivå 0 vid spawn punkt med:
d.Face([(0,0,0),(0,10,10),(10,10,10),(10,0,0)])
För skojs skull anpassade jag Simon Tatham riktigt snyggt polyeder generation koden för att använda klassen Minecraft ritning. Hans kod börjar med några slumpmässiga punkter på ett klot, och sedan simulerar dem repellerande sig tills de stabiliseras i en konfiguration som ofta är vanlig. Sedan har han två prydliga metoder för att göra en polyeder av dessa poäng, en metod som ansikte och en vertex metod. Jag sätta detta i polyhedron.py. Detta skript tar commandline argument. Till exempel om du vill rita en ikosaeder använda 12 poäng och vertex byggandet. Direkt från Minecraft:
/python polyeder 12 vertex
För en dodecahedron, ändra vertex till ansiktet. Du kan också lägga till ett ytterligare argument för storlek. Polyeder kommer att göras av glas med sten kanter och centreras runt spelaren.
Teknisk not: Om du redan har en Minecraft objekt mc, initiera med d = Drawing(mc). I båda fallen kan du komma åt objektet Minecraft via d.mc.