Example #1
0
        public Entity Clone()
        {
            Entity entity = new Entity();

            foreach (Entity child in Children)
            {
                entity.AddChild(child.Clone());
            }
            entity.X       = X;
            entity.Y       = Y;
            entity.Active  = Active;
            entity.Visible = Visible;

            if (UpdateComponent != null)
            {
                entity.AddUpdateComponent((IUpdateComponent)UpdateComponent.Clone());
            }
            if (RenderComponent != null)
            {
                entity.AddRenderComponent((IRenderComponent)RenderComponent.Clone());
            }
            foreach (KeyValuePair <Type, Component> entry in ComponentList)
            {
                entity.AddComponent(entry.Value.Clone());
            }
            foreach (KeyValuePair <string, UpdateChain> chain in UpdateChains)
            {
                foreach (IUpdateComponent component in chain.Value)
                {
                    entity.AddChainComponent(chain.Key, (IUpdateComponent)component.Clone());
                }
            }

            return(entity);
        }
        /// <summary>
        /// コンストラクタ。
        /// </summary>
        /// <param name="render">標準描画コンポーネントのコピー元。</param>
        /// <param name="text">テキストコンポーネントのコピー元。</param>
        /// <param name="textClipping">
        /// テキストを1つ上のオブジェクトでクリッピングするならば true 。
        /// </param>
        /// <param name="withoutUnused">
        /// AviUtl拡張編集ファイル用設定で利用されないパラメータをクリアするならば true 。
        /// </param>
        public ExoTextStyleTemplate(
            RenderComponent render,
            TextComponent text,
            bool textClipping,
            bool withoutUnused = false)
        {
            if (render == null)
            {
                throw new ArgumentNullException(nameof(render));
            }
            if (text == null)
            {
                throw new ArgumentNullException(nameof(text));
            }

            this.Render         = render.Clone();
            this.Text           = text.Clone();
            this.IsTextClipping = textClipping;

            if (withoutUnused)
            {
                this.ClearUnused();
            }
        }