Commit c01bebee

Give job entry points a way to specify a custom position status. Do some refactoring to make this possible.

Resolves #33

Hello! The actual functional change would have been pretty straight-forward, had it not been for the fact that since the very early development of OLives there were some enums (later enum classes) defined right in the main Object class.
Over time, this led to some interesting #include structures and other fun issues, today I finally decided to move each of them into its own respective file, so the biggest part of this commit is just that – and adapting all the usages.
So far, there don’t seem to be any regression and on top of that we have our neat little feature, as mentioned in the commit message. 🙂

Commit 524f867b

Make enter/leave animation configuration entry point specific

Resolves #31

This moves the way the enter/leave animations are configured from a “global” job setting to a setting of the entry points, as I realised as soon as I started thinking about how to implement the “sleeping” mechanics, as the bed requires specific animations for the different entry points.
That is something the current use case, the shower, does not require, as most showers only have one door to the best of my knowledge. Not so long story even shorter, that’s changed now.
Obviously this required some overall changes in the code, it also moved the handling of default animations fully to the C++ side of things, which is probably for the best for “default” behaviour – obviously the animation can still be freely defined from Python 🙂

Commit 524ec5fc

Refactor the handling of attribute changes on the Python side somewhat to make it easier to add more attributes. Change the default world size from 12×12 to 20×20.

While this commit in itself doesn’t make for riveting entertainment the changes will help with one of the next tickets.
The visible change here is that after a very, very long time the default world size has changed, what a time to be a alive!

So much spaaace.

Commit 42d2f0f2

Add the additional logic to leave an object again after finishing a job or the job has been cancelled

Relates to #29

Hi! This should more or less complete the actual code work required to get object-in-object jobs going and is actually also implementing the “take a shower” case as a first example. The missing thing here are the actual animations, I’ll put together a quick video once they’re done. 🙂

Commit d5403281

– Make the default enter/leave animations configurable
– Refactor the python job code and reduce logic duplication significantly
– Add a job type for showering and half-implement it (does not leave yet when done, specific animations are missing)

Relates to #29

Hello! Adding some more boilerplate for the job type configuration, turns out that a copy constructor missed some of the new properties, which made for some interesting debugging.
A lot more exciting here are some refactoring efforts that were made once I realised that the previous approach would have lead to a lot of boilerplate code – and also would not out of the box use the configured default values for enter/leave animations, but rather would have required some custom code in every job to retrieve them. Well, that’s fixed now 🙂
While it does not look very exciting, here’s a quick screenshot of one of the characters after finishing the “shower” job – as mentioned in the commit log, the custom animations for that are still missing (I’m currently recycling another one for that), but the basic logic is now working.

Now only to get out of that shower again.. more about that in the next commit 🙂

Commit 36481436

Extend the job type configuration (and JobType class) with an is_internal setting (no function yet)

Relates to #29

Hi! This mostly added some boilerplate code (and comments describing what it’s for) to the mentioned parts of the code as well as fixing some warnings. Next up will be exposing that new information to the Python scripts and starting to implement the “shower” job from a code perspective – as theoretically all the building blocks (enter/leave mechanics) should be in place already.
Then of course there’ll also be more animations to be done to finish it off, something I don’t look forward to that much after having done the enter/leave animation marathon not too long ago, but I’m sure it will be worth it. 🙂

Commit b7858e99

Add a usable shower model + a bath tile texture

Relates to #29

The world of OLives just got a bit bigger again. The shower object, while technically existing before with a dummy model, will be used soon hopefully as the first object that requires another to enter it to perform a job (i.e. take a shower).
If that mechanic works properly, that opens up a world of new possibilities – the next work will be finishing this up though and potentially looking into some stability issues when updating the UI, a known issue. :\ Anyway, check out this amazingly detailed new model and texture. Lifelike.