Пример #1
0
        static void RegisterMemComponents()
        {
            //memory components
            var dffShape = PrefabBuilder.Cube                       //D-flip-flop
                           .WithIO(CubeSide.Left, SideType.Input)   //data
                           .WithIO(CubeSide.Top, SideType.Input)    //write
                           .WithIO(CubeSide.Front, SideType.Output) //out
                           .WithColor(new UnityEngine.Color(0.827f, 0.467f, 0.0f));
            var tffShape = PrefabBuilder.Cube                       //T-flip-flop
                           .WithIO(CubeSide.Top, SideType.Input)    //input
                           .WithIO(CubeSide.Front, SideType.Output)
                           .WithColor(new UnityEngine.Color(0.467f, 0.827f, 0.0f));
            var rsShape = PrefabBuilder.Cube                     //RS-latch
                          .WithIO(CubeSide.Back, SideType.Input) //set
                          .WithIO(CubeSide.Top, SideType.Input)  //reset
                          .WithIO(CubeSide.Front, SideType.Output)
                          .WithColor(new UnityEngine.Color(0.467f, 0.0f, 0.827f));
            var regShape = PrefabBuilder.Cube                       //Register (DFF + read)
                           .WithIO(CubeSide.Left, SideType.Input)   //data
                           .WithIO(CubeSide.Top, SideType.Input)    //write
                           .WithIO(CubeSide.Back, SideType.Input)   //read
                           .WithIO(CubeSide.Front, SideType.Output) //output
                           .WithColor(new UnityEngine.Color(0.827f, 0.467f, 0.0f));

            ComponentRegistry.CreateNew <DFFHandler>("dff", "D-Flip-Flop", dffShape);
            ComponentRegistry.CreateNew <TFFHandler>("tff", "T-Flip-Flop", tffShape);
            ComponentRegistry.CreateNew <RSHandler>("rsnor", "RS-Latch", rsShape);
            ComponentRegistry.CreateNew <RegHandler>("reg", "Register", regShape);
        }
Пример #2
0
        static void RegisterBaseGates()
        {
            //base gates
            var xorShape = PrefabBuilder.Cube
                           .WithIO(CubeSide.Top, SideType.Input)
                           .WithIO(CubeSide.Back, SideType.Input)
                           .WithIO(CubeSide.Front, SideType.Output)
                           .WithColor(new UnityEngine.Color(0.280f, 0.161f, 0.586f));
            var orShape = PrefabBuilder.Cube
                          .WithIO(CubeSide.Top, SideType.Input)
                          .WithIO(CubeSide.Back, SideType.Input)
                          .WithIO(CubeSide.Front, SideType.Output)
                          .WithColor(new UnityEngine.Color(0.280f, 0.561f, 0.286f));
            var andShape = PrefabBuilder.Cube
                           .WithIO(CubeSide.Top, SideType.Input)
                           .WithIO(CubeSide.Back, SideType.Input)
                           .WithIO(CubeSide.Front, SideType.Output)
                           .WithColor(new UnityEngine.Color(0.580f, 0.161f, 0.286f));
            //false/true
            var falseTrueShape = PrefabBuilder.Cube
                                 .WithIO(CubeSide.Front, SideType.Output);

            ComponentRegistry.CreateNew <TrueHandler>("truegate", "TRUE", falseTrueShape);
            ComponentRegistry.CreateNew <FalseHandler>("falsegate", "FALSE", falseTrueShape);
            ComponentRegistry.CreateNew <XORHandler>("xor", "XOR", xorShape);
            ComponentRegistry.CreateNew <ORHandler>("or", "OR", orShape);
            ComponentRegistry.CreateNew <ANDHandler>("and", "AND", andShape);
        }
Пример #3
0
 internal void CreateRams()
 {
     CreateRam <Ram1B>(1);
     CreateRam <Ram4B>(4);
     CreateRam <Ram8B>(8);
     CreateRam <Ram12B>(12);
     CreateRam <Ram16B>(16);
     ComponentRegistry.CreateNew <Ram32B>("ram32b", "RAM 32 Bit", BuilderHelper.CreateMultiIOChip(24, 1, 32, 32, false, false, true, false, "A", "Write", "O", "D", false, true, false, false));
 }
Пример #4
0
        static void RegisterCoolGates()
        {
            //cool misc gates
            var randomizerShape = PrefabBuilder.Cube
                                  .WithIO(CubeSide.Top, SideType.Input)
                                  .WithIO(CubeSide.Front, SideType.Output)
                                  .WithColor(new UnityEngine.Color(1.0f, 0.553f, 0.796f));

            ComponentRegistry.CreateNew <RandomizerHandler>("randomizer", "Randomizer", randomizerShape);
        }
Пример #5
0
        public static void Register()
        {
            var prefab = PrefabBuilder
                         .Cube
                         .WithSide(CubeSide.Top, SideType.Output)
                         .WithColor(new Color(0.7f, 0.7f, 1))
                         .WithComponent <InteractNetwork>();

            ComponentRegistry.CreateNew <Receiver>(WirelessMod.WirelessMod.Instance, "receiver", "Receiver", prefab);
        }
Пример #6
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Top, SideType.Input)
                    .WithIO(CubeSide.Front, SideType.Output)
                    .WithColor(new Color(0.409803922f, 0.647058824f, 0.968627451f));

            ComponentRegistry.CreateNew <TFlipFlop>("tflipflop", "T Flip-Flop", b);
        }
Пример #7
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Front, SideType.Output)
                    .WithColor(Color.cyan)
                    .WithComponent <KeyInteract>();

            ComponentRegistry.CreateNew <KeyButton>("keybutton", "Key Button", b);
        }
Пример #8
0
        public static void Register()
        {
            var build = PrefabBuilder.Cube
                        .WithSide(CubeSide.Top, SideType.Input)
                        .WithSide(CubeSide.Front, SideType.Input)
                        .WithSide(CubeSide.Back, SideType.Output)
                        .WithColor(new Color(0, 1, 0));

            ComponentRegistry.CreateNew <CpuComponent>(this, "cpu", "CPU", build);
        }
Пример #9
0
        public static void Register()
        {
            var prefab = PrefabBuilder
                         .Cube
                         .WithSide(CubeSide.Top, SideType.Input)
                         .WithColor(new Color(1, 0.7f, 0.7f))
                         .WithComponent <InteractNetwork>();

            ComponentRegistry.CreateNew <Transmitter>(WirelessMod.WirelessMod.Instance, "transmitter", "Transmitter", prefab);
        }
    public override void BeforePatch()
    {
        ComponentRegistry.CreateNew(this, "LargePanelButton", "Large Panel Button", CreatePanelButtonOfSize(3, 2));
        ComponentRegistry.CreateNew(this, "GiantPanelButton", "Giant Panel Button", CreatePanelButtonOfSize(3, 3));
        ComponentRegistry.CreateNew(this, "EnormousPanelButton", "Enormous Panel Button", CreatePanelButtonOfSize(15, 2));

        // the world is not ready
        // ComponentRegistry.CreateNew("CollosalPanelButton", "Collosal Panel Button", CreatePanelButtonOfSize(51, 51));
        // ComponentRegistry.CreateNew("TitanicPanelButton", "Titanic Panel Button", CreatePanelButtonOfSize(401, 601));
    }
Пример #11
0
        static void RegisterDebug()
        {
            //debug
            var debugShape = PrefabBuilder.Cube //Debug Component
                             .WithIO(CubeSide.Back, SideType.Input)
                             .WithIO(CubeSide.Left, SideType.Input)
                             .WithIO(CubeSide.Front, SideType.Output)
                             .WithIO(CubeSide.Right, SideType.Output);

            ComponentRegistry.CreateNew <DebugHandler>("debug", "MY ONLY PURPOSE IS FOR DEBUGGING PLEASE END MY PAINFUL EXISTENCE BY COMMENTING OUT MY CODE, REPSI", debugShape);
        }
Пример #12
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Front, SideType.Output)
                    .WithIO(CubeSide.Top, SideType.Input, "Clock")
                    .WithIO(CubeSide.Back, SideType.Input, "Data")
                    .WithColor(new Color(0, 0.6f, 0));

            ComponentRegistry.CreateNew <DLatch>("dlatch", "D Latch", b);
        }
Пример #13
0
    public override void BeforePatch()
    {
        ComponentRegistry.CreateNew <CustomLabel>(this, "WidePanelLabel", "Wide Panel Label", CreatePanelLabelOfSize(3, 1));
        ComponentRegistry.CreateNew <CustomLabel>(this, "TallPanelLabel", "Tall Panel Label", CreatePanelLabelOfSize(1, 3));
        ComponentRegistry.CreateNew <CustomLabel>(this, "BigPanelLabel", "Big Panel Label", CreatePanelLabelOfSize(2, 2));

        // the world is not ready
        // ComponentRegistry.CreateNew<CustomLabel>("CollosallyWidePanelLabel", "Collosally Wide Panel Label", PanelLabelOfSize(51, 1));
        // ComponentRegistry.CreateNew<CustomLabel>("CollosallyTallPanelLabel", "Collosally Tall Panel Label", PanelLabelOfSize(1, 51));
        // ComponentRegistry.CreateNew<CustomLabel>("TitanicPanelLabel", "Titanic Panel Label", PanelLabelOfSize(400, 700));
    }
Пример #14
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Back, SideType.Input)
                    .WithIO(CubeSide.Top, SideType.Input)
                    .WithIO(CubeSide.Front, SideType.Output)
                    .WithColor(new Color(0.2f, 0.2f, 0.5f));

            ComponentRegistry.CreateNew <GateXNOR>("xnorgate", "XNOR Gate", b);
        }
Пример #15
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Back, SideType.Input)
                    .WithIO(CubeSide.Front, SideType.Output)
                    .WithColor(Color.yellow)
                    .WithComponent <EdgeInteract>();

            ComponentRegistry.CreateNew <EdgeDetector>("edgedetector", "Edge Detector", b);
        }
Пример #16
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Top, SideType.Input, "Clock")
                    .WithIO(CubeSide.Left, SideType.Input, "Reset")
                    .WithIO(CubeSide.Front, SideType.Output, "Data")
                    .WithIO(CubeSide.Back, SideType.Output, "EOF")
                    .WithColor(new Color(0.8117647f, 0.2509f, 1))
                    .WithComponent <FileInteract>();

            ComponentRegistry.CreateNew <FileReader>("filereader", "File Reader", b);
        }
Пример #17
0
        static void RegisterMathComponents()
        {
            //math
            var addShape = PrefabBuilder.Cube                       //Full adder
                           .WithIO(CubeSide.Left, SideType.Input)   //A
                           .WithIO(CubeSide.Right, SideType.Input)  //B
                           .WithIO(CubeSide.Back, SideType.Input)   //cin
                           .WithIO(CubeSide.Top, SideType.Output)   //cout
                           .WithIO(CubeSide.Front, SideType.Output) //output
                           .WithColor(new UnityEngine.Color(0.827f, 0.0f, 0.232f));

            ComponentRegistry.CreateNew <AddHandler>("add", "Adder", addShape);
        }
Пример #18
0
        public static void Register()
        {
            var b = PrefabBuilder.Cube
                    .WithIO(CubeSide.Front, SideType.Output)
                    .WithIO(CubeSide.Back, SideType.Input, -0.25f, 0)
                    .WithIO(CubeSide.Back, SideType.Input, 0.25f, 0);

            if (Configuration.Get("ColoredGates", true))
            {
                b = b.WithColor(new Color(0.3f, 0.2f, 0.7f));
            }

            ComponentRegistry.CreateNew <GateNAND>("nandgate", "NAND Gate", b);
        }
        public void LoadFloatCircuits()
        {
            var unary  = BuilderHelper.Create1To1(32);
            var binary = BuilderHelper.Create2To1(32);

            ComponentRegistry.CreateNew <IntToFloat>("ifconv", "INT to FLOAT conv", unary);
            ComponentRegistry.CreateNew <FloatToInt>("ficonv", "FLOAT to INT conv", unary);
            ComponentRegistry.CreateNew <Negator>("fneg", "FLOAT negator", unary);
            ComponentRegistry.CreateNew <Adder>("fadd", "FLOAT adder", binary);
            ComponentRegistry.CreateNew <Divider>("fdiv", "FLOAT divider", binary);
            ComponentRegistry.CreateNew <Moduler>("fmod", "FLOAT modulo", binary);
            ComponentRegistry.CreateNew <Multiplier>("fmul", "FLOAT multiplier", binary);
            ComponentRegistry.CreateNew <Subtractor>("fsub", "FLOAT subtractor", binary);
        }
