public static void HoldableOnPipeExit(Entity entity, MarioClearPipeInteraction interaction) { Holdable holdable = entity?.Get <Holdable>(); if (holdable != null && entity.Scene != null && !holdable.IsHeld) { Vector2 speed = Vector2.Zero; switch (interaction.Direction) { case Direction.Left: speed = new Vector2(-1.0f, 0.1f); break; case Direction.Right: speed = new Vector2(1.0f, -0.1f); break; case Direction.Up: speed = new Vector2(0, -1.0f); break; case Direction.Down: speed = new Vector2(0, 1.0f); break; default: break; } holdable.Release(speed); } }
public static void HoldableOnPipeEnter(Entity entity, MarioClearPipeInteraction interaction) { Holdable holdable = entity?.Get <Holdable>(); if (holdable != null) { // Reset speeds and remove holder holdable.Release(Vector2.Zero); } }