closes#18
commit b114ec3085
Author: John McCardle <mccardle.john@gmail.com>
Date: Thu Mar 21 22:22:35 2024 -0400
cleaning up for merge
commit d7228172c4
Author: John McCardle <mccardle.john@gmail.com>
Date: Thu Mar 21 21:39:15 2024 -0400
Messy, but monumental: PyTexture::pyObject works
this also coincidentally fixes a weird bug I encountered while
(mis?)using tp_alloc: by using PyType_GenericAlloc, I avoid the segfault
that tp_alloc sometimes causes. See the horrible UIDrawable retrieval
macro that I use in UI.h for a workaround that can probably be replaced
with this technique
commit 2cf8f94310
Author: John McCardle <mccardle.john@gmail.com>
Date: Wed Mar 20 21:16:52 2024 -0400
Radical new example pattern for exposing a C++ class to Python
commit 84a8886da2
Author: John McCardle <mccardle.john@gmail.com>
Date: Sun Mar 17 16:29:33 2024 -0400
Fixed render issue with UIGrid / PyTexture: wasn't positioning or scaling properly after fetching sprite
commit 20f80c4114
Author: John McCardle <mccardle.john@gmail.com>
Date: Sun Mar 17 16:23:52 2024 -0400
Fixed sprite indexing error in PyTexture; needs non-square sprite tests, but feeling confident!
commit afd4ff1925
Author: John McCardle <mccardle.john@gmail.com>
Date: Sat Mar 16 21:53:24 2024 -0400
good progress, we're building again. Issue with Grid (tile sprite) textures and I think the sprite indexes are being calculated wrong (x and y transposed?)
commit bfd33102d1
Author: John McCardle <mccardle.john@gmail.com>
Date: Sat Mar 16 14:52:35 2024 -0400
Squashed basically all the compile bugs in UISprite, but UIEntity and UIGrid use textures as well, so they need to be fixed too before the project will build again
commit 47d0e34a17
Author: John McCardle <mccardle.john@gmail.com>
Date: Sat Mar 16 11:31:39 2024 -0400
Initial PyTexture class
no testing done.
should enable rectangular (non-square) textures
"sprite" method; let's just overwrite sprites with texture coords
Hoping to replace awful code like:
`self->data->sprite.sprite.setTextureRect(self->data->sprite.itex->spriteCoordinates(val));`
with something like:
`self->data->sprite = self->data->texture->sprite(val);`
closes#4
commit 8f060dc87b
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Mar 15 22:20:03 2024 -0400
Removing std::cout debugging statements
commit c9d5251c71
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Mar 15 20:00:57 2024 -0400
In-place map modification worked
commit 0a8f67e391
Author: John McCardle <mccardle.john@gmail.com>
Date: Thu Mar 14 23:13:13 2024 -0400
Stress test is failing: By removing a timer to a function (from inside that function?) I can immediately cause a segfault.
commit 05d9f6a882
Author: John McCardle <mccardle.john@gmail.com>
Date: Tue Mar 12 22:27:12 2024 -0400
wow, good test of Key and Click Callable classes. Cleanup, squash, and merge after I give it a lookover in daylight, though.
commit 972768eb26
Author: John McCardle <mccardle.john@gmail.com>
Date: Tue Mar 12 21:02:48 2024 -0400
inital PyCallable work; isolate very well behaved usage of PyObject references behind RAII
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.
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