package com.clearlyspam23.GLE.basic.layers.tile; import com.clearlyspam23.GLE.Template; import com.clearlyspam23.GLE.basic.layers.tile.edit.TileLayerEditManager; import com.clearlyspam23.GLE.basic.layers.tile.gui.TileLayerGUIOptions; import com.clearlyspam23.GLE.edit.EditorItems; import com.clearlyspam23.GLE.level.LayerDefinition; public class TileLayerDefinition extends LayerDefinition<TileLayerGUIOptions, TileLayerTemplate> { private TileLayerEditManager editorData; public TileLayerDefinition(){ editorData = new TileLayerEditManager(); } @Override public String getName() { return "Tile"; } @Override public TileLayerTemplate buildFromEditorGUI(TileLayerGUIOptions gui) { TileLayerTemplate t = new TileLayerTemplate(this); t.setDefaultGridDimensions(gui.getGridDimensions()); return t; } @Override public TileLayerTemplate buildDefault() { TileLayerTemplate t = new TileLayerTemplate(this); t.setDefaultGridDimensions(32, 32); t.allowGridResizing(true); return t; } @Override public TileLayerGUIOptions getLayerComponent() { return new TileLayerGUIOptions(); } @Override public void setEditorGUITo(TileLayerGUIOptions gui, TileLayerTemplate template) { gui.setGridDimensions(template.getDefaultGridDimensions()); } public void onTemplateCreation(Template template){ TilesetManager manager = new TilesetManager(); template.putTemplateData(this, "tilesets", manager); } @Override public EditorItems<TileLayer> onTemplateOpen(final Template template){ TileEditorItems ans = new TileEditorItems(this); updateTilesets(template); return ans; } public void updateTilesets(Template template){ editorData.clearTilesets(); for(TilesetHandle t : ((TilesetManager) template.getTemplateData(this, "tilesets")).getAllTilesets()){ editorData.addTileset(t); } } public TileLayerEditManager getEditorData() { return editorData; } }