private static CustomBuilder CreatePanelButtonOfSize(int x, int z)
    {
        return(PrefabBuilder
               .Custom(() =>
        {
            var obj = UnityEngine.Object.Instantiate(References.Prefabs.PanelButton);
            obj.transform.GetChild(0).localScale = new Vector3(x - 0.3f, 0.2f, z - 0.3f);        // this is the collider of the button that you have to click on to press it
            obj.transform.GetChild(1).localScale = new Vector3(x - 0.3f, 0.2f, z - 0.3f);        // this is the actual button itself that moves when you interact with it
            obj.transform.GetChild(2).localScale = new Vector3(x, 0.33333f, z);                  // this is the base of the button, the white part right below the brown part
            obj.transform.GetChild(4).localScale = new Vector3(x - 0.35f, 0.833333f, z - 0.35f); // this is the back panel that the output sits on top of. Dimensions carefully chosen so that mounts can fit between them

            // if it is an even number wide, we have to shift everything in the component so that it still lines up with the grid
            if (x % 2 == 0)
            {
                for (int i = 0; i < obj.transform.childCount; i++)
                {
                    obj.transform.GetChild(i).transform.localPosition += new Vector3(0.5f, 0, 0);
                }
            }
            // ditto with height
            if (z % 2 == 0)
            {
                for (int i = 0; i < obj.transform.childCount; i++)
                {
                    obj.transform.GetChild(i).transform.localPosition += new Vector3(0, 0, 0.5f);
                }
            }

            return obj;
        }));
    }
 public SessionGuiService(
     SessionGui sessionGui,
     MatchService matchService,
     PrefabBuilder prefabBuilder)
 {
     _sessionGui    = sessionGui;
     _matchService  = matchService;
     _prefabBuilder = prefabBuilder;
 }
 // TODO: Better Initialization
 public GuiController(
     AuthGui authGui,
     SessionGui sessionGui,
     ConnectionGui connectionGui,
     PrefabBuilder prefabBuilder)
 {
     _authService       = new AuthGuiService(authGui);
     _connectionService = new ConnectionGuiService(connectionGui);
     _sessionService    = new SessionGuiService(sessionGui, new MatchService(), prefabBuilder);
 }
Пример #4
0
		private static void ProcessFiles (IList<string> paths) {
			var info = new ScmlProcessingInfo ();
			var builder = new PrefabBuilder (info);
			foreach (var path in paths) 
				if (!builder.Build (Deserialize (path), path))  //Process will fail if texture import settings need to be updated
					cachedPaths.Add (path); //Failed processes will be saved and re-attempted during the next import cycle
			AssetDatabase.Refresh ();
			AssetDatabase.SaveAssets ();
			PostProcess (info);
		}
Пример #5
0
        public static void Process()
        {
            // XML -> GameObjectData[] {Custom Class}
            List <GameObjectData> gameObjectDataList;
            List <PathOutline>    pathOutlineList;

            XMLToGameObjectData(Input.svgPath, out gameObjectDataList, out pathOutlineList);

            foreach (var data in gameObjectDataList)
            {
                LineWriter.WriteLine(data.ToString());
            }
            foreach (var pathOutline in pathOutlineList)
            {
                if (pathOutline != null)
                {
                    pathOutline.AddToList(ref gameObjectDataList);
                }
            }

            for (int i = 0; i < gameObjectDataList.Count; i++)
            {
                if (gameObjectDataList[i].isShapeUnknown)
                {
                    gameObjectDataList.RemoveAt(i);
                    i--;
                }
            }
            foreach (var data in externalGameObjectDatas)
            {
                gameObjectDataList.Add(data);                                           // External GameObjects
            }
            // GameObjectData[] -> GameObject[]
            GameObject[] objects = gameObjectDataList.ToArray <GameObject>();

            // GameObject[] -> Prefab!
            PrefabBuilder pb = new PrefabBuilder(Input.prefabName, Input.prefabType, 0);

            for (int i = 0; i < objects.Length; i++)
            {
                if (objects[i] != null)
                {
                    objects[i].Bin   = i;
                    objects[i].Depth = 30 - i > -1 ? 30 - i : 0;
                    pb.Objects.Add(objects[i]);
                }
            }
            // Prefab -> Project Arrythmia!!
            pb.Export(Input.prefabPath);
        }
Пример #6
0
        private static void ProcessFiles(IList <string> paths)
        {
            var info    = new ScmlProcessingInfo();
            var builder = new PrefabBuilder(info);

            foreach (var path in paths)
            {
                if (!builder.Build(Deserialize(path), path))    //Process will fail if texture import settings need to be updated
                {
                    cachedPaths.Add(path);                      //Failed processes will be saved and re-attempted during the next import cycle
                }
            }
            AssetDatabase.Refresh();
            AssetDatabase.SaveAssets();
            PostProcess(info);
        }
        public static CustomBuilder CreateMultiIOChip(
            int leftIO, int rightIO, int frontIO, int backIO,
            bool leftOutput, bool rightOutput, bool frontOutput, bool backOutput,
            string[] leftPrefix, string[] rightPrefix, string[] frontPrefix, string[] backPrefix,
            bool leftPrefixOnly, bool rightPrefixOnly, bool frontPrefixOnly, bool backPrefixOnly)
        {
            int length  = Math.Max(1, Math.Max(leftIO, rightIO));
            int width   = Math.Max(1, Math.Max(frontIO, backIO));
            var builder = PrefabBuilder.Custom(() => createObject(width, length));

            generatePegs(builder, new Vector3(1, 0, 0), leftPrefix, leftPrefixOnly, 0, baseSize / 2, -baseSize, (leftIO - length) * baseSize, leftIO, false, leftOutput);
            generatePegs(builder, new Vector3(-1, 0, 0), rightPrefix, rightPrefixOnly, 0, -width * baseSize + (baseSize / 2), -baseSize, (rightIO - length) * baseSize, rightIO, true, rightOutput);
            generatePegs(builder, new Vector3(0, 0, -1), frontPrefix, frontPrefixOnly, -baseSize, (frontIO - width) * baseSize, 0, -length * baseSize + (baseSize / 2), frontIO, true, frontOutput);
            generatePegs(builder, new Vector3(0, 0, 1), backPrefix, backPrefixOnly, -baseSize, (backIO - width) * baseSize, 0, baseSize / 2, backIO, true, backOutput);
            return(builder);
        }
Пример #8
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);
        }
Пример #9
0
    public static CustomBuilder CreatePanelLabelOfSize(int x, int z)
    {
        return(PrefabBuilder
               .Custom(() =>
        {
            var obj = new GameObject();
            var label = UnityEngine.Object.Instantiate(References.Prefabs.PanelLabel, obj.transform);
            label.transform.GetChild(0).GetComponent <RectTransform>().sizeDelta = new Vector2(x, z);

            // remove the existing white block of the label, since we're replacing it with a bigger one
            MegaMeshManager.RemoveComponentsImmediatelyIn(label);
            UnityEngine.Object.Destroy(label.GetComponent <MegaMeshComponent>());
            UnityEngine.Object.Destroy(label.GetComponent <Renderer>());
            UnityEngine.Object.Destroy(label.GetComponent <MeshFilter>());

            // create the new geometry
            var geometry = UnityEngine.Object.Instantiate(References.Prefabs.WhiteCube, obj.transform);
            geometry.transform.localScale = new Vector3(x * 0.3f, 0.1f, z * 0.3f);

            // make sure the collider of the label is big enough, so you can click on all parts of it
            label.GetComponent <BoxCollider>().size = new Vector3(x, 1, z);

            // ...and get rid of the collider of the geometry, so it doesn't interfere with clicking on the label.
            // Destorying it causes bugs for some reason so I just do this ¯\_(ツ)_/¯
            geometry.GetComponent <BoxCollider>().size = Vector3.zero;

            // if it is an even number high, we have to shift everything in the component so that it still lines up with the grid
            if (z % 2 == 0)
            {
                for (int i = 0; i < obj.transform.childCount; i++)
                {
                    obj.transform.GetChild(i).transform.localPosition += new Vector3(0, 0, 0.15f);
                }
            }
            // ditto if it is an even number wide
            if (x % 2 == 0)
            {
                for (int i = 0; i < obj.transform.childCount; i++)
                {
                    obj.transform.GetChild(i).transform.localPosition += new Vector3(0.15f, 0, 0);
                }
            }

            return obj;
        }));
    }
Пример #10
0
        private void CreateHenryPrefab()
        {
            if (!HenryBody)
            {
                PrefabBuilder builder = new PrefabBuilder();
                builder.prefabName = "HenryBody";
                builder.masteryAchievementUnlockable = "";
                builder.model               = Assets.mainAssetBundle.LoadAsset <GameObject>("mdlHenry");
                builder.defaultSkinIcon     = LoadoutAPI.CreateSkinIcon(API.HexToColor("00A86B"), API.HexToColor("E56717"), API.HexToColor("D9DDDC"), API.HexToColor("43464B"));
                builder.masterySkinIcon     = LoadoutAPI.CreateSkinIcon(API.HexToColor("00A86B"), API.HexToColor("E56717"), API.HexToColor("D9DDDC"), API.HexToColor("43464B"));
                builder.masterySkinDelegate = material;

                HenryBody = builder.CreatePrefab();
                Material material()
                {
                    return(Assets.mainAssetBundle.LoadAsset <Material>("matHenryAlt"));
                }
            }
        }
        public static CustomBuilder CreateMatrixIOChip(
            int leftIO, int rightIO, int frontIO, int backIO, int topColumns, int topRows,
            bool leftOutput, bool rightOutput, bool frontOutput, bool backOutput, bool topOutput,
            string leftPrefix, string rightPrefix, string frontPrefix, string backPrefix, string topPrefix,
            bool leftPrefixOnly, bool rightPrefixOnly, bool frontPrefixOnly, bool backPrefixOnly)
        {
            int length  = Math.Max(1, Math.Max(topRows, Math.Max(leftIO, rightIO)));
            int width   = Math.Max(1, Math.Max(topColumns, Math.Max(frontIO, backIO)));
            var builder = PrefabBuilder.Custom(() => createObject(width, length));

            generatePegs(builder, new Vector3(1, 0, 0), leftPrefix, leftPrefixOnly, 0, baseSize / 2, -baseSize, (leftIO - length) * baseSize, leftIO, false, leftOutput);
            generatePegs(builder, new Vector3(-1, 0, 0), rightPrefix, rightPrefixOnly, 0, -width * baseSize + (baseSize / 2), -baseSize, (rightIO - length) * baseSize, rightIO, true, rightOutput);
            generatePegs(builder, new Vector3(0, 0, -1), frontPrefix, frontPrefixOnly, -baseSize, (frontIO - width) * baseSize, 0, -length * baseSize + (baseSize / 2), frontIO, true, frontOutput);
            generatePegs(builder, new Vector3(0, 0, 1), backPrefix, backPrefixOnly, -baseSize, (backIO - width) * baseSize, 0, baseSize / 2, backIO, true, backOutput);

            yOffset += baseSize / 2;
            for (int row = 0; row < topRows; row++)
            {
                generatePegs(builder, new Vector3(0, 1, 0), topPrefix + row, false, -baseSize, (topColumns - width) * baseSize, 0, -row * baseSize, topColumns, true, topOutput);
            }
            yOffset -= baseSize / 2;
            return(builder);
        }
