Commit graph

186 commits

Author SHA1 Message Date
Erik Ogenvik
7b0d30680c Setup steering.
The setup is that steering is handled separately from the normal mind
ticks. At a closer interval (0.2 seconds currently) steering will be
evaluated.
2016-03-19 23:05:13 +01:00
Erik Ogenvik
185f6c31a8 Removed circular dependency. 2016-02-07 14:09:33 +01:00
Erik Ogenvik
d3b9d1788b Use Atlas 0.7. 2015-06-04 21:41:27 +02:00
Erik Ogenvik
715f099cea Request possession when mind is created. 2015-05-24 11:25:06 +02:00
Erik Ogenvik
f5dae1fba7 Rename Teleport* to Possess*
So that the functionality can be used in more general situations.
2015-05-24 11:25:06 +02:00
Yaroslav Taben
05ae38a6cb Added a separate archive for EntityFilter components in makefiles 2014-07-23 12:46:45 -04:00
Erik Ogenvik
2210d320c5 Removed further references to now removed classes. 2014-02-03 12:21:35 +01:00
Erik Ogenvik
31905f5f93 Removed further references to skstream. 2014-02-02 22:15:39 +01:00
Erik Ogenvik
fbf0b752c8 Removed obsolete files.
Since we're now using boost::asio for io.
2014-01-31 21:59:57 +01:00
Erik Ogenvik
4309206337 Use boost::asio for postgres socket. 2014-01-31 11:17:48 +01:00
Erik Ogenvik
b53cac61d4 Use boost::asio for the Python listener. 2014-01-29 15:15:10 +01:00
Erik Ogenvik
7e5a4e2e9d Use boost::asio for the HTTP client. 2014-01-29 13:08:52 +01:00
Erik Ogenvik
2eb5481650 Use a function for starting clients.
This is more light weight than having to use factories.
2014-01-28 23:08:15 +01:00
Erik Ogenvik
051dc01bd5 Added client factory intermediary. 2014-01-28 22:29:21 +01:00
Erik Ogenvik
1e0e8d0071 Make listener code more modular. 2014-01-28 14:44:16 +01:00
Erik Ogenvik
3d7c81bc3b Initial work on using boost::asio. 2014-01-25 20:29:45 +01:00
Erik Ogenvik
a642bc29b4 Added autoimport into empty servers.
When the server is run it checks if it's empty. If that's true, and the
cyphesis:autoimport variable is set (which it is by default), and the
file it points to exists, the server will spawn a new process which will
call on the "cyimport" tool to import the world specified.

The effect of this is that when cyphesis is run for the first time, it
will automatically populate the world into a playable state. This should
allow for a much better user experience, since many users never manage
to properly populate the world.

