private void GetMiningDrillActions() { List <IMySlimBlock> blocks = new List <IMySlimBlock>(); Ship.GetBlocks(blocks, (x) => x.FatBlock != null && x.FatBlock is IMyShipDrill); if ((_blockOn == null || _blockOff == null) && blocks.Count > 0) { List <ITerminalAction> actions = new List <ITerminalAction>(); var block = (IMyShipDrill)blocks[0].FatBlock; block.GetActions(actions); string actionsString = ""; actions.ForEach(x => actionsString += ", " + x.Name); //_fireRocket = block.GetActionWithName("Shoot_once"); //_fireGun = block.GetActionWithName("Shoot"); _blockOff = block.GetActionWithName("OnOff_Off"); _blockOn = block.GetActionWithName("OnOff_On"); } //DrillsOn(); }
private void SetupActions() { if (_fireGun == null && _allWeapons.Count > 0 && _allWeapons[0] != null) { var actions = new List <ITerminalAction>(); ((IMyUserControllableGun)_allWeapons[0].FatBlock).GetActions(actions); if (_fireRocket == null) { foreach (var act in actions) { Util.GetInstance().Log("[Drone.IsAlive] Action Name " + act.Name.Replace(" ", "_"), "weapons.txt"); switch (act.Name.ToString()) { case "Shoot_once": _fireRocket = act; break; case "Shoot_On": _fireGun = act; break; case "Toggle_block_Off": _blockOff = act; break; case "Toggle_block_On": _blockOn = act; break; } } Util.GetInstance() .Log( "[Drone.IsAlive] Has Missile attack -> " + (_fireRocket != null) + " Has Gun Attack " + (_fireRocket != null) + " off " + (_blockOff != null) + " on " + (_blockOn != null), "weapons.txt"); } } }
//Disables all beacons and antennas and deletes the ship. public void DeleteShip() { var lstSlimBlock = new List <IMySlimBlock>(); Ship.GetBlocks(lstSlimBlock, (x) => x.FatBlock is IMyRadioAntenna); foreach (var block in lstSlimBlock) { IMyRadioAntenna antenna = (IMyRadioAntenna)block.FatBlock; ITerminalAction act = antenna.GetActionWithName("OnOff_Off"); act.Apply(antenna); } lstSlimBlock = new List <IMySlimBlock>(); Ship.GetBlocks(lstSlimBlock, (x) => x.FatBlock is IMyBeacon); foreach (var block in lstSlimBlock) { IMyBeacon beacon = (IMyBeacon)block.FatBlock; ITerminalAction act = beacon.GetActionWithName("OnOff_Off"); act.Apply(beacon); } MyAPIGateway.Entities.RemoveEntity(Ship as IMyEntity); Ship = null; }
/* * let me explain this stupid method....... nope, not much to explain because this is what I Had to do to get it to work. */ private void FindWeapons() { if (Ship == null) return; _allWeapons.Clear(); _allReactors.Clear(); _manualGuns.Clear(); _manualRockets.Clear(); Ship.GetBlocks(_manualRockets, (x) => x.FatBlock != null && (x.FatBlock is IMySmallMissileLauncher)); Ship.GetBlocks(_manualGuns, (x) => x.FatBlock != null && (x.FatBlock is IMySmallGatlingGun)); Ship.GetBlocks(_allReactors, (x) => x.FatBlock != null && x.FatBlock is IMyReactor); Ship.GetBlocks(_allWeapons, (x) => x.FatBlock != null && (x.FatBlock is IMyUserControllableGun)); if (_fireGun==null && _manualRockets.Count > 0 && _manualRockets[0] != null) { var actions = new List<ITerminalAction>(); var block = (IMySmallMissileLauncher)_manualRockets[0].FatBlock; block.GetActions(actions); if (_fireRocket == null) { foreach (var act in actions) { Util.GetInstance().Log("[Drone.IsAlive] Action Name " + act.Name.Replace(" ", "_"), "drone.txt"); switch (act.Name.ToString()) { case "Shoot_once": _fireRocket = act; break; case "Shoot_On": _fireGun = act; break; //case "OnOff_Off": // _blockOff = act; // break; //case "OnOff_On": // _blockOn = act; // break; } } Util.GetInstance().Log("[Drone.IsAlive] Action Length " + actions.Count, "drone.txt"); //_fireRocket = block.GetActionWithName("Shoot_once"); //_fireGun = block.GetActionWithName("Shoot"); _blockOff = block.GetActionWithName("OnOff_Off"); _blockOn = block.GetActionWithName("OnOff_On"); Util.GetInstance() .Log( "[Drone.IsAlive] Has Missile attack -> " + (_fireRocket != null) + " Has Gun Attack " + (_fireRocket != null) + " off " + (_blockOff != null) + " on " + (_blockOn != null), "drone.txt"); } } _weaponCount = _allWeapons.Count(x => (x.FatBlock).IsWorking || (x.FatBlock).IsFunctional); }
private void SetupActions() { if (_fireGun == null && _allWeapons.Count > 0 && _allWeapons[0] != null) { var actions = new List<ITerminalAction>(); ((IMyUserControllableGun)_allWeapons[0].FatBlock).GetActions(actions); if (_fireRocket == null) { foreach (var act in actions) { Util.GetInstance().Log("[Drone.IsAlive] Action Name " + act.Name.Replace(" ", "_"), "weapons.txt"); switch (act.Name.ToString()) { case "Shoot_once": _fireRocket = act; break; case "Shoot_On": _fireGun = act; break; case "Toggle_block_Off": _blockOff = act; break; case "Toggle_block_On": _blockOn = act; break; } } Util.GetInstance() .Log( "[Drone.IsAlive] Has Missile attack -> " + (_fireRocket != null) + " Has Gun Attack " + (_fireRocket != null) + " off " + (_blockOff != null) + " on " + (_blockOn != null), "weapons.txt"); } } }