mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-04-19 21:33:15 +02:00
Created the docs for a few more pages. I'll proofread them in a second pass.
This commit is contained in:
parent
52fb82506a
commit
ad7f4f2c2e
@ -1,9 +0,0 @@
|
||||
.. _doc_general_data_manager:
|
||||
|
||||
Data Manager
|
||||
============
|
||||
|
||||
|
||||
Tell about them
|
||||
Data
|
||||
ProfileManager
|
38
docs/general/globals/entity_data_manager.rst
Normal file
38
docs/general/globals/entity_data_manager.rst
Normal 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.
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
23
docs/introduction/compiling.rst
Normal file
23
docs/introduction/compiling.rst
Normal 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.
|
@ -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
|
@ -1,4 +0,0 @@
|
||||
.. _doc_profiles_classes:
|
||||
|
||||
Classes
|
||||
=======
|
@ -1,8 +0,0 @@
|
||||
.. _doc_profiles_introduction:
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Explain profiles
|
||||
|
||||
might be changed
|
@ -1,6 +0,0 @@
|
||||
.. _doc_profiles_profile_manager:
|
||||
|
||||
Profile Manager
|
||||
===============
|
||||
|
||||
=== ProfileManager ====
|
@ -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.
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user