John McCardle
cf485ef327
Refactoring UISprite to play well with Python API and match existing code styles. Default constructor will have to go, which complicates the Python class slightly for mcrfpy.Sprite
2023-09-11 20:30:10 -04:00
John McCardle
3a1432212f
UICollection.remove
2023-09-09 10:14:11 -04:00
John McCardle
38b6a3cade
UICollection.append, tests are good for Caption and Frame objects created by Python to be drawn by the UITestScene
2023-09-09 08:49:02 -04:00
John McCardle
1bbb0aa5b8
Caption object seems to be instantiable with a Font object now. Can't test actual rendering without a way to add objects to a collection.
2023-09-07 23:10:21 -04:00
John McCardle
bec2b3294d
Added PyFont/mcrfpy.Font object
2023-09-07 22:25:19 -04:00
John McCardle
9486104377
Converted py_instance to a macro (don't ask me why it doesn't work as a function) and first pass at UICaption functionality. UISprite C++ tests.
2023-09-03 20:40:52 -04:00
John McCardle
5267287b05
checkpoint: found that py_instance causes segfaults when called separately, but the same exact code inside of the _getitem method works fine. I can't explain that. I guess I'll turn it into a macro so the actions are inline and I can move on to finishing the other UI classes.
2023-09-03 12:46:23 -04:00
John McCardle
b8af8bc870
UIDrawable to Python object (untested, but compiling)
2023-09-02 20:02:07 -04:00
John McCardle
0ef0a5d506
Switched UIFrame and Scene to store their UIDrawables in shared_ptr to vector, instead of directly to vector. Every object that can be exposed to Python has to be safely shareable so it doesn't become a segfault, and that includes the UIDrawable collections AND the UIDrawable members. So we get the terrifying type for collections of child elements: 'std::shared_ptr<std::vector<std::shared_ptr<UIDrawable>>>'. May I be forgiven for my sins
2023-09-02 14:00:48 -04:00
John McCardle
a41d3d4a54
Iterator class fleshed out. Several implementations left to do, but it compiles, and I think every function definition for the PyUICollectionType and PyUICollectionIterType is now in place
2023-09-02 09:22:34 -04:00
John McCardle
6d4bc2989c
UICollection work: fixed compilation, still quite a bit of stubs
2023-09-02 04:40:05 -04:00
John McCardle
d5a7cbca85
In progress: UICollection. mcrfpydef::PyUICollection_sqmethods needs to be made static or moved somewhere it won't be multiply defined
2023-09-01 23:31:31 -04:00
John McCardle
5d8510747c
Color and Frame classes pretty well integrated from the Python perspective now
2023-09-01 18:28:59 -04:00
John McCardle
06052c81c9
PyUIFrame looking not half bad. There seems to be a glitch with the color values.
2023-09-01 12:14:24 -04:00
John McCardle
6fe7b842ef
Successful use of a copy-modify-paste template of Python type (UIFrame -> PyUIFrameObject)
2023-08-31 22:32:58 -04:00
John McCardle
50d926fe37
Aug 30/31 updates. Tinkering with shared_ptr. Working towards exposing UI objects to Python UI. Color object updated for shared_ptr structure that will be repeated for the rest of the UI objects. Still a lot of open questions, but committing here to get back on track after a few hours wasted trying to solve this problem too generally via templates.
2023-08-31 13:51:56 -04:00
John McCardle
795701c986
Cleanup: less curly braces in destructor
2023-08-30 14:50:27 -04:00
John McCardle
884a49a63a
Switching UIFrame to sf::Color* for outline and fill members. Haven't tested with Python integration, but I wrote the methods to take a crack at it
2023-08-30 14:38:49 -04:00
John McCardle
c4d5a497d4
Color container type for Python working. I still need to implement UIFrame using it.
2023-08-28 05:44:26 -04:00
John McCardle
ba97aebf3e
Showing FPS on title bar (GameEngine)
2023-08-27 19:58:15 -04:00
John McCardle
ac0ec4bb71
In-work: Python segfaults when adding new objects to module
2023-08-25 21:57:42 -04:00
John McCardle
a455c44b34
Debugging & build with debug symbols scripts
2023-08-25 21:56:27 -04:00
John McCardle
96e78e6150
Prepwork: marked the spot for adding more types to the Python module
2023-08-21 20:27:47 -04:00
John McCardle
0dd86056a8
Cleanup: remove python embedding test file
2023-08-12 20:06:16 -04:00
John McCardle
26cb410b8e
Cleanup: Remove UITestScene. I believe test functionality will be better expressed as Python scripts
2023-08-12 19:48:29 -04:00
John McCardle
d09fc87499
Cleanup: remove Item class/component. This may be added back later, but it's not in the EngJam 2023 plan and is being removed as a noisy, underdeveloped concept.
2023-08-12 15:37:46 -04:00
John McCardle
b022dfa6e8
Cleanup: remove VectorShape class (it'll return, someday...)
2023-08-12 15:07:48 -04:00
John McCardle
232ce34d54
Cleanup: remove references to DrawSprite API method (debug method to draw on SFML window for a single frame)
2023-08-12 10:57:53 -04:00
John McCardle
c1c17bab69
Basic, buggy movement purely from Python API
2023-07-17 22:08:06 -04:00
John McCardle
e85861cbb2
I've worked keybinding functionality into Python, but there are some workarounds and notes (See the Jankfile)
2023-07-17 16:15:35 -04:00
John McCardle
d6446e18ea
Tinkering with input
...
I want to move keyboard input defs to the Python API. I laid the groundwork for it today.
From the JANKFILE:
- working on API endpoint `_registerInputAction`.
it will add "_py" as a suffix to the action string and register it along with other scene actions.
- Adding public Scene methods. These are on the base class with default of return `false`.
`bool Scene::registerActionInjected(int code, std::string name)` and `unregisterActionInjected`
the PythonScene (and other scenes that support injected user input) can override this method, check existing registrations, and return `true` when succeeding.
Also, upgraded to C++20 (g++ `c++2a`), mostly because I want to use map::contains.
2023-07-13 23:01:09 -04:00
John McCardle
d3826804a0
(Minor) It's CO*M*P4300
2023-07-08 20:00:30 -04:00
John McCardle
b4c49c4619
Giving myself credit for LGJ2023 tech demo features
2023-07-08 19:47:06 -04:00
John McCardle
76ac236be3
Linux Game Jam 2023 mini-contribution
2023-07-08 19:42:47 -04:00
John McCardle
97793fb26b
Clean up console output for 7DRL submission
2023-03-12 00:32:27 -05:00
John McCardle
b3134f0890
Basic hallways
2023-03-11 23:34:34 -05:00
John McCardle
dfcc39dd43
toggleable camera following that allows for pan action
2023-03-11 21:54:54 -05:00
John McCardle
29ac89b489
bugfix: use float instead of int for modMenu/listMenus API calls, as this was corrupting the coordinates of sprites on uimenus
2023-03-11 17:15:06 -05:00
John McCardle
b4daac6e0c
Camera following functionality, first pass
2023-03-11 16:11:10 -05:00
John McCardle
3fd60d76ea
Making empty space transparent to fix FOV, more generous FOV algorithm
2023-03-10 21:42:50 -05:00
John McCardle
99fa92f8ba
Field of view, discovered tiles, opaque fog of war rendering
2023-03-10 19:39:44 -05:00
John McCardle
9441f357df
'entity only' grid update, saves lots of throughput on larger grids
2023-03-10 12:50:49 -05:00
John McCardle
34feb226e4
collision
2023-03-10 11:35:46 -05:00
John McCardle
486a1cd17c
Keyboard control
2023-03-10 09:21:56 -05:00
John McCardle
8d9148b88d
Music tester & animation work
2023-03-09 20:40:47 -05:00
John McCardle
f1798189f0
Animation testing w/ Miniworld sprites
2023-03-09 14:29:37 -05:00
John McCardle
5b168737ce
License update and bug list. Final Github release during 7DRL 2023.
2023-03-09 08:50:11 -05:00
John McCardle
6875cb5fe1
Spawning & drawing entities from Python API
2023-03-09 08:44:04 -05:00
John McCardle
87483cc8ad
Sound APIs for Python
2023-03-08 12:34:03 -05:00
John McCardle
620def19f1
Fixed animations, jank-noted some issues & workarounds with the Animation python API
2023-03-08 09:20:57 -05:00