onTap method

  1. @override
ActionResult onTap(
  1. EscapeGame escapeGame
)
override

Should be called when the user taps on this interactable.

Implementation

@override
ActionResult onTap(EscapeGame escapeGame) {
  ActionResult padlockTry = super.onTap(escapeGame);
  if (padlockTry.state == ActionResultState.success) {
    escapeGame.inventory.addObject(object);
    ActionResult result = onPickedUp == null ? ActionResult<EscapeGameObject>.success(object: object) : onPickedUp!(escapeGame);
    if (removeAfterPickedUp) {
      escapeGame.currentRoom.removeInteractable(this);
      if (removedTooltip != null) {
        escapeGame.currentRoom.addInteractable(Interactable(
          id: '$id-picked-up',
          renderSettings: InteractableRenderSettings(
            top: renderSettings?.top,
            right: renderSettings?.right,
            bottom: renderSettings?.bottom,
            left: renderSettings?.left,
            width: renderSettings?.width,
            height: renderSettings?.height,
            rotationAngle: renderSettings?.rotationAngle,
            mirror: renderSettings?.mirror ?? false,
            isInvisible: renderSettings?.isInvisible,
            hoverAnimation: renderSettings?.hoverAnimation,
            enterAnimation: renderSettings?.enterAnimation,
          ),
          onHover: (escapeGame) => ActionResult.success(object: removedTooltip!),
        ));
      }
    }
    return result;
  }
  return padlockTry;
}