-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
All the code will have the ASL and the author will be "Familia Lorenzo".
# Este código crea una escalera en M tramos de N peldaños cada uno, de ancho A
M= 50
N= 10
A= 5
# Buscamos la posición en el mundo de nuestro jugador
p = mc.entity.getTilePos(mc.getPlayerEntityId(BUILDER_NAME))
# Coordenadas del jugador en las que se crea el bloque
# Nos separamos de donde estamos para no quedarnos dentro
init_x = p.x + 1
init_y = p.y
init_z = p.z
block_type = block.DIAMOND_BLOCK
sentido = 0
for tramo in range (0, M, 1):
if sentido == 0:
for eje_y in range (0, N, 1):
for eje_x in range (0, A, 1):
mc.setBlock((init_x + eje_x), ((N*tramo)+init_y + eje_y), (init_z + eje_y)+(sentido*N), block_type)
sentido = 1
elif sentido == 1:
for eje_y in range (0, N, 1):
for eje_x in range (0, A, 1):
mc.setBlock((init_x + eje_x + A), ((N*tramo)+init_y + eje_y), (init_z - eje_y - 1)+(sentido*N), block_type)
sentido = 0
[24/4 9:55] Adolfo Teleco: # Este bloque de código crea una estructura rectangular similar a un a choza de troncos de madera
tamaño=6
altura=50
block_type_1 = block.SANDSTONE
block_type_2 = block.AIR
# Buscamos la posición en el mundo de nuestro jugador
p = mc.entity.getTilePos(mc.getPlayerEntityId(BUILDER_NAME))
# Coordenadas del jugador en las que se crea el bloque
# Nos separamos de donde estamos para no quedarnos dentro
init_x = p.x
init_y = p.y
init_z = p.z
for nivel in range (0, altura, 2):
mc.setBlocks(init_x - tamaño/2, nivel, init_z - tamaño/2,
init_x + tamaño/2, nivel , init_z + tamaño/2,
block_type_1)
mc.setBlocks(init_x - tamaño/2, nivel, init_z - tamaño/2 + 1,
init_x + tamaño/2, nivel , init_z + tamaño/2 - 1,
block_type_2)
mc.setBlocks(init_x - tamaño/2, nivel + 1, init_z - tamaño/2,
init_x + tamaño/2, nivel + 1, init_z + tamaño/2,
block_type_1)
mc.setBlocks(init_x - tamaño/2 + 1, nivel + 1, init_z - tamaño/2,
init_x + tamaño/2 - 1, nivel + 1, init_z + tamaño/2,
block_type_2)
[24/4 9:55] Adolfo Teleco: # Este bloque de código crea una ESPIRAL CUADRADA la altura del jugador de un tamaño y altura definidos
altura=100
tamaño=8
block_type = block.WOOD
# Buscamos la posición en el mundo de nuestro jugador
p = mc.entity.getTilePos(mc.getPlayerEntityId(BUILDER_NAME))
# Coordenadas del jugador en las que se crea el bloque
# Nos separamos de donde estamos para no quedarnos dentro
init_x = p.x
init_y = p.y
init_z = p.z
for piso in range (0, altura, 4):
mc.setBlocks(init_x, piso, init_z,
init_x+tamaño, piso, init_z,
block_type)
mc.setBlocks(init_x, piso+1, init_z,
init_x, piso+1, init_z+tamaño,
block_type)
mc.setBlocks(init_x, piso+2, init_z+tamaño,
init_x+tamaño, piso+2, init_z+tamaño,
block_type)
mc.setBlocks(init_x+tamaño, piso+3, init_z,
init_x+tamaño, piso+3, init_z+tamaño,
block_type)
[24/4 9:55] Adolfo Teleco: # Este bloque de código crea una CASA CON TECHO HUECA a la altura del jugador de un "tamaño" (para que el resultado sea más estético,
# el tamaño debe ser un número impar, si fuera par, la cúspide es de 4 bloques)
# Finalmente, situa al jugador en el centro de la pirámide y rellena con antorchas
#Si "tamaño" es impar, la cúspide es un único bloque, en caso contrario son 4 bloques
tamaño=26
block_type = block.SANDSTONE
block_type2 = block.AIR
block_type3 = block.TORCH
# Buscamos la posición en el mundo de nuestro jugador
p = mc.entity.getTilePos(mc.getPlayerEntityId(BUILDER_NAME))
# Coordenadas del jugador en las que se crea el bloque
# Nos separamos de donde estamos para no quedarnos dentro
init_x = p.x
init_y = 0
init_z = p.z
# Este bloque de código crea una TRAMPA a la altura del jugador de un tamaño definido en la variable "tamaño"
mc.setBlocks(init_x-tamaño/2, init_y-1, init_z-tamaño/2,
init_x+tamaño/2, init_y+tamaño/2, init_z+tamaño/2,
block_type)
mc.setBlocks(init_x-tamaño/2+1, init_y, init_z-tamaño/2+1,
init_x+tamaño/2-1, init_y+tamaño/2, init_z+tamaño/2-1,
block_type2)
# Abrimos unas puertas de altura 2
mc.setBlock((init_x-tamaño/2), 0, (init_z), block_type2 )
mc.setBlock((init_x-tamaño/2), 1, (init_z), block_type2 )
mc.setBlock((init_x+tamaño/2), 0, (init_z), block_type2 )
mc.setBlock((init_x+tamaño/2), 1, (init_z), block_type2 )
mc.setBlock((init_x), 0, (init_z-tamaño/2), block_type2 )
mc.setBlock((init_x), 1, (init_z-tamaño/2), block_type2 )
mc.setBlock((init_x), 0, (init_z+tamaño/2), block_type2 )
mc.setBlock((init_x), 1, (init_z+tamaño/2), block_type2 )
#Construimos el techo reutilizando el código de la pirámide.
#Primero posicionamos el "cursor" en la esquina de la casa
init_x = p.x - tamaño/2-1
init_y = tamaño/2-2
init_z = p.z - tamaño/2-1
#Creamos una pirámide HUECA como techo, y hacemos que sobresalga por los lados para que quede estéticamente mejor
altura=int(tamaño+2)
tamaño = tamaño + 3
for altura1 in range (0, altura, 1):
for base1 in range ((0+altura1), (tamaño-altura1), 1):
for base2 in range ((0+altura1), (tamaño-altura1), 1):
mc.setBlock((init_x + base1), (init_y + altura1), (init_z+ base2), block_type)
for altura1 in range (0, altura, 1):
for base1 in range ((0+altura1+2), (tamaño-altura1), 1):
for base2 in range ((0+altura1+2), (tamaño-altura1), 1):
mc.setBlock((init_x + base1-1), (init_y + altura1), (init_z+ base2-1), block_type2)
#Mueve al jugador dentro de la casa y enciende unas Antorchas
mc.player.setPos(p.x, 1, p.z)
mc.setBlock(p.x, tamaño -6, p.z, block_type3)
mc.setBlock(p.x, tamaño/2 -1, p.z, block_type3)
mc.setBlock(p.x, tamaño/4 -1, p.z, block_type3)
[24/4 9:56] Adolfo Teleco: # Este bloque de código crea una PIRÁMIDE DOBLE INVERTIDA - RELOJ DE ARENA a la altura del jugador de una altura definida en la variable "tamaño" (para que funcione correctamente, el tamaño debe ser un número impar, si fuera par, la cúspide es de 4 bloques)
# Este método construye bloque a bloque, lo cual es menos eficiente que construir planta a planta, pero es interesante para ver otro algoritmo diferente
# Finalmente, situa al jugador en la cúspide de la pirámide
#Si "tamaño" es impar, la cúspide es un único bloque, en caso contrario son 4 bloques
tamaño=25
block_type = block.DIAMOND_BLOCK
# Buscamos la posición en el mundo de nuestro jugador
p = mc.entity.getTilePos(mc.getPlayerEntityId(BUILDER_NAME))
# Coordenadas del jugador en las que se crea el bloque
# Nos separamos de donde estamos para no quedarnos dentro
init_x = p.x
init_y = 0
init_z = p.z
#Creamos una pirámide
altura=int((tamaño+1)/2)
p = mc.entity.getTilePos(mc.getPlayerEntityId(BUILDER_NAME))
for altura1 in range (0, altura, 1):
for base1 in range ((0+altura1), (tamaño-altura1), 1):
for base2 in range ((0+altura1), (tamaño-altura1), 1):
mc.setBlock((init_x + base1), (init_y + altura1), (init_z+ base2), block_type)
for altura1 in range (altura, altura*2, 1):
for base1 in range ((tamaño-altura1), (0+altura1), 1):
for base2 in range ((tamaño-altura1), (0+altura1), 1):
mc.setBlock((init_x + base1), (init_y + altura1-1), (init_z+ base2), block_type)
mc.player.setPos((p.x+(tamaño/2)), (3+altura)*2, (p.z+(tamaño/2)))
[24/4 9:56] Adolfo Teleco: # Este bloque construye una ESPIRAL en el suelo
tamaño=10
altura = 10
block_type = block.SANDSTONE
# Buscamos la posición en el mundo de nuestro jugador
p = mc.entity.getTilePos(mc.getPlayerEntityId(BUILDER_NAME))
# Coordenadas del jugador en las que se crea el bloque
# Nos separamos de donde estamos para no quedarnos dentro
init_x = p.x
init_y = p.y
init_z = p.z
#mc.setBlocks(init_x, 0, init_z,
# init_x, 2,
init_z + 1,
# block_type)
#mc.setBlocks(init_x, 0, init_z + 1,
# init_x + 2, 2, init_z + 1,
# block_type)
for i in range (1, tamaño, 2):
mc.setBlocks(init_x + i, 0, init_z + i-1,
init_x + i, altura, init_z - i,
block_type)
mc.setBlocks(init_x + i, 0, init_z - i,
init_x - i, altura, init_z - i,
block_type)
mc.setBlocks(init_x - i, 0, init_z - i,
init_x - i, altura, init_z + i +1,
block_type)
mc.setBlocks(init_x - i, 0, init_z + i +1 ,
init_x + i + 2, altura, init_z + i +1,
block_type)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels