示例#1
0
        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;
            }
        }
示例#2
0
 public void Toggle(SpacePortPistonController ctrl)
 {
     MovePlatform(ctrl, HangarState != HangarState.Open);
 }
示例#3
0
 public void Close(SpacePortPistonController ctrl)
 {
     MovePlatform(ctrl, false);
 }
示例#4
0
 public void Open(SpacePortPistonController ctrl)
 {
     MovePlatform(ctrl, true);
 }