//*/

    public void startInteractionSystem(InteractionData interactionData)
    {
        interactionData.addCondition(petStatus);
        interactionData.instantiateInteractions(petStatus);

        activeInteractionSystems.Add(interactionData);
    }
Example #2
0
 private void OnCursorEnter(InteractionData data)
 {
     if (active)
     {
         interactableState = InteractableState.normalHover;
     }
 }
 public void beginHover(InteractionData data)
 {
     if (data.collider == this.handleAxis_X)
     {
         this.hover = DevkitPositionHandle.EDevkitPositionHandleSelection.AXIS_X;
     }
     else if (data.collider == this.handleAxis_Y)
     {
         this.hover = DevkitPositionHandle.EDevkitPositionHandleSelection.AXIS_Y;
     }
     else if (data.collider == this.handleAxis_Z)
     {
         this.hover = DevkitPositionHandle.EDevkitPositionHandleSelection.AXIS_Z;
     }
     else if (data.collider == this.handlePlane_X)
     {
         this.hover = DevkitPositionHandle.EDevkitPositionHandleSelection.PLANE_X;
     }
     else if (data.collider == this.handlePlane_Y)
     {
         this.hover = DevkitPositionHandle.EDevkitPositionHandleSelection.PLANE_Y;
     }
     else if (data.collider == this.handlePlane_Z)
     {
         this.hover = DevkitPositionHandle.EDevkitPositionHandleSelection.PLANE_Z;
     }
 }
Example #4
0
 private void OnCursorExit(InteractionData data)
 {
     if (active)
     {
         interactableState = InteractableState.normal;
     }
 }
Example #5
0
 void OnInteraction(InteractionData data)
 {
     if (hasOnInteraction)
     {
         instance.Invoke(nameof(OnInteraction), data);
     }
 }
Example #6
0
 protected void OnClickDown(InteractionData data)
 {
     if (OnClick != null)
     {
         OnClick();
     }
 }
 public void beginDrag(InteractionData data)
 {
     if (data.collider == this.handleAxis_X)
     {
         this.drag = DevkitPositionHandle.EDevkitPositionHandleSelection.AXIS_X;
     }
     else if (data.collider == this.handleAxis_Y)
     {
         this.drag = DevkitPositionHandle.EDevkitPositionHandleSelection.AXIS_Y;
     }
     else if (data.collider == this.handleAxis_Z)
     {
         this.drag = DevkitPositionHandle.EDevkitPositionHandleSelection.AXIS_Z;
     }
     else if (data.collider == this.handlePlane_X)
     {
         this.drag = DevkitPositionHandle.EDevkitPositionHandleSelection.PLANE_X;
     }
     else if (data.collider == this.handlePlane_Y)
     {
         this.drag = DevkitPositionHandle.EDevkitPositionHandleSelection.PLANE_Y;
     }
     else if (data.collider == this.handlePlane_Z)
     {
         this.drag = DevkitPositionHandle.EDevkitPositionHandleSelection.PLANE_Z;
     }
     this.transformOrigin    = base.transform.position;
     this.prevPositionResult = this.transformOrigin;
     this.handleOffset       = data.point - base.transform.position;
     this.mouseOrigin        = Input.mousePosition;
 }
Example #8
0
 private void Construct(ShipBehaviour shipBehaviour, InteractionData interactionData)
 {
     _shipBehaviour   = shipBehaviour;
     _interactionData = interactionData;
     _camera          = Camera.main;
     _hits            = new RaycastHit[10];
 }
 public void Initialize(InteractionData interactionData)
 {
     _subscriptions = new LinkedList <IDisposable>();
     _camera        = Camera.main;
     _canvas        = (RectTransform)GetComponentInParent <Canvas>().transform;
     interactionData.CurrentlySelectedPlanet.Subscribe(Show).AddTo(gameObject);
     Hide();
 }
Example #10
0
 private void ClickDown(InteractionData data)
 {
     if (active && interactableState != InteractableState.clicked)
     {
         interactableState = InteractableState.clicked;
         FireOnClick();
     }
 }