Пример #20
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Back, SideType.Input)
                    .WithIO(CubeSide.Top, SideType.Input)
                    .WithIO(CubeSide.Front, SideType.Output);

            if (Configuration.Get("ColoredGates", true))
            {
                b = b.WithColor(new Color(0.2f, 0.7f, 0.2f));
            }

            ComponentRegistry.CreateNew <GateXOR>("xorgate", "XOR Gate", b);
        }
Пример #21
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Custom(() =>
            {
                var obj = GameObject.Instantiate(Prefabs.ThroughBlotter);
                GameObject.Destroy(obj.GetComponent <Blotter>());

                var plate = obj.transform.Find("BottomPlate").gameObject;
                plate.GetComponent <MegaMeshComponent>().MaterialType = MaterialType.CircuitBoard;
                plate.GetComponent <Renderer>().material.color        = new Color(0.6f, 1, 1);

                return(obj);
            });

            ComponentRegistry.CreateNew <ThroughInverter>("throughinverter", "Through Inverter", b);
        }
Пример #22
0
        static void RegisterIOComponents()
        {
            //io
            //0.596f, 0.424f, 0.263f
            var alphaKeyShape = PrefabBuilder.Cube                        //alphabet key
                                .WithIO(CubeSide.Left, SideType.Output)   //1
                                .WithIO(CubeSide.Front, SideType.Output)  //2
                                .WithIO(CubeSide.Right, SideType.Output)  //4
                                .WithIO(CubeSide.Back, SideType.Output)   //8
                                .WithIO(CubeSide.Top, SideType.Output)    //16
                                .WithColor(new UnityEngine.Color(0.596f, 0.424f, 0.263f));
            var numberKeyShape = PrefabBuilder.Cube                       //number key
                                 .WithIO(CubeSide.Left, SideType.Output)  //1
                                 .WithIO(CubeSide.Front, SideType.Output) //2
                                 .WithIO(CubeSide.Right, SideType.Output) //4
                                 .WithIO(CubeSide.Back, SideType.Output)  //8
                                 .WithColor(new UnityEngine.Color(0.424f, 0.424f, 0.596f));
            var keyInterfaceShape = PrefabBuilder.Cube                    //allows player to send a signal to it to listen to keys
                                    .WithIO(CubeSide.Top, SideType.Input)
                                    .WithColor(new UnityEngine.Color(0.424f, 0.596f, 0.424f));
            var arrowKeyShape = PrefabBuilder.Cube
                                .WithIO(CubeSide.Top, SideType.Output)
                                .WithIO(CubeSide.Left, SideType.Output)
                                .WithIO(CubeSide.Front, SideType.Output)
                                .WithIO(CubeSide.Right, SideType.Output)
                                .WithColor(new UnityEngine.Color(204f / 255f, 199f / 255f, 72f / 255f));
            var spacebarShape = PrefabBuilder.Cube
                                .WithIO(CubeSide.Front, SideType.Output)
                                .WithColor(new UnityEngine.Color(204f / 255f, 199f / 255f, 72f / 255f));
            var controlKeyShape = PrefabBuilder.Cube
                                  .WithIO(CubeSide.Left, SideType.Output)
                                  .WithIO(CubeSide.Right, SideType.Output)
                                  .WithColor(new UnityEngine.Color(185f / 255f, 100f / 255f, 25f / 255f));

            ComponentRegistry.CreateNew <KeyboardListenerHandler>("keylistener", "Keyboard Interface", keyInterfaceShape);
            ComponentRegistry.CreateNew <KeyboardHandler>("alphakey", "Keyboard", alphaKeyShape);
            ComponentRegistry.CreateNew <NumpadHandler>("numkey", "Numpad", numberKeyShape);
            ComponentRegistry.CreateNew <ArrowKeyHandler>("arrowkey", "Arrow Keys", arrowKeyShape);
            ComponentRegistry.CreateNew <WASDHandler>("wasd", "WASD Keys", arrowKeyShape);
            ComponentRegistry.CreateNew <SpacebarHandler>("spacebar", "Spacebar", spacebarShape);
            ComponentRegistry.CreateNew <ControlKeyHandler>("ctrlkey", "Control", controlKeyShape);
            ComponentRegistry.CreateNew <ShiftKeyHandler>("shiftkey", "Shift", controlKeyShape);
            ComponentRegistry.CreateNew <AltKeyHandler>("altkey", "Alt", controlKeyShape);
            ComponentRegistry.CreateNew <EnterKeyHandler>("enterkey", "Enter", controlKeyShape);
        }
