Commit graph

111 commits

Author SHA1 Message Date
Erik Ogenvik
4dfba8e043 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-01-21 09:26:43 +01:00
Erik Ogenvik
a39952feea Added "forces" property.
This property describes all external forces affecting the entity.
2016-01-20 16:50:17 +01:00
Erik Ogenvik
eb62195b2c 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-01-20 15:34:48 +01:00
Erik Ogenvik
8a161407f2 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-01-20 15:34:48 +01:00
Erik Ogenvik
ed20d4c5d8 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-01-16 12:12:34 +01: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
8b9224b9ad Remove default root "terrain" property.
Since we now allow this to be placed on other entities.
2014-09-09 20:46:30 +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
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
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
Olek Wojnar
7f9ff2246d Remove CVS $Id tags
The legacy tags are causing build issues in Debian.
2013-07-15 20:31:59 +02:00
Erik Ogenvik
640473d22c Install properties.
It's imperative that all properties are installed here; else the system
will end up in an invalid state whenever data is restored as a result of
a restart (since any missing property then will default to a core
property class.
2013-06-02 00:00:37 +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
58acb15154 Use new template for properties, and rename some
Properties must now be strictly in the same namespace as other definitions,
so I had to rename a few.
2013-03-01 21:52:09 +00:00
Alistair Riddoch
2ec1979045 Fix a typo 2013-02-22 23:48:52 +00:00
Alistair Riddoch
5e877ad95c Add concise template for internal properties 2013-02-22 23:46:49 +00:00
Alistair Riddoch
d1dc73aa00 Use a more concise template for base types 2013-02-22 23:34:51 +00:00
Alistair Riddoch
52ba15e9ad Fix test error, making installFactory work 2013-02-22 15:51:32 +00:00
Alistair Riddoch
9ebfefbea4 Modify interface to installFactory is available 2013-02-22 09:57:10 +00:00
Alistair Riddoch
6966ae3c1c Support data driven properties more fully
This commit adds Atlas data_type definitions which property types
inherit from. It also adds methods used to install stuff that inherits from
them.
2013-02-22 00:37:39 +00:00
Alistair Riddoch
771217e92a Move factory functionality into PropertyManager 2013-02-17 08:47:51 +00:00
Alistair Riddoch
b66a7bae48 Remove last test use of active properties 2013-02-14 00:06:50 +00:00
Alistair Riddoch
8344d5c8b0 Convert TerrainModProperty to delegates 2013-02-14 00:04:58 +00:00
Alistair Riddoch
5413ea5573 Update BurnSpeed and Teleport properties to use delegate 2013-02-13 21:24:18 +00:00
Alistair Riddoch
14661a9710 Update the BiomassProperty as a delegate 2013-02-13 20:57:22 +00:00
Alistair Riddoch
3d6f39cdee Modify Property install method to take name
This change also switches DecaysProperty to using delegates as a proof of
concept.
2013-02-13 00:45:36 +00:00
Alistair Riddoch
4a9c7078f7 Refactor to use LocatedEntity as base class
All IG code should use the interface of LocatedEntity when dealing
with any entity, rather than sometimes requiring Entity. Add virtual
functions to the interface where required, and modify all other interfaces
to stop them using Entity. This makes the code way cleaner, and much better
de-coupled.
2013-01-17 10:17:07 +00:00
Alistair Riddoch
bc717d479d Clean up headers 2013-01-10 10:14:14 +00:00
Alistair Riddoch
51b5c50215 Move DecaysProperty handler into class 2013-01-10 10:07:44 +00:00
Alistair Riddoch
7e43da878d Move the telport property handler into class 2013-01-10 09:33:25 +00:00
Alistair Riddoch
7ec8b51d62 Move TerrainMod property handlers into class 2013-01-10 00:19:31 +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
e7d238e91f Move ExternalMind into rulesets 2012-11-23 16:11:21 +00:00
Alistair Riddoch
ac37383d8a Convery all the property get functions 2011-09-29 17:36:26 +01:00
Alistair Riddoch
9b02aa803b Add "visibility" to the properties 2011-01-07 22:57:26 +00:00
Alistair Riddoch
755cb4c7b4 Merge branch 'mod_api_rewrite'
Conflicts:
	TODO
	rulesets/mason/tests.py
2011-01-06 23:29:08 +00:00
Alistair Riddoch
f7018744d7 Convert to interacting with Juncture, as that is the object in the server index 2010-12-07 22:47:02 +00:00
Alistair Riddoch
028dee8271 Be more careful when dynamic casting pointers 2010-12-05 18:46:46 +00:00
Alistair Riddoch
d3da444ed9 Clean up from processing a bit 2010-11-25 09:26:52 +00:00
Alistair Riddoch
d11f42836f Simplify teleport API, and remove double lookup 2010-11-24 23:17:50 +00:00
Alistair Riddoch
24cccee141 Remove the need for second arg by using int ids as serial/refno 2010-11-24 18:49:07 +00:00
Alistair Riddoch
e76271d299 Add common/log. How the hell did that wander? 2010-11-17 13:31:26 +00:00
Alistair Riddoch
c1791e392a Merge branch 'master' into teleport 2010-11-17 11:29:45 +00:00
Alistair Riddoch
fefeec7da8 Remove pos param as we couldn't make effective use of it. 2010-11-11 17:42:12 +00:00
Alistair Riddoch
3ece13592a Fix up TerrainModProperty to work more cleanly, and initialize properly. 2010-09-12 20:20:24 +01:00
Manohar Vanga
fc706d0542 Removed unused InterServerConnection and InterServerClient classes
(cherry picked from commit 3f9426d9f6e10bd70c24610c5641ee6638c0755e)
2010-08-17 11:58:19 +05:30
Manohar Vanga
882047f9f2 Removed old commented code from teleport_handler 2010-08-17 11:58:19 +05:30