Merge branch 'rf/caster' of https://github.com/Beefy-Swain/pytiled_parser into rf/caster

This commit is contained in:
Darren Eberly
2020-05-31 01:57:46 -04:00
2 changed files with 54 additions and 5 deletions

View File

@@ -6,6 +6,7 @@ import attr
from typing_extensions import TypedDict
from .properties import Properties, RawProperties
from .common_types import Color, OrderedPair, Size
from .template import Template
@@ -125,12 +126,12 @@ class Text(TiledObject):
font_family: str = "sans-serif"
font_size: int = 16
wrap: bool = False
color: str = "#000000"
color: Color = "#000000"
bold: bool = False
italic: bool = False
underline: bool = False
strike_out: bool = False
kerning: bool = False
kerning: bool = True
horizontal_align: str = "left"
vertical_align: str = "top"
@@ -148,9 +149,6 @@ class Tile(TiledObject):
gid: int
RawProperties = Dict[str, Union[str, float, bool]]
class RawTiledObject(TypedDict):
""" The keys and their types that appear in a Tiled JSON Object."""
@@ -170,6 +168,8 @@ class RawTiledObject(TypedDict):
ellipse: bool
point: bool
polygon: List[Dict[str, float]]
polyline: List[Dict[str, float]]
text: Dict[str, Union[float, str]]
RawTiledObjects = List[RawTiledObject]
@@ -267,6 +267,14 @@ def _cast_point(raw_tiled_object: RawTiledObject) -> Point:
def _cast_tile(raw_tiled_object: RawTiledObject) -> Tile:
""" Cast the raw_tiled_object to a Tile object.
Args:
raw_tiled_object: Raw Tiled object to be casted to a Tile
Returns:
Tile: The Tile object created from the raw_tiled_object
"""
gid = raw_tiled_object["gid"]
return Tile(gid=gid, **_get_common_attributes(raw_tiled_object).__dict__)

View File

@@ -1051,6 +1051,47 @@ TEXTS = [
coordinates=common_types.OrderedPair(96.3338140843469, 130.620495623508),
),
),
(
"""
{
"height":19,
"id":31,
"name":"name: text - font options",
"rotation":0,
"text":
{
"bold":true,
"italic":true,
"kerning":false,
"strikeout":true,
"text":"Hello World",
"underline":true,
"wrap":true
},
"type":"text",
"visible":true,
"width":92.375,
"x":33,
"y":22
}
""",
tiled_object.Text(
id=31,
name="name: text - font options",
rotation=0,
bold=True,
italic=True,
kerning=False,
strike_out=True,
text="Hello World",
underline=True,
wrap=True,
type="text",
visible=True,
size=common_types.Size(92.375, 19),
coordinates=common_types.OrderedPair(33, 22),
),
),
]
OBJECTS = ELLIPSES + RECTANGLES + POINTS + TILES + POLYGONS + POLYLINES + TEXTS