mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-27 22:41:56 +08:00
refactor: 重构资源路径和组件结构
- 将attackstar.svg从UI目录移动到resources/common目录 - 将VerticalColorBar.tscn从UI/Variants目录移动到根components目录 - 将LaserSummoner.tscn从Bullets/Common目录移动到Bullets根目录 - 移除调试日志打印语句 - 优化ItemStore.gd的getTexture方法默认值处理 - 更新相关场景和脚本中的资源引用路径 - 添加FeedFilter调试工具组件 - 优化ComponentManager初始化逻辑
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
@tool
|
||||
extends HBoxContainer
|
||||
|
||||
enum ComposeMode {
|
||||
ALL,
|
||||
ANY,
|
||||
}
|
||||
|
||||
@export var targetFields: Array[FieldStore.Entity] = []
|
||||
@export var targetTopics: Array[FeedName.Topic] = []
|
||||
@export var composeMode: ComposeMode = ComposeMode.ALL
|
||||
@export var clickToRefresh: bool = false
|
||||
|
||||
var lastState: bool = false
|
||||
|
||||
func _ready():
|
||||
rebuild()
|
||||
|
||||
func _physics_process(_delta):
|
||||
if clickToRefresh != lastState:
|
||||
lastState = clickToRefresh
|
||||
rebuild()
|
||||
|
||||
func rebuild():
|
||||
for i in get_children():
|
||||
i.queue_free()
|
||||
|
||||
var files = DirTool.listdir("res://components/Feeds/")
|
||||
for file in files:
|
||||
var feed = load(file).instantiate() as Feed
|
||||
|
||||
# 检查字段条件
|
||||
var fieldPassed: bool = true
|
||||
if !targetFields.is_empty():
|
||||
fieldPassed = checkFieldCondition(feed)
|
||||
|
||||
# 检查主题条件
|
||||
var topicPassed: bool = true
|
||||
if !targetTopics.is_empty():
|
||||
topicPassed = checkTopicCondition(feed)
|
||||
|
||||
# 如果两个条件都满足,则添加到容器中
|
||||
if fieldPassed and topicPassed:
|
||||
add_child(feed)
|
||||
|
||||
func checkFieldCondition(feed: Feed) -> bool:
|
||||
var passed: bool = true
|
||||
for targetField in targetFields:
|
||||
var haveThis = false
|
||||
for feedField in feed.fields:
|
||||
if feedField == targetField:
|
||||
haveThis = true
|
||||
break
|
||||
passed = haveThis
|
||||
if composeMode == ComposeMode.ALL:
|
||||
if not passed:
|
||||
break
|
||||
elif composeMode == ComposeMode.ANY:
|
||||
if passed:
|
||||
break
|
||||
return passed
|
||||
|
||||
func checkTopicCondition(feed: Feed) -> bool:
|
||||
var passed: bool = false
|
||||
for targetTopic in targetTopics:
|
||||
var haveThis = feed.topic == targetTopic
|
||||
passed = haveThis
|
||||
if passed:
|
||||
break
|
||||
return passed
|
||||
Reference in New Issue
Block a user