public void RightTopButton() { selectedNode = null; Shortcuts.editingNodes = !Shortcuts.editingNodes; IsRendering = true; if (editButton) { editButton.Text = Shortcuts.editingNodes ? "Play" : "Edit"; } if (addButton) { addButton.gameObject.SetActive(Shortcuts.editingNodes); } if (deleteButton) { deleteButton.gameObject.SetActive(false); } SetShowAddButtons(false); LevelArea.OnEditingNodesToggle(); }
public override bool Inspect() { var changed = false; inspected = this; "Mesh object".write(); /* if ("Edit".Click()) * { * * MeshEditorManager.Inst.EditMesh(_painter, true); * QcUnity.FocusOn(_painter); * }*/ this.ClickHighlight().nl(); //if ("Mat".select(40, ref _materialTag, Shortcuts.Instance.GetMaterialKeys()).nl()) // UpdateMaterial(); "Relative Pos".edit(ref relativePosition).nl(); "Relative Zoom".edit(ref relativeZoom).nl(); return(changed); }
private LevelArea MeshObjectGetOrCreate() { if (!LevelArea) { LevelArea = new GameObject().AddComponent <LevelArea>(); LevelArea.gameObject.name = source.NameForPEGI + " Mesh Object"; LevelArea.Reset(source); } return(LevelArea); }
public override void ManagedOnDeInitialize() { foreach (var e in NodesPool) { if (e) { e.Unlink(); e.gameObject.DestroyWhatever(); } } NodesPool.Clear(); LevelArea.ManagedOnDisable(); }
public void Unlink() { if (source != null) { source.Unlink(Encode()); source = null; } isFading = true; if (LevelArea) { LevelArea.FadeAway(); LevelArea = null; } if (circleCollider) { circleCollider.enabled = false; } }
//readonly LoopLock _loopLock = new LoopLock(); public override bool Inspect() { var changed = pegi.toggleDefaultInspector(this); /*if (_loopLock.Unlocked && source != null && source.inspectionLock.Unlocked) { * using (_loopLock.Lock()) { * if (pegi.Try_Nested_Inspect(source).changes(ref changed)) { * * if (name != source.name) * NameForPEGI = source.name; * * Shortcuts.visualLayer.OnLogicVersionChange(); * } * } * } else {*/ var onPlayScreen = pegi.PaintingGameViewUI; if (source != null) { var conditionPassed = source.Conditions_isEnabled(); var nd = source.AsNode; if (nd != null) { if (IsCurrent && nd.parentNode != null && icon.Back.Click("Exit this Node")) { Shortcuts.TryExitCurrentNode(); } if (!IsCurrent && icon.Enter.Click("Enter this Node")) { Shortcuts.CurrentNode = nd; } } if ((conditionPassed ? icon.Active : icon.InActive).Click("Try Force Active conditions to {0}".F(!conditionPassed)) && !source.TryForceEnabledConditions(Values.global, !conditionPassed)) { Debug.Log("No Conditions to force to {0}".F(!conditionPassed)); } pegi.nl(); if (IsCurrent) { source.name.write(PEGI_Styles.ListLabel); } else { source.name.write("Lerp parameter {0}".F(dominantParameter), conditionPassed ? PEGI_Styles.EnterLabel : PEGI_Styles.ExitLabel); } } pegi.nl(); if (source == null) { "No source node is currently linked.".writeHint(); } if ("Shape & Color".enter(ref inspectedItems, 2).nl()) { if (circleRenderer && source != null) { var node = source.AsNode; if (node != null) { var bg = TaggedTypes.TryGetByTag(Mgmt.presentationControllers, node.visualStyleTag); if (bg != null) { if (pegi.Try_Nested_Inspect(bg).nl(ref changed)) { source.visualStyleConfigs[NodesVisualLayer.SelectedPresentationMode.ClassTag] = bg.Encode().CfgData; } } } } if (source == null || (!source.InspectingTriggerItems)) { var altVis = PossibleOverrideVisualConfig; var act = ActiveConfig; if (altVis != _nodeActiveDefaultVisuals) { if ("Override visuals for {0}".F(altVis == _nodeInactiveVisuals ? "Disabled" : "Entered") .toggleIcon(ref altVis.enabled).nl()) { if (altVis.enabled) { altVis.Decode(act.Encode().ToString()); } } } ActiveConfig.Nested_Inspect().changes(ref changed); } } if ("Mesh Object".enter(ref inspectedItems, 3).nl()) { if (!LevelArea && "Create Mesh Object".Click()) { MeshObjectGetOrCreate(); } if (LevelArea && icon.Delete.ClickConfirm("dMo", "This will also erase any data of this meshobject")) { LevelArea.FadeAway(); LevelArea = null; } LevelArea.Nested_Inspect().nl(ref changed); } if ("Image".enter(ref inspectedItems, 4).nl()) { if (_imageIndex != -1) { if (!pegi.PaintingGameViewUI) { "Downloading {0} [1]".F(imageUrl, _imageIndex).write(); } } else { if ("Image".edit("Will not be saved", 40, ref _coverImage).nl()) { SetImage(); } var shortUrl = imageUrl.SimplifyDirectory(); var reload = false; var changedUrl = "Paste URL".edit(90, ref shortUrl).changes(ref changed); if (changedUrl && (shortUrl.Length > 8 || shortUrl.Length == 0)) { reload = true; imageUrl = shortUrl; } reload |= (imageUrl.Length > 8 && icon.Refresh.Click().changes(ref changed)); if (reload) { LoadCoverImage(); } pegi.nl(); if (_coverImage) { if ("Img Mode".editEnum(50, ref _mode).nl()) { SetImage(); } if (_mode == ImageMode.Tile) { "Image Scale".edit(70, ref _imageScaling, 1, 10).nl(ref changed); } else { "Hide Label".toggleIcon(ref _hideLabel).nl(ref changed); } if (!pegi.PaintingGameViewUI) { _coverImage.write(200); } pegi.nl(); } } } if ("Lerp Debug".enter(ref inspectedItems, 5).nl()) { "Is Lerping: {0}".F(lerpsFinished).nl(); "Fade portion: {0}".F(fadePortion).nl(); "Fading: {0}".F(isFading).nl(); } if (!onPlayScreen) { pegi.nl(); var seeDependencies = "Dependencies".enter(ref inspectedItems, 8).nl(); if (!textA || seeDependencies) { "Text A".edit(ref textA).nl(ref changed); } if (!textB || seeDependencies) { "Text B".edit(ref textB).nl(ref changed); } if (!circleRenderer || seeDependencies) { "Mesh Renderer".edit(ref circleRenderer).nl(ref changed); } if (!circleCollider || seeDependencies) { "Collider".edit(ref circleCollider).nl(ref changed); } if (!linkRenderer || seeDependencies) { "Link Renderer".edit(ref linkRenderer).nl(ref changed); } if (!audioSource || seeDependencies) { "Aduio Source".edit(ref audioSource).nl(ref changed); } } // } if (changed) { SetDirty(); bgColor = ActiveConfig.targetColor; OnShaderParametersChanged(); } return(changed); }
public override void OnBeforeNodeSet(Node node) { if (!_loopLock.Unlocked) { return; } using (_loopLock.Lock()) { IsRendering = true; var previousN = Shortcuts.CurrentNode; if (Application.isPlaying && (previousN == null || previousN != node)) { if (node == null) { return; } SetSelected(null); var previous = previousN?.visualRepresentation as NodeCircleController; Shortcuts.CurrentNode = node; UpdateVisibility(node, previous); foreach (var n in NodesPool) { UpdateVisibility(n.source, previous); } UpdateCurrentNodeGroupVisibilityAround(node, previous); _firstFree = 0; /*if (rtx) * { * Node iteration = node; * while (iteration != null) * { * var val = perNodeRtxConfigs[iteration.IndexForPEGI]; * if (!val.IsNullOrEmpty()) * { * rtx.Decode(val); * * break; * } * iteration = iteration.parentNode; * } * }*/ } else { Shortcuts.CurrentNode = node; } LevelArea.OnNodeChange(); } }
public static void OnNodeChange() { var newCenterNode = Shortcuts.CurrentNode; if (newCenterNode == null) { return; } LevelArea newCenterMesh = null; foreach (var m in allAreas) { if (m.source == newCenterNode) { newCenterMesh = m; break; } } if (!newCenterMesh) { return; } if (!meshesParentTf) { var go = GameObject.CreatePrimitive(PrimitiveType.Plane); go.name = "WORLD ROOT"; meshesParentTf = go.transform; meshesParentTf.transform.position = Vector3.zero; _meshParentMeshRenderer = go.GetComponent <MeshRenderer>(); go.GetComponent <Collider>().enabled = false; positionLerp = new LinkedLerp.TransformPosition(meshesParentTf, 1000); scaleLerp = new LinkedLerp.TransformLocalScale(meshesParentTf, 10); OnEditingNodesToggle(); } else { UnparentAll(); } var currentCenterNode = currentCenterMesh ? currentCenterMesh.source.AsNode : null; if (currentCenterMesh && (newCenterNode.IsDirectChildOf(currentCenterNode) || currentCenterNode.IsDirectChildOf(newCenterNode))) { bool zoomingIn = newCenterNode.IsDirectChildOf(currentCenterNode); Debug.Log("Got zooming " + (zoomingIn ? "In" : "Out")); //Zoomin out is wrong float previousZoom = meshesParentTf.localScale.x; float newZoom = (zoomingIn ? (1f / newCenterMesh.relativeZoom) : currentCenterMesh.relativeZoom // zooming out ) / previousZoom; Vector3 currentCenter = meshesParentTf.position; meshesParentTf.position = zoomingIn ? newCenterMesh.transform.position : (currentCenter - currentCenterMesh.relativePosition * newZoom); // New mesh doesn't exist yet meshesParentTf.localScale = Vector3.one * newZoom; } else { meshesParentTf.position = Vector3.zero; meshesParentTf.localScale = Vector3.one; } // currentCenterNode = newCenterNode; ParentAll(); foreach (var m in allAreas) { if (m == newCenterMesh) { currentCenterMesh = m; m.transform.localPosition = Vector3.zero; m.transform.localScale = Vector3.one * m.relativeZoom; } else { m.transform.localPosition = m.relativePosition; m.transform.localScale = Vector3.one; } } }