mirror of
https://github.com/Relintai/voxelman.git
synced 2024-11-14 10:17:20 +01:00
Added sphinx based documentation skeleton from ESS. Started wokring on the structure.
This commit is contained in:
parent
a449a41037
commit
9d48a0758d
26
docs/.gitignore
vendored
Normal file
26
docs/.gitignore
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
_build/
|
||||||
|
env/
|
||||||
|
|
||||||
|
classes/*
|
||||||
|
!classes/index.rst
|
||||||
|
|
||||||
|
__pycache__
|
||||||
|
*.pyc
|
||||||
|
*~
|
||||||
|
.directory
|
||||||
|
.vs/
|
||||||
|
.vscode/
|
||||||
|
*.mo
|
||||||
|
|
||||||
|
*.swo
|
||||||
|
*.swp
|
||||||
|
|
||||||
|
.DS_Store
|
||||||
|
[Tt]humbs.db
|
||||||
|
[Tt]humbs.db:encryptable
|
||||||
|
ehthumbs.db
|
||||||
|
ehthumbs_vista.db
|
||||||
|
|
||||||
|
__MACOSX
|
||||||
|
*.lnk
|
||||||
|
[Dd]esktop.ini
|
20
docs/Makefile
Normal file
20
docs/Makefile
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Minimal makefile for Sphinx documentation
|
||||||
|
#
|
||||||
|
|
||||||
|
# You can set these variables from the command line, and also
|
||||||
|
# from the environment for the first two.
|
||||||
|
SPHINXOPTS ?= -j auto
|
||||||
|
SPHINXBUILD ?= sphinx-build
|
||||||
|
SOURCEDIR = .
|
||||||
|
BUILDDIR = _build
|
||||||
|
|
||||||
|
# Put it first so that "make" without argument is like "make help".
|
||||||
|
help:
|
||||||
|
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||||
|
|
||||||
|
.PHONY: help Makefile
|
||||||
|
|
||||||
|
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||||
|
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||||
|
%: Makefile
|
||||||
|
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
273
docs/_static/css/custom.css
vendored
Normal file
273
docs/_static/css/custom.css
vendored
Normal file
@ -0,0 +1,273 @@
|
|||||||
|
/**
|
||||||
|
* Various tweaks to the Read the Docs theme to better conform with Godot's visual identity.
|
||||||
|
*/
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--navbar-background-color: #292c37;
|
||||||
|
--navbar-background-color-hover: #292c37;
|
||||||
|
--navbar-background-color-active: #212d51;
|
||||||
|
--navbar-current-background-color: #000;
|
||||||
|
--navbar-current-background-color-hover: #1c1f26;
|
||||||
|
--navbar-current-background-color-active: #131e3b;
|
||||||
|
--navbar-level-1-color: #fff;
|
||||||
|
--navbar-level-2-color: #f0f8ff;
|
||||||
|
--navbar-level-3-color: #ddcd8d;
|
||||||
|
--navbar-heading-color: #d7bd6f;
|
||||||
|
--link-color-active: #105078;
|
||||||
|
--code-literal-color: #d04c60;
|
||||||
|
--highlight-background-color: #f5ffe1;
|
||||||
|
--input-background-color: #fcfcfc;
|
||||||
|
--input-focus-border-color: #5f8cff;
|
||||||
|
}
|
||||||
|
|
||||||
|
body,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
input[type="text"],
|
||||||
|
input[type="button"],
|
||||||
|
input[type="reset"],
|
||||||
|
input[type="submit"],
|
||||||
|
textarea,
|
||||||
|
legend,
|
||||||
|
.btn,
|
||||||
|
.rst-content .toctree-wrapper p.caption,
|
||||||
|
.rst-versions {
|
||||||
|
/* Use a system font stack for better performance (no Web fonts required) */
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
legend,
|
||||||
|
.rst-content .toctree-wrapper p.caption {
|
||||||
|
/* Use a lighter font for headers (Medium instead of Bold) */
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
p,
|
||||||
|
article ul,
|
||||||
|
article ol,
|
||||||
|
.wy-plain-list-disc,
|
||||||
|
.wy-plain-list-decimal,
|
||||||
|
.rst-content ol.arabic,
|
||||||
|
.rst-content .section ul,
|
||||||
|
.rst-content .toctree-wrapper ul,
|
||||||
|
.rst-content .section ol {
|
||||||
|
/* Increase the line height slightly to account for the different font */
|
||||||
|
line-height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:active {
|
||||||
|
/* Add visual feedback when clicking on a link */
|
||||||
|
color: var(--link-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code display tweaks */
|
||||||
|
|
||||||
|
code,
|
||||||
|
.rst-content tt,
|
||||||
|
.rst-content code {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rst-content tt.literal,
|
||||||
|
.rst-content code.literal {
|
||||||
|
color: var(--code-literal-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rst-content pre.literal-block,
|
||||||
|
.rst-content div[class^="highlight"] pre,
|
||||||
|
.rst-content .linenodiv pre {
|
||||||
|
/* Increase the font size and line height in code blocks */
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
background-color: var(--highlight-background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Navigation bar logo and search */
|
||||||
|
|
||||||
|
.wy-side-nav-search {
|
||||||
|
background-color: var(--navbar-background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search > a:hover,
|
||||||
|
.wy-side-nav-search .wy-dropdown > a:hover {
|
||||||
|
background-color: var(--navbar-background-color-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search > a:active,
|
||||||
|
.wy-side-nav-search .wy-dropdown > a:active {
|
||||||
|
background-color: var(--navbar-background-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search input[type="text"] {
|
||||||
|
background-color: var(--input-background-color);
|
||||||
|
/* Avoid reflowing when toggling the focus state */
|
||||||
|
border: 2px solid transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
/* Make visual feedback instant */
|
||||||
|
transition: none;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search input[type="text"]:focus {
|
||||||
|
border: 2px solid var(--input-focus-border-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Navigation bar */
|
||||||
|
|
||||||
|
.wy-nav-side {
|
||||||
|
background-color: var(--navbar-background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-menu-vertical header,
|
||||||
|
.wy-menu-vertical p.caption {
|
||||||
|
color: var(--navbar-heading-color);
|
||||||
|
|
||||||
|
/* Improves the appearance of uppercase text */
|
||||||
|
letter-spacing: 0.75px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile navigation */
|
||||||
|
|
||||||
|
.wy-nav-top,
|
||||||
|
.wy-nav-top a {
|
||||||
|
background-color: var(--navbar-background-color);
|
||||||
|
color: var(--navbar-level-1-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Version branch label below the logo */
|
||||||
|
.wy-side-nav-search > div.version {
|
||||||
|
color: var(--navbar-level-3-color);
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* First level of navigation items */
|
||||||
|
|
||||||
|
.wy-menu-vertical {
|
||||||
|
/* Account for the increased `toctree-expand` button margins */
|
||||||
|
width: 308px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-menu-vertical a {
|
||||||
|
color: var(--navbar-level-1-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-menu-vertical a:hover {
|
||||||
|
background-color: var(--navbar-background-color-hover);
|
||||||
|
color: var(--navbar-level-1-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-menu-vertical a:active {
|
||||||
|
background-color: var(--navbar-background-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-menu-vertical li.toctree-l1.current > a {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a span.toctree-expand,
|
||||||
|
.wy-menu-vertical li.toctree-l2 a span.toctree-expand {
|
||||||
|
color: var(--navbar-level-3-color);
|
||||||
|
opacity: 0.9;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:hover span.toctree-expand,
|
||||||
|
.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand {
|
||||||
|
color: var(--navbar-level-2-color);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:active span.toctree-expand,
|
||||||
|
.wy-menu-vertical li.toctree-l2 a:active span.toctree-expand {
|
||||||
|
color: var(--navbar-level-1-color);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Second (and higher) levels of navigation items */
|
||||||
|
|
||||||
|
.wy-menu-vertical li.current a,
|
||||||
|
.wy-menu-vertical li.toctree-l2.current > a,
|
||||||
|
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a,
|
||||||
|
.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a {
|
||||||
|
background-color: var(--navbar-current-background-color);
|
||||||
|
color: var(--navbar-level-2-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-menu-vertical li.current a:hover,
|
||||||
|
.wy-menu-vertical li.toctree-l2.current > a:hover,
|
||||||
|
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover,
|
||||||
|
.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:hover {
|
||||||
|
background-color: var(--navbar-current-background-color-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-menu-vertical li.current a:active,
|
||||||
|
.wy-menu-vertical li.toctree-l2.current > a:active,
|
||||||
|
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:active,
|
||||||
|
.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:active {
|
||||||
|
background-color: var(--navbar-current-background-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Version selector (only visible on Read the Docs) */
|
||||||
|
|
||||||
|
.rst-versions {
|
||||||
|
background-color: var(--navbar-current-background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rst-versions a,
|
||||||
|
.rst-versions .rst-current-version,
|
||||||
|
.rst-versions .rst-current-version .fa,
|
||||||
|
.rst-versions .rst-other-versions dd a {
|
||||||
|
color: var(--navbar-level-1-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rst-versions .rst-other-versions small {
|
||||||
|
color: var(--navbar-level-3-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rst-versions .rst-other-versions dd a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rst-versions .rst-other-versions {
|
||||||
|
color: var(--navbar-heading-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rst-versions .rst-current-version {
|
||||||
|
background-color: var(--navbar-current-background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rst-versions .rst-current-version:hover {
|
||||||
|
background-color: var(--navbar-current-background-color-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rst-versions .rst-current-version:active {
|
||||||
|
background-color: var(--navbar-current-background-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hide the obnoxious automatic highlight in search results */
|
||||||
|
.rst-content .highlighted {
|
||||||
|
background-color: transparent;
|
||||||
|
font-weight: inherit;
|
||||||
|
padding: 0;
|
||||||
|
}
|
7
docs/_templates/breadcrumbs.html
vendored
Normal file
7
docs/_templates/breadcrumbs.html
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{%- extends "sphinx_rtd_theme/breadcrumbs.html" %}
|
||||||
|
|
||||||
|
{% block breadcrumbs_aside %}
|
||||||
|
{% if not meta or meta.get('github_url') != 'hide' %}
|
||||||
|
{{ super() }}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
4
docs/_templates/layout.html
vendored
Normal file
4
docs/_templates/layout.html
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{% extends "!layout.html" %}
|
||||||
|
{% block linktags %}
|
||||||
|
{{ super() }}
|
||||||
|
{% endblock %}
|
9
docs/classes/index.rst
Normal file
9
docs/classes/index.rst
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Voxelman API
|
||||||
|
=======================
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:name: toc-class-ref
|
||||||
|
:glob:
|
||||||
|
|
||||||
|
class_*
|
117
docs/conf.py
Normal file
117
docs/conf.py
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Configuration file for the Sphinx documentation builder.
|
||||||
|
#
|
||||||
|
# This file only contains a selection of the most common options. For a full
|
||||||
|
# list see the documentation:
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||||
|
|
||||||
|
# -- Path setup --------------------------------------------------------------
|
||||||
|
|
||||||
|
# If extensions (or modules to document with autodoc) are in another directory,
|
||||||
|
# add these directories to sys.path here. If the directory is relative to the
|
||||||
|
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||||
|
#
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
# sys.path.insert(0, os.path.abspath('.'))
|
||||||
|
|
||||||
|
needs_sphinx = '1.3'
|
||||||
|
|
||||||
|
|
||||||
|
# -- Project information -----------------------------------------------------
|
||||||
|
|
||||||
|
project = 'Voxelman'
|
||||||
|
copyright = '2019, Péter Magyar (Relintai)'
|
||||||
|
author = 'Péter Magyar (Relintai)'
|
||||||
|
|
||||||
|
version = 'latest'
|
||||||
|
release = 'latest'
|
||||||
|
|
||||||
|
# Parse Sphinx tags passed from RTD via environment
|
||||||
|
env_tags = os.getenv('SPHINX_TAGS')
|
||||||
|
if env_tags != None:
|
||||||
|
for tag in env_tags.split(','):
|
||||||
|
print("Adding Sphinx tag: %s" % tag.strip())
|
||||||
|
tags.add(tag.strip())
|
||||||
|
|
||||||
|
# -- General configuration ---------------------------------------------------
|
||||||
|
|
||||||
|
# Add any Sphinx extension module names here, as strings. They can be
|
||||||
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||||
|
# ones.
|
||||||
|
sys.path.append(os.path.abspath('extensions'))
|
||||||
|
extensions = [
|
||||||
|
'gdscript', 'sphinx.ext.imgmath'
|
||||||
|
]
|
||||||
|
|
||||||
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
|
templates_path = ['_templates']
|
||||||
|
|
||||||
|
# List of patterns, relative to source directory, that match files and
|
||||||
|
# directories to ignore when looking for source files.
|
||||||
|
# This pattern also affects html_static_path and html_extra_path.
|
||||||
|
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||||
|
|
||||||
|
source_suffix = '.rst'
|
||||||
|
source_encoding = 'utf-8-sig'
|
||||||
|
|
||||||
|
# GDScript syntax highlighting
|
||||||
|
from gdscript import GDScriptLexer
|
||||||
|
from sphinx.highlighting import lexers
|
||||||
|
lexers['gdscript'] = GDScriptLexer()
|
||||||
|
|
||||||
|
# Pygments (syntax highlighting) style to use
|
||||||
|
pygments_style = 'sphinx'
|
||||||
|
highlight_language = 'gdscript'
|
||||||
|
|
||||||
|
# -- Options for HTML output -------------------------------------------------
|
||||||
|
|
||||||
|
# on_rtd is whether we are on readthedocs.org, this line of code grabbed from docs.readthedocs.org
|
||||||
|
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
|
||||||
|
|
||||||
|
import sphinx_rtd_theme
|
||||||
|
html_theme = 'sphinx_rtd_theme'
|
||||||
|
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
||||||
|
if on_rtd:
|
||||||
|
using_rtd_theme = True
|
||||||
|
|
||||||
|
# Theme options
|
||||||
|
html_theme_options = {
|
||||||
|
# 'typekit_id': 'hiw1hhg',
|
||||||
|
# 'analytics_id': '',
|
||||||
|
# 'sticky_navigation': True # Set to False to disable the sticky nav while scrolling.
|
||||||
|
'logo_only': True, # if we have a html_logo below, this shows /only/ the logo with no title text
|
||||||
|
'collapse_navigation': False, # Collapse navigation (False makes it tree-like)
|
||||||
|
# 'display_version': True, # Display the docs version
|
||||||
|
# 'navigation_depth': 4, # Depth of the headers shown in the navigation bar
|
||||||
|
}
|
||||||
|
|
||||||
|
# VCS options: https://docs.readthedocs.io/en/latest/vcs.html#github
|
||||||
|
html_context = {
|
||||||
|
"display_github": True, # Integrate GitHub
|
||||||
|
"github_user": "Relintai", # Username
|
||||||
|
"github_repo": "voxelman", # Repo name
|
||||||
|
"github_version": "master", # Version
|
||||||
|
"conf_py_path": "/docs/", # Path in the checkout to the docs root
|
||||||
|
}
|
||||||
|
|
||||||
|
#html_logo = 'img/docs_logo.png'
|
||||||
|
|
||||||
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
|
html_static_path = ['_static']
|
||||||
|
|
||||||
|
# These paths are either relative to html_static_path
|
||||||
|
# or fully qualified paths (eg. https://...)
|
||||||
|
html_css_files = [
|
||||||
|
'css/custom.css',
|
||||||
|
]
|
||||||
|
|
||||||
|
# Output file base name for HTML help builder
|
||||||
|
htmlhelp_basename = 'Voxelmandoc'
|
||||||
|
|
||||||
|
# -- Options for reStructuredText parser ----------------------------------
|
||||||
|
|
||||||
|
# Enable directives that insert the contents of external files
|
||||||
|
file_insertion_enabled = False
|
2
docs/create_class_docs.sh
Executable file
2
docs/create_class_docs.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
python ../../../doc/tools/makerst.py ../doc_classes/ -o classes/
|
176
docs/extensions/gdscript.py
Normal file
176
docs/extensions/gdscript.py
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
pygments.lexers.gdscript
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Lexer for GDScript.
|
||||||
|
|
||||||
|
:copyright: Copyright 2xxx by The Godot Engine Community
|
||||||
|
:license: MIT.
|
||||||
|
|
||||||
|
modified by Daniel J. Ramirez <djrmuv@gmail.com> based on the original python.py pygment
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
from pygments.lexer import Lexer, RegexLexer, include, bygroups, using, \
|
||||||
|
default, words, combined, do_insertions
|
||||||
|
from pygments.util import get_bool_opt, shebang_matches
|
||||||
|
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
||||||
|
Number, Punctuation, Generic, Other, Error
|
||||||
|
from pygments import unistring as uni
|
||||||
|
|
||||||
|
__all__ = ['GDScriptLexer']
|
||||||
|
|
||||||
|
line_re = re.compile('.*?\n')
|
||||||
|
|
||||||
|
|
||||||
|
class GDScriptLexer(RegexLexer):
|
||||||
|
"""
|
||||||
|
For `Godot source code <https://www.godotengine.org>`_ source code.
|
||||||
|
"""
|
||||||
|
|
||||||
|
name = 'GDScript'
|
||||||
|
aliases = ['gdscript', 'gd']
|
||||||
|
filenames = ['*.gd']
|
||||||
|
mimetypes = ['text/x-gdscript', 'application/x-gdscript']
|
||||||
|
|
||||||
|
def innerstring_rules(ttype):
|
||||||
|
return [
|
||||||
|
# the old style '%s' % (...) string formatting
|
||||||
|
(r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
|
||||||
|
'[hlL]?[E-GXc-giorsux%]', String.Interpol),
|
||||||
|
# backslashes, quotes and formatting signs must be parsed one at a time
|
||||||
|
(r'[^\\\'"%\n]+', ttype),
|
||||||
|
(r'[\'"\\]', ttype),
|
||||||
|
# unhandled string formatting sign
|
||||||
|
(r'%', ttype),
|
||||||
|
# newlines are an error (use "nl" state)
|
||||||
|
]
|
||||||
|
|
||||||
|
tokens = {
|
||||||
|
'root': [
|
||||||
|
(r'\n', Text),
|
||||||
|
(r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")',
|
||||||
|
bygroups(Text, String.Affix, String.Doc)),
|
||||||
|
(r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')",
|
||||||
|
bygroups(Text, String.Affix, String.Doc)),
|
||||||
|
(r'[^\S\n]+', Text),
|
||||||
|
(r'#.*$', Comment.Single),
|
||||||
|
(r'[]{}:(),;[]', Punctuation),
|
||||||
|
(r'\\\n', Text),
|
||||||
|
(r'\\', Text),
|
||||||
|
(r'(in|and|or|not)\b', Operator.Word),
|
||||||
|
(r'!=|==|<<|>>|&&|\+=|-=|\*=|/=|%=|&=|\|=|\|\||[-~+/*%=<>&^.!|$]', Operator),
|
||||||
|
include('keywords'),
|
||||||
|
(r'(func)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'funcname'),
|
||||||
|
(r'(class)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'classname'),
|
||||||
|
include('builtins'),
|
||||||
|
('([rR]|[uUbB][rR]|[rR][uUbB])(""")',
|
||||||
|
bygroups(String.Affix, String.Double), 'tdqs'),
|
||||||
|
("([rR]|[uUbB][rR]|[rR][uUbB])(''')",
|
||||||
|
bygroups(String.Affix, String.Single), 'tsqs'),
|
||||||
|
('([rR]|[uUbB][rR]|[rR][uUbB])(")',
|
||||||
|
bygroups(String.Affix, String.Double), 'dqs'),
|
||||||
|
("([rR]|[uUbB][rR]|[rR][uUbB])(')",
|
||||||
|
bygroups(String.Affix, String.Single), 'sqs'),
|
||||||
|
('([uUbB]?)(""")', bygroups(String.Affix, String.Double),
|
||||||
|
combined('stringescape', 'tdqs')),
|
||||||
|
("([uUbB]?)(''')", bygroups(String.Affix, String.Single),
|
||||||
|
combined('stringescape', 'tsqs')),
|
||||||
|
('([uUbB]?)(")', bygroups(String.Affix, String.Double),
|
||||||
|
combined('stringescape', 'dqs')),
|
||||||
|
("([uUbB]?)(')", bygroups(String.Affix, String.Single),
|
||||||
|
combined('stringescape', 'sqs')),
|
||||||
|
include('name'),
|
||||||
|
include('numbers'),
|
||||||
|
],
|
||||||
|
'keywords': [
|
||||||
|
(words((
|
||||||
|
'and', 'in', 'not', 'or', 'as', 'breakpoint', 'class', 'class_name',
|
||||||
|
'extends', 'is', 'func', 'setget', 'signal', 'tool', 'const',
|
||||||
|
'enum', 'export', 'onready', 'static', 'var', 'break', 'continue',
|
||||||
|
'if', 'elif', 'else', 'for', 'pass', 'return', 'match', 'while',
|
||||||
|
'remote', 'master', 'puppet', 'remotesync', 'mastersync',
|
||||||
|
'puppetsync'), suffix=r'\b'),
|
||||||
|
Keyword),
|
||||||
|
],
|
||||||
|
'builtins': [
|
||||||
|
(words((
|
||||||
|
'Color8', 'ColorN', 'abs', 'acos', 'asin', 'assert', 'atan', 'atan2',
|
||||||
|
'bytes2var', 'ceil', 'char', 'clamp', 'convert', 'cos', 'cosh',
|
||||||
|
'db2linear', 'decimals', 'dectime', 'deg2rad', 'dict2inst',
|
||||||
|
'ease', 'exp', 'floor', 'fmod', 'fposmod', 'funcref', 'hash',
|
||||||
|
'inst2dict', 'instance_from_id', 'is_inf', 'is_nan', 'lerp',
|
||||||
|
'linear2db', 'load', 'log', 'max', 'min', 'nearest_po2', 'pow',
|
||||||
|
'preload', 'print', 'print_stack', 'printerr', 'printraw',
|
||||||
|
'prints', 'printt', 'rad2deg', 'rand_range', 'rand_seed',
|
||||||
|
'randf', 'randi', 'randomize', 'range', 'round', 'seed', 'sign',
|
||||||
|
'sin', 'sinh', 'sqrt', 'stepify', 'str', 'str2var', 'tan',
|
||||||
|
'tan', 'tanh', 'type_exist', 'typeof', 'var2bytes', 'var2str',
|
||||||
|
'weakref', 'yield'),
|
||||||
|
prefix=r'(?<!\.)', suffix=r'\b'),
|
||||||
|
Name.Builtin),
|
||||||
|
(r'((?<!\.)(self|false|true)|(PI|TAU|NAN|INF)'
|
||||||
|
r')\b', Name.Builtin.Pseudo),
|
||||||
|
(words((
|
||||||
|
'bool', 'int', 'float', 'String', 'NodePath'
|
||||||
|
'Vector2', 'Rect2', 'Transform2D',
|
||||||
|
'Vector3', 'Rect3', 'Plane', 'Quat', 'Basis', 'Transform',
|
||||||
|
'Color', "RID", 'Object', 'NodePath', 'Dictionary',
|
||||||
|
'Array', 'PoolByteArray', 'PoolIntArray', 'PoolRealArray',
|
||||||
|
'PoolStringArray', 'PoolVector2Array', 'PoolVector3Array', 'PoolColorArray',
|
||||||
|
'null',
|
||||||
|
), prefix=r'(?<!\.)', suffix=r'\b'), Name.Builtin.Type),
|
||||||
|
],
|
||||||
|
'numbers': [
|
||||||
|
(r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
|
||||||
|
(r'\d+[eE][+-]?[0-9]+j?', Number.Float),
|
||||||
|
(r'0[xX][a-fA-F0-9]+', Number.Hex),
|
||||||
|
(r'\d+j?', Number.Integer)
|
||||||
|
],
|
||||||
|
'name': [
|
||||||
|
('[a-zA-Z_]\w*', Name),
|
||||||
|
],
|
||||||
|
'funcname': [
|
||||||
|
('[a-zA-Z_]\w*', Name.Function, '#pop'),
|
||||||
|
default('#pop'),
|
||||||
|
],
|
||||||
|
'classname': [
|
||||||
|
('[a-zA-Z_]\w*', Name.Class, '#pop')
|
||||||
|
],
|
||||||
|
'stringescape': [
|
||||||
|
(r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|'
|
||||||
|
r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape)
|
||||||
|
],
|
||||||
|
'strings-single': innerstring_rules(String.Single),
|
||||||
|
'strings-double': innerstring_rules(String.Double),
|
||||||
|
'dqs': [
|
||||||
|
(r'"', String.Double, '#pop'),
|
||||||
|
(r'\\\\|\\"|\\\n', String.Escape), # included here for raw strings
|
||||||
|
include('strings-double')
|
||||||
|
],
|
||||||
|
'sqs': [
|
||||||
|
(r"'", String.Single, '#pop'),
|
||||||
|
(r"\\\\|\\'|\\\n", String.Escape), # included here for raw strings
|
||||||
|
include('strings-single')
|
||||||
|
],
|
||||||
|
'tdqs': [
|
||||||
|
(r'"""', String.Double, '#pop'),
|
||||||
|
include('strings-double'),
|
||||||
|
(r'\n', String.Double)
|
||||||
|
],
|
||||||
|
'tsqs': [
|
||||||
|
(r"'''", String.Single, '#pop'),
|
||||||
|
include('strings-single'),
|
||||||
|
(r'\n', String.Single)
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
def setup(sphinx):
|
||||||
|
sphinx.add_lexer('gdscript', GDScriptLexer())
|
||||||
|
|
||||||
|
return {
|
||||||
|
'parallel_read_safe': True,
|
||||||
|
'parallel_write_safe': True,
|
||||||
|
}
|
60
docs/index.rst
Normal file
60
docs/index.rst
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
Welcome to Entity-Spell System's documentation!
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
:caption: Contents:
|
||||||
|
|
||||||
|
|
||||||
|
Indices and tables
|
||||||
|
==================
|
||||||
|
|
||||||
|
* :ref:`genindex`
|
||||||
|
* :ref:`modindex`
|
||||||
|
* :ref:`search`
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:caption: About
|
||||||
|
:name: sec-about
|
||||||
|
|
||||||
|
introduction/introduction
|
||||||
|
introduction/compiling
|
||||||
|
introduction/design
|
||||||
|
introduction/optional_dependencies
|
||||||
|
introduction/companion_addon
|
||||||
|
introduction/todos
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:caption: World
|
||||||
|
:name: sec-world
|
||||||
|
|
||||||
|
world/voxel_world
|
||||||
|
world/voxel_chunk
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:caption: Items
|
||||||
|
:name: sec-items
|
||||||
|
|
||||||
|
items/item
|
||||||
|
items/craft_recipes
|
||||||
|
items/equipment
|
||||||
|
items/item_visuals
|
||||||
|
items/loot
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:caption: Class reference
|
||||||
|
:name: sec-class-ref
|
||||||
|
|
||||||
|
classes/index
|
||||||
|
|
||||||
|
.. Indices and tables
|
||||||
|
.. ------------------
|
||||||
|
..
|
||||||
|
.. * :ref:`genindex`
|
||||||
|
.. * :ref:`modindex`
|
||||||
|
.. * :ref:`search`
|
14
docs/introduction/companion_addon.rst
Normal file
14
docs/introduction/companion_addon.rst
Normal file
@ -0,0 +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.
|
20
docs/introduction/design.rst
Normal file
20
docs/introduction/design.rst
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
.. _doc_introduction_design:
|
||||||
|
|
||||||
|
|
||||||
|
Design
|
||||||
|
======
|
||||||
|
|
||||||
|
Overall design diffp
|
||||||
|
|
||||||
|
scriptabiliy, and expasiveness is key
|
||||||
|
performance is important aswell
|
||||||
|
|
||||||
|
unfortunately the system is really intettwined, you might need to read the manual more thank once, there is no way
|
||||||
|
to really separate auras, entities, and spell that much
|
||||||
|
|
||||||
|
Optional dependencies diffp
|
||||||
|
|
||||||
|
|
||||||
|
Which are the main classes, what does what etc
|
||||||
|
|
||||||
|
tell about the main classes, and just continue into them
|
16
docs/introduction/introduction.rst
Normal file
16
docs/introduction/introduction.rst
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
.. _doc_introduction_introduction:
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
============
|
||||||
|
|
||||||
|
Welcome to the documentation of my entity and spell system godot engine module.
|
||||||
|
|
||||||
|
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
|
4
docs/introduction/optional_dependencies.rst
Normal file
4
docs/introduction/optional_dependencies.rst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.. _doc_introduction_optional_dependencies:
|
||||||
|
|
||||||
|
Optional Dependencies
|
||||||
|
=====================
|
18
docs/introduction/todos.rst
Normal file
18
docs/introduction/todos.rst
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
.. _doc_introduction_todos:
|
||||||
|
|
||||||
|
Todos
|
||||||
|
=====
|
||||||
|
|
||||||
|
tell that not yet finished, but really close to it.
|
||||||
|
|
||||||
|
warns will thell about unfisisned things
|
||||||
|
|
||||||
|
todos
|
||||||
|
link todos
|
||||||
|
|
||||||
|
|
||||||
|
Deprecated / Lingering classes
|
||||||
|
|
||||||
|
Untiframe
|
||||||
|
aiformation
|
||||||
|
|
4
docs/items/craft_recipes.rst
Normal file
4
docs/items/craft_recipes.rst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.. _doc_items_craft_recipes:
|
||||||
|
|
||||||
|
Craft Recipes
|
||||||
|
=============
|
4
docs/items/equipment.rst
Normal file
4
docs/items/equipment.rst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.. _doc_items_equipment:
|
||||||
|
|
||||||
|
Equipment
|
||||||
|
=========
|
4
docs/items/item.rst
Normal file
4
docs/items/item.rst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.. _doc_items_item:
|
||||||
|
|
||||||
|
Item
|
||||||
|
====
|
4
docs/items/item_visuals.rst
Normal file
4
docs/items/item_visuals.rst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.. _doc_items_item_visuals:
|
||||||
|
|
||||||
|
Item Visuals
|
||||||
|
============
|
8
docs/items/loot.rst
Normal file
8
docs/items/loot.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.. _doc_items_loot:
|
||||||
|
|
||||||
|
Loot
|
||||||
|
====
|
||||||
|
|
||||||
|
Loot
|
||||||
|
lootdb
|
||||||
|
will have to change
|
35
docs/make.bat
Normal file
35
docs/make.bat
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
@ECHO OFF
|
||||||
|
|
||||||
|
pushd %~dp0
|
||||||
|
|
||||||
|
REM Command file for Sphinx documentation
|
||||||
|
|
||||||
|
if "%SPHINXBUILD%" == "" (
|
||||||
|
set SPHINXBUILD=sphinx-build
|
||||||
|
)
|
||||||
|
set SOURCEDIR=.
|
||||||
|
set BUILDDIR=_build
|
||||||
|
|
||||||
|
if "%1" == "" goto help
|
||||||
|
|
||||||
|
%SPHINXBUILD% >NUL 2>NUL
|
||||||
|
if errorlevel 9009 (
|
||||||
|
echo.
|
||||||
|
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||||
|
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||||
|
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||||
|
echo.may add the Sphinx directory to PATH.
|
||||||
|
echo.
|
||||||
|
echo.If you don't have Sphinx installed, grab it from
|
||||||
|
echo.http://sphinx-doc.org/
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
||||||
|
goto end
|
||||||
|
|
||||||
|
:help
|
||||||
|
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
||||||
|
|
||||||
|
:end
|
||||||
|
popd
|
0
docs/meshers/cubic_mesher.rst
Normal file
0
docs/meshers/cubic_mesher.rst
Normal file
0
docs/meshers/transvoxel_mesher.rst
Normal file
0
docs/meshers/transvoxel_mesher.rst
Normal file
0
docs/meshers/voxel_mesher.rst
Normal file
0
docs/meshers/voxel_mesher.rst
Normal file
0
docs/props/props.rst
Normal file
0
docs/props/props.rst
Normal file
4
docs/world/voxel_chunk.rst
Normal file
4
docs/world/voxel_chunk.rst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.. _doc_world_voxel_chunk:
|
||||||
|
|
||||||
|
Voxel Chunk
|
||||||
|
===========
|
4
docs/world/voxel_world.rst
Normal file
4
docs/world/voxel_world.rst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.. _doc_world_voxel_world:
|
||||||
|
|
||||||
|
Voxel World
|
||||||
|
===========
|
Loading…
Reference in New Issue
Block a user