/* * Copyright (c) 2014 tabletoptool.com team. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html * * Contributors: * rptools.com team - initial implementation * tabletoptool.com team - further development */ package com.t3.model; import java.awt.Color; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import com.t3.MD5Key; import com.t3.client.AppPreferences; import com.t3.client.AppUtil; import com.t3.model.drawing.DrawableColorPaint; import com.t3.model.drawing.DrawableTexturePaint; import com.t3.model.grid.GridFactory; import com.t3.util.ImageManager; public class ZoneFactory { public static final String DEFAULT_MAP_NAME = "Grasslands"; public static MD5Key defaultImageId; static { // TODO: I really don't like this being hard wired this way, need to make it a preference or something File grassImage = new File(AppUtil.getAppHome("resource/Default/Textures").getAbsolutePath() + "/Grass.png"); if (grassImage.exists()) { try { Asset asset = new Asset(DEFAULT_MAP_NAME, FileUtils.readFileToByteArray(grassImage)); defaultImageId = asset.getId(); // Make sure the image is loaded to avoid a flash screen when it becomes visible ImageManager.getImageAndWait(asset.getId()); } catch (IOException ioe) { ioe.printStackTrace(); } } } public static Zone createZone() { Zone zone = new Zone(); zone.setName(DEFAULT_MAP_NAME); zone.setBackgroundPaint(new DrawableTexturePaint(defaultImageId)); zone.setFogPaint(new DrawableColorPaint(Color.black)); zone.setVisible(AppPreferences.getNewMapsVisible()); zone.setHasFog(AppPreferences.getNewMapsHaveFOW()); zone.setUnitsPerCell(AppPreferences.getDefaultUnitsPerCell()); zone.setTokenVisionDistance(AppPreferences.getDefaultVisionDistance()); zone.setGrid(GridFactory.createGrid(AppPreferences.getDefaultGridType(),AppPreferences.getFaceEdge(), AppPreferences.getFaceVertex())); zone.setGridColor(AppPreferences.getDefaultGridColor().getRGB()); zone.getGrid().setSize(AppPreferences.getDefaultGridSize()); zone.getGrid().setOffset(0, 0); return zone; } }