void ConnectModule(ModuleSlot slot) { Rigidbody rb = heldObject.GetComponent <Rigidbody>(); SceneManager.instance.RemoveGravityBody(rb); Destroy(rb); heldObject.transform.SetParent(slot.transform); ShipModule currentModule = heldObject.GetComponent <ShipModule>(); slot.connectedModule = currentModule; currentModule.connected = true; slot.GetComponent <MeshRenderer>().enabled = false; assignedSlot = null; Ship ship = slot.GetComponentInParent <Ship>(); if (ship) { ship.UpdateModuleStatus(currentModule, currentModule.moduleType, true); currentModule.shipRB = ship.GetComponent <Rigidbody>(); } FindObjectOfType <Ship>().ToggleModuleSlots(false); heldObject = null; PlayerHUD.instance.ToggleCrosshair(true); PlayerCamera.instance.checkForUsable = true; PlayerCamera.instance.checkForMaterializable = true; energyParticles.Stop(); }
void DisconnectModule(ModuleSlot slot) { Rigidbody rb = heldObject.AddComponent <Rigidbody>(); rb.mass = heldObject.GetComponent <ShipModule>().mass; SceneManager.instance.AddGravityBody(rb); slot.connectedModule = null; heldObject.GetComponent <ShipModule>().connected = false; assignedSlot = slot; slot.GetComponent <MeshRenderer>().enabled = true; }