feat(wangsets): Initial Implementation of wang sets

This commit is contained in:
Darren Eberly
2020-07-23 21:35:50 -04:00
parent ab685c8917
commit b7a513641e
4 changed files with 696 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
from typing import List, NamedTuple, Optional
import attr
from typing_extensions import TypedDict
from . import properties as properties_
from .common_types import Color, OrderedPair
class WangTile(NamedTuple):
id: int
dflip: bool = False
hflip: bool = False
vflip: bool = False
wang_ids: List[int] = []
class WangColor(NamedTuple):
color: Color
name: str
probability: float
tile: int
class WangSet(NamedTuple):
cornercolors: List[WangColor]
edgecolors: List[WangColor]
name: str
tile: int
wang_tiles: List[WangTile]
properties: Optional[properties_.Properties] = None
class RawWangTile(TypedDict):
""" The keys and their types that appear in a Wang Tile JSON Object."""
tileid: int
dflip: bool
hflip: bool
vflip: bool
wangid: List[int]
class RawWangColor(TypedDict):
""" The keys and their types that appear in a Wang Color JSON Object."""
color: str
name: str
probability: float
tile: int
class RawWangSet(TypedDict):
""" The keys and their types that appear in a Wang Set JSON Object."""

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1,32 @@
{ "compressionlevel":-1,
"height":20,
"infinite":false,
"layers":[
{
"data":[35, 1, 57, 49, 48, 67, 75, 7, 61, 52, 70, 44, 81, 55, 59, 63, 10, 68, 63, 81, 22, 23, 72, 60, 61, 52, 79, 26, 72, 60, 53, 54, 54, 72, 60, 34, 22, 77, 60, 52, 59, 64, 75, 70, 61, 71, 78, 71, 46, 29, 30, 35, 33, 53, 63, 42, 35, 9, 69, 58, 55, 74, 5, 9, 28, 2, 77, 54, 55, 39, 25, 25, 26, 63, 63, 78, 25, 26, 54, 72, 65, 50, 45, 27, 24, 26, 1, 66, 61, 7, 70, 62, 72, 33, 34, 52, 70, 70, 70, 8, 48, 34, 7, 62, 60, 67, 23, 54, 64, 23, 46, 32, 73, 21, 25, 70, 80, 78, 7, 43, 71, 42, 13, 56, 66, 7, 31, 59, 6, 62, 63, 18, 46, 30, 31, 48, 80, 54, 42, 53, 79, 7, 16, 62, 54, 19, 11, 59, 42, 35, 36, 42, 61, 16, 43, 71, 51, 34, 4, 59, 76, 41, 37, 30, 61, 70, 13, 57, 80, 18, 15, 53, 36, 42, 52, 7, 70, 25, 13, 29, 79, 53, 6, 44, 64, 77, 42, 70, 80, 24, 22, 68, 24, 52, 70, 26, 54, 55, 39, 26, 54, 60, 17, 1, 5, 6, 80, 51, 76, 56, 65, 75, 34, 58, 5, 28, 56, 59, 51, 70, 61, 67, 14, 18, 24, 16, 49, 59, 81, 36, 9, 51, 26, 69, 40, 20, 32, 64, 66, 52, 33, 76, 21, 22, 68, 19, 59, 55, 50, 10, 21, 70, 70, 8, 51, 71, 18, 54, 78, 70, 42, 8, 60, 70, 4, 30, 31, 30, 31, 38, 32, 54, 46, 38, 57, 80, 24, 70, 53, 1, 53, 24, 58, 48, 43, 17, 18, 24, 43, 52, 22, 59, 33, 80, 63, 54, 33, 49, 59, 15, 35, 72, 33, 67, 75, 17, 42, 35, 1, 29, 68, 72, 42, 52, 61, 61, 26, 63, 36, 45, 45, 54, 42, 53, 73, 23, 73, 21, 44, 42, 76, 48, 76, 57, 62, 60, 70, 58, 23, 78, 48, 67, 75, 61, 79, 61, 52, 61, 79, 53, 54, 55, 75, 70, 34, 70, 7, 58, 66, 52, 33, 53, 51, 61, 8, 72, 60, 31, 74, 57, 70, 67, 3, 79, 22, 47, 12, 62, 51, 31, 43, 58, 68, 63, 15, 76, 65, 23, 54, 63, 6, 8, 19, 74, 57, 62, 24, 35, 60, 43],
"height":20,
"id":1,
"name":"Tile Layer 1",
"opacity":1,
"type":"tilelayer",
"visible":true,
"width":20,
"x":0,
"y":0
}],
"nextlayerid":2,
"nextobjectid":1,
"orientation":"orthogonal",
"renderorder":"right-down",
"tiledversion":"1.3.5",
"tileheight":32,
"tilesets":[
{
"firstgid":1,
"source":"tileset.json"
}],
"tilewidth":32,
"type":"map",
"version":1.2,
"width":20
}

