Add industrial metal soundtrack with seamless loop
- assets/audio/music/zombie_industrial_loop.ogg: 57.60 s Ogg Vorbis loop generated locally with YuE2-3B on the Tesla V100 (score written for this track; vocals removed with HTDemucs). The loop is spliced at the track's structural repeat with a 0.6 s crossfade: measured seam dip <= 1.6 dB. - scripts/main.gd: "Music" AudioStreamPlayer at -11 dB, started at boot on desktop and on the start click on Web (browser autoplay policy). It forces stream.loop at runtime because the Web staging step re-imports the OGG with loop=false. - tools/test_music.gd: soundtrack test (loop, length, volume, playback, still playing after player death). - docs/MUSIC.md: source, loop construction, verification, licence. - docs/WEB-DEPLOY.md: release ab6054111f5919a8 notes. Initial commit of the project.
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
# Godot 4 — cache di import e metadata dell'editor
|
||||||
|
.godot/
|
||||||
|
|
||||||
|
# Artefatti di build ed export Web (rigenerabili con docs/WEB-DEPLOY.md)
|
||||||
|
build/
|
||||||
|
|
||||||
|
# Sistema
|
||||||
|
.DS_Store
|
||||||
|
*~
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,22 @@
|
|||||||
|
[configuration]
|
||||||
|
entry_symbol = "goldsrc_library_init"
|
||||||
|
compatibility_minimum = "4.6"
|
||||||
|
reloadable = true
|
||||||
|
|
||||||
|
[libraries]
|
||||||
|
|
||||||
|
macos.debug.arm64 = "res://addons/goldsrc/bin/libgoldsrc.macos.template_debug.arm64.dylib"
|
||||||
|
macos.release.arm64 = "res://addons/goldsrc/bin/libgoldsrc.macos.template_release.arm64.dylib"
|
||||||
|
macos.debug.x86_64 = "res://addons/goldsrc/bin/libgoldsrc.macos.template_debug.x86_64.dylib"
|
||||||
|
macos.release.x86_64 = "res://addons/goldsrc/bin/libgoldsrc.macos.template_release.x86_64.dylib"
|
||||||
|
|
||||||
|
windows.debug.x86_64 = "res://addons/goldsrc/bin/libgoldsrc.windows.template_debug.x86_64.dll"
|
||||||
|
windows.release.x86_64 = "res://addons/goldsrc/bin/libgoldsrc.windows.template_release.x86_64.dll"
|
||||||
|
|
||||||
|
linux.debug.x86_64 = "res://addons/goldsrc/bin/libgoldsrc.linux.template_debug.x86_64.so"
|
||||||
|
linux.release.x86_64 = "res://addons/goldsrc/bin/libgoldsrc.linux.template_release.x86_64.so"
|
||||||
|
linux.debug.arm64 = "res://addons/goldsrc/bin/libgoldsrc.linux.template_debug.arm64.so"
|
||||||
|
linux.release.arm64 = "res://addons/goldsrc/bin/libgoldsrc.linux.template_release.arm64.so"
|
||||||
|
|
||||||
|
android.debug.arm64 = "res://addons/goldsrc/bin/libgoldsrc.android.template_debug.arm64.so"
|
||||||
|
android.release.arm64 = "res://addons/goldsrc/bin/libgoldsrc.android.template_release.arm64.so"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dsy8u3hdjay5p
|
||||||
@@ -0,0 +1,221 @@
|
|||||||
|
@tool
|
||||||
|
extends EditorImportPlugin
|
||||||
|
|
||||||
|
|
||||||
|
func _get_importer_name() -> String:
|
||||||
|
return "goldsrc.bsp"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_visible_name() -> String:
|
||||||
|
return "GoldSrc BSP"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_recognized_extensions() -> PackedStringArray:
|
||||||
|
return PackedStringArray(["bsp"])
|
||||||
|
|
||||||
|
|
||||||
|
func _get_save_extension() -> String:
|
||||||
|
return "scn"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_resource_type() -> String:
|
||||||
|
return "PackedScene"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_preset_count() -> int:
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
func _get_preset_name(preset_index: int) -> String:
|
||||||
|
return "Default"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_priority() -> float:
|
||||||
|
return 1.0
|
||||||
|
|
||||||
|
|
||||||
|
func _get_import_order() -> int:
|
||||||
|
return 1 # Must run after MDL/SPR importers (order 0) so their scenes are available.
|
||||||
|
|
||||||
|
|
||||||
|
# Must run on main thread — ArrayMesh/ImageTexture serialization deadlocks
|
||||||
|
# when ResourceSaver.save() is called from import worker threads.
|
||||||
|
func _can_import_threaded() -> bool:
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func _get_import_options(_path: String, _preset_index: int) -> Array[Dictionary]:
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
"name": "wad_directory",
|
||||||
|
"default_value": "",
|
||||||
|
"property_hint": PROPERTY_HINT_DIR,
|
||||||
|
"hint_string": "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "scale_factor",
|
||||||
|
"default_value": 0.025,
|
||||||
|
"property_hint": PROPERTY_HINT_RANGE,
|
||||||
|
"hint_string": "0.001,1.0,0.001",
|
||||||
|
},
|
||||||
|
# Base res:// path for resolving entity model/sprite references.
|
||||||
|
# Set this to the folder that mirrors your GoldSrc game root inside the
|
||||||
|
# project (e.g. res://res), so "models/headcrab.mdl" resolves correctly.
|
||||||
|
# Leave empty when your project root already mirrors the game root.
|
||||||
|
{
|
||||||
|
"name": "model_directory",
|
||||||
|
"default_value": "",
|
||||||
|
"property_hint": PROPERTY_HINT_DIR,
|
||||||
|
"hint_string": "",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
func _get_option_visibility(_path: String, _option_name: StringName, _options: Dictionary) -> bool:
|
||||||
|
return true
|
||||||
|
|
||||||
|
|
||||||
|
func _import(source_file: String, save_path: String, options: Dictionary,
|
||||||
|
_platform_variants: Array[String], _gen_files: Array[String]) -> Error:
|
||||||
|
var wad_directory: String = options.get("wad_directory", "")
|
||||||
|
var scale_factor: float = options.get("scale_factor", 0.025)
|
||||||
|
var model_directory: String = options.get("model_directory", "")
|
||||||
|
|
||||||
|
var bsp := GoldSrcBSP.new()
|
||||||
|
bsp.set_scale_factor(scale_factor)
|
||||||
|
|
||||||
|
bsp.load_bsp(source_file)
|
||||||
|
|
||||||
|
# Resolve WAD files. If an explicit directory is given, scan it; otherwise
|
||||||
|
# read the WADs the BSP itself declares in worldspawn's "wad" key and look
|
||||||
|
# them up next to the .bsp and at the project root — so a stock project
|
||||||
|
# textures correctly with no per-file import config.
|
||||||
|
if wad_directory != "":
|
||||||
|
var dir := DirAccess.open(wad_directory)
|
||||||
|
if dir:
|
||||||
|
dir.list_dir_begin()
|
||||||
|
var file_name := dir.get_next()
|
||||||
|
while file_name != "":
|
||||||
|
if not dir.current_is_dir() and file_name.get_extension().to_lower() == "wad":
|
||||||
|
var wad := GoldSrcWAD.new()
|
||||||
|
var wad_path := wad_directory.path_join(file_name)
|
||||||
|
wad.load_wad(wad_path)
|
||||||
|
bsp.add_wad(wad)
|
||||||
|
file_name = dir.get_next()
|
||||||
|
dir.list_dir_end()
|
||||||
|
else:
|
||||||
|
push_warning("BSP Importer: Could not open WAD directory '%s'" % wad_directory)
|
||||||
|
else:
|
||||||
|
_load_declared_wads(bsp, source_file)
|
||||||
|
|
||||||
|
bsp.build_mesh()
|
||||||
|
|
||||||
|
# Reparent children to a plain Node3D so the saved scene is GDExtension-independent
|
||||||
|
var root := Node3D.new()
|
||||||
|
var root_name := source_file.get_file().get_basename()
|
||||||
|
if root_name.is_empty():
|
||||||
|
root_name = "bsp_root"
|
||||||
|
root.name = root_name
|
||||||
|
|
||||||
|
var children := bsp.get_children()
|
||||||
|
for child in children:
|
||||||
|
bsp.remove_child(child)
|
||||||
|
root.add_child(child)
|
||||||
|
|
||||||
|
_instantiate_entity_models(root, model_directory)
|
||||||
|
|
||||||
|
# Bake the stripped BSP (PLANES/NODES/CLIPNODES/LEAFS/VISIBILITY/MODELS) so
|
||||||
|
# VisibilityManager (PVS) and hull collision can both initialise from the .scn
|
||||||
|
# without the original .bsp. Collision bodies carry only a "bsp_model" index
|
||||||
|
# and walk up the tree to find this. build_mesh() already parked it on the BSP
|
||||||
|
# node, so read it back rather than rebuilding the whole payload —
|
||||||
|
# PackedByteArray is copy-on-write, so this is a refcount.
|
||||||
|
var bsp_blob: PackedByteArray = bsp.get_meta("bsp_data", PackedByteArray())
|
||||||
|
if not bsp_blob.is_empty():
|
||||||
|
root.set_meta("bsp_data", bsp_blob)
|
||||||
|
|
||||||
|
_set_owner_recursive(root, root)
|
||||||
|
|
||||||
|
var scene := PackedScene.new()
|
||||||
|
var pack_err := scene.pack(root)
|
||||||
|
if pack_err != OK:
|
||||||
|
push_error("BSP Importer: Failed to pack scene: %s" % error_string(pack_err))
|
||||||
|
return pack_err
|
||||||
|
|
||||||
|
var save_err := ResourceSaver.save(scene, save_path + "." + _get_save_extension())
|
||||||
|
return save_err
|
||||||
|
|
||||||
|
|
||||||
|
# Load the WADs a BSP declares in worldspawn's "wad" key (a ';'-separated list
|
||||||
|
# of GoldSrc paths). Only the basename is used; each is searched for beside the
|
||||||
|
# .bsp first, then at the project root. This mirrors the runtime WAD lookup so
|
||||||
|
# the editor and the game texture maps identically without any import options.
|
||||||
|
func _load_declared_wads(bsp: GoldSrcBSP, source_file: String) -> void:
|
||||||
|
var wad_string := ""
|
||||||
|
for ent in bsp.get_entities():
|
||||||
|
if ent.get("classname", "") == "worldspawn":
|
||||||
|
wad_string = ent.get("wad", "")
|
||||||
|
break
|
||||||
|
|
||||||
|
var search_dirs := [source_file.get_base_dir(), "res://"]
|
||||||
|
var seen := {}
|
||||||
|
for wad_path in wad_string.split(";", false):
|
||||||
|
var wad_name := wad_path.get_file().to_lower()
|
||||||
|
if wad_name.is_empty() or seen.has(wad_name):
|
||||||
|
continue
|
||||||
|
seen[wad_name] = true
|
||||||
|
for base in search_dirs:
|
||||||
|
var full_path: String = base.path_join(wad_name)
|
||||||
|
if FileAccess.file_exists(full_path):
|
||||||
|
var wad := GoldSrcWAD.new()
|
||||||
|
if wad.load_wad(full_path) == OK:
|
||||||
|
bsp.add_wad(wad)
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
|
func _set_owner_recursive(node: Node, owner: Node) -> void:
|
||||||
|
for child in node.get_children():
|
||||||
|
child.owner = owner
|
||||||
|
# Don't recurse into instanced sub-scenes — their internal nodes belong
|
||||||
|
# to that scene, not to this one. Setting owner on the root is enough.
|
||||||
|
if child.scene_file_path == "":
|
||||||
|
_set_owner_recursive(child, owner)
|
||||||
|
|
||||||
|
|
||||||
|
# Instantiate MDL/SPR scenes for each point entity that has a "model" key.
|
||||||
|
# Resolves entity paths relative to model_dir (if set) or res:// (if empty),
|
||||||
|
# mirroring the GoldSrc layout at that root.
|
||||||
|
# Falls back to a placeholder box if the asset is not found.
|
||||||
|
func _instantiate_entity_models(root: Node3D, model_dir: String) -> void:
|
||||||
|
var base := model_dir if model_dir != "" else "res://"
|
||||||
|
for child in root.get_children():
|
||||||
|
if not child.has_meta("entity"):
|
||||||
|
continue
|
||||||
|
var ent: Dictionary = child.get_meta("entity")
|
||||||
|
var model_path: String = ent.get("model", "")
|
||||||
|
|
||||||
|
# Brush entities reference internal BSP sub-models ("*N") — skip them.
|
||||||
|
if model_path.is_empty() or model_path.begins_with("*"):
|
||||||
|
continue
|
||||||
|
|
||||||
|
var res_path := base.path_join(model_path)
|
||||||
|
var instance: Node3D = null
|
||||||
|
|
||||||
|
if ResourceLoader.exists(res_path):
|
||||||
|
var scene := load(res_path) as PackedScene
|
||||||
|
if scene:
|
||||||
|
instance = scene.instantiate() as Node3D
|
||||||
|
|
||||||
|
if instance == null:
|
||||||
|
var mi := MeshInstance3D.new()
|
||||||
|
var box := BoxMesh.new()
|
||||||
|
box.size = Vector3(0.3, 0.3, 0.3)
|
||||||
|
mi.mesh = box
|
||||||
|
instance = mi
|
||||||
|
push_warning("BSP Importer: model not found, using placeholder for '%s'" % res_path)
|
||||||
|
|
||||||
|
var node_name := model_path.get_file().get_basename()
|
||||||
|
if node_name.is_empty():
|
||||||
|
node_name = "unnamed_entity_model"
|
||||||
|
instance.name = node_name
|
||||||
|
child.add_child(instance)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bkjulqpbo8sjd
|
||||||
@@ -0,0 +1,112 @@
|
|||||||
|
@tool
|
||||||
|
extends EditorImportPlugin
|
||||||
|
|
||||||
|
|
||||||
|
func _get_importer_name() -> String:
|
||||||
|
return "goldsrc.mdl"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_visible_name() -> String:
|
||||||
|
return "GoldSrc MDL"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_recognized_extensions() -> PackedStringArray:
|
||||||
|
return PackedStringArray(["mdl"])
|
||||||
|
|
||||||
|
|
||||||
|
func _get_save_extension() -> String:
|
||||||
|
return "scn"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_resource_type() -> String:
|
||||||
|
return "PackedScene"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_preset_count() -> int:
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
func _get_preset_name(preset_index: int) -> String:
|
||||||
|
return "Default"
|
||||||
|
|
||||||
|
|
||||||
|
## What shape of scene this importer builds. 1: meshes merged into one MeshInstance3D per
|
||||||
|
## bodypart. 2: triangle corners welded back into shared vertices.
|
||||||
|
##
|
||||||
|
## Godot records it in each .import file but does not act on a bump — neither --import nor an
|
||||||
|
## editor session reimports on its own (checked on 4.7). Changing the built scene means clearing
|
||||||
|
## .godot/imported/*.mdl-* by hand; the number is here so it is visible which build a cache came
|
||||||
|
## from.
|
||||||
|
func _get_format_version() -> int:
|
||||||
|
return 2
|
||||||
|
|
||||||
|
|
||||||
|
func _get_priority() -> float:
|
||||||
|
return 1.0
|
||||||
|
|
||||||
|
|
||||||
|
func _get_import_order() -> int:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
func _can_import_threaded() -> bool:
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func _get_import_options(_path: String, _preset_index: int) -> Array[Dictionary]:
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
"name": "scale_factor",
|
||||||
|
"default_value": 0.025,
|
||||||
|
"property_hint": PROPERTY_HINT_RANGE,
|
||||||
|
"hint_string": "0.001,1.0,0.001",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
func _get_option_visibility(_path: String, _option_name: StringName, _options: Dictionary) -> bool:
|
||||||
|
return true
|
||||||
|
|
||||||
|
|
||||||
|
func _import(source_file: String, save_path: String, options: Dictionary,
|
||||||
|
_platform_variants: Array[String], _gen_files: Array[String]) -> Error:
|
||||||
|
var scale_factor: float = options.get("scale_factor", 0.025)
|
||||||
|
|
||||||
|
var mdl := GoldSrcMDL.new()
|
||||||
|
mdl.set_scale_factor(scale_factor)
|
||||||
|
|
||||||
|
var err = mdl.load_mdl(source_file)
|
||||||
|
if err != OK:
|
||||||
|
push_error("MDL Importer: Failed to load '%s': %s" % [source_file, error_string(err)])
|
||||||
|
return err
|
||||||
|
|
||||||
|
mdl.build_model()
|
||||||
|
|
||||||
|
# Reparent children to a plain Node3D so the saved scene is GDExtension-independent
|
||||||
|
var root := Node3D.new()
|
||||||
|
var root_name := source_file.get_file().get_basename()
|
||||||
|
if root_name.is_empty():
|
||||||
|
root_name = "mdl_root"
|
||||||
|
root.name = root_name
|
||||||
|
# GoldSrc models face -Z after axis swizzle; rotate to match GoldSrc game orientation
|
||||||
|
root.rotation_degrees.y = 90.0
|
||||||
|
|
||||||
|
var children := mdl.get_children()
|
||||||
|
for child in children:
|
||||||
|
mdl.remove_child(child)
|
||||||
|
root.add_child(child)
|
||||||
|
_set_owner_recursive(root, root)
|
||||||
|
|
||||||
|
var scene := PackedScene.new()
|
||||||
|
var pack_err := scene.pack(root)
|
||||||
|
if pack_err != OK:
|
||||||
|
push_error("MDL Importer: Failed to pack scene: %s" % error_string(pack_err))
|
||||||
|
return pack_err
|
||||||
|
|
||||||
|
return ResourceSaver.save(scene, save_path + "." + _get_save_extension())
|
||||||
|
|
||||||
|
|
||||||
|
func _set_owner_recursive(node: Node, owner: Node) -> void:
|
||||||
|
for child in node.get_children():
|
||||||
|
child.owner = owner
|
||||||
|
_set_owner_recursive(child, owner)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bp0377di4pbve
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
@tool
|
||||||
|
extends EditorImportPlugin
|
||||||
|
|
||||||
|
|
||||||
|
func _get_importer_name() -> String:
|
||||||
|
return "goldsrc.spr"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_visible_name() -> String:
|
||||||
|
return "GoldSrc SPR"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_recognized_extensions() -> PackedStringArray:
|
||||||
|
return PackedStringArray(["spr"])
|
||||||
|
|
||||||
|
|
||||||
|
func _get_save_extension() -> String:
|
||||||
|
return "scn"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_resource_type() -> String:
|
||||||
|
return "PackedScene"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_preset_count() -> int:
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
func _get_preset_name(preset_index: int) -> String:
|
||||||
|
return "Default"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_priority() -> float:
|
||||||
|
return 1.0
|
||||||
|
|
||||||
|
|
||||||
|
func _get_import_order() -> int:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
func _can_import_threaded() -> bool:
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func _get_import_options(_path: String, _preset_index: int) -> Array[Dictionary]:
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
"name": "animation_fps",
|
||||||
|
"default_value": 10.0,
|
||||||
|
"property_hint": PROPERTY_HINT_RANGE,
|
||||||
|
"hint_string": "1.0,60.0,0.5",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "loop",
|
||||||
|
"default_value": true,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
func _get_option_visibility(_path: String, _option_name: StringName, _options: Dictionary) -> bool:
|
||||||
|
return true
|
||||||
|
|
||||||
|
|
||||||
|
func _import(source_file: String, save_path: String, options: Dictionary,
|
||||||
|
_platform_variants: Array[String], _gen_files: Array[String]) -> Error:
|
||||||
|
var fps: float = options.get("animation_fps", 10.0)
|
||||||
|
var loop: bool = options.get("loop", true)
|
||||||
|
|
||||||
|
var spr := GoldSrcSPR.new()
|
||||||
|
var err = spr.load_spr(source_file)
|
||||||
|
if err != OK:
|
||||||
|
push_error("SPR Importer: Failed to load '%s': %s" % [source_file, error_string(err)])
|
||||||
|
return err
|
||||||
|
|
||||||
|
var frame_count = spr.get_frame_count()
|
||||||
|
if frame_count == 0:
|
||||||
|
push_error("SPR Importer: No frames in '%s'" % source_file)
|
||||||
|
return ERR_INVALID_DATA
|
||||||
|
|
||||||
|
var sprite = spr.build_scene()
|
||||||
|
if not sprite:
|
||||||
|
push_error("SPR Importer: build_scene() failed for '%s'" % source_file)
|
||||||
|
return ERR_CANT_CREATE
|
||||||
|
|
||||||
|
var sprite_name := source_file.get_file().get_basename()
|
||||||
|
if sprite_name.is_empty():
|
||||||
|
sprite_name = "sprite_root"
|
||||||
|
sprite.name = sprite_name
|
||||||
|
|
||||||
|
# Bake import options into the SpriteAnimationPlayer child
|
||||||
|
var sap = sprite.get_node_or_null(^"SpriteAnimationPlayer")
|
||||||
|
if sap:
|
||||||
|
sap.fps = fps
|
||||||
|
sap.loop_animation = loop
|
||||||
|
|
||||||
|
var scene := PackedScene.new()
|
||||||
|
var pack_err := scene.pack(sprite)
|
||||||
|
sprite.free()
|
||||||
|
if pack_err != OK:
|
||||||
|
push_error("SPR Importer: Failed to pack scene for '%s': %s" % [source_file, error_string(pack_err)])
|
||||||
|
return pack_err
|
||||||
|
|
||||||
|
return ResourceSaver.save(scene, save_path + "." + _get_save_extension())
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://n8cr2s2yyhqe
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
@tool
|
||||||
|
extends EditorImportPlugin
|
||||||
|
## Imports a GoldSrc WAD file.
|
||||||
|
##
|
||||||
|
## The WAD is saved as a minimal .tres marker so Godot tracks it as a known
|
||||||
|
## asset. The BSP importer loads WAD files directly via the C++ GoldSrcWAD
|
||||||
|
## class — it does not use extracted PNGs.
|
||||||
|
##
|
||||||
|
## PNG extraction is opt-in (extract_textures = false by default) for cases
|
||||||
|
## where individual textures are needed outside of BSP rendering.
|
||||||
|
|
||||||
|
|
||||||
|
func _get_importer_name() -> String:
|
||||||
|
return "goldsrc.wad"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_visible_name() -> String:
|
||||||
|
return "GoldSrc WAD"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_recognized_extensions() -> PackedStringArray:
|
||||||
|
return PackedStringArray(["wad"])
|
||||||
|
|
||||||
|
|
||||||
|
func _get_save_extension() -> String:
|
||||||
|
return "tres"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_resource_type() -> String:
|
||||||
|
return "Resource"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_preset_count() -> int:
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
func _get_preset_name(preset_index: int) -> String:
|
||||||
|
return "Default"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_priority() -> float:
|
||||||
|
return 1.0
|
||||||
|
|
||||||
|
|
||||||
|
func _get_import_order() -> int:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
func _can_import_threaded() -> bool:
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func _get_import_options(_path: String, _preset_index: int) -> Array[Dictionary]:
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
"name": "extract_textures",
|
||||||
|
"default_value": false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "output_directory",
|
||||||
|
"default_value": "",
|
||||||
|
"property_hint": PROPERTY_HINT_DIR,
|
||||||
|
"hint_string": "Leave empty to extract next to the WAD file",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
func _get_option_visibility(_path: String, _option_name: StringName, _options: Dictionary) -> bool:
|
||||||
|
if _option_name == "output_directory":
|
||||||
|
return _options.get("extract_textures", true)
|
||||||
|
return true
|
||||||
|
|
||||||
|
|
||||||
|
func _import(source_file: String, save_path: String, options: Dictionary,
|
||||||
|
_platform_variants: Array[String], _gen_files: Array[String]) -> Error:
|
||||||
|
var extract: bool = options.get("extract_textures", true)
|
||||||
|
|
||||||
|
var wad := GoldSrcWAD.new()
|
||||||
|
var err = wad.load_wad(source_file)
|
||||||
|
if err != OK:
|
||||||
|
push_error("WAD Importer: Failed to load '%s': %s" % [source_file, error_string(err)])
|
||||||
|
return err
|
||||||
|
|
||||||
|
if extract:
|
||||||
|
var output_dir: String = options.get("output_directory", "")
|
||||||
|
if output_dir.is_empty():
|
||||||
|
# Default: create a folder named after the WAD next to it
|
||||||
|
output_dir = source_file.get_base_dir().path_join(
|
||||||
|
source_file.get_file().get_basename())
|
||||||
|
|
||||||
|
DirAccess.make_dir_recursive_absolute(output_dir)
|
||||||
|
|
||||||
|
var names = wad.get_texture_names()
|
||||||
|
var count := 0
|
||||||
|
for tex_name in names:
|
||||||
|
var tex = wad.get_texture(tex_name)
|
||||||
|
if tex == null:
|
||||||
|
continue
|
||||||
|
var img = tex.get_image()
|
||||||
|
if img == null:
|
||||||
|
continue
|
||||||
|
var png_path := output_dir.path_join(tex_name.to_lower() + ".png")
|
||||||
|
img.save_png(png_path)
|
||||||
|
count += 1
|
||||||
|
|
||||||
|
print("WAD Importer: Extracted %d textures to %s" % [count, output_dir])
|
||||||
|
|
||||||
|
# Save a minimal marker resource so Godot considers the import complete
|
||||||
|
var res := Resource.new()
|
||||||
|
return ResourceSaver.save(res, save_path + "." + _get_save_extension())
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dl2ri2g5ai8cf
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
[plugin]
|
||||||
|
|
||||||
|
name="GoldSrc"
|
||||||
|
description="Import GoldSrc engine assets (BSP maps, WAD textures, MDL models, SPR sprites)"
|
||||||
|
author="goldsrc-godot"
|
||||||
|
version="0.1.0"
|
||||||
|
script="plugin.gd"
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
@tool
|
||||||
|
extends EditorPlugin
|
||||||
|
|
||||||
|
var bsp_importer: EditorImportPlugin
|
||||||
|
var mdl_importer: EditorImportPlugin
|
||||||
|
var spr_importer: EditorImportPlugin
|
||||||
|
var wad_importer: EditorImportPlugin
|
||||||
|
|
||||||
|
|
||||||
|
func _enter_tree() -> void:
|
||||||
|
bsp_importer = preload("res://addons/goldsrc/importer/bsp_importer.gd").new()
|
||||||
|
mdl_importer = preload("res://addons/goldsrc/importer/mdl_importer.gd").new()
|
||||||
|
spr_importer = preload("res://addons/goldsrc/importer/spr_importer.gd").new()
|
||||||
|
wad_importer = preload("res://addons/goldsrc/importer/wad_importer.gd").new()
|
||||||
|
add_import_plugin(bsp_importer)
|
||||||
|
add_import_plugin(mdl_importer)
|
||||||
|
add_import_plugin(spr_importer)
|
||||||
|
add_import_plugin(wad_importer)
|
||||||
|
|
||||||
|
|
||||||
|
func _exit_tree() -> void:
|
||||||
|
remove_import_plugin(bsp_importer)
|
||||||
|
remove_import_plugin(mdl_importer)
|
||||||
|
remove_import_plugin(spr_importer)
|
||||||
|
remove_import_plugin(wad_importer)
|
||||||
|
bsp_importer = null
|
||||||
|
mdl_importer = null
|
||||||
|
spr_importer = null
|
||||||
|
wad_importer = null
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://eql0skovdole
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://7bv5im2gve24"
|
||||||
|
path="res://.godot/imported/bustglass1.wav-5a321c1622e14fb90448620412692ee8.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/debris/bustglass1.wav"
|
||||||
|
dest_files=["res://.godot/imported/bustglass1.wav-5a321c1622e14fb90448620412692ee8.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://ccdljstwvm5ap"
|
||||||
|
path="res://.godot/imported/bustglass2.wav-19b3dbab1fcc4a54c87c97a923b7cf7a.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/debris/bustglass2.wav"
|
||||||
|
dest_files=["res://.godot/imported/bustglass2.wav-19b3dbab1fcc4a54c87c97a923b7cf7a.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://byafn5vjq1q4i"
|
||||||
|
path="res://.godot/imported/bustglass3.wav-897f694350026f541b2bd32aa4be9ce2.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/debris/bustglass3.wav"
|
||||||
|
dest_files=["res://.godot/imported/bustglass3.wav-897f694350026f541b2bd32aa4be9ce2.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://s3toeu34hkyu"
|
||||||
|
path="res://.godot/imported/clipinsert1.wav-6c6bbac54c1a1e384662e873d716b7dc.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/items/clipinsert1.wav"
|
||||||
|
dest_files=["res://.godot/imported/clipinsert1.wav-6c6bbac54c1a1e384662e873d716b7dc.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://ce5a4cctk2cxu"
|
||||||
|
path="res://.godot/imported/cliprelease1.wav-217792f9ae8c4e1df723fdfb39502c53.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/items/cliprelease1.wav"
|
||||||
|
dest_files=["res://.godot/imported/cliprelease1.wav-217792f9ae8c4e1df723fdfb39502c53.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://y7a0fdpxr6xu"
|
||||||
|
path="res://.godot/imported/guncock1.wav-54ef75289da4dbfe0244fb7564377961.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/items/guncock1.wav"
|
||||||
|
dest_files=["res://.godot/imported/guncock1.wav-54ef75289da4dbfe0244fb7564377961.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://cjmh2mhrcnhmb"
|
||||||
|
path="res://.godot/imported/zombie_industrial_loop.ogg-97e063f96057a019c1cb4b11d3b1adc6.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/music/zombie_industrial_loop.ogg"
|
||||||
|
dest_files=["res://.godot/imported/zombie_industrial_loop.ogg-97e063f96057a019c1cb4b11d3b1adc6.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
loop_offset=0
|
||||||
|
bpm=112.5
|
||||||
|
beat_count=108
|
||||||
|
bar_beats=4
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://xyc5cwgyhfms"
|
||||||
|
path="res://.godot/imported/pl_metal1.wav-42fb8eebd82a46db937bb26761e30ef3.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/player/pl_metal1.wav"
|
||||||
|
dest_files=["res://.godot/imported/pl_metal1.wav-42fb8eebd82a46db937bb26761e30ef3.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://ho1s43gk3hh7"
|
||||||
|
path="res://.godot/imported/pl_metal2.wav-68c295c4e5934b39639453eb4ac7bb86.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/player/pl_metal2.wav"
|
||||||
|
dest_files=["res://.godot/imported/pl_metal2.wav-68c295c4e5934b39639453eb4ac7bb86.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://b4p7jku5hr3m5"
|
||||||
|
path="res://.godot/imported/pl_metal3.wav-b7957637b584240fd4fbf20022deda4f.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/player/pl_metal3.wav"
|
||||||
|
dest_files=["res://.godot/imported/pl_metal3.wav-b7957637b584240fd4fbf20022deda4f.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://6rqyer6de744"
|
||||||
|
path="res://.godot/imported/pl_metal4.wav-75e3af6a3e59541fba589ed0077615b3.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/player/pl_metal4.wav"
|
||||||
|
dest_files=["res://.godot/imported/pl_metal4.wav-75e3af6a3e59541fba589ed0077615b3.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cgj8qrq5b8ek1"
|
||||||
|
path="res://.godot/imported/pl_pain7.wav-9b92e039c95d7d9ed3bce71138d0d840.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/player/pl_pain7.wav"
|
||||||
|
dest_files=["res://.godot/imported/pl_pain7.wav-9b92e039c95d7d9ed3bce71138d0d840.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://bkuqkytgyiqoc"
|
||||||
|
path="res://.godot/imported/dryfire1.wav-a0ce0b345f70cf8c349f33366ea96915.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/weapons/dryfire1.wav"
|
||||||
|
dest_files=["res://.godot/imported/dryfire1.wav-a0ce0b345f70cf8c349f33366ea96915.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://d2tbx2yh7bsgb"
|
||||||
|
path="res://.godot/imported/explode3.wav-3dba11140b272f7d09f0a32dae9c68f4.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/weapons/explode3.wav"
|
||||||
|
dest_files=["res://.godot/imported/explode3.wav-3dba11140b272f7d09f0a32dae9c68f4.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://7rp6ypy5qkxo"
|
||||||
|
path="res://.godot/imported/explode4.wav-2a1fd2def1be7f87e2d4170c7935734e.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/weapons/explode4.wav"
|
||||||
|
dest_files=["res://.godot/imported/explode4.wav-2a1fd2def1be7f87e2d4170c7935734e.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cmbo466uy2w44"
|
||||||
|
path="res://.godot/imported/explode5.wav-f37b7d55a94ca74c637137d08c0efc5a.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/weapons/explode5.wav"
|
||||||
|
dest_files=["res://.godot/imported/explode5.wav-f37b7d55a94ca74c637137d08c0efc5a.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://eu4mpcdrhujg"
|
||||||
|
path="res://.godot/imported/hks1.wav-5afc7788d247a6e2ecdee212682213f3.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/weapons/hks1.wav"
|
||||||
|
dest_files=["res://.godot/imported/hks1.wav-5afc7788d247a6e2ecdee212682213f3.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://ba2p4vv66pxbo"
|
||||||
|
path="res://.godot/imported/hks2.wav-a8fa00ea683bacaa73ed3971af49ec46.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/weapons/hks2.wav"
|
||||||
|
dest_files=["res://.godot/imported/hks2.wav-a8fa00ea683bacaa73ed3971af49ec46.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cldvtw12686n6"
|
||||||
|
path="res://.godot/imported/hks3.wav-6d4c5e98aa75a598bbaeb4d3ae9762fa.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/weapons/hks3.wav"
|
||||||
|
dest_files=["res://.godot/imported/hks3.wav-6d4c5e98aa75a598bbaeb4d3ae9762fa.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cyvgev7nhen2v"
|
||||||
|
path="res://.godot/imported/claw_miss1.wav-14558e068d3bf5903446c1905fd2aea5.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/claw_miss1.wav"
|
||||||
|
dest_files=["res://.godot/imported/claw_miss1.wav-14558e068d3bf5903446c1905fd2aea5.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dwfnaltcs0xhu"
|
||||||
|
path="res://.godot/imported/claw_miss2.wav-f943074afb53eeef25d51da65bf9c83d.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/claw_miss2.wav"
|
||||||
|
dest_files=["res://.godot/imported/claw_miss2.wav-f943074afb53eeef25d51da65bf9c83d.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://ciss3tx6orpsq"
|
||||||
|
path="res://.godot/imported/claw_strike1.wav-a4baca2453611bd2eb4ab6b09abda977.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/claw_strike1.wav"
|
||||||
|
dest_files=["res://.godot/imported/claw_strike1.wav-a4baca2453611bd2eb4ab6b09abda977.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://br4cucdm3rlei"
|
||||||
|
path="res://.godot/imported/claw_strike2.wav-a29c4c7afd58c82a25fcbcad9f2a7e2f.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/claw_strike2.wav"
|
||||||
|
dest_files=["res://.godot/imported/claw_strike2.wav-a29c4c7afd58c82a25fcbcad9f2a7e2f.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://s7wd3grqssry"
|
||||||
|
path="res://.godot/imported/claw_strike3.wav-10b43573524aa576abb1ab30a0bf923c.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/claw_strike3.wav"
|
||||||
|
dest_files=["res://.godot/imported/claw_strike3.wav-10b43573524aa576abb1ab30a0bf923c.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://o4g6in1otyig"
|
||||||
|
path="res://.godot/imported/zo_alert10.wav-5c62486989fa332299acadd4861c5413.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_alert10.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_alert10.wav-5c62486989fa332299acadd4861c5413.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dkd7hfxoj5xjh"
|
||||||
|
path="res://.godot/imported/zo_alert20.wav-b9de2e7eba81a460536ba692c8430cfd.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_alert20.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_alert20.wav-b9de2e7eba81a460536ba692c8430cfd.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://sk1ro4urg2cs"
|
||||||
|
path="res://.godot/imported/zo_alert30.wav-dcc133093c4a2b3696bca82fad3ec896.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_alert30.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_alert30.wav-dcc133093c4a2b3696bca82fad3ec896.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://748ao6mr1nel"
|
||||||
|
path="res://.godot/imported/zo_attack1.wav-3002ebc52375b18c0a28e6674493ddd3.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_attack1.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_attack1.wav-3002ebc52375b18c0a28e6674493ddd3.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://0l8xv6hx3oj6"
|
||||||
|
path="res://.godot/imported/zo_attack2.wav-15c5e901615a03e92903dfe51b842da0.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_attack2.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_attack2.wav-15c5e901615a03e92903dfe51b842da0.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://crh4qscriwgk7"
|
||||||
|
path="res://.godot/imported/zo_idle1.wav-a27e0c3b40ad3a01c705cf4f2e3fae40.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_idle1.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_idle1.wav-a27e0c3b40ad3a01c705cf4f2e3fae40.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://d0xflxyxshva2"
|
||||||
|
path="res://.godot/imported/zo_idle2.wav-f6c47eb9b7f30bacddd7912c1239cd0e.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_idle2.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_idle2.wav-f6c47eb9b7f30bacddd7912c1239cd0e.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://qiewybqnhnd6"
|
||||||
|
path="res://.godot/imported/zo_idle3.wav-91fec152e336727fd32a741aedba191e.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_idle3.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_idle3.wav-91fec152e336727fd32a741aedba191e.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dxgc66x1yivao"
|
||||||
|
path="res://.godot/imported/zo_idle4.wav-aed9aa8acc48de084ce4c55d26056535.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_idle4.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_idle4.wav-aed9aa8acc48de084ce4c55d26056535.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cugg0jece34w3"
|
||||||
|
path="res://.godot/imported/zo_pain1.wav-148f9f8c593375ca6dccc65c0b8b94a6.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_pain1.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_pain1.wav-148f9f8c593375ca6dccc65c0b8b94a6.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dd0h5f0tqi2re"
|
||||||
|
path="res://.godot/imported/zo_pain2.wav-a62544ba386a1a58ae488d14d8222fdf.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/zombie/zo_pain2.wav"
|
||||||
|
dest_files=["res://.godot/imported/zo_pain2.wav-a62544ba386a1a58ae488d14d8222fdf.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ufe78u0lbqg1"
|
||||||
|
path="res://.godot/imported/blood.png-f969f52c0a73735f42da79aa1f6aefc4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/effects/blood.png"
|
||||||
|
dest_files=["res://.godot/imported/blood.png-f969f52c0a73735f42da79aa1f6aefc4.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
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
shader_type canvas_item;
|
||||||
|
render_mode unshaded;
|
||||||
|
uniform float strength : hint_range(0.0, 1.0) = 0.0;
|
||||||
|
void fragment() {
|
||||||
|
vec2 p = (UV - vec2(0.5)) * 2.0;
|
||||||
|
float edge = smoothstep(0.28, 1.12, length(p));
|
||||||
|
COLOR = vec4(0.65, 0.015, 0.025, edge * strength * 0.62);
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://ch5sbbogmvmwc
|
||||||
@@ -0,0 +1,320 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"source": "models/v_9mmar.mdl",
|
||||||
|
"destination": "assets/weapons/v_9mmar.mdl",
|
||||||
|
"sha256": "3acee98ba922578e017db3e2087e3b6f2583e5d14a277f853bfe5a53de7468a5",
|
||||||
|
"textures": 13,
|
||||||
|
"sequence_groups": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "models/w_9mmar.mdl",
|
||||||
|
"destination": "assets/weapons/w_9mmar.mdl",
|
||||||
|
"sha256": "8c471c4aa523c2a04fe117ff5b69f9a8b38da3fd30d483c6e9f4309f73cbb9ae",
|
||||||
|
"textures": 0,
|
||||||
|
"sequence_groups": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "models/p_9mmar.mdl",
|
||||||
|
"destination": "assets/weapons/p_9mmar.mdl",
|
||||||
|
"sha256": "c40b0ad38d999d68430862a080d19bcea083db92e3d83503f6adc98cfb89a3de",
|
||||||
|
"textures": 2,
|
||||||
|
"sequence_groups": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/weapons/hks1.wav",
|
||||||
|
"destination": "assets/audio/weapons/hks1.wav",
|
||||||
|
"sha256": "f4df259d2c22faba729346172b937ad31ac4ab46f88fb0ecb3fc5ff40863dd63",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 1.2595918367346939
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/weapons/hks2.wav",
|
||||||
|
"destination": "assets/audio/weapons/hks2.wav",
|
||||||
|
"sha256": "13fd0120e40ac5648e3da9724bbe129c61bb10dff476c1cf7c457042994700f7",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 1.152018140589569
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/weapons/hks3.wav",
|
||||||
|
"destination": "assets/audio/weapons/hks3.wav",
|
||||||
|
"sha256": "cc1858ebbb266bdde31ccc03985e06f453b8687825c138b4792d1e87840a5437",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 1.2436734693877551
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/weapons/dryfire1.wav",
|
||||||
|
"destination": "assets/audio/weapons/dryfire1.wav",
|
||||||
|
"sha256": "155e1c99c487607a872696c1c9316bf339bfe317907f804d487d361b234a50f0",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 0.17505668934240362
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/items/clipinsert1.wav",
|
||||||
|
"destination": "assets/audio/items/clipinsert1.wav",
|
||||||
|
"sha256": "46edb5285edf1370ef7f52cd88e06d81391037d664a7b76ed991cd0e5929bd09",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 0.5688888888888889
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/items/cliprelease1.wav",
|
||||||
|
"destination": "assets/audio/items/cliprelease1.wav",
|
||||||
|
"sha256": "8ca78a16e1aded33bd837abc4369bb91bcc4d31e967285183a5586f7d40539fb",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 0.2693424036281179
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/items/guncock1.wav",
|
||||||
|
"destination": "assets/audio/items/guncock1.wav",
|
||||||
|
"sha256": "ed96f81f5b097bf2f28e988fea77a1c2f878c2c1c59682d549f06b418eb70d6b",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 0.5624036281179138
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/claw_miss1.wav",
|
||||||
|
"destination": "assets/audio/zombie/claw_miss1.wav",
|
||||||
|
"sha256": "6bf27d007a2b5798593b8da66489acb0f458ada8535f276cb3fd0272a43caef2",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.2746485260770975
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/claw_miss2.wav",
|
||||||
|
"destination": "assets/audio/zombie/claw_miss2.wav",
|
||||||
|
"sha256": "4c94101632fdd7898dc824ca4a583d0a7c937e5d60c8017f8f7c66e5aad0d263",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.31247165532879817
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/claw_strike1.wav",
|
||||||
|
"destination": "assets/audio/zombie/claw_strike1.wav",
|
||||||
|
"sha256": "fcee49297f976e21bc5cea114737490a2a004cad9cd426ac3d8a6ac6b304e352",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 0.8214512471655329
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/claw_strike2.wav",
|
||||||
|
"destination": "assets/audio/zombie/claw_strike2.wav",
|
||||||
|
"sha256": "2bf234b696153a36b52c0b50dae60fa02dd1e3cb0348f6e298362e37890f1dd8",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 0.9551473922902495
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/claw_strike3.wav",
|
||||||
|
"destination": "assets/audio/zombie/claw_strike3.wav",
|
||||||
|
"sha256": "2453fa506fe2c3fdbe592c70f4477217f29225fc3a3883d41c4f216bdba57a57",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 22050,
|
||||||
|
"duration": 0.6505215419501134
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_alert10.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_alert10.wav",
|
||||||
|
"sha256": "c7beff9da12ee5f3f0786017d85d38fc17aeeb56f6647b7b8cbf75832a2cb1d0",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 1.0554195011337868
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_alert20.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_alert20.wav",
|
||||||
|
"sha256": "473f1302fdd687882ed8c3908b4fe28f3e3382a3bed6f29148aea70744c562d0",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.6281179138321995
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_alert30.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_alert30.wav",
|
||||||
|
"sha256": "0148ce5933f0b025b3367ffe13555cdc5f89c2872c8ba8eb6a6fccd21ffc6a02",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.6054421768707483
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_attack1.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_attack1.wav",
|
||||||
|
"sha256": "c6facd042775c8ef9c4c4c5a91f8b301a479ed2e7969a69ec7775b8431562805",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 2.5126530612244897
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_attack2.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_attack2.wav",
|
||||||
|
"sha256": "daaa3473f67e418464a4188287fdf50161cade05fcccb175c2605f3176beda17",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 1.0940589569160997
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_idle1.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_idle1.wav",
|
||||||
|
"sha256": "acf1be1005fb623557a7744a7dda6bf7ebd74dca170ad70ff9c8a7d60ab88ed2",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.532063492063492
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_idle2.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_idle2.wav",
|
||||||
|
"sha256": "c7d1a63201f640d79416891057e3ac2164a76010215c0c9837cedac0ac013876",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.2384580498866213
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_idle3.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_idle3.wav",
|
||||||
|
"sha256": "a101d7f3799cfee122f598f0083dfc0d983b4fab49367d5bf7b683390a3931ac",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.4160544217687075
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_idle4.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_idle4.wav",
|
||||||
|
"sha256": "d7d31fa5859f6549021ca727c876d48fa044030aca765be944ebe2b05eab4076",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.6985034013605442
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_pain1.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_pain1.wav",
|
||||||
|
"sha256": "e7ac56b93ce160283001823ef1a85160bb5a878860b37e4ed451bea2baefdd66",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 1.160453514739229
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/zombie/zo_pain2.wav",
|
||||||
|
"destination": "assets/audio/zombie/zo_pain2.wav",
|
||||||
|
"sha256": "de7e75a9e2a10f7cd459c047a1aee1770dac527dcd96d5cb371a0c3724d5265e",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.7639002267573696
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/player/pl_metal1.wav",
|
||||||
|
"destination": "assets/audio/player/pl_metal1.wav",
|
||||||
|
"sha256": "4b0e2c21018cc89e25cc68ae5a8a74042cd59f4b0034e12adebe8365592d586b",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.582312925170068
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/player/pl_metal2.wav",
|
||||||
|
"destination": "assets/audio/player/pl_metal2.wav",
|
||||||
|
"sha256": "db8c0c6cd03196daf2912f0579a45f5023d48c8e1f7fed95b02e31d39030eb4b",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.5522902494331066
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/player/pl_metal3.wav",
|
||||||
|
"destination": "assets/audio/player/pl_metal3.wav",
|
||||||
|
"sha256": "7cba90d8900b85f53870902438dd668b95ad54abebb76b849d252bf3e58ce20a",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.606077097505669
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/player/pl_metal4.wav",
|
||||||
|
"destination": "assets/audio/player/pl_metal4.wav",
|
||||||
|
"sha256": "8e91e7e7e5ff18b8891c9d8ab5196ad6f7ff451ca38d4311d0304b2fc6c32626",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.5500226757369614
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/debris/bustglass1.wav",
|
||||||
|
"destination": "assets/audio/debris/bustglass1.wav",
|
||||||
|
"sha256": "0fc12e9e858ab2ed24729561d93812d654e2623adfd7f93960c843f1f7d1e205",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.76
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/debris/bustglass2.wav",
|
||||||
|
"destination": "assets/audio/debris/bustglass2.wav",
|
||||||
|
"sha256": "05a831f658b1e24e709b51e36f27bd4db4ae817dddb7b860b06a58d929b6bd92",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 0.9583673469387755
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/debris/bustglass3.wav",
|
||||||
|
"destination": "assets/audio/debris/bustglass3.wav",
|
||||||
|
"sha256": "08a83da0959cb5f9193f2874d27836559c3ab8684df71bd61ea00a641a3d446f",
|
||||||
|
"channels": 1,
|
||||||
|
"bits": 8,
|
||||||
|
"rate": 11025,
|
||||||
|
"duration": 2.6071655328798187
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/player/pl_pain7.wav",
|
||||||
|
"destination": "assets/audio/player/pl_pain7.wav",
|
||||||
|
"sha256": "71f49330df2247cabd87a78a6cddf247900d79b363747e5092c75c54ef9e6b04",
|
||||||
|
"event": "player death (original pain vocal)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "models/grenade.mdl",
|
||||||
|
"destination": "assets/weapons/grenade.mdl",
|
||||||
|
"sha256": "bc6126523037ed6442fdd44c0ed9f69e2b024bdcc8e2a60dbcc39f97bd847ec9",
|
||||||
|
"textures": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/weapons/explode3.wav",
|
||||||
|
"destination": "assets/audio/weapons/explode3.wav",
|
||||||
|
"sha256": "e5c88796ffa1bd7157ac29aaccff54d767fe67bcada52d0f5f488a03dd17d9a6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/weapons/explode4.wav",
|
||||||
|
"destination": "assets/audio/weapons/explode4.wav",
|
||||||
|
"sha256": "f6e09e5bfe44a6ea0d0c276e8b632f7911dcbece62329851a722a53a48be42c4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "sound/weapons/explode5.wav",
|
||||||
|
"destination": "assets/audio/weapons/explode5.wav",
|
||||||
|
"sha256": "a39a4098aedd116a1688196a3338f03ea83f781df726bce184a03845a54f808d"
|
||||||
|
}
|
||||||
|
]
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://usfsatrehju"
|
||||||
|
path="res://.godot/imported/ceiling.png-4df6872daceb2f13c67d2d3b47380825.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/ceiling.png"
|
||||||
|
dest_files=["res://.godot/imported/ceiling.png-4df6872daceb2f13c67d2d3b47380825.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
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dvsqowqr6mf80"
|
||||||
|
path="res://.godot/imported/floor.png-bc19f2b688ab458014752317127027f7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/floor.png"
|
||||||
|
dest_files=["res://.godot/imported/floor.png-bc19f2b688ab458014752317127027f7.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
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cdfhikteb0e40"
|
||||||
|
path="res://.godot/imported/wall.png-35b80c25b8f7299ed1631f28676b0e6a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/wall.png"
|
||||||
|
dest_files=["res://.godot/imported/wall.png-35b80c25b8f7299ed1631f28676b0e6a.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
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b2ld42idtd24m"
|
||||||
|
path="res://.godot/imported/zombie_00.png-6550d19ec966d284cb6b2aea7443ac12.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/zombie_00.png"
|
||||||
|
dest_files=["res://.godot/imported/zombie_00.png-6550d19ec966d284cb6b2aea7443ac12.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
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user