package info.u_team.u_team_core.util;

import net.minecraft.block.Block.Properties;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.*;
import net.minecraft.util.ResourceLocation;

public class BlockProperties extends Properties {
	
	public BlockProperties(Material material, MaterialColor color) {
		super(material, color);
	}
	
	public BlockProperties(Properties properties) {
		super(properties.material, properties.mapColor);
		blocksMovement = properties.blocksMovement;
		soundType = properties.soundType;
		lightValue = properties.lightValue;
		resistance = properties.resistance;
		hardness = properties.hardness;
		ticksRandomly = properties.ticksRandomly;
		slipperiness = properties.slipperiness;
		lootTable = properties.lootTable;
		variableOpacity = properties.variableOpacity;
	}
	
	public Material getMaterial() {
		return material;
	}
	
	public MaterialColor getMapColor() {
		return mapColor;
	}
	
	public boolean isBlocksMovement() {
		return blocksMovement;
	}
	
	public SoundType getSoundType() {
		return soundType;
	}
	
	public int getLightValue() {
		return lightValue;
	}
	
	public float getResistance() {
		return resistance;
	}
	
	public float getHardness() {
		return hardness;
	}
	
	public boolean isTickRandomly() {
		return ticksRandomly;
	}
	
	public float getSlipperiness() {
		return slipperiness;
	}
	
	public ResourceLocation getLootTable() {
		return lootTable;
	}
	
	public boolean isVariableOpacity() {
		return variableOpacity;
	}
	
}

@@ -197,16 +197,125 @@
 ocation;
+%0Aimport net.minecraftforge.common.ToolType;%0Aimport net.minecraftforge.fml.common.ObfuscationReflectionHelper;
 %0A%0Apublic
@@ -915,24 +915,766 @@
 bleOpacity;%0A
+%09%09setValueHarvestLevel(getValueHarvestLevel(properties));%0A%09%09setValueHarvestTool(getValueHarvestTool(properties));%0A%09%7D%0A%09%0A%09private int getValueHarvestLevel(Properties properties) %7B%0A%09%09return ObfuscationReflectionHelper.getPrivateValue(Properties.class, properties, %22harvestLevel%22);%0A%09%7D%0A%09%0A%09private void setValueHarvestLevel(int value) %7B%0A%09%09ObfuscationReflectionHelper.setPrivateValue(Properties.class, this, value, %22harvestLevel%22);%0A%09%7D%0A%09%0A%09private ToolType getValueHarvestTool(Properties properties) %7B%0A%09%09return ObfuscationReflectionHelper.getPrivateValue(Properties.class, properties, %22harvestTool%22);%0A%09%7D%0A%09%0A%09private void setValueHarvestTool(ToolType value) %7B%0A%09%09ObfuscationReflectionHelper.setPrivateValue(Properties.class, this, value, %22harvestTool%22);%0A
 %09%7D%0A%09%0A%09public
@@ -2340,12 +2340,161 @@
 ity;%0A%09%7D%0A
-
 %09%0A
+%09public int getHarvestLevel() %7B%0A%09%09return getValueHarvestLevel(this);%0A%09%7D%0A%09%0A%09public ToolType getHarvestTool() %7B%0A%09%09return getValueHarvestTool(this);%0A%09%7D%0A
 %7D%0A

Add harvestlevel and harvesttool methods in BlockProperties