Commit graph

49 commits

Author SHA1 Message Date
Erik Ogenvik
e85f0831b2 Restructure rule classes.
Classes under "rulesets" have been moved to "rules", and split up into
futher subdirectories matching their library. As a result we can now
better separate the python bindings, so that things that belongs to the
simulation are separeted from things that belongs to the ai.
2018-10-31 21:38:35 +01:00
Erik Ogenvik
7e064963c6 Remove Plant and replace it with scripts. 2018-08-19 00:00:46 +02:00
Erik Ogenvik
127793e8a2 Implement an "attachments" property.
This is put on entities that can have other entities attached to them.
With this property both "right_hand_wield" and "outfit" are deprecated.
2018-08-14 21:32:06 +02:00
Erik Ogenvik
ddab8046de Work on removing Character. 2018-08-09 21:30:10 +02:00
Erik Ogenvik
0592987f84 Remove Creator and add AdminMind.
The mind is instead responsible for allowing extra editing capabilities.
This makes the entity hierarchy smaller.
2018-08-08 22:27:43 +02:00
Erik Ogenvik
d744ae4660 Removed "playable" concept.
The only way to create entities in a world is to create spawn points for
them.
2018-08-08 20:55:48 +02:00
Erik Ogenvik
7634969eef Removed TaskFactory classes.
Since we always create Tasks from scripts.
Also fixed a lot of tests.
2018-08-04 18:01:20 +02:00
Erik Ogenvik
0ca22bcf68 Specify scripts for entity as property.
This allows multiple scripts to be used. In addition it allows for
entity with specific scripts.
2018-07-04 19:20:24 +02:00
Erik Ogenvik
d7960b3100 Improve on how updated types are handled.
By installing and changing some types, other types might update. This is
now handled.
2018-05-08 14:32:02 +02:00
Erik Ogenvik
d4604d034d Correctly handled updated type properties.
When a type is updated we now property re-apply modified properties on
affected entities.
2018-04-29 17:21:44 +02:00
Erik Ogenvik
a6195c1ac6 Made all game entities definable through xml.
This makes it easier to alter properties in real time.
2018-04-29 11:58:35 +02:00
Erik Ogenvik
d7900bebfb Added property for perception of sights.
Instead of having it determined by sending looks ops.
It's a float value since there's a possibility to apply is as a factor
of the default view distance.
2018-04-25 20:15:28 +02:00
Erik Ogenvik
ba777f05d7 Make characters stick to the ground.
This is done through the "step_factor" property.
2018-04-21 20:35:07 +02:00
Erik Ogenvik
380b4e21d9 Added rolling and spinning friction. 2018-03-12 18:15:20 +01:00
Erik Ogenvik
4cabaed1c8 Add support for submerged entities.
An entity becomes "submerged" when it moves into a body of water.
Currently we only check if its y-position is below 0, but we aim to
provide better support for various water entities in the future.
2018-02-24 00:20:02 +01:00
Erik Ogenvik
c19576d694 Added property for jumping, "speed-jump".
Entities without it cannot jump.
2018-02-20 23:08:14 +01:00
Erik Ogenvik
2bbbad4c58 Restructure and add "present" properties.
Also make sure that the correct geometry is used whenever possible.
2018-02-20 22:26:27 +01:00
Erik Ogenvik
0bc9450cff Standarize on double precision. 2018-02-12 09:46:30 +01:00
Erik Ogenvik
ca2abb94b5 Refactor how movement is handled and sent.
We've introduced the properties "speed-ground", "speed-water" and
"speed-flight" which specifies the top speed in m/s for each medium.

