Fixes the color applicator

This commit is contained in:
Sebastian Hartte
2020-06-21 20:41:04 +02:00
parent 8ed68d9c74
commit 8606bd5c61
5 changed files with 271 additions and 135 deletions
@@ -21,28 +21,28 @@ package appeng.hooks;
import net.minecraft.block.DispenserBlock;
import net.minecraft.dispenser.DefaultDispenseItemBehavior;
import net.minecraft.dispenser.IBlockSource;
import net.minecraft.item.DirectionalPlaceContext;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemUseContext;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.world.World;
import net.minecraft.world.server.ServerWorld;
import appeng.util.Platform;
public final class DispenserBlockTool extends DefaultDispenseItemBehavior {
@Override
protected ItemStack dispenseStack(final IBlockSource dispenser, final ItemStack dispensedItem) {
final Item i = dispensedItem.getItem();
if (i instanceof IBlockTool) {
final Direction Direction = dispenser.getBlockState().get(DispenserBlock.FACING);
final Direction direction = dispenser.getBlockState().get(DispenserBlock.FACING);
final IBlockTool tm = (IBlockTool) i;
final World w = dispenser.getWorld();
if (w instanceof ServerWorld) {
tm.onItemUse(dispensedItem, Platform.getPlayer((ServerWorld) w), w,
dispenser.getBlockPos().offset(Direction), Hand.MAIN_HAND, Direction, 0.5f, 0.5f, 0.5f);
ItemUseContext context = new DirectionalPlaceContext(w, dispenser.getBlockPos().offset(direction),
direction, dispensedItem, direction.getOpposite());
tm.onItemUse(context);
}
}
return dispensedItem;
+2 -6
View File
@@ -20,6 +20,7 @@ package appeng.hooks;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemUseContext;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
@@ -28,11 +29,6 @@ import net.minecraft.world.World;
public interface IBlockTool {
// Workaround for dispenser logic.
// TODO ItemUseContext
ActionResultType onItemUse(ItemStack is, PlayerEntity p, World w, BlockPos pos, Hand hand, Direction side,
float hitX, float hitY, float hitZ);
ActionResultType onItemUse(PlayerEntity p, World w, BlockPos pos, Hand hand, Direction side, float hitX, float hitY,
float hitZ);
ActionResultType onItemUse(ItemUseContext itemUseContext);
}