@code_tooltip_harvest = `harvest()`
Cosecha la entidad debajo del dron. 
Si cosechas una entidad que no se puede cosechar, será destruida.

devuelve `True` si se eliminó una entidad, `False` en caso contrario.

tarda `200` ticks en ejecutarse si se eliminó una entidad, `1` tick en caso contrario.

ejemplo:
`harvest()`
@code_tooltip_can_harvest = `can_harvest()`
Se usa para saber si las plantas han crecido completamente.

devuelve `True` si hay una entidad debajo del dron lista para ser cosechada, `False` en caso contrario.

tarda `1` tick en ejecutarse.

ejemplo:
`if can_harvest():
    harvest()`
@code_tooltip_range = `range(start = 0, end, step = 1)`
Genera una secuencia de números que empieza en `start`, termina justo antes de alcanzar `end` (por lo que `end` se excluye) usando pasos de tamaño `step`.

Ten en cuenta que `start` se establece en `0` por defecto, y si solo se proporciona un argumento, se asignará a `end`. Esto normalmente no es posible.
En Python, `range` es un constructor de clase que permite este comportamiento extraño.

tarda `1` tick en ejecutarse.

ejemplo:
`for i in range(10):
    print(i)

for i in range(2,6):
    print(i)

for i in range(10, 0, -1):
    print(i)`
@code_tooltip_plant = `plant(entity)` 
Gasta el coste de la `entity` especificada y la planta debajo del dron.
Falla si no puedes permitirte la planta, el tipo de terreno es incorrecto o ya hay una planta ahí.

devuelve `True` si tuvo éxito, `False` en caso contrario.

tarda `200` ticks en ejecutarse si tuvo éxito, `1` tick en caso contrario.

ejemplo:
`plant(Entities.Bush)`
@code_tooltip_move = `move(direction)`
Mueve el dron en la `direction` especificada una casilla.
Si el dron se mueve sobre el borde de la granja, reaparece en el otro lado.

`East `  =  derecha
`West `  =  izquierda
`North`  =  arriba
`South`  =  abajo

devuelve `True` si el dron se ha movido, `False` en caso contrario.

tarda `200` ticks en ejecutarse si el dron se ha movido, `1` tick en caso contrario.

ejemplo:
`move(North)`
@code_tooltip_can_move = `can_move(direction)`
Comprueba si el dron puede moverse en la `direction` especificada.

devuelve `True` si el dron puede moverse, `False` en caso contrario.

tarda `1` tick en ejecutarse.

ejemplo:
`if can_move(North):
    move(North)`
@code_tooltip_swap = `swap(direction)`
Intercambia la entidad debajo del dron con la entidad al lado del dron en la `direction` especificada.
No funciona en todas las entidades.
También funciona si una (o ambas) de las entidades son `None`.

devuelve `True` si tuvo éxito, `False` en caso contrario.

tarda `200` ticks en ejecutarse si tuvo éxito, `1` tick en caso contrario.

ejemplo:
`swap(North)`
@code_tooltip_till = `till()` 
Labra el suelo debajo del dron convirtiéndolo en `Grounds.Soil`. Si ya es tierra labrada, cambiará el suelo de nuevo a `Grounds.Grassland`.

devuelve `None`

tarda `200` ticks en ejecutarse.

ejemplo:
`till()`
@code_tooltip_get_pos_x = `get_pos_x()` 
Obtiene la posición x actual del dron.
La posición x comienza en `0` en el oeste y aumenta en dirección este.

devuelve un número que representa la coordenada x actual del dron.

tarda `1` tick en ejecutarse.

ejemplo:
`x, y = get_pos_x(), get_pos_y()`
@code_tooltip_get_pos_y = `get_pos_y()` 
Obtiene la posición y actual del dron.
La posición y comienza en `0` en el sur y aumenta en dirección norte.

devuelve un número que representa la coordenada y actual del dron.

tarda `1` tick en ejecutarse.

