private void MovePlatform(SpacePortPistonController ctrl, bool toOpen) { var options = new Options(_button.Entity.CustomName); var velocity = options.Get("V", 1f); //Log.Write("There is {0} pistons totally", Entities.Pistons.Count); //Log.Write("There is {0} pistons in group {1} totally", Entities.Pistons.Count(p => p.HangarCode == _button.HangarCode), _button.HangarCode); var pistons = Entities.Pistons.Where( p => p.Entity.CustomName.StartsWith(Constants.SpacePortPrefix, StringComparison.OrdinalIgnoreCase)) .Where(p => p.HangarCode.Equals(_button.HangarCode, StringComparison.OrdinalIgnoreCase)) .ToList(); //Log.Write("Got {0} pistons, within {1}m while button is {2}", pistons.Count, distance, _button.Entity.CustomName); if (toOpen) { MyAPIGateway.Utilities.ShowNotification("Hangar: Opening"); foreach (var piston in pistons) { piston.SetVelocity(velocity); } Log.Write("HANGAR OPEN"); HangarState = HangarState.Open; } else { // ======= CLOSE DOOR ======= MyAPIGateway.Utilities.ShowNotification("Hangar: Closing"); foreach (var piston in pistons) { piston.SetVelocity(-velocity); } Log.Write("HANGAR CLOSED"); HangarState = HangarState.Closed; } }
public void Toggle(SpacePortPistonController ctrl) { MovePlatform(ctrl, HangarState != HangarState.Open); }
public void Close(SpacePortPistonController ctrl) { MovePlatform(ctrl, false); }
public void Open(SpacePortPistonController ctrl) { MovePlatform(ctrl, true); }