public override void SetupCharacter(MyWorldGenerator.Args generatorArgs)
            {
                Debug.Assert(MySession.Static.LocalHumanPlayer != null, "Local controller does not exist!");
                if (MySession.Static.LocalHumanPlayer == null)
                {
                    return;
                }

                var characterOb = Sandbox.Game.Entities.Character.MyCharacter.Random();

                if (Transform.HasValue && MyPerGameSettings.CharacterStartsOnVoxel)
                {
                    var transform = Transform.Value;
                    transform.Position = FixPositionToVoxel(transform.Position);
                    characterOb.PositionAndOrientation = transform;
                }
                else
                {
                    characterOb.PositionAndOrientation = Transform;
                }
                characterOb.JetpackEnabled   = JetpackEnabled;
                characterOb.DampenersEnabled = DampenersEnabled;

                if (characterOb.Inventory == null)
                {
                    characterOb.Inventory = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_Inventory>();
                }
                FillInventoryWithDefaults(characterOb.Inventory, generatorArgs.Scenario);

                var character = new MyCharacter();

                character.Name = "Player";
                character.Init(characterOb);
                MyEntities.RaiseEntityCreated(character);

                MyEntities.Add(character);

                this.CreateAndSetPlayerFaction();

                MySession.Static.LocalHumanPlayer.SpawnIntoCharacter(character);
            }
 public abstract void SetupCharacter(MyWorldGenerator.Args generatorArgs);