예제 #1
0
파일: GameRules.cs 프로젝트: RogierWV/315GR
        internal override bool InternalInitialize(IScriptInitializationParams initParams)
        {
            Current = this;

            var gameRulesInitParams = (GameRulesInitializationParams)initParams;

            Id = gameRulesInitParams.id;
            this.SetIEntity(gameRulesInitParams.entityPtr);

            return base.InternalInitialize(initParams);
        }
예제 #2
0
파일: GameRules.cs 프로젝트: yonder/CryMono
        internal override bool InternalInitialize(IScriptInitializationParams initParams)
        {
            Current = this;

            var gameRulesInitParams = (GameRulesInitializationParams)initParams;

            Id = gameRulesInitParams.id;
            this.SetIEntity(gameRulesInitParams.entityPtr);

            return(base.InternalInitialize(initParams));
        }
예제 #3
0
파일: Entity.cs 프로젝트: yonder/CryMono
        /// <summary>
        /// Initializes the entity, not recommended to set manually.
        /// </summary>
        /// <param name="initParams">Struct containing the IEntity pointer and EntityId.</param>
        /// <returns>IsEntityFlowNode</returns>
        internal override bool InternalInitialize(IScriptInitializationParams initParams)
        {
            var entityInitParams = (EntityInitializationParams)initParams;

            this.SetIEntity(entityInitParams.IEntityPtr);
            this.SetIAnimatedCharacter(entityInitParams.IAnimatedCharacterPtr);
            Id = entityInitParams.Id;

            var result = base.InternalInitialize(initParams);

            OnSpawn();

            return(result);
        }
예제 #4
0
        internal override bool InternalInitialize(IScriptInitializationParams initParams)
        {
            var nodeInitParams = (NodeInitializationParams)initParams;

            Handle  = nodeInitParams.nodePtr;
            NodeId  = nodeInitParams.nodeId;
            GraphId = nodeInitParams.graphId;

            var registrationParams = (FlowNodeBaseRegistrationParams)Script.RegistrationParams;

            // create instances of OutputPort's.
            for (int i = 0; i < registrationParams.OutputMembers.Length; i++)
            {
                var outputMember = registrationParams.OutputMembers[i];

                Type type;
                if (outputMember.MemberType == MemberTypes.Field)
                {
                    type = (outputMember as FieldInfo).FieldType;
                }
                else
                {
                    type = (outputMember as PropertyInfo).PropertyType;
                }

                bool isGenericType = type.IsGenericType;
                Type genericType   = isGenericType ? type.GetGenericArguments()[0] : typeof(void);

                object[] outputPortConstructorArgs = { Handle, i };
                Type     genericOutputPort         = typeof(OutputPort <>);
                object   outputPort = Activator.CreateInstance(isGenericType ? genericOutputPort.MakeGenericType(genericType) : type, outputPortConstructorArgs);

                if (outputMember.MemberType == MemberTypes.Field)
                {
                    (outputMember as FieldInfo).SetValue(this, outputPort);
                }
                else
                {
                    (outputMember as PropertyInfo).SetValue(this, outputPort, null);
                }
            }

            return(base.InternalInitialize(initParams));
        }
예제 #5
0
파일: ActorBase.cs 프로젝트: yonder/CryMono
        internal override bool InternalInitialize(IScriptInitializationParams initParams)
        {
            var actorInitParams = (ActorInitializationParams)initParams;

            System.Diagnostics.Contracts.Contract.Requires(actorInitParams.ChannelId > 0);
            Id = new EntityId(actorInitParams.Id);
            this.SetIActor(actorInitParams.ActorPtr);
            this.SetIEntity(actorInitParams.EntityPtr);

            ChannelId = actorInitParams.ChannelId;

            // actor *has* to have physics.
            Physicalize(new PhysicalizationParams(PhysicalizationType.Rigid));

            var result = base.InternalInitialize(initParams);

            OnSpawn();

            return(result);
        }
예제 #6
0
        internal override bool InternalInitialize(IScriptInitializationParams initParams)
        {
            var actorInitParams = (ActorInitializationParams)initParams;

            //System.Diagnostics.Contracts.Contract.Requires(actorInitParams.ChannelId > 0);
            if (actorInitParams.ChannelId <= 0)
            {
                throw new ArgumentException("Invalid channel identifier used for actor initialization.");
            }
            this.Id          = new EntityId(actorInitParams.Id);
            this.ActorHandle = actorInitParams.ActorPtr;
            this.ActorHandle = actorInitParams.EntityPtr;

            this.ChannelId = actorInitParams.ChannelId;

            // actor *has* to have physics.
            this.Physicalize(new PhysicalizationParams(PhysicalizationType.Rigid));

            var result = base.InternalInitialize(initParams);

            this.OnSpawn();

            return(result);
        }
예제 #7
0
        internal override bool InternalInitialize(IScriptInitializationParams initParams)
        {
            var actorInitParams = (ActorInitializationParams)initParams;

            //System.Diagnostics.Contracts.Contract.Requires(actorInitParams.ChannelId > 0);
            if (actorInitParams.ChannelId <= 0)
            {
                throw new ArgumentException("Invalid channel identifier used for actor initialization.");
            }
            this.Id = new EntityId(actorInitParams.Id);
            this.ActorHandle = actorInitParams.ActorPtr;
            this.ActorHandle = actorInitParams.EntityPtr;

            this.ChannelId = actorInitParams.ChannelId;

            // actor *has* to have physics.
            this.Physicalize(new PhysicalizationParams(PhysicalizationType.Rigid));

            var result = base.InternalInitialize(initParams);

            this.OnSpawn();

            return result;
        }
예제 #8
0
파일: Entity.cs 프로젝트: nissidis/CryMono
        /// <summary>
        /// Initializes the entity, not recommended to set manually.
        /// </summary>
        /// <param name="initParams">Struct containing the IEntity pointer and EntityId.</param>
        /// <returns>IsEntityFlowNode</returns>
        internal override bool InternalInitialize(IScriptInitializationParams initParams)
        {
            var entityInitParams = (EntityInitializationParams)initParams;

            this.SetIEntity(entityInitParams.IEntityPtr);
            this.SetIAnimatedCharacter(entityInitParams.IAnimatedCharacterPtr);
            Id = entityInitParams.Id;

            var result = base.InternalInitialize(initParams);

            OnSpawn();

            return result;
        }
예제 #9
0
 internal virtual bool InternalInitialize(IScriptInitializationParams initParams)
 {
     return true;
 }
예제 #10
0
        internal override bool InternalInitialize(IScriptInitializationParams initParams)
        {
            var actorInitParams = (ActorInitializationParams)initParams;

            System.Diagnostics.Contracts.Contract.Requires(actorInitParams.ChannelId > 0);
            Id = new EntityId(actorInitParams.Id);
            this.SetIActor(actorInitParams.ActorPtr);
            this.SetIEntity(actorInitParams.EntityPtr);

            ChannelId = actorInitParams.ChannelId;

            // actor *has* to have physics.
            Physicalize(new PhysicalizationParams(PhysicalizationType.Rigid));

            var result = base.InternalInitialize(initParams);

            OnSpawn();

            return result;
        }
예제 #11
0
 internal virtual bool InternalInitialize(IScriptInitializationParams initParams)
 {
     return(true);
 }