Example #11
0
 public void Initialize(InteractionData interactionData)
 {
     PlanetBehaviour = GetComponent <PlanetBehaviour>();
     interactionData.CurrentlySelectedPlanet.Subscribe(planet =>
     {
         IsUnderCursor = planet == this && gameObject.activeSelf;
     }).AddTo(gameObject);
 }
Example #12
0
        public static async Task <RestUserMessage> SendInteractionFileAsync(IMessageChannel channel, BaseDiscordClient client,
                                                                            InteractionData interaction, string filePath, string text, bool isTTS, Embed embed, AllowedMentions allowedMentions, RequestOptions options, bool isSpoiler, MessageReferenceParams reference, InteractionMessageType type, bool ghostMessage, InteractionRow[] components)
        {
            string filename = Path.GetFileName(filePath);

            using (FileStream file = File.OpenRead(filePath))
                return(await SendInteractionFileAsync(channel, client, interaction, file, filename, text, isTTS, embed, allowedMentions, options, isSpoiler, reference, type, ghostMessage, components).ConfigureAwait(false));
        }
Example #13
0
    public void OnClick(InteractionData data)
    {
        // Find the agent that clicked.
        AgentPrivate agent = ScenePrivate.FindAgent(data.AgentId);

        // Send them a message.
        agent.SendChat("Hello! Thanks for clicking me.");
    }
Example #14
0
    private void ParseFileIntoDialog(string fileName, InteractionData interactionData, out DialogData dialogData)
    {
        string path = Application.dataPath + "/StreamingAssets/Interactions/" + fileName + ".txt";

        if (!Directory.Exists(Application.dataPath + "/StreamingAssets/Interactions/"))
        {
            Directory.CreateDirectory(Application.dataPath + "/StreamingAssets/Interactions/");
        }
        if (!File.Exists(path))
        {
            dialogData = null;
        }
        else
        {
            dialogData         = ScriptableObject.CreateInstance <DialogData>();
            dialogData.actions = new List <DialogAction>();

            string[] dialog = File.ReadAllLines(path);

            DialogAction action = ScriptableObject.CreateInstance <DialogAction>();
            for (int i = 0; i < dialog.Length; ++i)
            {
                if (dialog[i].ToLower() == "[" + interactionData.firstInteractor.entityName.ToLower() + "]")
                {
                    action.interactee = interactionData.firstInteractor;
                    continue;
                }
                else if (dialog[i].ToLower() == "[" + interactionData.secondInteractor.entityName.ToLower() + "]")
                {
                    action.interactee = interactionData.secondInteractor;
                    continue;
                }

                if (dialog[i].Length > 0 && dialog[i][0] == '*')
                {
                    action.text = dialog[i].Replace("*", "");
                    if (action != null)
                    {
                        dialogData.actions.Add(action);
                    }
                    Interactee interactee = action.interactee;
                    action = ScriptableObject.CreateInstance <DialogAction>();
                    if (i + 2 < dialog.Length && dialog[i + 2].Length > 0 && dialog[i + 2][0] == '*')
                    {
                        action.interactee = interactee;
                    }
                }
                else
                {
                    if (action != null)
                    {
                        SetActionDefaults(ref action);
                        ParseAction(action, dialog[i]);
                    }
                }
            }
        }
    }
Example #15
0
 public bool TryLoad(ref InteractionData interactionData)
 {
     if (IsRegistrated(ref interactionData))
     {
         interactionData.happens = true;
         return(true);
     }
     return(false);
 }
Example #16
0
 /// <summary>
 /// GUI callback for updating the text in the text objects.
 /// </summary>
 /// <param name="newDestination">Next destination for the inhabitant.</param>
 /// <param name="newInteractionDuration">Duration for the next interaction.</param>
 /// <param name="isInterruption">Boolean which indicates whether the next interaction is a interruption.</param>
 public void UpdateText(InteractionData newDestination, float newInteractionDuration, bool isInterruption)
 {
     NameText.text               = newDestination.TargetGameObjectName;
     DescriptionText.text        = newDestination.Description;
     ReactionCollectionText.text = newDestination.ReactionCollectionDescription;
     InitialDurationText.text    = newDestination.InitialInteractionDuration + "";
     CurrentDurationText.text    = newInteractionDuration + "";
     IsInterruptionText.text     = isInterruption + "";
 }
