Fix block break

This commit is contained in:
drcrazy 2018-09-25 03:42:12 +03:00
parent 25f06384f4
commit 20a385f6ca

View file

@ -27,12 +27,10 @@ package techreborn.blocks;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import reborncore.common.blocks.PropertyString;
import reborncore.common.registration.RebornRegister; import reborncore.common.registration.RebornRegister;
import reborncore.common.registration.impl.ConfigRegistry; import reborncore.common.registration.impl.ConfigRegistry;
import reborncore.common.util.OreDrop; import reborncore.common.util.OreDrop;
@ -45,7 +43,6 @@ import java.util.Random;
@RebornRegister(modID = TechReborn.MOD_ID) @RebornRegister(modID = TechReborn.MOD_ID)
public class BlockOre extends Block { public class BlockOre extends Block {
public static final PropertyString VARIANTS = getVarients();
@ConfigRegistry(config = "misc", category = "blocks", key = "rubyMinQuatity", comment = "Minimum quantity of Ruby gems per Ruby ore") @ConfigRegistry(config = "misc", category = "blocks", key = "rubyMinQuatity", comment = "Minimum quantity of Ruby gems per Ruby ore")
public static int rubyMinQuatity = 1; public static int rubyMinQuatity = 1;
@ConfigRegistry(config = "misc", category = "blocks", key = "rubyMaxQuantity", comment = "Maximum quantity of Ruby gems per Ruby ore") @ConfigRegistry(config = "misc", category = "blocks", key = "rubyMaxQuantity", comment = "Maximum quantity of Ruby gems per Ruby ore")
@ -78,98 +75,34 @@ public class BlockOre extends Block {
setHarvestLevel("pickaxe", 2); setHarvestLevel("pickaxe", 2);
} }
// public static ItemStack getOreByName(String name, int count) {
// name = OreBlockStateManager.invert(name);
// for (int i = 0; i < ores.length; i++) {
// if (ores[i].equalsIgnoreCase(name)) {
// return new ItemStack(ModBlocks.ORE, count, i);
// }
// }
// return BlockOre2.getOreByName(name, count);
// }
// public static ItemStack getOreByName(String name) {
// return getOreByName(name, 1);
// }
// public IBlockState getBlockStateFromName(String name) {
// name = OreBlockStateManager.invert(name);
// int index = -1;
// for (int i = 0; i < ores.length; i++) {
// if (ores[i].equalsIgnoreCase(name)) {
// index = i;
// break;
// }
// }
// if (index == -1) {
// return ModBlocks.ORE2.getBlockStateFromName(name);
// }
// return getStateFromMeta(index);
// }
@Override @Override
public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
String variant = state.getValue(VARIANTS); Block ore = state.getBlock();
int meta = getMetaFromState(state);
Random random = new Random(); Random random = new Random();
// Secondary drop, like peridot from sapphire ore added via event handler. // Secondary drop, like Yellow Garnet from Sphalerite ore added via event handler.
if (variant.equalsIgnoreCase("Ruby")) { if (ore == TRContent.Ores.RUBY.block) {
OreDrop ruby = new OreDrop(TRContent.Gems.RUBY.getStack(rubyMinQuatity), rubyMaxQuantity); OreDrop ruby = new OreDrop(TRContent.Gems.RUBY.getStack(rubyMinQuatity), rubyMaxQuantity);
drops.add(ruby.getDrops(fortune, random)); drops.add(ruby.getDrops(fortune, random));
} else if (variant.equalsIgnoreCase("Sapphire")) { } else if (ore == TRContent.Ores.SAPPHIRE.block) {
OreDrop sapphire = new OreDrop(TRContent.Gems.SAPPHIRE.getStack(sapphireMinQuantity), sapphireMaxQuantity); OreDrop sapphire = new OreDrop(TRContent.Gems.SAPPHIRE.getStack(sapphireMinQuantity), sapphireMaxQuantity);
drops.add(sapphire.getDrops(fortune, random)); drops.add(sapphire.getDrops(fortune, random));
} else if (variant.equalsIgnoreCase("Pyrite")) { } else if (ore == TRContent.Ores.PYRITE.block) {
OreDrop pyriteDust = new OreDrop(TRContent.Dusts.PYRITE.getStack(pyriteMinQuatity), pyriteMaxQuantity); OreDrop pyriteDust = new OreDrop(TRContent.Dusts.PYRITE.getStack(pyriteMinQuatity), pyriteMaxQuantity);
drops.add(pyriteDust.getDrops(fortune, random)); drops.add(pyriteDust.getDrops(fortune, random));
} else if (variant.equalsIgnoreCase("Sodalite")) { } else if (ore == TRContent.Ores.SODALITE.block) {
OreDrop sodalite = new OreDrop(TRContent.Dusts.SODALITE.getStack(sodaliteMinQuatity), sodaliteMaxQuantity); OreDrop sodalite = new OreDrop(TRContent.Dusts.SODALITE.getStack(sodaliteMinQuatity), sodaliteMaxQuantity);
drops.add(sodalite.getDrops(fortune, random)); drops.add(sodalite.getDrops(fortune, random));
} else if (variant.equalsIgnoreCase("Cinnabar")) { } else if (ore == TRContent.Ores.CINNABAR.block) {
OreDrop cinnabar = new OreDrop(TRContent.Dusts.CINNABAR.getStack(cinnabarMinQuatity), cinnabarMaxQuantity); OreDrop cinnabar = new OreDrop(TRContent.Dusts.CINNABAR.getStack(cinnabarMinQuatity), cinnabarMaxQuantity);
drops.add(cinnabar.getDrops(fortune, random)); drops.add(cinnabar.getDrops(fortune, random));
} else if (variant.equalsIgnoreCase("Sphalerite")) { } else if (ore == TRContent.Ores.SPHALERITE.block) {
OreDrop sphalerite = new OreDrop(TRContent.Dusts.SPHALERITE.getStack(sphaleriteMinQuatity), sphaleriteMaxQuantity); OreDrop sphalerite = new OreDrop(TRContent.Dusts.SPHALERITE.getStack(sphaleriteMinQuatity), sphaleriteMaxQuantity);
drops.add(sphalerite.getDrops(fortune, random)); drops.add(sphalerite.getDrops(fortune, random));
} else { } else {
drops.add(new ItemStack(Item.getItemFromBlock(this), 1, meta)); drops.add(new ItemStack(this));
} }
return; return;
} }
@Override
protected boolean canSilkHarvest() {
return true;
}
// @Override
// public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) {
// return new ItemStack(this, 1, getMetaFromState(state));
// }
//
// @Override
// public int damageDropped(IBlockState state) {
// return getMetaFromState(state);
// }
//
// @Override
// protected BlockStateContainer createBlockState() {
// return new BlockStateContainer(this, VARIANTS);
// }
public static PropertyString getVarients() {
// if (OreBlockStateManager.endOreStone) {
// oreNamesList = BlockOre.oreNamesList.stream().map(OreBlockStateManager::convert).collect(Collectors.toList());
// return new PropertyString("type", oreNamesList);
// } else {
// return new PropertyString("type", BlockOre.oreNamesList);
// }
return null;
}
} }