Example #1
0
        //kOS-Utilities
        SharedObjects GetProcessorShare(kOSProcessor processor)
        {
            //Register the kOSProcessor's SharedObjects
            FieldInfo sharedField = typeof(kOSProcessor).GetField("shared", BindingFlags.Instance | BindingFlags.GetField | BindingFlags.NonPublic);
            var       proc_shared = sharedField.GetValue(processor);

            return((SharedObjects)proc_shared);
        }
Example #2
0
        public void RunProgramOn(List <Opcode> program, Volume volume)
        {
            kOSProcessor processor  = GetProcessor(volume);
            RunCommand   runCommand = new RunCommand();

            runCommand.Program = program;
            processor.ExecuteInterProcCommand(runCommand);
        }
Example #3
0
 internal Processor(Part part)
 {
     Part      = part;
     processor = part.InternalPart.Modules.OfType <kOSProcessor>().FirstOrDefault();  // We expect this to always
     if (processor == null)
     {
         throw new ArgumentException("Part is not a kOS Processor");
     }
 }
Example #4
0
        public override void Execute(kOS.SharedObjects shared)
        {
            kOSProcessor processor = shared.Processor as kOSProcessor;

            if (processor == null)
            {
                throw new ArgumentException("Processor is not a kOSProcessor");
            }
            processor.Send((Structure)KIPC.Serialization.Serializer.ReadJson(shared, json));
        }
Example #5
0
        private void DrawPartRow(Part part)
        {
            CountBeginHorizontal();

            DrawPart(part);

            kOSProcessor processorModule = part.Modules.OfType <kOSProcessor>().FirstOrDefault();

            if (processorModule == null)
            {
                throw new ArgumentException(@"Part does not have a kOSProcessor module", "part");
            }

            GUIStyle powerBoxStyle;
            string   powerLabelText;
            string   powerLabelTooltip;

            if (processorModule.ProcessorMode == ProcessorModes.STARVED)
            {
                powerBoxStyle     = boxDisabledStyle;
                powerLabelText    = "power\n<starved>";
                powerLabelTooltip = "Highlighted CPU has no ElectricCharge.";
            }
            else if (processorModule.ProcessorMode == ProcessorModes.READY)
            {
                powerBoxStyle     = boxOnStyle;
                powerLabelText    = "power\non";
                powerLabelTooltip = "Highlighted CPU is turned on and running.\n";
            }
            else
            {
                powerBoxStyle     = boxOffStyle;
                powerLabelText    = "power\noff";
                powerLabelTooltip = "Highlighted CPU is turned off.";
            }

            GUILayout.Box(new GUIContent(powerLabelText, powerLabelTooltip), powerBoxStyle);

            if (GUILayout.Button((processorModule.WindowIsOpen() ?
                                  new GUIContent((processorModule.TelnetIsAttached() ? terminalOpenTelnetIconTexture : terminalOpenIconTexture),
                                                 "Click to close terminal window.") :
                                  new GUIContent((processorModule.TelnetIsAttached() ? terminalClosedTelnetIconTexture : terminalClosedIconTexture),
                                                 "Click to open terminal window.")),
                                 panelSkin.button))
            {
                processorModule.ToggleWindow();
            }

            CountEndHorizontal();

            CheckHoverOnPreviousGUIElement(part);
        }
Example #6
0
 //kOS-Utilities
 public SharedObjects GetProcessorShared(kOSProcessor processor)
 {
     FieldInfo sharedField = typeof(kOSProcessor).GetField("shared", BindingFlags.Instance | BindingFlags.GetField | BindingFlags.NonPublic);
     var proc_shared = sharedField.GetValue(processor);
     return (SharedObjects)proc_shared;
 }
Example #7
0
 public Core(kOSProcessor processor, SharedObjects shared):base(processor, shared)
 {
     InitializeSuffixes();
 }
Example #8
0
 internal Processor(kOSProcessor processor)
 {
     this.processor = processor;
     Part           = new Part(this.processor.part);
 }
Example #9
0
 public ProcessorConnection(kOSProcessor processor, SharedObjects shared) : base()
 {
     this.shared    = shared;
     this.processor = processor;
 }
Example #10
0
 public kOSProcessorFields(kOSProcessor processor, SharedObjects sharedObj) : base(processor, sharedObj)
 {
     this.processor = processor;
     InitializeSuffixes();
 }