Пример #23
0
    public override bool Execute(IEnumerable <string> args)
    {
        if (args.Count() < 2)
        {
            IGConsole.Log("Not enough arguments!");
            return(false);
        }
        string size = string.Join(" ", args.ToArray()); //turns the array into a string

        try
        {
            int[] xysize = Array.ConvertAll(size.Split(' '), s => int.Parse(s)); // split the string into a string array at every space and convert that into an int array
            ComponentRegistry.CreateNew($"{xysize[0]} x {xysize[1]} PanelLabel", $"{xysize[0]} x {xysize[1]} PanelLabel", OversizeLabels.CreatePanelLabelOfSize(xysize[0], xysize[1]));
        }
        catch (Exception ex) // Catches all exceptions
        {
            if (ex is ArgumentException)
            {
                IGConsole.Log($"Error! Cant make Label of size {size}, It already exists!");
            }
            else
            {
                IGConsole.Log($"Error! Cant make Label of size {size}, correct format is \"{{X size of Label}} {{Y size of Label}}\" ");
            }
            return(false);
        }
        string[] file = { };
        if (File.Exists($"{Directory.GetCurrentDirectory()}/sizes_l.txt"))
        {
            file = File.ReadAllLines($"{Directory.GetCurrentDirectory()}/sizes_l.txt");
        }
        List <string> list = new List <string>();

        list.AddRange(file);
        list.AddRange(new string[] { size });
        file = list.ToArray();
        File.WriteAllLines($"{Directory.GetCurrentDirectory()}/sizes_l.txt", file);
        IGConsole.Log($"Added Label of size {size} to component list");
        return(true);
    }
Пример #24
0
    public override void BeforePatch()
    {
        ComponentRegistry.CreateNew <CustomLabel>("WidePanelLabel", "Wide Panel Label", CreatePanelLabelOfSize(3, 1));
        ComponentRegistry.CreateNew <CustomLabel>("TallPanelLabel", "Tall Panel Label", CreatePanelLabelOfSize(1, 3));
        ComponentRegistry.CreateNew <CustomLabel>("BigPanelLabel", "Big Panel Label", CreatePanelLabelOfSize(2, 2));

        // This game's sequal has been in devolpment for over 2 years. I hope the world is ready
        ComponentRegistry.CreateNew <CustomLabel>("CollosallyWidePanelLabel", "Collosally Wide Panel Label", CreatePanelLabelOfSize(51, 1));
        ComponentRegistry.CreateNew <CustomLabel>("CollosallyTallPanelLabel", "Collosally Tall Panel Label", CreatePanelLabelOfSize(1, 51));
        // On second thought, the world is still not ready to see this one
        // ComponentRegistry.CreateNew<CustomLabel>("TitanicPanelLabel", "Titanic Panel Label", PanelLabelOfSize(400, 700));

        // add labels from file
        if (File.Exists($"{Directory.GetCurrentDirectory()}/sizes_l.txt"))
        {
            string[] sizes = File.ReadAllLines($"{Directory.GetCurrentDirectory()}/sizes_l.txt");
            foreach (string size in sizes)
            {
                try
                {
                    int[] xysize = Array.ConvertAll(size.Split(' '), s => int.Parse(s)); // split the string into a string array at every space and convert that into an int array
                    ComponentRegistry.CreateNew($"{xysize[0]} x {xysize[1]} PanelLabel", $"{xysize[0]} x {xysize[1]} PanelLabel", CreatePanelLabelOfSize(xysize[0], xysize[1]));
                }
                catch (Exception ex) // Catches all exceptions
                {
                    if (ex is ArgumentException)
                    {
                        IGConsole.Log($"Error! Cant load label of size {size} twice");
                    }
                    else
                    {
                        IGConsole.Log($"Error! Cant load label of size {size}, correct format is \"{{X size of label}} {{Y size of label}}\" ");
                    }
                }
            }
        }
        Shell.RegisterCommand <Add_Label>();
        Shell.RegisterCommand <Remove_Label>();
    }
