A helper struct to easily move construction parameters around.
示例#1
0
 protected EntityComponent(EntityComponentDataCreationStruct parameters)
 {
     Name      = parameters.Name;
     _data     = parameters.Data.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
     Parent    = parameters.Parent;
     _isActive = true;
 }
        /// <summary>
        /// Creates a new instance of an <see cref="EntityComponent"/>.
        /// </summary>
        public static EntityComponent GetComponent(Entity parent, EntityComponentModel dataModel)
        {
            EnsureComponentCreatorsAreLoaded();

            var parameters = new EntityComponentDataCreationStruct
            {
                Parent = parent,
                Data = dataModel.Data,
                Name = dataModel.Id
            };

            Type componentType;
            if (_componentsByType.TryGetValue(dataModel.Id.ToLowerInvariant(), out componentType))
            {
                return (EntityComponent)Activator.CreateInstance(componentType, parameters);
            }

            // fallback entity component:
            return new DataStorageEntityComponent(parameters);
        }
示例#3
0
        /// <summary>
        /// Creates a new instance of an <see cref="EntityComponent"/>.
        /// </summary>
        public static EntityComponent GetComponent(Entity parent, EntityComponentModel dataModel)
        {
            EnsureComponentCreatorsAreLoaded();

            var parameters = new EntityComponentDataCreationStruct
            {
                Parent = parent,
                Data   = dataModel.Data,
                Name   = dataModel.Id
            };

            Type componentType;

            if (_componentsByType.TryGetValue(dataModel.Id.ToLowerInvariant(), out componentType))
            {
                return((EntityComponent)Activator.CreateInstance(componentType, parameters));
            }

            // fallback entity component:
            return(new DataStorageEntityComponent(parameters));
        }
 public PlayerControllerComponent(EntityComponentDataCreationStruct parameters)
     : base(parameters)
 {
     throw new InvalidOperationException();
 }