Merge pull request #328 from Excello-Recherche-Education/3.0.1
Merge 3.0.1 into main
@@ -1,6 +1,7 @@
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
from collections import defaultdict, Counter
|
||||
|
||||
|
||||
def split_params(param_string: str):
|
||||
@@ -56,58 +57,164 @@ def split_params(param_string: str):
|
||||
params = [p for p in params if p]
|
||||
return params
|
||||
|
||||
|
||||
EXCLUDED_DIRS = {"addons", ".git", ".github"}
|
||||
EXCLUDED_FILES = {os.path.normpath("script_templates/Node/default.gd")}
|
||||
|
||||
issues = []
|
||||
issues: list = []
|
||||
|
||||
# ─── Messages ────────────────────────────────────────────────────────────────
|
||||
# Structural issue messages. Use {key} for context-specific values.
|
||||
# Naming issues are rendered dynamically (see format_message / SUGGESTION_FN).
|
||||
|
||||
MESSAGES = {
|
||||
'class': 'is a class name and should be in PascalCase',
|
||||
'function': 'is a function name and should be in snake_case',
|
||||
'variable': 'is a variable name and should be in snake_case',
|
||||
'constant': 'is a constant name and should be in UPPER_SNAKE_CASE',
|
||||
'signal': 'is a signal name and should be in snake_case',
|
||||
'annotation_order': 'annotations must be on the first line and include only \@tool, \@icon or \@static_unload',
|
||||
'class_position': 'class_name must appear after annotations (if any)',
|
||||
'extends_position': 'extends must appear after annotation and class_name',
|
||||
'extends_missing': 'extends is required and must follow annotation and class_name',
|
||||
'func_blank': 'functions must be preceded by exactly two empty lines (or only one if preceded by a #region comment)',
|
||||
'signal_position': 'signals must come right after extends',
|
||||
'signal_format': 'signals must end with ()',
|
||||
'signal_blank': 'signals must not be separated by empty lines',
|
||||
'enum_position': 'enums must come after signals and be grouped together',
|
||||
'enum_format': "enum declaration should be 'enum Name {'",
|
||||
'enum_member_blank': 'enum members must not be separated by empty lines',
|
||||
'enum_member_indent': 'enum members must be indented with a single tab',
|
||||
'enum_no_close': 'enum declaration is missing a closing }',
|
||||
'enum_blank': 'enums must be preceded by one empty line and must not be separated by empty lines',
|
||||
'const_position': 'constants must come after enums and be grouped together',
|
||||
'const_blank': 'constants must be preceded by one empty line and must not be separated by empty lines',
|
||||
'static_position': 'static variables must come after constants and be grouped together',
|
||||
'static_blank': 'static variables must be preceded by one empty line and must not be separated by empty lines',
|
||||
'export_position': 'export variables must come after static variables and be grouped together',
|
||||
'export_blank': 'export variables must be preceded by one empty line and must not be separated by empty lines',
|
||||
'var_position': 'variables must come after export variables and be grouped together',
|
||||
'var_blank': 'variables must be preceded by one empty line and must not be separated by empty lines',
|
||||
'onready_position': '@onready variables must come after other variables and be grouped together',
|
||||
'onready_blank': '@onready variables must be preceded by one empty line and must not be separated by empty lines',
|
||||
# File/header structure
|
||||
'annotation_order': "annotation not allowed here: '{found}' — only @tool, @icon or @static_unload are allowed at the top of the file",
|
||||
'class_position': "class_name must appear right after annotations (if any)",
|
||||
'extends_position': "extends must appear after annotations and class_name",
|
||||
'extends_missing': "extends is missing — add 'extends BaseClass' (or 'extends RefCounted' for base classes)",
|
||||
|
||||
# Function spacing
|
||||
'func_blank': "expected 2 blank lines before function (found {found})",
|
||||
|
||||
# Signals
|
||||
'signal_position': "signal found after {after} — expected order: signal > enum > const > static var > @export > var > @onready",
|
||||
'signal_format': "signal must declare parameters with () — found: '{found}'",
|
||||
'signal_blank_extra': "remove blank line between signal declarations — signals must be grouped together",
|
||||
|
||||
# Enums
|
||||
'enum_position': "enum found after {after} — expected order: signal > enum > const > static var > @export > var > @onready",
|
||||
'enum_format': "enum declaration should be 'enum Name {{' — found: '{found}'",
|
||||
'enum_member_blank': "remove blank line between enum members",
|
||||
'enum_member_indent': "enum member must be indented with a single tab — found: '{found}'",
|
||||
'enum_no_close': "enum declaration is missing a closing '}'",
|
||||
'enum_blank_missing': "missing blank line before the enum section",
|
||||
'enum_blank_extra': "remove blank line between enum declarations — enums must be grouped together",
|
||||
|
||||
# Constants
|
||||
'const_position': "const found after {after} — expected order: signal > enum > const > static var > @export > var > @onready",
|
||||
'const_blank_missing': "missing blank line before the const section",
|
||||
'const_blank_extra': "remove blank line between const declarations — constants must be grouped together",
|
||||
|
||||
# Static variables
|
||||
'static_position': "static var found after {after} — expected order: signal > enum > const > static var > @export > var > @onready",
|
||||
'static_blank_missing': "missing blank line before the static var section",
|
||||
'static_blank_extra': "remove blank line between static var declarations — static variables must be grouped together",
|
||||
|
||||
# Export variables
|
||||
'export_position': "@export found after {after} — expected order: signal > enum > const > static var > @export > var > @onready",
|
||||
'export_blank_missing': "missing blank line before the @export section",
|
||||
'export_blank_extra': "remove blank line between @export declarations — export variables must be grouped together",
|
||||
|
||||
# Regular variables
|
||||
'var_position': "var found after {after} — expected order: signal > enum > const > static var > @export > var > @onready",
|
||||
'var_blank_missing': "missing blank line before the var section",
|
||||
'var_blank_extra': "remove blank line between var declarations — variables must be grouped together",
|
||||
|
||||
# @onready variables
|
||||
'onready_position': "@onready var found after {after} — expected order: signal > enum > const > static var > @export > var > @onready",
|
||||
'onready_blank_missing': "missing blank line before the @onready section",
|
||||
'onready_blank_extra': "remove blank line between @onready declarations — @onready variables must be grouped together",
|
||||
}
|
||||
|
||||
# Naming conventions
|
||||
# ─── Naming conventions ───────────────────────────────────────────────────────
|
||||
|
||||
PASCAL_CASE = re.compile(r"^[A-Z][A-Za-z0-9]*$")
|
||||
SNAKE_CASE = re.compile(r"^_?[a-z][a-z0-9_]*$")
|
||||
UPPER_SNAKE_CASE = re.compile(r"^_?[A-Z][A-Z0-9_]*$")
|
||||
REGION_RE = re.compile(r"#\s*(region|endregion)\b", re.IGNORECASE)
|
||||
|
||||
|
||||
def _to_snake_case(name: str) -> str:
|
||||
prefix = '_' if name.startswith('_') else ''
|
||||
core = name.lstrip('_')
|
||||
s = re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', core)
|
||||
s = re.sub(r'([A-Z]+)([A-Z][a-z])', r'\1_\2', s)
|
||||
return prefix + s.lower()
|
||||
|
||||
|
||||
def _to_pascal_case(name: str) -> str:
|
||||
prefix = '_' if name.startswith('_') else ''
|
||||
core = name.lstrip('_')
|
||||
# Split on camelCase boundaries first, then on underscores/spaces
|
||||
# e.g. 'myBadEnum' → 'my_Bad_Enum' → 'MyBadEnum'
|
||||
snake = re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', core)
|
||||
snake = re.sub(r'([A-Z]+)([A-Z][a-z])', r'\1_\2', snake)
|
||||
return prefix + ''.join(w.capitalize() for w in re.split(r'[_\s]+', snake) if w)
|
||||
|
||||
|
||||
def _to_upper_snake_case(name: str) -> str:
|
||||
prefix = '_' if name.startswith('_') else ''
|
||||
core = name.lstrip('_')
|
||||
s = re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', core)
|
||||
s = re.sub(r'([A-Z]+)([A-Z][a-z])', r'\1_\2', s)
|
||||
return prefix + s.upper()
|
||||
|
||||
|
||||
CONVENTION_NAMES: dict[str, str] = {
|
||||
'class': 'PascalCase',
|
||||
'enum_name': 'PascalCase',
|
||||
'enum_member': 'UPPER_SNAKE_CASE',
|
||||
'function': 'snake_case',
|
||||
'variable': 'snake_case',
|
||||
'constant': 'UPPER_SNAKE_CASE',
|
||||
'signal': 'snake_case',
|
||||
}
|
||||
|
||||
SUGGESTION_FN: dict = {
|
||||
'class': _to_pascal_case,
|
||||
'enum_name': _to_pascal_case,
|
||||
'enum_member': _to_upper_snake_case,
|
||||
'function': _to_snake_case,
|
||||
'variable': _to_snake_case,
|
||||
'constant': _to_upper_snake_case,
|
||||
'signal': _to_snake_case,
|
||||
}
|
||||
|
||||
NAMING_KINDS = frozenset({'class', 'enum_name', 'enum_member', 'function', 'variable', 'constant', 'signal'})
|
||||
|
||||
# ─── Naming check ─────────────────────────────────────────────────────────────
|
||||
|
||||
def _check_enum_member(path: str, idx: int, name: str) -> None:
|
||||
"""Flag a single enum member name if it is not UPPER_SNAKE_CASE."""
|
||||
if name and not UPPER_SNAKE_CASE.match(name):
|
||||
issues.append((path, idx, 'enum_member', name))
|
||||
|
||||
|
||||
def check_naming(path: str, lines: list[str]):
|
||||
in_enum = False # True while scanning the body of a multi-line enum
|
||||
|
||||
for idx, line in enumerate(lines, 1):
|
||||
stripped = line.strip()
|
||||
if stripped.startswith('#') or stripped.startswith('@warning_ignore(') or not stripped:
|
||||
continue
|
||||
|
||||
# ── Enum-body lines ────────────────────────────────────────────────────
|
||||
if in_enum:
|
||||
close = stripped.find('}')
|
||||
if close != -1:
|
||||
in_enum = False
|
||||
# Any identifiers before the closing brace on this line
|
||||
before = stripped[:close]
|
||||
for part in before.split(','):
|
||||
m = re.match(r"\s*([A-Za-z0-9_]+)", part)
|
||||
if m:
|
||||
_check_enum_member(path, idx, m.group(1))
|
||||
else:
|
||||
# One (or more) members on this line: "NAME," or "NAME = val,"
|
||||
for part in stripped.split(','):
|
||||
m = re.match(r"\s*([A-Za-z0-9_]+)", part)
|
||||
if m:
|
||||
_check_enum_member(path, idx, m.group(1))
|
||||
continue
|
||||
# ── End enum-body ──────────────────────────────────────────────────────
|
||||
|
||||
match_class = re.match(r"class_name\s+([A-Za-z0-9_]+)", stripped)
|
||||
if match_class:
|
||||
name = match_class.group(1)
|
||||
if not PASCAL_CASE.match(name):
|
||||
issues.append((path, idx, 'class', name))
|
||||
|
||||
match_func = re.match(r"(?:static\s+)?func\s+([A-Za-z0-9_]+)\s*(\([^)]*\))?", stripped)
|
||||
if match_func:
|
||||
name = match_func.group(1)
|
||||
@@ -120,51 +227,82 @@ def check_naming(path: str, lines: list[str]):
|
||||
param_name = param.split(':')[0].split('=')[0].strip()
|
||||
if param_name and not SNAKE_CASE.match(param_name):
|
||||
issues.append((path, idx, 'variable', param_name))
|
||||
match_export = re.match(r"(?:@export\s+)?var\s+([A-Za-z0-9_]+)", stripped)
|
||||
if match_export:
|
||||
name = match_export.group(1)
|
||||
|
||||
# Match variable declarations with any annotation/modifier prefix.
|
||||
# Handles: var, static var, @export var, @export_range(...) var,
|
||||
# @export_multiline var, @onready var, etc.
|
||||
# Does NOT match annotation-only lines like @export_category("Difficulty").
|
||||
match_var = re.match(r"(?:(?:static|@\w+(?:\([^)]*\))?)\s+)*var\s+([A-Za-z0-9_]+)", stripped)
|
||||
if match_var:
|
||||
name = match_var.group(1)
|
||||
if not SNAKE_CASE.match(name):
|
||||
issues.append((path, idx, 'variable', name))
|
||||
|
||||
match_const = re.match(r"const\s+([A-Za-z0-9_]+)", stripped)
|
||||
if match_const:
|
||||
name = match_const.group(1)
|
||||
if not UPPER_SNAKE_CASE.match(name):
|
||||
issues.append((path, idx, 'constant', name))
|
||||
|
||||
match_enum = re.match(r"enum\s+([A-Za-z0-9_]+)", stripped)
|
||||
if match_enum:
|
||||
name = match_enum.group(1)
|
||||
if not PASCAL_CASE.match(name):
|
||||
issues.append((path, idx, 'enum_name', name))
|
||||
# Determine whether the enum body is inline or multi-line
|
||||
brace = stripped.find('{')
|
||||
if brace != -1:
|
||||
rest = stripped[brace + 1:]
|
||||
close = rest.find('}')
|
||||
if close != -1:
|
||||
# Inline enum — check members immediately
|
||||
for part in rest[:close].split(','):
|
||||
m = re.match(r"\s*([A-Za-z0-9_]+)", part)
|
||||
if m:
|
||||
_check_enum_member(path, idx, m.group(1))
|
||||
else:
|
||||
# Body continues on following lines
|
||||
in_enum = True
|
||||
|
||||
match_signal = re.match(r"signal\s+([A-Za-z0-9_]+)", stripped)
|
||||
if match_signal:
|
||||
name = match_signal.group(1)
|
||||
if not SNAKE_CASE.match(name):
|
||||
issues.append((path, idx, 'signal', name))
|
||||
|
||||
match_for = re.match(r"for\s+([A-Za-z0-9_]+)(?:\s*:\s*[^\s]+)?\s+in\b", stripped)
|
||||
if match_for:
|
||||
name = match_for.group(1)
|
||||
if not SNAKE_CASE.match(name):
|
||||
issues.append((path, idx, 'variable', name))
|
||||
|
||||
# Content order
|
||||
|
||||
# ─── Content order check ──────────────────────────────────────────────────────
|
||||
|
||||
ANNOTATION_LINE_RE = re.compile(
|
||||
r"^(?:@(tool|icon|static_unload)(?:\([^\n]*\))?)(?:,\s*@(tool|icon|static_unload)(?:\([^\n]*\))?)*$"
|
||||
)
|
||||
ALLOWED_ANNOTATION_RE = re.compile(r"@(tool|icon|static_unload)\b")
|
||||
|
||||
|
||||
def check_content_order(path: str, lines: list[str]):
|
||||
content = [
|
||||
(line.rstrip('\n'), idx)
|
||||
for idx, line in enumerate(lines, 1)
|
||||
if not line.startswith(' ') # Line is not indented
|
||||
if not line.startswith(' ') # Line is not indented (tab character)
|
||||
and not line.lstrip().startswith('#')
|
||||
and not line.lstrip().startswith('@warning_ignore(')
|
||||
]
|
||||
idx = 0
|
||||
n = len(content)
|
||||
|
||||
# 1) annotations
|
||||
# 1) Annotations (@tool / @icon / @static_unload must be first)
|
||||
if idx < n and ANNOTATION_LINE_RE.fullmatch(content[idx][0].strip()):
|
||||
idx += 1
|
||||
else:
|
||||
for j in range(idx, n):
|
||||
if ALLOWED_ANNOTATION_RE.search(content[j][0]):
|
||||
issues.append((path, content[j][1], 'annotation_order', content[j][0].strip()))
|
||||
issues.append((path, content[j][1], 'annotation_order', {'found': content[j][0].strip()}))
|
||||
break
|
||||
|
||||
# 2) class_name (optional)
|
||||
@@ -176,24 +314,27 @@ def check_content_order(path: str, lines: list[str]):
|
||||
idx += 1
|
||||
break
|
||||
|
||||
# 3) extends (required)
|
||||
# 3) extends (recommended; missing is flagged but does not block ordering checks)
|
||||
extends_pos = None
|
||||
for j in range(idx, n):
|
||||
if content[j][0].strip().startswith('extends'):
|
||||
extends_pos = j
|
||||
break
|
||||
|
||||
if extends_pos is None:
|
||||
issues.append((path, 0, 'extends_missing', 'extends'))
|
||||
return
|
||||
# Don't return — continue ordering checks from current position
|
||||
prev_token: str = content[idx - 1][0].strip() if idx > 0 else ''
|
||||
else:
|
||||
if extends_pos != idx:
|
||||
issues.append((path, content[extends_pos][1], 'extends_position', 'extends'))
|
||||
idx = extends_pos + 1
|
||||
prev_token = content[extends_pos][0].strip()
|
||||
|
||||
order = ['signal', 'enum', 'const', 'static var', '@export', 'var', '@onready var']
|
||||
order_index = {name: i for i, name in enumerate(order)}
|
||||
seen: set[str] = set()
|
||||
current_order = -1
|
||||
prev_token: str | None = content[extends_pos][0].strip()
|
||||
j = idx
|
||||
while j < n:
|
||||
line, line_no = content[j]
|
||||
@@ -208,27 +349,27 @@ def check_content_order(path: str, lines: list[str]):
|
||||
if stripped.startswith('signal'):
|
||||
token = 'signal'
|
||||
if not re.fullmatch(r"signal\s+\w+\([^)]*\)", stripped):
|
||||
issues.append((path, line_no, 'signal_format', stripped))
|
||||
issues.append((path, line_no, 'signal_format', {'found': stripped}))
|
||||
if 'signal' in seen and prev_token == '':
|
||||
issues.append((path, content[j - 1][1], 'signal_blank', 'signal'))
|
||||
issues.append((path, content[j - 1][1], 'signal_blank_extra', 'signal'))
|
||||
seen.add('signal')
|
||||
elif stripped.startswith('enum'):
|
||||
token = 'enum'
|
||||
if not re.fullmatch(r"enum\s+\w+\s*{", stripped):
|
||||
issues.append((path, line_no, 'enum_format', stripped))
|
||||
issues.append((path, line_no, 'enum_format', {'found': stripped}))
|
||||
if 'enum' not in seen:
|
||||
if prev_token != '':
|
||||
issues.append((path, line_no, 'enum_blank', 'enum'))
|
||||
issues.append((path, line_no, 'enum_blank_missing', 'enum'))
|
||||
else:
|
||||
if prev_token != '}' and prev_token != ']':
|
||||
issues.append((path, line_no, 'enum_blank', 'enum'))
|
||||
issues.append((path, line_no, 'enum_blank_extra', 'enum'))
|
||||
k = j + 1
|
||||
while k < n and content[k][0].strip() != '}':
|
||||
member, m_line_no = content[k]
|
||||
if member.strip() == '':
|
||||
issues.append((path, m_line_no, 'enum_member_blank', 'enum'))
|
||||
if not member.startswith('\t') or member.startswith('\t\t'):
|
||||
issues.append((path, m_line_no, 'enum_member_indent', member.strip()))
|
||||
issues.append((path, m_line_no, 'enum_member_indent', {'found': member.strip()}))
|
||||
k += 1
|
||||
if k >= n:
|
||||
issues.append((path, line_no, 'enum_no_close', 'enum'))
|
||||
@@ -238,7 +379,8 @@ def check_content_order(path: str, lines: list[str]):
|
||||
seen.add('enum')
|
||||
curr_order = order_index['enum']
|
||||
if curr_order < current_order:
|
||||
issues.append((path, line_no, 'enum_position', 'enum'))
|
||||
after_token = order[current_order]
|
||||
issues.append((path, line_no, 'enum_position', {'after': after_token}))
|
||||
else:
|
||||
current_order = max(current_order, curr_order)
|
||||
j += 1
|
||||
@@ -247,51 +389,52 @@ def check_content_order(path: str, lines: list[str]):
|
||||
token = 'const'
|
||||
if 'const' not in seen:
|
||||
if prev_token != '':
|
||||
issues.append((path, line_no, 'const_blank', 'const'))
|
||||
issues.append((path, line_no, 'const_blank_missing', 'const'))
|
||||
else:
|
||||
if prev_token != 'const' and prev_token != '}' and prev_token != ']':
|
||||
issues.append((path, line_no, 'const_blank', 'const'))
|
||||
issues.append((path, line_no, 'const_blank_extra', 'const'))
|
||||
seen.add('const')
|
||||
elif stripped.startswith('static var '):
|
||||
token = 'static var'
|
||||
if 'static var' not in seen:
|
||||
if prev_token != '':
|
||||
issues.append((path, line_no, 'static_blank', 'static var'))
|
||||
issues.append((path, line_no, 'static_blank_missing', 'static var'))
|
||||
else:
|
||||
if prev_token != 'static var' and prev_token != '}' and prev_token != ']':
|
||||
issues.append((path, line_no, 'static_blank', 'static var'))
|
||||
issues.append((path, line_no, 'static_blank_extra', 'static var'))
|
||||
seen.add('static var')
|
||||
elif stripped.startswith('@export'):
|
||||
token = '@export'
|
||||
if '@export' not in seen:
|
||||
if prev_token != '':
|
||||
issues.append((path, line_no, 'export_blank', '@export'))
|
||||
issues.append((path, line_no, 'export_blank_missing', '@export'))
|
||||
else:
|
||||
if prev_token != '@export' and prev_token != '}' and prev_token != ']':
|
||||
issues.append((path, line_no, 'export_blank', '@export'))
|
||||
issues.append((path, line_no, 'export_blank_extra', '@export'))
|
||||
seen.add('@export')
|
||||
elif stripped.startswith('var '):
|
||||
token = 'var'
|
||||
if 'var' not in seen:
|
||||
if prev_token != '':
|
||||
issues.append((path, line_no, 'var_blank', 'var'))
|
||||
issues.append((path, line_no, 'var_blank_missing', 'var'))
|
||||
else:
|
||||
if prev_token != 'var' and prev_token != '}' and prev_token != ']':
|
||||
issues.append((path, line_no, 'var_blank', 'var'))
|
||||
issues.append((path, line_no, 'var_blank_extra', 'var'))
|
||||
seen.add('var')
|
||||
elif stripped.startswith('@onready var '):
|
||||
token = '@onready var'
|
||||
if '@onready var' not in seen:
|
||||
if prev_token != '':
|
||||
issues.append((path, line_no, 'onready_blank', '@onready var'))
|
||||
issues.append((path, line_no, 'onready_blank_missing', '@onready var'))
|
||||
else:
|
||||
if prev_token != '@onready var' and prev_token != '}' and prev_token != ']':
|
||||
issues.append((path, line_no, 'onready_blank', '@onready var'))
|
||||
issues.append((path, line_no, 'onready_blank_extra', '@onready var'))
|
||||
seen.add('@onready var')
|
||||
else:
|
||||
prev_token = stripped
|
||||
j += 1
|
||||
continue
|
||||
|
||||
curr_order = order_index[token]
|
||||
key_map = {
|
||||
'signal': 'signal_position',
|
||||
@@ -303,7 +446,8 @@ def check_content_order(path: str, lines: list[str]):
|
||||
'@onready var': 'onready_position',
|
||||
}
|
||||
if curr_order < current_order:
|
||||
issues.append((path, line_no, key_map[token], token))
|
||||
after_token = order[current_order]
|
||||
issues.append((path, line_no, key_map[token], {'after': after_token}))
|
||||
else:
|
||||
current_order = max(current_order, curr_order)
|
||||
|
||||
@@ -311,7 +455,8 @@ def check_content_order(path: str, lines: list[str]):
|
||||
j += 1
|
||||
|
||||
|
||||
# Spacing for functions
|
||||
# ─── Function spacing check ───────────────────────────────────────────────────
|
||||
|
||||
def check_func_spacing(path: str):
|
||||
with open(path, 'r', encoding='utf-8') as file:
|
||||
lines = file.readlines()
|
||||
@@ -348,14 +493,15 @@ def check_func_spacing(path: str):
|
||||
region_above = test_index >= 0 and REGION_RE.match(lines[test_index].lstrip())
|
||||
if region_above:
|
||||
if blank_count > 1:
|
||||
issues.append((path, idx + 1, 'func_blank', 'func'))
|
||||
issues.append((path, idx + 1, 'func_blank', {'found': blank_count}))
|
||||
continue
|
||||
elif blank_count != 2:
|
||||
if not (blank_count == 1 and test_index >= 0 and lines[test_index].lstrip().startswith('#region')):
|
||||
issues.append((path, idx + 1, 'func_blank', 'func'))
|
||||
issues.append((path, idx + 1, 'func_blank', {'found': blank_count}))
|
||||
|
||||
|
||||
# Main function
|
||||
# ─── Main ─────────────────────────────────────────────────────────────────────
|
||||
|
||||
for root, dirs, files in os.walk('.', topdown=True):
|
||||
rel_root = os.path.relpath(root, '.')
|
||||
if any(rel_root == excluded or rel_root.startswith(f"{excluded}{os.sep}") for excluded in EXCLUDED_DIRS):
|
||||
@@ -378,15 +524,95 @@ for root, dirs, files in os.walk('.', topdown=True):
|
||||
check_content_order(path, lines)
|
||||
check_func_spacing(path)
|
||||
|
||||
if issues:
|
||||
print("### \u274c GDScript Naming Convention Check Failed\n")
|
||||
print(f"The project must follow Godot GDScript naming conventions.\nTotal issues: {len(issues)}\n")
|
||||
for path, idx, kind, name in issues:
|
||||
|
||||
# ─── Output ───────────────────────────────────────────────────────────────────
|
||||
|
||||
ORDERING_KINDS = frozenset({
|
||||
'annotation_order', 'class_position', 'extends_position', 'extends_missing',
|
||||
'signal_position', 'enum_position', 'const_position', 'static_position',
|
||||
'export_position', 'var_position', 'onready_position',
|
||||
})
|
||||
FORMATTING_KINDS = frozenset({
|
||||
'func_blank',
|
||||
'signal_format', 'signal_blank_extra',
|
||||
'enum_format', 'enum_blank_missing', 'enum_blank_extra',
|
||||
'enum_member_blank', 'enum_member_indent', 'enum_no_close',
|
||||
'const_blank_missing', 'const_blank_extra',
|
||||
'static_blank_missing', 'static_blank_extra',
|
||||
'export_blank_missing', 'export_blank_extra',
|
||||
'var_blank_missing', 'var_blank_extra',
|
||||
'onready_blank_missing', 'onready_blank_extra',
|
||||
})
|
||||
|
||||
|
||||
def categorize(kind: str) -> str:
|
||||
if kind in NAMING_KINDS:
|
||||
return 'naming'
|
||||
if kind in ORDERING_KINDS:
|
||||
return 'ordering'
|
||||
if kind in FORMATTING_KINDS:
|
||||
return 'formatting'
|
||||
return 'other'
|
||||
|
||||
|
||||
_KIND_LABEL: dict[str, str] = {
|
||||
'class': 'class names',
|
||||
'enum_name': 'enum names',
|
||||
'enum_member': 'enum member names',
|
||||
'function': 'function names',
|
||||
'variable': 'variable names',
|
||||
'constant': 'constant names',
|
||||
'signal': 'signal names',
|
||||
}
|
||||
|
||||
|
||||
def format_message(kind: str, data) -> str:
|
||||
if kind in NAMING_KINDS:
|
||||
suggestion = SUGGESTION_FN[kind](data)
|
||||
conv = CONVENTION_NAMES[kind]
|
||||
label = _KIND_LABEL.get(kind, f"{kind}s")
|
||||
return f"'{data}' should be '{suggestion}' ({label} must be {conv})"
|
||||
if kind == 'error':
|
||||
message = name
|
||||
else:
|
||||
message = f"'{name}' {MESSAGES[kind]}"
|
||||
print(f"- `{path}:{idx}` {message}")
|
||||
return str(data)
|
||||
template = MESSAGES.get(kind, kind)
|
||||
if isinstance(data, dict):
|
||||
return template.format(**data)
|
||||
return template
|
||||
|
||||
|
||||
if not issues:
|
||||
print("✅ All GDScript files follow the naming conventions.")
|
||||
sys.exit(0)
|
||||
|
||||
# Group issues by file, sort by line number within each file
|
||||
by_file: dict = defaultdict(list)
|
||||
counts: Counter = Counter()
|
||||
for path, line_no, kind, data in issues:
|
||||
by_file[path].append((line_no, kind, data))
|
||||
counts[categorize(kind)] += 1
|
||||
|
||||
total = len(issues)
|
||||
file_count = len(by_file)
|
||||
|
||||
summary_parts = []
|
||||
for cat in ('naming', 'ordering', 'formatting', 'other'):
|
||||
if counts[cat]:
|
||||
summary_parts.append(f"{counts[cat]} {cat}")
|
||||
summary = ', '.join(summary_parts)
|
||||
|
||||
print(f"### ❌ GDScript Naming Convention Check Failed\n")
|
||||
print(f"**{total} issue{'s' if total != 1 else ''}** in {file_count} file{'s' if file_count != 1 else ''} ({summary})\n")
|
||||
|
||||
for fpath in sorted(by_file):
|
||||
file_issues = sorted(by_file[fpath], key=lambda x: x[0])
|
||||
count = len(file_issues)
|
||||
print("<details>")
|
||||
print(f"<summary><code>{fpath}</code> — {count} issue{'s' if count != 1 else ''}</summary>\n")
|
||||
print("| Line | Issue |")
|
||||
print("|------|-------|")
|
||||
for line_no, kind, data in file_issues:
|
||||
msg = format_message(kind, data)
|
||||
print(f"| {line_no} | {msg} |")
|
||||
print("\n</details>\n")
|
||||
|
||||
sys.exit(1)
|
||||
else:
|
||||
print("\u2705 All GDScript files follow the naming conventions.")
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
permissions:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run GDScript naming convention check
|
||||
id: naming
|
||||
run: |
|
||||
|
||||
@@ -53,11 +53,11 @@ Cada lección sigue una progresión lógica basada en datos lingüísticos extra
|
||||
|
||||
```bash
|
||||
# Clona tu fork del repositorio
|
||||
git clone https://github.com/TU_USUARIO/Kalulu.git
|
||||
git clone https://github.com/TU_USUARIO/Kalulu-Frontend.git
|
||||
# O bien
|
||||
git clone git@github.com:YOUR_USERNAME/Kalulu.git
|
||||
git clone git@github.com:YOUR_USERNAME/Kalulu-Frontend.git
|
||||
|
||||
cd Kalulu
|
||||
cd Kalulu-Frontend
|
||||
```
|
||||
|
||||
🔁 _Reemplaza `TU_USUARIO` con tu nombre de usuario._
|
||||
@@ -113,13 +113,17 @@ Asegúrate de que tu código siga nuestras convenciones de codificación e inclu
|
||||
|
||||
## ❓ FAQ
|
||||
|
||||
### 📱 O Kalulu está disponível para dispositivos móveis?
|
||||
### 📱 ¿Está Kalulu disponible en móviles?
|
||||
|
||||
Sim! Kalulu está disponível para:
|
||||
¡Sí! Kalulu está disponible para:
|
||||
|
||||
- [](https://play.google.com/store/apps/details?id=org.godotengine.kalulu)
|
||||
- [](https://apps.apple.com/fr/app/kalulu-education/id1639075967)
|
||||
|
||||
### 💻 Existe uma versão para computador?
|
||||
### 💻 ¿Está Kalulu disponible en escritorio?
|
||||
|
||||
Uma versão experimental para Windows, Mac e Linux está em desenvolvimento. Fique ligado!
|
||||
¡Sí! Las versiones para Windows, Mac y Linux están disponibles en la sección [Releases](https://github.com/Excello-Recherche-Education/Kalulu-Frontend/releases).
|
||||
|
||||
### 🌐 ¿Está Kalulu disponible directamente en la web?
|
||||
|
||||
¡Estamos trabajando en ello, mantente atento!
|
||||
|
||||
@@ -53,11 +53,11 @@ Chaque leçon suit une séquence structurée basée sur des données linguistiqu
|
||||
|
||||
```bash
|
||||
# Clonez votre fork du dépôt
|
||||
git clone https://github.com/VOTRE_UTILISATEUR/Kalulu.git
|
||||
git clone https://github.com/VOTRE_UTILISATEUR/Kalulu-Frontend.git
|
||||
# Ou
|
||||
git clone git@github.com:YOUR_USERNAME/Kalulu.git
|
||||
git clone git@github.com:YOUR_USERNAME/Kalulu-Frontend.git
|
||||
|
||||
cd Kalulu
|
||||
cd Kalulu-Frontend
|
||||
```
|
||||
|
||||
🔁 _Remplacez `VOTRE_UTILISATEUR` par votre nom d'utilisateur GitHub._
|
||||
@@ -120,6 +120,10 @@ Oui ! Kalulu est disponible pour :
|
||||
- [](https://play.google.com/store/apps/details?id=org.godotengine.kalulu)
|
||||
- [](https://apps.apple.com/fr/app/kalulu-education/id1639075967)
|
||||
|
||||
### 💻 Existe-t-il une version pour ordinateur ?
|
||||
### 💻 Kalulu est-il disponible sur ordinateur ?
|
||||
|
||||
Une version pour Windows, Mac et Linux est en cours de développement expérimental. Restez à l’écoute !
|
||||
Oui ! Des versions pour Windows, Mac et Linux sont disponibles dans la section [Releases](https://github.com/Excello-Recherche-Education/Kalulu-Frontend/releases).
|
||||
|
||||
### 🌐 Kalulu est-il disponible directement sur le web ?
|
||||
|
||||
Nous y travaillons, restez à l’écoute !
|
||||
|
||||
@@ -51,18 +51,18 @@ Each lesson follows a structured sequence based on linguistic data drawn from ch
|
||||
|
||||
We recommend forking the repository before cloning, so you can easily contribute or manage your own changes.
|
||||
|
||||
1. Go to the [Kalulu GitHub Repository](https://github.com/Excello-Recherche-Education/Kalulu).
|
||||
1. Go to the [Kalulu GitHub Repository](https://github.com/Excello-Recherche-Education/Kalulu-Frontend).
|
||||
2. Click the **Fork** button at the top-right corner to create your own copy of the repo.
|
||||
3. Once forked, open your terminal and run the following commands:
|
||||
|
||||
```bash
|
||||
# Clone your fork of the repository
|
||||
git clone https://github.com/YOUR_USERNAME/Kalulu.git
|
||||
git clone https://github.com/YOUR_USERNAME/Kalulu-Frontend.git
|
||||
# Or
|
||||
git clone git@github.com:YOUR_USERNAME/Kalulu.git
|
||||
git clone git@github.com:YOUR_USERNAME/Kalulu-Frontend.git
|
||||
|
||||
# Navigate into the project directory
|
||||
cd Kalulu
|
||||
cd Kalulu-Frontend
|
||||
```
|
||||
|
||||
🔁 *Remember to replace `YOUR_USERNAME` with your actual GitHub username.*
|
||||
@@ -141,9 +141,13 @@ Yes! Kalulu is available on:
|
||||
- [](https://play.google.com/store/apps/details?id=org.godotengine.kalulu)
|
||||
- [](https://apps.apple.com/fr/app/kalulu-education/id1639075967)
|
||||
|
||||
### 💻 Is there a desktop version?
|
||||
### 💻 Is Kalulu available on desktop?
|
||||
|
||||
An experimental version for Windows, Mac, and Linux is currently in development. Stay tuned!
|
||||
Yes! Desktop versions for Windows, Mac, and Linux are available in the [Releases](https://github.com/Excello-Recherche-Education/Kalulu-Frontend/releases) section.
|
||||
|
||||
### 🌐 Is Kalulu available directly on the web?
|
||||
|
||||
We are working on it, stay tuned!
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- [2. Instalar o Godot Engine](#2-instalar-o-godot-engine)
|
||||
- [🧩 Addons inclusos](#-addons-inclusos)
|
||||
- [🤝 Quer ajudar?](#-quer-ajudar-)
|
||||
- [❓ Preguntas Frecuentes](#faq)
|
||||
- [❓ Perguntas Frequentes](#faq)
|
||||
|
||||
---
|
||||
|
||||
@@ -51,11 +51,11 @@ Cada lição segue uma sequência estruturada com base em dados da literatura in
|
||||
|
||||
```bash
|
||||
# Clone o seu fork do repositório
|
||||
git clone https://github.com/SEU_USUARIO/Kalulu.git
|
||||
git clone https://github.com/SEU_USUARIO/Kalulu-Frontend.git
|
||||
# Ou então
|
||||
git clone git@github.com:YOUR_USERNAME/Kalulu.git
|
||||
git clone git@github.com:YOUR_USERNAME/Kalulu-Frontend.git
|
||||
|
||||
cd Kalulu
|
||||
cd Kalulu-Frontend
|
||||
```
|
||||
|
||||
🔁 _Substitua `SEU_USUARIO` pelo seu nome de usuário._
|
||||
@@ -111,13 +111,17 @@ Certifique-se de que seu código siga nossas convenções de codificação e inc
|
||||
|
||||
## ❓ FAQ
|
||||
|
||||
### 📱 ¿Está Kalulu disponible en móviles?
|
||||
### 📱 O Kalulu está disponível para dispositivos móveis?
|
||||
|
||||
¡Sí! Kalulu está disponible para:
|
||||
Sim! Kalulu está disponível para:
|
||||
|
||||
- [](https://play.google.com/store/apps/details?id=org.godotengine.kalulu)
|
||||
- [](https://apps.apple.com/fr/app/kalulu-education/id1639075967)
|
||||
|
||||
### 💻 ¿Existe una versión para ordenadores?
|
||||
### 💻 O Kalulu está disponível no desktop?
|
||||
|
||||
Una versión experimental para Windows, Mac y Linux está en desarrollo. ¡Mantente atento!
|
||||
Sim! Versões para Windows, Mac e Linux estão disponíveis na seção [Releases](https://github.com/Excello-Recherche-Education/Kalulu-Frontend/releases).
|
||||
|
||||
### 🌐 O Kalulu está disponível diretamente na web?
|
||||
|
||||
Estamos trabalhando nisso, fique ligado!
|
||||
|
||||
@@ -6,12 +6,16 @@ func _get_name() -> String:
|
||||
|
||||
var tool_configs: Dictionary[String, Dictionary] = {
|
||||
"game": {
|
||||
"name": "Kalulu",
|
||||
"main_scene": "res://sources/menus/splash_screen/splash_screen.tscn",
|
||||
"output_name": "kalulu_app"
|
||||
"icon": "res://assets/kalulu_icon.png",
|
||||
"output_name": "Kalulu"
|
||||
},
|
||||
"prof_tool": {
|
||||
"name": "Prof_Tool",
|
||||
"main_scene": "res://sources/language_tool/prof_tool_menu.tscn",
|
||||
"output_name": "prof_tool"
|
||||
"icon": "res://assets/prof_tool_icon.png",
|
||||
"output_name": "Prof_Tool"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +30,8 @@ func _export_begin(features: PackedStringArray, is_debug: bool, path: String, fl
|
||||
push_error("Tool '%s' is not defined in the configuration." % selected_tool)
|
||||
return
|
||||
|
||||
var config: Dictionary[String, String] = tool_configs[selected_tool]
|
||||
var config: Dictionary = tool_configs[selected_tool]
|
||||
ProjectSettings.set_setting("application/config/name", config["name"])
|
||||
ProjectSettings.set_setting("application/run/main_scene", config["main_scene"])
|
||||
ProjectSettings.set_setting("application/config/icon", config["icon"])
|
||||
ProjectSettings.save()
|
||||
|
||||
@@ -3,40 +3,76 @@ extends EditorPlugin
|
||||
|
||||
const EXPORTER_PATH: String = "res://addons/export_tool_manager/export_tool_exporter.gd"
|
||||
|
||||
const TOOL_CONFIGS: Dictionary = {
|
||||
"game": {
|
||||
"name": "Kalulu",
|
||||
"main_scene": "res://sources/menus/splash_screen/splash_screen.tscn",
|
||||
"icon": "res://assets/kalulu_icon.png",
|
||||
"export_folder": "Kalulu_Game",
|
||||
"button_label": "Export All (Kalulu Game)",
|
||||
"presets": {
|
||||
"Android Kalulu AAB": "/Android/Kalulu.aab",
|
||||
"Android Kalulu APK": "/Android/Kalulu.apk",
|
||||
"Android Kalulu APK 32 bits": "/Android/Kalulu_32.apk",
|
||||
"Windows Kalulu": "/Windows/Kalulu-Windows.zip",
|
||||
"Linux Kalulu": "/Linux/Kalulu-Linux.zip",
|
||||
# Apple in last because it's always the most complicated
|
||||
#"iOS Kalulu": "/iOS/Kalulu.ipa",
|
||||
#"macOS Kalulu": "/macOS/Kalulu-macOS.dmg",
|
||||
},
|
||||
},
|
||||
"prof_tool": {
|
||||
"name": "Prof_Tool",
|
||||
"main_scene": "res://sources/language_tool/prof_tool_menu.tscn",
|
||||
"icon": "res://assets/prof_tool_icon.png",
|
||||
"export_folder": "Prof_Tool",
|
||||
"button_label": "Export All (Prof Tool)",
|
||||
"presets": {
|
||||
"Windows ProfTool": "/Windows/Prof_Tool-Windows.zip",
|
||||
"Linux ProfTool": "/Linux/Prof_Tool-Linux.zip",
|
||||
# Apple in last because it's always the most complicated
|
||||
#"macOS ProfTool": "/macOS/Prof_Tool-macOS.dmg",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
var tool_selector: OptionButton
|
||||
var exporter_plugin: EditorExportPlugin
|
||||
var export_button: Button
|
||||
var current_tool: String = "game"
|
||||
|
||||
func _enter_tree() -> void:
|
||||
# Tool Selector UI
|
||||
tool_selector = OptionButton.new()
|
||||
tool_selector.name = "Tool Exporter"
|
||||
tool_selector.add_item("Game")
|
||||
tool_selector.add_item("Kalulu Game")
|
||||
tool_selector.add_item("Prof Tool")
|
||||
tool_selector.connect("item_selected", _on_tool_selected)
|
||||
add_control_to_container(EditorPlugin.CONTAINER_TOOLBAR, tool_selector)
|
||||
|
||||
var settings: EditorSettings = get_editor_interface().get_editor_settings()
|
||||
var current: Variant = settings.get_setting("export_tool_manager/current_tool")
|
||||
var current_tool: String = "game"
|
||||
var saved: Variant = settings.get_setting("export_tool_manager/current_tool")
|
||||
|
||||
if typeof(current) == TYPE_STRING and current.strip_edges() != "":
|
||||
current_tool = current.strip_edges()
|
||||
if typeof(saved) == TYPE_STRING and saved.strip_edges() != "":
|
||||
current_tool = saved.strip_edges()
|
||||
|
||||
match current_tool:
|
||||
"prof_tool":
|
||||
tool_selector.select(1)
|
||||
"game", _:
|
||||
current_tool = "game"
|
||||
tool_selector.select(0)
|
||||
|
||||
_apply_tool_config(current_tool)
|
||||
|
||||
# Exporter plugin
|
||||
exporter_plugin = load(EXPORTER_PATH).new()
|
||||
add_export_plugin(exporter_plugin)
|
||||
|
||||
# Export All Button
|
||||
export_button = Button.new()
|
||||
export_button.text = "Export All (Game)"
|
||||
export_button.pressed.connect(_on_export_all_game_pressed)
|
||||
export_button.text = TOOL_CONFIGS[current_tool]["button_label"]
|
||||
export_button.pressed.connect(_on_export_all_pressed)
|
||||
add_control_to_container(EditorPlugin.CONTAINER_TOOLBAR, export_button)
|
||||
|
||||
func _exit_tree() -> void:
|
||||
@@ -49,37 +85,59 @@ func _exit_tree() -> void:
|
||||
remove_export_plugin(exporter_plugin)
|
||||
|
||||
func _on_tool_selected(index: int) -> void:
|
||||
var tool: String = "game"
|
||||
match index:
|
||||
1:
|
||||
tool = "prof_tool"
|
||||
current_tool = "prof_tool"
|
||||
0, _:
|
||||
tool = "game"
|
||||
current_tool = "game"
|
||||
|
||||
var settings: EditorSettings = get_editor_interface().get_editor_settings()
|
||||
settings.set_setting("export_tool_manager/current_tool", tool)
|
||||
settings.set_setting("export_tool_manager/current_tool", current_tool)
|
||||
_apply_tool_config(current_tool)
|
||||
|
||||
func _on_export_all_game_pressed() -> void:
|
||||
export_all_game_presets()
|
||||
|
||||
func export_all_game_presets() -> void:
|
||||
func _apply_tool_config(tool: String) -> void:
|
||||
if not TOOL_CONFIGS.has(tool):
|
||||
push_error("ExportToolManager: Unknown tool '%s'" % tool)
|
||||
return
|
||||
|
||||
var config: Dictionary = TOOL_CONFIGS[tool]
|
||||
ProjectSettings.set_setting("application/config/name", config["name"])
|
||||
ProjectSettings.set_setting("application/run/main_scene", config["main_scene"])
|
||||
ProjectSettings.set_setting("application/config/icon", config["icon"])
|
||||
ProjectSettings.save()
|
||||
|
||||
if export_button:
|
||||
export_button.text = config["button_label"]
|
||||
|
||||
print("ExportToolManager: Switched to '%s' (scene: %s)" % [config["name"], config["main_scene"]])
|
||||
|
||||
func _on_export_all_pressed() -> void:
|
||||
export_all_presets()
|
||||
|
||||
|
||||
func export_all_presets() -> void:
|
||||
var config: Dictionary = TOOL_CONFIGS[current_tool]
|
||||
var base_folder: String = "../Export/Autobuild/%s/" % config["export_folder"]
|
||||
var version_folder: String = base_folder + get_application_version_with_code()
|
||||
|
||||
# Check if the version folder already exists
|
||||
if DirAccess.dir_exists_absolute(version_folder):
|
||||
var dialog: AcceptDialog = AcceptDialog.new()
|
||||
dialog.title = "Export aborted"
|
||||
dialog.dialog_text = "The export folder already exists:\n%s\n\nDelete it manually before re-exporting." % version_folder
|
||||
get_editor_interface().get_base_control().add_child(dialog)
|
||||
dialog.popup_centered()
|
||||
dialog.confirmed.connect(dialog.queue_free)
|
||||
dialog.canceled.connect(dialog.queue_free)
|
||||
return
|
||||
|
||||
var godot_path: String = OS.get_executable_path()
|
||||
var exportFolder: String = "../Export/autobuilds/"
|
||||
var presets: Dictionary[String, String]= {
|
||||
"Android Kalulu AAB": "/Android/kalulu_app.aab",
|
||||
"Android Kalulu APK": "/Android/kalulu_app.apk",
|
||||
"Android Kalulu APK 32 bits": "/Android/kalulu_app_32.apk",
|
||||
"Windows Kalulu": "/Windows/Kalulu-Windows.zip",
|
||||
"Linux Kalulu": "/Linux/Kalulu-Linux.zip",
|
||||
|
||||
# Apple in last because it's always the most complicated
|
||||
#"iOS Kalulu": "/iOS/KaluluApp.ipa",
|
||||
#"macOS Kalulu": "/macOS/Kalulu-macOS.dmg"
|
||||
}
|
||||
var presets: Dictionary = config["presets"]
|
||||
|
||||
for preset_name in presets.keys():
|
||||
await get_tree().create_timer(1).timeout
|
||||
var output_path: String = exportFolder + get_application_version_with_code() + presets[preset_name]
|
||||
var output_path: String = version_folder + presets[preset_name]
|
||||
print("Start exporting " + preset_name)
|
||||
DirAccess.make_dir_recursive_absolute(output_path.get_base_dir())
|
||||
|
||||
|
||||
@@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/editor_icon.png-6f130a2788dfaa185bebbdd85ed98
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
@@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
|
||||
@@ -3,19 +3,21 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cop8iscyxohrb"
|
||||
path="res://.godot/imported/bush_curtain.png-2e1fb82bc0153666dd15620ed6cf9a14.ctex"
|
||||
path.s3tc="res://.godot/imported/bush_curtain.png-2e1fb82bc0153666dd15620ed6cf9a14.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/bush_curtain.png-2e1fb82bc0153666dd15620ed6cf9a14.etc2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/bush_curtain.png"
|
||||
dest_files=["res://.godot/imported/bush_curtain.png-2e1fb82bc0153666dd15620ed6cf9a14.ctex"]
|
||||
dest_files=["res://.godot/imported/bush_curtain.png-2e1fb82bc0153666dd15620ed6cf9a14.s3tc.ctex", "res://.godot/imported/bush_curtain.png-2e1fb82bc0153666dd15620ed6cf9a14.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cqhbpt3lk6f15"
|
||||
path="res://.godot/imported/bottom.png-3c7c71fa24e23ae34adb1d444da0b3db.ctex"
|
||||
uid="uid://d1j23o6nq476v"
|
||||
path="res://.godot/imported/ant_body.png-dad00fa87392efb7e152045fa1f6b084.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/lesson_screen/bottom.png"
|
||||
dest_files=["res://.godot/imported/bottom.png-3c7c71fa24e23ae34adb1d444da0b3db.ctex"]
|
||||
source_file="res://assets/gardens/animals/ant_body.png"
|
||||
dest_files=["res://.godot/imported/ant_body.png-dad00fa87392efb7e152045fa1f6b084.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
After Width: | Height: | Size: 953 B |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cffuqacgb1jra"
|
||||
path="res://.godot/imported/branches.png-59c95c0c624c68eb2181d2b0fe6a5080.ctex"
|
||||
uid="uid://by3xfdin7jrsn"
|
||||
path="res://.godot/imported/ant_face.png-b00fa29a7fcfe1e19ec19735f3395466.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/lesson_screen/branches.png"
|
||||
dest_files=["res://.godot/imported/branches.png-59c95c0c624c68eb2181d2b0fe6a5080.ctex"]
|
||||
source_file="res://assets/gardens/animals/ant_face.png"
|
||||
dest_files=["res://.godot/imported/ant_face.png-b00fa29a7fcfe1e19ec19735f3395466.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b6nrx0dn0h3f2"
|
||||
path="res://.godot/imported/caterpillar_body.png-c691b990e51d372f5dfdafa881ea6750.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/caterpillar_body.png"
|
||||
dest_files=["res://.godot/imported/caterpillar_body.png-c691b990e51d372f5dfdafa881ea6750.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 806 B |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cnihbmks0piwi"
|
||||
path="res://.godot/imported/caterpillar_face.png-d383b965d4555da185ab647f352d95f3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/caterpillar_face.png"
|
||||
dest_files=["res://.godot/imported/caterpillar_face.png-d383b965d4555da185ab647f352d95f3.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b2e61oot7ht35"
|
||||
path="res://.godot/imported/crab_body.png-d5ff5fcdad64e46336ef16b4a3fb00c7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/crab_body.png"
|
||||
dest_files=["res://.godot/imported/crab_body.png-d5ff5fcdad64e46336ef16b4a3fb00c7.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 1005 B |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ruclqu4dc13u"
|
||||
path="res://.godot/imported/crab_face.png-405026ec02e80559c79371d1bab55844.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/crab_face.png"
|
||||
dest_files=["res://.godot/imported/crab_face.png-405026ec02e80559c79371d1bab55844.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://oagcnmxs0xx1"
|
||||
path="res://.godot/imported/frog_body.png-ac6c4a085cb17c6bc169773a464b64b6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/frog_body.png"
|
||||
dest_files=["res://.godot/imported/frog_body.png-ac6c4a085cb17c6bc169773a464b64b6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b4243242f34g0"
|
||||
path="res://.godot/imported/frog_face.png-edba38b44d42deef80a709ade2e5e8f6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/frog_face.png"
|
||||
dest_files=["res://.godot/imported/frog_face.png-edba38b44d42deef80a709ade2e5e8f6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c0pixsxb7e5yd"
|
||||
path="res://.godot/imported/garden_03_open.png-142fe10dfa5b6344ac20de2d61c58e7f.ctex"
|
||||
uid="uid://bb3we2it550v6"
|
||||
path="res://.godot/imported/jellyfish_body.png-a32700abbb41c080cba5614127a3edc3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_03_open.png"
|
||||
dest_files=["res://.godot/imported/garden_03_open.png-142fe10dfa5b6344ac20de2d61c58e7f.ctex"]
|
||||
source_file="res://assets/gardens/animals/jellyfish_body.png"
|
||||
dest_files=["res://.godot/imported/jellyfish_body.png-a32700abbb41c080cba5614127a3edc3.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b5kildofgmthb"
|
||||
path="res://.godot/imported/garden_01_open.png-e7e93db35611b0ad9dabe123854f1ab1.ctex"
|
||||
uid="uid://dppmdv8u3cwl1"
|
||||
path="res://.godot/imported/jellyfish_face.png-5c0a129760def337aa729a02e1028153.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_01_open.png"
|
||||
dest_files=["res://.godot/imported/garden_01_open.png-e7e93db35611b0ad9dabe123854f1ab1.ctex"]
|
||||
source_file="res://assets/gardens/animals/jellyfish_face.png"
|
||||
dest_files=["res://.godot/imported/jellyfish_face.png-5c0a129760def337aa729a02e1028153.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dr12efhuotfgt"
|
||||
path="res://.godot/imported/monkey_body.png-b049cc78b0f6869945a1c7d6a1301ad4.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/monkey_body.png"
|
||||
dest_files=["res://.godot/imported/monkey_body.png-b049cc78b0f6869945a1c7d6a1301ad4.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dc52xvm4y6rir"
|
||||
path="res://.godot/imported/monkey_face.png-985109f289329f15999880cce0b5a16e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/monkey_face.png"
|
||||
dest_files=["res://.godot/imported/monkey_face.png-985109f289329f15999880cce0b5a16e.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c2yalimkyunxi"
|
||||
path="res://.godot/imported/parakeet_body.png-9465060ca470033db7910f6ce2322a6d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/parakeet_body.png"
|
||||
dest_files=["res://.godot/imported/parakeet_body.png-9465060ca470033db7910f6ce2322a6d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://l52tfb7fdrpt"
|
||||
path="res://.godot/imported/parakeet_face.png-94d7bc7370d8ae647ca7d22a41893e3f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/parakeet_face.png"
|
||||
dest_files=["res://.godot/imported/parakeet_face.png-94d7bc7370d8ae647ca7d22a41893e3f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://noekve4gjudr"
|
||||
path="res://.godot/imported/penguin_body.png-72481c56dc380b551e94e0f413ef0cf8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/penguin_body.png"
|
||||
dest_files=["res://.godot/imported/penguin_body.png-72481c56dc380b551e94e0f413ef0cf8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dbg7mxg3x7vd4"
|
||||
path="res://.godot/imported/penguin_face.png-ea217ef7de954aee6edea62f83594216.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/penguin_face.png"
|
||||
dest_files=["res://.godot/imported/penguin_face.png-ea217ef7de954aee6edea62f83594216.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 5.4 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b7rqldqdft30a"
|
||||
path="res://.godot/imported/turtle_body.png-0f50da4036c6750167a288e6f006a813.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/turtle_body.png"
|
||||
dest_files=["res://.godot/imported/turtle_body.png-0f50da4036c6750167a288e6f006a813.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 917 B |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://nu4kpbywwpgn"
|
||||
path="res://.godot/imported/turtle_face.png-e570d8d931a8a1c99178dba731ef0fdb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/animals/turtle_face.png"
|
||||
dest_files=["res://.godot/imported/turtle_face.png-e570d8d931a8a1c99178dba731ef0fdb.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cxjy5f7oyl8mq"
|
||||
path="res://.godot/imported/lesson_circle.png-05f9dc6a36bb9c72360b598507504f72.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/buttons/lesson_circle.png"
|
||||
dest_files=["res://.godot/imported/lesson_circle.png-05f9dc6a36bb9c72360b598507504f72.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c1ml42sp1vqga"
|
||||
path="res://.godot/imported/movie_icon.png-3b93e2f2cfeeb8eec0332bbcd7cda143.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/buttons/movie_icon.png"
|
||||
dest_files=["res://.godot/imported/movie_icon.png-3b93e2f2cfeeb8eec0332bbcd7cda143.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d26hapg1hf8a6"
|
||||
path.s3tc="res://.godot/imported/garden_01.png-8cec30484a43f71cd614fe156e78443f.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_01.png-8cec30484a43f71cd614fe156e78443f.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_01.png"
|
||||
dest_files=["res://.godot/imported/garden_01.png-8cec30484a43f71cd614fe156e78443f.s3tc.ctex", "res://.godot/imported/garden_01.png-8cec30484a43f71cd614fe156e78443f.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://4wt50lu3cwbl"
|
||||
path.s3tc="res://.godot/imported/garden_02.png-952b73c44e8f297d7146afccf72fa6f8.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_02.png-952b73c44e8f297d7146afccf72fa6f8.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_02.png"
|
||||
dest_files=["res://.godot/imported/garden_02.png-952b73c44e8f297d7146afccf72fa6f8.s3tc.ctex", "res://.godot/imported/garden_02.png-952b73c44e8f297d7146afccf72fa6f8.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ch1ah3nkjy5cl"
|
||||
path.s3tc="res://.godot/imported/garden_03.png-5f6b1132537a67d14c76986a1aaf0c9e.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_03.png-5f6b1132537a67d14c76986a1aaf0c9e.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_03.png"
|
||||
dest_files=["res://.godot/imported/garden_03.png-5f6b1132537a67d14c76986a1aaf0c9e.s3tc.ctex", "res://.godot/imported/garden_03.png-5f6b1132537a67d14c76986a1aaf0c9e.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://l32ekwfso26s"
|
||||
path.s3tc="res://.godot/imported/garden_04.png-4af29a3ee810ade399f7fba358601b39.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_04.png-4af29a3ee810ade399f7fba358601b39.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_04.png"
|
||||
dest_files=["res://.godot/imported/garden_04.png-4af29a3ee810ade399f7fba358601b39.s3tc.ctex", "res://.godot/imported/garden_04.png-4af29a3ee810ade399f7fba358601b39.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d3bu30iutptwx"
|
||||
path.s3tc="res://.godot/imported/garden_05.png-b2eede99e5cfc7d755b398e252db8066.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_05.png-b2eede99e5cfc7d755b398e252db8066.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_05.png"
|
||||
dest_files=["res://.godot/imported/garden_05.png-b2eede99e5cfc7d755b398e252db8066.s3tc.ctex", "res://.godot/imported/garden_05.png-b2eede99e5cfc7d755b398e252db8066.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 40 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://blg1nxeno6cwl"
|
||||
path="res://.godot/imported/garden_05_open.png-ff5ee3f0e878fa03a8dea0ef133ca5ba.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_05_open.png"
|
||||
dest_files=["res://.godot/imported/garden_05_open.png-ff5ee3f0e878fa03a8dea0ef133ca5ba.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bhamsdjj677b3"
|
||||
path.s3tc="res://.godot/imported/garden_06.png-943860b612f9520e74a0732cde3cbfe6.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_06.png-943860b612f9520e74a0732cde3cbfe6.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_06.png"
|
||||
dest_files=["res://.godot/imported/garden_06.png-943860b612f9520e74a0732cde3cbfe6.s3tc.ctex", "res://.godot/imported/garden_06.png-943860b612f9520e74a0732cde3cbfe6.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 44 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dimvsnhfd8y8q"
|
||||
path="res://.godot/imported/garden_06_open.png-13105f591491c2be9fb6cc46e6c1a2d6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_06_open.png"
|
||||
dest_files=["res://.godot/imported/garden_06_open.png-13105f591491c2be9fb6cc46e6c1a2d6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://clcff3fg5jd2k"
|
||||
path.s3tc="res://.godot/imported/garden_07.png-552b63ddceeb7d6136f933619623d519.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_07.png-552b63ddceeb7d6136f933619623d519.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_07.png"
|
||||
dest_files=["res://.godot/imported/garden_07.png-552b63ddceeb7d6136f933619623d519.s3tc.ctex", "res://.godot/imported/garden_07.png-552b63ddceeb7d6136f933619623d519.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 42 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bhr21dw3baqrm"
|
||||
path="res://.godot/imported/garden_07_open.png-d87f883f506a9836a782efbcfd1542f6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_07_open.png"
|
||||
dest_files=["res://.godot/imported/garden_07_open.png-d87f883f506a9836a782efbcfd1542f6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://kgeoctiggnxx"
|
||||
path.s3tc="res://.godot/imported/garden_08.png-60a000c144495dd62452995bc8932932.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_08.png-60a000c144495dd62452995bc8932932.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_08.png"
|
||||
dest_files=["res://.godot/imported/garden_08.png-60a000c144495dd62452995bc8932932.s3tc.ctex", "res://.godot/imported/garden_08.png-60a000c144495dd62452995bc8932932.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 37 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://phoeyhvft3dc"
|
||||
path="res://.godot/imported/garden_08_open.png-01bb33e901c94aea253f809b00da568d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_08_open.png"
|
||||
dest_files=["res://.godot/imported/garden_08_open.png-01bb33e901c94aea253f809b00da568d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 18 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dqk14m4demy3a"
|
||||
path.s3tc="res://.godot/imported/garden_09.png-4a49e6b67d1574a86d201faadd295c12.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_09.png-4a49e6b67d1574a86d201faadd295c12.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_09.png"
|
||||
dest_files=["res://.godot/imported/garden_09.png-4a49e6b67d1574a86d201faadd295c12.s3tc.ctex", "res://.godot/imported/garden_09.png-4a49e6b67d1574a86d201faadd295c12.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 50 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b6x6ypfyin4l5"
|
||||
path="res://.godot/imported/garden_09_open.png-4056b229410a3403994326084102e6f5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_09_open.png"
|
||||
dest_files=["res://.godot/imported/garden_09_open.png-4056b229410a3403994326084102e6f5.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cahtl4j3wxahn"
|
||||
path.s3tc="res://.godot/imported/garden_10.png-39a7d010b681ef7c20becd3e54ebced2.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_10.png-39a7d010b681ef7c20becd3e54ebced2.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_10.png"
|
||||
dest_files=["res://.godot/imported/garden_10.png-39a7d010b681ef7c20becd3e54ebced2.s3tc.ctex", "res://.godot/imported/garden_10.png-39a7d010b681ef7c20becd3e54ebced2.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 46 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bryk735xd5r8j"
|
||||
path="res://.godot/imported/garden_10_open.png-6df2b29b42d9313fb097ea589603ef68.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_10_open.png"
|
||||
dest_files=["res://.godot/imported/garden_10_open.png-6df2b29b42d9313fb097ea589603ef68.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dpl670l7onk5n"
|
||||
path.s3tc="res://.godot/imported/garden_11.png-cfde776b2d9c071e225bed94f36560e1.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_11.png-cfde776b2d9c071e225bed94f36560e1.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_11.png"
|
||||
dest_files=["res://.godot/imported/garden_11.png-cfde776b2d9c071e225bed94f36560e1.s3tc.ctex", "res://.godot/imported/garden_11.png-cfde776b2d9c071e225bed94f36560e1.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 43 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d25ddek1hl6ca"
|
||||
path="res://.godot/imported/garden_11_open.png-aaa76c2521c39c7b0116060068bfb598.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_11_open.png"
|
||||
dest_files=["res://.godot/imported/garden_11_open.png-aaa76c2521c39c7b0116060068bfb598.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b6pmtjjp4rejb"
|
||||
path.s3tc="res://.godot/imported/garden_12.png-13d7be39631648987956568e37e0e56f.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/garden_12.png-13d7be39631648987956568e37e0e56f.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_12.png"
|
||||
dest_files=["res://.godot/imported/garden_12.png-13d7be39631648987956568e37e0e56f.s3tc.ctex", "res://.godot/imported/garden_12.png-13d7be39631648987956568e37e0e56f.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cgqf4g3rv36sq"
|
||||
path="res://.godot/imported/garden_12_open.png-b78bc8ccfc5520f4bb7618fbebf7f572.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_12_open.png"
|
||||
dest_files=["res://.godot/imported/garden_12_open.png-b78bc8ccfc5520f4bb7618fbebf7f572.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 44 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bv2riha86d4ac"
|
||||
path="res://.godot/imported/garden_13_open.png-2f4b311fd8fdd52939d886204f85f5f1.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_13_open.png"
|
||||
dest_files=["res://.godot/imported/garden_13_open.png-2f4b311fd8fdd52939d886204f85f5f1.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 36 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cr76law5eivwm"
|
||||
path="res://.godot/imported/garden_14_open.png-a684fe2a5f05b9b7fd22838d53791afb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_14_open.png"
|
||||
dest_files=["res://.godot/imported/garden_14_open.png-a684fe2a5f05b9b7fd22838d53791afb.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 41 KiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cj6ois0siu3p0"
|
||||
path="res://.godot/imported/garden_15_open.png-afb8688cb9957b71d459db3640d2b0b8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/gardens/gardens/garden_15_open.png"
|
||||
dest_files=["res://.godot/imported/garden_15_open.png-afb8688cb9957b71d459db3640d2b0b8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||