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
John McCardle
c9b97b9b35
TestScene script for animation testing
2023-03-07 20:11:11 -05:00
John McCardle
8e59152a8f
Windows fixes
2023-03-07 17:09:54 -08:00
John McCardle
fedfcd46a3
Test animation now moves the entire UIMenu object (and children)
2023-03-07 20:03:09 -05:00
John McCardle
c551c721ce
Animation work: removing pointers from the entire class in favor of std::function/lambdas to write values. This actually works with SFML classes, because I can wrap the setter class
2023-03-07 07:39:41 -05:00
John McCardle
d74635ee4e
Check in... animations are roughly half built
2023-03-06 20:54:23 -05:00
John McCardle
47e823d5b9
Animation class (not tested)
2023-03-05 22:44:39 -05:00