ejemplo:
`x, y = get_pos_x(), get_pos_y()`
@code_tooltip_get_world_size = `get_world_size()` 
Obtiene el tamaño actual de la granja.

devuelve la longitud del lado de la cuadrícula en la dirección de norte a sur.

tarda `1` tick en ejecutarse.

ejemplo:
`for i in range(get_world_size()):
    move(North)`
@code_tooltip_get_entity_type = `get_entity_type()` 
Averigua qué tipo de entidad hay debajo del dron.

devuelve `None` si la casilla está vacía, de lo contrario devuelve el tipo de la entidad debajo del dron.

tarda `1` tick en ejecutarse.

ejemplo:
`if get_entity_type() == Entities.Grass:
    harvest()`
@code_tooltip_get_ground_type = `get_ground_type()` 
Averigua qué tipo de terreno hay debajo del dron.

devuelve el tipo del terreno debajo del dron.

tarda `1` tick en ejecutarse.

ejemplo:
`if get_ground_type() != Grounds.Soil:
    till()`
@code_tooltip_get_time = `get_time()` 
Obtiene el tiempo de juego actual.

devuelve el tiempo en segundos desde el inicio del juego.

tarda `1` tick en ejecutarse.

ejemplo:
`start = get_time()

do_something()

time_passed = get_time() - start`
@code_tooltip_get_tick_count = `get_tick_count()`
Se usa para medir el número de ticks realizados.

devuelve el número de ticks realizados desde el inicio de la ejecución.

tarda `0` ticks en ejecutarse.

ejemplo:
`do_something()

print(get_tick_count())`
@code_tooltip_use_item = `use_item(item, n=1)` 
Intenta usar el `item` especificado `n` veces. Solo se puede usar con algunos ítems, incluyendo `Items.Water`, `Items.Fertilizer`.

devuelve `True` si se usó un ítem, `False` en caso contrario.

tarda `200` ticks en ejecutarse si tuvo éxito, `1` tick en caso contrario.

ejemplo:
`use_item(Items.Fertilizer)`
@code_tooltip_get_water = `get_water()` 
Obtiene el nivel de agua actual debajo del dron.

devuelve el nivel de agua debajo del dron como un número entre `0` y `1`.

tarda `1` tick en ejecutarse.

ejemplo:
`if get_water() < 0.5:
    use_item(Items.Water)`
@code_tooltip_do_a_flip = `do_a_flip()` 
¡Hace que el dron dé una voltereta! Esta acción no se ve afectada por las mejoras de velocidad.

devuelve `None`

tarda 1s en ejecutarse.

ejemplo:
`while True:
    do_a_flip()`
@code_tooltip_pet_the_piggy = `pet_the_piggy()` 
¡Acaricia al cerdito! Esta acción no se ve afectada por las mejoras de velocidad.

devuelve `None`

tarda 1s en ejecutarse.

ejemplo:
`while True:
    pet_the_piggy()`
@code_tooltip_print = `print(*args)` 
Imprime todos los `args` en el aire sobre el dron usando humo. Esta acción no se ve afectada por las mejoras de velocidad.
Se pueden imprimir múltiples valores a la vez.

devuelve `None`

tarda 1s en ejecutarse.

ejemplo:
`print("ground:", get_ground_type())`
@code_tooltip_len = `len(collection)` 
Obtiene el número de elementos en una lista, conjunto, diccionario o tupla.

devuelve la longitud de la `collection`.

tarda `1` tick en ejecutarse.

ejemplo:
`for i in range(len(list)):
    list[i] += 1`
@code_tooltip_list = `list(collection = None)`
Crea una nueva lista. 
Si `collection` es None, crea una lista vacía.
Si `collection` es cualquier secuencia, crea una nueva lista con los elementos de la secuencia.

devuelve una lista.

tarda `1 + len(collection)` ticks en ejecutarse.

