package clientdata.visitors.terrain.layers; import java.util.ArrayList; import java.util.List; import org.apache.mina.core.buffer.IoBuffer; import clientdata.visitors.TerrainVisitor; public class ListLayer extends Layer { private List<Layer> children; private List<BoundaryLayer> boundaries; private List<FilterLayer> filters; private List<HeightLayer> heights; private int invert_boundaries; private int invert_filters; private int unk4; private String description; @Override public LayerType getType() { return LayerType.CONTAINER; } public ListLayer() { children = new ArrayList<Layer>(); boundaries = new ArrayList<BoundaryLayer>(); filters = new ArrayList<FilterLayer>(); heights = new ArrayList<HeightLayer>(); } public List<Layer> getChildren() { return children; } public List<BoundaryLayer> getBoundaries() { return boundaries; } public List<FilterLayer> getFilters() { return filters; } public List<HeightLayer> getHeights() { return heights; } public void addChild(Layer l) { if(l instanceof BoundaryLayer) { boundaries.add((BoundaryLayer) l); } else if(l instanceof FilterLayer) { filters.add((FilterLayer)l); } else if(l instanceof HeightLayer) { heights.add((HeightLayer)l); } else { children.add((ListLayer) l); } } @Override public void loadData(IoBuffer buffer) throws Exception { invert_boundaries = buffer.getInt(); invert_filters = buffer.getInt(); unk4 = buffer.getInt(); //description = buffer.getString(Charset.forName("US-ASCII").newDecoder()); } public boolean boundariesInverted() { return invert_boundaries != 0; } public boolean filtersInverted() { return invert_filters != 0; } public int getUnk4() { return unk4; } public String getDescription() { return description; } public float process(float x, float y, float transform_value, float base_value, TerrainVisitor ti) { return 0.0f; } }