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; }
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(); }
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); }