public void GetComponentsFrom(GameObject gameObject) { foreach (var component in gameObject.GetComponents <Widget>()) { if (component is MaterialWidget) { ((MaterialWidget)component).UpdateWidgetState(); } else if (component is LightWidget) { ((LightWidget)component).UpdateWidget(); } else if (component is ParticleWidget) { ((ParticleWidget)component).UpdateWidget(); } if (string.IsNullOrEmpty(component.InstanceID)) { component.GenerateInstanceID(); } var widget = new NodeWidget(component); if (widget.NeedsReferenceSerialization()) { NodeReferenceMap.AddNodeWidget(widget); } widget.Serialize(); NodeReferenceMap.AddReference(component, widget); widgetMap.Add(widget); } }
public static Object GetObject(NodeWidget widget) { if (s_nodeMap == null) { return(null); } return(s_nodeMap.Keys.Where(obj => s_nodeMap[obj].type == NodeReference.Type.Widget).FirstOrDefault(obj => s_nodeMap[obj].widget.InstanceID == widget.InstanceID)); }
public static void AddNodeWidget(NodeWidget nodeWidget) { if (s_nodeWidgetReferenceList == null) { s_nodeWidgetReferenceList = new List <NodeWidget>(); } if (!s_nodeWidgetReferenceList.Contains(nodeWidget)) { s_nodeWidgetReferenceList.Add(nodeWidget); } }
public static void AddReference(Object objectRef, NodeWidget widget) { if (s_nodeMap == null) { s_nodeMap = new Dictionary <Object, NodeReference>(); } if (s_nodeMap.ContainsKey(objectRef)) { s_nodeMap[objectRef] = new NodeReference(widget); } else { s_nodeMap.Add(objectRef, new NodeReference(widget)); } }
public NodeReference(NodeWidget widget) { this.type = Type.Widget; this.widget = widget; }