Skip to content

Commit cd37bd5

Browse files
committed
⚡️ (mapScript) 优化mapPatches的加载逻辑,自动解析依赖
1 parent 0a6cbcd commit cd37bd5

4 files changed

Lines changed: 49 additions & 21 deletions

File tree

scripts/mapScript/lib/ScriptMapGenerator.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class ScriptMapGenerator(val script: Script, val width: Int, val height: Int) {
5858
script.logger.log(Level.SEVERE, "loadGenerator出错", e)
5959
MapManager.loadMap()
6060
}
61+
if (script.enabled) return// Already enabled inside WorldLoadEvent
6162
MindustryDispatcher.safeBlocking {
6263
ScriptManager.enableScript(script, true)
6364
}
@@ -92,6 +93,8 @@ class ScriptMapGenerator(val script: Script, val width: Int, val height: Int) {
9293
)
9394
}
9495

96+
override fun toString(): String = "ScriptGeneratorMap"
97+
9598
override suspend fun loadMap(info: MapInfo) {
9699
val generator = knownMaps[info.id]?.generator ?: return MapManager.loadMap()
97100
generator.load()

scripts/mapScript/module.kts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,18 @@ fun getToLoadMapScripts(): List<ScriptInfo> {
5959
ScriptRegistry.getScriptInfo(scriptId) ?: null.also {
6060
delayBroadcast("[red]该服务器不存在对应地图脚本,请联系管理员: {id}".with("id" to scriptId))
6161
}
62-
}
62+
}.flatMap {
63+
listOf(it) + ScriptRegistry.allScripts { dep ->
64+
!dep.enabled && it.dependsOn(dep, includeSoft = true)
65+
}
66+
}.toSet().toList()
6367
}
6468

65-
listen<EventType.ContentPatchLoadEvent> {
69+
listen<EventType.ContentPatchLoadEvent> { e ->
6670
val patches = getToLoadMapScripts().flatMap { it.inst?.mapPatches.orEmpty() }
6771
if (patches.isEmpty()) return@listen
6872
logger.info("Patches loaded: ${patches.size}")
69-
it.patches.addAll(patches)
73+
e.patches.addAll(patches)
7074
}
7175

7276
listen<EventType.WorldLoadEvent> {

scripts/mapScript/tags/autoExchange.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ val cores = content?.run {
3030
@Language("JSON5")
3131
val patch = """
3232
{
33-
"name": "CoreWar",
33+
"name": "AutoExchange",
3434
${cores.joinToString("\n")}
3535
}
3636
""".trimIndent()
Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,77 @@
11
ID mapScript
22
FQ_NAME mapScript.Module
3-
+DEPENDS coreMindustry
4-
+DEPENDS wayzer/maps
3+
+DEPENDS coreMindustry
54
+DEPENDS wayzer/maps 获取地图信息
65
+IMPORT DefaultImport mapScript.lib.*
76
+SOFT_DEPENDS wayzer/map/mapInfo 显示地图信息
87

98
ID mapScript/1001
109
FQ_NAME mapScript._1001
11-
+DEPENDS coreMindustry/utilMapRule
12-
+DEPENDS coreMindustry/utilMapRule 参数平衡
1310
+DEPENDS mapScript module
1411
+DEPENDS mapScript/shared/hexed
1512

1613
ID mapScript/1002
1714
FQ_NAME mapScript._1002
1815
+DEPENDS mapScript module
19-
+DEPENDS mapScript/shared/hexed
16+
+DEPENDS mapScript/shared/hexed
2017
+SOFT_DEPENDS mapScript/tags/autoExchange 等价交换
2118

2219
ID mapScript/1003
2320
FQ_NAME mapScript._1003
24-
+DEPENDS coreMindustry/utilMapRule
25-
+DEPENDS coreMindustry/utilMapRule 参数平衡
2621
+DEPENDS mapScript module
27-
+DEPENDS mapScript/shared/hexed
22+
+DEPENDS mapScript/shared/hexed
23+
24+
ID mapScript/1004
25+
FQ_NAME mapScript._1004
26+
+DEPENDS mapScript module
27+
+DEPENDS mapScript/shared/hexed
28+
+SOFT_DEPENDS mapScript/13545 CoreWar
29+
30+
ID mapScript/1005
31+
FQ_NAME mapScript._1005
32+
+DEPENDS mapScript module
33+
+DEPENDS mapScript/14562 填海造陆
34+
+DEPENDS mapScript/shared/hexed
2835

2936
ID mapScript/1009
3037
FQ_NAME mapScript._1009
31-
+DEPENDS coreMindustry/utilMapRule
32-
+DEPENDS coreMindustry/utilMapRule 参数平衡
3338
+DEPENDS mapScript module
34-
+DEPENDS mapScript/shared/hexed
39+
+DEPENDS mapScript/shared/hexed
40+
41+
ID mapScript/13545
42+
FQ_NAME mapScript._13545
43+
+DEPENDS coreMindustry/menu 调用菜单
44+
+DEPENDS coreMindustry/util/spawnAround
45+
+DEPENDS mapScript module
3546

3647
ID mapScript/shared/hexed
3748
FQ_NAME mapScript.shared.Hexed
3849
+DEPENDS mapScript module
39-
+DEPENDS wayzer/map/betterTeam
4050
+DEPENDS wayzer/map/betterTeam 队伍分配
4151

4252
ID mapScript/shared/posMark
4353
FQ_NAME mapScript.shared.PosMark
4454
+DEPENDS mapScript module
4555

56+
ID mapScript/tags/TDDrop
57+
FQ_NAME mapScript.tags.TDDrop
58+
+DEPENDS mapScript module
59+
60+
4661
ID mapScript/tags/autoExchange
4762
FQ_NAME mapScript.tags.AutoExchange
48-
+DEPENDS coreMindustry/utilMapRule
49-
+DEPENDS coreMindustry/utilMapRule 修改核心容量
5063
+DEPENDS mapScript module
5164

52-
ID mapScript/tags/voidProduce
53-
FQ_NAME mapScript.tags.VoidProduce
54-
+DEPENDS coreMindustry/contentsTweaker
65+
ID mapScript/tags/limitAir
66+
FQ_NAME mapScript.tags.LimitAir
67+
+DEPENDS mapScript module
68+
69+
ID mapScript/tags/mapRule
70+
FQ_NAME mapScript.tags.MapRule
71+
+DEPENDS mapScript module
72+
73+
ID mapScript/tags/towerDefend
74+
FQ_NAME mapScript.tags.TowerDefend
5575
+DEPENDS mapScript module
76+
+SOFT_DEPENDS mapScript/tags/TDDrop 掉落
5677

0 commit comments

Comments
 (0)