void ICustomVisit <UTinyEntity.Reference> .CustomVisit(UTinyEntity.Reference value) { int index; if (Property.Name == "parent" && m_Container is UTinyObject.PropertiesContainer && ((UTinyObject.PropertiesContainer)m_Container).ParentObject.Type.Equals(VisitorContext.Registry .GetTransformType())) { if (!VisitorContext.EntityIndexMap.TryGetValue(value, out index)) { return; } var transformTypeName = UTinyBuildPipeline.GetJsTypeName(VisitorContext.Registry.GetTransformType() .Dereference(VisitorContext.Registry)); var line = $"e{index}.getComponent({transformTypeName}).appendChild({Entity});"; VisitorContext.Writer.Line(line); } else { if (!VisitorContext.EntityIndexMap.TryGetValue(value, out index)) { return; } VisitorContext.Writer.Line($"{PropertySetter(Property.Name)}(e{index});"); } }
private bool AddToEntity(UTinyEntity.Reference entity, Object obj, bool runBindings = true) { if (obj is Texture2D) { var texture = (Texture2D)obj; var path = AssetDatabase.GetAssetPath(texture); var sprite = AssetDatabase.LoadAllAssetsAtPath(path).OfType <Sprite>().FirstOrDefault(); if (null == sprite) { Debug.LogWarning($"{UTinyConstants.ApplicationName}: Only Sprites are supported in {UTinyConstants.ApplicationName}."); } return(AddToEntity(entity, sprite, runBindings)); } else if (obj is Sprite) { return(AddToEntity(entity, obj as Sprite, runBindings)); } else if (obj is AudioClip) { return(AddToEntity(entity, obj as AudioClip, runBindings)); } else if (obj is Font) { return(AddToEntity(entity, obj as Font, runBindings)); } return(false); }
public sealed override void Create(UTinyEntityView view, Transform t) { UTinyEntity.Reference parentRef = UTinyEntity.Reference.None; if (t.parent) { parentRef = t.parent.GetComponent <UTinyEntityView>()?.EntityRef ?? UTinyEntity.Reference.None; } var graph = EntityGroupManager.GetSceneGraph( parentRef.Equals(UTinyEntity.Reference.None) ? EntityGroupManager.ActiveEntityGroup : (UTinyEntityGroup.Reference)parentRef.Dereference(Registry).EntityGroup); if (null == graph) { return; } var transform = new UTinyObject(Registry, GetMainTinyType()); SyncTransform(t, transform); var entityNode = graph.CreateFromExisting(t, t.parent); var entity = entityNode.Entity.Dereference(Registry); var tiny = entity.GetOrAddComponent(GetMainTinyType()); tiny.CopyFrom(transform); BindingsHelper.RunBindings(entity, tiny); }
private EntityNode FindRecursive(EntityNode node, UTinyEntity.Reference entity) { if (node.Entity.Equals(entity)) { return(node); } return(node.Children.Select(r => FindRecursive(r, entity)).NotNull().FirstOrDefault()); }
void ICustomVisit <UTinyEntity.Reference> .CustomVisit(UTinyEntity.Reference value) { int index; if (!VisitorContext.EntityIndexMap.TryGetValue(value, out index)) { return; } VisitorContext.Writer.Line($"{Path}.{Property.Name} = e{index};"); }
public IEntityNode FindNode(UTinyEntity.Reference entity) { if (entity.Dereference(Registry).HasTransform()) { return(Roots.Select(r => FindRecursive(r, entity)).NotNull().FirstOrDefault()); } else { return(StaticEntities.Find(n => n.Entity.Equals(entity))); } }
void ICustomVisit <UTinyEntity.Reference> .CustomVisit(UTinyEntity.Reference value) { if (!IsListItem) { return; } int index; if (!VisitorContext.EntityIndexMap.TryGetValue(value, out index)) { return; } VisitorContext.Writer.Line($"{Path}[{ListIndex}] = e{index};"); }
public static void ShowEntityContextMenu(this HierarchyTree tree, UTinyEntity.Reference entityRef) { if (UTinyEntity.Reference.None.Id == entityRef.Id) { return; } var menu = new GenericMenu(); menu.AddItem(new GUIContent("Create Entity"), false, () => { tree.CreateEntityFromSelection(); }); menu.AddItem(new GUIContent("Rename"), false, () => { tree.Rename(entityRef); }); menu.AddItem(new GUIContent("Duplicate"), false, () => { tree.DuplicateSelection(); }); menu.AddItem(new GUIContent("Delete"), false, () => { tree.DeleteSelection(); }); menu.AddSeparator(""); menu.AddItem(new GUIContent("New EntityGroup"), false, () => { var context = EditorContext; if (null == context) { return; } var registry = context.Registry; var project = context.Project; CreateNewEntityGroup(project.Module.Dereference(registry)); }); menu.ShowAsContext(); }
private bool AddToEntity(UTinyEntity.Reference entityRef, Sprite sprite, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = sprite?.name ?? "NullSprite"; var renderer = entity.GetOrAddComponent(Registry.GetSprite2DRendererType()); renderer["sprite"] = sprite; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyHierarchyWindow.InvalidateSceneGraph(); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, AudioClip audioClip, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = audioClip.name; var audioSource = entity.GetOrAddComponent(Registry.GetAudioSourceType()); audioSource.Refresh(); audioSource["clip"] = audioClip; audioSource["volume"] = 1.0f; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyHierarchyWindow.InvalidateSceneGraph(); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, Font font, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = font.name; var renderer = entity.GetOrAddComponent(Registry.GetTextRendererType()); renderer["text"] = "Sample Text"; renderer["font"] = font; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyHierarchyWindow.InvalidateSceneGraph(); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, Sprite sprite, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = sprite?.name ?? "NullSprite"; var renderer = entity.GetOrAddComponent(Registry.GetSprite2DRendererType()); renderer["sprite"] = sprite; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyEventDispatcher <ChangeSource> .Dispatch(ChangeSource.SceneGraph); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, Font font, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = font.name; var renderer = entity.GetOrAddComponent(Registry.GetTextRendererType()); renderer["text"] = "Sample Text"; renderer["font"] = font; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyEventDispatcher <ChangeSource> .Dispatch(ChangeSource.SceneGraph); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, Texture2D texture, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = texture.name; var image2d = entity.GetOrAddComponent(Registry.GetImage2DType()); image2d.Refresh(); image2d["imageFile"] = texture; // @TODO Pull from texture importer image2d["pixelsToWorldUnits"] = 1.0f; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyHierarchyWindow.InvalidateSceneGraph(); return(true); }
public void RemoveEntityReference(UTinyEntity.Reference entity) { EntitiesProperty.Remove(this, entity); }
public void AddEntityReference(UTinyEntity.Reference entity) { EntitiesProperty.Add(this, entity); }
public void AddImplicitReference(UTinyEntity.Reference entity) { m_ImplicitReferences.Add(entity); }
public void Rename(UTinyEntity.Reference entity) { var item = FindItem(entity.Dereference(m_Context.Registry).View.gameObject.GetInstanceID(), rootItem); BeginRename(item); }
bool IExcludeVisit <UTinyEntity.Reference> .ExcludeVisit(UTinyEntity.Reference value) { return(value.Equals(UTinyEntity.Reference.None)); }