mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-02-09 02:05:38 +08:00
Do not unload groups asked for by quests (#2212)
This commit is contained in:
parent
89376d58bf
commit
6da5343df0
@ -25,6 +25,7 @@ public class ExecRefreshGroupSuite extends QuestExecHandler {
|
||||
if (!scriptManager.refreshGroupSuite(groupId, suiteId, quest)) {
|
||||
result = false;
|
||||
}
|
||||
scriptManager.getGroupById(groupId).dontUnload = true;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -838,7 +838,7 @@ public final class Scene {
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
for (var group : this.loadedGroups) {
|
||||
if (!visible.contains(group.id) && !group.dynamic_load)
|
||||
if (!visible.contains(group.id) && !group.dynamic_load && !group.dontUnload)
|
||||
unloadGroup(scriptManager.getBlocks().get(group.block_id), group.id);
|
||||
}
|
||||
|
||||
|
@ -266,7 +266,8 @@ public class SceneScriptManager {
|
||||
suiteId,
|
||||
groupId,
|
||||
getScene().getId());
|
||||
} else {
|
||||
if (targetGroupInstance == null) return false;
|
||||
}
|
||||
Grasscutter.getLogger().debug("Refreshing group {} suite {}", groupId, suiteId);
|
||||
suiteId =
|
||||
refreshGroup(
|
||||
@ -274,7 +275,6 @@ public class SceneScriptManager {
|
||||
suiteId,
|
||||
false); // If suiteId is zero, the value of suiteId changes
|
||||
scene.broadcastPacket(new PacketGroupSuiteNotify(groupId, suiteId));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -40,6 +40,7 @@ public final class SceneGroup {
|
||||
public SceneGarbage garbages;
|
||||
public SceneInitConfig init_config;
|
||||
@Getter public boolean dynamic_load = false;
|
||||
public boolean dontUnload = false;
|
||||
|
||||
public SceneReplaceable is_replaceable;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user