Stop explody crusher drops
- Remove the velocity of item entities dropped by crushed mobs so they fall neatly onto belts rather than exploding everywhere.
This commit is contained in:
parent
a32cbe15a3
commit
41cb2ad937
1 changed files with 13 additions and 0 deletions
|
@ -3,10 +3,13 @@ package com.simibubi.create.content.contraptions.components.crusher;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.foundation.utility.Iterate;
|
import com.simibubi.create.foundation.utility.Iterate;
|
||||||
|
|
||||||
|
import net.minecraft.entity.item.ItemEntity;
|
||||||
import net.minecraft.tileentity.TileEntityType;
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
import net.minecraft.util.DamageSource;
|
import net.minecraft.util.DamageSource;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
import net.minecraftforge.event.entity.living.LivingDropsEvent;
|
||||||
import net.minecraftforge.event.entity.living.LootingLevelEvent;
|
import net.minecraftforge.event.entity.living.LootingLevelEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
||||||
|
@ -52,4 +55,14 @@ public class CrushingWheelTileEntity extends KineticTileEntity {
|
||||||
event.setLootingLevel(2); //This does not currently increase mob drops. It seems like this only works for damage done by an entity.
|
event.setLootingLevel(2); //This does not currently increase mob drops. It seems like this only works for damage done by an entity.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void handleCrushedMobDrops(LivingDropsEvent event) {
|
||||||
|
if (event.getSource() != CrushingWheelTileEntity.damageSource)
|
||||||
|
return;
|
||||||
|
Vec3d outSpeed = Vec3d.ZERO;
|
||||||
|
for (ItemEntity outputItem : event.getDrops()) {
|
||||||
|
outputItem.setMotion(outSpeed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue