Example #1
0
        public void InitializeMovementPart()
        {
            CreatureLocomotionType locomotionType = attachedAgent.locomotionType;

            attachedBody = PartTransform.GetComponentInParent <Rigidbody>();
            if (locomotionType == CreatureLocomotionType.StandardForwardBack ||
                locomotionType == CreatureLocomotionType.Flight)
            {
                ConstantForce cf = attachedBody.gameObject.GetComponent <ConstantForce>();
                if (cf == null)
                {
                    cf = attachedBody.gameObject.AddComponent <ConstantForce>();
                }
                cf.relativeForce        = Vector3.zero;
                engineMovementVariables = new EngineMovementVariables[3];
                if (locomotionType == CreatureLocomotionType.Flight)
                {
                    engineMovementVariables[(int)Direction.Y] = new EngineMovementVariables(
                        attachedAgent, Direction.Y, miscVariables);
                    engineMovementVariables[(int)Direction.Z] = new EngineMovementVariables(
                        attachedAgent, Direction.Z, miscVariables);
                    engineMovementVariables[(int)Direction.X] = new EngineMovementVariables(
                        attachedAgent, Direction.X, miscVariables);
                    engineMovementVariables[0].Initialize(attachedAgent, parentCreature, attachedBody);
                    engineMovementVariables[1].Initialize(attachedAgent, parentCreature, attachedBody);
                    engineMovementVariables[2].Initialize(attachedAgent, parentCreature, attachedBody);
                    Enabled = true;
                }
                else if (locomotionType == CreatureLocomotionType.StandardForwardBack)
                {
                    engineMovementVariables[(int)Direction.Y] = new EngineMovementVariables(
                        attachedAgent, Direction.Y, miscVariables);
                    engineMovementVariables[(int)Direction.Z] = new EngineMovementVariables(
                        attachedAgent, Direction.Z, miscVariables);
                    engineMovementVariables[(int)Direction.X] = new EngineMovementVariables(
                        attachedAgent, Direction.X, miscVariables);
                }
            }
            else
            {
                engineMovementVariables = new EngineMovementVariables[0];
            }
        }
Example #2
0
 public EnginePart(CreaturePart creaturePart, Transform transform, CreatureLocomotionType partMovementType,
                   float updateEvery)
     : base(creaturePart, transform, updateEvery)
 {
 }