/*
 * Copyright (c) 2017 modmuss50 and Gigabit101
 *
 *
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 *
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 *
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

package prospector.shootingstar.model;

import net.minecraft.block.Block;
import net.minecraft.block.properties.IProperty;
import net.minecraft.item.Item;

public class ModelCompound {
	private String inventoryVariant = "inventory";
	private String fileName = "shootingstar.undefinedfilename";
	private String blockstatePath;
	private IProperty[] ignoreProperties = null;
	private String modid;
	private Block block = null;
	private Item item = null;
	private int meta;

	public ModelCompound(String modid, Block block, int meta, String blockstatePath, IProperty... ignoreProperties) {
		this.modid = modid;
		this.block = block;
		this.blockstatePath = blockstatePath;
		this.ignoreProperties = ignoreProperties;
		this.meta = meta;
	}

	public ModelCompound(String modid, Block block, int meta, IProperty... ignoreProperties) {
		this(modid, block, meta, "", ignoreProperties);
	}

	public ModelCompound(String modid, Block block, IProperty... ignoreProperties) {
		this(modid, block, 0, "", ignoreProperties);
	}

	public ModelCompound(String modid, Block block, String blockstatePath, IProperty... ignoreProperties) {
		this(modid, block, 0, blockstatePath, ignoreProperties);
	}

	public ModelCompound(String modid, Item item, int meta, String blockstatePath) {
		this.modid = modid;
		this.item = item;
		this.blockstatePath = blockstatePath;
		this.meta = meta;
	}

	public ModelCompound(String modid, Item item, int meta) {
		this(modid, item, meta, "");
	}

	public ModelCompound(String modid, Item item) {
		this(modid, item, 0, "");
	}

	public ModelCompound(String modid, Item item, String blockstatePath) {
		this(modid, item, 0, blockstatePath);
	}

	public String getInventoryVariant() {
		return inventoryVariant;
	}

	public String getFileName() {
		return fileName;
	}

	public ModelCompound setFileName(String name) {
		fileName = name;
		return this;
	}

	public ModelCompound setInvVariant(String variant) {
		inventoryVariant = variant;
		return this;
	}

	public String getModid() {
		return modid;
	}

	public Block getBlock() {
		return block;
	}

	public Item getItem() {
		if (isBlock())
			return Item.getItemFromBlock(block);
		return item;
	}

	public boolean isBlock() {
		if (block != null)
			return true;
		return false;
	}

	public boolean isItem() {
		if (item != null)
			return true;
		return false;
	}

	public String getBlockStatePath() {
		return blockstatePath;
	}

	public IProperty[] getIgnoreProperties() {
		return ignoreProperties;
	}

	public int getMeta() {
		return meta;
	}
}
@@ -3112,32 +3112,132 @@
 eturn this;%0A%09%7D%0A%0A
+%09public void setBlockStatePath(String blockstatePath) %7B%0A%09%09this.blockstatePath = blockstatePath;%0A%09%7D%0A%0A
 %09public String g

Add setBlockStatePath to ModelCompound