using System; using BlockSpace.Voxels; using UnityEngine; [DisallowMultipleComponent] public sealed class DuplicateGroupBehavior : NodeBehavior { public override void OnRun(string inputPortName) { if (base.IsAuthoritative && string.Equals(inputPortName, "Duplicate", StringComparison.Ordinal) && TryGetInputGroup("Group", out var group) && !(group == null)) { VoxelGroupManager instance = VoxelGroupManager.Instance; VoxelGroup voxelGroup = ((instance != null) ? instance.DuplicateGroup(group, Vector3Int.zero) : null); SetOutputValueIfChanged("Group", (voxelGroup != null) ? BSValue.FromGroup(voxelGroup.id) : BSValue.None); TriggerOutput("Done"); } } }