/
MCBlockHarvestDropsEvent.java
76 lines (61 loc) · 2.11 KB
/
MCBlockHarvestDropsEvent.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package crafttweaker.mc1120.events.handling;
import crafttweaker.api.block.IBlock;
import crafttweaker.api.event.BlockHarvestDropsEvent;
import crafttweaker.api.item.WeightedItemStack;
import crafttweaker.api.minecraft.CraftTweakerMC;
import crafttweaker.api.player.IPlayer;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.event.world.BlockEvent;
import java.util.List;
public class MCBlockHarvestDropsEvent extends MCBlockEvent implements BlockHarvestDropsEvent {
private final BlockEvent.HarvestDropsEvent event;
public MCBlockHarvestDropsEvent(BlockEvent.HarvestDropsEvent event) {
super(event);
this.event = event;
}
@Override
public float getDropChance() {
return event.getDropChance();
}
@Override
public void setDropChance(float dropChance) {
event.setDropChance(dropChance);
}
@Override
public int getFortuneLevel() {
return event.getFortuneLevel();
}
@Override
public IBlock getBlock() {
return getBlockState().getBlock();
}
@Override
public List<WeightedItemStack> getDrops() {
return CraftTweakerMC.getWeightedItemStackList(event.getDrops());
}
@Override
public void setDrops(List<WeightedItemStack> drops) {
event.getDrops().clear();
for (WeightedItemStack drop : drops) {
addItem(drop);
}
}
@Override
public void addItem(WeightedItemStack itemStack) {
if (event.getWorld().rand.nextFloat() <= itemStack.getChance())
event.getDrops().add(CraftTweakerMC.getItemStack(itemStack.getStack()));
}
@Override
public boolean isSilkTouch() {
return event.isSilkTouching();
}
@Override
public boolean isPlayer() {
return event.getHarvester() instanceof EntityPlayerMP || event.getHarvester() instanceof EntityPlayerSP;
}
@Override
public IPlayer getPlayer() {
return CraftTweakerMC.getIPlayer(event.getHarvester());
}
}