package com.clearlyspam23.GLE.basic.layers.tile;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import com.clearlyspam23.GLE.level.Layer;
import com.clearlyspam23.GLE.level.LayerTemplate;
import com.clearlyspam23.GLE.util.Vector2;
public class TileLayerTemplate extends LayerTemplate{
private Vector2 defaultGridDimensions = new Vector2();
private List<TileConstraint> constraints = new ArrayList<TileConstraint>();
private boolean allowGridResizing;
public TileLayerTemplate() {
}
public TileLayerTemplate(TileLayerDefinition def) {
super(def);
}
@Override
public Layer<?> createLayer() {
return new TileLayer(this);
}
public double getDefaultGridHeight() {
return defaultGridDimensions.y;
}
public Vector2 getDefaultGridDimensions(){
return defaultGridDimensions;
}
public double getDefaultGridWidth() {
return defaultGridDimensions.x;
}
public void setDefaultGridDimensions(double gridWidth, double gridHeight) {
defaultGridDimensions.set(gridWidth, gridHeight);
}
public void setDefaultGridDimensions(Vector2 dimensions){
defaultGridDimensions.set(dimensions);
}
public boolean allowsGridResizing() {
return allowGridResizing;
}
public void allowGridResizing(boolean allowGridResizing) {
this.allowGridResizing = allowGridResizing;
}
public List<TileConstraint> getConstraints(){
return Collections.unmodifiableList(constraints);
}
public void addConstraint(TileConstraint constraint){
constraints.add(constraint);
}
public void clearConstraints(){
constraints.clear();
}
public void addAllConstraints(Collection<? extends TileConstraint> cons){
constraints.addAll(cons);
}
}