public EggEntity(LizardEggMaterial material = LizardEggMaterial.LizardEgg)
        {
            SetModelInstance(AssetLocator.GameLayer, material.Model(), material.Material());
            SetPhysicsShape(
                AssetLocator.LizardEggPhysicsShape,
                Vector3.ZERO,
                GameplayConstants.EGG_MASS,
                disablePerformanceDeactivation: true,
                restitution: GameplayConstants.EGG_RESTITUTION,
                linearDamping: GameplayConstants.EGG_DAMPING_LINEAR,
                angularDamping: GameplayConstants.EGG_DAMPING_ANGULAR,
                friction: GameplayConstants.EGG_FRICTION,
                rollingFriction: GameplayConstants.EGG_FRICTION_ROLLING
                );
            EnableContinuousCollisionDetection(GameplayConstants.MIN_SPEED_FOR_EGG_CCD, GameplayConstants.EGG_COLLISION_RADIUS * 0.01f);

            AssetLocator.MainGeometryPass._EGGHACK_MH = material.Model();

            eggIllumination = new Light(Vector3.ZERO, GameplayConstants.EGG_ILLUMINATION_RADIUS, material.CameraIlluminationColor());
            AssetLocator.LightPass.AddLight(eggIllumination);

            lastPositions    = new Vector3[(int)(TRUE_VELOCITY_CALCULATION_WINDOW_SIZE_SECS / (1f / (EntityModule.TickRateHz ?? 300f)))];
            elapsedTimes     = new float[lastPositions.Length];
            nextPositionSlot = 0;

            EntityModule.PostTick += PostTick;
            CollisionDetected     += ColDet;
        }