Example #17
0
        protected override void SimpleInit()
        {
            // Any \n put in the parameter will not get converted to newlines, so convert them here.
            string prompt = MyInteraction.GetPrompt();

            if (prompt.Contains("\\n"))
            {
                MyInteraction.SetPrompt(prompt.Replace("\\n", "\n"));
            }

            if (!StartEnabled)
            {
                MyInteraction.SetEnabled(false);
            }

            SubscribeToAll(DisableEvent, (data) => { MyInteraction.SetEnabled(false); });
            SubscribeToAll(EnableEvent, (data) => { MyInteraction.SetEnabled(true); });
            SubscribeToAll(ResetEvent, (data) => { Reset(OnClick); });

            if (!string.IsNullOrWhiteSpace(OnClick))
            {
                if (MaxEventsPerSecond >= 100 || MaxEventsPerSecond <= 0)
                {
                    MyInteraction.Subscribe((InteractionData data) =>
                    {
                        if (DisableOnClick)
                        {
                            MyInteraction.SetEnabled(data.AgentId, false);
                        }
                        SimpleData sd     = new SimpleData(this);
                        sd.SourceObjectId = ObjectPrivate.ObjectId;
                        sd.AgentInfo      = ScenePublic.FindAgent(data.AgentId)?.AgentInfo;
                        sd.ObjectId       = sd.AgentInfo != null ? sd.AgentInfo.ObjectId : ObjectId.Invalid;
                        SendToAll(OnClick, sd);
                    });
                }
                else
                {
                    TimeSpan waitTime = TimeSpan.FromSeconds(1.0 / MaxEventsPerSecond);
                    while (true)
                    {
                        InteractionData data = (InteractionData)WaitFor(MyInteraction.Subscribe);
                        if (DisableOnClick)
                        {
                            MyInteraction.SetEnabled(data.AgentId, false);
                        }
                        SimpleData sd = new SimpleData(this);
                        sd.SourceObjectId = ObjectPrivate.ObjectId;
                        sd.AgentInfo      = ScenePublic.FindAgent(data.AgentId)?.AgentInfo;
                        sd.ObjectId       = sd.AgentInfo != null ? sd.AgentInfo.ObjectId : ObjectId.Invalid;
                        SendToAll(OnClick, sd);
                        Wait(waitTime);
                    }
                }
            }
        }
 public void SelectData(int dataType)
 {
     selectInteraction = (InteractionData)dataType;
     for (int i = 0; i < outlines.Length; i++)
     {
         outlines[i].color = (dataType == i) ? new Color(0.486f, 0.251f, 1.0f, 1.0f) : new Color(0.486f, 0.251f, 1.0f, 0.0f);
     }
     prevPowerData = -1.0f;
     powerData.Clear();
 }
        /// <summary>
        /// Trigger an interaction from a 2D raycast. Impact Material data will be retrieved from the object that was hit by the raycast. The interaction will be processed using the given IImpactObject.
        /// </summary>
        /// <param name="hit">Raycast 2D hit data. The contact point, normal, and the object that was hit will be retrived from this.</param>
        /// <param name="impactObject">The Impact Object the resulting interaction will be processed on.</param>
        /// <param name="velocity">The velocity of the interaction.</param>
        /// <param name="interactionType">The type of interaction.</param>
        /// <param name="useMaterialComposition">Should this trigger use the material composition of the object it hit by the raycast?</param>
        public static void Trigger2D(IImpactObject impactObject, RaycastHit2D hit, Vector3 velocity, int interactionType, bool useMaterialComposition)
        {
            InteractionData interactionData = new InteractionData();

            interactionData.InteractionType = interactionType;
            interactionData.Velocity        = velocity;
            interactionData.ThisObject      = impactObject.GameObject;

            Trigger2D(interactionData, hit, impactObject, useMaterialComposition);
        }
