public static bool StateMachineEnterAndSit(MultiSeatObject ths, StateMachineClient smc, SittingPosture sitPosture, Slot routingSlot, object sitContext) { if (!SittableComponentEx.StateMachineEnterAndSit(ths.Sittable, smc, sitPosture, routingSlot, sitContext)) { return(false); } SittableComponent.SitContext context = sitContext as SittableComponent.SitContext; if (((context != null) && (context.PreferredSeat != null)) && (context.PreferredSeat.ContainedSim == null)) { Scoot entry = (Scoot)Scoot.Singleton.CreateInstance(sitPosture.Container, sitPosture.Sim, sitPosture.Sim.InteractionQueue.GetHeadInteraction().GetPriority(), false, true); entry.TargetSeat = context.PreferredSeat as Seat; if (entry.TargetSeat != null) { sitPosture.Sim.InteractionQueue.AddNext(entry); } } if ((ths.SculptureComponent != null) && (ths.SculptureComponent.Material == SculptureComponent.SculptureMaterial.Ice)) { sitPosture.Sim.BuffManager.AddElementPaused(BuffNames.Chilly, Origin.FromSittingOnIce); } return(true); }
public static bool StateMachineEnterAndSit(MultiSeatObject ths, StateMachineClient smc, SittingPosture sitPosture, Slot routingSlot, object sitContext) { if (!SittableComponentEx.StateMachineEnterAndSit(ths.Sittable, smc, sitPosture, routingSlot, sitContext)) { return false; } SittableComponent.SitContext context = sitContext as SittableComponent.SitContext; if (((context != null) && (context.PreferredSeat != null)) && (context.PreferredSeat.ContainedSim == null)) { Scoot entry = (Scoot)Scoot.Singleton.CreateInstance(sitPosture.Container, sitPosture.Sim, sitPosture.Sim.InteractionQueue.GetHeadInteraction().GetPriority(), false, true); entry.TargetSeat = context.PreferredSeat as Seat; if (entry.TargetSeat != null) { sitPosture.Sim.InteractionQueue.AddNext(entry); } } if ((ths.SculptureComponent != null) && (ths.SculptureComponent.Material == SculptureComponent.SculptureMaterial.Ice)) { sitPosture.Sim.BuffManager.AddElementPaused(BuffNames.Chilly, Origin.FromSittingOnIce); } return true; }