mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-18 18:05:05 +01:00
Support Open Chest
This commit is contained in:
@@ -34,7 +34,7 @@ public class SceneGroup {
|
||||
* ConfigId - Gadget
|
||||
*/
|
||||
public Map<Integer, SceneGadget> gadgets;
|
||||
public List<SceneTrigger> triggers;
|
||||
public Map<String, SceneTrigger> triggers;
|
||||
public List<SceneRegion> regions;
|
||||
public List<SceneSuite> suites;
|
||||
public SceneInitConfig init_config;
|
||||
@@ -88,8 +88,9 @@ public class SceneGroup {
|
||||
.collect(Collectors.toMap(x -> x.config_id, y -> y));
|
||||
gadgets.values().forEach(m -> m.groupId = id);
|
||||
|
||||
triggers = ScriptLoader.getSerializer().toList(SceneTrigger.class, bindings.get("triggers"));
|
||||
triggers.forEach(t -> t.currentGroup = this);
|
||||
triggers = ScriptLoader.getSerializer().toList(SceneTrigger.class, bindings.get("triggers")).stream()
|
||||
.collect(Collectors.toMap(x -> x.name, y -> y));
|
||||
triggers.values().forEach(t -> t.currentGroup = this);
|
||||
|
||||
suites = ScriptLoader.getSerializer().toList(SceneSuite.class, bindings.get("suites"));
|
||||
regions = ScriptLoader.getSerializer().toList(SceneRegion.class, bindings.get("regions"));
|
||||
@@ -113,6 +114,13 @@ public class SceneGroup {
|
||||
.map(gadgets::get)
|
||||
.toList()
|
||||
);
|
||||
|
||||
suite.sceneTriggers = new ArrayList<>(
|
||||
suite.triggers.stream()
|
||||
.filter(triggers::containsKey)
|
||||
.map(triggers::get)
|
||||
.toList()
|
||||
);
|
||||
}
|
||||
|
||||
} catch (ScriptException e) {
|
||||
|
||||
@@ -15,4 +15,5 @@ public class SceneSuite {
|
||||
|
||||
public transient List<SceneMonster> sceneMonsters;
|
||||
public transient List<SceneGadget> sceneGadgets;
|
||||
public transient List<SceneTrigger> sceneTriggers;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ public class SceneTrigger {
|
||||
public String condition;
|
||||
public String action;
|
||||
|
||||
public SceneGroup currentGroup;
|
||||
public transient SceneGroup currentGroup;
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if(obj instanceof SceneTrigger sceneTrigger){
|
||||
|
||||
Reference in New Issue
Block a user