Search in sources :

Example 1 with DrinkMixerBlockEntity

use of net.tropicraft.core.common.block.tileentity.DrinkMixerBlockEntity in project Tropicraft by Tropicraft.

the class MessageMixerStart method handle.

public static void handle(final MessageMixerStart message, Supplier<NetworkEvent.Context> ctx) {
    ctx.get().enqueueWork(() -> {
        final DrinkMixerBlockEntity te = message.getClientTileEntity();
        if (te != null) {
            te.startMixing();
        }
    });
    ctx.get().setPacketHandled(true);
}
Also used : DrinkMixerBlockEntity(net.tropicraft.core.common.block.tileentity.DrinkMixerBlockEntity)

Example 2 with DrinkMixerBlockEntity

use of net.tropicraft.core.common.block.tileentity.DrinkMixerBlockEntity in project Tropicraft by Tropicraft.

the class MessageMixerInventory method handle.

public static void handle(final MessageMixerInventory message, Supplier<NetworkEvent.Context> ctx) {
    ctx.get().enqueueWork(() -> {
        final DrinkMixerBlockEntity mixer = message.getClientTileEntity();
        if (mixer != null) {
            mixer.ingredients = message.inventory;
            mixer.result = message.result;
        }
    });
    ctx.get().setPacketHandled(true);
}
Also used : DrinkMixerBlockEntity(net.tropicraft.core.common.block.tileentity.DrinkMixerBlockEntity)

Example 3 with DrinkMixerBlockEntity

use of net.tropicraft.core.common.block.tileentity.DrinkMixerBlockEntity in project Tropicraft by Tropicraft.

the class DrinkMixerBlock method use.

@Override
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
    if (world.isClientSide) {
        return InteractionResult.SUCCESS;
    }
    ItemStack stack = player.getMainHandItem();
    DrinkMixerBlockEntity mixer = (DrinkMixerBlockEntity) world.getBlockEntity(pos);
    if (mixer == null) {
        return InteractionResult.FAIL;
    }
    if (mixer.isDoneMixing()) {
        mixer.retrieveResult(player);
        return InteractionResult.CONSUME;
    }
    if (stack.isEmpty()) {
        mixer.emptyMixer(player);
        return InteractionResult.CONSUME;
    }
    ItemStack ingredientStack = stack.copy();
    ingredientStack.setCount(1);
    if (mixer.addToMixer(ingredientStack)) {
        if (!player.isCreative()) {
            player.getInventory().removeItem(player.getInventory().selected, 1);
        }
    }
    if (ingredientStack.getItem() == TropicraftItems.BAMBOO_MUG.get() && mixer.canMix()) {
        mixer.startMixing();
        if (!player.isCreative()) {
            player.getInventory().removeItem(player.getInventory().selected, 1);
        }
        Drink craftedDrink = MixerRecipes.getDrink(mixer.ingredients);
        Drink pinaColada = Drink.PINA_COLADA;
        if (craftedDrink != null && craftedDrink.drinkId == pinaColada.drinkId) {
        // TODO advancements entityPlayer.addStat(AchievementRegistry.craftPinaColada);
        }
    }
    return InteractionResult.CONSUME;
}
Also used : DrinkMixerBlockEntity(net.tropicraft.core.common.block.tileentity.DrinkMixerBlockEntity) Drink(net.tropicraft.core.common.drinks.Drink) ItemStack(net.minecraft.world.item.ItemStack)

Aggregations

DrinkMixerBlockEntity (net.tropicraft.core.common.block.tileentity.DrinkMixerBlockEntity)3 ItemStack (net.minecraft.world.item.ItemStack)1 Drink (net.tropicraft.core.common.drinks.Drink)1