705943abba
initial cmake config (builds, python standard library not available)
2024-02-23 21:55:16 -05:00
47b485ca7d
Submodules: Add dependencies
...
This is the prerequisite to:
* complete from-source build
* removing compilation libraries from the git repo
* rebasing the project for "alpha 0.1" release
2024-02-23 08:37:36 -05:00
f2eaee95ec
(minor) sprite object enabled in collection
2023-10-20 22:23:20 -04:00
494658e5c3
Sprite fixes. Changing sprite_number now changes the visible texture. Repr fixed.
2023-09-15 22:09:29 -04:00
6e820af8c4
mcrfpy.Sprite / PyUISpriteType compiles; too excited to fully test it (todo: modify the macro to get instances into and out of collections)
2023-09-13 23:23:08 -04:00
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
3a1432212f
UICollection.remove
2023-09-09 10:14:11 -04:00
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
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
bec2b3294d
Added PyFont/mcrfpy.Font object
2023-09-07 22:25:19 -04:00
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
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
b8af8bc870
UIDrawable to Python object (untested, but compiling)
2023-09-02 20:02:07 -04:00
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
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
6d4bc2989c
UICollection work: fixed compilation, still quite a bit of stubs
2023-09-02 04:40:05 -04:00
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
5d8510747c
Color and Frame classes pretty well integrated from the Python perspective now
2023-09-01 18:28:59 -04:00
06052c81c9
PyUIFrame looking not half bad. There seems to be a glitch with the color values.
2023-09-01 12:14:24 -04:00
6fe7b842ef
Successful use of a copy-modify-paste template of Python type (UIFrame -> PyUIFrameObject)
2023-08-31 22:32:58 -04:00
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
795701c986
Cleanup: less curly braces in destructor
2023-08-30 14:50:27 -04:00
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
c4d5a497d4
Color container type for Python working. I still need to implement UIFrame using it.
2023-08-28 05:44:26 -04:00
ba97aebf3e
Showing FPS on title bar (GameEngine)
2023-08-27 19:58:15 -04:00
ac0ec4bb71
In-work: Python segfaults when adding new objects to module
2023-08-25 21:57:42 -04:00
a455c44b34
Debugging & build with debug symbols scripts
2023-08-25 21:56:27 -04:00
96e78e6150
Prepwork: marked the spot for adding more types to the Python module
2023-08-21 20:27:47 -04:00
0dd86056a8
Cleanup: remove python embedding test file
2023-08-12 20:06:16 -04:00
26cb410b8e
Cleanup: Remove UITestScene. I believe test functionality will be better expressed as Python scripts
2023-08-12 19:48:29 -04:00
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
b022dfa6e8
Cleanup: remove VectorShape class (it'll return, someday...)
2023-08-12 15:07:48 -04:00
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
c1c17bab69
Basic, buggy movement purely from Python API
2023-07-17 22:08:06 -04:00
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
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
d3826804a0
(Minor) It's CO*M*P4300
2023-07-08 20:00:30 -04:00
b4c49c4619
Giving myself credit for LGJ2023 tech demo features
2023-07-08 19:47:06 -04:00
76ac236be3
Linux Game Jam 2023 mini-contribution
2023-07-08 19:42:47 -04:00
97793fb26b
Clean up console output for 7DRL submission
2023-03-12 00:32:27 -05:00
b3134f0890
Basic hallways
2023-03-11 23:34:34 -05:00
dfcc39dd43
toggleable camera following that allows for pan action
2023-03-11 21:54:54 -05:00
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
b4daac6e0c
Camera following functionality, first pass
2023-03-11 16:11:10 -05:00
3fd60d76ea
Making empty space transparent to fix FOV, more generous FOV algorithm
2023-03-10 21:42:50 -05:00
99fa92f8ba
Field of view, discovered tiles, opaque fog of war rendering
2023-03-10 19:39:44 -05:00
9441f357df
'entity only' grid update, saves lots of throughput on larger grids
2023-03-10 12:50:49 -05:00
34feb226e4
collision
2023-03-10 11:35:46 -05:00
486a1cd17c
Keyboard control
2023-03-10 09:21:56 -05:00
8d9148b88d
Music tester & animation work
2023-03-09 20:40:47 -05:00