Created the docs for a few more pages. I'll proofread them in a second pass.

This commit is contained in:
Relintai 2019-12-30 03:26:16 +01:00
parent 52fb82506a
commit ad7f4f2c2e
13 changed files with 127 additions and 52 deletions

View File

@ -1,9 +0,0 @@
.. _doc_general_data_manager:
Data Manager
============
Tell about them
Data
ProfileManager

View File

@ -0,0 +1,38 @@
.. _doc_general_entity_data_manager:
:ref:`Entity Data Manager<class_EntityDataManager>`
===================================================
Loads / stores all the data the module needs, like classes, spells, auras, etc, also
it will have convenience methods to spawn Entities, it will also
handle :ref:`Entity<class_Entity>` spawning over the network.
:ref:`Entity<class_Entity>` spawning is only implemented in gdscript at the moment,
will be ported soon.
All loaded data classes have an id property, also these need to be unique
between them.
Right now you will need to populate every folder property, like
:ref:`auras_folder<class_EntityDataManager_property_auras_folder>`.
The Manager loads everything from the given folders. If you don't use some of the
resources that has a folder property for it, switch off
:ref:`automatic_load<class_EntityDataManager_property_automatic_load>`, and only load
the things you need. You can use methods like
:ref:`load_auras<class_EntityDataManager_method_load_auras>`.
ESS uses this data to spawn things over the network.
Right now you always need to have this class in the scene before spawning an
:ref:`Entity<class_Entity>`. Later this restriction will only apply if you
want to use networking.
You can script the loading behaviours by turning off the
:ref:`automatic_load<class_EntityDataManager_property_automatic_load>` property
in the instector.
The manager's scripting api allows you to fully customize loading.
You can add even dd every class one by one if you want to.
This also allows for procedurally generating data if you want to.
However if you do this, and also use networking, you need to make sure to to
generate the same spells aswell on clients aswell.

View File

@ -3,14 +3,21 @@
Globals
=======
Autoloads
These are the global classes of the module.
Right now both need to exist in the scene before you spawn entities.
I recommend adding them as autoloads.
Later both will be optional, in the case of profile manager, this is really simple,
however in the case of data manager, this is going to be more difficult. Also for
data manager it will only be possible if networking is disabled.
Tell about them
.. toctree::
:maxdepth: 1
:caption: Globals
:name: sec-globals-cat
data_manager
entity_data_manager
profile_manager

View File

@ -1,8 +1,17 @@
.. _doc_general_profile_manager:
Profile Manager
===============
Tell about them
Data
ProfileManager
:ref:`Profile Manager<class_ProfileManager>`
============================================
Saves/loads player profiles.
A Player profile pretty much is an array of :ref:`ClassProfiles<class_ClassProfile>`.
Every :ref:`ClassProfile<class_ClassProfile>` contains actionbar information, class level information,
and it will (right now there is one placeholder class for this) contain keybind information.
Right now having this class inside the SceneTree is required before spawning entities.
This will change in the future.
In the future the data it saves will be more customizable by scripts.

View File

@ -20,6 +20,7 @@ Indices and tables
:name: sec-about
introduction/introduction
introduction/compiling
introduction/design
introduction/optional_dependencies
introduction/companion_addon
@ -79,15 +80,6 @@ Indices and tables
items/item_visuals
items/loot
.. toctree::
:maxdepth: 1
:caption: Profiles
:name: sec-profiles
profiles/introduction
profiles/profile_manager
profiles/classes
.. toctree::
:maxdepth: 1
:caption: UI

View File

@ -1,4 +1,14 @@
.. _doc_introduction_companion_addon:
Companion Addon
===============
===============
Entity and spell system has a companion addon, to help keep all the data organized.
You can get it from here:
https://github.com/Relintai/ess_data.git
It needs a .json file in the root of you project.
See https://github.com/Relintai/broken_seals/blob/master/game/ess_data.json

View File

@ -0,0 +1,23 @@
.. _doc_introduction_compiling:
Compiling
=========
This is an engine module, which means you'll need to compile it into godot yourself.
This might seem really daunting at first, especially if you already ran into complex build systems.
Don't worry though, compiling godot is really easy, simple, and also painless.
First make sure, that you can compile godot.
The tutorials for this are here: https://docs.godotengine.org/en/3.1/development/compiling/
Now you should have godot's source code on your computer.
Now, clone ess like:
git clone https://github.com/Relintai/entity_spell_system entity_spell_system
When this finishes copy your newly created entity_spell_system folder, into godot's source's modules folder.
Like: godot/modules/entity_spell_system
Once this is done, just gompile godot as usual.

View File

@ -3,9 +3,14 @@
Introduction
============
What this is
Welcome to the documentation of my entity and spell system godot engine module.
bigger features
multiplayer
The main purpose of this module is to make a complex (mmorpg) like multiplayer spell
and entity setup accessible to everyone.
The module is created to be really flexible, you don't need to make realtime mmorpgs
with it, for example you can use this in an fps game, or even in a turn based single player roguelike.
The module is set up to give as much control over everything as possible.
The source code for the module is here: https://github.com/Relintai/entity_spell_system

View File

@ -1,4 +0,0 @@
.. _doc_profiles_classes:
Classes
=======

View File

@ -1,8 +0,0 @@
.. _doc_profiles_introduction:
Introduction
============
Explain profiles
might be changed

View File

@ -1,6 +0,0 @@
.. _doc_profiles_profile_manager:
Profile Manager
===============
=== ProfileManager ====

View File

@ -3,5 +3,16 @@
Cooldowns
=========
Cooldown
Categ Cooldown
ESS implements two types of cooldowns. These are:
:ref:`Cooldown<class_Cooldown>`
===============================
This class is used for a single spell cooldown.
Later, spells on items will use this aswell.
:ref:`CategoryCooldown<class_CategoryCooldown>`
===============================================
This class is used for giving categories of spells a cooldown. E.g. interrupts.

View File

@ -3,6 +3,13 @@
Drag and Drop
=============
=== UI ===
Implement drag & drops using :ref:`ESDragAndDrop<class_ESDragAndDrop>`.
Drag and drop
ESS uses this as it's drag & drop helper class. You can easily set up item, and spell
drag & drops with this.
The meaning of the :ref:`item_id<class_ESDragAndDrop_property_item_id>` property changes, based
on the value of the :ref:`type<class_ESDragAndDrop_property_type>` property. It can mean, spell, itemid,
item slot, and equip slot.
Don't forget to set the :ref:`origin<class_ESDragAndDrop_property_origin>` property.