public virtual void CopyToPressureBody(JelloBody oldBody, JelloPressureBody newBody) { newBody.affectedByGravity = oldBody.affectedByGravity; newBody.disabled = oldBody.disabled; newBody.gravity = oldBody.gravity; newBody.IsAwake = oldBody.IsAwake; newBody.IsKinematic = oldBody.IsKinematic; newBody.IsStatic = false; newBody.IsTrigger = oldBody.IsTrigger; newBody.overrideWorldGravity = oldBody.overrideWorldGravity; newBody.pivotOffset = oldBody.pivotOffset; newBody.setComponentReferences(); newBody.polyCollider = oldBody.polyCollider; if (oldBody.meshLink != null) { newBody.meshLink = oldBody.meshLink; newBody.meshLink.body = newBody; } if (oldBody.Shape != null) { newBody.setShape(oldBody.Shape, shapeSettingOptions); newBody.Mass = oldBody.Mass != Mathf.Infinity ? oldBody.Mass : 1f; } for (int i = 0; i < oldBody.EdgePointMassCount; i++) { newBody.setEdgePointMass(oldBody.getEdgePointMass(i), i); newBody.getEdgePointMass(i).body = newBody; if (oldBody.Mass == Mathf.Infinity) { newBody.getEdgePointMass(i).Mass = 1f; } } for (int i = 0; i < oldBody.InternalPointMassCount; i++) { newBody.setInternalPointMass(oldBody.getInternalPointMass(i), i); newBody.getInternalPointMass(i).body = newBody; if (oldBody.Mass == Mathf.Infinity) { newBody.getInternalPointMass(i).Mass = 1f; } } for (int i = 0; i < oldBody.AttachPointCount; i++) { newBody.AddAttachPoint(oldBody.GetAttachPoint(i)); newBody.GetAttachPoint(i).body = newBody; } for (int i = 0; i < oldBody.JointCount; i++) { newBody.AddJoint(oldBody.GetJoint(i)); newBody.GetJoint(i).bodyA = newBody; } EditorUtility.SetDirty(newBody); }
public IEnumerator DoKnockback(JelloPressureBody body, float waitTime) { yield return(new WaitForSeconds(waitTime)); body.gameObject.GetComponent <JelloPressureBody>().AddForce(Vector2.left * 500); body.gameObject.GetComponent <JelloPressureBody>().AddForce(Vector2.up * 400); yield return(new WaitForSeconds(0.1f)); doKnock = false; }
internal override void JumpEnd() { JelloPressureBody pressureBody = (JelloPressureBody)body; pressureBody.GasAmount = GasAmountWhileFloating; for (int i = 0; i <= 7; ++i) { body.ClearPersistantForceToPointOnEdge(i); } }
internal override bool Jump() { JelloPressureBody pressureBody = (JelloPressureBody)body; pressureBody.GasAmount = GasAmountWhileJumping; for (int i = 0; i <= 7; ++i) { body.AddPersistantForceToPointOnEdge(-body.gravity * jumpForce, i, 0); } return(true); }
public override void CopyToSpringBody (JelloBody oldBody, JelloSpringBody newBody) { base.CopyToSpringBody (oldBody, newBody); JelloPressureBody old = (JelloPressureBody)oldBody; newBody.ShapeMatching = old.ShapeMatching; newBody.DefaultEdgeSpringStiffness = old.DefaultEdgeSpringStiffness; newBody.DefaultEdgeSpringDamping = old.DefaultEdgeSpringDamping; newBody.DefaultCustomSpringDamping = old.DefaultCustomSpringDamping; newBody.DefaultCustomSpringStiffness = old.DefaultCustomSpringStiffness; newBody.DefaultInternalSpringDamping = old.DefaultInternalSpringDamping; newBody.DefaultInternalSpringStiffness = old.DefaultInternalSpringStiffness; newBody.ShapeSpringDamping = old.ShapeSpringDamping; newBody.ShapeSpringStiffness = old.ShapeSpringStiffness; newBody.setInternalSprings(old.getInternalSprings()); for(int i = 0; i < old.CustomSpringCount; i++) { newBody.addCustomSpring(old.getCustomSpring(i)); } }
public override void CopyToPressureBody(JelloBody oldBody, JelloPressureBody newBody) { base.CopyToPressureBody (oldBody, newBody); JelloSpringBody old = (JelloSpringBody)oldBody; newBody.ShapeMatching = old.ShapeMatching; newBody.DefaultEdgeSpringStiffness = old.DefaultEdgeSpringStiffness; newBody.DefaultEdgeSpringDamping = old.DefaultEdgeSpringDamping; newBody.DefaultCustomSpringDamping = old.DefaultCustomSpringDamping; newBody.DefaultCustomSpringStiffness = old.DefaultCustomSpringStiffness; newBody.DefaultInternalSpringDamping = old.DefaultInternalSpringDamping; newBody.DefaultInternalSpringStiffness = old.DefaultInternalSpringStiffness; newBody.ShapeSpringDamping = old.ShapeSpringDamping; newBody.ShapeSpringStiffness = old.ShapeSpringStiffness; newBody.setInternalSprings(old.getInternalSprings()); for(int i = 0; i < old.CustomSpringCount; i++) { newBody.addCustomSpring(old.getCustomSpring(i)); } }
public virtual void CopyToPressureBody(JelloBody oldBody, JelloPressureBody newBody) { newBody.affectedByGravity = oldBody.affectedByGravity; newBody.disabled = oldBody.disabled; newBody.gravity = oldBody.gravity; newBody.IsAwake = oldBody.IsAwake; newBody.IsKinematic = oldBody.IsKinematic; newBody.IsStatic = false; newBody.IsTrigger = oldBody.IsTrigger; newBody.overrideWorldGravity = oldBody.overrideWorldGravity; newBody.pivotOffset = oldBody.pivotOffset; newBody.setComponentReferences(); newBody.polyCollider = oldBody.polyCollider; if(oldBody.meshLink != null) { newBody.meshLink = oldBody.meshLink; newBody.meshLink.body = newBody; } if(oldBody.Shape != null) { newBody.setShape(oldBody.Shape, shapeSettingOptions); newBody.Mass = oldBody.Mass != Mathf.Infinity ? oldBody.Mass : 1f; } for(int i = 0; i < oldBody.EdgePointMassCount; i++) { newBody.setEdgePointMass(oldBody.getEdgePointMass(i), i); newBody.getEdgePointMass(i).body = newBody; if(oldBody.Mass == Mathf.Infinity) newBody.getEdgePointMass(i).Mass = 1f; } for(int i = 0; i < oldBody.InternalPointMassCount; i++) { newBody.setInternalPointMass(oldBody.getInternalPointMass(i), i); newBody.getInternalPointMass(i).body = newBody; if(oldBody.Mass == Mathf.Infinity) newBody.getInternalPointMass(i).Mass = 1f; } for(int i = 0; i < oldBody.AttachPointCount; i++) { newBody.AddAttachPoint(oldBody.GetAttachPoint(i)); newBody.GetAttachPoint(i).body = newBody; } for(int i = 0; i < oldBody.JointCount; i++) { newBody.AddJoint(oldBody.GetJoint(i)); newBody.GetJoint(i).bodyA = newBody; } EditorUtility.SetDirty(newBody); }