ejemplo:
`new_list = list((1,2,3))`
@code_tooltip_dict = `dict(dictionary = None)`
Crea un nuevo diccionario.
Si `dictionary` es None, crea un diccionario vacío.
Si `dictionary` es un diccionario, crea una copia de él.

devuelve un diccionario.

tarda `1 + len(dictionary)` ticks en ejecutarse.

ejemplo:
`new_dict = dict()`
@code_tooltip_set = `set(collection = None)`
Crea un nuevo conjunto.
Si `collection` es None, crea un conjunto vacío.
Si `collection` es una colección de valores, crea un nuevo conjunto con esos valores.

devuelve un conjunto.

tarda `1 + len(collection)` ticks en ejecutarse.

ejemplo:
`new_set = set((1,2,3))`
@code_tooltip_str = `str(object)`

devuelve una representación en formato de texto (string) del `object`.

tarda `1` tick en ejecutarse.

ejemplo:
`string = str(1000)`
@code_tooltip_set_execution_speed = `set_execution_speed(speed)`
Limita la velocidad a la que se ejecuta el programa para ver mejor lo que está sucediendo.

Una `speed` de `1` es la velocidad que tiene el dron sin ninguna mejora de velocidad.
Una `speed` de `8` hace que el código se ejecute `8` veces más rápido y corresponde a la velocidad del dron después de `3` mejoras de velocidad.
Una `speed` de `0.5` hace que el código se ejecute a la mitad de la velocidad sin mejoras de velocidad. Esto puede ser útil para ver lo que está haciendo el código.

Si la `speed` es más rápida de lo que la ejecución puede ir actualmente, simplemente irá a la velocidad máxima.

Si la `speed` es `0` o negativa, la velocidad se cambia de nuevo a la velocidad máxima.
El efecto también se detendrá cuando la ejecución se detenga.

devuelve `None`

tarda `200` ticks en ejecutarse.

ejemplo:
`set_execution_speed(1)`
@code_tooltip_set_world_size = `set_world_size(size)`
Limita el tamaño de la granja para ver mejor lo que está sucediendo.
También limpia la granja y restablece la posición del dron.
Establece la granja a una cuadrícula de `size` x `size`.
El `size` más pequeño posible es `3`.
Un `size` menor que `3` cambiará la cuadrícula de nuevo a su tamaño completo.
El efecto también se detendrá cuando la ejecución se detenga.

devuelve `None`

tarda `200` ticks en ejecutarse.

ejemplo:
`set_world_size(5)`
@code_tooltip_num_items = `num_items(item)` 
Averigua qué cantidad del `item` tienes actualmente.

devuelve el número del `item` que tienes actualmente en tu inventario.

tarda `1` tick en ejecutarse.

ejemplo:
`if num_items(Items.Fertilizer) > 0:
    use_item(Items.Fertilizer)`
@code_tooltip_get_cost = `get_cost(thing)` 
Obtiene el coste de una `thing` (cosa).

Si `thing` es una entidad, obtiene el coste de plantarla.
Si `thing` es un desbloqueo, obtiene el coste de desbloquearlo.

devuelve un diccionario con ítems como claves y números como valores. Cada ítem se mapea a la cantidad necesaria.
devuelve `{}` cuando se usa en un desbloqueo mejorable que ya está en el nivel máximo.

tarda `1` tick en ejecutarse.

ejemplo:
`cost = get_cost(Unlocks.Carrots)
for item in cost:
    if num_items(item) < cost[item]:
        print("not enough items to unlock carrots")`
@code_tooltip_clear = `clear()` 
Elimina todo de la granja, mueve el dron de vuelta a la posición `(0,0)` y cambia el sombrero de nuevo al sombrero de paja.

devuelve `None`

tarda `200` ticks en ejecutarse.

ejemplo:
`clear()`
@code_tooltip_get_companion = `get_companion()` 
Obtiene el compañero preferido de la planta debajo del dron.

devuelve una tupla de la forma `(companion_type, (companion_x_position, companion_y_position))`

tarda `1` tick en ejecutarse.

