Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.onVoid.adjunct.block;
- import java.util.Locale;
- import java.util.Random;
- import javax.annotation.Nullable;
- import me.onVoid.adjunct.init.ItemsAdjunct;
- import me.onVoid.adjunct.proxy.CommonProxy;
- import me.onVoid.adjunct.tab.CreativeTabsAdjunct;
- import me.onVoid.adjunct.util.IHasModel;
- import me.onVoid.adjunct.util.Methods;
- import me.onVoid.adjunct.util.References;
- import net.minecraft.block.Block;
- import net.minecraft.block.BlockDirt;
- import net.minecraft.block.SoundType;
- import net.minecraft.block.material.MapColor;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.properties.IProperty;
- import net.minecraft.block.properties.PropertyEnum;
- import net.minecraft.block.state.BlockStateContainer;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.client.gui.GuiScreen;
- import net.minecraft.client.renderer.block.model.ModelBakery;
- import net.minecraft.client.renderer.block.model.ModelResourceLocation;
- import net.minecraft.client.util.ITooltipFlag;
- import net.minecraft.creativetab.CreativeTabs;
- import net.minecraft.init.Blocks;
- import net.minecraft.init.Items;
- import net.minecraft.item.EnumRarity;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.IStringSerializable;
- import net.minecraft.util.NonNullList;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.util.math.MathHelper;
- import net.minecraft.util.text.TextFormatting;
- import net.minecraft.world.IBlockAccess;
- import net.minecraft.world.World;
- import net.minecraftforge.client.model.ModelLoader;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- public class BlockElementalLight extends Block implements IHasModel
- {
- public BlockElementalLight() {
- super(Material.GLASS);
- setUnlocalizedName("light_elemental");
- setRegistryName("light_elemental");
- setHardness(0.3F);
- setResistance(1.5F);
- setLightLevel(1.0F);
- setSoundType(SoundType.GLASS);
- setCreativeTab(CreativeTabsAdjunct.tabAdjunct);
- this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, BlockElementalLight.ElementalLightType.DEFAULT));
- }
- public static final PropertyEnum<BlockElementalLight.ElementalLightType> VARIANT = PropertyEnum.<BlockElementalLight.ElementalLightType>create("variant", BlockElementalLight.ElementalLightType.class);
- @Override
- public MapColor getMapColor(IBlockState state, IBlockAccess worldIn, BlockPos pos)
- {
- return ((BlockElementalLight.ElementalLightType)state.getValue(VARIANT)).getColor();
- }
- @Override
- public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> items){
- items.add(new ItemStack(this, 1, BlockElementalLight.ElementalLightType.DEFAULT.getMetadata()));
- items.add(new ItemStack(this, 1, BlockElementalLight.ElementalLightType.GLASSLESS.getMetadata()));
- items.add(new ItemStack(this, 1, BlockElementalLight.ElementalLightType.INTRICATE.getMetadata()));
- }
- @Override
- public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
- {
- return new ItemStack(this, 1, ((BlockElementalLight.ElementalLightType)state.getValue(VARIANT)).getMetadata());
- }
- @Override
- public IBlockState getStateFromMeta(int meta)
- {
- return this.getDefaultState().withProperty(VARIANT, BlockElementalLight.ElementalLightType.byMetadata(meta));
- }
- @Override
- public int getMetaFromState(IBlockState state)
- {
- return ((BlockElementalLight.ElementalLightType)state.getValue(VARIANT)).getMetadata();
- }
- @Override
- protected BlockStateContainer createBlockState()
- {
- return new BlockStateContainer(this, new IProperty[] {VARIANT});
- }
- @Override
- public int quantityDroppedWithBonus(int fortune, Random random)
- {
- //return MathHelper.clamp(this.quantityDropped(random) + random.nextInt(fortune + 1), 1, 4);
- return quantityDropped(random);
- }
- @Override
- public int quantityDropped(Random random)
- {
- if (random.nextInt(9) == 0){
- return 1;
- }
- return 0;
- }
- @Override
- public Item getItemDropped(IBlockState state, Random rand, int fortune)
- {
- return ItemsAdjunct.dustElementalMixture;
- }
- @SideOnly(Side.CLIENT)
- @Override
- public void addInformation(ItemStack stack, @Nullable World worldIn, java.util.List<String> info, ITooltipFlag flagIn)
- {
- info.set(0, EnumRarity.COMMON.rarityColor + info.get(0));
- if(GuiScreen.isShiftKeyDown()){
- info.addAll(Methods.breakString("A light of the elements`" + TextFormatting.WHITE + "TBD.", "`"));
- } else {
- info.add(References.shiftText);
- }
- }
- public static enum ElementalLightType implements IStringSerializable
- {
- DEFAULT(0, "default", MapColor.ORANGE_STAINED_HARDENED_CLAY),
- GLASSLESS(1, "glassless", MapColor.ORANGE_STAINED_HARDENED_CLAY),
- INTRICATE(2, "intricate", MapColor.ORANGE_STAINED_HARDENED_CLAY);
- private static final BlockElementalLight.ElementalLightType[] METADATA_LOOKUP = new BlockElementalLight.ElementalLightType[values().length];
- private final int metadata;
- private final String name;
- private final String unlocalizedName;
- private final MapColor color;
- private ElementalLightType(int metadataIn, String nameIn, MapColor color)
- {
- this(metadataIn, nameIn, nameIn, color);
- }
- private ElementalLightType(int metadataIn, String nameIn, String unlocalizedNameIn, MapColor color)
- {
- this.metadata = metadataIn;
- this.name = nameIn;
- this.unlocalizedName = unlocalizedNameIn;
- this.color = color;
- }
- public int getMetadata()
- {
- return this.metadata;
- }
- public String getUnlocalizedName()
- {
- return this.unlocalizedName;
- }
- public MapColor getColor()
- {
- return this.color;
- }
- public String toString()
- {
- return this.name;
- }
- public static BlockElementalLight.ElementalLightType byMetadata(int metadata)
- {
- if (metadata < 0 || metadata >= METADATA_LOOKUP.length)
- {
- metadata = 0;
- }
- return METADATA_LOOKUP[metadata];
- }
- public String getName()
- {
- return this.name;
- }
- static
- {
- for (BlockElementalLight.ElementalLightType blockelementallight$elementallighttype : values())
- {
- METADATA_LOOKUP[blockelementallight$elementallighttype.getMetadata()] = blockelementallight$elementallighttype;
- }
- }
- }
- /*@SideOnly(Side.CLIENT)
- public void initModel() {
- for (int i = 0; i < ElementalLightType.values().length; i++){
- ModelResourceLocation model = new ModelResourceLocation(getRegistryName() + "_" + i, "inventory");
- ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), i, new ModelResourceLocation(getRegistryName(), "inventory"));
- ModelBakery.registerItemVariants(Item.getItemFromBlock(this), model);
- }
- }*/
- @Override @SideOnly(Side.CLIENT)
- public void initModel() {
- ModelResourceLocation DefaultModel = new ModelResourceLocation(getRegistryName() + "", "inventory");
- ModelResourceLocation GlasslessModel = new ModelResourceLocation(getRegistryName() + "_glassless", "inventory");
- ModelResourceLocation IntricateModel = new ModelResourceLocation(getRegistryName() + "_intricate", "inventory");
- ModelBakery.registerItemVariants(Item.getItemFromBlock(this), DefaultModel, GlasslessModel, IntricateModel);
- ModelLoader.setCustomModelResourceLocation(CommonProxy.itemBlockLightElemental, ElementalLightType.DEFAULT.getMetadata(), DefaultModel);
- ModelLoader.setCustomModelResourceLocation(CommonProxy.itemBlockLightElemental, ElementalLightType.GLASSLESS.getMetadata(), GlasslessModel);
- ModelLoader.setCustomModelResourceLocation(CommonProxy.itemBlockLightElemental, ElementalLightType.INTRICATE.getMetadata(), IntricateModel);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement