|
|
@ -21,20 +21,15 @@ enum RampOrientation {
|
|
|
|
/// through this opening. By default openings are [Layer.board] that
|
|
|
|
/// through this opening. By default openings are [Layer.board] that
|
|
|
|
/// means opening are at ground level, not over board.
|
|
|
|
/// means opening are at ground level, not over board.
|
|
|
|
/// {@endtemplate}
|
|
|
|
/// {@endtemplate}
|
|
|
|
abstract class RampOpening extends BodyComponent with InitialPosition {
|
|
|
|
abstract class RampOpening extends BodyComponent with InitialPosition, Layered {
|
|
|
|
/// {@macro ramp_opening}
|
|
|
|
/// {@macro ramp_opening}
|
|
|
|
RampOpening({
|
|
|
|
RampOpening({
|
|
|
|
required Layer pathwayLayer,
|
|
|
|
required Layer pathwayLayer,
|
|
|
|
Layer? openingLayer,
|
|
|
|
}) : _pathwayLayer = pathwayLayer {
|
|
|
|
}) : _pathwayLayer = pathwayLayer,
|
|
|
|
layer = Layer.board;
|
|
|
|
_openingLayer = openingLayer ?? Layer.board;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
final Layer _openingLayer;
|
|
|
|
|
|
|
|
final Layer _pathwayLayer;
|
|
|
|
final Layer _pathwayLayer;
|
|
|
|
|
|
|
|
|
|
|
|
/// Mask of category bits for collision with [RampOpening].
|
|
|
|
|
|
|
|
Layer get openingLayer => _openingLayer;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// Mask of category bits for collision inside [Pathway].
|
|
|
|
/// Mask of category bits for collision inside [Pathway].
|
|
|
|
Layer get pathwayLayer => _pathwayLayer;
|
|
|
|
Layer get pathwayLayer => _pathwayLayer;
|
|
|
|
|
|
|
|
|
|
|
@ -48,9 +43,7 @@ abstract class RampOpening extends BodyComponent with InitialPosition {
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
Body createBody() {
|
|
|
|
Body createBody() {
|
|
|
|
final fixtureDef = FixtureDef(shape)
|
|
|
|
final fixtureDef = FixtureDef(shape)..isSensor = true;
|
|
|
|
..isSensor = true
|
|
|
|
|
|
|
|
..filter.categoryBits = _openingLayer.maskBits;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
final bodyDef = BodyDef()
|
|
|
|
final bodyDef = BodyDef()
|
|
|
|
..userData = this
|
|
|
|
..userData = this
|
|
|
|