public void HingeMotorTargetChange(float newTarget, string jointName) { Godot.HingeJoint reqJoint = (Godot.HingeJoint)FindJoint(jointName); if (reqJoint == null) { GD.Print("ERROR: Could not find requested joint [" + jointName + "]"); return; } HingeTargetVal = newTarget; HingeTargetChanged = true; ReqHingeJoint = reqJoint; GD.Print(jointName + ": New Target speed of " + newTarget); }
public void Configure(Godot.HingeJoint joint) { hideBtn = (Button)GetNode("Button"); content = (MarginContainer)GetNode("Content"); spacer = (Control)GetNode("Spacer"); hideBtn.Text = joint.Name; float upperLimDeg = joint.GetParam(Godot.HingeJoint.Param.LimitUpper); float lowerLimDeg = joint.GetParam(Godot.HingeJoint.Param.LimitLower); ((Label)content.GetNode("VBoxContainer/AngLimits/UpperVal")).Text = upperLimDeg.ToString(); ((Label)content.GetNode("VBoxContainer/AngLimits/LowerVal")).Text = lowerLimDeg.ToString(); ((LineEdit)content.GetNode("VBoxContainer/Motor/TargVelInput")).Text = joint.GetParam(Godot.HingeJoint.Param.MotorTargetVelocity).ToString(); ((Label)content.GetNode("VBoxContainer/Motor/MaxImpulseVal")).Text = joint.GetParam(Godot.HingeJoint.Param.MotorMaxImpulse).ToString(); }
// Adds a HingeJointControllerDetail scene to the detail list, // replacing the current detail if there is one. private void AddJoint(Godot.HingeJoint joint) { if (jointList.GetChildCount() == 1) { RemoveJoint(0); } try { HingeJointControllerDetail jointDetail = (HingeJointControllerDetail)HingeDetailScene.Instance(); jointDetail.Configure(joint); jointDetail.Name = joint.Name; jointList.AddChild(jointDetail); jointDetail.Connect("TargetVelChanged", this, "HingeJointVelChanged"); ActiveJoint = joint; } catch (Exception e) { GD.Print("Error adding joint...\n" + e.Message); } }