diff --git a/src/main/java/com/sosnitzka/taiga/MaterialTraits.java b/src/main/java/com/sosnitzka/taiga/MaterialTraits.java index d98d950..7ffb0d4 100644 --- a/src/main/java/com/sosnitzka/taiga/MaterialTraits.java +++ b/src/main/java/com/sosnitzka/taiga/MaterialTraits.java @@ -58,6 +58,7 @@ public class MaterialTraits { public static final AbstractTrait leveled1 = new TraitLeveled(1); public static final AbstractTrait leveled2 = new TraitLeveled(2); public static final AbstractTrait leveled3 = new TraitLeveled(3); + public static final AbstractTrait crushing = new TraitCrushing(); /** @@ -86,11 +87,8 @@ public class MaterialTraits { public static Material tritonite = new Material("tritonite", TextFormatting.GOLD).addTrait(whirl); public static Material ignitz = new Material("ignitz", TextFormatting.RED).addTrait(melting).addTrait(garishly, MaterialTypes.HANDLE); public static Material imperomite = new Material("imperomite", TextFormatting.DARK_RED).addTrait(hollow); - public static Material solarium = new Material("solarium", TextFormatting.YELLOW).addTrait(pulverizing).addTrait(superheavy); + public static Material solarium = new Material("solarium", TextFormatting.YELLOW).addTrait(superheavy).addTrait(crushing); public static Material nihilite = new Material("nihilite", TextFormatting.DARK_GRAY).addTrait(souleater); - /** - * With Dev - **/ public static Material adamant = new Material("adamant", TextFormatting.GOLD).addTrait(beserk).addTrait(leveled1, MaterialTypes.EXTRA).addTrait(leveled2, MaterialTypes.HANDLE).addTrait(leveled3, MaterialTypes.HEAD); //.addTrait(dev); public static Material dyonite = new Material("dyonite", TextFormatting.GREEN).addTrait(tantrum); public static Material nucleum = new Material("nucleum", TextFormatting.YELLOW).addTrait(decay); @@ -99,7 +97,7 @@ public class MaterialTraits { public static Material astrium = new Material("astrium", TextFormatting.DARK_PURPLE).addTrait(ported); public static Material niob = new Material("niob", TextFormatting.RED).addTrait(reviving); public static Material yrdeen = new Material("yrdeen", TextFormatting.RED).addTrait(naturebound); - public static Material meteorite = new Material("meteorite", TextFormatting.DARK_GREEN).addTrait(crumbling, MaterialTypes.HEAD).addTrait(cheap); + public static Material meteorite = new Material("meteorite", TextFormatting.DARK_GREEN).addTrait(crumbling, MaterialTypes.HEAD).addTrait(pulverizing); public static Material obsidiorite = new Material("obsidiorite", obsidioriteFluid.getColor()).addTrait(alien); public static Material osram = new Material("osram", TextFormatting.GOLD); diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitCrushing.java b/src/main/java/com/sosnitzka/taiga/traits/TraitCrushing.java new file mode 100644 index 0000000..608b5be --- /dev/null +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitCrushing.java @@ -0,0 +1,35 @@ +package com.sosnitzka.taiga.traits; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.util.text.TextFormatting; +import net.minecraftforge.event.world.BlockEvent; +import slimeknights.tconstruct.library.traits.AbstractTrait; + +public class TraitCrushing extends AbstractTrait { + + public TraitCrushing() { + super(TraitCrushing.class.getSimpleName().toLowerCase().substring(5), TextFormatting.GRAY); + } + + + @Override + public void blockHarvestDrops(ItemStack tool, BlockEvent.HarvestDropsEvent e) { + if (!e.getWorld().isRemote) { + IBlockState state = e.getState(); + float f = random.nextFloat(); + if (state.equals(Blocks.STONE.getDefaultState())) { + e.getDrops().clear(); + if (f < .3f) { + e.getDrops().add(new ItemStack(Blocks.SAND)); + } else if (f < .6f) { + e.getDrops().add(new ItemStack(Blocks.GRAVEL)); + } else if (f <= .9f) { + e.getDrops().add(new ItemStack(Blocks.COBBLESTONE)); + } else e.getDrops().add(new ItemStack(Blocks.STONE)); + } + } + } + +} diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitPulverizing.java b/src/main/java/com/sosnitzka/taiga/traits/TraitPulverizing.java index 466c715..17b7c9e 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitPulverizing.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitPulverizing.java @@ -29,7 +29,7 @@ public class TraitPulverizing extends AbstractTrait { @Override public void blockHarvestDrops(ItemStack tool, BlockEvent.HarvestDropsEvent event) { - if (random.nextFloat() < 0.9) { + if (random.nextFloat() < 0.6) { event.getDrops().clear(); } } diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitSuperHeavy.java b/src/main/java/com/sosnitzka/taiga/traits/TraitSuperHeavy.java index 297e49d..2ac1374 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitSuperHeavy.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitSuperHeavy.java @@ -20,7 +20,7 @@ import slimeknights.tconstruct.library.utils.TinkerUtil; public class TraitSuperHeavy extends TraitProgressiveStats { protected static int TICK_PER_STAT = 50; - protected static float blockcount = 250f; + protected static float blockcount = 500f; public TraitSuperHeavy() { super(TraitSuperHeavy.class.getSimpleName().toLowerCase().substring(5), TextFormatting.DARK_GRAY); @@ -33,7 +33,7 @@ public class TraitSuperHeavy extends TraitProgressiveStats { NBTTagCompound tag = TagUtil.getExtraTag(tool); Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); if (data.brokenblocks == 0) return; - event.setNewSpeed(Math.max(event.getNewSpeed() - data.brokenblocks * event.getOriginalSpeed() / blockcount, 0.25f)); + event.setNewSpeed(Math.max(event.getNewSpeed() - data.brokenblocks * event.getOriginalSpeed() / blockcount, 0.35f)); } @Override