ejemplo:
`companion = get_companion()
if companion != None:
	print(companion)`
@code_tooltip_unlock = `unlock(unlock)` 
Tiene exactamente el mismo efecto que hacer clic en el botón correspondiente a `unlock` en el árbol de investigación.

devuelve `True` si el desbloqueo fue exitoso, `False` en caso contrario.

tarda `200` ticks en ejecutarse si tuvo éxito, `1` tick en caso contrario.

ejemplo:
`unlock(Unlocks.Carrots)`
@code_tooltip_num_unlocked = `num_unlocked(thing)`
Se usa para comprobar si un desbloqueo, entidad, terreno, ítem o sombrero ya está desbloqueado.

devuelve `1` más el número de veces que `thing` ha sido mejorado si `thing` es mejorable. De lo contrario, devuelve `1` si `thing` está desbloqueado, `0` en caso contrario.

tarda `1` tick en ejecutarse.

ejemplo:
`plant(Entities.Bush)
n_substance = get_world_size() * num_unlocked(Unlocks.Mazes)
use_item(Items.Weird_Substance, n_substance)`
@code_tooltip_reset = `reset()` 
Reinicia la granja a un cuadrado de 1x1, elimina todos los recursos y bloquea la mayoría de los desbloqueos.
No elimina nada de tu código.

devuelve `None`

tarda `200` ticks en ejecutarse.

ejemplo:
`reset()`
@code_tooltip_measure = `measure(direction = None)` 
Puede medir algunos valores en algunas entidades. El efecto de esto depende de la entidad.

Si `direction` no es `None`, mide la entidad vecina en la dirección dada.

devuelve el número de pétalos de un girasol.
devuelve la siguiente posición para un tesoro o una manzana.
devuelve el tamaño de un cactus.
devuelve un número misterioso para una calabaza.
devuelve `None` para todas las demás entidades.

tarda `1` tick en ejecutarse.

ejemplo:
`num_petals = measure()`
@code_tooltip_leaderboard_run = `leaderboard_run(leaderboard, file_name, speedup)`
Inicia una simulación cronometrada para la `leaderboard` usando el `file_name` especificado como punto de partida.
`speedup` establece la aceleración inicial.

devuelve `None`

tarda `200` ticks en ejecutarse.

ejemplo:
`leaderboard_run(Leaderboards.Fastest_Reset, "full_run", 256)`
@code_tooltip_simulate = `simulate(filename, sim_unlocks, sim_items, sim_globals, seed, speedup)`
Inicia una simulación para la tabla de clasificación usando el `filename` especificado como punto de partida.

`sim_unlocks`: Una secuencia que contiene los desbloqueos iniciales.
`sim_items`: Un diccionario que mapea ítems a cantidades. La simulación comienza con estos ítems.
`sim_globals`: Un diccionario que mapea nombres de variables a valores. La simulación comienza con estas variables en el ámbito global.
`seed`: La semilla aleatoria de la simulación. Debe ser un entero positivo.
`speedup`: La aceleración inicial.

devuelve el tiempo que tardó en ejecutarse la simulación.

tarda `200` ticks en ejecutarse.

ejemplo:
`filename = "f1"
sim_unlocks = Unlocks
sim_items = {Items.Carrot : 10000, Items.Hay : 50}
sim_globals = {"a" : 13}
seed = 0
speedup = 64

run_time = simulate(filename, sim_unlocks, sim_items, sim_globals, seed, speedup)`
@code_tooltip_spawn_drone = `spawn_drone(filename)`
Genera un nuevo dron en la misma posición que el dron que ejecutó el comando `spawn_drone(function)`. El nuevo dron comienza a ejecutar la función especificada. Cuando termina, desaparecerá automáticamente.

devuelve el identificador del nuevo dron o `None` si todos los drones ya están generados.

tarda `200` ticks en ejecutarse si se generó un dron, `1` en caso contrario.

ejemplo:
`def harvest_column():
    for _ in range(get_world_size()):
        harvest()
        move(North)

while True:
    if spawn_drone(harvest_column):
        move(East)`
@code_tooltip_wait_for = `wait_for(drone)`
Espera hasta que el `drone` dado termine.

devuelve el valor de retorno de la función que el `drone` estaba ejecutando.

tarda `1` tick en ejecutarse si el `drone` esperado ya ha terminado.

ejemplo:
`def get_entity_type_in_direction(dir):
    move(dir)
    return get_entity_type()

def zero_arg_wrapper():
    return get_entity_type_in_direction(North)
handle = spawn_drone(zero_arg_wrapper)
print(wait_for(handle))`
@code_tooltip_has_finished = `has_finished(drone)`
Comprueba si el `drone` especificado ha terminado.

devuelve `True` si el `drone` ha terminado, `False` en caso contrario.

tarda `1` tick en ejecutarse.

ejemplo:
`drone = spawn_drone(function)
while not has_finished(drone):
    do_something_else()
result = wait_for(drone)`
@code_tooltip_max_drones = `max_drones()`

devuelve el número máximo de drones que puedes tener en la granja.

tarda `1` tick en ejecutarse.

ejemplo:
`while num_drones() < max_drones():
    spawn_drone("some_file_name")
    move(East)`
@code_tooltip_num_drones = `num_drones()`

devuelve el número de drones actualmente en la granja.

tarda `1` tick en ejecutarse.

ejemplo:
`while num_drones() < max_drones():
    spawn_drone("some_file_name")
    move(East)`
@code_tooltip_quick_print = `quick_print(*args)`
Imprime un valor igual que `print(*args)` pero no se detiene para escribirlo en el aire, por lo que solo se puede encontrar en la página de salida.

devuelve `None`

tarda `0` ticks en ejecutarse.

ejemplo:
`quick_print("hi mom")`
@code_tooltip_change_hat = `change_hat(hat)`
Cambia el sombrero del dron a `hat`.

devuelve `None`

tarda `200` ticks en ejecutarse.

ejemplo:
`change_hat(Hats.Dinosaur_Hat)`
@code_tooltip_max = `max(*args)`
Obtiene el máximo de una secuencia de elementos o de varios argumentos pasados.
Puede ser usado en números y strings.

`max(a,b,c)`: Devuelve el máximo de `a`, `b` y `c`.
`max(sequence)`: Devuelve el máximo de todos los valores en una secuencia.

tarda #comparaciones ticks en ejecutarse.

ejemplo:
`max([3,6,34,16])`
@code_tooltip_min = `min(*args)`
Obtiene el mínimo de una secuencia de elementos o de varios argumentos pasados.
Puede ser usado en números y strings.

`min(a,b,c)`: Devuelve el mínimo de `a`, `b` y `c`.
`min(sequence)`: Devuelve el mínimo de todos los valores en una secuencia.

tarda #comparaciones ticks en ejecutarse.

ejemplo:
`min([3,6,34,16])`
@code_tooltip_abs = `abs(number)`
Calcula el valor absoluto de un número.

devuelve `number` si `number` es positivo, `-number` en caso contrario.

tarda 1 tick en ejecutarse.

ejemplo:
`abs(-69)`
@code_tooltip_random = `random()`
Muestra un número aleatorio entre 0 (inclusivo) y 1 (exclusivo).

devuelve el número aleatorio.

tarda `1` tick en ejecutarse.

ejemplo:
`def random_elem(list):
	index = random() * len(list) // 1
	return list[index]`
@code_tooltip_append = `list.append(element)` 
Añade `element` al final de la `list`.

devuelve `None`

tarda `1` tick en ejecutarse.

ejemplo:
`list = []
list.append(1)`
@code_tooltip_add = `set.add(element)` 
Añade `element` al `set`.

devuelve `None`

tarda `tamaño del elemento` ticks en ejecutarse.

