annotate regenerate_level_data.py @ 498:62b9a4e21f1a

chickens in closed buildings deselected. building opens if you put in chickens and it's not full. opening building with move or select tool allows rearrangement of chickens in building. fixed multiselect in buildings.
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Wed, 25 Nov 2009 23:51:33 +0000
parents 02a6de5629d6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
278
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
2
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
3 import os.path
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
4
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
5 import pygame
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
6 from pygame.locals import SWSURFACE, SRCALPHA
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
7
408
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
8 from gamelib import tiles, buildings, equipment
278
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
9 import regenerate_pngs
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
10
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
11 LEVEL_PATH = "data/levels"
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
12 TILE_WIDTH = 20
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
13 TILE_HEIGHT = 20
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
14 TILES_X = 8
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
15 TILES_Y = 8
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
16 WIDTH = TILES_X * TILE_WIDTH
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
17 HEIGHT = TILES_Y * TILE_HEIGHT
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
18
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
19 def generate_image(name, basepath):
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
20 fn, _ = os.path.splitext(os.path.basename(name))
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
21 svg_name = os.path.join(basepath, fn+".svg")
384
f0d5984dff92 Don't crash on images that are elsewhere
Neil Muller <drnlmuller@gmail.com>
parents: 278
diff changeset
22 if not os.path.exists(svg_name):
386
9f5cc2a880d5 Add more informative message
Neil Muller <drnlmuller@gmail.com>
parents: 385
diff changeset
23 print 'Skipping %s, as it seems to be missing' % svg_name
384
f0d5984dff92 Don't crash on images that are elsewhere
Neil Muller <drnlmuller@gmail.com>
parents: 278
diff changeset
24 return None
278
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
25 png_name = os.path.join(LEVEL_PATH, fn+".png")
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
26 regenerate_pngs.svg_to_png(svg_name, png_name, TILE_WIDTH, TILE_HEIGHT)
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
27 return pygame.image.load(png_name)
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
28
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
29 def get_tile_mappings():
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
30 tile_map = {}
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
31 for building in buildings.BUILDINGS:
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
32 tn = building.TILE_NO
384
f0d5984dff92 Don't crash on images that are elsewhere
Neil Muller <drnlmuller@gmail.com>
parents: 278
diff changeset
33 image = generate_image(building.IMAGE, regenerate_pngs.SPRITE_PATH)
f0d5984dff92 Don't crash on images that are elsewhere
Neil Muller <drnlmuller@gmail.com>
parents: 278
diff changeset
34 if image:
f0d5984dff92 Don't crash on images that are elsewhere
Neil Muller <drnlmuller@gmail.com>
parents: 278
diff changeset
35 tile_map[tn] = image
278
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
36 for tn, (_, tile_png) in tiles.TileMap.DEFAULT_TILES.items():
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
37 if tn not in tile_map:
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
38 tile_map[tn] = generate_image(tile_png, regenerate_pngs.TILE_PATH)
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
39 return tile_map
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
40
385
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
41 def get_code_mappings():
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
42 code_map = {}
408
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
43 # Needs better handling of wings
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
44 for tn, sprites in equipment.EQUIP_MAP.iteritems():
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
45 image = generate_image('chkn', regenerate_pngs.SPRITE_PATH)
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
46 need_wing = False
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
47 for equip in sprites:
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
48 sub_image = generate_image(equip.CHICKEN_IMAGE_FILE,
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
49 regenerate_pngs.SPRITE_PATH)
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
50 image.blit(sub_image, (0, 0))
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
51 if equip.UNDER_LIMB:
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
52 need_wing = True
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
53 if need_wing:
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
54 sub_image = generate_image('wing', regenerate_pngs.SPRITE_PATH)
02a6de5629d6 Levels can include starting equipment
Neil Muller <drnlmuller@gmail.com>
parents: 386
diff changeset
55 image.blit(sub_image, (0, 0))
385
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
56 if image:
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
57 code_map[tn] = image
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
58 return code_map
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
59
278
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
60 if __name__ == '__main__':
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
61 s = pygame.Surface((WIDTH, HEIGHT), SWSURFACE|SRCALPHA, 32)
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
62 s.fill((0,0,0,0))
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
63 for n, img in get_tile_mappings().items():
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
64 rect = (TILE_WIDTH*(n % TILES_X), TILE_HEIGHT*(n / TILES_X), TILE_WIDTH, TILE_HEIGHT)
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
65 print n, rect
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
66 s.blit(img, rect)
f6bd57494e81 Better tile/level tools. Also better game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
67 pygame.image.save(s, os.path.join(LEVEL_PATH, "tiles.tga"))
385
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
68 s.fill((0,0,0,0))
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
69 for n, img in get_code_mappings().items():
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
70 rect = (TILE_WIDTH*(n % TILES_X), TILE_HEIGHT*(n / TILES_X), TILE_WIDTH, TILE_HEIGHT)
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
71 print n, rect
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
72 s.blit(img, rect)
d18f21ad1088 Also create code image for pgu's leveledit
Neil Muller <drnlmuller@gmail.com>
parents: 384
diff changeset
73 pygame.image.save(s, os.path.join(LEVEL_PATH, "codes.tga"))