package org.codecranachan.asteroidpush.base.workshop.assembly; import org.codecranachan.asteroidpush.base.visuals.Representable; import org.codecranachan.asteroidpush.base.workshop.actor.Behavior; import org.codecranachan.asteroidpush.utils.Arrow; public interface BehaviorFactory extends Representable { /** * Create a new behavior at the given location. * * @param offset * the translation and rotation of the behavior relative to the * body it is attached to. For a ModularActor, this is the * placement of the Part that contains the BehaviorFactory. This * does not include the relative placement of the behavior within * that part (this should be passed as a parameter to the factory * and combined with the offset given in this method) * @param scale * the scaling factor to be used when creating the behavior * @return a new behavior ready to be attached to a body */ public Behavior createBehavior(Arrow offset, float scale); }