コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: MultiSeatObjectEx.cs プロジェクト: Robobeurre/NRaas
        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;
        }