Пример #25
0
 internal void CreateTopInputGate <T>(string name) where T : TwoInputGateBase
 {
     ComponentRegistry.CreateNew <T>(name + "1t", name.ToUpper() + " 1 Bit Top", BuilderHelper.CreateTopInputGate());
 }
Пример #26
0
 internal void Create2InputGate <T>(string name, int bits) where T : TwoInputGateBase
 {
     ComponentRegistry.CreateNew <T>(name + bits, name.ToUpper() + " " + bits + " Bit", BuilderHelper.Create2To1(bits));
 }
Пример #27
0
 internal void CreateRng <T>(int bits) where T : RngBase
 {
     ComponentRegistry.CreateNew <T>("rng" + bits, "RNG " + bits + " Bit", BuilderHelper.CreateRng(bits));
 }
Пример #28
0
 internal void CreateRotate <T>(int bits, int shiftBits) where T : RotateBase
 {
     ComponentRegistry.CreateNew <T>("rotate" + bits, "ROTATE " + bits + " Bit", BuilderHelper.CreateShiftLike(bits, shiftBits));
 }
Пример #29
0
 internal void CreateShift <T>(int bits, int shiftBits) where T : ShiftBase
 {
     ComponentRegistry.CreateNew <T>("shift" + bits, "SHIFT " + bits + " Bit", BuilderHelper.CreateShiftLike(bits, shiftBits));
 }