The "propel" attribute is now normalized, since it's multiplied with the
applicable top speed (depending on the medium, although currently we
only use the ground speed, TODO).
2018-02-11 23:22:20 +01:00
Erik Ogenvik
fe36774f5b Use "type" instead of "shape" for geometry.
Since we now support "asset".
2018-02-06 13:45:11 +01:00
Erik Ogenvik
9584fbabe3 Use upright capsule for plants. 2018-02-06 13:45:10 +01:00
Erik Ogenvik
7fb146eb36 Standardize installation of standard types.
This way the base types are exposed to clients.
2018-02-06 13:45:10 +01:00
Erik Ogenvik
0286bcd47d Replace "parents" with "parent". 2017-07-24 15:05:18 +02:00
Erik Ogenvik
7aaa9b9ba7 Optimize includes. 2017-03-19 21:36:52 +01:00
Olek Wojnar
9e1b3b92c3 Fix typos
Courtesy of lintian
2016-09-06 22:29:36 -04:00
Erik Ogenvik
45555fd698 Use custom format for archetypes.
This required the EntityKit to be refactored, so that most fields are
pushed into EntityFactory. Due to the nature of how the rule handlers
and the factories interact the code is pretty messy. It works, but it's
tangled and not really clean.
2013-11-15 21:39:35 +01: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
Alistair Riddoch
745d263709 Fail cleanly if a type exists
The code would segfault if installing a new entity class failed at the last
stage in Inheritance. Inheritance would return null, which would be assigned
to the factory's m_type. addProperties() assumes the pointer is not null.
This fix adds a check, and reports a failure undoing the whole process.
2013-02-21 21:53:11 +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
5cedd45f29 Turns out this doesn't use the concrete factory 2011-12-21 00:26:43 +00:00
Alistair Riddoch
d1ac1ad740 I love removing includes 2011-12-20 16:03:47 +00:00
Alistair Riddoch
43e06f60c4 Change the place where script factory is deleted
When the module has change, we get rid of the old factory, but it is
bad to do this before we know whether the new module is good.
2011-12-18 21:09:48 +00:00
Alistair Riddoch
d3c1b94537 Move call to refresh class on rule update
Previous was the wrong place, as it would result in a reload
even if it had change, and later had to be loaded from the new class name
2011-12-18 20:48:01 +00:00
Alistair Riddoch
577539aa6e Make installing types a little more consistent 2011-12-17 18:37:28 +00:00
Alistair Riddoch
046bb0565d Remove support for old style mind rules 2011-12-16 16:50:45 +00:00
Alistair Riddoch
be735604b3 Move mind creation to the property
Also clean up factory, make more flexible and use shared script factory
code.
2011-12-15 18:33:32 +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
e7f5ac91ea Converty ScriptFactory for Entity to a template
This class is now completely generic except for the type pointers for
the class being wrapped, so this starts the codebase moving to using
it for all server objects that should be scriptable
2011-12-15 01:00:28 +00:00
Alistair Riddoch
0e8f9ccc95 Replace abstract script factories with common template 2011-12-14 14:26:01 +00:00
Alistair Riddoch
325d9265f3 Remove updateChildren to updateProperties
This name makes more sense, and now the interface is more consistent.
2011-12-13 00:40:43 +00:00
Alistair Riddoch
a59c17f109 Remove now empty method 2011-12-13 00:39:08 +00:00
Alistair Riddoch
95d0d4ccad Move attribute copying into the function 2011-12-11 05:31:43 +00:00
Alistair Riddoch
92dba70495 Refactor script factories to use PythonClass 2011-11-08 19:55:51 +00:00
Alistair Riddoch
5e1461a95c Add some parameter checking assertions 2011-09-21 11:18:30 +01: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
ceb67d1033 Remove some unneeded includes 2011-09-18 17:36:42 +01:00
Alistair Riddoch
07201f1358 Handle Inheritance more consistently
Add an internal method for base classes, allowing the code that manipulates
the inheritance tree to be in a consistent place.
2011-09-18 17:26:26 +01:00
Alistair Riddoch
50043e6759 Remove some unneeded includes 2011-09-18 14:58:16 +01:00
Alistair Riddoch
4cf672cb23 Move Entity class rule processing to it's own class 2011-09-18 01:33:07 +01:00