public static void ConstructorCraft(ConstructorInput input, TechType tech) { if (!CrafterLogic.ConsumeResources(tech)) { return; } uGUI.main.craftingMenu.Close(input); input.cinematicController.DisengageConstructor(); Transform spawn = input.constructor.GetItemSpawnPoint(tech); var position = spawn.position; var rotation = spawn.rotation; GameObject gameObject; if (tech == TechType.Cyclops) { SubConsoleCommand.main.SpawnSub("cyclops", position, rotation); gameObject = SubConsoleCommand.main.GetLastCreatedSub(); } else { gameObject = CraftData.InstantiateFromPrefab(tech, false); Transform component = gameObject.GetComponent <Transform>(); component.position = position; component.rotation = rotation; } LargeWorldEntity.Register(gameObject); gameObject.SendMessage("StartConstruction", SendMessageOptions.DontRequireReceiver); CrafterLogic.NotifyCraftEnd(gameObject, CraftData.GetTechType(gameObject)); Story.ItemGoalTracker.OnConstruct(tech); Commands.SendSpawn(gameObject, tech); }