View File

@@ -0,0 +1,607 @@
{ "columns":9,
"image":"..\/..\/images\/walkways.png",
"imageheight":288,
"imagewidth":288,
"margin":0,
"name":"tileset",
"spacing":0,
"tilecount":81,
"tiledversion":"1.3.5",
"tileheight":32,
"tilewidth":32,
"type":"tileset",
"version":1.2,
"wangsets":[
{
"cornercolors":[],
"edgecolors":[
{
"color":"#ff0000",
"name":"Path",
"probability":1,
"tile":-1
},
{
"color":"#00ff00",
"name":"Grass",
"probability":0.75,
"tile":-1
},
{
"color":"#0000ff",
"name":"WalkWay",
"probability":0.5,
"tile":-1
}],
"name":"My Wang Set",
"tile":-1,
"wangtiles":[
{
"dflip":false,
"hflip":false,
"tileid":0,
"vflip":false,
"wangid":[2, 0, 3, 0, 3, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":1,
"vflip":false,
"wangid":[2, 0, 3, 0, 3, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":2,
"vflip":false,
"wangid":[2, 0, 1, 0, 3, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":3,
"vflip":false,
"wangid":[2, 0, 3, 0, 3, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":4,
"vflip":false,
"wangid":[2, 0, 2, 0, 3, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":5,
"vflip":false,
"wangid":[2, 0, 1, 0, 3, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":6,
"vflip":false,
"wangid":[2, 0, 1, 0, 3, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":7,
"vflip":false,
"wangid":[2, 0, 2, 0, 3, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":8,
"vflip":false,
"wangid":[2, 0, 2, 0, 3, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":9,
"vflip":false,
"wangid":[3, 0, 3, 0, 3, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":10,
"vflip":false,
"wangid":[3, 0, 3, 0, 3, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":11,
"vflip":false,
"wangid":[3, 0, 1, 0, 3, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":12,
"vflip":false,
"wangid":[3, 0, 3, 0, 3, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":13,
"vflip":false,
"wangid":[3, 0, 2, 0, 3, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":14,
"vflip":false,
"wangid":[3, 0, 1, 0, 3, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":15,
"vflip":false,
"wangid":[3, 0, 1, 0, 3, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":16,
"vflip":false,
"wangid":[3, 0, 2, 0, 3, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":17,
"vflip":false,
"wangid":[3, 0, 2, 0, 3, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":18,
"vflip":false,
"wangid":[3, 0, 3, 0, 1, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":19,
"vflip":false,
"wangid":[3, 0, 3, 0, 1, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":20,
"vflip":false,
"wangid":[3, 0, 1, 0, 1, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":21,
"vflip":false,
"wangid":[3, 0, 3, 0, 1, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":22,
"vflip":false,
"wangid":[3, 0, 2, 0, 1, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":23,
"vflip":false,
"wangid":[3, 0, 1, 0, 1, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":24,
"vflip":false,
"wangid":[3, 0, 1, 0, 1, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":25,
"vflip":false,
"wangid":[3, 0, 2, 0, 1, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":26,
"vflip":false,
"wangid":[3, 0, 2, 0, 1, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":27,
"vflip":false,
"wangid":[1, 0, 3, 0, 3, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":28,
"vflip":false,
"wangid":[1, 0, 3, 0, 3, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":29,
"vflip":false,
"wangid":[1, 0, 1, 0, 3, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":30,
"vflip":false,
"wangid":[1, 0, 3, 0, 3, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":31,
"vflip":false,
"wangid":[1, 0, 2, 0, 3, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":32,
"vflip":false,
"wangid":[1, 0, 1, 0, 3, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":33,
"vflip":false,
"wangid":[1, 0, 1, 0, 3, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":34,
"vflip":false,
"wangid":[1, 0, 2, 0, 3, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":35,
"vflip":false,
"wangid":[1, 0, 2, 0, 3, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":36,
"vflip":false,
"wangid":[3, 0, 3, 0, 2, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":37,
"vflip":false,
"wangid":[3, 0, 3, 0, 2, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":38,
"vflip":false,
"wangid":[3, 0, 1, 0, 2, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":39,
"vflip":false,
"wangid":[3, 0, 3, 0, 2, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":40,
"vflip":false,
"wangid":[3, 0, 2, 0, 2, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":41,
"vflip":false,
"wangid":[3, 0, 1, 0, 2, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":42,
"vflip":false,
"wangid":[3, 0, 1, 0, 2, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":43,
"vflip":false,
"wangid":[3, 0, 2, 0, 2, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":44,
"vflip":false,
"wangid":[3, 0, 2, 0, 2, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":45,
"vflip":false,
"wangid":[2, 0, 3, 0, 1, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":46,
"vflip":false,
"wangid":[2, 0, 3, 0, 1, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":47,
"vflip":false,
"wangid":[2, 0, 1, 0, 1, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":48,
"vflip":false,
"wangid":[2, 0, 3, 0, 1, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":49,
"vflip":false,
"wangid":[2, 0, 2, 0, 1, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":50,
"vflip":false,
"wangid":[2, 0, 1, 0, 1, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":51,
"vflip":false,
"wangid":[2, 0, 1, 0, 1, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":52,
"vflip":false,
"wangid":[2, 0, 2, 0, 1, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":53,
"vflip":false,
"wangid":[2, 0, 2, 0, 1, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":54,
"vflip":false,
"wangid":[1, 0, 3, 0, 1, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":55,
"vflip":false,
"wangid":[1, 0, 3, 0, 1, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":56,
"vflip":false,
"wangid":[1, 0, 1, 0, 1, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":57,
"vflip":false,
"wangid":[1, 0, 3, 0, 1, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":58,
"vflip":false,
"wangid":[1, 0, 2, 0, 1, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":59,
"vflip":false,
"wangid":[1, 0, 1, 0, 1, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":60,
"vflip":false,
"wangid":[1, 0, 1, 0, 1, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":61,
"vflip":false,
"wangid":[1, 0, 2, 0, 1, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":62,
"vflip":false,
"wangid":[1, 0, 2, 0, 1, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":63,
"vflip":false,
"wangid":[1, 0, 3, 0, 2, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":64,
"vflip":false,
"wangid":[1, 0, 3, 0, 2, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":65,
"vflip":false,
"wangid":[1, 0, 1, 0, 2, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":66,
"vflip":false,
"wangid":[1, 0, 3, 0, 2, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":67,
"vflip":false,
"wangid":[1, 0, 2, 0, 2, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":68,
"vflip":false,
"wangid":[1, 0, 1, 0, 2, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":69,
"vflip":false,
"wangid":[1, 0, 1, 0, 2, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":70,
"vflip":false,
"wangid":[1, 0, 2, 0, 2, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":71,
"vflip":false,
"wangid":[1, 0, 2, 0, 2, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":72,
"vflip":false,
"wangid":[2, 0, 3, 0, 2, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":73,
"vflip":false,
"wangid":[2, 0, 3, 0, 2, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":74,
"vflip":false,
"wangid":[2, 0, 1, 0, 2, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":75,
"vflip":false,
"wangid":[2, 0, 3, 0, 2, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":76,
"vflip":false,
"wangid":[2, 0, 2, 0, 2, 0, 3, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":77,
"vflip":false,
"wangid":[2, 0, 1, 0, 2, 0, 2, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":78,
"vflip":false,
"wangid":[2, 0, 1, 0, 2, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":79,
"vflip":false,
"wangid":[2, 0, 2, 0, 2, 0, 1, 0]
},
{
"dflip":false,
"hflip":false,
"tileid":80,
"vflip":false,
"wangid":[2, 0, 2, 0, 2, 0, 2, 0]
}]
}]
}