Beispiel #1
0
        /// <summary>
        /// Clone this component.
        /// </summary>
        /// <returns>Cloned copy of this component.</returns>
        override public BaseComponent Clone()
        {
            ModelRenderer ret = new ModelRenderer(_entity.Model);

            CopyBasics(ret);
            return(ret);
        }
Beispiel #2
0
        /// <summary>
        /// Copy basic properties to another component (helper function to help with Cloning).
        /// </summary>
        /// <param name="copyTo">Other component to copy values to.</param>
        /// <returns>The object we are copying properties to.</returns>
        protected override BaseComponent CopyBasics(BaseComponent copyTo)
        {
            ModelRenderer other = copyTo as ModelRenderer;

            other.MaterialOverride = MaterialOverride.Clone();
            other._entity.CopyMaterials(_entity.OverrideMaterialsDictionary);
            return(base.CopyBasics(other));
        }
        /// <summary>
        /// Add a model from a model renderer component.
        /// Will use its parent game object world transformations and material.
        /// </summary>
        /// <param name="renderer">Renderer component to add.</param>
        /// <param name="removeAfterAdd">If true, will remove the renderer component from its parent once done.</param>
        public void AddModelRenderer(ModelRenderer renderer, bool removeAfterAdd)
        {
            // add model to combined mesh
            renderer._GameObject.SceneNode.ForceFullUpdate(true);
            AddModel(renderer.Model, renderer._GameObject.SceneNode.WorldTransformations, renderer.GetFirstMaterial());

            // if needed, remove form parent.
            if (removeAfterAdd)
            {
                renderer.RemoveFromParent();
            }
        }