/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher.creator.model.creator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.skcraft.launcher.builder.BuilderConfig; import com.skcraft.launcher.builder.BuilderOptions; import com.skcraft.launcher.persistence.Persistence; import lombok.Data; import java.io.File; @Data public class Pack { private String location; @JsonIgnore private Workspace workspace; @JsonIgnore private BuilderConfig cachedConfig; @JsonIgnore public File getDirectory() { File path = new File(location); if (path.isAbsolute()) { return path; } else { return new File(workspace.getDirectory(), location); } } @JsonIgnore public File getLoadersDir() { return new File(getDirectory(), "loaders"); } @JsonIgnore public File getSourceDir() { return new File(getDirectory(), "src"); } @JsonIgnore public File getModsDir() { return new File(getSourceDir(), "mods"); } @JsonIgnore public File getConfigFile() { return new File(getDirectory(), BuilderOptions.DEFAULT_CONFIG_FILENAME); } public void load() { setCachedConfig(Persistence.read(getConfigFile(), BuilderConfig.class, true)); getLoadersDir().mkdirs(); getSourceDir().mkdirs(); } public void createGuideFolders() { new File(getSourceDir(), "config").mkdirs(); new File(getSourceDir(), "mods").mkdirs(); new File(getSourceDir(), "resourcepacks").mkdirs(); } @JsonIgnore public boolean isLoaded() { return cachedConfig != null; } }