com.t3.model.ZoneFactory.java Source code

Java tutorial

Introduction

Here is the source code for com.t3.model.ZoneFactory.java

Source

/*
 * 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;
    }

}