Commit Graph

19 Commits

Author SHA1 Message Date
John McCardle aa7f2ba605 Segfault fixes. Switching scenes broke some assumptions. All PyObject calls from userspace now handle (discard) exceptions and return values. 2024-03-08 12:09:09 -05:00
John McCardle e8240cb380 Exit functionality via game engine, because sys.exit was making a mess 2024-03-08 10:17:26 -05:00
John McCardle db548c9183 Scene switching safety 2024-03-07 13:30:08 -05:00
John McCardle 4b31864b2f Adding text functionality to Caption (why was that missing???) 2024-03-07 12:35:07 -05:00
John McCardle 343669df1e nice-ifying UIFrame __init__ and making debug a bit easier 2024-03-07 11:19:46 -05:00
John McCardle d417bdc8a3 Whoops, some issues with deleting timers. 2024-03-07 09:49:24 -05:00
John McCardle ccd79fc551 quick & dirty timer functionality 2024-03-07 08:59:26 -05:00
John McCardle 9d728ee902 Keyboard initial functionality commit 2024-03-07 08:13:37 -05:00
John McCardle 9587218b28 Mouse input prototype 2024-03-06 21:12:26 -05:00
John McCardle 6a1edfe182 remove more cruft files 2024-03-06 21:10:31 -05:00
John McCardle 145012074c Remove cruft from API. New style objects are now the only objects 2024-03-06 11:04:50 -05:00
John McCardle 30cfa5ca71 Scene switching API 2024-03-06 10:50:19 -05:00
John McCardle 6de3f0e8cf 7DRL 2024 Day 4 updates - UIGrid / mcrfpy.Grid
Massive new set of behaviors:
* Move, resize*, zoom, and pan mcrfpy.Grid instances from Python. Note:
there's a rendering error with resizing, which will have to wait for
after 7DRL.

* Add, remove, and create mcrfpy.Entity instances from Python. The
fields can be edited to change position and sprite. They can be removed
from a grid and/or added to another. the Entity class is closely related
to the EntityCollection class, the Python interface to UIGrid's
std::vector of UIEntities.

* mcrfpy.GridPoint and mcrfyp.GridPointState objects. The GridPoint
class allows access to the "physical" parts of a grid. The
GridPointState class allows access to an entity's knowledge of it. Grids
and Entities have an "at" method that takes a tuple (x,y) and returns
one of these objects.

__repr__ and many other nice things are notably absent - many TODOs were
added to the codebase today. They can get picked up after 7DRL.
2024-03-05 22:37:50 -05:00
John McCardle 08772111de some fixes; instantiating PyUIGrid / mcrfpy.Grid safely now. Many issues remain 2024-03-05 07:42:49 -05:00
John McCardle 4dd4f74120 WIP / UIGrid and related elements added in one giant leap. see TODO / BUGFIX in several places for incomplete functionality. 2024-03-04 23:12:08 -05:00
John McCardle 197211fa76 pre-7DRL 2024 commit: got UIGrid to render. Needs entities, sprite tests, and python API 2024-03-02 00:42:21 -05:00
John McCardle 198ed337e3 Windows build 2024-02-25 15:38:38 -05:00
John McCardle 07b597d6f2 Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup
directories needed:
* build - for cmake output
* deps - stuff needed to compile McRogueface (headers)
	libtcod -> ../modules/libtcod/src/libtcod
	sfml -> ../modules/SFML/include/SFML
	python -> ../modules/cpython/Include
* lib - stuff needed to link McRogueFace (shared objects); also required at runtime
	libtcod -> `../modules/libtcod/buildsys/autotools/.libs/libtcod.so.1.0.24`
	sfml -> `../modules/SFML/build/lib/*`
	python -> `../modules/cpython/libpython3.12.so`; standard lib at ../modules/cpython/build/lib.linux-x86_64-3.12 & ../modules/cpython/Lib

You can get dependencies by:
 - Build from source (i.e. all submodules)
 - Go download them from each project's website
 - install packages from your distro and symlink them to deps/lib directories
2024-02-24 22:48:39 -05:00
John McCardle d0d2eae762 Initial Commit / Linux Combined Proof of Concept example 2023-02-23 19:37:13 -05:00