示例#1
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            Surface s = null;
            int     n = 10;
            int     v = 10;
            double  d = 10.0;
            double  l = 0.00;

            DA.GetData(0, ref s);
            DA.GetData(1, ref n);
            DA.GetData(2, ref v);
            DA.GetData(3, ref d);
            DA.GetData(4, ref l);


            List <Polyline> polylines0 = new List <Polyline>();
            List <Polyline> polylines1 = new List <Polyline>();

            Mesh mesh = SurfaceUtil.SubdivideSurfaceEqualDist(s, n, v, d, l, ref polylines0, ref polylines1);

            polylines0.AddRange(polylines1);

            this.PreparePreview(mesh, DA.Iteration);
            DA.SetData(0, mesh);
            DA.SetDataList(1, polylines1);
        }
示例#2
0
        protected override List <Item> BuildItems(ref Item defaultItem)
        {
            if (!SurfaceUtil.SupportsSurfaces(Prefab))
            {
                return(new List <Item>());
            }

            var items = new List <Item>
            {
                new SimpleItem(Surface.Pavement.ToString("G"), Surface.Pavement),
                new SimpleItem(Surface.Gravel.ToString("G"), Surface.Gravel),
                new SimpleItem(Surface.Ruined.ToString("G"), Surface.Ruined),
            };

            if (SurfaceUtil.SupportsNoneSurface(Prefab))
            {
                items.Add(new SimpleItem(Surface.None.ToString("G"), Surface.None));
            }

            var defaultSurface = SurfaceUtil.GetDefaultSurface(Prefab);

            defaultItem = items.FirstOrDefault(item => ((SimpleItem)item).Value == defaultSurface);

            return(items);
        }
示例#3
0
            public override bool Run()
            {
                Counter parent = base.Target.Parent as Counter;

                if (parent == null)
                {
                    return(false);
                }
                if (!SurfaceUtil.RouteToObjectOnSurface(parent, base.Actor, base.Target))
                {
                    return(false);
                }
                base.StandardEntry();
                HotBeverageMachine.Cup actor = GlobalFunctions.CreateObject("CoffeeCup", base.Target.Parent.Position, base.Target.Level, Vector3.UnitZ) as HotBeverageMachine.Cup;
                try
                {
                    actor.AddToUseList(base.Actor);
                    actor.Contents = (base.InteractionDefinition as Definition).Drink;
                    actor.SetHiddenFlags(HiddenFlags.Model);
                    HotBeverageMachine.EnterStateMachine(this);
                    base.SetActor("coffeeCup", actor);
                    base.BeginCommodityUpdates();
                    base.AnimateSim("Make One Drink");
                    base.EndCommodityUpdates(true);
                    CarrySystem.VerifyAnimationParent(actor, base.Actor);
                }
                finally
                {
                    actor.RemoveFromUseList(base.Actor);
                }

                //pay for drink
                CommonMethods.PayForCoffee(base.Actor, base.Target.LotCurrent);

                CarrySystem.EnterWhileHolding(base.Actor, actor);
                actor.PushDrinkAsContinuation(base.Actor);
                if (parent.IsCleanable)
                {
                    parent.Cleanable.DirtyInc(base.Actor);
                }
                base.mCurrentStateMachine.Dispose();
                actor.StartEffects();
                base.StandardExit();
                return(true);
            }
示例#4
0
            public override bool Run()
            {
                Counter parent = base.Target.Parent as Counter;

                if (parent == null)
                {
                    return(false);
                }
                if (!SurfaceUtil.RouteToObjectOnSurface(parent, base.Actor, base.Target))
                {
                    return(false);
                }
                base.StandardEntry();

                this.Cup = this.MakeCup() as HotBeverageMachine.Cup;
                this.Cup.SetHiddenFlags(HiddenFlags.Model);

                this.BarTray = GlobalFunctions.CreateObject("barTray", (base.Target.Parent ?? base.Target).Position, base.Target.Level, Vector3.UnitZ) as BarTray;
                this.BarTray.SetHiddenFlags(HiddenFlags.Model);
                this.BarTray.AddInteraction(CallForCoffee.Singleton);

                base.Target.mLastCreatedTrayOfDrinksId = this.BarTray.ObjectId;
                HotBeverageMachine.EnterStateMachine(this);
                base.AddOneShotScriptEventHandler(100, new SacsEventHandler(this.FillTray));
                base.SetActor("coffeeCup", this.Cup);
                base.SetActor("barTray", this.BarTray);
                base.BeginCommodityUpdates();
                base.AnimateSim("Make Many Drinks");
                base.EndCommodityUpdates(true);
                base.StandardExit();
                CarrySystem.VerifyAnimationParent(this.BarTray, base.Actor);
                CarrySystem.EnterWhileHolding(base.Actor, this.BarTray);
                CarrySystem.PutDown(base.Actor, SurfaceType.Normal, true);
                //if ((!base.Autonomous || !base.Actor.HasBuffsToPreventSleepiness()) && CarrySystem.PickUp(base.Actor, this.Cup))
                //{
                //    this.Cup.PushDrinkAsContinuation(base.Actor);
                //}
                base.mCurrentStateMachine.Dispose();
                this.Cup.StartEffects();
                if (parent.IsCleanable)
                {
                    parent.Cleanable.DirtyInc(base.Actor);
                }
                return(true);
            }