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);