private void Button_SpawnBot() { if (this.robot != null || robotIsDestroyed) { return; } if (spawnThingDef.NullOrEmpty()) { Log.Error("Robot Recharge Station: Wanted to spawn robot, but spawnThingDef is null or empty!"); return; } X2_AIRobot spawnedRobot = null; if (!IsRobotInContainer()) { spawnedRobot = X2_Building_AIRobotCreator.CreateRobot(spawnThingDef, this.Position, this.Map, Faction.OfPlayer); } else { spawnedRobot = container[0] as X2_AIRobot; container.Remove(spawnedRobot); spawnedRobot = GenSpawn.Spawn(spawnedRobot, this.Position, this.Map) as X2_AIRobot; } this.robot = spawnedRobot; this.robot.rechargeStation = this; this.robotSpawnedOnce = true; this.SpawnRobotAfterRecharge = true; }
private void Button_SpawnBot() { if (isRepairRequestActive) { return; } if (this.robot != null || robotIsDestroyed) { if (this.robot != null && this.robot.Spawned && AIRobot_Helper.IsInDistance(this.Position, robot.Position, 3)) { this.robot.jobs.ClearQueuedJobs(); this.robot.stances.CancelBusyStanceHard(); this.robot.jobs.StopAll(false); this.robot.pather.StopDead(); } return; } if (spawnThingDef.NullOrEmpty()) { Log.Error("Robot Recharge Station: Wanted to spawn robot, but spawnThingDef is null or empty!"); return; } X2_AIRobot spawnedRobot = null; if (!IsRobotInContainer()) { spawnedRobot = X2_Building_AIRobotCreator.CreateRobot(spawnThingDef, this.Position, this.Map, Faction.OfPlayer); } else { spawnedRobot = container[0] as X2_AIRobot; container.Remove(spawnedRobot); spawnedRobot = GenSpawn.Spawn(spawnedRobot, this.Position, this.Map) as X2_AIRobot; } this.robot = spawnedRobot; this.robot.rechargeStation = this; this.robotSpawnedOnce = true; this.SpawnRobotAfterRecharge = true; }