content: package emu.grasscutter.scripts.data;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import lombok.Setter;
  import lombok.ToString;
  
  @ToString
  @Setter
  public class SceneSuite {
      // make it refer the default empty list to avoid NPE caused by some group 
  	public List<Integer> monsters = List.of();
  	public List<Integer> gadgets = List.of();
  	public List<String> triggers = List.of();
      public List<Integer> regions = List.of();
      public int rand_weight;
  
  	public transient List<SceneMonster> sceneMonsters = List.of();
  	public transient List<SceneGadget> sceneGadgets = List.of();
  	public transient List<SceneTrigger> sceneTriggers = List.of();
      public transient List<SceneRegion> sceneRegions = List.of();
  
      public void init(SceneGroup sceneGroup) {
          if(sceneGroup.monsters != null){
              this.sceneMonsters = new ArrayList<>(
                  this.monsters.stream()
                      .filter(sceneGroup.monsters::containsKey)
                      .map(sceneGroup.monsters::get)
                      .toList()
              );
          }
  
          if(sceneGroup.gadgets != null){
              this.sceneGadgets = new ArrayList<>(
                  this.gadgets.stream()
                      .filter(sceneGroup.gadgets::containsKey)
                      .map(sceneGroup.gadgets::get)
                      .toList()
              );
          }
  
          if(sceneGroup.triggers != null) {
              this.sceneTriggers = new ArrayList<>(
                  this.triggers.stream()
                      .filter(sceneGroup.triggers::containsKey)
                      .map(sceneGroup.triggers::get)
                      .toList()
              );
          }
          if(sceneGroup.regions != null) {
              this.sceneRegions = new ArrayList<>(
                  this.regions.stream()
                      .filter(sceneGroup.regions::containsKey)
                      .map(sceneGroup.regions::get)
                      .toList()
              );
          }
  
      }
  }
  