Пример #30
0
        public override void BeforePatch()
        {
            var LP22 = PrefabBuilder.Custom(() => CPUFP.createCube(2, 2))
                       .WithInput(CPUFP.getPegPos(2, 2, "L", 0.5f, 0f), CPUFP.getPegQuat("L"), "Reset Processer / Update Code")
                       .WithInput(CPUFP.getPegPos(2, 2, "L", -0.5f, 0f), CPUFP.getPegQuat("L"), "Update Code Location")
                       .WithInput(CPUFP.getPegPos(2, 2, "R", 0.5f, 0f), CPUFP.getPegQuat("R"), "Clock")
                       .WithInput(CPUFP.getPegPos(2, 2, "B", -0.5f, 0f), CPUFP.getPegQuat("B"), "Input 0")
                       .WithInput(CPUFP.getPegPos(2, 2, "B", 0.5f, 0f), CPUFP.getPegQuat("B"), "Input 1")
                       .WithOutput(CPUFP.getPegPos(2, 2, "F", 0.5f, 0f), CPUFP.getPegQuat("F"), "Output 0")
                       .WithOutput(CPUFP.getPegPos(2, 2, "F", -0.5f, 0f), CPUFP.getPegQuat("F"), "Output 1");

            ComponentRegistry.CreateNew <Processer>("LogiProcessers22", "Processer 2 Bit IO", LP22);

            var LP44 = PrefabBuilder.Custom(() => CPUFP.createCube(4, 4))
                       .WithInput(CPUFP.getPegPos(4, 4, "L", 0.5f, 0f), CPUFP.getPegQuat("L"), "Reset Processer / Update Code")
                       .WithInput(CPUFP.getPegPos(4, 4, "L", -0.5f, 0f), CPUFP.getPegQuat("L"), "Update Code Location")
                       .WithInput(CPUFP.getPegPos(4, 4, "R", 1.5f, 0f), CPUFP.getPegQuat("R"), "Clock")
                       .WithInput(CPUFP.getPegPos(4, 4, "B", -1.5f, 0f), CPUFP.getPegQuat("B"), "Input 0")
                       .WithInput(CPUFP.getPegPos(4, 4, "B", -0.5f, 0f), CPUFP.getPegQuat("B"), "Input 1")
                       .WithInput(CPUFP.getPegPos(4, 4, "B", 0.5f, 0f), CPUFP.getPegQuat("B"), "Input 2")
                       .WithInput(CPUFP.getPegPos(4, 4, "B", 1.5f, 0f), CPUFP.getPegQuat("B"), "Input 3")
                       .WithOutput(CPUFP.getPegPos(4, 4, "F", 1.5f, 0f), CPUFP.getPegQuat("F"), "Output 0")
                       .WithOutput(CPUFP.getPegPos(4, 4, "F", 0.5f, 0f), CPUFP.getPegQuat("F"), "Output 1")
                       .WithOutput(CPUFP.getPegPos(4, 4, "F", -0.5f, 0f), CPUFP.getPegQuat("F"), "Output 2")
                       .WithOutput(CPUFP.getPegPos(4, 4, "F", -1.5f, 0f), CPUFP.getPegQuat("F"), "Output 3");

            ComponentRegistry.CreateNew <Processer>("LogiProcessers44", "Processer 4 Bit IO", LP44);

            var LP88 = PrefabBuilder.Custom(() => CPUFP.createCube(8, 8))
                       .WithInput(CPUFP.getPegPos(8, 8, "L", 0.5f, 0f), CPUFP.getPegQuat("L"), "Reset Processer / Update Code")
                       .WithInput(CPUFP.getPegPos(8, 8, "L", -0.5f, 0f), CPUFP.getPegQuat("L"), "Update Code Loc")
                       .WithInput(CPUFP.getPegPos(8, 8, "R", 3.5f, 0f), CPUFP.getPegQuat("R"), "Clock")
                       .WithInput(CPUFP.getPegPos(8, 8, "B", -3.5f, 0f), CPUFP.getPegQuat("B"), "Input 0")
                       .WithInput(CPUFP.getPegPos(8, 8, "B", -2.5f, 0f), CPUFP.getPegQuat("B"), "Input 1")
                       .WithInput(CPUFP.getPegPos(8, 8, "B", -1.5f, 0f), CPUFP.getPegQuat("B"), "Input 2")
                       .WithInput(CPUFP.getPegPos(8, 8, "B", -0.5f, 0f), CPUFP.getPegQuat("B"), "Input 3")
                       .WithInput(CPUFP.getPegPos(8, 8, "B", 0.5f, 0f), CPUFP.getPegQuat("B"), "Input 4")
                       .WithInput(CPUFP.getPegPos(8, 8, "B", 1.5f, 0f), CPUFP.getPegQuat("B"), "Input 5")
                       .WithInput(CPUFP.getPegPos(8, 8, "B", 2.5f, 0f), CPUFP.getPegQuat("B"), "Input 6")
                       .WithInput(CPUFP.getPegPos(8, 8, "B", 3.5f, 0f), CPUFP.getPegQuat("B"), "Input 7")
                       .WithOutput(CPUFP.getPegPos(8, 8, "F", 3.5f, 0f), CPUFP.getPegQuat("F"), "Output 0")
                       .WithOutput(CPUFP.getPegPos(8, 8, "F", 2.5f, 0f), CPUFP.getPegQuat("F"), "Output 1")
                       .WithOutput(CPUFP.getPegPos(8, 8, "F", 1.5f, 0f), CPUFP.getPegQuat("F"), "Output 2")
                       .WithOutput(CPUFP.getPegPos(8, 8, "F", 0.5f, 0f), CPUFP.getPegQuat("F"), "Output 3")
                       .WithOutput(CPUFP.getPegPos(8, 8, "F", -0.5f, 0f), CPUFP.getPegQuat("F"), "Output 4")
                       .WithOutput(CPUFP.getPegPos(8, 8, "F", -1.5f, 0f), CPUFP.getPegQuat("F"), "Output 5")
                       .WithOutput(CPUFP.getPegPos(8, 8, "F", -2.5f, 0f), CPUFP.getPegQuat("F"), "Output 6")
                       .WithOutput(CPUFP.getPegPos(8, 8, "F", -3.5f, 0f), CPUFP.getPegQuat("F"), "Output 7");

            ComponentRegistry.CreateNew <Processer>("LogiProcessers88", "Processer 8 Bit IO", LP88);

            var LP1616 = PrefabBuilder.Custom(() => CPUFP.createCube(8, 17))
                         .WithInput(CPUFP.getPegPos(8, 17, "L", 0.5f, 0f), CPUFP.getPegQuat("L"), "Update Code / Reset Processer")
                         .WithInput(CPUFP.getPegPos(8, 17, "L", -0.5f, 0f), CPUFP.getPegQuat("L"), "Update Code Loc")
                         .WithInput(CPUFP.getPegPos(8, 17, "R", 3.5f, 0f), CPUFP.getPegQuat("R"), "Clock")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", 1f, 0f), CPUFP.getPegQuat("B"), "Port 0 Input 0")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", 2f, 0f), CPUFP.getPegQuat("B"), "Port 0 Input 1")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", 3f, 0f), CPUFP.getPegQuat("B"), "Port 0 Input 2")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", 4f, 0f), CPUFP.getPegQuat("B"), "Port 0 Input 3")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", 5f, 0f), CPUFP.getPegQuat("B"), "Port 0 Input 4")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", 6f, 0f), CPUFP.getPegQuat("B"), "Port 0 Input 5")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", 7f, 0f), CPUFP.getPegQuat("B"), "Port 0 Input 6")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", 8f, 0f), CPUFP.getPegQuat("B"), "Port 0 Input 7")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", -8f, 0f), CPUFP.getPegQuat("B"), "Port 1 Input 0")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", -7f, 0f), CPUFP.getPegQuat("B"), "Port 1 Input 1")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", -6f, 0f), CPUFP.getPegQuat("B"), "Port 1 Input 2")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", -5f, 0f), CPUFP.getPegQuat("B"), "Port 1 Input 3")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", -4f, 0f), CPUFP.getPegQuat("B"), "Port 1 Input 4")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", -3f, 0f), CPUFP.getPegQuat("B"), "Port 1 Input 5")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", -2f, 0f), CPUFP.getPegQuat("B"), "Port 1 Input 6")
                         .WithInput(CPUFP.getPegPos(8, 17, "B", -1f, 0f), CPUFP.getPegQuat("B"), "Port 1 Input 7")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", -1f, 0f), CPUFP.getPegQuat("F"), "Port 0 Output 0")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", -2f, 0f), CPUFP.getPegQuat("F"), "Port 0 Output 1")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", -3f, 0f), CPUFP.getPegQuat("F"), "Port 0 Output 2")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", -4f, 0f), CPUFP.getPegQuat("F"), "Port 0 Output 3")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", -5f, 0f), CPUFP.getPegQuat("F"), "Port 0 Output 4")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", -6f, 0f), CPUFP.getPegQuat("F"), "Port 0 Output 5")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", -7f, 0f), CPUFP.getPegQuat("F"), "Port 0 Output 6")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", -8f, 0f), CPUFP.getPegQuat("F"), "Port 0 Output 7")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", 8f, 0f), CPUFP.getPegQuat("F"), "Port 1 Output 0")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", 7f, 0f), CPUFP.getPegQuat("F"), "Port 1 Output 1")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", 6f, 0f), CPUFP.getPegQuat("F"), "Port 1 Output 2")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", 5f, 0f), CPUFP.getPegQuat("F"), "Port 1 Output 3")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", 4f, 0f), CPUFP.getPegQuat("F"), "Port 1 Output 4")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", 3f, 0f), CPUFP.getPegQuat("F"), "Port 1 Output 5")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", 2f, 0f), CPUFP.getPegQuat("F"), "Port 1 Output 6")
                         .WithOutput(CPUFP.getPegPos(8, 17, "F", 1f, 0f), CPUFP.getPegQuat("F"), "Port 1 Output 7");

            ComponentRegistry.CreateNew <Processer>("LogiProcessers1616", "Processer 2 Port IO", LP1616);

            Shell.RegisterCommand <setCodeLoc>();
        }