Commit Graph

237 Commits

Author SHA1 Message Date
Vassyli 2970bd09d7 Changed the scene parent<=>child relationship to connections.
The parent<=>child relationship of scenes was removed. Instead, this commit introduces the concept of a connection.

A connection is used to connect two scenes. Depending on which entity the connect-method is called, one is defined as the "outgoing" scene, the other as the ingoing scene:

```
$a->connect($b);
```

In this case, $a will be the outgoing part of the connection, $b the incoming.

Furthermore, in order to support action groups, this commit introduces SceneConnectionGroups which can be created in scenes and checked wether they exist or not. Using these, it is possible to specifiy to which part of the scenes are connected to each other.

```
$a->getConnectionGroup("scene-A/marketsquare")->connect($b);
```

In this case, $a will have the action to access $b under the ActionGroup of scene-A/marketsquare. On the other hand, $b, which doesn't have a connection group specified, will have the connection back to $a in the default group.

Connect also accepts the return value of getConnectionGroup as the argument, thus allowing the connection _to_ a certain part of $b as well:

```
$a->connect($b->getConnectionGroup("scene-B/back"));
```

The tests for scenes were updates in order to reflect this change.
2017-03-02 17:19:46 +01:00
Vassyli e82e72a183 Abstract actor model has more straightforward API
The implicit API requirements via class properties has been changed to relay now on abstract methods that the extending class must implement.
2017-01-19 10:18:27 +01:00
Vassyli 9ecd0ddc58 Applied suggested changes 2017-01-19 10:02:31 +01:00
Vassyli 64cb22d3c0 Replaced Permissionable/-Interface with an abstract Actor class. 2017-01-19 10:02:31 +01:00
Vassyli f8057077bc Adds logging to permission manager and requires an actor to return an actor name. 2017-01-19 10:02:31 +01:00
Vassyli 1c89d8f204 Adds removal of exceptions as well as error handling. 2017-01-19 10:02:31 +01:00
Vassyli 3b8537fab6 Adds methods to read and check permissions. 2017-01-19 10:02:31 +01:00
Vassyli 3bf23f3ac7 Adds Permission model and framework for testing permission manager. 2017-01-19 10:02:31 +01:00
Basilius Sauter 94e18b8d11 Increases windows compability by removing microtime from tests 2017-01-04 08:26:10 +01:00
Basilius Sauter b8f47c6d53 Fixed composer creation to account completely for cwd
Also added tests that fail if not.
2017-01-04 08:23:32 +01:00
Austen McDonald e041db89bc Add Viewpoint::removeActionsWithSceneId for easier writing of scenes without default nav items v0.1.0-alpha 2016-12-31 14:00:30 -08:00
Austen McDonald 340d6d18fa Rename CharacterViewpoint to Viewpoint
As I was writing the documentation, this just feels like added complexity that we don't need.
2016-11-11 14:06:26 -08:00
Austen McDonald f687db80d7 Moving parts of the README to the wiki 2016-11-11 07:16:08 -08:00
Austen McDonald 7e2f6155ae Improve docblocks for Scene 2016-10-31 09:24:52 -07:00
Austen McDonald 4c5e1429b6 Build support for multiple parents (graph of scenes instead of tree) 2016-10-31 09:22:31 -07:00
Austen McDonald 570ce2cdaf Cleanup of daenerys console command 2016-10-29 22:39:28 -07:00
Austen McDonald be543bb630 Add addActionToGroupId 2016-09-17 06:14:03 +00:00
Austen McDonald 5ea53a63db Add the hidden action group 2016-09-17 06:01:53 +00:00
Austen McDonald 798490fe20 Add findActionGroupById 2016-09-17 06:01:18 +00:00
Austen McDonald 5b0dcb701b Fix incorrect association for CharacterViewpoint::scene. Many viewpoints can be at the same scene. 2016-09-16 05:27:21 +00:00
Austen McDonald 9ea46b0af3 Add logging to ModuleManager 2016-09-16 05:26:54 +00:00
Austen McDonald faf699eb3f Remove extra whitespace in CharacterModelTest 2016-09-16 05:26:36 +00:00
Austen McDonald 4d61bbd348 Make properties cascade=remove for Character and Module 2016-09-16 05:26:19 +00:00
Austen McDonald 1294722dbd Add logging to Game 2016-09-16 05:07:24 +00:00
Austen McDonald 1d148bbbd0 Add logging to EventManager 2016-09-16 05:05:53 +00:00
Austen McDonald c30c9a640b Add unsetProperty for property managers 2016-09-15 21:15:23 +00:00
Austen McDonald d92fc5ebbf Move save operation while registering modules after onRegister. Do likewise for onUnregister 2016-09-15 21:12:25 +00:00
Austen McDonald 2c27f2ff4f Add a convenience function to find a library by name 2016-09-12 13:33:58 -07:00
Vassyli daf374889b Adds cascade=persist to parent, cascade=remove to childrens of scenes 2016-09-06 13:41:55 +02:00
Austen McDonald f7e34162e8 Rename CharacterViewpoint::getActions() to CharacterViewpoint::getActionGroups() b/c that's what it is 2016-09-04 06:08:00 +00:00
Austen McDonald f73c5c3b11 Fix GameTest to use new hook and fix a bug in it :) 2016-09-04 06:03:07 +00:00
Austen McDonald fac5627850 Refactor Game navigation to use only one event and also to pass a referrer scene 2016-09-04 05:47:55 +00:00
Austen McDonald c585dcb33a Fix bug in Scene constructor 2016-08-30 20:40:09 +00:00
Austen McDonald 019a248333 Initialize Module model's properties property 2016-08-29 11:41:02 +00:00
Austen McDonald 2651388d3d Remove whitespace from PropertyManager lines 2016-08-27 05:08:21 +00:00
Austen McDonald ab8ab726ad Add ActionGroup::DefaultGroup constant. 2016-08-27 04:36:09 +00:00
Austen McDonald f190b61811 Adjust exception text when namespace is incorrect in modules 2016-08-24 10:16:42 +00:00
Austen McDonald 135dd22939 Add tests for simple getters in Game and fix bug with TimeKeeper 2016-08-23 22:33:46 +00:00
Austen McDonald 5fc6822737 Support modules as base packages instead of just installed in vendor/ 2016-08-22 21:54:53 +00:00
Austen McDonald 86751fc6d5 Refactor ModelTestCase so I can use it outside of the Core. 2016-08-22 14:30:22 -07:00
Vassyli db95b84452 Fixes the addition of daenerys commands by modules 2016-08-22 10:48:51 +02:00
Austen McDonald d1f6be4fb5 Add documentation for new Module changes 2016-08-21 03:59:33 +00:00
Austen McDonald d4a525dd76 Pass parameters to the next scene when taking an action 2016-08-21 03:58:35 +00:00
Austen McDonald 271ffc8b5e Add getModule() call to ModuleManager 2016-08-21 03:58:35 +00:00
Austen McDonald f0a7b0b42e Pass module model into onRegister/onUnregister 2016-08-21 03:58:35 +00:00
Austen McDonald ccf51450b0 Add property support for modules. 2016-08-21 03:58:35 +00:00
Austen McDonald 837d936326 Add template as fillable on Scene. 2016-08-21 03:58:35 +00:00
Austen McDonald 77b9c71517 Add scene parameter to context when navigating 2016-08-21 03:58:35 +00:00
Vassyli cbcc606025 Adds a few test for Configuration
Adds a bunch of tests testing if InvalidConfigurationException is thrown as expected.
2016-08-12 08:24:43 +02:00
Austen McDonald 87c45f1fae Add simple tests for Actions and Attachments 2016-08-11 15:39:26 +00:00