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)
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)
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)))
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)