diff --git a/common/src/main/java/com/dfsek/terra/config/templates/StructureTemplate.java b/common/src/main/java/com/dfsek/terra/config/templates/StructureTemplate.java index a291ae3f9..e98ae928c 100644 --- a/common/src/main/java/com/dfsek/terra/config/templates/StructureTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/templates/StructureTemplate.java @@ -4,16 +4,20 @@ import com.dfsek.tectonic.annotations.Abstractable; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.config.ConfigTemplate; +import com.dfsek.tectonic.config.ValidatedConfigTemplate; +import com.dfsek.tectonic.exception.ValidationException; import com.dfsek.terra.api.math.GridSpawn; import com.dfsek.terra.api.math.Range; import com.dfsek.terra.api.structures.script.StructureScript; import com.dfsek.terra.api.util.GlueList; import com.dfsek.terra.api.util.collections.ProbabilityCollection; +import org.checkerframework.checker.units.qual.A; +import java.time.Duration; import java.util.List; @SuppressWarnings({"unused", "FieldMayBeFinal"}) -public class StructureTemplate extends AbstractableTemplate implements ConfigTemplate { +public class StructureTemplate extends AbstractableTemplate implements ValidatedConfigTemplate { @Value("id") private String id; @@ -34,6 +38,21 @@ public class StructureTemplate extends AbstractableTemplate implements ConfigTem @Default private List features = new GlueList<>(); + @Value("repeat.scripts") + @Default + @Abstractable + private ProbabilityCollection repeatScripts = new ProbabilityCollection<>(); + + @Value("repeat.ticks.min") + @Default + @Abstractable + private long minRepeat = 20; + + @Value("repeat.ticks.max") + @Default + @Abstractable + private long maxRepeat = 20; + public String getID() { return id; } @@ -53,4 +72,10 @@ public class StructureTemplate extends AbstractableTemplate implements ConfigTem public GridSpawn getSpawn() { return spawn; } + + @Override + public boolean validate() throws ValidationException { + if(maxRepeat < minRepeat) throw new ValidationException("repeat.ticks.max must be greater than repeat.ticks.min"); + return true; + } }