mirror of
https://github.com/OMGeeky/pytiled_parser.git
synced 2025-12-26 17:02:28 +01:00
Add support for parallax origin in maps
This commit is contained in:
@@ -5,7 +5,7 @@ from typing import List, Union, cast
|
||||
|
||||
from typing_extensions import TypedDict
|
||||
|
||||
from pytiled_parser.common_types import Size
|
||||
from pytiled_parser.common_types import OrderedPair, Size
|
||||
from pytiled_parser.exception import UnknownFormat
|
||||
from pytiled_parser.parsers.json.layer import RawLayer
|
||||
from pytiled_parser.parsers.json.layer import parse as parse_layer
|
||||
@@ -44,6 +44,8 @@ RawTiledMap = TypedDict(
|
||||
"type": str,
|
||||
"version": Union[str, float],
|
||||
"width": int,
|
||||
"parallaxoriginx": float,
|
||||
"parallaxoriginy": float,
|
||||
},
|
||||
)
|
||||
RawTiledMap.__doc__ = """
|
||||
@@ -185,4 +187,15 @@ def parse(file: Path) -> TiledMap:
|
||||
if raw_tiled_map.get("staggerindex") is not None:
|
||||
map_.stagger_index = raw_tiled_map["staggerindex"]
|
||||
|
||||
_parallax_origin_x = 0
|
||||
_parallax_origin_y = 0
|
||||
|
||||
if raw_tiled_map.get("parallaxoriginx") is not None:
|
||||
_parallax_origin_x = raw_tiled_map["parallaxoriginx"]
|
||||
|
||||
if raw_tiled_map.get("parallaxoriginy") is not None:
|
||||
_parallax_origin_y = raw_tiled_map["parallaxoriginy"]
|
||||
|
||||
map_.parallax_origin = OrderedPair(_parallax_origin_x, _parallax_origin_y)
|
||||
|
||||
return map_
|
||||
|
||||
@@ -2,7 +2,7 @@ import json
|
||||
import xml.etree.ElementTree as etree
|
||||
from pathlib import Path
|
||||
|
||||
from pytiled_parser.common_types import Size
|
||||
from pytiled_parser.common_types import OrderedPair, Size
|
||||
from pytiled_parser.exception import UnknownFormat
|
||||
from pytiled_parser.parsers.json.tileset import parse as parse_json_tileset
|
||||
from pytiled_parser.parsers.tmx.layer import parse as parse_layer
|
||||
@@ -145,4 +145,15 @@ def parse(file: Path) -> TiledMap:
|
||||
if raw_map.attrib.get("class") is not None:
|
||||
map_.class_ = raw_map.attrib["class"]
|
||||
|
||||
_parallax_origin_x = 0
|
||||
_parallax_origin_y = 0
|
||||
|
||||
if raw_map.attrib.get("parallaxoriginx") is not None:
|
||||
_parallax_origin_x = float(raw_map.attrib["parallaxoriginx"])
|
||||
|
||||
if raw_map.get("parallaxoriginy") is not None:
|
||||
_parallax_origin_y = float(raw_map.attrib["parallaxoriginy"])
|
||||
|
||||
map_.parallax_origin = OrderedPair(_parallax_origin_x, _parallax_origin_y)
|
||||
|
||||
return map_
|
||||
|
||||
@@ -7,7 +7,7 @@ from typing import Dict, List, Optional
|
||||
|
||||
import attr
|
||||
|
||||
from pytiled_parser.common_types import Color, Size
|
||||
from pytiled_parser.common_types import Color, OrderedPair, Size
|
||||
from pytiled_parser.layer import Layer
|
||||
from pytiled_parser.properties import Properties
|
||||
from pytiled_parser.tileset import Tileset
|
||||
@@ -66,6 +66,8 @@ class TiledMap:
|
||||
tilesets: TilesetDict
|
||||
version: str
|
||||
|
||||
parallax_origin: OrderedPair = OrderedPair(0, 0)
|
||||
|
||||
map_file: Optional[Path] = None
|
||||
class_: Optional[str] = None
|
||||
background_color: Optional[Color] = None
|
||||
|
||||
@@ -10,10 +10,11 @@ EXPECTED = tiled_map.TiledMap(
|
||||
next_object_id=1,
|
||||
orientation="orthogonal",
|
||||
render_order="right-down",
|
||||
tiled_version="1.6.0",
|
||||
tiled_version="1.9.1",
|
||||
tile_size=common_types.Size(32, 32),
|
||||
version="1.6",
|
||||
version="1.9",
|
||||
background_color=common_types.Color(255, 0, 4, 255),
|
||||
parallax_origin=common_types.OrderedPair(10, 15),
|
||||
tilesets={
|
||||
1: tileset.Tileset(
|
||||
columns=8,
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
"nextlayerid":2,
|
||||
"nextobjectid":1,
|
||||
"orientation":"orthogonal",
|
||||
"parallaxoriginx":10,
|
||||
"parallaxoriginy":15,
|
||||
"properties":[
|
||||
{
|
||||
"name":"bool property - true",
|
||||
@@ -38,7 +40,7 @@
|
||||
"value":"Hello, World!!"
|
||||
}],
|
||||
"renderorder":"right-down",
|
||||
"tiledversion":"1.9.0",
|
||||
"tiledversion":"1.9.1",
|
||||
"tileheight":32,
|
||||
"tilesets":[
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.0" orientation="orthogonal" renderorder="right-down" compressionlevel="0" width="8" height="6" tilewidth="32" tileheight="32" infinite="0" backgroundcolor="#ff0004" nextlayerid="2" nextobjectid="1">
|
||||
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" compressionlevel="0" width="8" height="6" tilewidth="32" tileheight="32" infinite="0" parallaxoriginx="10" parallaxoriginy="15" backgroundcolor="#ff0004" nextlayerid="2" nextobjectid="1">
|
||||
<properties>
|
||||
<property name="bool property - true" type="bool" value="true"/>
|
||||
<property name="color property" type="color" value="#ff49fcff"/>
|
||||
|
||||
Reference in New Issue
Block a user