tilemap-parser 3.1.17__tar.gz → 3.1.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/PKG-INFO +1 -1
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/pyproject.toml +1 -1
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/__init__.py +1 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/__init__.py +2 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/tile_collision.py +53 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser.egg-info/PKG-INFO +1 -1
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/LICENSE +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/README.md +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/setup.cfg +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/parser/__init__.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/parser/animation.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/parser/collision.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/parser/collision_loader.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/parser/map_parse.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/parser/node_parse.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/parser/particle.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/animation_player.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/area_node.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/collision_cache.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/map_loader.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/object_collision.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/particles.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/renderer.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/utils/__init__.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/utils/geometry.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser.egg-info/SOURCES.txt +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser.egg-info/dependency_links.txt +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser.egg-info/requires.txt +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser.egg-info/top_level.txt +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/tests/test_collision.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/tests/test_geometry.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/tests/test_map_loader.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/tests/test_object_collision.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/tests/test_object_surfaces.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/tests/test_render_scale.py +0 -0
- {tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/tests/test_tile_collision.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tilemap-parser
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.19
|
|
4
4
|
Summary: Standalone parser/loader for tilemap-editor JSON maps, sprite animations, and collision detection runtime.
|
|
5
5
|
Author: tilemap parser contributors
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tilemap-parser"
|
|
7
|
-
version = "3.1.
|
|
7
|
+
version = "3.1.19"
|
|
8
8
|
description = "Standalone parser/loader for tilemap-editor JSON maps, sprite animations, and collision detection runtime."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -14,6 +14,7 @@ from .tile_collision import (
|
|
|
14
14
|
CollisionRunner,
|
|
15
15
|
ICollidableSprite,
|
|
16
16
|
MovementMode,
|
|
17
|
+
rect_vs_tilemap,
|
|
17
18
|
)
|
|
18
19
|
from .map_loader import TilemapData, load_map
|
|
19
20
|
from .object_collision import (
|
|
@@ -63,6 +64,7 @@ __all__ = [
|
|
|
63
64
|
"ParticleEmitterNode",
|
|
64
65
|
"ParticleRenderer",
|
|
65
66
|
"ParticleSystem",
|
|
67
|
+
"rect_vs_tilemap",
|
|
66
68
|
"SpriteBatchRenderer",
|
|
67
69
|
"clear_texture_caches",
|
|
68
70
|
]
|
{tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/tile_collision.py
RENAMED
|
@@ -960,6 +960,7 @@ class CollisionRunner:
|
|
|
960
960
|
sprite.y = lo
|
|
961
961
|
elif sprite.vy < 0:
|
|
962
962
|
sprite.vy = 0.0
|
|
963
|
+
sprite.on_ground = False
|
|
963
964
|
result.hit_ceiling = True
|
|
964
965
|
else:
|
|
965
966
|
sprite.on_ground = True
|
|
@@ -1936,3 +1937,55 @@ class CollisionRunner:
|
|
|
1936
1937
|
raise ValueError(warning_msg)
|
|
1937
1938
|
else:
|
|
1938
1939
|
warnings.warn(warning_msg, UserWarning, stacklevel=2)
|
|
1940
|
+
|
|
1941
|
+
|
|
1942
|
+
def rect_vs_tilemap(
|
|
1943
|
+
left: float,
|
|
1944
|
+
top: float,
|
|
1945
|
+
right: float,
|
|
1946
|
+
bottom: float,
|
|
1947
|
+
tile_map: Dict[Tuple[int, int], int],
|
|
1948
|
+
tileset_collision: TilesetCollision,
|
|
1949
|
+
tile_size: Tuple[int, int],
|
|
1950
|
+
render_scale: float = 1.0,
|
|
1951
|
+
) -> bool:
|
|
1952
|
+
"""Check if an AABB collides with any collision tile in a tile map.
|
|
1953
|
+
|
|
1954
|
+
Iterates overlapping tiles, transforms each tile's collision polygons to
|
|
1955
|
+
world space, and tests for intersection with the given rectangle.
|
|
1956
|
+
|
|
1957
|
+
Args:
|
|
1958
|
+
left, top, right, bottom: World-space AABB of the query rect.
|
|
1959
|
+
tile_map: Dict mapping (col, row) -> tile_variant_id.
|
|
1960
|
+
tileset_collision: TilesetCollision with per-tile polygon shapes.
|
|
1961
|
+
tile_size: Raw tile size as (width, height) from map data.
|
|
1962
|
+
render_scale: Multiplier from tile-local to world pixels.
|
|
1963
|
+
|
|
1964
|
+
Returns:
|
|
1965
|
+
True if the rect overlaps any tile collision polygon.
|
|
1966
|
+
"""
|
|
1967
|
+
tw = tile_size[0] * render_scale
|
|
1968
|
+
th = tile_size[1] * render_scale
|
|
1969
|
+
tx0 = math.floor(left / tw)
|
|
1970
|
+
tx1 = math.floor((right - 1) / tw)
|
|
1971
|
+
ty0 = math.floor(top / th)
|
|
1972
|
+
ty1 = math.floor((bottom - 1) / th)
|
|
1973
|
+
rw = right - left
|
|
1974
|
+
rh = bottom - top
|
|
1975
|
+
|
|
1976
|
+
for ty in range(ty0, ty1 + 1):
|
|
1977
|
+
for tx in range(tx0, tx1 + 1):
|
|
1978
|
+
tile_id = tile_map.get((tx, ty))
|
|
1979
|
+
if tile_id is None:
|
|
1980
|
+
continue
|
|
1981
|
+
tile_data = tileset_collision.tiles.get(tile_id)
|
|
1982
|
+
if tile_data is None:
|
|
1983
|
+
continue
|
|
1984
|
+
ox = tx * tw
|
|
1985
|
+
oy = ty * th
|
|
1986
|
+
for poly in tile_data.shapes:
|
|
1987
|
+
if not poly.is_valid():
|
|
1988
|
+
continue
|
|
1989
|
+
if _rect_polygon_collision_offset(left, top, rw, rh, poly.vertices, ox, oy, render_scale):
|
|
1990
|
+
return True
|
|
1991
|
+
return False
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tilemap-parser
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.19
|
|
4
4
|
Summary: Standalone parser/loader for tilemap-editor JSON maps, sprite animations, and collision detection runtime.
|
|
5
5
|
Author: tilemap parser contributors
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/parser/collision_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/animation_player.py
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/collision_cache.py
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser/runtime/object_collision.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_parser-3.1.17 → tilemap_parser-3.1.19}/src/tilemap_parser.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|