public void ComputePossibleMoves(List <Move> possibleMoves, List <Position> includedPositions, MoveFilter moveFilter) { if (Assembler != null) { Assembler.ComputePossibleMoves(possibleMoves, includedPositions, moveFilter); } if (Extractor != null) { Extractor.ComputePossibleMoves(possibleMoves, includedPositions, moveFilter); } if (Weapon != null) { Weapon.ComputePossibleMoves(possibleMoves, includedPositions, moveFilter); } if (Engine != null) { Engine.ComputePossibleMoves(possibleMoves, includedPositions, moveFilter); } }