Commit graph

174 commits

Author SHA1 Message Date
Erik Ogenvik
2f55d5d82b Fixed various compile issues after rebase. 2016-06-26 21:50:10 +02:00
Erik Ogenvik
1320c836d0 Added a Propel property, describing propel force.
This is mainly the force used to propel characters forward. I.e.
walking, running and so on.
For now it's not activated, since we rely on proper physics to be
implemented first.
2016-06-26 20:17:18 +02:00
Erik Ogenvik
cb493811b3 Added "forces" property.
This property describes all external forces affecting the entity.
2016-06-26 20:17:18 +02:00
Erik Ogenvik
12a38b3d0f Added a mode specification property.
This property tells how the entity should behave when put into
different modes. Currently we only allow for specific transformations
to occur.

The mode specifications are registed in properties where "mode-" forms
a prefix, and the mode a suffix. For example, "mode-planted".
This also does away with the "plantable" property.
2016-06-26 20:17:18 +02:00
Erik Ogenvik
d5d11df11e Let "transforms" property determine pos and orient
Instead of directly setting position and orientation we've now
added a "transforms" property. This property contains zero or many
transformations. The result of these is what drives changes to an
entity's position and orientation.
By cleanly separate disrete transformations we can more easily undo
or alter them. This allows us to do things where the position or
orientation of an entity is affected by other properties, or other
entities.

The client protocol is intact. Changes to position and orientation is
still sent the same way, by specifying "pos" and "orientation". However,
these values will now not be written directly to corresponding values on
 the entity. Instead they will first be written to the "transforms" property,
with the final values being a result of combining all data in the property.
2016-06-26 19:11:15 +02:00
Erik Ogenvik
219d847bfd Added a "plantable" property.
This describes how entities should behave when they are put in the "planted"
specifically how they should be oriented and adjusted in vertical position.
2016-06-26 19:03:19 +02:00
Erik Ogenvik
72fc2d7923 Added an InventoryDomain for characters.
The Inventory domain is meant for all characters, i.e. those than can have
an "inventory".

It's a non physical domain, which means that entities contained in it won't
be affected by any physical constraints, or have physics applied to them.
Visibility for outside entities are by default forbidden unless an entity is
outfitted or wielded.
The idea is that other playes shouldn't see what's in the inventory of another
player, unless things are outfitted or wielded.
2016-06-22 17:29:27 +02:00
Erik Ogenvik
14354137a7 Hooked up steering to the move_me goal. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
cbef9864ee Use a proxy mind on character.
This is a mind which only registers the world, and then is responsible
to send what it knows about the world to any external mind that's
connected to the character.

Currently it only sends the thoughts that's been sent to the character.
2015-05-24 11:25:07 +02:00
Erik Ogenvik
8ce91c656f Merge remote-tracking branch 'ytaben/entity_filter' 2015-04-18 22:25:27 +02:00
Erik Ogenvik
3b1a2cb566 Make Domain an interface and provide two versions.
The "physical" world behaves like a standard world. The "void" world
however doesn't allow for neither movement nor sights.
2014-09-24 22:00:54 +02:00
Erik Ogenvik
10de08034b Implmented proof of concept limbo property.
When a player controlled entity is deleted, and the player currently
isn't controlling it, it's placed in limbo. When the player once more
connects and start controlling it, the entity is respawned.
This prevents the world from being littered by inactive player
characters.
2014-09-18 21:45:35 +02:00
Erik Ogenvik
b171410b05 Let the domain be specified by a property.
This means that we only attach domains to entities that have the
"domain" property. The "land" entity type for example.
2014-09-15 21:11:35 +02:00
Erik Ogenvik
aedf724d65 Added property for setting the "default" entity.
This is useful for those cases where the root entity isn't the default
one; i.e. the one into which entities by default should be created.
2014-09-09 20:46:30 +02:00
Yaroslav Taben
ad0aa918d7 Moved filter's Predicate classes into separate files 2014-09-05 19:43:32 -04:00
Yaroslav Taben
136d94e9ae Removed unused components 2014-08-11 18:11:10 -04:00
Erik Ogenvik
b112448e07 WIP filter example. 2014-07-27 22:10:02 +02:00
Yaroslav Taben
05ae38a6cb Added a separate archive for EntityFilter components in makefiles 2014-07-23 12:46:45 -04:00
ytaben
940c8e8187 Fixed compilation errors 2014-07-23 11:18:59 -04:00
Yaroslav Taben
e7255d6495 Added Makefile changes 2014-07-21 19:02:49 -04:00
Erik Ogenvik
edc5fd604b Added property for respawning entity.
The "respawning" property makes an entity respawn instead of being
deleted. It intercepts the Delete op and instead of deleting the entity
it moves it to the specified spawn point.
A typical use case of this is to place the property on any user
controlled entity, thus making sure that it's never deleted and istead
respawned when killed or defeated.
2013-11-16 21:05:45 +01:00
Erik Ogenvik
2195fec02e Added an immortal property.
This intercepts Delete operations and ignores them, thus making an
entity "immortal".
2013-11-16 13:13:52 +01:00
Erik Ogenvik
2dca4949ed Created "deeds" ruleset and made it default.
It's currently a copy of the Mason ruleset.
Where Mason focuses on letting the users create the world themselves,
Deeds instead focuses on allowing world authors to set up enticing
worlds with gameplay and stories. In contrast to Mason there are more
features available to the world authors which allow for automatic
creation of entities and so on.
2013-11-15 21:14:47 +01:00
Erik Ogenvik
419b4d0342 Added "spawner" property.
When an entity has this property it acts a an spawner entity. At an
interval it checks if there are enough of the specified entities
available, and if not it spawn new ones. This allows for some better
gameplay mechanics.
2013-10-03 13:42:54 +02:00
Erik Hjortsberg
a6ec64e6b6 Added "suspended" property, suspending the world.
In the future this property might be available on all entities.
2013-03-31 20:51:21 +02:00
Alistair Riddoch
58985b4a57 Remove obsolete property handler classes 2013-02-14 09:42:23 +00:00
Alistair Riddoch
51b5c50215 Move DecaysProperty handler into class 2013-01-10 10:07:44 +00:00
Alistair Riddoch
a640a15b1b Move burn_handler into a class of its own 2013-01-09 22:48:40 +00:00
Alistair Riddoch
b5f235d023 Move eat_handler into its own class 2013-01-09 22:26:12 +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
Sean Ryan
5268071494 Cloned minimal ruleset to be mars ruleset.
Minimal will not be changed, it will serve as a barren and
minimalistic ruleset that allows someone to start.  Mars will be
the result of all tutorials applied to minimal.
Also reverted minimal ruleset to use moraf, to avoid additional
requirements.
2012-08-10 01:51:17 -04:00
Sean Ryan
9dba75e5fc Add in minimal ruleset with bare code and build.
And just for Al, I exported the xml clean from the db.
2012-08-07 10:08:15 -04:00
Alistair Riddoch
5bc4c91361 Add abstract property for generic terrain functions 2012-01-07 16:32:19 +00:00
Alistair Riddoch
5a2c7b6d14 Add in the mind abstract functionaltiy, and use the new factory mechanism 2011-12-15 19:22:35 +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
4a0b3a508d Add a new class to encapsulate a Python class on disk 2011-11-08 18:54:10 +00:00
Alistair Riddoch
5d3d265f08 Merge PyMind code into PyThing, as it is so close 2011-11-07 19:16:50 +00:00
Alistair Riddoch
a516f55197 Remove TaskScript subclass
This class really wasn't used. Task had pure virtual methods, and TaskScript
was the only subclass
2011-11-03 22:57:46 +00:00
Alistair Riddoch
7f065bfa5f Fix out of tree builds 2011-08-16 08:34:18 +01:00
Alistair Riddoch
5f785e79c8 Merge branch 'master' into bullet_physics
Conflicts:
	TODO
	configure.ac
2011-05-03 17:13:04 +01:00
Alistair Riddoch
a16af683d3 Update automake variable names 2011-02-17 12:51:25 +00:00
Alistair Riddoch
7ed01b12f0 Add Python wrapper for physics/Shape 2011-01-13 19:32:24 +00:00
Alistair Riddoch
005f10f7ff Add VisibilityProperty to override Entity visibilty 2011-01-07 22:39:30 +00:00
Alistair Riddoch
e97c0fd6df Rename file for TerrainModTranslator to match class name 2011-01-06 19:49:24 +00:00
Alistair Riddoch
c4d8be4f7b Remove InnerTerrainMod_impl.h from the build. 2010-11-05 00:42:52 +00:00
Alistair Riddoch
9955ed4c00 Merge branch 'master' into bullet_physics
Conflicts:
	TODO
	tests/Makefile.am
2010-09-22 04:40:17 +01:00
Alistair Riddoch
e84dbc013f Add a wrapper for terrain mod property 2010-09-18 19:59:40 +01:00
Alistair Riddoch
965fa8a65e Rename file to match class and avoid conflict with Mercator header. 2010-09-14 21:47:03 +01:00
Alistair Riddoch
0853f4fd24 Move InnerTerrainMod classes into their own file for isolation 2010-09-13 02:09:26 +01:00