Example #20
0
 public bool TriggerInteractionSelectionEvent(InteractionData newInteraction,
                                              float newInteractionDuration, bool isInterruption)
 {
     if (OnSelectNewInteractionEvent != null)
     {
         OnSelectNewInteractionEvent(newInteraction, newInteractionDuration, isInterruption);
         return(true);
     }
     return(false);
 }
Example #21
0
    private void ExecuteInteraction(InteractionData idata)
    {
        SimpleData sd = new SimpleData(this);

        sd.SourceObjectId = ObjectPrivate.ObjectId;
        sd.AgentInfo      = ScenePrivate.FindAgent(idata.AgentId)?.AgentInfo;
        sd.ObjectId       = sd.AgentInfo != null ? sd.AgentInfo.ObjectId : ObjectId.Invalid;
        //string VoteEvent = "Score" + Button.ToString();
        SendScore(1);
    }
Example #22
0
    private void ExecuteInteraction(InteractionData idata)
    {
        SimpleData sd = new SimpleData(this);

        sd.SourceObjectId = ObjectPrivate.ObjectId;
        sd.AgentInfo      = ScenePrivate.FindAgent(idata.AgentId)?.AgentInfo;
        sd.ObjectId       = sd.AgentInfo != null ? sd.AgentInfo.ObjectId : ObjectId.Invalid;
        SendToAll(EventNames[index], sd);
        index = (index + 1) % EventNames.Count;
    }
        /// <summary>
        /// Trigger an interaction from a 2D raycast. The interaction will be processed on the object that was hit by the raycast.
        /// </summary>
        /// <param name="hit">Raycast 2D hit data. The contact point, normal, and the object that was hit will be retrived from this.</param>
        /// <param name="tagMask">The tag mask to use for the interaction.</param>
        /// <param name="velocity">The velocity of the interaction.</param>
        /// <param name="fromObject">The object the interaction is originating from.</param>
        /// <param name="interactionType">The type of interaction.</param>
        /// <param name="useMaterialComposition">Should this trigger use the material composition of the object it hit by the raycast?</param>
        public static void Trigger2D(ImpactTagMask tagMask, RaycastHit2D hit, Vector3 velocity, GameObject fromObject, int interactionType, bool useMaterialComposition)
        {
            InteractionData interactionData = new InteractionData();

            interactionData.TagMask         = tagMask;
            interactionData.InteractionType = interactionType;
            interactionData.Velocity        = velocity;
            interactionData.ThisObject      = fromObject;

            Trigger2D(interactionData, hit, useMaterialComposition);
        }
 private void CreateInteraction()
 {
     if (interaction != null)
     {
         if (!EditorUtility.DisplayDialog("You sure m8?", "This will erase unsaved changes.", "ok"))
         {
             return;
         }
     }
     interaction = new InteractionData();
 }
    public void OnClick(InteractionData data)
    {
        // Find the agent that clicked.
        AgentPrivate agent = ScenePrivate.FindAgent(data.AgentId);

        // Lower gravity for the agent that clicked
        agent.SetGravityFactor(gravityFactor);

        //Send the quest event
        SendQuestEvent(questCommand, agent);
    }
Example #26
0
    private void sendSimpleMessage(string msg, InteractionData data)
    {
        SimpleData sd = new SimpleData(this);

        //SimpleDataExt thisObjectDataExt = new SimpleDataExt(this);
        sd.AgentInfo      = ScenePrivate.FindAgent(data.AgentId)?.AgentInfo;
        sd.ObjectId       = sd.AgentInfo.ObjectId;
        sd.SourceObjectId = ObjectPrivate.ObjectId;
        // assign our data to reflective data field
        SendToAll(msg, sd);
    }
    public void ClickUp(InteractionData data)
    {
        if (_logInteractions)
        {
            Debug.Log(gameObject.name + " clicked up by " + data.interactingTransform.name);
        }

        _lastInteractionData = data;

        OnClickUp?.Invoke(data);
    }
Example #28
0
 public bool IsRegistrated(ref InteractionData interactionData)
 {
     for (int i = 0; i < interactionsRegister.Count; i++)
     {
         if (interactionsRegister[i] == interactionData)
         {
             return(true);
         }
     }
     return(false);
 }
