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);
}
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);
}
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;
}
Aggregations