Move all root .py files into playscii/ package directory. Rename playscii.py to app.py, add __main__.py entry point. Convert bare imports to relative (within package) and absolute (in formats/ and games/). Data dirs stay at root.
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
from playscii import vector
|
|
from playscii.game_object import GameObject
|
|
from playscii.renderable_line import DebugLineRenderable
|
|
|
|
# stuff for troubleshooting "get tiles intersecting line" etc
|
|
|
|
|
|
class DebugMarker(GameObject):
|
|
art_width, art_height = 1, 1
|
|
art_off_pct_x, art_off_pct_y = 0.0, 0.0
|
|
generate_art = True
|
|
should_save = False
|
|
alpha = 0.5
|
|
|
|
def pre_first_update(self):
|
|
# red X with yellow background
|
|
self.art.set_tile_at(0, 0, 0, 0, 24, 3, 8)
|
|
self.z = 0.1
|
|
|
|
|
|
class LineTester(GameObject):
|
|
art_width, art_height = 40, 40
|
|
art_off_pct_x, art_off_pct_y = 0.0, 0.0
|
|
generate_art = True
|
|
|
|
def pre_first_update(self):
|
|
self.mark_a = self.world.spawn_object_of_class("DebugMarker", -3, 33)
|
|
self.mark_b = self.world.spawn_object_of_class("DebugMarker", -10, 40)
|
|
self.z = -0.01
|
|
self.world.grid.visible = True
|
|
self.line = DebugLineRenderable(self.app, self.art)
|
|
self.line.z = 0.0
|
|
self.line.line_width = 3
|
|
|
|
def update(self):
|
|
GameObject.update(self)
|
|
# debug line
|
|
self.line.set_lines(
|
|
[(self.mark_a.x, self.mark_a.y, 0.0), (self.mark_b.x, self.mark_b.y, 0.0)]
|
|
)
|
|
# paint tiles under line
|
|
self.art.clear_frame_layer(0, 0, 7)
|
|
line_func = vector.get_tiles_along_line
|
|
line_func = vector.get_tiles_along_integer_line
|
|
tiles = line_func(self.mark_a.x, self.mark_a.y, self.mark_b.x, self.mark_b.y)
|
|
for tile in tiles:
|
|
x, y = self.get_tile_at_point(tile[0], tile[1])
|
|
char, fg = 1, 6
|
|
self.art.set_tile_at(0, 0, x, y, char, fg)
|
|
|
|
def render(self, layer, z_override=None):
|
|
GameObject.render(self, layer, z_override)
|
|
# TODO not sure why this is necessary, pre_first_update should run before first render(), right? blech
|
|
if hasattr(self, "line") and self.line:
|
|
self.line.render()
|