Exemplo n.º 1
0
 public override void Shutdown()
 {
     if (clickableComponent != null)
     {
         clickableComponent.OnClick -= ClickableComponent_OnClick;
         clickableComponent          = null;
     }
     transform = null;
     base.Shutdown();
 }
        /// <summary>
        /// Sets another entity as the parent entity.
        /// </summary>
        /// <param name="parent"></param>
        public void AttachParent(IServerTransformComponent parent)
        {
            // nothing to attach to.
            if (parent == null)
            {
                return;
            }

            Parent = parent;
        }
Exemplo n.º 3
0
 public override void Initialize()
 {
     transform = Owner.GetComponent <IServerTransformComponent>();
     if (Owner.TryGetComponent <IClickableComponent>(out var component))
     {
         clickableComponent          = component;
         clickableComponent.OnClick += ClickableComponent_OnClick;
     }
     else
     {
         Logger.Error($"Interactable component must also have a clickable component to function! Prototype: {Owner.Prototype.ID}");
     }
     base.Initialize();
 }
Exemplo n.º 4
0
        private XElement ConvertEntityToXML(IEntity entity, IServerTransformComponent transform)
        {
            var element = new XElement("SavedEntity");

            element.SetAttributeValue("X", transform.LocalPosition.X.ToString(CultureInfo.InvariantCulture));
            element.SetAttributeValue("Y", transform.LocalPosition.Y.ToString(CultureInfo.InvariantCulture));
            element.SetAttributeValue("template", entity.Prototype.ID);
            if (entity.Name != entity.Prototype.Name)
            {
                element.SetAttributeValue("name", entity.Name);
            }
            var dir = transform.Rotation.GetDir();

            // South is the default when deserializing.
            if (dir != Direction.South)
            {
                element.SetAttributeValue("direction", dir.ToString());
            }
            return(element);
        }