Skip to content

Add Things by Familia de Lorenzo #1

@acs

Description

@acs

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions