Exemplo n.º 1
0
def mk_cave_interior_door(basename, doorway_img, door_img, **kwargs):
    model = models.solid(3, 1, 2)
    # TODO: shouldn't need to do this
    door_img2 = Image.new('RGBA', (door_img.size[0], door_img.size[1] * 3 // 2 + 2 * TILE_SIZE))
    for i in range(door_img.size[1] // (2 * TILE_SIZE)):
        part = extract(door_img, (0, i * 2), size=(3, 2))
        door_img2.paste(part, (0, (i * 3 + 1) * TILE_SIZE))
    return mk_door_anim(basename, doorway_img, model, door_img2, **kwargs)
Exemplo n.º 2
0
def mk_cave_interior_door(basename, doorway_img, door_img, **kwargs):
    model = models.solid(3, 1, 2)
    # TODO: shouldn't need to do this
    door_img2 = Image.new(
        'RGBA', (door_img.size[0], door_img.size[1] * 3 // 2 + 2 * TILE_SIZE))
    for i in range(door_img.size[1] // (2 * TILE_SIZE)):
        part = extract(door_img, (0, i * 2), size=(3, 2))
        door_img2.paste(part, (0, (i * 3 + 1) * TILE_SIZE))
    return mk_door_anim(basename, doorway_img, model, door_img2, **kwargs)
Exemplo n.º 3
0
    def mk_crop(basename, display_name, index, size=(1, 1, 1), count=5):
        sx, sy, sz = size

        s = STRUCTURE.prefixed(basename) \
                .model(models.solid(*size)) \
                .shape(structure.solid(*size)) \
                .layer(1)
        for i in range(count):
            s.new(str(i)) \
                    .image(struct_sheet.extract((i, 2 * index), size=(sx, sy + sz)))

        ITEM.new(basename) \
                .display_name(display_name) \
                .icon(icon_sheet.extract((index, 0)))
Exemplo n.º 4
0
def mk_solid_structure(name, image, size, base=(0, 0), display_size=None,
        model=None, layer=1):
    base_x, base_y = base
    x = base_x * TILE_SIZE
    y = base_y * TILE_SIZE

    size_x, size_y, size_z = size
    if display_size is not None:
        display_size_x, display_size_y = display_size
        w = display_size_x * TILE_SIZE
        h = display_size_y * TILE_SIZE
    else:
        w = size_x * TILE_SIZE
        h = (size_y + size_z) * TILE_SIZE

    if x == 0 and y == 0 and w == image.size[0] and h == image.size[1]:
        struct_img = image
    else:
        struct_img = image.crop((x, y, x + w, y + h))
    if model is None:
        model = models.solid(size_x, size_y, size_z)

    return mk_structure(name, struct_img, model, solid(*size), layer)