Note that we're spawning a separate process to run the cyimport command.
We could as well just do the importing in-process, but that would
require some more coding. Using a separate process if good enough, so
that will do for now.
2013-11-24 22:26:22 +01:00
Erik Ogenvik
328ba969fe Make spawns use entities and archetypes.
There's no reason to use the hacked in "contains" feature for creating
inventory. Instead we can rely on the Archtype features. Any entity
declaration for which we also want inventory created should use an
archetype.
The change is that the "contains" and "character_types" attributes are
removed. Instead there's a "entities" attribute, which is a map. The
keys are the names of the entities as seen to the client, and the values
are the entity specifications.
2013-11-16 22:55:47 +01:00
Erik Ogenvik
b054382f2a Add "archetype" as new type.
An archetype is used for creating new entities. It contains one or many
definitions for entities, along with relationship between them. It also
contains any extra data needed for a world simultion, such as thoughts
and knowledge.
Archetypes should be seen as blueprints for entity types, as they
describe how new one should be composed. They are created just as
regular entities, using the existing Create op functionality.
As an example, there should be one "human" entity type, with archetypes
such as "settler", "merchant", "soldier" etc. This differs from the
current setup where each of these are separate entity types.
2013-11-15 21:39:35 +01:00
Erik Ogenvik
65dba3c5d6 Added feature for async mind persistence.
This is done through the MindInspector which queries entities for their
minds, and asynchronously emits a signal when thoughts arrive.
2013-08-21 20:56:09 +02:00
Sean Ryan
88773d1e99 Install MetaServerAPI 1:0:0 and integrate.
Use of just MSP for packet wrangling, and then
using current form of commserver transport.  Also
added server attribute section to config.
2013-05-30 16:31:20 -04:00
Alistair Riddoch
1895523072 Remove moved files 2013-01-11 23:12:29 +00:00
Alistair Riddoch
7e43da878d Move the telport property handler into class 2013-01-10 09:33:25 +00:00
Alistair Riddoch
37f91066d9 Add basics of rule handler for properties 2013-01-08 23:33:19 +00:00
Alistair Riddoch
4c1b0c9c3a Move ExternalProperty class into rulesets 2012-11-23 23:58:56 +00:00
Alistair Riddoch
e7d238e91f Move ExternalMind into rulesets 2012-11-23 16:11:21 +00:00
Alistair Riddoch
1eea99fdf2 Move CommSocket and Link classes into common 2012-11-23 11:05:59 +00:00
Alistair Riddoch
6998d59ecd Rename ConnectedRouter to ConnectableRouter
Objects using this base class are all long lived, so while they are
often associated with a connection, they most commonly will outlive
that connection, and be unconnected.
2012-11-13 00:09:05 +00:00
Alistair Riddoch
86eeaca166 Add a bunch of missing headers 2012-08-02 15:40:27 +01:00
Alistair Riddoch
d948e097f3 Add a new class for cleaner local clients 2012-07-31 23:42:35 +01:00
Alistair Riddoch
fa3ecddbd3 Remove unused class 2012-07-31 23:32:11 +01:00
Alistair Riddoch
e776106ae9 Move CommClient to being a template - final changes
This required cleaning up a bunch of other things:
  Expose functions to disconnect and flush sockets generally
  Make a new base class for objects that link a socket to the server
2012-07-31 20:21:58 +01:00
Alistair Riddoch
9e1cdc273a A new class for user clients 2012-07-30 22:50:45 +01:00
Alistair Riddoch
c80adab634 Move code for listening into a factory class 2012-07-24 16:51:12 +01:00
Alistair Riddoch
c2354b9b9c Fix libcomm dependencies and linking 2012-03-13 10:56:25 +00:00
Alistair Riddoch
045c2aa01b Clean up linking 2012-03-08 09:25:00 +00:00
Alistair Riddoch
96449961e7 Move some files coupled to CommServer into the librar 2012-03-06 23:19:06 +00:00
Alistair Riddoch
7ac70fd93e Specify libcomm in the same directory correctly
By speciifying the full build path I was creating a race condition.
This way the build system understands it is a direct dependency of
the core cyphesis binary.
2012-03-06 23:17:20 +00:00
Alistair Riddoch
a7bd99aaf7 Move specific factories into their own files 2012-03-05 14:19:21 +00:00
Alistair Riddoch
8d0d1ae68c Add an experiment 2012-03-05 00:45:43 +00:00
Alistair Riddoch
5f80016add Untangle some more linking 2012-03-05 00:45:26 +00:00
Alistair Riddoch
3b3e5cef33 Untable these factory classes for cleaner linking 2012-03-05 00:12:17 +00:00
Alistair Riddoch
c63905e0ad Move Comm* sources into a library 2012-03-04 18:49:16 +00:00
Alistair Riddoch
78b0b87321 Formatting cleanup 2012-03-04 18:39:52 +00:00
Alistair Riddoch
09bfcf8d39 Fix formatting error 2012-03-04 18:06:22 +00:00
Alistair Riddoch
1f4b7bf1b9 Move PythonScriptFactory into the correct named file in the right place 2011-12-15 18:26:37 +00:00
Alistair Riddoch
f81bdde2db Replace specitic task script factory with template 2011-12-15 01:53:52 +00:00
Alistair Riddoch
5817393989 Consolidate Atlas script description parsing
This helper in the base class is identical to the query which was duplicated
in two places, so clearly needed to be consolidated here
2011-09-19 00:40:40 +01:00
Alistair Riddoch
07f98f992f Move op defintion rule handling to its own class 2011-09-18 02:21:41 +01:00
Alistair Riddoch
4cf672cb23 Move Entity class rule processing to it's own class 2011-09-18 01:33:07 +01:00