From: Neil Date: Thu, 3 Mar 2016 10:23:28 +0000 (+0200) Subject: Add placeholder underground images. Start work on proper tunnel image loading X-Git-Url: https://git.ctpug.org.za/?a=commitdiff_plain;h=2e7a7b5cc603f406a1b88a911d9d935a2e017ef2;p=koperkapel.git Add placeholder underground images. Start work on proper tunnel image loading --- diff --git a/koperkapel/images/Makefile b/koperkapel/images/Makefile index d55f911..d5aa405 100644 --- a/koperkapel/images/Makefile +++ b/koperkapel/images/Makefile @@ -8,7 +8,7 @@ TILE_PNGS=$(patsubst $(VPATH)/vector/%.svg, %.png, $(TILE_SVGS)) # Bitmap tiles -BTILE_DIRS=wall floor +BTILE_DIRS=wall floor tunnel underground BTILE_SRC=$(shell find $(patsubst %, $(VPATH)/bitmap/%, $(BTILE_DIRS)) -name "*.png") BTILE_PNGS=$(patsubst $(VPATH)/bitmap/%, %, $(BTILE_SRC)) @@ -55,8 +55,8 @@ $(foreach simpledir,$(SIMPLE_DIRS),$(eval $(call simple,$(simpledir)))) define btile $(1)/%.png: bitmap/$(1)/%.png - @mkdir -p `dirname $$@` - @convert $$< -resize 64x64 $$@ + @mkdir -p `dirname bunker/$$@` + @convert $$< -resize 64x64 bunker/$$@ endef $(foreach tiledir,$(BTILE_DIRS),$(eval $(call btile,$(tiledir)))) diff --git a/koperkapel/images/bunker/floor/floor_1.png b/koperkapel/images/bunker/floor/floor_1.png index 25a47ce..400ca07 100644 Binary files a/koperkapel/images/bunker/floor/floor_1.png and b/koperkapel/images/bunker/floor/floor_1.png differ diff --git a/koperkapel/images/bunker/floor/floor_2.png b/koperkapel/images/bunker/floor/floor_2.png index 8e03544..4e51dd4 100644 Binary files a/koperkapel/images/bunker/floor/floor_2.png and b/koperkapel/images/bunker/floor/floor_2.png differ diff --git a/koperkapel/images/bunker/floor/floor_3.png b/koperkapel/images/bunker/floor/floor_3.png index 71bbb73..31b47a8 100644 Binary files a/koperkapel/images/bunker/floor/floor_3.png and b/koperkapel/images/bunker/floor/floor_3.png differ diff --git a/koperkapel/images/bunker/floor/floor_4.png b/koperkapel/images/bunker/floor/floor_4.png index dd87cb4..8c4958e 100644 Binary files a/koperkapel/images/bunker/floor/floor_4.png and b/koperkapel/images/bunker/floor/floor_4.png differ diff --git a/koperkapel/images/bunker/tunnel/tunnel_none.png b/koperkapel/images/bunker/tunnel/tunnel_none.png new file mode 100644 index 0000000..dcb04b4 Binary files /dev/null and b/koperkapel/images/bunker/tunnel/tunnel_none.png differ diff --git a/koperkapel/images/bunker/underground/underground_1.png b/koperkapel/images/bunker/underground/underground_1.png new file mode 100644 index 0000000..23659b1 Binary files /dev/null and b/koperkapel/images/bunker/underground/underground_1.png differ diff --git a/koperkapel/images/bunker/underground/underground_2.png b/koperkapel/images/bunker/underground/underground_2.png new file mode 100644 index 0000000..43d294a Binary files /dev/null and b/koperkapel/images/bunker/underground/underground_2.png differ diff --git a/koperkapel/images/bunker/underground/underground_3.png b/koperkapel/images/bunker/underground/underground_3.png new file mode 100644 index 0000000..99678c0 Binary files /dev/null and b/koperkapel/images/bunker/underground/underground_3.png differ diff --git a/koperkapel/images/bunker/underground/underground_4.png b/koperkapel/images/bunker/underground/underground_4.png new file mode 100644 index 0000000..05c0093 Binary files /dev/null and b/koperkapel/images/bunker/underground/underground_4.png differ diff --git a/koperkapel/images/bunker/wall/wall_1.png b/koperkapel/images/bunker/wall/wall_1.png index e3516c4..8cc0ee8 100644 Binary files a/koperkapel/images/bunker/wall/wall_1.png and b/koperkapel/images/bunker/wall/wall_1.png differ diff --git a/koperkapel/images/bunker/wall/wall_2.png b/koperkapel/images/bunker/wall/wall_2.png index cd7fb18..d5406de 100644 Binary files a/koperkapel/images/bunker/wall/wall_2.png and b/koperkapel/images/bunker/wall/wall_2.png differ diff --git a/koperkapel/images/bunker/wall/wall_3.png b/koperkapel/images/bunker/wall/wall_3.png index 520bb86..9fb20b4 100644 Binary files a/koperkapel/images/bunker/wall/wall_3.png and b/koperkapel/images/bunker/wall/wall_3.png differ diff --git a/koperkapel/images/bunker/wall/wall_4.png b/koperkapel/images/bunker/wall/wall_4.png index 4a5fbb4..aed6bad 100644 Binary files a/koperkapel/images/bunker/wall/wall_4.png and b/koperkapel/images/bunker/wall/wall_4.png differ diff --git a/koperkapel/loaders/levelloader.py b/koperkapel/loaders/levelloader.py index a8aaa37..6820b15 100644 --- a/koperkapel/loaders/levelloader.py +++ b/koperkapel/loaders/levelloader.py @@ -13,7 +13,7 @@ class Tile: TILESET = None @classmethod - def image(cls): + def image(cls, neighbors): if cls.IMG is None or cls.TILESET is None: raise NotImplementedError() return images.load(os.path.join(cls.TILESET, cls.IMG)) @@ -24,7 +24,7 @@ class RandomizedTile(Tile): ROTATE = None @classmethod - def image(cls): + def image(cls, neighbors): if cls.IMGDIR is None or cls.TILESET is None: raise NotImplementedError() @@ -45,10 +45,33 @@ class Wall(RandomizedTile): IMGDIR = "wall" class Underground(RandomizedTile): - IMGDIR = "wall" + IMGDIR = "underground" -class Tunnel(RandomizedTile): - IMGDIR = "floor" +class Tunnel(Tile): + + @classmethod + def image(cls, neighbors): + connections = len([x for x in neighbors if 'walk' in x['behaviour']]) + # simple cases + if connections == 0: + # return single point tunnel + pass + elif connections == 4: + # crossroads + pass + elif connections == 3: + # 3 point connector, rotated correctly + pass + elif connections == 1: + # 1 point connector, roatated correctly + pass + elif connections == 2: + # Need to distinguish pass-through or corner, and + # rotate correctly + pass + cls.IMG = os.path.join('tunnel', 'tunnel_none') + return super(Tunnel, cls).image(neighbors) + TILES = { "cwall": Wall, # rename this everywhere @@ -83,10 +106,21 @@ class LevelLoader(ResourceLoader): def _load_tile_images(self): """Load all the tile images""" - for row_data in self._tiles: - for tile in row_data: + height = len(self._tiles) + width = len(self._tiles[0]) + for y, row_data in enumerate(self._tiles): + for x, tile in enumerate(row_data): + # simplist case + # 4 -connected neighbors + neighborhood = [self._tiles[y][x-1] if x > 0 else None, + self._tiles[y][x+1] if x < width - 1 else None, + self._tiles[y-1][x] if y > 0 else None, + self._tiles[y+1][x] if y < height- 1 else None, + ] for layer in ['floor', 'tunnels']: - tile['%s image' % layer] = TILES[tile[layer]['base']].image() + neighbors = [x[layer] if x else None for x in neighborhood] + tile['%s image' % layer] = \ + TILES[tile[layer]['base']].image(neighbors) levels = LevelLoader('levels') diff --git a/sources/bitmap/tunnel/tunnel_base.xcf b/sources/bitmap/tunnel/tunnel_base.xcf new file mode 100644 index 0000000..7c1181b Binary files /dev/null and b/sources/bitmap/tunnel/tunnel_base.xcf differ diff --git a/sources/bitmap/tunnel/tunnel_none.png b/sources/bitmap/tunnel/tunnel_none.png new file mode 100644 index 0000000..677e8b5 Binary files /dev/null and b/sources/bitmap/tunnel/tunnel_none.png differ diff --git a/sources/bitmap/underground/underground_1.png b/sources/bitmap/underground/underground_1.png new file mode 100644 index 0000000..4439f27 Binary files /dev/null and b/sources/bitmap/underground/underground_1.png differ diff --git a/sources/bitmap/underground/underground_2.png b/sources/bitmap/underground/underground_2.png new file mode 100644 index 0000000..c3fbb93 Binary files /dev/null and b/sources/bitmap/underground/underground_2.png differ diff --git a/sources/bitmap/underground/underground_3.png b/sources/bitmap/underground/underground_3.png new file mode 100644 index 0000000..8bf22b8 Binary files /dev/null and b/sources/bitmap/underground/underground_3.png differ diff --git a/sources/bitmap/underground/underground_4.png b/sources/bitmap/underground/underground_4.png new file mode 100644 index 0000000..619f92c Binary files /dev/null and b/sources/bitmap/underground/underground_4.png differ