64 lines
1.9 KiB
GDScript
64 lines
1.9 KiB
GDScript
@tool
|
|
class_name Ground2D extends Node2D
|
|
|
|
@export var scene_config: SceneConfig
|
|
# @export var build_boarder := false:
|
|
# set(new_val):
|
|
# build_boarder = false
|
|
# _build_boarder()
|
|
@export var reload := false:
|
|
set(new_val):
|
|
reload = false
|
|
load_config()
|
|
|
|
@onready var directional_light := %DirectionalLight2D as DirectionalLight2D
|
|
@onready var foreground = %ParallaxForeground as ParallaxBackground
|
|
|
|
var footstep_audio = RandomAudioStreamPlayer.new()
|
|
|
|
|
|
func play_footstep_sound() -> void:
|
|
if not footstep_audio.audio_collections.is_empty():
|
|
footstep_audio.play_random()
|
|
|
|
|
|
func _ready() -> void:
|
|
foreground.layer = GlobalConfig.CANVAS_LAYER_FG
|
|
# %ColorRectTop.visible = true
|
|
# %ColorRectBottom.visible = true
|
|
add_child(footstep_audio)
|
|
load_config()
|
|
|
|
|
|
func load_config():
|
|
if not scene_config:
|
|
return
|
|
var type = scene_config.footstep_type
|
|
# foot step sound
|
|
footstep_audio.audio_collections.clear()
|
|
if type != "none":
|
|
var audio = SceneConfig.FOOTSTEP_AUDIO[type] as AudioStreamCollection
|
|
footstep_audio.audio_collections.append(audio)
|
|
# # collision boarder
|
|
# if scene_config.boarder:
|
|
# _load_collision_boarder()
|
|
# light color
|
|
# directional_light.color = scene_config.light_color
|
|
|
|
# func _build_boarder() -> void:
|
|
# if scene_config and $BGSprite2D and $BGSprite2D.texture:
|
|
# var image = $BGSprite2D.texture.get_image()
|
|
# var origin = $BGSprite2D.position + $BGSprite2D.offset
|
|
# var points = PackedVector2Array()
|
|
# for i in range(image.get_width()):
|
|
# for j in range(image.get_height()):
|
|
# if image.get_pixel(i, j).a > 0:
|
|
# points.append(origin + Vector2(i, j))
|
|
# var boarder = Geometry2D.convex_hull(points)
|
|
# scene_config.boarder = boarder
|
|
# _load_collision_boarder()
|
|
|
|
# func _load_collision_boarder() -> void:
|
|
# if scene_config and scene_config.boarder and $StaticBody2D/CollisionPolygon2D:
|
|
# $StaticBody2D/CollisionPolygon2D.polygon = scene_config.boarder
|