Пример #1
0
        public ScriptTriggerEntityComponent(EntityComponentDataCreationStruct parameters)
            : base(parameters)
        {
            _script  = GetDataOrDefault("Script", "");
            _trigger = GetDataOrDefault("Trigger", "Interaction");
            _message = GetDataOrDefault("Message", "Interact");

            _collider = new Collider(Parent.Scale, isTrigger: true);
            _collider.SetPosition(Parent.GlobalPosition);
            GameInstance.GetService <CollisionManager>().Add(_collider);
            _collider.OnTriggerEnter = OnTriggerEnter;
            _collider.OnTriggerLeave = OnTriggerLeave;

            _uiElement = new InteractionPromptOverworldUIElement(Parent, _message);
            _uiElement.InteractionStarted += InteractionHandler;
        }
Пример #2
0
 private void InteractionHandler(InteractionPromptOverworldUIElement uiElement)
 {
     ScriptPipeline.ScriptPipelineManager.RunScript(_script);
 }