ejemplo:
`set = {0}
set.add(1)`
@code_tooltip_remove = `collection.remove(element)` 
Elimina la primera aparición de `element` de la `collection`.

devuelve `None`

tarda `tamaño del elemento` ticks en ejecutarse en un conjunto, #comparaciones + #desplazamientos ticks en una lista.

ejemplo:
`list = [True, False, None]
list.remove(False)`
@code_tooltip_pop = `collection.pop()` 
Elimina el último elemento de una lista o el elemento especificado de un diccionario.
`list.pop(i)` elimina el elemento en el índice `i` de la `list`.

devuelve el elemento eliminado

tarda `tamaño de la clave` ticks en ejecutarse en un diccionario, `len(list) - i + 1` ticks en una lista.

ejemplo:
`list = [True, False, None]
list.pop(0)`
@code_tooltip_insert = `list.insert(i, element)` 
Inserta `element` en la `list` en el índice `i`.

devuelve `None`

tarda `len(list) - i + 1` ticks.

ejemplo:
`list = [1,2]
list.insert(0, 0)`
@code_tooltip_Items = Contiene todos los ítems que pueden estar en el inventario. Se puede iterar con un bucle `for`.
@code_tooltip_Entities = Contiene todos los tipos de plantas. Se puede iterar con un bucle `for`.
@code_tooltip_Grounds = Contiene todos los tipos de terreno posibles. Se puede iterar con un bucle `for`.
@code_tooltip_Unlocks = Contiene todos los desbloqueos y mejoras en el menú de investigación. Se puede iterar con un bucle `for`.
@code_tooltip_Hats = Contiene todos los tipos de sombreros. Se puede iterar con un bucle `for`.
@code_tooltip_Leaderboards = Contiene todas las categorías de la tabla de clasificación. Se puede iterar con un bucle `for`.
@code_tooltip_for = Un bucle que itera sobre todos los elementos de una secuencia. Algunos lenguajes de programación lo llaman bucle "foreach".
@code_tooltip_while = Se repite hasta que la condición sea falsa.
@code_tooltip_def = Define una función.
@code_tooltip_True = Un valor booleano que siempre es verdadero.
@code_tooltip_False = Un valor booleano que siempre es falso.
@code_tooltip_if = Ejecuta código si la condición es `True`.
@code_tooltip_else = Ejecuta código si la condición `if` anterior fue `False`.
@code_tooltip_elif = Hace lo mismo que:
`else:
    if condition:`
@code_tooltip_None = Un valor que representa la ausencia de valor.
@code_tooltip_continue = Continúa inmediatamente con la siguiente iteración del bucle. Si hay bucles anidados, esto siempre afectará al bucle más interno.
@code_tooltip_break = Sale de un bucle y continúa ejecutando las instrucciones después del bucle. Si hay bucles anidados, esto siempre afectará al bucle más interno.
@code_tooltip_North = La dirección hacia arriba en la pantalla. A menos que gires la pantalla.
@code_tooltip_East = La dirección hacia la derecha en la pantalla. A menos que gires la pantalla.
@code_tooltip_South = La dirección hacia abajo en la pantalla. A menos que gires la pantalla.
@code_tooltip_West = La dirección hacia la izquierda en la pantalla. A menos que gires la pantalla.
@code_tooltip_not = `not True` es `False` y `not False` es `True`.
@code_tooltip_and = Evalúa el primer operando. Si es falso (`False`, `0` y colecciones vacías), devuelve ese valor inmediatamente (cortocircuitando la evaluación), de lo contrario, evalúa y devuelve el segundo operando.
@code_tooltip_or = Evalúa el primer operando. Si es verdadero (cualquier cosa que no sea `False`, `0` y colecciones vacías), devuelve ese valor inmediatamente (cortocircuitando la evaluación), de lo contrario, evalúa y devuelve el segundo operando.
@code_tooltip_return = Se usa para devolver un valor desde una función.
@code_tooltip_pass = No hace nada. Puede ser útil porque no se permiten bloques de código vacíos.