Пример #12
0
        public static Node CreateNodeFromV1NodeData(V1.NodeData v1, NodeData data)
        {
            NodeDataImporter imp = null;
            Node             n   = null;

            switch (v1.Kind)
            {
            case V1.NodeKind.LOADER_GUI:
            {
                var v = new Loader();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.FILTER_GUI:
            {
                var v = new Filter();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.IMPORTSETTING_GUI:
            {
                var v = new ImportSetting();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.MODIFIER_GUI:
            {
                var v = new Modifier();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.GROUPING_GUI:
            {
                var v = new Grouping();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.PREFABBUILDER_GUI:
            {
                var v = new PrefabBuilder();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.BUNDLECONFIG_GUI:
            {
                var v = new BundleConfigurator();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.BUNDLEBUILDER_GUI:
            {
                var v = new BundleBuilder();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.EXPORTER_GUI:
            {
                var v = new Exporter();
                imp = v;
                n   = v;
            }
            break;
            }

            n.Initialize(data);
            imp.Import(v1, data);

            return(n);
        }
Пример #13
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>();
        }
Пример #14
0
        public override void BeforePatch()
        {
            var XORRight = PrefabBuilder.Custom(() => CPUFP.createCube(1, 2, hexToColor("#1D2f8E")))
                           .WithInput(CPUFP.getPegPos(1, 2, "B", 0.5f, 0), CPUFP.getPegQuat("B"), "A")
                           .WithInput(CPUFP.getPegPos(1, 2, "B", -0.5f, 0), CPUFP.getPegQuat("B"), "B")
                           .WithOutput(CPUFP.getPegPos(1, 2, "F", 0.5f, 0), CPUFP.getPegQuat("F"), "A XOR B");

            ComponentRegistry.CreateNew <XOR>("LWXORRight", "XOR Gate (Right blot)", XORRight);

            var XORLeft = PrefabBuilder.Custom(() => CPUFP.createCube(1, 2, hexToColor("#1D2f8E")))
                          .WithInput(CPUFP.getPegPos(1, 2, "B", 0.5f, 0), CPUFP.getPegQuat("B"), "A")
                          .WithInput(CPUFP.getPegPos(1, 2, "B", -0.5f, 0), CPUFP.getPegQuat("B"), "B")
                          .WithOutput(CPUFP.getPegPos(1, 2, "F", -0.5f, 0), CPUFP.getPegQuat("F"), "A XOR B");

            ComponentRegistry.CreateNew <XOR>("LWXORLeft", "XOR Gate (Left blot)", XORLeft);

            var DLatch = PrefabBuilder.Custom(() => CPUFP.createCube(2, 1, hexToColor("#349F16")))
                         .WithInput(CPUFP.getPegPos(2, 1, "B"), CPUFP.getPegQuat("B"), "Input")
                         .WithInput(CPUFP.getPegPos(2, 1, "T", 0f, -0.5f), CPUFP.getPegQuat("T"), "Enable")
                         .WithOutput(CPUFP.getPegPos(2, 1, "T", 0f, 0.5f), CPUFP.getPegQuat("T"), "Output");

            ComponentRegistry.CreateNew <DLatch>("LWDLatch", "D Latch", DLatch);

            var Oracle = PrefabBuilder.Custom(() => CPUFP.createCube(1, 2, 1, hexToColor("#F365AB")))
                         .WithInput(CPUFP.getPegPos(1, 2, 1, "B", 0, -.5f), CPUFP.getPegQuat("B"), "Input")
                         .WithOutput(CPUFP.getPegPos(1, 2, 1, "F", 0, .5f), CPUFP.getPegQuat("F"), "Output");

            ComponentRegistry.CreateNew <Oracle>("LWOracle", "Oracle", Oracle);

            var And2 = PrefabBuilder.Custom(() => CPUFP.createCube(1, 1, hexToColor("#6D1916")))
                       .WithInput(CPUFP.getPegPos(1, 1, "B", .25f, 0), CPUFP.getPegQuat("B"), "A")
                       .WithInput(CPUFP.getPegPos(1, 1, "B", -.25f, 0), CPUFP.getPegQuat("B"), "B")
                       .WithOutput(CPUFP.getPegPos(1, 1, "F"), CPUFP.getPegQuat("F"), "A & B");

            ComponentRegistry.CreateNew <AND2>("LWAND", "AND Gate", And2);

            var And3 = PrefabBuilder.Custom(() => CPUFP.createCube(1, 1.5f, hexToColor("#6D1916")))
                       .WithInput(CPUFP.getPegPos(1, 1.5f, "B", .5f, 0), CPUFP.getPegQuat("B"), "A")
                       .WithInput(CPUFP.getPegPos(1, 1.5f, "B", 0f, 0), CPUFP.getPegQuat("B"), "B")
                       .WithInput(CPUFP.getPegPos(1, 1.5f, "B", -.5f, 0), CPUFP.getPegQuat("B"), "C")
                       .WithOutput(CPUFP.getPegPos(1, 1.5f, "F"), CPUFP.getPegQuat("F"), "A & B & C");

            ComponentRegistry.CreateNew <AND3>("LWAND3", "Three-way AND Gate", And3);

            var And4 = PrefabBuilder.Custom(() => CPUFP.createCube(1, 2, hexToColor("#6D1916")))
                       .WithInput(CPUFP.getPegPos(1, 2, "B", .75f, 0), CPUFP.getPegQuat("B"), "A")
                       .WithInput(CPUFP.getPegPos(1, 2, "B", .25f, 0), CPUFP.getPegQuat("B"), "B")
                       .WithInput(CPUFP.getPegPos(1, 2, "B", -.25f, 0), CPUFP.getPegQuat("B"), "C")
                       .WithInput(CPUFP.getPegPos(1, 2, "B", -.75f, 0), CPUFP.getPegQuat("B"), "D")
                       .WithOutput(CPUFP.getPegPos(1, 2, "F"), CPUFP.getPegQuat("F"), "A & B & C & D");

            ComponentRegistry.CreateNew <AND4>("LWAND4", "Four-way AND Gate", And4);

            var ShortDelayer = PrefabBuilder.Custom(() => CPUFP.createCube(0.75f, 1))
                               .WithInput(CPUFP.getPegPos(0.75f, 1, "BT", 0, 0.35f), CPUFP.getPegQuat("BT"), "Input")
                               .WithOutput(CPUFP.getPegPos(0.75f, 1, "FT", 0, 0.35f), CPUFP.getPegQuat("FT"), "Output");

            ComponentRegistry.CreateNew <SDelay>("LWDelayShort", "Short Delayer", ShortDelayer);

            var Relay = PrefabBuilder.Custom(() => CPUFP.createCube(2, 1, hexToColor("#7E133B")))
                        .WithInput(CPUFP.getPegPos(2, 1, "B"), CPUFP.getPegQuat("B"), "Input")
                        .WithInput(CPUFP.getPegPos(2, 1, "F"), CPUFP.getPegQuat("F"), "Input2")
                        .WithInput(CPUFP.getPegPos(2, 1, "T"), CPUFP.getPegQuat("T"), "Enable");

            ComponentRegistry.CreateNew <Relay>("LWRelay", "Relay", Relay);
        }
Пример #15
0
        public override void BeforePatch()
        {
            var ROM8x4 = PrefabBuilder.Custom(() => CPUFP.createCube(4, 8))
                         .WithInput(CPUFP.getPegPos(4, 8, "L", .5f, 0), CPUFP.getPegQuat("L"), "Flash ROM")
                         .WithInput(CPUFP.getPegPos(4, 8, "L", -.5f, 0), CPUFP.getPegQuat("L"), "Change Flash Location")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "A0")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -.5f, 0), CPUFP.getPegQuat("B"), "A1")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", .5f, 0), CPUFP.getPegQuat("B"), "A2")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "A3")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "D0")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "D1")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "D2")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", .5f, 0), CPUFP.getPegQuat("F"), "D3")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -.5f, 0), CPUFP.getPegQuat("F"), "D4")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "D5")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "D6")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "D7");

            ComponentRegistry.CreateNew <ROM>("ROM8x4", "16 Byte ROM", ROM8x4);

            var ROM8x8 = PrefabBuilder.Custom(() => CPUFP.createCube(4, 8))
                         .WithInput(CPUFP.getPegPos(4, 8, "L", .5f, 0), CPUFP.getPegQuat("L"), "Flash ROM")
                         .WithInput(CPUFP.getPegPos(4, 8, "L", -.5f, 0), CPUFP.getPegQuat("L"), "Change Flash Location")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -3.5f, 0), CPUFP.getPegQuat("B"), "A0")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -2.5f, 0), CPUFP.getPegQuat("B"), "A1")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "A2")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -.5f, 0), CPUFP.getPegQuat("B"), "A3")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", .5f, 0), CPUFP.getPegQuat("B"), "A4")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "A5")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", 2.5f, 0), CPUFP.getPegQuat("B"), "A6")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", 3.5f, 0), CPUFP.getPegQuat("B"), "A7")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "D0")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "D1")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "D2")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", .5f, 0), CPUFP.getPegQuat("F"), "D3")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -.5f, 0), CPUFP.getPegQuat("F"), "D4")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "D5")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "D6")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "D7");

            ComponentRegistry.CreateNew <ROM>("ROM8x8", "256 Byte ROM", ROM8x8);

            var ROM8x12 = PrefabBuilder.Custom(() => CPUFP.createCube(4, 12))
                          .WithInput(CPUFP.getPegPos(4, 12, "L", .5f, 0), CPUFP.getPegQuat("L"), "Flash ROM")
                          .WithInput(CPUFP.getPegPos(4, 12, "L", -.5f, 0), CPUFP.getPegQuat("L"), "Change Flash Location")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", -5.5f, 0), CPUFP.getPegQuat("B"), "A0")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", -4.5f, 0), CPUFP.getPegQuat("B"), "A1")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", -3.5f, 0), CPUFP.getPegQuat("B"), "A2")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", -2.5f, 0), CPUFP.getPegQuat("B"), "A3")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "A4")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", -.5f, 0), CPUFP.getPegQuat("B"), "A5")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", .5f, 0), CPUFP.getPegQuat("B"), "A6")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "A7")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", 2.5f, 0), CPUFP.getPegQuat("B"), "A8")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", 3.5f, 0), CPUFP.getPegQuat("B"), "A9")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", 4.5f, 0), CPUFP.getPegQuat("B"), "A10")
                          .WithInput(CPUFP.getPegPos(4, 12, "B", 5.5f, 0), CPUFP.getPegQuat("B"), "A11")
                          .WithOutput(CPUFP.getPegPos(4, 12, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "D0")
                          .WithOutput(CPUFP.getPegPos(4, 12, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "D1")
                          .WithOutput(CPUFP.getPegPos(4, 12, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "D2")
                          .WithOutput(CPUFP.getPegPos(4, 12, "F", .5f, 0), CPUFP.getPegQuat("F"), "D3")
                          .WithOutput(CPUFP.getPegPos(4, 12, "F", -.5f, 0), CPUFP.getPegQuat("F"), "D4")
                          .WithOutput(CPUFP.getPegPos(4, 12, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "D5")
                          .WithOutput(CPUFP.getPegPos(4, 12, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "D6")
                          .WithOutput(CPUFP.getPegPos(4, 12, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "D7");

            ComponentRegistry.CreateNew <ROM>("ROM8x12", "4096 Byte ROM", ROM8x12);

            var ROM8x16 = PrefabBuilder.Custom(() => CPUFP.createCube(4, 16))
                          .WithInput(CPUFP.getPegPos(4, 16, "L", .5f, 0), CPUFP.getPegQuat("L"), "Flash ROM")
                          .WithInput(CPUFP.getPegPos(4, 16, "L", -.5f, 0), CPUFP.getPegQuat("L"), "Change Flash Location")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", -7.5f, 0), CPUFP.getPegQuat("B"), "A0")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", -6.5f, 0), CPUFP.getPegQuat("B"), "A1")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", -5.5f, 0), CPUFP.getPegQuat("B"), "A2")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", -4.5f, 0), CPUFP.getPegQuat("B"), "A3")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", -3.5f, 0), CPUFP.getPegQuat("B"), "A4")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", -2.5f, 0), CPUFP.getPegQuat("B"), "A5")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "A6")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", -.5f, 0), CPUFP.getPegQuat("B"), "A7")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", .5f, 0), CPUFP.getPegQuat("B"), "A8")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "A9")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", 2.5f, 0), CPUFP.getPegQuat("B"), "A10")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", 3.5f, 0), CPUFP.getPegQuat("B"), "A11")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", 4.5f, 0), CPUFP.getPegQuat("B"), "A12")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", 5.5f, 0), CPUFP.getPegQuat("B"), "A13")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", 6.5f, 0), CPUFP.getPegQuat("B"), "A14")
                          .WithInput(CPUFP.getPegPos(4, 16, "B", 7.5f, 0), CPUFP.getPegQuat("B"), "A15")
                          .WithOutput(CPUFP.getPegPos(4, 16, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "D0")
                          .WithOutput(CPUFP.getPegPos(4, 16, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "D1")
                          .WithOutput(CPUFP.getPegPos(4, 16, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "D2")
                          .WithOutput(CPUFP.getPegPos(4, 16, "F", .5f, 0), CPUFP.getPegQuat("F"), "D3")
                          .WithOutput(CPUFP.getPegPos(4, 16, "F", -.5f, 0), CPUFP.getPegQuat("F"), "D4")
                          .WithOutput(CPUFP.getPegPos(4, 16, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "D5")
                          .WithOutput(CPUFP.getPegPos(4, 16, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "D6")
                          .WithOutput(CPUFP.getPegPos(4, 16, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "D7");

            ComponentRegistry.CreateNew <ROM>("ROM8x16", "65536 Byte ROM", ROM8x16);


            var Register8 = PrefabBuilder.Custom(() => CPUFP.createCube(2, 8))
                            .WithInput(CPUFP.getPegPos(2, 8, "L", -.5f, 0), CPUFP.getPegQuat("L"), "Enable")
                            .WithInput(CPUFP.getPegPos(2, 8, "L", .5f, 0), CPUFP.getPegQuat("L"), "OE")
                            .WithInput(CPUFP.getPegPos(2, 8, "B", -3.5f, 0), CPUFP.getPegQuat("B"), "I0")
                            .WithInput(CPUFP.getPegPos(2, 8, "B", -2.5f, 0), CPUFP.getPegQuat("B"), "I1")
                            .WithInput(CPUFP.getPegPos(2, 8, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "I2")
                            .WithInput(CPUFP.getPegPos(2, 8, "B", -.5f, 0), CPUFP.getPegQuat("B"), "I3")
                            .WithInput(CPUFP.getPegPos(2, 8, "B", .5f, 0), CPUFP.getPegQuat("B"), "I4")
                            .WithInput(CPUFP.getPegPos(2, 8, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "I5")
                            .WithInput(CPUFP.getPegPos(2, 8, "B", 2.5f, 0), CPUFP.getPegQuat("B"), "I6")
                            .WithInput(CPUFP.getPegPos(2, 8, "B", 3.5f, 0), CPUFP.getPegQuat("B"), "I7")
                            .WithOutput(CPUFP.getPegPos(2, 8, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "O0")
                            .WithOutput(CPUFP.getPegPos(2, 8, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "O1")
                            .WithOutput(CPUFP.getPegPos(2, 8, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "O2")
                            .WithOutput(CPUFP.getPegPos(2, 8, "F", .5f, 0), CPUFP.getPegQuat("F"), "O3")
                            .WithOutput(CPUFP.getPegPos(2, 8, "F", -.5f, 0), CPUFP.getPegQuat("F"), "O4")
                            .WithOutput(CPUFP.getPegPos(2, 8, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "O5")
                            .WithOutput(CPUFP.getPegPos(2, 8, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "O6")
                            .WithOutput(CPUFP.getPegPos(2, 8, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "O7");

            ComponentRegistry.CreateNew <Register>("Register8", "8 Bit Register", Register8);

            var ProgRegister8 = PrefabBuilder.Custom(() => CPUFP.createCube(3, 8))
                                .WithInput(CPUFP.getPegPos(3, 8, "L", 0f, 0), CPUFP.getPegQuat("L"), "Enable")
                                .WithInput(CPUFP.getPegPos(3, 8, "L", 1f, 0), CPUFP.getPegQuat("L"), "OE")
                                .WithInput(CPUFP.getPegPos(3, 8, "R", 0f, 0), CPUFP.getPegQuat("R"), "Jump")
                                .WithInput(CPUFP.getPegPos(3, 8, "R", 1f, 0), CPUFP.getPegQuat("R"), "Carry In")
                                .WithInput(CPUFP.getPegPos(3, 8, "B", -3.5f, 0), CPUFP.getPegQuat("B"), "I0")
                                .WithInput(CPUFP.getPegPos(3, 8, "B", -2.5f, 0), CPUFP.getPegQuat("B"), "I1")
                                .WithInput(CPUFP.getPegPos(3, 8, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "I2")
                                .WithInput(CPUFP.getPegPos(3, 8, "B", -.5f, 0), CPUFP.getPegQuat("B"), "I3")
                                .WithInput(CPUFP.getPegPos(3, 8, "B", .5f, 0), CPUFP.getPegQuat("B"), "I4")
                                .WithInput(CPUFP.getPegPos(3, 8, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "I5")
                                .WithInput(CPUFP.getPegPos(3, 8, "B", 2.5f, 0), CPUFP.getPegQuat("B"), "I6")
                                .WithInput(CPUFP.getPegPos(3, 8, "B", 3.5f, 0), CPUFP.getPegQuat("B"), "I7")
                                .WithOutput(CPUFP.getPegPos(3, 8, "L", -1f, 0), CPUFP.getPegQuat("L"), "Carry Out")
                                .WithOutput(CPUFP.getPegPos(3, 8, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "O0")
                                .WithOutput(CPUFP.getPegPos(3, 8, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "O1")
                                .WithOutput(CPUFP.getPegPos(3, 8, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "O2")
                                .WithOutput(CPUFP.getPegPos(3, 8, "F", .5f, 0), CPUFP.getPegQuat("F"), "O3")
                                .WithOutput(CPUFP.getPegPos(3, 8, "F", -.5f, 0), CPUFP.getPegQuat("F"), "O4")
                                .WithOutput(CPUFP.getPegPos(3, 8, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "O5")
                                .WithOutput(CPUFP.getPegPos(3, 8, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "O6")
                                .WithOutput(CPUFP.getPegPos(3, 8, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "O7");

            ComponentRegistry.CreateNew <ProgramRegister>("ProgRegister8", "8 Bit Program Counter", ProgRegister8);

            var RAM8x4 = PrefabBuilder.Custom(() => CPUFP.createCube(4, 8))
                         .WithInput(CPUFP.getPegPos(4, 8, "L", 1.5f, 0), CPUFP.getPegQuat("L"), "Write Enable")
                         .WithInput(CPUFP.getPegPos(4, 8, "L", .5f, 0), CPUFP.getPegQuat("L"), "Flash RAM")
                         .WithInput(CPUFP.getPegPos(4, 8, "L", -.5f, 0), CPUFP.getPegQuat("L"), "Save RAM")
                         .WithInput(CPUFP.getPegPos(4, 8, "L", -1.5f, 0), CPUFP.getPegQuat("L"), "Change Flash Location")
                         .WithInput(CPUFP.getPegPos(4, 8, "R", -1.5f, 0), CPUFP.getPegQuat("R"), "A0")
                         .WithInput(CPUFP.getPegPos(4, 8, "R", -.5f, 0), CPUFP.getPegQuat("R"), "A1")
                         .WithInput(CPUFP.getPegPos(4, 8, "R", .5f, 0), CPUFP.getPegQuat("R"), "A2")
                         .WithInput(CPUFP.getPegPos(4, 8, "R", 1.5f, 0), CPUFP.getPegQuat("R"), "A3")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -3.5f, 0), CPUFP.getPegQuat("B"), "DIn0")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -2.5f, 0), CPUFP.getPegQuat("B"), "DIn1")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "DIn2")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", -.5f, 0), CPUFP.getPegQuat("B"), "DIn3")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", .5f, 0), CPUFP.getPegQuat("B"), "DIn4")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "DIn5")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", 2.5f, 0), CPUFP.getPegQuat("B"), "DIn6")
                         .WithInput(CPUFP.getPegPos(4, 8, "B", 3.5f, 0), CPUFP.getPegQuat("B"), "DIn7")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "DOut0")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "DOut1")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "DOut2")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", .5f, 0), CPUFP.getPegQuat("F"), "DOut3")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -.5f, 0), CPUFP.getPegQuat("F"), "DOut4")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "DOut5")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "DOut6")
                         .WithOutput(CPUFP.getPegPos(4, 8, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "DOut7");

            ComponentRegistry.CreateNew <RAM>("RAM8x4", "16 Byte RAM", RAM8x4);

            var RAM8x8 = PrefabBuilder.Custom(() => CPUFP.createCube(8, 8))
                         .WithInput(CPUFP.getPegPos(8, 8, "L", 1.5f, 0), CPUFP.getPegQuat("L"), "Write Enable")
                         .WithInput(CPUFP.getPegPos(8, 8, "L", .5f, 0), CPUFP.getPegQuat("L"), "Flash RAM")
                         .WithInput(CPUFP.getPegPos(8, 8, "L", -.5f, 0), CPUFP.getPegQuat("L"), "Save RAM")
                         .WithInput(CPUFP.getPegPos(8, 8, "L", -1.5f, 0), CPUFP.getPegQuat("L"), "Change Flash Location")
                         .WithInput(CPUFP.getPegPos(8, 8, "R", -3.5f, 0), CPUFP.getPegQuat("R"), "A0")
                         .WithInput(CPUFP.getPegPos(8, 8, "R", -2.5f, 0), CPUFP.getPegQuat("R"), "A1")
                         .WithInput(CPUFP.getPegPos(8, 8, "R", -1.5f, 0), CPUFP.getPegQuat("R"), "A2")
                         .WithInput(CPUFP.getPegPos(8, 8, "R", -.5f, 0), CPUFP.getPegQuat("R"), "A3")
                         .WithInput(CPUFP.getPegPos(8, 8, "R", .5f, 0), CPUFP.getPegQuat("R"), "A4")
                         .WithInput(CPUFP.getPegPos(8, 8, "R", 1.5f, 0), CPUFP.getPegQuat("R"), "A5")
                         .WithInput(CPUFP.getPegPos(8, 8, "R", 2.5f, 0), CPUFP.getPegQuat("R"), "A6")
                         .WithInput(CPUFP.getPegPos(8, 8, "R", 3.5f, 0), CPUFP.getPegQuat("R"), "A7")
                         .WithInput(CPUFP.getPegPos(8, 8, "B", -3.5f, 0), CPUFP.getPegQuat("B"), "DIn0")
                         .WithInput(CPUFP.getPegPos(8, 8, "B", -2.5f, 0), CPUFP.getPegQuat("B"), "DIn1")
                         .WithInput(CPUFP.getPegPos(8, 8, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "DIn2")
                         .WithInput(CPUFP.getPegPos(8, 8, "B", -.5f, 0), CPUFP.getPegQuat("B"), "DIn3")
                         .WithInput(CPUFP.getPegPos(8, 8, "B", .5f, 0), CPUFP.getPegQuat("B"), "DIn4")
                         .WithInput(CPUFP.getPegPos(8, 8, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "DIn5")
                         .WithInput(CPUFP.getPegPos(8, 8, "B", 2.5f, 0), CPUFP.getPegQuat("B"), "DIn6")
                         .WithInput(CPUFP.getPegPos(8, 8, "B", 3.5f, 0), CPUFP.getPegQuat("B"), "DIn7")
                         .WithOutput(CPUFP.getPegPos(8, 8, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "DOut0")
                         .WithOutput(CPUFP.getPegPos(8, 8, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "DOut1")
                         .WithOutput(CPUFP.getPegPos(8, 8, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "DOut2")
                         .WithOutput(CPUFP.getPegPos(8, 8, "F", .5f, 0), CPUFP.getPegQuat("F"), "DOut3")
                         .WithOutput(CPUFP.getPegPos(8, 8, "F", -.5f, 0), CPUFP.getPegQuat("F"), "DOut4")
                         .WithOutput(CPUFP.getPegPos(8, 8, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "DOut5")
                         .WithOutput(CPUFP.getPegPos(8, 8, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "DOut6")
                         .WithOutput(CPUFP.getPegPos(8, 8, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "DOut7");

            ComponentRegistry.CreateNew <RAM>("RAM8x8", "256 Byte RAM", RAM8x8);

            var RAM8x12 = PrefabBuilder.Custom(() => CPUFP.createCube(12, 8))
                          .WithInput(CPUFP.getPegPos(12, 8, "L", 1.5f, 0), CPUFP.getPegQuat("L"), "Write Enable")
                          .WithInput(CPUFP.getPegPos(12, 8, "L", .5f, 0), CPUFP.getPegQuat("L"), "Flash RAM")
                          .WithInput(CPUFP.getPegPos(12, 8, "L", -.5f, 0), CPUFP.getPegQuat("L"), "Save RAM")
                          .WithInput(CPUFP.getPegPos(12, 8, "L", -1.5f, 0), CPUFP.getPegQuat("L"), "Change Flash Location")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", -5.5f, 0), CPUFP.getPegQuat("R"), "A0")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", -4.5f, 0), CPUFP.getPegQuat("R"), "A1")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", -3.5f, 0), CPUFP.getPegQuat("R"), "A2")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", -2.5f, 0), CPUFP.getPegQuat("R"), "A3")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", -1.5f, 0), CPUFP.getPegQuat("R"), "A4")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", -.5f, 0), CPUFP.getPegQuat("R"), "A5")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", .5f, 0), CPUFP.getPegQuat("R"), "A6")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", 1.5f, 0), CPUFP.getPegQuat("R"), "A7")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", 2.5f, 0), CPUFP.getPegQuat("R"), "A8")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", 3.5f, 0), CPUFP.getPegQuat("R"), "A9")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", 4.5f, 0), CPUFP.getPegQuat("R"), "A10")
                          .WithInput(CPUFP.getPegPos(12, 8, "R", 5.5f, 0), CPUFP.getPegQuat("R"), "A11")
                          .WithInput(CPUFP.getPegPos(12, 8, "B", -3.5f, 0), CPUFP.getPegQuat("B"), "DIn0")
                          .WithInput(CPUFP.getPegPos(12, 8, "B", -2.5f, 0), CPUFP.getPegQuat("B"), "DIn1")
                          .WithInput(CPUFP.getPegPos(12, 8, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "DIn2")
                          .WithInput(CPUFP.getPegPos(12, 8, "B", -.5f, 0), CPUFP.getPegQuat("B"), "DIn3")
                          .WithInput(CPUFP.getPegPos(12, 8, "B", .5f, 0), CPUFP.getPegQuat("B"), "DIn4")
                          .WithInput(CPUFP.getPegPos(12, 8, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "DIn5")
                          .WithInput(CPUFP.getPegPos(12, 8, "B", 2.5f, 0), CPUFP.getPegQuat("B"), "DIn6")
                          .WithInput(CPUFP.getPegPos(12, 8, "B", 3.5f, 0), CPUFP.getPegQuat("B"), "DIn7")
                          .WithOutput(CPUFP.getPegPos(12, 8, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "DOut0")
                          .WithOutput(CPUFP.getPegPos(12, 8, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "DOut1")
                          .WithOutput(CPUFP.getPegPos(12, 8, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "DOut2")
                          .WithOutput(CPUFP.getPegPos(12, 8, "F", .5f, 0), CPUFP.getPegQuat("F"), "DOut3")
                          .WithOutput(CPUFP.getPegPos(12, 8, "F", -.5f, 0), CPUFP.getPegQuat("F"), "DOut4")
                          .WithOutput(CPUFP.getPegPos(12, 8, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "DOut5")
                          .WithOutput(CPUFP.getPegPos(12, 8, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "DOut6")
                          .WithOutput(CPUFP.getPegPos(12, 8, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "DOut7");

            ComponentRegistry.CreateNew <RAM>("RAM8x12", "4096 Byte RAM", RAM8x12);

            var RAM8x16 = PrefabBuilder.Custom(() => CPUFP.createCube(16, 8))
                          .WithInput(CPUFP.getPegPos(16, 8, "L", 1.5f, 0), CPUFP.getPegQuat("L"), "Write Enable")
                          .WithInput(CPUFP.getPegPos(16, 8, "L", .5f, 0), CPUFP.getPegQuat("L"), "Flash RAM")
                          .WithInput(CPUFP.getPegPos(16, 8, "L", -.5f, 0), CPUFP.getPegQuat("L"), "Save RAM")
                          .WithInput(CPUFP.getPegPos(16, 8, "L", -1.5f, 0), CPUFP.getPegQuat("L"), "Change Flash Location")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", -7.5f, 0), CPUFP.getPegQuat("R"), "A0")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", -6.5f, 0), CPUFP.getPegQuat("R"), "A1")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", -5.5f, 0), CPUFP.getPegQuat("R"), "A2")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", -4.5f, 0), CPUFP.getPegQuat("R"), "A3")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", -3.5f, 0), CPUFP.getPegQuat("R"), "A4")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", -2.5f, 0), CPUFP.getPegQuat("R"), "A5")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", -1.5f, 0), CPUFP.getPegQuat("R"), "A6")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", -.5f, 0), CPUFP.getPegQuat("R"), "A7")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", .5f, 0), CPUFP.getPegQuat("R"), "A8")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", 1.5f, 0), CPUFP.getPegQuat("R"), "A9")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", 2.5f, 0), CPUFP.getPegQuat("R"), "A10")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", 3.5f, 0), CPUFP.getPegQuat("R"), "A11")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", 4.5f, 0), CPUFP.getPegQuat("R"), "A12")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", 5.5f, 0), CPUFP.getPegQuat("R"), "A13")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", 6.5f, 0), CPUFP.getPegQuat("R"), "A14")
                          .WithInput(CPUFP.getPegPos(16, 8, "R", 7.5f, 0), CPUFP.getPegQuat("R"), "A15")
                          .WithInput(CPUFP.getPegPos(16, 8, "B", -3.5f, 0), CPUFP.getPegQuat("B"), "DIn0")
                          .WithInput(CPUFP.getPegPos(16, 8, "B", -2.5f, 0), CPUFP.getPegQuat("B"), "DIn1")
                          .WithInput(CPUFP.getPegPos(16, 8, "B", -1.5f, 0), CPUFP.getPegQuat("B"), "DIn2")
                          .WithInput(CPUFP.getPegPos(16, 8, "B", -.5f, 0), CPUFP.getPegQuat("B"), "DIn3")
                          .WithInput(CPUFP.getPegPos(16, 8, "B", .5f, 0), CPUFP.getPegQuat("B"), "DIn4")
                          .WithInput(CPUFP.getPegPos(16, 8, "B", 1.5f, 0), CPUFP.getPegQuat("B"), "DIn5")
                          .WithInput(CPUFP.getPegPos(16, 8, "B", 2.5f, 0), CPUFP.getPegQuat("B"), "DIn6")
                          .WithInput(CPUFP.getPegPos(16, 8, "B", 3.5f, 0), CPUFP.getPegQuat("B"), "DIn7")
                          .WithOutput(CPUFP.getPegPos(16, 8, "F", 3.5f, 0), CPUFP.getPegQuat("F"), "DOut0")
                          .WithOutput(CPUFP.getPegPos(16, 8, "F", 2.5f, 0), CPUFP.getPegQuat("F"), "DOut1")
                          .WithOutput(CPUFP.getPegPos(16, 8, "F", 1.5f, 0), CPUFP.getPegQuat("F"), "DOut2")
                          .WithOutput(CPUFP.getPegPos(16, 8, "F", .5f, 0), CPUFP.getPegQuat("F"), "DOut3")
                          .WithOutput(CPUFP.getPegPos(16, 8, "F", -.5f, 0), CPUFP.getPegQuat("F"), "DOut4")
                          .WithOutput(CPUFP.getPegPos(16, 8, "F", -1.5f, 0), CPUFP.getPegQuat("F"), "DOut5")
                          .WithOutput(CPUFP.getPegPos(16, 8, "F", -2.5f, 0), CPUFP.getPegQuat("F"), "DOut6")
                          .WithOutput(CPUFP.getPegPos(16, 8, "F", -3.5f, 0), CPUFP.getPegQuat("F"), "DOut7");

            ComponentRegistry.CreateNew <RAM>("RAM8x16", "65536 Byte RAM", RAM8x16);

            Shell.RegisterCommand <setRomLoc>();
        }
Пример #16
0
        public override void BeforePatch()
        {
            var Test = PrefabBuilder.Custom(() => CPUFP.createCube(1, 1))
                       .WithInput(new Vector3(0, 0.15f, 0.15f), Quaternion.Euler(90, 0, 0));

            ComponentRegistry.CreateNew <Empty>("Custom Builder Test", "Test", Test);
            var Test2 = PrefabBuilder.Custom(() => CPUFP.createCube(1, 1))
                        .WithInput(CPUFP.getPegPos(1, 1, "F"), CPUFP.getPegQuat(1, 1, "F"), "Front")
                        .WithInput(CPUFP.getPegPos(1, 1, "B"), CPUFP.getPegQuat(1, 1, "B"), "Back")
                        .WithInput(CPUFP.getPegPos(1, 1, "L"), CPUFP.getPegQuat(1, 1, "L"), "Left")
                        .WithInput(CPUFP.getPegPos(1, 1, "R"), CPUFP.getPegQuat(1, 1, "R"), "Right")
                        .WithInput(CPUFP.getPegPos(1, 1, "T"), CPUFP.getPegQuat(1, 1, "T"), "Top");

            ComponentRegistry.CreateNew <Empty>("Custom Builder Test2", "Test2", Test2);
            var SizeX  = 2;
            var SizeY  = 2;
            var Test22 = PrefabBuilder.Custom(() => CPUFP.createCube(2, 2))
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "F"), CPUFP.getPegQuat(SizeX, SizeY, "F"), "Front")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "B"), CPUFP.getPegQuat(SizeX, SizeY, "B"), "Back")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "L"), CPUFP.getPegQuat(SizeX, SizeY, "L"), "Left")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "R"), CPUFP.getPegQuat(SizeX, SizeY, "R"), "Right")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "T"), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top");

            ComponentRegistry.CreateNew <Empty>("Custom Builder Test2x2", "Test2x2", Test22);

            SizeX = 3;
            SizeY = 3;
            var Test33 = PrefabBuilder.Custom(() => CPUFP.createCube(3, 3))
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "F"), CPUFP.getPegQuat(SizeX, SizeY, "F"), "Front")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "B"), CPUFP.getPegQuat(SizeX, SizeY, "B"), "Back")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "L"), CPUFP.getPegQuat(SizeX, SizeY, "L"), "Left")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "R"), CPUFP.getPegQuat(SizeX, SizeY, "R"), "Right")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "T"), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top");

            ComponentRegistry.CreateNew <Empty>("Custom Builder Test3x3", "Test3x3", Test33);

            SizeX = 2;
            SizeY = 3;
            var Test23 = PrefabBuilder.Custom(() => CPUFP.createCube(2, 3))
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "F"), CPUFP.getPegQuat(SizeX, SizeY, "F"), "Front")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "B"), CPUFP.getPegQuat(SizeX, SizeY, "B"), "Back")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "L"), CPUFP.getPegQuat(SizeX, SizeY, "L"), "Left")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "R"), CPUFP.getPegQuat(SizeX, SizeY, "R"), "Right")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "T"), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top");

            ComponentRegistry.CreateNew <Empty>("Custom Builder Test2x3", "Test2x3", Test23);
            SizeX = 3;
            SizeY = 2;
            var Test32 = PrefabBuilder.Custom(() => CPUFP.createCube(3, 2))
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "F"), CPUFP.getPegQuat(SizeX, SizeY, "F"), "Front")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "B"), CPUFP.getPegQuat(SizeX, SizeY, "B"), "Back")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "L"), CPUFP.getPegQuat(SizeX, SizeY, "L"), "Left")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "R"), CPUFP.getPegQuat(SizeX, SizeY, "R"), "Right")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "T"), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top");

            ComponentRegistry.CreateNew <Empty>("Custom Builder Test3x2", "Test3x2", Test32);

            SizeX = 3;
            SizeY = 3;
            var TestO = PrefabBuilder.Custom(() => CPUFP.createCube(3, 3))
                        .WithOutput(CPUFP.getPegPos(SizeX, SizeY, "F"), CPUFP.getPegQuat(SizeX, SizeY, "F"), "Front")
                        .WithOutput(CPUFP.getPegPos(SizeX, SizeY, "B"), CPUFP.getPegQuat(SizeX, SizeY, "B"), "Back")
                        .WithOutput(CPUFP.getPegPos(SizeX, SizeY, "L"), CPUFP.getPegQuat(SizeX, SizeY, "L"), "Left")
                        .WithOutput(CPUFP.getPegPos(SizeX, SizeY, "R"), CPUFP.getPegQuat(SizeX, SizeY, "R"), "Right")
                        .WithOutput(CPUFP.getPegPos(SizeX, SizeY, "T"), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top");

            ComponentRegistry.CreateNew <Empty>("Custom Builder TestO", "Test With Outputs", TestO);

            SizeX = 3;
            SizeY = 3;
            var Test3D = PrefabBuilder.Custom(() => CPUFP.createCube(3, 3, 3))
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "F"), CPUFP.getPegQuat(SizeX, SizeY, 3, "F"), "Front")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "B"), CPUFP.getPegQuat(SizeX, SizeY, 3, "B"), "Back")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "L"), CPUFP.getPegQuat(SizeX, SizeY, 3, "L"), "Left")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "R"), CPUFP.getPegQuat(SizeX, SizeY, 3, "R"), "Right")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "T"), CPUFP.getPegQuat(SizeX, SizeY, 3, "T"), "Top");

            ComponentRegistry.CreateNew <Empty>("Custom Builder Test3D", "Vertial Test 3 High", Test3D);

            SizeX = 3;
            SizeY = 2;
            var Test332 = PrefabBuilder.Custom(() => CPUFP.createCube(3, 2, 3))
                          .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "F"), CPUFP.getPegQuat(SizeX, SizeY, 3, "F"), "Front")
                          .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "B"), CPUFP.getPegQuat(SizeX, SizeY, 3, "B"), "Back")
                          .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "L"), CPUFP.getPegQuat(SizeX, SizeY, 3, "L"), "Left")
                          .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "R"), CPUFP.getPegQuat(SizeX, SizeY, 3, "R"), "Right")
                          .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "T"), CPUFP.getPegQuat(SizeX, SizeY, 3, "T"), "Top");

            ComponentRegistry.CreateNew <Empty>("Custom Builder Test3D x 2", "Vertial Test 2 High", Test332);

            SizeX = 3;
            SizeY = 3;
            var Testos = PrefabBuilder.Custom(() => CPUFP.createCube(3, 3))
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "F"), CPUFP.getPegQuat(SizeX, SizeY, "F"), "Front")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "F", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, "F"), "Front Left Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "F", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, "F"), "Front Right Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "B"), CPUFP.getPegQuat(SizeX, SizeY, "B"), "Back")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "B", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, "B"), "Back Left Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "B", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, "B"), "Back Right Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "L"), CPUFP.getPegQuat(SizeX, SizeY, "L"), "Left")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "L", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, "L"), "Left Left Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "L", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, "L"), "Left Right Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "R"), CPUFP.getPegQuat(SizeX, SizeY, "R"), "Right")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "R", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, "R"), "Right Left Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "R", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, "R"), "Right Right Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "T"), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "T", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top Left Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "T", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top Right Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "T", 0, 1), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top Front Side")
                         .WithInput(CPUFP.getPegPos(SizeX, SizeY, "T", 0, -1), CPUFP.getPegQuat(SizeX, SizeY, "T"), "Top Back Side");

            ComponentRegistry.CreateNew <Empty>("Custom Builder TestOS", "Offset Test", Testos);

            SizeX = 3;
            SizeY = 3;
            var Testos3D = PrefabBuilder.Custom(() => CPUFP.createCube(3, 3, 3))
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "F"), CPUFP.getPegQuat(SizeX, SizeY, 3, "F"), "Front")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "F", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "F"), "Front Left Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "F", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "F"), "Front Right Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "F", 0, 1), CPUFP.getPegQuat(SizeX, SizeY, 3, "F"), "Front Top Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "F", 0, -1), CPUFP.getPegQuat(SizeX, SizeY, 3, "F"), "Front Bottom Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "B"), CPUFP.getPegQuat(SizeX, SizeY, 3, "B"), "Back")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "B", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "B"), "Back Left Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "B", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "B"), "Back Right Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "B", 0, 1), CPUFP.getPegQuat(SizeX, SizeY, 3, "B"), "Back Top Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "B", 0, -1), CPUFP.getPegQuat(SizeX, SizeY, 3, "B"), "Back Bottom Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "L"), CPUFP.getPegQuat(SizeX, SizeY, 3, "L"), "Left")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "L", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "L"), "Left Left Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "L", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "L"), "Left Right Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "L", 0, 1), CPUFP.getPegQuat(SizeX, SizeY, 3, "L"), "Left Top Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "L", 0, -1), CPUFP.getPegQuat(SizeX, SizeY, 3, "L"), "Left Bottom Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "R"), CPUFP.getPegQuat(SizeX, SizeY, 3, "R"), "Right")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "R", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "R"), "Right Left Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "R", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "R"), "Right Right Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "R", 0, 1), CPUFP.getPegQuat(SizeX, SizeY, 3, "R"), "Right Top Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "R", 0, -1), CPUFP.getPegQuat(SizeX, SizeY, 3, "R"), "Rigt Bottom Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "T"), CPUFP.getPegQuat(SizeX, SizeY, 3, "T"), "Top")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "T", 1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "T"), "Top Left Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "T", -1, 0), CPUFP.getPegQuat(SizeX, SizeY, 3, "T"), "Top Right Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "T", 0, 1), CPUFP.getPegQuat(SizeX, SizeY, 3, "T"), "Top Front Side")
                           .WithInput(CPUFP.getPegPos(SizeX, SizeY, 3, "T", 0, -1), CPUFP.getPegQuat(SizeX, SizeY, 3, "T"), "Top Back Side");

            ComponentRegistry.CreateNew <Empty>("Custom Builder TestOS3D", " Vertical Offset Test", Testos3D);
        }