Example #29
0
    private void sendSimpleMessage(string msg, InteractionData data)
    {
        SimpleData sd = new SimpleData();

        sd.AgentInfo = ScenePrivate.FindAgent(data.AgentId)?.AgentInfo;
        sd.ObjectId  = sd.AgentInfo.ObjectId;
        SendToAll(msg, sd);

        Wait(TimeSpan.FromMilliseconds((int)OffTimer * 1000));
        SendToAll(msg + "Off", sd);
    }
Example #30
0
    public InteractionData CreateInteraction(Interactee firstInteractor, InteractionData.InteractionType type, string fileName, Interactee secondInteractor = null)
    {
        InteractionData data = ScriptableObject.CreateInstance <InteractionData>();

        data.firstInteractor  = firstInteractor;
        data.secondInteractor = secondInteractor;
        data.interactionType  = type;
        data.dialogFileName   = fileName;

        return(data);
    }
        protected override void OnProcess(AggregationPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            VisitData visit = args.Context.Visit;

            if (visit.Browser == null || visit.OperatingSystem == null || visit.Screen == null || string.IsNullOrEmpty(visit.UserAgent))
            {
                return;
            }            

            Hash32 languageHash = AggregationProcessor.UpdateLanguagesDimension(args);
            Hash32 sitesHash = AggregationProcessor.UpdateSiteNamesDimension(args);

            InteractionData interactionData = new InteractionData(args, visit);

            try
            {
                ProcessDimensionSegments(args, visit, sitesHash, interactionData);
            }
            catch { }
        }
        private static void ProcessDimensionSegments(AggregationPipelineArgs args, VisitData visit, Hash32 sitesHash, InteractionData interactionData)
        {
            foreach(Dimension dimension in Dimensions)
            {
                IEnumerable<Segment> segments = from segment in segmentDefinitionService.GetSegmentDefinitions()
                                                where segment.DimensionId == dimension.DimensionID
                                                select new Segment(segment, dimension);

                foreach(Segment segment in segments)
                {
                    ISegmentKeyProvider keyProvider = null;
                    
                    switch(segment.Dimension.DimensionType)
                    {
                        case DimensionType.Browser:
                            keyProvider = interactionData.Browser;
                            break;
                        case DimensionType.OS:
                            keyProvider = interactionData.OS;
                            break;
                        case DimensionType.Screen:
                            keyProvider = interactionData.Screen;
                            break;
                        case DimensionType.UserAgent:
                            keyProvider = interactionData.UserAgent;
                            break;
                    }

                    string segmentKeyValue = keyProvider.GetSegmentKeyValue();
                    Hash64 segmentDimensionKeyId = args.GetDimension<DimensionKeys>().Add(segmentKeyValue);
                    
                    Hash64 segmentRecordId = args.GetDimension<SegmentRecords>().Add(segment.Definition.Id, visit.StartDateTime, sitesHash, segmentDimensionKeyId);

                    SegmentMetrics segmentMetricsFact = args.GetFact<SegmentMetrics>();
                    byte contactTransitionType = 1;
                    if (visit.ContactVisitIndex > 1) contactTransitionType = 2;

                    SegmentMetrics.Key segmentMetricsKey = new SegmentMetrics.Key
                    {
                        ContactTransitionType = contactTransitionType,
                        SegmentRecordId = segmentRecordId
                    };

                    List<PageEventData> evts = (from page in visit.Pages select page.PageEvents).FirstOrDefault();

                    SegmentMetricsValue segmentMetricsValue = new SegmentMetricsValue
                    {
                        //Same exact code from DimensionBase.CalculateCommonMetrics
                        Visits = 1,
                        Value = visit.Value,
                        Bounces = visit.Pages.Count == 1 ? 1 : 0,
                        Conversions = evts.Count<PageEventData>(e => e.IsGoal),
                        TimeOnSite = visit.Pages.Sum<PageData>((Func<PageData, int>)(page => DimensionBase.ConvertDuration(page.Duration))),
                        Pageviews = visit.Pages.Count,
                        Count = visit.VisitPageCount
                    };

                    segmentMetricsFact.Emit(segmentMetricsKey, segmentMetricsValue);
                }
            }           
        }