mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-02-19 14:14:20 +01:00
Fix typos with codespell.
This commit is contained in:
parent
cc7d77f3e1
commit
213f393293
12
CHANGELOG.md
12
CHANGELOG.md
@ -166,7 +166,7 @@ Backported everything up to and including https://github.com/godotengine/godot/c
|
||||
- Fix requesting write locks in WebNodes.
|
||||
- Fix default argument for the binding of WebServerRequest::send_redirect.
|
||||
- Fix: WebPermission was meant to be a Resource.
|
||||
- Fix mimetype handling in the simle server. Also added a few misisng ones.
|
||||
- Fix mimetype handling in the simle server. Also added a few missing ones.
|
||||
- Fixed rendering the menu of the BrowsableFolderServeWebPage and StaticWebPage.
|
||||
|
||||
#### Build System
|
||||
@ -413,7 +413,7 @@ Added an icon for UserModule.
|
||||
- [[Thread Pool]](https://github.com/Relintai/thread_pool) - A c++ Godot engine module which makes it easy to run methods in threads.
|
||||
- [[Texture Packer]](https://github.com/Relintai/texture_packer) - A c++ Godot engine module, to layer, pack, and merge textures at runtime.
|
||||
- [[Mesh Data Resource]](https://github.com/Relintai/mesh_data_resource) - A Godot c++ engine module. It adds a data-only mesh type with an importer.
|
||||
- [[Mesh Utils]](https://github.com/Relintai/mesh_utils) - A c++ Godot engine module containing utilites for working with mehses (Like simplification).
|
||||
- [[Mesh Utils]](https://github.com/Relintai/mesh_utils) - A c++ Godot engine module containing utilities for working with mehses (Like simplification).
|
||||
- [[Godot Fastnoise]](https://github.com/Relintai/godot_fastnoise) - Zylann's godot_fastnoise, but with compile fixes for 4.0, and a Resource class.
|
||||
- [[UI Extensions]](https://github.com/Relintai/ui_extensions) - Small extensions engine module for GODOT.
|
||||
- [[Skeleton Editor]](https://github.com/Relintai/skeleton_editor) - Godot engine module version of TokageItLab's skeleton editor pr, that got deprecated, but [[my godot fork]](https://github.com/Relintai/godot/tree/3.x) has it fully implemented.
|
||||
@ -490,7 +490,7 @@ Added an icon for UserModule.
|
||||
|
||||
#### Platforms
|
||||
|
||||
- UWP (I was never once able to succesfully set up the environment for it to compile during the last 3 years).
|
||||
- UWP (I was never once able to successfully set up the environment for it to compile during the last 3 years).
|
||||
|
||||
#### Editor
|
||||
|
||||
@ -512,11 +512,11 @@ Added an icon for UserModule.
|
||||
|
||||
#### module: ui_extensions
|
||||
|
||||
- Removed TMeshInstance, and changed the core MeshInstance to wrok the way I need it instead.
|
||||
- Removed TMeshInstance, and changed the core MeshInstance to work the way I need it instead.
|
||||
|
||||
#### other
|
||||
|
||||
- Removed the github issue tamplates.
|
||||
- Removed the github issue templates.
|
||||
|
||||
### Fixed
|
||||
|
||||
@ -534,7 +534,7 @@ Added an icon for UserModule.
|
||||
|
||||
#### Other
|
||||
|
||||
- Github actions have been simplifed and fixed.
|
||||
- Github actions have been simplified and fixed.
|
||||
- Godot's regression test tool have been updated / fixed.
|
||||
- Fixed all crashed the regression test tool found by throwing invalid / unexpected arguments at methods.
|
||||
- Cleanups to the docs.
|
||||
|
@ -48,7 +48,7 @@ for compilation instructions for every supported platform.
|
||||
|
||||
## Documentation and demos
|
||||
|
||||
The documantation is available in this repo under the doc/engine folder. [[Here]](https://github.com/Relintai/pandemonium_engine/tree/master/doc/engine).
|
||||
The documentation is available in this repo under the doc/engine folder. [[Here]](https://github.com/Relintai/pandemonium_engine/tree/master/doc/engine).
|
||||
|
||||
You can also look at the official Godot documentation. It is hosted on [ReadTheDocs](https://docs.godotengine.org), and
|
||||
is maintained by the Godot community in its own [GitHub repository](https://github.com/godotengine/godot-docs).
|
||||
|
@ -330,7 +330,7 @@ def _function_contents(func):
|
||||
|
||||
def _object_instance_content(obj):
|
||||
"""
|
||||
Returns consistant content for a action class or an instance thereof
|
||||
Returns consistent content for a action class or an instance thereof
|
||||
|
||||
:Parameters:
|
||||
- `obj` Should be either and action class or an instance thereof
|
||||
|
@ -501,7 +501,7 @@ int main(void) {
|
||||
size = int(out)
|
||||
except ValueError:
|
||||
# If cannot convert output of test prog to an integer (the size),
|
||||
# something went wront, so just fail
|
||||
# something went wrong, so just fail
|
||||
st = 1
|
||||
size = 0
|
||||
|
||||
|
@ -348,7 +348,7 @@ class SubstitutionEnvironment:
|
||||
"""
|
||||
if SCons.Debug.track_instances: logInstanceCreation(self, 'Environment.SubstitutionEnvironment')
|
||||
self.fs = SCons.Node.FS.get_default_fs()
|
||||
self.ans = SCons.Node.Alias.default_ans
|
||||
self.and = SCons.Node.Alias.default_ans
|
||||
self.lookup_list = SCons.Node.arg2nodes_lookups
|
||||
self._dict = kw.copy()
|
||||
self._init_special()
|
||||
@ -567,7 +567,7 @@ class SubstitutionEnvironment:
|
||||
'universal_newlines' : True,
|
||||
}
|
||||
# if the command is a list, assume it's been quoted
|
||||
# othewise force a shell
|
||||
# otherwise force a shell
|
||||
if not is_List(command): kw['shell'] = True
|
||||
# run constructed command
|
||||
p = SCons.Action._subproc(self, command, **kw)
|
||||
@ -818,7 +818,7 @@ class SubstitutionEnvironment:
|
||||
def MergeFlags(self, args, unique=True):
|
||||
"""Merge flags into construction variables.
|
||||
|
||||
Merges the flags from ``args`` into this construction environent.
|
||||
Merges the flags from ``args`` into this construction environment.
|
||||
If ``args`` is not a dict, it is first converted to a dictionary with
|
||||
flags distributed into appropriate construction variables.
|
||||
See :meth:`ParseFlags`.
|
||||
@ -865,12 +865,12 @@ class SubstitutionEnvironment:
|
||||
add_to_orig(value)
|
||||
t = []
|
||||
if key[-4:] == 'PATH':
|
||||
### keep left-most occurence
|
||||
### keep left-most occurrence
|
||||
for v in orig:
|
||||
if v not in t:
|
||||
t.append(v)
|
||||
else:
|
||||
### keep right-most occurence
|
||||
### keep right-most occurrence
|
||||
for v in orig[::-1]:
|
||||
if v not in t:
|
||||
t.insert(0, v)
|
||||
@ -942,7 +942,7 @@ class Base(SubstitutionEnvironment):
|
||||
if SCons.Debug.track_instances: logInstanceCreation(self, 'Environment.Base')
|
||||
self._memo = {}
|
||||
self.fs = SCons.Node.FS.get_default_fs()
|
||||
self.ans = SCons.Node.Alias.default_ans
|
||||
self.and = SCons.Node.Alias.default_ans
|
||||
self.lookup_list = SCons.Node.arg2nodes_lookups
|
||||
self._dict = semi_deepcopy(SCons.Defaults.ConstructionEnvironment)
|
||||
self._init_special()
|
||||
@ -1941,7 +1941,7 @@ class Base(SubstitutionEnvironment):
|
||||
return nodes
|
||||
|
||||
def Alias(self, target, source=[], action=None, **kw):
|
||||
tlist = self.arg2nodes(target, self.ans.Alias)
|
||||
tlist = self.arg2nodes(target, self.and.Alias)
|
||||
if not is_List(source):
|
||||
source = [source]
|
||||
source = [_f for _f in source if _f]
|
||||
@ -2088,7 +2088,7 @@ class Base(SubstitutionEnvironment):
|
||||
return bld(self, target, source, **kw)
|
||||
|
||||
def Depends(self, target, dependency):
|
||||
"""Explicity specify that 'target's depend on 'dependency'."""
|
||||
"""Explicitly specify that 'target's depend on 'dependency'."""
|
||||
tlist = self.arg2nodes(target, self.fs.Entry)
|
||||
dlist = self.arg2nodes(dependency, self.fs.Entry)
|
||||
for t in tlist:
|
||||
|
@ -150,7 +150,7 @@ class Jobs:
|
||||
pass
|
||||
if (self.old_sigint is None) or (self.old_sigterm is None) or \
|
||||
(hasattr(self, "old_sighup") and self.old_sighup is None):
|
||||
msg = "Overwritting previous signal handler which was not installed from Python. " + \
|
||||
msg = "Overwriting previous signal handler which was not installed from Python. " + \
|
||||
"Will not be able to reinstate and so will return to default handler."
|
||||
SCons.Warnings.warn(SCons.Warnings.SConsWarning, msg)
|
||||
|
||||
|
@ -228,7 +228,7 @@ needs_normpath_match = needs_normpath_check.match
|
||||
# For Now disable hard & softlinks for win32
|
||||
# PY3 supports them, but the rest of SCons is not ready for this
|
||||
# in some cases user permissions may be required.
|
||||
# TODO: See if theres a reasonable way to enable using links on win32/64
|
||||
# TODO: See if there's a reasonable way to enable using links on win32/64
|
||||
|
||||
if hasattr(os, 'link') and sys.platform != 'win32':
|
||||
def _hardlink_func(fs, src, dst):
|
||||
|
@ -138,7 +138,7 @@ class Value(SCons.Node.Node):
|
||||
###TODO: something reasonable about universal newlines
|
||||
contents = str(self.value)
|
||||
for kid in self.children(None):
|
||||
# Get csig() value of child as this is more efficent
|
||||
# Get csig() value of child as this is more efficient
|
||||
contents = contents + kid.get_csig()
|
||||
return contents
|
||||
|
||||
|
@ -301,7 +301,7 @@ class TempFileMunge:
|
||||
# to avoid creating two temporary files one for print and one for execute.
|
||||
if node is not None:
|
||||
try:
|
||||
# Storing in tempfile_cmdlist by self.cmd provided when intializing
|
||||
# Storing in tempfile_cmdlist by self.cmd provided when initializing
|
||||
# $TEMPFILE{} fixes issue raised in PR #3140 and #3553
|
||||
node.attributes.tempfile_cmdlist[cmdlist_key] = cmdlist
|
||||
except AttributeError:
|
||||
|
@ -76,19 +76,19 @@ try:
|
||||
import threading
|
||||
spawn_lock = threading.Lock()
|
||||
|
||||
# This locked version of spawnve works around a Windows
|
||||
# MSVCRT bug, because its spawnve is not thread-safe.
|
||||
# This locked version of spawn works around a Windows
|
||||
# MSVCRT bug, because its spawn is not thread-safe.
|
||||
# Without this, python can randomly crash while using -jN.
|
||||
# See the python bug at http://bugs.python.org/issue6476
|
||||
# and SCons issue at
|
||||
# https://github.com/SCons/scons/issues/2449
|
||||
def spawnve(mode, file, args, env):
|
||||
def spawn(mode, file, args, env):
|
||||
spawn_lock.acquire()
|
||||
try:
|
||||
if mode == os.P_WAIT:
|
||||
ret = os.spawnve(os.P_NOWAIT, file, args, env)
|
||||
ret = os.spawn(os.P_NOWAIT, file, args, env)
|
||||
else:
|
||||
ret = os.spawnve(mode, file, args, env)
|
||||
ret = os.spawn(mode, file, args, env)
|
||||
finally:
|
||||
spawn_lock.release()
|
||||
if mode == os.P_WAIT:
|
||||
@ -96,14 +96,14 @@ try:
|
||||
ret = status >> 8
|
||||
return ret
|
||||
except ImportError:
|
||||
# Use the unsafe method of spawnve.
|
||||
# Use the unsafe method of spawn.
|
||||
# Please, don't try to optimize this try-except block
|
||||
# away by assuming that the threading module is always present.
|
||||
# In the test test/option-j.py we intentionally call SCons with
|
||||
# a fake threading.py that raises an import exception right away,
|
||||
# simulating a non-existent package.
|
||||
def spawnve(mode, file, args, env):
|
||||
return os.spawnve(mode, file, args, env)
|
||||
def spawn(mode, file, args, env):
|
||||
return os.spawn(mode, file, args, env)
|
||||
|
||||
# The upshot of all this is that, if you are using Python 1.5.2,
|
||||
# you had better have cmd or command.com in your PATH when you run
|
||||
@ -150,7 +150,7 @@ def piped_spawn(sh, escape, cmd, args, env, stdout, stderr):
|
||||
# actually do the spawn
|
||||
try:
|
||||
args = [sh, '/C', escape(' '.join(args))]
|
||||
ret = spawnve(os.P_WAIT, sh, args, env)
|
||||
ret = spawn(os.P_WAIT, sh, args, env)
|
||||
except OSError as e:
|
||||
# catch any error
|
||||
try:
|
||||
@ -183,7 +183,7 @@ def piped_spawn(sh, escape, cmd, args, env, stdout, stderr):
|
||||
|
||||
def exec_spawn(l, env):
|
||||
try:
|
||||
result = spawnve(os.P_WAIT, l[0], l, env)
|
||||
result = spawn(os.P_WAIT, l[0], l, env)
|
||||
except (OSError, EnvironmentError) as e:
|
||||
try:
|
||||
result = exitvalmap[e.errno]
|
||||
@ -226,7 +226,7 @@ def get_system_root():
|
||||
if _system_root is not None:
|
||||
return _system_root
|
||||
|
||||
# A resonable default if we can't read the registry
|
||||
# A reasonable default if we can't read the registry
|
||||
val = os.environ.get('SystemRoot', "C:\\WINDOWS")
|
||||
|
||||
if SCons.Util.can_read_reg:
|
||||
|
@ -155,7 +155,7 @@ class ConfigureDryRunError(SConfError):
|
||||
SConfError.__init__(self,msg)
|
||||
|
||||
class ConfigureCacheError(SConfError):
|
||||
"""Raised when a use explicitely requested the cache feature, but the test
|
||||
"""Raised when a use explicitly requested the cache feature, but the test
|
||||
is run the first time."""
|
||||
def __init__(self,target):
|
||||
SConfError.__init__(self, '"%s" is not yet built and cache is forced.' % str(target))
|
||||
@ -264,15 +264,15 @@ class SConfBuildTask(SCons.Taskmaster.AlwaysTask):
|
||||
return SCons.Taskmaster.Task.failed(self)
|
||||
|
||||
def collect_node_states(self):
|
||||
# returns (is_up_to_date, cached_error, cachable)
|
||||
# returns (is_up_to_date, cached_error, cacheable)
|
||||
# where is_up_to_date is 1, if the node(s) are up_to_date
|
||||
# cached_error is 1, if the node(s) are up_to_date, but the
|
||||
# build will fail
|
||||
# cachable is 0, if some nodes are not in our cache
|
||||
# cacheable is 0, if some nodes are not in our cache
|
||||
T = 0
|
||||
changed = False
|
||||
cached_error = False
|
||||
cachable = True
|
||||
cacheable = True
|
||||
for t in self.targets:
|
||||
if T: Trace('%s' % t)
|
||||
bi = t.get_stored_info().binfo
|
||||
@ -292,11 +292,11 @@ class SConfBuildTask(SCons.Taskmaster.AlwaysTask):
|
||||
if T: Trace(': else')
|
||||
# the node hasn't been built in a SConf context or doesn't
|
||||
# exist
|
||||
cachable = False
|
||||
cacheable = False
|
||||
changed = ( t.get_state() != SCons.Node.up_to_date )
|
||||
if T: Trace(': changed %s' % changed)
|
||||
if T: Trace('\n')
|
||||
return (not changed, cached_error, cachable)
|
||||
return (not changed, cached_error, cacheable)
|
||||
|
||||
def execute(self):
|
||||
if not self.targets[0].has_builder():
|
||||
@ -304,9 +304,9 @@ class SConfBuildTask(SCons.Taskmaster.AlwaysTask):
|
||||
|
||||
sconf = sconf_global
|
||||
|
||||
is_up_to_date, cached_error, cachable = self.collect_node_states()
|
||||
is_up_to_date, cached_error, cacheable = self.collect_node_states()
|
||||
|
||||
if cache_mode == CACHE and not cachable:
|
||||
if cache_mode == CACHE and not cacheable:
|
||||
raise ConfigureCacheError(self.targets[0])
|
||||
elif cache_mode == FORCE:
|
||||
is_up_to_date = 0
|
||||
|
@ -83,7 +83,7 @@ class ScannerBase:
|
||||
passes control to other Scanners.
|
||||
|
||||
A scanner function takes three arguments: a Node to scan for
|
||||
dependecies, the construction environment to use, and an optional
|
||||
dependencies, the construction environment to use, and an optional
|
||||
tuple of paths (as generated by the optional path function).
|
||||
It must return a list containing the Nodes for all the direct
|
||||
dependencies of the file.
|
||||
@ -383,7 +383,7 @@ class Classic(Current):
|
||||
|
||||
# This is a hand-coded DSU (decorate-sort-undecorate, or
|
||||
# Schwartzian transform) pattern. The sort key is the raw name
|
||||
# of the file as specifed on the #include line (including the
|
||||
# of the file as specified on the #include line (including the
|
||||
# " or <, since that may affect what file is found), which lets
|
||||
# us keep the sort order constant regardless of whether the file
|
||||
# is actually found in a Repository or locally.
|
||||
|
@ -579,7 +579,7 @@ def find_deepest_user_frame(tb):
|
||||
|
||||
def _scons_user_error(e):
|
||||
"""Handle user errors. Print out a message and a description of the
|
||||
error, along with the line number and routine where it occured.
|
||||
error, along with the line number and routine where it occurred.
|
||||
The file and line number will be the deepest stack frame that is
|
||||
not part of SCons itself.
|
||||
"""
|
||||
@ -594,7 +594,7 @@ def _scons_user_error(e):
|
||||
|
||||
def _scons_user_warning(e):
|
||||
"""Handle user warnings. Print out a message and a description of
|
||||
the warning, along with the line number and routine where it occured.
|
||||
the warning, along with the line number and routine where it occurred.
|
||||
The file and line number will be the deepest stack frame that is
|
||||
not part of SCons itself.
|
||||
"""
|
||||
@ -1287,7 +1287,7 @@ def _build_targets(fs, options, targets, target_top):
|
||||
# python_has_threads = sysconfig.get_config_var('WITH_THREAD') or is_pypy or is_37_or_later
|
||||
|
||||
# As of python 3.4 threading has a dummy_threading module for use when there is no threading
|
||||
# it's get_ident() will allways return -1, while real threading modules get_ident() will
|
||||
# it's get_ident() will always return -1, while real threading modules get_ident() will
|
||||
# always return a positive integer
|
||||
python_has_threads = threading.get_ident() != -1
|
||||
# to check if python configured with threads.
|
||||
|
@ -277,7 +277,7 @@ class SConsOptionGroup(optparse.OptionGroup):
|
||||
def format_help(self, formatter):
|
||||
""" Format an option group's help text.
|
||||
|
||||
The title is dedented so it's flush with the "SCons Options"
|
||||
The title is indented so it's flush with the "SCons Options"
|
||||
title we print at the top.
|
||||
"""
|
||||
formatter.dedent()
|
||||
|
@ -870,7 +870,7 @@ def scons_subst(strSubst, env, mode=SUBST_RAW, target=None, source=None, gvars={
|
||||
|
||||
# Now replace escaped $'s currently "$$"
|
||||
# This is needed because we now retain $$ instead of
|
||||
# replacing them during substition to avoid
|
||||
# replacing them during substitution to avoid
|
||||
# improperly trying to escape "$$(" as being "$("
|
||||
result = result.replace('$$','$')
|
||||
elif is_Sequence(result):
|
||||
|
@ -158,15 +158,15 @@ class _POFileBuilder(BuilderBase):
|
||||
This is multi-target single-source builder. In typical situation the source
|
||||
is single `POT` file, e.g. `messages.pot`, and there are multiple `PO`
|
||||
targets to be updated from this `POT`. We must run
|
||||
`SCons.Builder.BuilderBase._execute()` separatelly for each target to track
|
||||
dependencies separatelly for each target file.
|
||||
`SCons.Builder.BuilderBase._execute()` separately for each target to track
|
||||
dependencies separately for each target file.
|
||||
|
||||
**NOTE**: if we call `SCons.Builder.BuilderBase._execute(.., target, ...)`
|
||||
with target being list of all targets, all targets would be rebuilt each time
|
||||
one of the targets from this list is missing. This would happen, for example,
|
||||
when new language `ll` enters `LINGUAS_FILE` (at this moment there is no
|
||||
`ll.po` file yet). To avoid this, we override
|
||||
`SCons.Builder.BuilerBase._execute()` and call it separatelly for each
|
||||
`SCons.Builder.BuilerBase._execute()` and call it separately for each
|
||||
target. Here we also append to the target list the languages read from
|
||||
`LINGUAS_FILE`.
|
||||
"""
|
||||
@ -212,7 +212,7 @@ class _POFileBuilder(BuilderBase):
|
||||
""" Execute builder's actions.
|
||||
|
||||
Here we append to `target` the languages read from `$LINGUAS_FILE` and
|
||||
apply `SCons.Builder.BuilderBase._execute()` separatelly to each target.
|
||||
apply `SCons.Builder.BuilderBase._execute()` separately to each target.
|
||||
The arguments and return value are same as for
|
||||
`SCons.Builder.BuilderBase._execute()`.
|
||||
"""
|
||||
|
@ -343,7 +343,7 @@ def is_host_target_supported(host_target, msvc_version):
|
||||
(host, target) pair, not that the toolchain is actually on the machine.
|
||||
|
||||
Args:
|
||||
host_target: canonalized host-target pair, e.g.
|
||||
host_target: canonicalized host-target pair, e.g.
|
||||
("x86", "amd64") for cross compilation from 32- to 64-bit Windows.
|
||||
msvc_version: Visual C++ version (major.minor), e.g. "10.0"
|
||||
|
||||
|
@ -33,7 +33,7 @@ selection method.
|
||||
|
||||
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
|
||||
|
||||
#forward proxy to the preffered cxx version
|
||||
#forward proxy to the preferred cxx version
|
||||
from SCons.Tool.aixcxx import *
|
||||
|
||||
# Local Variables:
|
||||
|
@ -33,7 +33,7 @@ selection method.
|
||||
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
|
||||
|
||||
|
||||
#forward proxy to the preffered cxx version
|
||||
#forward proxy to the preferred cxx version
|
||||
from SCons.Tool.cxx import *
|
||||
|
||||
|
||||
|
@ -34,7 +34,7 @@ selection method.
|
||||
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
|
||||
|
||||
|
||||
#forward proxy to the preffered cxx version
|
||||
#forward proxy to the preferred cxx version
|
||||
from SCons.Tool.gxx import *
|
||||
|
||||
|
||||
|
@ -34,7 +34,7 @@ selection method.
|
||||
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
|
||||
|
||||
|
||||
#forward proxy to the preffered cxx version
|
||||
#forward proxy to the preferred cxx version
|
||||
from SCons.Tool.hpcxx import *
|
||||
|
||||
|
||||
|
@ -516,7 +516,7 @@ def generate(env, version=None, abi=None, topdir=None, verbose=0):
|
||||
('LIB' , 'LibDir', 'Lib'),
|
||||
('PATH' , 'BinDir', 'Bin'))
|
||||
# We are supposed to ignore version if topdir is set, so set
|
||||
# it to the emptry string if it's not already set.
|
||||
# it to the empty string if it's not already set.
|
||||
if version is None:
|
||||
version = ''
|
||||
# Each path has a registry entry, use that or default to subdir
|
||||
|
@ -44,7 +44,7 @@ from SCons.Tool.GettextCommon import (
|
||||
class _MOFileBuilder(BuilderBase):
|
||||
"""The builder class for `MO` files.
|
||||
|
||||
The reason for this builder to exists and its purpose is quite simillar
|
||||
The reason for this builder to exists and its purpose is quite similar
|
||||
as for `_POFileBuilder`. This time, we extend list of sources, not targets,
|
||||
and call `BuilderBase._execute()` only once (as we assume single-target
|
||||
here).
|
||||
|
@ -205,7 +205,7 @@ def RegServerFunc(target, source, env):
|
||||
if ret:
|
||||
raise SCons.Errors.UserError("Unable to register %s" % target[0])
|
||||
else:
|
||||
print("Registered %s sucessfully" % target[0])
|
||||
print("Registered %s successfully" % target[0])
|
||||
return ret
|
||||
return 0
|
||||
|
||||
|
@ -285,7 +285,7 @@ def generate(env):
|
||||
env['SHOBJPREFIX'] = '$OBJPREFIX'
|
||||
env['SHOBJSUFFIX'] = '$OBJSUFFIX'
|
||||
|
||||
# MSVC probably wont support unistd.h so default
|
||||
# MSVC probably won't support unistd.h so default
|
||||
# without it for lex generation
|
||||
env["LEXUNISTD"] = SCons.Util.CLVar("--nounistd")
|
||||
|
||||
|
@ -768,15 +768,15 @@ class _GenerateV6DSP(_DSPGenerator):
|
||||
|
||||
# read to get configs
|
||||
line = dspfile.readline()
|
||||
datas = line
|
||||
data = line
|
||||
while line and line != '\n':
|
||||
line = dspfile.readline()
|
||||
datas = datas + line
|
||||
data = data + line
|
||||
|
||||
# OK, we've found our little pickled cache of data.
|
||||
try:
|
||||
datas = base64.decodestring(datas)
|
||||
data = pickle.loads(datas)
|
||||
data = base64.decodestring(data)
|
||||
data = pickle.loads(data)
|
||||
except KeyboardInterrupt:
|
||||
raise
|
||||
except Exception:
|
||||
@ -787,17 +787,17 @@ class _GenerateV6DSP(_DSPGenerator):
|
||||
# keep reading to get sources
|
||||
data = None
|
||||
line = dspfile.readline()
|
||||
datas = line
|
||||
data = line
|
||||
while line and line != '\n':
|
||||
line = dspfile.readline()
|
||||
datas = datas + line
|
||||
data = data + line
|
||||
dspfile.close()
|
||||
|
||||
# OK, we've found our little pickled cache of data.
|
||||
# it has a "# " in front of it, so we strip that.
|
||||
try:
|
||||
datas = base64.decodestring(datas)
|
||||
data = pickle.loads(datas)
|
||||
data = base64.decodestring(data)
|
||||
data = pickle.loads(data)
|
||||
except KeyboardInterrupt:
|
||||
raise
|
||||
except:
|
||||
@ -1086,15 +1086,15 @@ class _GenerateV7DSP(_DSPGenerator, _GenerateV7User):
|
||||
|
||||
# read to get configs
|
||||
line = dspfile.readline()
|
||||
datas = line
|
||||
data = line
|
||||
while line and line != '\n':
|
||||
line = dspfile.readline()
|
||||
datas = datas + line
|
||||
data = data + line
|
||||
|
||||
# OK, we've found our little pickled cache of data.
|
||||
try:
|
||||
datas = base64.decodestring(datas)
|
||||
data = pickle.loads(datas)
|
||||
data = base64.decodestring(data)
|
||||
data = pickle.loads(data)
|
||||
except KeyboardInterrupt:
|
||||
raise
|
||||
except:
|
||||
@ -1105,16 +1105,16 @@ class _GenerateV7DSP(_DSPGenerator, _GenerateV7User):
|
||||
# keep reading to get sources
|
||||
data = None
|
||||
line = dspfile.readline()
|
||||
datas = line
|
||||
data = line
|
||||
while line and line != '\n':
|
||||
line = dspfile.readline()
|
||||
datas = datas + line
|
||||
data = data + line
|
||||
dspfile.close()
|
||||
|
||||
# OK, we've found our little pickled cache of data.
|
||||
try:
|
||||
datas = base64.decodestring(datas)
|
||||
data = pickle.loads(datas)
|
||||
data = base64.decodestring(data)
|
||||
data = pickle.loads(data)
|
||||
except KeyboardInterrupt:
|
||||
raise
|
||||
except:
|
||||
@ -1582,16 +1582,16 @@ class _GenerateV7DSW(_DSWGenerator):
|
||||
line = dswfile.readline()
|
||||
|
||||
line = dswfile.readline()
|
||||
datas = line
|
||||
data = line
|
||||
while line:
|
||||
line = dswfile.readline()
|
||||
datas = datas + line
|
||||
data = data + line
|
||||
dswfile.close()
|
||||
|
||||
# OK, we've found our little pickled cache of data.
|
||||
try:
|
||||
datas = base64.decodestring(datas)
|
||||
data = pickle.loads(datas)
|
||||
data = base64.decodestring(data)
|
||||
data = pickle.loads(data)
|
||||
except KeyboardInterrupt:
|
||||
raise
|
||||
except:
|
||||
|
@ -47,7 +47,7 @@ def package(env, target, source, PACKAGEROOT, NAME, VERSION, DESCRIPTION,
|
||||
target, source = stripinstallbuilder(target, source, env)
|
||||
target, source = putintopackageroot(target, source, env, PACKAGEROOT)
|
||||
|
||||
# This should be overrideable from the construction environment,
|
||||
# This should be overridable from the construction environment,
|
||||
# which it is by using ARCHITECTURE=.
|
||||
# Guessing based on what os.uname() returns at least allows it
|
||||
# to work for both i386 and x86_64 Linux systems.
|
||||
|
@ -272,7 +272,7 @@ def build_wxsfile_file_section(root, files, NAME, VERSION, VENDOR, filename_set,
|
||||
Files need to be specified in 8.3 format and in the long name format, long
|
||||
filenames will be converted automatically.
|
||||
|
||||
Features are specficied with the 'X_MSI_FEATURE' or 'DOC' FileTag.
|
||||
Features are specified with the 'X_MSI_FEATURE' or 'DOC' FileTag.
|
||||
"""
|
||||
root = create_default_directory_layout( root, NAME, VERSION, VENDOR, filename_set )
|
||||
components = create_feature_dict( files )
|
||||
@ -363,7 +363,7 @@ def build_wxsfile_features_section(root, files, NAME, VERSION, SUMMARY, id_set):
|
||||
|
||||
This is achieved by finding all <component>s and adding them to a default target.
|
||||
|
||||
It should be called after the tree has been built completly. We assume
|
||||
It should be called after the tree has been built completely. We assume
|
||||
that a MY_DEFAULT_FOLDER Property is defined in the wxs file tree.
|
||||
|
||||
Furthermore a top-level with the name and VERSION of the software will be created.
|
||||
|
@ -303,7 +303,7 @@ def build_specfile_filesection(spec, files):
|
||||
class SimpleTagCompiler:
|
||||
""" Compile RPM tags by doing simple string substitution.
|
||||
|
||||
The replacement specfication is stored in the *tagset* dictionary,
|
||||
The replacement specification is stored in the *tagset* dictionary,
|
||||
something like::
|
||||
|
||||
{"abc" : "cdef %s ", "abc_": "cdef %s %s"}
|
||||
|
@ -312,11 +312,11 @@ def generate(env):
|
||||
'-o ${TARGETS[1]} $SOURCE'),
|
||||
CLVar('$QT_MOC $QT_MOCFROMHFLAGS -o ${TARGETS[2]} ${TARGETS[0]}')],
|
||||
# command to generate meta object information for a class
|
||||
# declarated in a header
|
||||
# declared in a header
|
||||
QT_MOCFROMHCOM = (
|
||||
'$QT_MOC $QT_MOCFROMHFLAGS -o ${TARGETS[0]} $SOURCE'),
|
||||
# command to generate meta object information for a class
|
||||
# declarated in a cpp file
|
||||
# declared in a cpp file
|
||||
QT_MOCFROMCXXCOM = [
|
||||
CLVar('$QT_MOC $QT_MOCFROMCXXFLAGS -o ${TARGETS[0]} $SOURCE'),
|
||||
Action(checkMocIncluded,None)])
|
||||
|
@ -33,7 +33,7 @@ selection method.
|
||||
|
||||
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
|
||||
|
||||
#forward proxy to the preffered cxx version
|
||||
#forward proxy to the preferred cxx version
|
||||
from SCons.Tool.sgicxx import *
|
||||
|
||||
# Local Variables:
|
||||
|
@ -34,7 +34,7 @@ selection method.
|
||||
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
|
||||
|
||||
|
||||
#forward proxy to the preffered cxx version
|
||||
#forward proxy to the preferred cxx version
|
||||
from SCons.Tool.suncxx import *
|
||||
|
||||
|
||||
|
@ -113,7 +113,7 @@ def _update_pot_file(target, source, env):
|
||||
# Revert working dirs to previous state.
|
||||
env.fs.chdir(save_cwd, 0)
|
||||
os.chdir(save_os_cwd)
|
||||
# If the command was not successfull, return error code.
|
||||
# If the command was not successful, return error code.
|
||||
if status: return status
|
||||
|
||||
new_content = cmd.out
|
||||
|
@ -1435,7 +1435,7 @@ class UniqueList(UserList):
|
||||
"""A list which maintains uniqueness.
|
||||
|
||||
Uniquing is lazy: rather than being assured on list changes, it is fixed
|
||||
up on access by those methods which need to act on a uniqe list to be
|
||||
up on access by those methods which need to act on a unique list to be
|
||||
correct. That means things like "in" don't have to eat the uniquing time.
|
||||
"""
|
||||
def __init__(self, initlist=None):
|
||||
|
@ -87,7 +87,7 @@ PICKLE_PROTOCOL = 4
|
||||
|
||||
|
||||
class NoSlotsPyPy(type):
|
||||
""" Metaclass for PyPy compatitbility.
|
||||
""" Metaclass for PyPy compatibility.
|
||||
|
||||
PyPy does not work well with __slots__ and __class__ assignment.
|
||||
"""
|
||||
|
@ -260,7 +260,7 @@ class PreProcessor:
|
||||
|
||||
# For efficiency, a dispatch table maps each C preprocessor
|
||||
# directive (#if, #define, etc.) to the method that should be
|
||||
# called when we see it. We accomodate state changes (#if,
|
||||
# called when we see it. We accommodate state changes (#if,
|
||||
# #ifdef, #ifndef) by pushing the current dispatch table on a
|
||||
# stack and changing what method gets called for each relevant
|
||||
# directive we might see next at this level (#else, #elif).
|
||||
|
@ -55,7 +55,7 @@ class dblite:
|
||||
that we'll use when our __del__() method calls our sync() method
|
||||
during shutdown. We might get destroyed when Python is in the midst
|
||||
of tearing down the different modules we import in an essentially
|
||||
arbitrary order, and some of the various modules's global attributes
|
||||
arbitrary order, and some of the various modules' global attributes
|
||||
may already be wiped out from under us.
|
||||
|
||||
See the discussion at:
|
||||
|
@ -485,7 +485,7 @@ if selected_platform in platform_list:
|
||||
#not needed
|
||||
#env.Prepend(CXXFLAGS=["/EHr-"])
|
||||
|
||||
# Apparently disabling exeptions when you also need to have stl containers
|
||||
# Apparently disabling exceptions when you also need to have stl containers
|
||||
# (Some of the 3rd party code needs them)
|
||||
# is not as simple with msvc as I originally thought.
|
||||
# So for now they are always enabled.
|
||||
@ -647,7 +647,7 @@ if selected_platform in platform_list:
|
||||
sys.path.remove(path)
|
||||
sys.modules.pop("config")
|
||||
|
||||
#TODO hack, the editor should be a module aswell
|
||||
#TODO hack, the editor should be a module as well
|
||||
if env["tools"] and not env["module_freetype_enabled"]:
|
||||
print("The editor (tools=yes) can't be built if freetype is disabled! Stopping.")
|
||||
sys.exit(255)
|
||||
|
20
TODO.md
20
TODO.md
@ -3,7 +3,7 @@
|
||||
## Core
|
||||
|
||||
- Add a core binder class for Math. This would allow for simpler script to engine side code ports. Maybe it could also smplify scripting language code.
|
||||
- Maye threading could be de-modernized. So the implementation could use the old os level constructs. (like pthreads). An implementation that uses std::threads could be kept around though. (without it being compiled). -> Just add back and update the old os api implementations (pthreads etc), keep the core classes, and make every single class that uses std threads overrideable similarly to what can be done with thread now (mutexes etc).
|
||||
- Maye threading could be de-modernized. So the implementation could use the old os level constructs. (like pthreads). An implementation that uses std::threads could be kept around though. (without it being compiled). -> Just add back and update the old os api implementations (pthreads etc), keep the core classes, and make every single class that uses std threads overridable similarly to what can be done with thread now (mutexes etc).
|
||||
- Maybe use NULLs again instead of nullptrs? TODO check if there is an actual difference, other than requiring cpp11.
|
||||
- Add error macro like methods to global scope for scripting
|
||||
- Add containers that are a drop in replacement for stl containers.
|
||||
@ -18,8 +18,8 @@
|
||||
- There are probably a few lingering bugs, as some examples give bad results.
|
||||
- Need to make sure wave size, out size, and size related things are consistent, and intuitive, as right now they are neither.
|
||||
- The bindings will likely need more improvements.
|
||||
- Would be nice, if the algorithm could be parametrized from gdscript aswell.
|
||||
- Maybe addding Array2D, and Array3D like classes to the engine would be a good idea.
|
||||
- Would be nice, if the algorithm could be parametrized from gdscript as well.
|
||||
- Maybe adding Array2D, and Array3D like classes to the engine would be a good idea.
|
||||
- Replace std::vectors to engine vectors.
|
||||
|
||||
## Physics
|
||||
@ -48,7 +48,7 @@
|
||||
|
||||
## Editor
|
||||
|
||||
- Add support for enabling / disabling editor plugins, and also add a gui for this. (Like how the gdscript addons can be enabled/disabled, but for built in c++ stuff.) It will need support for either exlusion, or dependencies. (Dependencies would be better.)
|
||||
- Add support for enabling / disabling editor plugins, and also add a gui for this. (Like how the gdscript addons can be enabled/disabled, but for built in c++ stuff.) It will need support for either exclusion, or dependencies. (Dependencies would be better.)
|
||||
- Modularize the editor.
|
||||
|
||||
## Engine
|
||||
@ -58,8 +58,8 @@
|
||||
- Add more hooks where needed, to let stuff register itself. Like visual server backends, so adding them is simple, as I think this is the best way forward, so you can just create your custom rendering backend, when needed. Like if you want lightmaps, add a module that has the tooling + visualserver that has it implemented.
|
||||
- Port the DisplayServer from Godot4, as I think having display and windowing in a DisplayServer singleton instead of in OS is better architecturally.
|
||||
- Port the capability to have more than one windows. Multi windowing however should be disabled by default, also I don't want to port the full multi windowing stuff for the editor, as it's a lot leaner the way it is. However multi windowing would be cool for creating tools. Would also make it easier to not have a window at all.
|
||||
- The DisplayServer at first could just use stuff in OS, so it doesn't have to be ported all at onece.
|
||||
- Should backport the tests and the test suite from Godot4 aswell.
|
||||
- The DisplayServer at first could just use stuff in OS, so it doesn't have to be ported all at once.
|
||||
- Should backport the tests and the test suite from Godot4 as well.
|
||||
- Backport optimizations to the hashmap (or maybe just add it as another option), and also replace usage where applicable (https://github.com/godotengine/godot/commit/8b7c7f5a753b43cec10f72b274bb1d70c253652b), and (https://github.com/godotengine/godot/commit/45af29da8095af16729955117a165d23e77cd740)
|
||||
- Make operator='s return void (https://github.com/godotengine/godot/commit/7da392bcc52366740394322728464e724cf20cdf).
|
||||
- Switch back to the old c++ version (pre c++11) for the codebase. I'm already targeting low end hardware, I think it will likely come in handy later.
|
||||
@ -76,7 +76,7 @@
|
||||
|
||||
## GUI
|
||||
|
||||
- Rename the EditorZoomWidget to something like ZoomWidget, and make it available for the games aswell. Also I think I did smaller improvements to it in the world_generator addon. Also port those.
|
||||
- Rename the EditorZoomWidget to something like ZoomWidget, and make it available for the games as well. Also I think I did smaller improvements to it in the world_generator addon. Also port those.
|
||||
|
||||
## Graphics
|
||||
|
||||
@ -96,7 +96,7 @@
|
||||
- Support for adding graphics backends from modules. This will require platform specific creation funcs.
|
||||
- Could add an api to query gpus, and optionally to mess with them. Like you could use an off gpu to to do something, maybe like calculations, etc. (Needs more research, not even sure if this is possible or not, or how hard it would be.)
|
||||
- Rename VisualServer to RenderingServer like on Godot 4. I think it's a better long term name for what it does.
|
||||
- Port the RenderingDevice API from Godot 4 alongside a RenderingServer implementation that uses it once it's stable. However keep the GLES backends around the same way as they are now, so RenderingServer would be Pluggable aswell: RenderingServer <- RenderingSreverGLES2, RenderingServer <- RenderingSreverGLES3 (eventually), RenderingServer <- RenderingSreverRenderingDevice (This would then just use an available RenderingDevice).
|
||||
- Port the RenderingDevice API from Godot 4 alongside a RenderingServer implementation that uses it once it's stable. However keep the GLES backends around the same way as they are now, so RenderingServer would be Pluggable as well: RenderingServer <- RenderingSreverGLES2, RenderingServer <- RenderingSreverGLES3 (eventually), RenderingServer <- RenderingSreverRenderingDevice (This would then just use an available RenderingDevice).
|
||||
- Port the newer godot rendering backends once they are stable enough. (With at least some of their features.)
|
||||
- Somehow make VisualServer's implementation more modular.
|
||||
- Add a scriptable VisualServer implementation. Similar idea as the scriptable networking api. Alongside with a similar interface for GLES. Would help with experimentation.
|
||||
@ -164,8 +164,8 @@
|
||||
|
||||
## Binaries, Containers, Releases
|
||||
|
||||
- Set up containers and build scripts to autmatically build frt and frt_sdl binaries.
|
||||
- Set up automatically building ios binaries aswell.
|
||||
- Set up containers and build scripts to automatically build frt and frt_sdl binaries.
|
||||
- Set up automatically building ios binaries as well.
|
||||
- Try to set up godot's UWP platform again. Maybe.
|
||||
- Add all binaries to the project side export and release helper scripts.
|
||||
- Maybe split TPZ files, so you can install the export templates that you want.
|
||||
|
@ -3228,13 +3228,13 @@ void register_variant_methods() {
|
||||
ADDFUNC1R(TRANSFORM2D, REAL, Transform2D, tdoty, VECTOR2, "v", varray());
|
||||
ADDFUNC1R(TRANSFORM2D, VECTOR2, Transform2D, get_axis, INT, "axis", varray());
|
||||
ADDFUNC2(TRANSFORM2D, NIL, Transform2D, set_axis, INT, "axis", VECTOR2, "vec", varray());
|
||||
ADDFUNC1R(TRANSFORM2D, VECTOR2, Transform2D, get_column, INT, "colum", varray());
|
||||
ADDFUNC2(TRANSFORM2D, NIL, Transform2D, set_column, INT, "colum", VECTOR2, "vec", varray());
|
||||
ADDFUNC1R(TRANSFORM2D, VECTOR2, Transform2D, get_column, INT, "column", varray());
|
||||
ADDFUNC2(TRANSFORM2D, NIL, Transform2D, set_column, INT, "column", VECTOR2, "vec", varray());
|
||||
ADDFUNC0(TRANSFORM2D, NIL, Transform2D, invert, varray());
|
||||
ADDFUNC0(TRANSFORM2D, NIL, Transform2D, affine_invert, varray());
|
||||
ADDFUNC0R(TRANSFORM2D, TRANSFORM2D, Transform2D, inverse, varray());
|
||||
ADDFUNC0R(TRANSFORM2D, TRANSFORM2D, Transform2D, affine_inverse, varray());
|
||||
ADDFUNC1(TRANSFORM2D, NIL, Transform2D, set_column, REAL, "colum", varray());
|
||||
ADDFUNC1(TRANSFORM2D, NIL, Transform2D, set_column, REAL, "column", varray());
|
||||
ADDFUNC0R(TRANSFORM2D, TRANSFORM2D, Transform2D, inverse, varray());
|
||||
ADDFUNC0R(TRANSFORM2D, REAL, Transform2D, get_rotation, varray());
|
||||
ADDFUNC0R(TRANSFORM2D, REAL, Transform2D, get_skew, varray());
|
||||
|
@ -291,8 +291,8 @@
|
||||
<member name="editors/3d/navigation/navigation_scheme" type="int" setter="" getter="">
|
||||
The navigation scheme to use in the 3D editor. Changing this setting will affect the mouse buttons that must be held down to perform certain operations in the 3D editor viewport.
|
||||
- [b]Godot[/b] Middle mouse button to orbit, [kbd]Shift + Middle mouse button[/kbd] to pan. [kbd]Mouse wheel[/kbd] to zoom.
|
||||
- [b]Maya:[/b] [kbd]Alt + Left mouse buttton[/kbd] to orbit. [kbd]Middle mouse button[/kbd] to pan, [kbd]Shift + Middle mouse button[/kbd] to pan 10 times faster. [kbd]Mouse wheel[/kbd] to zoom.
|
||||
- [b]Modo:[/b] [kbd]Alt + Left mouse buttton[/kbd] to orbit. [kbd]Alt + Shift + Left mouse button[/kbd] to pan. [kbd]Ctrl + Alt + Left mouse button[/kbd] to zoom.
|
||||
- [b]Maya:[/b] [kbd]Alt + Left mouse button[/kbd] to orbit. [kbd]Middle mouse button[/kbd] to pan, [kbd]Shift + Middle mouse button[/kbd] to pan 10 times faster. [kbd]Mouse wheel[/kbd] to zoom.
|
||||
- [b]Modo:[/b] [kbd]Alt + Left mouse button[/kbd] to orbit. [kbd]Alt + Shift + Left mouse button[/kbd] to pan. [kbd]Ctrl + Alt + Left mouse button[/kbd] to zoom.
|
||||
See also [member editors/3d/freelook/freelook_navigation_scheme].
|
||||
[b]Note:[/b] On certain window managers on Linux, the [kbd]Alt[/kbd] key will be intercepted by the window manager when clicking a mouse button at the same time. This means Godot will not see the modifier key as being pressed.
|
||||
</member>
|
||||
|
@ -806,7 +806,7 @@
|
||||
The method takes only global paths, so you may need to use [method ProjectSettings.globalize_path]. Do not use it for files in [code]res://[/code] as it will not work in exported project.
|
||||
[b]Note:[/b] If the user has disabled the recycle bin on their system, the file will be permanently deleted instead.
|
||||
[codeblock]
|
||||
var file_to_remove = "user://slot1.sav"
|
||||
var file_to_remove = "user://slot1.save"
|
||||
OS.move_to_trash(ProjectSettings.globalize_path(file_to_remove))
|
||||
[/codeblock]
|
||||
</description>
|
||||
|
@ -114,13 +114,13 @@
|
||||
<method name="get_string_from_utf16">
|
||||
<return type="String" />
|
||||
<description>
|
||||
Converts UTF-16 encoded array to [String]. If the BOM is missing, system endianness is assumed. Returns empty string if source array is not vaild UTF-16 string.
|
||||
Converts UTF-16 encoded array to [String]. If the BOM is missing, system endianness is assumed. Returns empty string if source array is not valid UTF-16 string.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_string_from_utf32">
|
||||
<return type="String" />
|
||||
<description>
|
||||
Converts UTF-8 encoded array to [String]. Slower than [method get_string_from_ascii] but supports UTF-8 encoded data. Use this function if you are unsure about the source of the data. For user input this function should always be preferred. Returns empty string if source array is not vaild UTF-8 string.
|
||||
Converts UTF-8 encoded array to [String]. Slower than [method get_string_from_ascii] but supports UTF-8 encoded data. Use this function if you are unsure about the source of the data. For user input this function should always be preferred. Returns empty string if source array is not valid UTF-8 string.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_string_from_utf8">
|
||||
|
@ -493,7 +493,7 @@
|
||||
<argument index="0" name="id" type="int" />
|
||||
<description>
|
||||
Emitted when an item of some [code]id[/code] is pressed or its accelerator is activated.
|
||||
[b]Note:[/b] If [code]id[/code] is negative (either explicitly or due to overflow), this will return the correponding index instead.
|
||||
[b]Note:[/b] If [code]id[/code] is negative (either explicitly or due to overflow), this will return the corresponding index instead.
|
||||
</description>
|
||||
</signal>
|
||||
<signal name="index_pressed">
|
||||
|
@ -83,7 +83,7 @@
|
||||
</method>
|
||||
<method name="get_column">
|
||||
<return type="Vector2" />
|
||||
<argument index="0" name="colum" type="int" />
|
||||
<argument index="0" name="column" type="int" />
|
||||
<description>
|
||||
</description>
|
||||
</method>
|
||||
@ -213,7 +213,7 @@
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_column">
|
||||
<argument index="0" name="colum" type="float" />
|
||||
<argument index="0" name="column" type="float" />
|
||||
<description>
|
||||
</description>
|
||||
</method>
|
||||
|
@ -200,7 +200,7 @@ entities for every model/body you have.
|
||||
|
||||
Bodies are stored at `EntityData->EntitySpeciesData->ModelDatas (SpeciesModelData)->Body`
|
||||
|
||||
When an `Entity` gets initialized, it will instance it's body automatically, but if you want to intance it yourself,
|
||||
When an `Entity` gets initialized, it will instance it's body automatically, but if you want to do it yourself,
|
||||
you can call `void instance_body(entity_data: EntityData, model_index: int)` on an `Entity`.
|
||||
|
||||
The `model_index` property tell the `Entity` which one it should use.
|
||||
@ -360,7 +360,7 @@ The standard speed resource implementation.
|
||||
|
||||
#### EntityResourceCostData
|
||||
|
||||
This is the class taht lets you implement resource costs. For example mana cost for a spell.
|
||||
This is the class that lets you implement resource costs. For example mana cost for a spell.
|
||||
|
||||
##### EntityResourceCostDataResource
|
||||
|
||||
@ -481,9 +481,9 @@ func sapply_aura() -> void:
|
||||
|
||||
#### UI
|
||||
|
||||
[Complete UI Implemetation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player)
|
||||
[Complete UI Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player)
|
||||
|
||||
[Player UI Core Implemetation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/player_ui)
|
||||
[Player UI Core Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/player_ui)
|
||||
|
||||
[Aura Frame Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/auraframe) \
|
||||
[Castbar Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/castbar) \
|
||||
@ -495,7 +495,7 @@ func sapply_aura() -> void:
|
||||
[Inventory Window Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/bags) \
|
||||
[Crafting Window Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/crafting) \
|
||||
[Loot Window Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/loot_window) \
|
||||
[Talent Window Implemetation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/talents) \
|
||||
[Talent Window Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/talents) \
|
||||
[Spellbook Window Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/spellbook) \
|
||||
[Vendor Window Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/vendor_window) \
|
||||
[Trainer Window Implementation](https://github.com/Relintai/broken_seals/tree/master/game/ui/player/trainer)
|
||||
@ -550,7 +550,7 @@ And an example ui implementation [here](https://github.com/Relintai/broken_seals
|
||||
|
||||
You can set all the xp values for your levels in `ProjectSettings->Ess->xp`.
|
||||
|
||||
Now you can start distributing xp, for whatever you'd like to Entities, using `Entity.xp_adds(vlaue : int)`
|
||||
Now you can start distributing xp, for whatever you'd like to Entities, using `Entity.xp_adds(value : int)`
|
||||
|
||||
## Examples
|
||||
|
||||
|
@ -30,7 +30,7 @@ For future reference it's based on e8ff4e8862735197c3308cfe926eeba68e0d2edb.
|
||||
Porting is mostly done, but it does needs some debugging (it has a crash if smart linking is enabled).
|
||||
|
||||
I might just return to using the original FQMS. As if meshes are merged together using `MeshUtils.merge_mesh_array`, or
|
||||
`bake_mesh_array_uv` the original algortithm will work fine. Still on the fence about it.
|
||||
`bake_mesh_array_uv` the original algorithm will work fine. Still on the fence about it.
|
||||
|
||||
# Building
|
||||
|
||||
|
@ -19,7 +19,7 @@ repo, should you want to. It contains all my modules.
|
||||
|
||||
# PropData
|
||||
|
||||
Props are basicly 3D scenes in a simple format, so other things can easily process them without instancing.
|
||||
Props are basically 3D scenes in a simple format, so other things can easily process them without instancing.
|
||||
|
||||
For example if you create a building from MeshDataInstances, and then convert that scene to a prop, Voxelman
|
||||
can spawn it, merge it's meshes, and create lods without any scene instancing.
|
||||
@ -36,7 +36,7 @@ They contain 4 methods for scene->prop conversion, namely:
|
||||
//Whether or not this PropDataEntry can process the given Node.
|
||||
virtual bool _processor_handles(Node *node);
|
||||
|
||||
//Save the given Node into the given prop_data any way you like, at tranform.
|
||||
//Save the given Node into the given prop_data any way you like, at transform.
|
||||
virtual void _processor_process(Ref<PropData> prop_data, Node *node, const Transform &transform);
|
||||
|
||||
//Turn PropDataEntry back into a Node
|
||||
|
@ -19,7 +19,7 @@ repo, should you want to. It contains all my modules.
|
||||
|
||||
# Prop2DData
|
||||
|
||||
Prop2Ds are basicly 3D scenes in a simple format, so other things can easily process them without instancing.
|
||||
Prop2Ds are basically 3D scenes in a simple format, so other things can easily process them without instancing.
|
||||
|
||||
For example if you create a building from MeshDataInstances, and then convert that scene to a prop, Voxelman
|
||||
can spawn it, merge it's meshes, and create lods without any scene instancing.
|
||||
@ -36,7 +36,7 @@ They contain 4 methods for scene->prop conversion, namely:
|
||||
//Whether or not this Prop2DDataEntry can process the given Node.
|
||||
virtual bool _processor_handles(Node *node);
|
||||
|
||||
//Save the given Node into the given prop_data any way you like, at tranform.
|
||||
//Save the given Node into the given prop_data any way you like, at transform.
|
||||
virtual void _processor_process(Ref<Prop2DData> prop_data, Node *node, const Transform &transform);
|
||||
|
||||
//Turn Prop2DDataEntry back into a Node
|
||||
|
@ -96,7 +96,7 @@ You can write your own algorithm by implementing the ``` void _generate_chunk(ch
|
||||
Producing just a terrain mesh for a chunk is not that hard by itself. However when you start adding layers/features
|
||||
like lod generation, collision meshes (especially since manipulating the physics server is not threadsafe),
|
||||
vertex lights, props, snapping props, props with vertex lights, etc
|
||||
chunk mesh generation can quicly become a serious mess.
|
||||
chunk mesh generation can quickly become a serious mess.
|
||||
|
||||
TerraJobs are meant to solve the issue with less complexity.
|
||||
|
||||
@ -178,7 +178,7 @@ When it starts building meshes it will start submitting jobs to thread_pool (if
|
||||
If you want to implement your own meshing algorithm you can do so by overriding ``` void _add_chunk(chunk: TerraChunk) virtual ```.
|
||||
|
||||
TerraMesher works similarly to SurfaceTool, so first you need to set colors, uvs, etc and then call add_vertex.
|
||||
They won't get reset, so for exaple if you want all your vertices to have a certain color, you can get away with setting it only once.
|
||||
They won't get reset, so for example if you want all your vertices to have a certain color, you can get away with setting it only once.
|
||||
|
||||
## Compiling
|
||||
|
||||
@ -204,7 +204,7 @@ If you want Godot 4.0:
|
||||
|
||||
(the folder needs to be named terraman!)
|
||||
|
||||
4. If you want the optional dependencies run these commands aswell:
|
||||
4. If you want the optional dependencies run these commands as well:
|
||||
|
||||
```git clone https://github.com/Relintai/texture_packer.git texture_packer``` \
|
||||
```git clone https://github.com/Relintai/mesh_data_resource.git mesh_data_resource```
|
||||
|
@ -97,7 +97,7 @@ You can write your own algorithm by implementing the ``` void _generate_chunk(ch
|
||||
Producing just a terrain mesh for a chunk is not that hard by itself. However when you start adding layers/features
|
||||
like lod generation, collision meshes (especially since manipulating the physics server is not threadsafe),
|
||||
vertex lights, props, snapping props, props with vertex lights, etc
|
||||
chunk mesh generation can quicly become a serious mess.
|
||||
chunk mesh generation can quickly become a serious mess.
|
||||
|
||||
TerraJobs are meant to solve the issue with less complexity.
|
||||
|
||||
@ -180,7 +180,7 @@ When it starts building meshes it will start submitting jobs to thread_pool one
|
||||
If you want to implement your own meshing algorithm you can do so by overriding ``` void _add_chunk(chunk: TerraChunk) virtual ```.
|
||||
|
||||
TerraMesher works similarly to SurfaceTool, so first you need to set colors, uvs, etc and then call add_vertex.
|
||||
They won't get reset, so for exaple if you want all your vertices to have a certain color, you can get away with setting it only once.
|
||||
They won't get reset, so for example if you want all your vertices to have a certain color, you can get away with setting it only once.
|
||||
|
||||
## Compiling
|
||||
|
||||
@ -206,7 +206,7 @@ If you want Godot 4.0:
|
||||
|
||||
(the folder needs to be named terraman!)
|
||||
|
||||
4. If you want the optional dependencies run these commands aswell:
|
||||
4. If you want the optional dependencies run these commands as well:
|
||||
|
||||
```git clone https://github.com/Relintai/texture_packer.git texture_packer``` \
|
||||
```git clone https://github.com/Relintai/mesh_data_resource.git mesh_data_resource```
|
||||
|
@ -20,7 +20,7 @@ Contains a job that can run on different threads.
|
||||
A job is only considered finished, if you set the 'complete' property to 'true'. If multiple threads are available,
|
||||
the system will not check for this though, because there is no need.
|
||||
|
||||
If you want to support envioronments that doesn't have threading, you can use:
|
||||
If you want to support environments that doesn't have threading, you can use:
|
||||
|
||||
```
|
||||
bool should_do(const bool just_check = false);
|
||||
@ -31,7 +31,7 @@ For example:
|
||||
|
||||
```
|
||||
func _execute():
|
||||
# On the first run this will return true, on subsequest runs it will return false
|
||||
# On the first run this will return true, on subsequent runs it will return false
|
||||
if should_do():
|
||||
thing1()
|
||||
|
||||
@ -85,7 +85,7 @@ func _execute():
|
||||
|
||||
```
|
||||
|
||||
This class will need litle tweaks, hopefully I can get to is soon.
|
||||
This class will need little tweaks, hopefully I can get to is soon.
|
||||
|
||||
# ThreadPoolExecuteJob
|
||||
|
||||
@ -100,7 +100,7 @@ ThreadPool.create_execute_job(self, "method", arg1, arg2, ...)
|
||||
ThreadPool.create_execute_job_simple(self, "method")
|
||||
```
|
||||
|
||||
This class will need litle tweaks, hopefully I can get to is soon.
|
||||
This class will need little tweaks, hopefully I can get to is soon.
|
||||
|
||||
# ThreadPool singleton
|
||||
|
||||
|
@ -85,7 +85,7 @@ A marching cubes based Voxel World. Actually it uses a modified version of the T
|
||||
|
||||
### VoxelWorldCubic
|
||||
|
||||
This is my own meshing algorithm, it's basicly a Minecraft style mesher that can take isolevel into account.
|
||||
This is my own meshing algorithm, it's basically a Minecraft style mesher that can take isolevel into account.
|
||||
|
||||
It's kind of a pain to use, it might get removed.
|
||||
|
||||
@ -102,7 +102,7 @@ You can write your own algorithm by implementing the ``` void _generate_chunk(ch
|
||||
Producing just a terrain mesh for a chunk is not that hard by itself. However when you start adding layers/features
|
||||
like lod generation, collision meshes (especially since manipulating the physics server is not threadsafe),
|
||||
vertex lights, props, snapping props, props with vertex lights, etc
|
||||
chunk mesh generation can quicly become a serious mess.
|
||||
chunk mesh generation can quickly become a serious mess.
|
||||
|
||||
VoxelJobs are meant to solve the issue with less complexity.
|
||||
|
||||
@ -185,7 +185,7 @@ When it starts building meshes it will start submitting jobs to thread_pool one
|
||||
If you want to implement your own meshing algorithm you can do so by overriding ``` void _add_chunk(chunk: VoxelChunk) virtual ```.
|
||||
|
||||
VoxelMesher works similarly to SurfaceTool, so first you need to set colors, uvs, etc and then call add_vertex.
|
||||
They won't get reset, so for exaple if you want all your vertices to have a certain color, you can get away with setting it only once.
|
||||
They won't get reset, so for example if you want all your vertices to have a certain color, you can get away with setting it only once.
|
||||
|
||||
## Compiling
|
||||
|
||||
@ -211,7 +211,7 @@ If you want Godot 4.0:
|
||||
|
||||
(the folder needs to be named voxelman!)
|
||||
|
||||
4. If you want the optional dependencies run these commands aswell:
|
||||
4. If you want the optional dependencies run these commands as well:
|
||||
|
||||
```git clone https://github.com/Relintai/texture_packer.git texture_packer``` \
|
||||
```git clone https://github.com/Relintai/mesh_data_resource.git mesh_data_resource```
|
||||
|
@ -253,7 +253,7 @@ bool EditorExportPlatform::fill_log_messages(RichTextLabel *p_log, Error p_err)
|
||||
} else {
|
||||
p_log->add_image(EditorNode::get_singleton()->get_gui_base()->get_theme_icon("StatusSuccess", "EditorIcons"), 16 * EDSCALE, 16 * EDSCALE, RichTextLabel::INLINE_ALIGN_CENTER);
|
||||
p_log->add_text(" ");
|
||||
p_log->add_text(TTR("Completed sucessfully."));
|
||||
p_log->add_text(TTR("Completed successfully."));
|
||||
if (msg_count > 0) {
|
||||
has_messages = true;
|
||||
}
|
||||
|
@ -1952,7 +1952,7 @@ void EditorFileSystem::reimport_files(const Vector<String> &p_files) {
|
||||
if (group_file_cache.has(p_files[i])) {
|
||||
//maybe the file itself is a group!
|
||||
groups_to_reimport.insert(p_files[i]);
|
||||
//groups do not belong to grups
|
||||
//groups do not belong to groups
|
||||
group_file = String();
|
||||
} else if (group_file != String()) {
|
||||
//it's a group file, add group to import and skip this file
|
||||
|
@ -940,7 +940,7 @@ void SpatialEditorViewport::_update_name() {
|
||||
}
|
||||
|
||||
if (RoomManager::static_rooms_get_active_and_loaded()) {
|
||||
// TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
|
||||
// TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled.
|
||||
name += TTR(" [portals active]");
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ class SpriteFramesEditor : public HSplitContainer {
|
||||
|
||||
enum {
|
||||
PARAM_USE_CURRENT, // Used in callbacks to indicate `dominant_param` should be not updated.
|
||||
PARAM_FRAME_COUNT, // Keep "Horizontal" & "Vertial" values.
|
||||
PARAM_FRAME_COUNT, // Keep "Horizontal" & "Vertical" values.
|
||||
PARAM_SIZE, // Keep "Size" values.
|
||||
};
|
||||
int dominant_param = PARAM_FRAME_COUNT;
|
||||
|
@ -39,7 +39,7 @@ scons tools=no target=release_debug custom_modules_shared=no debug_symbols=no pl
|
||||
scons tools=no target=release custom_modules_shared=no debug_symbols=no platform=x11 arch=armv7 CCFLAGS="-mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -mlittle-endian -munaligned-access" "$@" . 2>&1 | tee logs/linux_template_r_armhf.log
|
||||
|
||||
# Rename armhf to pi4
|
||||
# Todo think about a better naming convention, especially if FRT is added to the builds aswell
|
||||
# Todo think about a better naming convention, especially if FRT is added to the builds as well
|
||||
|
||||
mv -f bin/pandemonium.x11.opt.armv7 bin/pandemonium.x11.opt.pi4
|
||||
mv -f bin/pandemonium.x11.opt.debug.armv7 bin/pandemonium.x11.opt.debug.pi4
|
||||
|
4
misc/scripts/codespell.sh
Normal file → Executable file
4
misc/scripts/codespell.sh
Normal file → Executable file
@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
SKIP_LIST="./thirdparty,*.gen.*,*.po,*.pot,package-lock.json,./core/string/locales.h,./DONORS.md,./misc/scripts/codespell.sh"
|
||||
IGNORE_LIST="ba,childs,curvelinear,doubleclick,expct,fave,findn,gird,inout,leapyear,lod,nd,numer,ois,readded,ro,statics,te,varn"
|
||||
SKIP_LIST="./.git,./bin,./thirdparty,*.gen.*,*.po,*.pot,package-lock.json,./core/string/locales.h,./DONORS.md,./misc/dist/linux/net.relintai.pandemonium.Pandemonium.desktop,./misc/scripts/codespell.sh,./modules/database_sqlite/sqlite/*,./modules/lz4/thirdparty/*,./modules/web/html/libs/*,./modules/mesh_utils/xatlas/*,./modules/mesh_utils/delaunay/*"
|
||||
IGNORE_LIST="ba,childs,commiting,complies,curvelinear,doubleclick,expct,fave,findn,gird,inout,leapyear,lod,nd,numer,ois,readded,ro,statics,switchs,te,varius,varn,translater,acount,matc,ede"
|
||||
|
||||
codespell -w -q 3 -S "${SKIP_LIST}" -L "${IGNORE_LIST}"
|
||||
|
@ -3,7 +3,7 @@ set -e
|
||||
|
||||
# Run this script form it's own folder
|
||||
|
||||
# Before using this sript, I recommend using:
|
||||
# Before using this script, I recommend using:
|
||||
# pre_release_check_files_present.sh
|
||||
# strip_all.sh
|
||||
|
||||
|
@ -81,7 +81,7 @@
|
||||
<method name="insert">
|
||||
<return type="QueryBuilder" />
|
||||
<argument index="0" name="table_name" type="String" default="""" />
|
||||
<argument index="1" name="colums" type="String" default="""" />
|
||||
<argument index="1" name="columns" type="String" default="""" />
|
||||
<description>
|
||||
</description>
|
||||
</method>
|
||||
|
@ -322,7 +322,7 @@ void QueryBuilder::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("where", "params"), &QueryBuilder::_where_bind, "");
|
||||
ClassDB::bind_method(D_METHOD("from", "params"), &QueryBuilder::_from_bind, "");
|
||||
ClassDB::bind_method(D_METHOD("insert", "table_name", "colums"), &QueryBuilder::_insert_bind, "", "");
|
||||
ClassDB::bind_method(D_METHOD("insert", "table_name", "columns"), &QueryBuilder::_insert_bind, "", "");
|
||||
ClassDB::bind_method(D_METHOD("values", "params_str"), &QueryBuilder::_values_bind, "");
|
||||
ClassDB::bind_method(D_METHOD("val"), &QueryBuilder::_val_bind);
|
||||
ClassDB::bind_method(D_METHOD("vals", "param"), &QueryBuilder::_vals_bind);
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
//Brynet has it aswell, and because of using namespace it is defined here aswell
|
||||
//Brynet has it as well, and because of using namespace it is defined here as well
|
||||
//later this will be fixed better
|
||||
#ifdef IS_NUM
|
||||
#undef IS_NUM
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "database/database.h"
|
||||
|
||||
//Brynet has it aswell, and because of using namespace it is defined here aswell
|
||||
//Brynet has it as well, and because of using namespace it is defined here as well
|
||||
//later this will be fixed better
|
||||
//#ifdef IS_NUM
|
||||
//#undef IS_NUM
|
||||
|
@ -113,7 +113,7 @@ CraftRecipe::CraftRecipe() {
|
||||
}
|
||||
|
||||
CraftRecipe::~CraftRecipe() {
|
||||
//TODO check if the array destrutors actually unref the objects.
|
||||
//TODO check if the array destructors actually unref the objects.
|
||||
|
||||
//_item = Ref<CraftRecipeHelper>(NULL);
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public:
|
||||
int get_model_data_count() const;
|
||||
|
||||
Vector<Variant> get_model_datas();
|
||||
void set_model_datas(const Vector<Variant> &datas);
|
||||
void set_model_datas(const Vector<Variant> &data);
|
||||
|
||||
//Spells
|
||||
Ref<Spell> get_spell(const int index) const;
|
||||
|
@ -778,7 +778,7 @@ void Spell::aura_heal_set(const int min, const int max, const bool can_crit) {
|
||||
aura_heal_set_can_crit(can_crit);
|
||||
}
|
||||
|
||||
//Dispell
|
||||
//Dispel
|
||||
bool Spell::aura_dispell_get_enabled() const {
|
||||
return _aura_dispell_enabled;
|
||||
}
|
||||
@ -2719,7 +2719,7 @@ void Spell::_bind_methods() {
|
||||
|
||||
ADD_GROUP("Spells Cast", "spells_cast_");
|
||||
|
||||
//ADD_GROUP("Caster Aura Applys", "caster_aura_applys");
|
||||
//ADD_GROUP("Caster Aura Applies", "caster_aura_applys");
|
||||
ClassDB::bind_method(D_METHOD("spells_cast_on_caster_num_get"), &Spell::spells_cast_on_caster_num_get);
|
||||
ClassDB::bind_method(D_METHOD("spells_cast_on_caster_num_set", "value"), &Spell::spells_cast_on_caster_num_set);
|
||||
|
||||
@ -2867,7 +2867,7 @@ void Spell::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("heal_set_scale_coeff", "value"), &Spell::heal_set_scale_coeff);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "heal_scale_coeff"), "heal_set_scale_coeff", "heal_get_scale_coeff");
|
||||
|
||||
ADD_GROUP("Dispell", "dispell");
|
||||
ADD_GROUP("Dispel", "dispel");
|
||||
ClassDB::bind_method(D_METHOD("dispell_get_enabled"), &Spell::dispell_get_enabled);
|
||||
ClassDB::bind_method(D_METHOD("dispell_set_enabled", "value"), &Spell::dispell_set_enabled);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "dispell_enabled"), "dispell_set_enabled", "dispell_get_enabled");
|
||||
@ -3084,7 +3084,7 @@ void Spell::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("aura_heal_set_scaling_curve", "curve"), &Spell::aura_heal_set_scaling_curve);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "aura_heal_scaling_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "aura_heal_set_scaling_curve", "aura_heal_get_scaling_curve");
|
||||
|
||||
ADD_GROUP("Aura Dispell", "aura_dispell");
|
||||
ADD_GROUP("Aura Dispel", "aura_dispell");
|
||||
ClassDB::bind_method(D_METHOD("aura_dispell_get_enabled"), &Spell::aura_dispell_get_enabled);
|
||||
ClassDB::bind_method(D_METHOD("aura_dispell_set_enabled", "value"), &Spell::aura_dispell_set_enabled);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "aura_dispell_enabled"), "aura_dispell_set_enabled", "aura_dispell_get_enabled");
|
||||
|
@ -39,14 +39,14 @@
|
||||
<method name="_notification_cstat_changed" qualifiers="virtual">
|
||||
<return type="void" />
|
||||
<argument index="0" name="statid" type="int" />
|
||||
<argument index="1" name="curent" type="float" />
|
||||
<argument index="1" name="current" type="float" />
|
||||
<description>
|
||||
</description>
|
||||
</method>
|
||||
<method name="_notification_sstat_changed" qualifiers="virtual">
|
||||
<return type="void" />
|
||||
<argument index="0" name="statid" type="int" />
|
||||
<argument index="1" name="curent" type="float" />
|
||||
<argument index="1" name="current" type="float" />
|
||||
<description>
|
||||
</description>
|
||||
</method>
|
||||
|
@ -2687,7 +2687,7 @@ void Entity::stake_damage(Ref<SpellDamageInfo> info) {
|
||||
//send it through the onbeforehit handler
|
||||
notification_sdamage(SpellEnums::NOTIFICATION_DAMAGE_BEFORE_DAMAGE, info);
|
||||
|
||||
//send it throug the onhit pipeliine
|
||||
//send it through the onhit pipeliine
|
||||
notification_sdamage(SpellEnums::NOTIFICATION_DAMAGE_HIT, info);
|
||||
|
||||
notification_sdamage(SpellEnums::NOTIFICATION_DAMAGE_RECEIVE, info);
|
||||
|
@ -431,8 +431,8 @@ void EntityResource::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("mods_changed"), &EntityResource::mods_changed);
|
||||
|
||||
BIND_VMETHOD(MethodInfo("_notification_sstat_changed", PropertyInfo(Variant::INT, "statid"), PropertyInfo(Variant::REAL, "curent")));
|
||||
BIND_VMETHOD(MethodInfo("_notification_cstat_changed", PropertyInfo(Variant::INT, "statid"), PropertyInfo(Variant::REAL, "curent")));
|
||||
BIND_VMETHOD(MethodInfo("_notification_sstat_changed", PropertyInfo(Variant::INT, "statid"), PropertyInfo(Variant::REAL, "current")));
|
||||
BIND_VMETHOD(MethodInfo("_notification_cstat_changed", PropertyInfo(Variant::INT, "statid"), PropertyInfo(Variant::REAL, "current")));
|
||||
|
||||
BIND_VMETHOD(MethodInfo("_ons_target_changed", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity"), PropertyInfo(Variant::OBJECT, "old_target", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
|
||||
BIND_VMETHOD(MethodInfo("_onc_target_changed", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity"), PropertyInfo(Variant::OBJECT, "old_target", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
|
||||
|
@ -24,8 +24,8 @@ SOFTWARE.
|
||||
|
||||
const String ItemEnums::BINDING_STRING_RARITY = "None,Common,Uncommon,Superior,Heroic,Mythic,Artifact";
|
||||
const String ItemEnums::BINDING_STRING_RARITY_FLAG = "Common,Uncommon,Superior,Heroic,Mythic,Artifact";
|
||||
const String ItemEnums::BINDING_STRING_ITEM_TYPE = "None,Equipment,Potion,Herb,Ore,Gemstone,Food,Alchemy,Engineering,Enchanting,Tailoring,Recipe,Currency,Bag";
|
||||
const String ItemEnums::BINDING_STRING_ITEM_TYPE_FLAGS = "Equipment,Potion,Herb,Ore,Gemstone,Food,Alchemy,Engineering,Enchanting,Tailoring,Recipe,Currency,Bag";
|
||||
const String ItemEnums::BINDING_STRING_ITEM_TYPE = "None,Equipment,Potion,Herb,Or,Gemstone,Food,Alchemy,Engineering,Enchanting,Tailoring,Recipe,Currency,Bag";
|
||||
const String ItemEnums::BINDING_STRING_ITEM_TYPE_FLAGS = "Equipment,Potion,Herb,Or,Gemstone,Food,Alchemy,Engineering,Enchanting,Tailoring,Recipe,Currency,Bag";
|
||||
const String ItemEnums::BINDING_STRING_ITEM_SUB_TYPE = "None,Sword,Axe,Mace,Dagger,Bow,Crossbow,Gun,Wand,Quest Item";
|
||||
const String ItemEnums::BINDING_STRING_ITEM_SUB_SUB_TYPE = "None,Two Hand,One Hand,Left Hand,Right Hand";
|
||||
const String ItemEnums::BINDING_STRING_ARMOR_TYPE = "None,Cloth,Leather,Mail,Plate";
|
||||
|
@ -24,7 +24,7 @@ SOFTWARE.
|
||||
|
||||
const String SpellEnums::BINDING_STRING_SPELL_TYPES = "Melee,Holy,Shadow,Nature,Fire,Frost,Lightning,Chaos";
|
||||
const String SpellEnums::BINDING_STRING_SPELL_CATEGORY = "Normal,Alchemy,Cooking,Engineering,Crafting,Hidden,Development";
|
||||
const String SpellEnums::BINDING_STRING_TRIGGER_EVENTS = "None,S On Before Damage,S On Damage Receive,S On Hit,S On Damage Dealt,S Aura Remove,S Aura Dispell,S On Before Aura Applied,S On After Aura Applied,C On Aura Added,C On Aura Removed,C On Aura Refreshed";
|
||||
const String SpellEnums::BINDING_STRING_TRIGGER_EVENTS = "None,S On Before Damage,S On Damage Receive,S On Hit,S On Damage Dealt,S Aura Remove,S Aura Dispel,S On Before Aura Applied,S On After Aura Applied,C On Aura Added,C On Aura Removed,C On Aura Refreshed";
|
||||
const String SpellEnums::BINDING_STRING_DAMAGE_TYPES = "Melee,Holy,Shadow,Nature,Fire,Frost,Lightning,Chaos";
|
||||
const String SpellEnums::BINDING_STRING_AURA_TYPES = "None,Magic,Poison,Physical,Curse,Bleed,Talent,Skill";
|
||||
const String SpellEnums::BINDING_STRING_AURA_FLAG_TYPES = "Magic,Poison,Physical,Curse,Bleed,Talent,Skill";
|
||||
|
@ -1827,7 +1827,7 @@ size_t http_parser_execute(http_parser *parser,
|
||||
/* Here we call the headers_complete callback. This is somewhat
|
||||
* different than other callbacks because if the user returns 1, we
|
||||
* will interpret that as saying that this message has no body. This
|
||||
* is needed for the annoying case of recieving a response to a HEAD
|
||||
* is needed for the annoying case of receiving a response to a HEAD
|
||||
* request.
|
||||
*
|
||||
* We'd like to use CALLBACK_NOTIFY_NOADVANCE() here but we cannot, so
|
||||
@ -1934,7 +1934,7 @@ size_t http_parser_execute(http_parser *parser,
|
||||
assert(parser->content_length != 0 && parser->content_length != ULLONG_MAX);
|
||||
|
||||
/* The difference between advancing content_length and p is because
|
||||
* the latter will automaticaly advance on the next loop iteration.
|
||||
* the latter will automatically advance on the next loop iteration.
|
||||
* Further, if content_length ends up at 0, we want to see the last
|
||||
* byte again for our message complete callback.
|
||||
*/
|
||||
@ -2409,7 +2409,7 @@ int http_parser_parse_url(const char *buf, size_t buflen, int is_connect,
|
||||
case s_dead:
|
||||
return 1;
|
||||
|
||||
/* Skip delimeters */
|
||||
/* Skip delimiters */
|
||||
case s_req_schema_slash:
|
||||
case s_req_schema_slash_slash:
|
||||
case s_req_server_start:
|
||||
|
@ -54,7 +54,7 @@ typedef unsigned __int64 uint64_t;
|
||||
# define HTTP_PARSER_STRICT 1
|
||||
#endif
|
||||
|
||||
/* Maximium header size allowed. If the macro is not defined
|
||||
/* Maximum header size allowed. If the macro is not defined
|
||||
* before including this header then the default is used. To
|
||||
* change the maximum header size, define the macro in the build
|
||||
* environment (e.g. -DHTTP_MAX_HEADER_SIZE=<value>). To remove
|
||||
@ -79,7 +79,7 @@ typedef struct http_parser_settings http_parser_settings;
|
||||
* chunked' headers that indicate the presence of a body.
|
||||
*
|
||||
* Returning `2` from on_headers_complete will tell parser that it should not
|
||||
* expect neither a body nor any futher responses on this connection. This is
|
||||
* expect neither a body nor any further responses on this connection. This is
|
||||
* useful for handling responses to a CONNECT request which may not contain
|
||||
* `Upgrade` or `Connection: upgrade` headers.
|
||||
*
|
||||
|
@ -638,7 +638,7 @@ Vector3 MMAlgos::fill_to_uv_square(const Vector2 &coord, const Color &bb, const
|
||||
//in1, color, default vec4($uv.x, 1.0, 1.0, 1.0);
|
||||
//in2, color, default vec4($uv.x, 1.0, 1.0, 1.0);
|
||||
//blend_type, enum, default: 0, Normal,Dissolve,Multiply,Screen,Overlay,Hard Light,Soft Light,Burn,Dodge,Lighten,Darken,Difference;
|
||||
//opactiy, float, min: 0, max: 1, default: 0.5, step: 0.01 (input float);
|
||||
//opacity, float, min: 0, max: 1, default: 0.5, step: 0.01 (input float);
|
||||
//----------------------;
|
||||
//combine.mmg;
|
||||
//----------------------;
|
||||
@ -5066,7 +5066,7 @@ float MMAlgos::shape_rays(const Vector2 &uuv, const float sides, const float siz
|
||||
//tile2x2_variations.mmg;
|
||||
//----------------------;
|
||||
//tiler.mmg;
|
||||
//Tiles several occurences of an input image while adding randomness.;
|
||||
//Tiles several occurrences of an input image while adding randomness.;
|
||||
//vec4 $(name_uv)_rch = tiler_$(name)($uv, vec2($tx, $ty), int($overlap), vec2(float($seed)));
|
||||
//instance;
|
||||
//vec4 tiler_$(name)(vec2 uv, vec2 tile, int overlap, vec2 _seed) {\n\t;
|
||||
@ -5137,7 +5137,7 @@ float MMAlgos::shape_rays(const Vector2 &uuv, const float sides, const float siz
|
||||
//tiler_advanced_color.mmg;
|
||||
//----------------------;
|
||||
//tiler_color.mmg;
|
||||
//Tiles several occurences of an input image while adding randomness.;
|
||||
//Tiles several occurrences of an input image while adding randomness.;
|
||||
//vec3 $(name_uv)_random_color;\n;
|
||||
//vec4 $(name_uv)_tiled_output = tiler_$(name)($uv, vec2($tx, $ty), int($overlap), vec2(float($seed)), $(name_uv)_random_color);
|
||||
//vec4 tiler_$(name)(vec2 uv, vec2 tile, int overlap, vec2 _seed, out vec3 random_color) {\n\t;
|
||||
@ -5233,7 +5233,7 @@ float MMAlgos::shape_rays(const Vector2 &uuv, const float sides, const float siz
|
||||
//custom_uv.mmg;
|
||||
//----------------------;
|
||||
//splatter.mmg;
|
||||
//Spreads several occurences of an input image randomly.;
|
||||
//Spreads several occurrences of an input image randomly.;
|
||||
//vec4 $(name_uv)_rch = splatter_$(name)($uv, int($count), vec2(float($seed)));
|
||||
//vec4 splatter_$(name)(vec2 uv, int count, vec2 seed) {\n\t;
|
||||
// float c = 0.0;\n\t;
|
||||
@ -5285,7 +5285,7 @@ float MMAlgos::shape_rays(const Vector2 &uuv, const float sides, const float siz
|
||||
//4, "pv = CLAMP(0.5*(pv+floor(rand2(seed)*2.0)), vec2(0.0), vec2(1.0));";
|
||||
//16, "pv = CLAMP(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));";
|
||||
//Parameters:;
|
||||
//count, int, default 25, min 1, max 100, - The number of occurences of the input image;
|
||||
//count, int, default 25, min 1, max 100, - The number of occurrences of the input image;
|
||||
//select_inputs (Inputs), enum, default 0, values 1, 4, 16;
|
||||
//tile, Vector2, default 4, min:1, max:64, step:1 - The number of columns of the tiles pattern;
|
||||
//overlap, float, default 1, min 0, max 5, step 1 - The number of neighbour tiles an instance of the input image can overlap. Set this parameter to the lowest value that generates the expected result (where all instances are fully visible) to improve performance.;
|
||||
@ -5295,7 +5295,7 @@ float MMAlgos::shape_rays(const Vector2 &uuv, const float sides, const float siz
|
||||
//value (rnd_value), float, default 0, min 0, max 1, step 0.01;
|
||||
//----------------------;
|
||||
//splatter_color.mmg;
|
||||
//preads several occurences of an input image randomly.;
|
||||
//preads several occurrences of an input image randomly.;
|
||||
//vec4 splatter_$(name)(vec2 uv, int count, vec2 seed) {\n\t;
|
||||
// vec4 c = vec4(0.0);\n\t;
|
||||
//;
|
||||
@ -5341,7 +5341,7 @@ float MMAlgos::shape_rays(const Vector2 &uuv, const float sides, const float siz
|
||||
//4, "pv = CLAMP(0.5*(pv+floor(rand2(seed)*2.0)), vec2(0.0), vec2(1.0));";
|
||||
//16, "pv = CLAMP(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));";
|
||||
//Parameters:;
|
||||
//count, int, default 25, min 1, max 100, - The number of occurences of the input image;
|
||||
//count, int, default 25, min 1, max 100, - The number of occurrences of the input image;
|
||||
//select_inputs (Inputs), enum, default 0, values 1, 4, 16;
|
||||
//tile, Vector2, default 4, min:1, max:64, step:1 - The number of columns of the tiles pattern;
|
||||
//overlap, float, default 1, min 0, max 5, step 1 - The number of neighbour tiles an instance of the input image can overlap. Set this parameter to the lowest value that generates the expected result (where all instances are fully visible) to improve performance.;
|
||||
@ -5352,7 +5352,7 @@ float MMAlgos::shape_rays(const Vector2 &uuv, const float sides, const float siz
|
||||
//variations bool;
|
||||
//----------------------;
|
||||
//circle_splatter.mmg;
|
||||
//Spreads several occurences of an input image in a circle or spiral pattern.;
|
||||
//Spreads several occurrences of an input image in a circle or spiral pattern.;
|
||||
//vec4 $(name_uv)_rch = splatter_$(name)($uv, int($count), int($rings), vec2(float($seed)));
|
||||
//vec4 splatter_$(name)(vec2 uv, int count, int rings, vec2 seed) {\n\t;
|
||||
// float c = 0.0;\n\t;
|
||||
@ -5404,8 +5404,8 @@ float MMAlgos::shape_rays(const Vector2 &uuv, const float sides, const float siz
|
||||
//4, "pv = CLAMP(0.5*(pv+floor(rand2(seed)*2.0)), vec2(0.0), vec2(1.0));";
|
||||
//16, "pv = CLAMP(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));";
|
||||
//Parameters:;
|
||||
//count, int, default 10, min 1, max 256, - The number of occurences of the input image;
|
||||
//rings, int, default 1, min 1, max 16, - The number of occurences of the input image;
|
||||
//count, int, default 10, min 1, max 256, - The number of occurrences of the input image;
|
||||
//rings, int, default 1, min 1, max 16, - The number of occurrences of the input image;
|
||||
//select_inputs (Inputs), enum, default 0, values 1, 4, 16;
|
||||
//scale, Vector2, default 1, min:0, max:2, step:0.01 - "The scale of input images on the X axis;
|
||||
//radius, float, default 0.4, min 0, max 0.5, step 0.01;
|
||||
|
@ -539,7 +539,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
# }
|
||||
# ],
|
||||
# "label": "Gaussian Blur",
|
||||
# "longdesc": "Applys a gaussian blur on its input",
|
||||
# "longdesc": "Applies a gaussian blur on its input",
|
||||
# "name": "gaussian_blur",
|
||||
# "node_position": {
|
||||
# "x": 0,
|
||||
@ -973,7 +973,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
# }
|
||||
# ],
|
||||
# "label": "Slope Blur",
|
||||
# "longdesc": "Applys a blur effect on its input, following slopes of an input height map",
|
||||
# "longdesc": "Applies a blur effect on its input, following slopes of an input height map",
|
||||
# "name": "slope_blur",
|
||||
# "node_position": {
|
||||
# "x": 0,
|
||||
|
@ -448,8 +448,8 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
# "type": "enum",
|
||||
# "values": [
|
||||
# {
|
||||
# "name": "Euclidian",
|
||||
# "value": "euclidian"
|
||||
# "name": "Euclidean",
|
||||
# "value": "euclidean"
|
||||
# },
|
||||
# {
|
||||
# "name": "Manhattan",
|
||||
|
@ -486,7 +486,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
# {
|
||||
# "default": 0,
|
||||
# "label": "",
|
||||
# "longdesc": "The mode decides how the UVs are layed out on each bounding box:\n- Stretch mode where the UV layout is stretched to the bounding box. \n- Square mode where the UV layout is even and centerered based on the longest axis of the bounding box.",
|
||||
# "longdesc": "The mode decides how the UVs are laid out on each bounding box:\n- Stretch mode where the UV layout is stretched to the bounding box. \n- Square mode where the UV layout is even and centerered based on the longest axis of the bounding box.",
|
||||
# "name": "mode",
|
||||
# "shortdesc": "Mode",
|
||||
# "type": "enum",
|
||||
|
@ -469,7 +469,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
# "widget": "param0"
|
||||
# }
|
||||
# ],
|
||||
# "longdesc": "Buffers are used to find the mininum and maximum values for the input image. If the input has small details a higher resolution buffer might be needed to capture precise min and max values.\n\nNote: The output itself will not be buffered.",
|
||||
# "longdesc": "Buffers are used to find the minimum and maximum values for the input image. If the input has small details a higher resolution buffer might be needed to capture precise min and max values.\n\nNote: The output itself will not be buffered.",
|
||||
# "name": "param0",
|
||||
# "shortdesc": "Size",
|
||||
# "type": "linked_control"
|
||||
@ -500,7 +500,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
#in1, color, default vec4($uv.x, 1.0, 1.0, 1.0)
|
||||
#in2, color, default vec4($uv.x, 1.0, 1.0, 1.0)
|
||||
#blend_type, enum, default: 0, Normal,Dissolve,Multiply,Screen,Overlay,Hard Light,Soft Light,Burn,Dodge,Lighten,Darken,Difference
|
||||
#opactiy, float, min: 0, max: 1, default: 0.5, step: 0.01 (input float)
|
||||
#opacity, float, min: 0, max: 1, default: 0.5, step: 0.01 (input float)
|
||||
|
||||
#----------------------
|
||||
#combine.mmg
|
||||
|
@ -1168,7 +1168,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
# "ports": [
|
||||
# {
|
||||
# "group_size": 0,
|
||||
# "longdesc": "The genrated distance field",
|
||||
# "longdesc": "The generated distance field",
|
||||
# "name": "sdf",
|
||||
# "shortdesc": "Output",
|
||||
# "type": "sdf2d"
|
||||
@ -1240,7 +1240,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
# "widget": "tiled"
|
||||
# }
|
||||
# ],
|
||||
# "longdesc": "Controls whether the resulting ditance field will be tiled. Useful for patterns that extend over the texture bounds",
|
||||
# "longdesc": "Controls whether the resulting distance field will be tiled. Useful for patterns that extend over the texture bounds",
|
||||
# "name": "param2",
|
||||
# "shortdesc": "Tiled",
|
||||
# "type": "linked_control"
|
||||
|
@ -80,7 +80,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
|
||||
#----------------------
|
||||
#tiler.mmg
|
||||
#Tiles several occurences of an input image while adding randomness.
|
||||
#Tiles several occurrences of an input image while adding randomness.
|
||||
|
||||
#vec4 $(name_uv)_rch = tiler_$(name)($uv, vec2($tx, $ty), int($overlap), vec2(float($seed)));
|
||||
|
||||
@ -156,7 +156,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
|
||||
#----------------------
|
||||
#tiler_advanced.mmg
|
||||
#Tiles several occurences of an input image while adding randomness.
|
||||
#Tiles several occurrences of an input image while adding randomness.
|
||||
|
||||
# "code": "vec4 $(name_uv)_rch = tiler_$(name)($uv, vec2($tx, $ty), int($overlap), float($seed));",
|
||||
# "inputs": [
|
||||
@ -392,7 +392,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
|
||||
#----------------------
|
||||
#tiler_advanced_color.mmg
|
||||
#Tiles several occurences of an input image while adding randomness.
|
||||
#Tiles several occurrences of an input image while adding randomness.
|
||||
|
||||
# "code": "vec2 $(name_uv)_mapuv;\nvec4 $(name_uv)_rch = tiler_$(name)($uv, vec2($tx, $ty), int($overlap), float($seed), $(name_uv)_mapuv);",
|
||||
# "inputs": [
|
||||
@ -628,7 +628,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
|
||||
#----------------------
|
||||
#tiler_color.mmg
|
||||
#Tiles several occurences of an input image while adding randomness.
|
||||
#Tiles several occurrences of an input image while adding randomness.
|
||||
|
||||
#vec3 $(name_uv)_random_color;\n
|
||||
#vec4 $(name_uv)_tiled_output = tiler_$(name)($uv, vec2($tx, $ty), int($overlap), vec2(float($seed)), $(name_uv)_random_color);
|
||||
|
@ -433,7 +433,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
# "control": "P1.y",
|
||||
# "default": 0,
|
||||
# "label": "Center Y:",
|
||||
# "longdesc": "The poisition of the scale center",
|
||||
# "longdesc": "The position of the scale center",
|
||||
# "max": 1,
|
||||
# "min": -1,
|
||||
# "name": "cy",
|
||||
@ -938,7 +938,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
|
||||
#----------------------
|
||||
#splatter.mmg
|
||||
#Spreads several occurences of an input image randomly.
|
||||
#Spreads several occurrences of an input image randomly.
|
||||
|
||||
#vec4 $(name_uv)_rch = splatter_$(name)($uv, int($count), vec2(float($seed)));
|
||||
|
||||
@ -998,7 +998,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
#16, "pv = clamp(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));"
|
||||
|
||||
#Parameters:
|
||||
#count, int, default 25, min 1, max 100, - The number of occurences of the input image
|
||||
#count, int, default 25, min 1, max 100, - The number of occurrences of the input image
|
||||
#select_inputs (Inputs), enum, default 0, values 1, 4, 16
|
||||
#tile, Vector2, default 4, min:1, max:64, step:1 - The number of columns of the tiles pattern
|
||||
#overlap, float, default 1, min 0, max 5, step 1 - The number of neighbour tiles an instance of the input image can overlap. Set this parameter to the lowest value that generates the expected result (where all instances are fully visible) to improve performance.
|
||||
@ -1009,7 +1009,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
|
||||
#----------------------
|
||||
#splatter_color.mmg
|
||||
#preads several occurences of an input image randomly.
|
||||
#preads several occurrences of an input image randomly.
|
||||
|
||||
#vec4 splatter_$(name)(vec2 uv, int count, vec2 seed) {\n\t
|
||||
# vec4 c = vec4(0.0);\n\t
|
||||
@ -1061,7 +1061,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
#16, "pv = clamp(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));"
|
||||
|
||||
#Parameters:
|
||||
#count, int, default 25, min 1, max 100, - The number of occurences of the input image
|
||||
#count, int, default 25, min 1, max 100, - The number of occurrences of the input image
|
||||
#select_inputs (Inputs), enum, default 0, values 1, 4, 16
|
||||
#tile, Vector2, default 4, min:1, max:64, step:1 - The number of columns of the tiles pattern
|
||||
#overlap, float, default 1, min 0, max 5, step 1 - The number of neighbour tiles an instance of the input image can overlap. Set this parameter to the lowest value that generates the expected result (where all instances are fully visible) to improve performance.
|
||||
@ -1073,7 +1073,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
|
||||
#----------------------
|
||||
#circle_splatter.mmg
|
||||
#Spreads several occurences of an input image in a circle or spiral pattern.
|
||||
#Spreads several occurrences of an input image in a circle or spiral pattern.
|
||||
|
||||
#vec4 $(name_uv)_rch = splatter_$(name)($uv, int($count), int($rings), vec2(float($seed)));
|
||||
|
||||
@ -1133,8 +1133,8 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||
#16, "pv = clamp(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));"
|
||||
|
||||
#Parameters:
|
||||
#count, int, default 10, min 1, max 256, - The number of occurences of the input image
|
||||
#rings, int, default 1, min 1, max 16, - The number of occurences of the input image
|
||||
#count, int, default 10, min 1, max 256, - The number of occurrences of the input image
|
||||
#rings, int, default 1, min 1, max 16, - The number of occurrences of the input image
|
||||
#select_inputs (Inputs), enum, default 0, values 1, 4, 16
|
||||
#scale, Vector2, default 1, min:0, max:2, step:0.01 - "The scale of input images on the X axis
|
||||
#radius, float, default 0.4, min 0, max 0.5, step 0.01
|
||||
|
@ -15,7 +15,7 @@ enum BlendType {
|
||||
DODGE,
|
||||
LIGHTEN,
|
||||
DARKEN,
|
||||
DIFFRENCE
|
||||
DIFFERENCE
|
||||
}
|
||||
|
||||
export(Resource) var image : Resource
|
||||
@ -111,7 +111,7 @@ func get_value_for(uv : Vector2, pseed : int) -> Color:
|
||||
b = Filter.blend_lighten(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a)
|
||||
elif blend_type == BlendType.DARKEN:
|
||||
b = Filter.blend_darken(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a)
|
||||
elif blend_type == BlendType.DIFFRENCE:
|
||||
elif blend_type == BlendType.DIFFERENCE:
|
||||
b = Filter.blend_difference(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a)
|
||||
|
||||
return Color(b.x, b.y, b.z, min(1, s2.a + a * s1.a))
|
||||
|
@ -7,7 +7,7 @@ var SDF2D = preload("res://addons/mat_maker_gd/nodes/common/sdf2d.gd")
|
||||
export(Resource) var input1 : Resource
|
||||
export(Resource) var input2 : Resource
|
||||
export(Resource) var output : Resource
|
||||
export(int, "Union,Substraction,Intersection") var operation : int = 0
|
||||
export(int, "Union,Subtraction,Intersection") var operation : int = 0
|
||||
|
||||
func _init_properties():
|
||||
if !input1:
|
||||
@ -49,7 +49,7 @@ func _register_methods(mm_graph_node) -> void:
|
||||
mm_graph_node.add_slot_label_universal(input2)
|
||||
mm_graph_node.add_slot_label_universal(output)
|
||||
|
||||
mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Substraction", "Intersection" ])
|
||||
mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Subtraction", "Intersection" ])
|
||||
|
||||
func get_property_value(uv : Vector2) -> float:
|
||||
if operation == 0:
|
||||
|
@ -7,7 +7,7 @@ var SDF2D = preload("res://addons/mat_maker_gd/nodes/common/sdf2d.gd")
|
||||
export(Resource) var input1 : Resource
|
||||
export(Resource) var input2 : Resource
|
||||
export(Resource) var output : Resource
|
||||
export(int, "Union,Substraction,Intersection") var operation : int = 0
|
||||
export(int, "Union,Subtraction,Intersection") var operation : int = 0
|
||||
export(float) var smoothness : float = 0.15
|
||||
|
||||
func _init_properties():
|
||||
@ -50,7 +50,7 @@ func _register_methods(mm_graph_node) -> void:
|
||||
mm_graph_node.add_slot_label_universal(input2)
|
||||
mm_graph_node.add_slot_label_universal(output)
|
||||
|
||||
mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Substraction", "Intersection" ])
|
||||
mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Subtraction", "Intersection" ])
|
||||
mm_graph_node.add_slot_float("get_smoothness", "set_smoothness", "Smoothness", 0.01)
|
||||
|
||||
func get_property_value(uv : Vector2) -> float:
|
||||
|
@ -7,7 +7,7 @@ var SDF3D = preload("res://addons/mat_maker_gd/nodes/common/sdf3d.gd")
|
||||
export(Resource) var input1 : Resource
|
||||
export(Resource) var input2 : Resource
|
||||
export(Resource) var output : Resource
|
||||
export(int, "Union,Substraction,Intersection") var operation : int = 0
|
||||
export(int, "Union,Subtraction,Intersection") var operation : int = 0
|
||||
|
||||
func _init_properties():
|
||||
if !input1:
|
||||
@ -49,7 +49,7 @@ func _register_methods(mm_graph_node) -> void:
|
||||
mm_graph_node.add_slot_label_universal(input2)
|
||||
mm_graph_node.add_slot_label_universal(output)
|
||||
|
||||
mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Substraction", "Intersection" ])
|
||||
mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Subtraction", "Intersection" ])
|
||||
|
||||
func get_property_value_sdf3d(uv3 : Vector3) -> Vector2:
|
||||
var s1 : Vector2 = input1.get_value_sdf3d(uv3)
|
||||
|
@ -7,7 +7,7 @@ var SDF3D = preload("res://addons/mat_maker_gd/nodes/common/sdf3d.gd")
|
||||
export(Resource) var input1 : Resource
|
||||
export(Resource) var input2 : Resource
|
||||
export(Resource) var output : Resource
|
||||
export(int, "Union,Substraction,Intersection") var operation : int = 0
|
||||
export(int, "Union,Subtraction,Intersection") var operation : int = 0
|
||||
export(float) var smoothness : float = 0.15
|
||||
|
||||
func _init_properties():
|
||||
@ -50,7 +50,7 @@ func _register_methods(mm_graph_node) -> void:
|
||||
mm_graph_node.add_slot_label_universal(input2)
|
||||
mm_graph_node.add_slot_label_universal(output)
|
||||
|
||||
mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Substraction", "Intersection" ])
|
||||
mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Subtraction", "Intersection" ])
|
||||
mm_graph_node.add_slot_float("get_smoothness", "set_smoothness", "Smoothness", 0.01)
|
||||
|
||||
func get_property_value_sdf3d(uv3 : Vector3) -> Vector2:
|
||||
|
@ -204,7 +204,7 @@ func set_variations(val : bool) -> void:
|
||||
|
||||
#----------------------
|
||||
#color_tiler.mmg
|
||||
#Tiles several occurences of an input image while adding randomness.
|
||||
#Tiles several occurrences of an input image while adding randomness.
|
||||
|
||||
#vec4 tiler_$(name)(vec2 uv, vec2 tile, int overlap, vec2 _seed, out vec3 random_color) {
|
||||
# vec4 c = vec4(0.0);
|
||||
|
@ -211,7 +211,7 @@ func set_variations(val : bool) -> void:
|
||||
|
||||
#----------------------
|
||||
#tiler.mmg
|
||||
#Tiles several occurences of an input image while adding randomness.
|
||||
#Tiles several occurrences of an input image while adding randomness.
|
||||
|
||||
#instance
|
||||
#vec4 tiler_$(name)(vec2 uv, vec2 tile, int overlap, vec2 _seed) {
|
||||
|
@ -88,7 +88,7 @@ void MMSdOpBool::_register_methods(MMGraphNode *mm_graph_node) {
|
||||
|
||||
Array arr;
|
||||
arr.push_back("Union");
|
||||
arr.push_back("Substraction");
|
||||
arr.push_back("Subtraction");
|
||||
arr.push_back("Intersection");
|
||||
|
||||
mm_graph_node->add_slot_enum("get_operation", "set_operation", "Operation", arr);
|
||||
|
@ -35,7 +35,7 @@ protected:
|
||||
Ref<MMNodeUniversalProperty> input1;
|
||||
Ref<MMNodeUniversalProperty> input2;
|
||||
Ref<MMNodeUniversalProperty> output;
|
||||
//export(int, "Union,Substraction,Intersection")
|
||||
//export(int, "Union,Subtraction,Intersection")
|
||||
int operation;
|
||||
};
|
||||
|
||||
|
@ -98,7 +98,7 @@ void MMSdOpSmoothBool::_register_methods(MMGraphNode *mm_graph_node) {
|
||||
|
||||
Array arr;
|
||||
arr.push_back("Union");
|
||||
arr.push_back("Substraction");
|
||||
arr.push_back("Subtraction");
|
||||
arr.push_back("Intersection");
|
||||
|
||||
mm_graph_node->add_slot_enum("get_operation", "set_operation", "Operation", arr);
|
||||
|
@ -38,7 +38,7 @@ protected:
|
||||
Ref<MMNodeUniversalProperty> input1;
|
||||
Ref<MMNodeUniversalProperty> input2;
|
||||
Ref<MMNodeUniversalProperty> output;
|
||||
//export(int, "Union,Substraction,Intersection")
|
||||
//export(int, "Union,Subtraction,Intersection")
|
||||
int operation;
|
||||
float smoothness;
|
||||
};
|
||||
|
@ -87,7 +87,7 @@ void MMSdf3dOpBool::_register_methods(MMGraphNode *mm_graph_node) {
|
||||
|
||||
Array arr;
|
||||
arr.push_back("Union");
|
||||
arr.push_back("Substraction");
|
||||
arr.push_back("Subtraction");
|
||||
arr.push_back("Intersection");
|
||||
|
||||
mm_graph_node->add_slot_enum("get_operation", "set_operation", "Operation", arr);
|
||||
|
@ -35,7 +35,7 @@ protected:
|
||||
Ref<MMNodeUniversalProperty> input1;
|
||||
Ref<MMNodeUniversalProperty> input2;
|
||||
Ref<MMNodeUniversalProperty> output;
|
||||
//export(int, "Union,Substraction,Intersection")
|
||||
//export(int, "Union,Subtraction,Intersection")
|
||||
int operation;
|
||||
};
|
||||
|
||||
|
@ -97,7 +97,7 @@ void MMSdf3dOpSmoothBool::_register_methods(MMGraphNode *mm_graph_node) {
|
||||
|
||||
Array arr;
|
||||
arr.push_back("Union");
|
||||
arr.push_back("Substraction");
|
||||
arr.push_back("Subtraction");
|
||||
arr.push_back("Intersection");
|
||||
|
||||
mm_graph_node->add_slot_enum("get_operation", "set_operation", "Operation", arr);
|
||||
|
@ -38,7 +38,7 @@ protected:
|
||||
Ref<MMNodeUniversalProperty> input1;
|
||||
Ref<MMNodeUniversalProperty> input2;
|
||||
Ref<MMNodeUniversalProperty> output;
|
||||
//export(int, "Union,Substraction,Intersection")
|
||||
//export(int, "Union,Subtraction,Intersection")
|
||||
int operation;
|
||||
float smoothness;
|
||||
};
|
||||
|
@ -231,7 +231,7 @@ Color MMColorTiler::_get_value_for(const Vector2 &uv, const int pseed) {
|
||||
|
||||
//----------------------;
|
||||
//color_tiler.mmg;
|
||||
//Tiles several occurences of an input image while adding randomness.;
|
||||
//Tiles several occurrences of an input image while adding randomness.;
|
||||
//vec4 tiler_$(name)(vec2 uv, vec2 tile, int overlap, vec2 _seed, out vec3 random_color) {;
|
||||
// vec4 c = vec4(0.0);
|
||||
// vec3 rc = vec3(0.0);
|
||||
|
@ -1210,7 +1210,7 @@ void MDIGizmo::extrude() {
|
||||
Vector3 v3 = new_verts[j + 3];
|
||||
|
||||
if (is_verts_equal(v0, v3)) {
|
||||
// +2 offset to 2rd vert
|
||||
// +2 offset to 2nd vert
|
||||
found_verts.append(j + 2);
|
||||
}
|
||||
}
|
||||
@ -1243,7 +1243,7 @@ void MDIGizmo::extrude() {
|
||||
add_mesh_change_undo_redo(orig_arr, arr, "Extrude");
|
||||
enable_change_event();
|
||||
|
||||
// The selection alo will take care of the duplicates
|
||||
// The selection also will take care of the duplicates
|
||||
PoolVector3Array new_handle_points;
|
||||
for (int i = original_size; i < new_verts.size(); i += 4) {
|
||||
Vector3 vavg = new_verts[i + 1];
|
||||
|
@ -355,7 +355,7 @@ void MDREDMeshUtils::add_triangulated_mesh_from_points(Ref<MeshDataResource> mdr
|
||||
merge_in_surface_tool(mdr, st);
|
||||
}
|
||||
|
||||
// Appends a triangle to the mesh. It's created from miroring v2 to the ev0, and ev1 edge
|
||||
// Appends a triangle to the mesh. It's created from mirroring v2 to the ev0, and ev1 edge
|
||||
void MDREDMeshUtils::append_triangle_to_tri_edge(Ref<MeshDataResource> mdr, const Vector3 &ev0, const Vector3 &ev1, const Vector3 &v2) {
|
||||
Vector3 vref = reflect_vertex(ev0, ev1, v2);
|
||||
|
||||
@ -1377,7 +1377,7 @@ Array MDREDMeshUtils::remove_vertices(Array arrays, const PoolIntArray &indices)
|
||||
return arrays;
|
||||
}
|
||||
|
||||
//udpate indices
|
||||
//update indices
|
||||
PoolIntArray arr_indices = arrays[ArrayMesh::ARRAY_INDEX];
|
||||
|
||||
int max_index = find_max(indices);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user