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); }
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 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); }
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); }
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); }
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; })); }
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); }
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); }
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>(); }
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); }
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>(); }
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); }