From ad7f4f2c2ee0232d950764a5aff3cf3af7967db7 Mon Sep 17 00:00:00 2001 From: Relintai Date: Mon, 30 Dec 2019 03:26:16 +0100 Subject: [PATCH] Created the docs for a few more pages. I'll proofread them in a second pass. --- docs/general/globals/data_manager.rst | 9 ----- docs/general/globals/entity_data_manager.rst | 38 ++++++++++++++++++++ docs/general/globals/globals.rst | 13 +++++-- docs/general/globals/profile_manager.rst | 19 +++++++--- docs/index.rst | 10 +----- docs/introduction/companion_addon.rst | 12 ++++++- docs/introduction/compiling.rst | 23 ++++++++++++ docs/introduction/introduction.rst | 11 ++++-- docs/profiles/classes.rst | 4 --- docs/profiles/introduction.rst | 8 ----- docs/profiles/profile_manager.rst | 6 ---- docs/spells_and_auras/cooldowns.rst | 15 ++++++-- docs/ui/drag_and_drop.rst | 11 ++++-- 13 files changed, 127 insertions(+), 52 deletions(-) delete mode 100644 docs/general/globals/data_manager.rst create mode 100644 docs/general/globals/entity_data_manager.rst create mode 100644 docs/introduction/compiling.rst delete mode 100644 docs/profiles/classes.rst delete mode 100644 docs/profiles/introduction.rst delete mode 100644 docs/profiles/profile_manager.rst diff --git a/docs/general/globals/data_manager.rst b/docs/general/globals/data_manager.rst deleted file mode 100644 index 7b455f1..0000000 --- a/docs/general/globals/data_manager.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _doc_general_data_manager: - -Data Manager -============ - - -Tell about them -Data -ProfileManager diff --git a/docs/general/globals/entity_data_manager.rst b/docs/general/globals/entity_data_manager.rst new file mode 100644 index 0000000..24e1feb --- /dev/null +++ b/docs/general/globals/entity_data_manager.rst @@ -0,0 +1,38 @@ +.. _doc_general_entity_data_manager: + + +:ref:`Entity Data Manager` +=================================================== + +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` spawning over the network. +:ref:`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`. +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`, and only load +the things you need. You can use methods like +:ref:`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`. 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` 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. \ No newline at end of file diff --git a/docs/general/globals/globals.rst b/docs/general/globals/globals.rst index 57874c4..26e6907 100644 --- a/docs/general/globals/globals.rst +++ b/docs/general/globals/globals.rst @@ -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 diff --git a/docs/general/globals/profile_manager.rst b/docs/general/globals/profile_manager.rst index 74bb397..b0dcef6 100644 --- a/docs/general/globals/profile_manager.rst +++ b/docs/general/globals/profile_manager.rst @@ -1,8 +1,17 @@ .. _doc_general_profile_manager: -Profile Manager -=============== -Tell about them -Data -ProfileManager +:ref:`Profile Manager` +============================================ + +Saves/loads player profiles. + +A Player profile pretty much is an array of :ref:`ClassProfiles`. + +Every :ref:`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. diff --git a/docs/index.rst b/docs/index.rst index 4a47476..46e81ef 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -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 diff --git a/docs/introduction/companion_addon.rst b/docs/introduction/companion_addon.rst index 6f54d02..6bd0730 100644 --- a/docs/introduction/companion_addon.rst +++ b/docs/introduction/companion_addon.rst @@ -1,4 +1,14 @@ .. _doc_introduction_companion_addon: Companion Addon -=============== \ No newline at end of file +=============== + +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 \ No newline at end of file diff --git a/docs/introduction/compiling.rst b/docs/introduction/compiling.rst new file mode 100644 index 0000000..f366709 --- /dev/null +++ b/docs/introduction/compiling.rst @@ -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. diff --git a/docs/introduction/introduction.rst b/docs/introduction/introduction.rst index b358da5..34e097a 100644 --- a/docs/introduction/introduction.rst +++ b/docs/introduction/introduction.rst @@ -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 \ No newline at end of file diff --git a/docs/profiles/classes.rst b/docs/profiles/classes.rst deleted file mode 100644 index 7c12ca3..0000000 --- a/docs/profiles/classes.rst +++ /dev/null @@ -1,4 +0,0 @@ -.. _doc_profiles_classes: - -Classes -======= \ No newline at end of file diff --git a/docs/profiles/introduction.rst b/docs/profiles/introduction.rst deleted file mode 100644 index 650527c..0000000 --- a/docs/profiles/introduction.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _doc_profiles_introduction: - -Introduction -============ - -Explain profiles - -might be changed \ No newline at end of file diff --git a/docs/profiles/profile_manager.rst b/docs/profiles/profile_manager.rst deleted file mode 100644 index c6608e2..0000000 --- a/docs/profiles/profile_manager.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _doc_profiles_profile_manager: - -Profile Manager -=============== - -=== ProfileManager ==== diff --git a/docs/spells_and_auras/cooldowns.rst b/docs/spells_and_auras/cooldowns.rst index 25e7d1c..ab588b1 100644 --- a/docs/spells_and_auras/cooldowns.rst +++ b/docs/spells_and_auras/cooldowns.rst @@ -3,5 +3,16 @@ Cooldowns ========= -Cooldown -Categ Cooldown \ No newline at end of file +ESS implements two types of cooldowns. These are: + +:ref:`Cooldown` +=============================== + +This class is used for a single spell cooldown. + +Later, spells on items will use this aswell. + +:ref:`CategoryCooldown` +=============================================== + +This class is used for giving categories of spells a cooldown. E.g. interrupts. diff --git a/docs/ui/drag_and_drop.rst b/docs/ui/drag_and_drop.rst index f146e9f..4881833 100644 --- a/docs/ui/drag_and_drop.rst +++ b/docs/ui/drag_and_drop.rst @@ -3,6 +3,13 @@ Drag and Drop ============= -=== UI === +Implement drag & drops using :ref:`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` property changes, based +on the value of the :ref:`type` property. It can mean, spell, itemid, +item slot, and equip slot. + +Don't forget to set the :ref:`origin` property.