public void setForceMagnitude( float force, MagneticBehaviour.MagneticType magneticType, MagneticBehaviour.Side side) { if (effector is PointEffector2D) { if (magneticType == MagneticBehaviour.MagneticType.REPEL) { ((PointEffector2D)effector).forceMagnitude = force; } else if (magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((PointEffector2D)effector).forceMagnitude = -force; } } else if (effector is AreaEffector2D) { ((AreaEffector2D)effector).forceMagnitude = force; if(side == MagneticBehaviour.Side.BOTTOM && magneticType == MagneticBehaviour.MagneticType.REPEL) { ((AreaEffector2D)effector).forceAngle = 270; } else if (side == MagneticBehaviour.Side.RIGHT && magneticType == MagneticBehaviour.MagneticType.REPEL) { ((AreaEffector2D)effector).forceAngle = 0; } else if (side == MagneticBehaviour.Side.TOP && magneticType == MagneticBehaviour.MagneticType.REPEL) { ((AreaEffector2D)effector).forceAngle = 90; } else if (side == MagneticBehaviour.Side.LEFT && magneticType == MagneticBehaviour.MagneticType.REPEL) { ((AreaEffector2D)effector).forceAngle = 180; } else if (side == MagneticBehaviour.Side.BOTTOM && magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((AreaEffector2D)effector).forceAngle = 90; } else if (side == MagneticBehaviour.Side.RIGHT && magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((AreaEffector2D)effector).forceAngle = 180; } else if (side == MagneticBehaviour.Side.TOP && magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((AreaEffector2D)effector).forceAngle = 270; } else if (side == MagneticBehaviour.Side.LEFT && magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((AreaEffector2D)effector).forceAngle = 0; } else throw (new System.Exception("Area effector should have valid side and type (MagneticBehaviour.cs)")); } else throw (new System.Exception("Effector should be point or area. (MagneticBehaviour.cs)")); }
public EffectorEmbed(Effector2D effector, MagneticBehaviour.Side side) { this.side = side; this.effector = effector; effectorDistance = calculateEffectorDistance(); }